Skip to Content
User GuideInvoicing

Invoicing

Borderbolt provides comprehensive invoicing capabilities with automated billing from dossiers, rate card management, duty/tax pass-through, prepayment handling, and integration with popular Dutch accounting systems.

Permissions

Access to invoicing features is controlled by granular permissions. The table below shows which permissions are needed for each function and which roles have them by default.

Invoicing Permissions

PermissionDescriptionAdminManagerCustoms ManagerSenior DeclarantViewer
invoicing.viewView invoices, rate cards, billable items, and statementsYesYesYesYesYes
invoicing.createCreate new invoicesYesYesYes--
invoicing.editEdit draft invoicesYesYesYes--
invoicing.deleteDelete draft invoicesYesYesYes--
invoicing.finalizeFinalize invoices (lock and assign number)YesYesYes--
invoicing.paymentsMark invoices as paid, manage prepaymentsYesYesYes--
invoicing.rate_cardsCreate and manage rate cardsYesYesYes--
invoicing.billable_itemsCreate and manage billable itemsYesYesYes--
invoicing.statementsView and manage statementsYesYesYes--
invoicing.accountingManage accounting integrations and sync invoicesYesYesYes--
invoicing.settingsConfigure invoice/statement settings, numbering, and templatesYes----
invoicing.designerDesign invoice and statement PDF templatesYes----

No access: Junior Declarant, Data Entry, and User roles have no invoicing permissions by default.

Invoice Overview

What is an Invoice?

An invoice in Borderbolt represents a bill to a customer for customs services provided. Invoices can be:

  • Generated automatically from completed dossiers based on trigger events
  • Created manually with ad-hoc line items
  • Generated in batches from pending invoice lines across multiple dossiers
  • Flagged as prepayment invoices for advance billing

Each invoice belongs to a payment term group that determines payment terms:

Payment Term GroupDefault TermsTypical Contents
HandlingNet 30 daysService fees, declaration handling, document preparation
DutiesNet 14 daysImport/export duties, customs taxes (pass-through)
DisbursementsNet 14 daysPort fees, storage, inspection fees, third-party costs

A single dossier can generate multiple invoices if it contains line items across different payment term groups.

Merge Payment Term Groups by Matching Due Date: When this setting is enabled in Billing Settings, invoices from different payment term groups that share the same payment due date (for example, two groups both due in 30 days) are combined onto a single invoice instead of being issued separately. This reduces the number of invoices sent to a customer when their payment term groups happen to share timing. An invoice combined this way lists all of the payment term groups it contains.

Invoice Statuses

Draft --> Finalized --> Sent --> Synced --> Paid | Credited (if cancelled)
StatusDescriptionEditableNumbered
DraftInitial state, fully editableYesNo (DRAFT-XXXX)
FinalizedLocked, final number assigned, PDF availableNoYes (INV-2026-00001)
SentEmailed to customerNoYes
SyncedExported to accounting systemNoYes
PaidPayment received and recordedNoYes
CreditedCredit note issued, original retained for auditNoYes

Invoice List

Viewing Invoices

Required permission: invoicing.view

  1. Navigate to Invoicing > Invoices
  2. The invoice list shows:
    • Invoice number and date
    • Customer name
    • Payment term group
    • Item Number(s) — the billable item codes included on the invoice
    • Status (Draft, Finalized, Sent, Synced, Paid)
    • Total amount (including VAT)
    • Due date
    • Days overdue (if unpaid)

Filtering and Searching

Filter invoices by:

  • Status: Draft, Finalized, Sent, Paid, Overdue
  • Customer: Select from dropdown
  • Payment Term Group: Handling, Duties, Disbursements
  • Date Range: Invoice date, due date, or payment date
  • Amount Range: Min/max invoice total
  • Overdue Only: Show only unpaid invoices past due date

Search by:

  • Invoice number
  • Customer name
  • Customer reference
  • Dossier number

Creating Invoices

Required permission: invoicing.create

Borderbolt automatically creates pending invoice lines when trigger events occur on dossiers. These lines are later converted into invoices based on the customer’s billing frequency.

How it works:

  1. A declaration in a dossier is released/accepted by customs
  2. The system evaluates all active billable items in the customer’s rate card
  3. For each matching trigger, a pending invoice line is created
  4. When the dossier reaches Ready to Invoice status, pending lines are locked
  5. Invoices are generated based on the rate card’s billing frequency

See Billable Items and Rate Cards for how triggers and pricing are configured.

Method 2: From Pending Lines (Batch)

Required permission: invoicing.create

Invoice multiple dossiers at once:

  1. Go to Invoicing > Create from Pending Lines
  2. Select a customer
  3. Borderbolt shows all uninvoiced dossier lines for this customer
  4. Check the lines to include (or select all)
  5. Click Create Invoice
  6. Invoice is generated with selected lines
  7. Review and finalize

Method 3: Manual Invoice

Required permission: invoicing.create

For ad-hoc billing without a dossier:

  1. Go to Invoicing > New Invoice
  2. Select the customer
  3. Fill in invoice details:
    • Invoice Date: Default is today
    • Due Date: Calculated from payment terms
    • Currency: Customer default or specify
    • Payment Term Group: Handling, Duties, or Disbursements
    • Reference: Customer PO or reference number
  4. Click Add Line to add invoice lines manually
  5. Fill in description, quantity, unit price, and VAT rate
  6. Add more lines as needed
  7. Review totals and finalize

Invoice Lines Management

Line Item Fields

Each invoice line contains:

  • Description: Service or item description (required), shown with the billable item’s code alongside it (e.g. “50101 - Customs handling fee”)
  • Quantity: Number of units (default: 1)
  • Unit Price: Price per unit (excluding VAT)
  • VAT Rate: 21% (high), 9% (low), 0% (zero-rated), or Exempt
  • Line Total: Auto-calculated as Quantity x Unit Price
  • VAT Amount: Auto-calculated as Line Total x VAT Rate
  • Payment Term Group: Handling, Duties, or Disbursements

Editing Lines

Required permission: invoicing.edit

On draft invoices:

  1. Click the Edit icon on any line
  2. Modify fields as needed
  3. Totals recalculate automatically
  4. Click Save

Deleting Lines

Required permission: invoicing.delete

  1. Click the Delete icon on any line
  2. Confirm deletion
  3. Line is removed and totals recalculate

Finalized Invoices: Once finalized, invoice lines cannot be edited or deleted. If corrections are needed, create a credit note.

Invoice Lifecycle

Finalizing

Required permission: invoicing.finalize

  1. Open the draft invoice
  2. Review all lines and totals
  3. Click Finalize Invoice
  4. Confirm the action
  5. Invoice number is assigned and status changes to Finalized
  6. If customer has auto-send enabled, the invoice is emailed automatically

Sending

Required permission: invoicing.edit

  1. Finalize the invoice first
  2. Click Send Email
  3. A modal opens with the To field pre-filled with the customer’s billing email
  4. Click Send
  5. Invoice PDF is attached automatically
  6. Status changes to Sent

Auto-Send on Finalize

If a customer has both:

  • Auto-Send Invoices enabled
  • A valid Invoice Email configured

Then invoices are automatically sent when finalized, with no manual intervention.

Configure per customer:

  1. Go to Customers > Edit > Invoicing section
  2. Enable Auto-Send Invoices
  3. Fill in Invoice Email with the customer’s billing email address
  4. Click Save

Marking as Paid

Required permission: invoicing.payments

  1. Open a finalized or sent invoice
  2. Click Mark as Paid
  3. Optionally enter a Payment Reference (bank transaction ID, check number)
  4. Click Confirm
  5. Status changes to Paid
  6. Payment date and the user who marked it are recorded

Syncing to Accounting

Required permission: invoicing.accounting

Manual Sync:

  1. Open a finalized invoice
  2. Click Sync to Accounting
  3. Invoice is sent to the configured accounting system
  4. On success: status changes to Synced, external ID is recorded, and the invoice document generated by the accounting system is attached to the invoice automatically
  5. On failure: the error message is shown directly on the invoice page

Auto-Sync on Finalize:

When auto-sync is enabled in the accounting integration settings, invoices are automatically synced to your accounting system as soon as they are finalized — no manual action required.

  • The sync runs in the background after finalization
  • If the sync fails, it automatically retries up to 3 times
  • If all retries fail, a notification is sent to everyone who can manage accounting integrations so the failure doesn’t go unnoticed
  • All sync attempts are logged with timestamps, duration, and error details, viewable directly on the invoice page under Accounting Sync
  • Failed syncs can always be retried manually from the invoice page

See Billing Settings > Auto-Sync on Finalize for configuration.

Detecting Invoices Removed from Your Accounting System:

A daily background check compares synced invoices against your accounting system. If an invoice that was previously synced no longer exists there (for example, it was deleted directly in the accounting system), Borderbolt flags it for manual review:

  • The invoice shows a Needs check badge in the invoice list
  • The invoice page shows a banner explaining the invoice no longer exists in the accounting system
  • Everyone with invoicing.accounting permission receives a notification
  • From the invoice page, you can either re-record the external reference (if you find the invoice still exists) or clear the flag to allow a fresh sync attempt

Billable Items

What are Billable Items?

Billable items are the catalog of services and charges that can be invoiced. Each item defines what to charge, when to charge it (trigger event), and how to calculate the amount (trigger type).

Required permission: invoicing.billable_items

Billable Item Categories

CategoryDescriptionExamples
ImportCharges for import declarationsImport declaration handling, line processing
ExportCharges for export declarationsExport declaration handling
TransitCharges for transit declarations (D1-D3)Transit departure/arrival fees
SurchargeAdditional fees and surchargesRush processing, after-hours service
DocumentDocument-related chargesDocument preparation, certificate fees
OtherMiscellaneous chargesConsultation, customer service

Trigger Events (When to Charge)

Trigger events determine when a billable item is automatically evaluated:

EventDescriptionFired By
On ReleaseWhen customs releases a declarationCustoms response
On AcceptanceWhen customs accepts a declarationCustoms response
On Dossier CompleteWhen a dossier is marked as completeUser action
On Tax AssessmentWhen customs sends a duty/tax assessmentCustoms webhook
On Control NotificationThe first time customs opens a physical or document control on a declarationCustoms webhook
On Portbase Message AcceptedWhen Portbase accepts an import (MID) or export (MED) notification. Only for Per Portbase Message itemsPortbase reply
ManualOnly triggered manually by a userUser action

Trigger Types (How to Calculate)

Trigger types determine how the quantity and amount are calculated:

Trigger TypeDescriptionConfig Example
Per DeclarationCharge per declaration, optionally filtered to imports, exports, or bothdeclaration_types: ['IM'] (imports only), ['EX'] (exports only), or ['IM', 'EX'] (both)
Per LineCharge per declaration line itemmin_lines: 5 (only charge if 5+ lines)
Per Line AfterCharge for lines exceeding a thresholdafter: 10 (charge for lines 11+)
Per Unique HS CodeCharge per unique HS code prefixhs_digits: 6, after: 10 (charge codes 11+)
Per TransitCharge per transit declaration-
Per DossierFlat fee per dossier-
Per KgCharge per kilogram of goodsweight_field: 'gross' or 'net'
Per Customs ValuePercentage of declared customs valuepercentage: 1 (1% fee)
Per DocumentCharge per uploaded documentdocument_types: ['invoice', 'poa']
Per Declaration DutiesPass-through of actual customs dutiesduty_type_code: ['A00', 'B00']
ConditionalCharge based on a field conditionfield: 'transport_mode', equals: 'Air'
Per Portbase MessageCharge once per Portbase notification that Portbase acceptsTick MID (import notification) and/or MED (export notification); leave both unticked for all
ManualNever auto-triggered, added manually-

For Per Declaration billable items, you can also restrict the charge to specific customs procedure movements — for example, only charging when a declaration moves goods from a bonded warehouse into free circulation. Add one or more previous/current procedure combinations to the billable item; the charge only applies when a declaration’s movement matches one of the combinations you’ve listed. Leave a side of a combination set to “Any” to match every value on that side, or leave the whole filter empty to charge for all procedure movements as before.

You can further restrict a Per Declaration item by representation type — charge only when the declaration’s customer has no representation, direct representation, or indirect representation configured. Check one or more boxes to filter, or leave all unchecked to charge regardless of representation type.

For Per Portbase Message billable items, the charge is added when Portbase accepts the message. Rejected messages and messages that could not be sent are never charged; a message that is corrected or retried and then accepted is charged exactly once. Only messages linked to a declaration or transit in a dossier are charged. See Portbase Notifications.

For Conditional billable items, in addition to matching a field’s exact value (Equals) or a substring (Contains), you can charge whenever a field is simply set to any non-empty value — useful for fields that record a timestamp, like when a control was opened on a declaration.

Control Fees

Borderbolt can automatically charge a fee the first time customs opens a physical or document control on a declaration. Create a billable item with trigger type Conditional, trigger event On Control Notification, and set the field to check as “Physical Control Just Billed” or “Document Control Just Billed” with “field is set” checked. The fee is charged exactly once per declaration per control type — later follow-up messages about the same control (reminders, or the eventual outcome) don’t charge it again, and a document control and a physical control on the same declaration are billed independently.

Payment Term Groups

Each billable item belongs to one of three payment term groups:

  • Handling (Net 30 days) - Service fees, customs clearing, document handling
  • Duties (Net 14 days) - Import/export duties and taxes (pass-through from customs)
  • Disbursements (Net 14 days) - Port fees, storage, inspection, other third-party costs

When invoices are generated, lines are grouped by payment term group, creating separate invoices per group with different due dates.

Creating Billable Items

Required permission: invoicing.billable_items

  1. Go to Invoicing > Billable Items
  2. Click New Billable Item
  3. Fill in:
    • Code: Short identifier (e.g., CLEAR-IMPORT, DUTY-A00)
    • Name: Full name (e.g., “Import Declaration Handling”)
    • Category: Import, Export, Transit, Surcharge, Document, or Other
    • Trigger Type: How quantity is calculated (see table above)
    • Trigger Event: When to fire (see table above)
    • Trigger Config: JSON configuration specific to the trigger type
    • Default Price: Default unit price
    • VAT Rate: Default VAT rate (typically 21%)
    • Payment Term Group: Handling, Duties, or Disbursements
    • Payment Term Days: Days until payment due
  4. Click Save

Duty and Tax Pass-Through

How It Works

When customs sends a tax assessment (CCTAXA/CC419A) for a declaration, Borderbolt automatically:

  1. Creates a cost line recording the actual duty amount
  2. Creates a revenue line passing the duty through to the customer
  3. Creates markup lines if configured (percentage-based markup on duties)

This ensures duties are accurately billed to customers at cost, with optional markup for handling.

Duty Type Codes

CodeDescription
A00Customs duties (import tariffs)
B00VAT (Value Added Tax)
C00Excise duties
D00Anti-dumping duties

Markup on Duties

Rate card lines can be configured to add a percentage markup on duty amounts:

  • Config: markup_on: ['A00', 'B00'] with percentage: true
  • Unit price = markup percentage (e.g., 5 for 5%)
  • Creates a separate invoice line for the markup amount

Example:

Customs duty assessed: 1,000.00 - Purchase line (cost): 1,000.00 (actual duty) - Invoice line (revenue): 1,000.00 + 210.00 VAT (pass-through) - Markup line (5%): 50.00 + 10.50 VAT (handling fee)

Deferred VAT (Article 23): When a customer defers VAT under an Article 23 licence, customs assesses the VAT but the amount actually payable at the border is zero — the customer self-accounts for it on their own periodic VAT return instead. In this case, Borderbolt passes through and applies any markup to the actual payable amount, not the full assessed amount, so the customer is not billed for VAT they never had to pay at import.

VAT Reverse Charge

When a declaration has VAT reverse charge applied (BTW Verlegging / FR7):

  • B00 (VAT) amounts from tax assessments are excluded from the financial impact
  • The customer handles VAT directly with the tax authority
  • See VAT Reverse Charge for configuration details

Rate Cards

What are Rate Cards?

Rate cards define customer-specific pricing for all billable items. Each customer is assigned one active rate card that determines:

  • Which services are charged
  • How much each service costs (overriding default prices)
  • When invoices are generated (billing frequency)
  • How invoices are consolidated

Required permission: invoicing.rate_cards

Creating a Rate Card

  1. Go to Invoicing > Rate Cards
  2. Click New Rate Card
  3. Fill in:
    • Customer: Select the customer this rate card applies to
    • Name: Descriptive name (e.g., “Standard Rates 2026”)
    • Valid From: Start date for these rates
    • Valid Until: End date (optional, leave blank for indefinite)
    • Invoice Frequency: Delayed, Daily, Weekly, or Monthly
    • Consolidation Mode: Per Dossier or Merged
    • Currency: EUR (default)
    • Auto-finalize generated invoices: When enabled, invoices generated for this customer are automatically finalized instead of waiting in Draft for manual review. This also triggers auto-send and auto-sync to accounting for that customer, if those are enabled.
  4. Click Save

Rate Card Line Overrides

Each line in a rate card can override the billable item defaults:

OverrideDescription
Unit PriceCustomer-specific price (overrides billable item default)
Minimum ChargeFloor for the calculated amount
Maximum ChargeCap on the calculated amount
VAT Rate OverrideCustomer-specific VAT rate
Payment Term Days OverrideCustomer-specific payment terms
Frequency OverridePer-line billing frequency override
Trigger Config OverrideCustomized trigger conditions
Description OverrideCustom line description on invoices

A line’s frequency override is pre-filled automatically when you add a billable item that has its own default invoicing cadence configured (see Default Invoice Frequency below) — you can still change it afterward unless that billable item’s cadence is locked.

Invoice Frequency

Rate cards support four billing frequencies:

FrequencyBehaviorWhen Invoices Are Generated
DelayedAfter dossier completionWhen dossier status becomes “Ready to Invoice”
DailyDaily batchDaily at configured time
WeeklyWeekly batchWeekly on configured day
MonthlyMonthly batchMonthly on configured day

Default Invoice Frequency per Billable Item

Each billable item can have its own default invoicing cadence, so you don’t have to remember to set it on every customer’s rate card individually. Open a billable item and set Invoice Frequency Default to one of the four frequencies above. Any rate card line you add for that item afterward is pre-filled with that cadence automatically; existing lines are never changed retroactively.

If a billable item’s cadence needs to be non-negotiable — for example duty items that must always be invoiced daily regardless of what a customer’s rate card normally uses — check Lock this frequency. A locked cadence overrides any per-customer override and can’t be changed on individual rate card lines. If any customers already have a different cadence configured for that item when you lock it, you’ll see a confirmation listing exactly which customers are affected before the change takes effect.

Consolidation Modes

ModeDescription
Per DossierCreates separate invoices per dossier per payment group, plus a statement of account
MergedCombines all dossiers for a customer into one invoice per payment group. If different dossiers are set to be billed to different companies (see Invoice-To Allow-List below), each billed company gets its own invoice instead of being combined together.

Assigning Rate Cards to Customers

  1. Go to Customers > Select a customer
  2. Open the rate card or create a new one linked to this customer
  3. Only one rate card can be active per customer at a time
  4. Use Valid From / Valid Until dates for rate card versioning

Multiple Rate Cards: A customer can have multiple rate cards with different date ranges. Only the currently valid and active rate card is used for billing.

Simulating a Rate Card

Before activating a new or edited rate card, you can test which charges it would apply to a specific declaration.

  1. Open the rate card’s detail page
  2. Click Simulate
  3. Search for a declaration by MRN or reference number
  4. Select the declaration from the results, which also show its declaration type and procedure codes
  5. The preview shows exactly which billable item lines would be charged, the calculated quantity and amount for each, and the totals per payment term group — along with any lines that would not be triggered for this declaration

This lets you confirm a rate card is configured correctly before making it active, without creating any actual charges.

Invoice Runs

What are Invoice Runs?

Invoice runs are batch processes that generate invoices for all customers with pending invoice lines. They are triggered automatically on a schedule or manually from the UI.

Viewing Invoice Run History

Required permissions: settings.view + invoicing.settings

  1. Navigate to Settings > Invoice Runs
  2. The list shows:
    • Frequency (delayed, daily, weekly, monthly)
    • Run date and duration
    • Status (running, completed, failed)
    • Customers processed
    • Invoices created
    • Total amount invoiced
    • Error messages (if any)

Manual Invoice Runs

Required permissions: settings.view + invoicing.settings

If a scheduled invoice run fails or needs to be re-run:

  1. Navigate to Settings > Invoice Runs
  2. Click Run Now
  3. Select the frequency (Delayed, Daily, Weekly, Monthly)
  4. Confirm the action
  5. The job is queued for background processing
  6. Refresh the page to see the new run log entry

Failed runs can also be retried by clicking Retry on the failed run’s detail row.

Manual runs execute in the background: Invoice generation runs asynchronously. It may take a few minutes to complete depending on the number of customers and invoice lines.

Scheduled Invoice Runs

Invoice generation runs automatically on a schedule:

  • Daily: Generates invoices for all customers with daily frequency rate cards
  • Weekly: Generates invoices for all customers with weekly frequency rate cards (previous calendar week)
  • Monthly: Generates invoices for all customers with monthly frequency rate cards (previous calendar month)
  • Delayed: Generates invoices for all dossiers in “Ready to Invoice” status with delayed frequency

Prepayment Invoices

How Prepayments Work

Customers can be configured with a prepayment threshold. When a dossier’s estimated duties exceed this threshold, a prepayment invoice is automatically generated.

Required permission: invoicing.payments

Prepayment Flow

  1. Customer has a Prepayment Threshold configured (per-customer or company default)
  2. Dossier is created with estimated duties exceeding the threshold
  3. System generates a prepayment invoice
  4. Customer pays the prepayment invoice
  5. Invoice is marked as paid and the dossier is flagged as prepaid
  6. When actual duty assessment arrives, the prepayment is deducted
  7. Credit note generated for any overpayment

Configuring Prepayment Thresholds

  • Per Customer: Set the Prepayment Threshold in Customers > Edit > Invoicing section
  • Company Default: Set the Default Prepayment Threshold in Settings > Billing Settings
  • Customer-level threshold overrides the company default

Customer Billing Configuration

Invoice-To Allow-List

Each customer has its own Invoice-To Allow-List — the list of companies allowed to be billed on that customer’s behalf. It’s managed on the customer’s edit page, in the Invoice-To Allow-List section:

  • Add an entry: Click Add invoice-to entry and select a company from the list. Add the customer itself to allow self-billing (the customer being billed directly for its own dossiers).
  • Set the default: Mark one entry as Default. When a dossier is created for this customer and no invoice-to company is explicitly chosen, the default entry is billed automatically.
  • Remove an entry: Click the trash icon next to a row.

When creating or editing a dossier, the invoice-to company must be on the customer’s allow-list — the system checks this whenever the dossier is saved and rejects a choice that isn’t on the list. The same check applies to declarations created through AI Email Import, where the Invoice to dropdown on the review screen offers only companies on the allow-list once the customer for that email has been identified.

Existing default no longer used automatically: A single default billing party used to be picked automatically (falling back to a parent company if one was configured). That automatic fallback has been replaced by the allow-list above — make sure each customer’s allow-list has a default entry configured, otherwise the customer bills itself by default.

Customer Invoice Settings

SettingDescription
Invoice EmailEmail address for invoice delivery
Auto-Send InvoicesAutomatically email invoices when finalized
Invoice-To Allow-ListThe companies allowed to be billed for this customer, with one marked as default
Prepayment ThresholdMinimum amount requiring advance payment

Dossier Revenue and Cost Tracking

Revenue Lines

Revenue lines are automatically created by trigger events and represent pending charges:

  • Pending (unlocked): Can be edited or deleted
  • Locked: Moved to an invoice, immutable

Each line tracks:

  • Which billable item generated it
  • Which declaration/transit triggered it
  • Which trigger event fired
  • The calculated quantity and amount
  • The payment term group and frequency

Cost Lines

Cost lines track what you pay (used for margin calculation):

CategoryDescription
DutiesImport/export duties from customs
TaxesVAT and other taxes
FreightShipping costs
InspectionCustoms inspection fees
StorageWarehouse storage
HandlingThird-party handling
OtherOther costs

Margin Tracking

Each dossier displays:

  • Total Revenue: Sum of all pending invoice line amounts
  • Total Costs: Sum of all purchase line amounts
  • Margin: Revenue minus Costs
  • Margin %: Margin as percentage of Revenue

Statements

What are Statements?

Required permission: invoicing.statements

Statements are consolidated summaries of all invoices for a customer over a period. They are automatically generated when using Per Dossier consolidation mode.

Generating Statements

  1. Go to Invoicing > Statements
  2. Click Generate Statement
  3. Select:
    • Customer: The customer to generate for
    • Period: Month, Quarter, or Custom date range
    • Include Paid: Show paid invoices or only unpaid
  4. Click Generate
  5. Download as PDF or email to customer

Invoice Line Deduplication

Control how duplicate billable items are handled when creating invoice lines.

Deduplication Modes

Configured globally in Settings > Billing Settings:

ModeBehaviorBest For
Allow Duplicates (default)Each trigger creates a new linePer-declaration billing, detailed audit trails
Update QuantityMerges duplicates by incrementing quantityVolume-based billing, consolidated invoices
SkipSkips if line already existsFlat fees, subscription billing

Locked Lines: Deduplication only applies to unlocked (draft) lines. Locked lines on finalized invoices are never modified.

Accounting Integration

Supported Systems

Required permission: invoicing.accounting

SystemFeatures
AFASInvoice export, customer sync, VAT mapping
e-BoekhoudenInvoice export, customer sync, GL accounts
SnelstartInvoice sync, payment matching, multi-admin
WeFactInvoice export, customer (debtor) sync
CSV ExportGeneric/Exact/Twinfield formats (manual)

Setting Up Integration

Required permission: invoicing.accounting

  1. Go to Invoicing > Accounting
  2. Select your accounting platform
  3. Enter API credentials
  4. Configure field mappings (ledger accounts, VAT codes, cost centers)
  5. Click Test Connection
  6. If successful, click Enable Integration

WeFact Invoice Delivery Settings: When WeFact is selected, two additional delivery options are available:

  • Sync invoices as: Choose Concept (stays in WeFact for review before sending) or Sent (marked as sent immediately)
  • Send invoice by email via WeFact: When enabled, WeFact emails the invoice to the customer directly, and the system’s own invoice email is skipped for that invoice so the customer isn’t emailed twice

Syncing Invoices

Automatic Sync: When an invoice is finalized, it is automatically sent to the accounting system (if enabled).

Manual Sync: Open an invoice and click Sync to Accounting to sync individually.

Batch Sync: Select multiple invoices and click Sync to Accounting.

PDF Generation and Download

Generating Invoice PDF

Required permission: invoicing.view

  1. Open a finalized invoice
  2. Click Download PDF or Preview PDF
  3. PDF includes:
    • Company logo and details
    • Invoice number and date
    • Customer billing address
    • Payment terms and due date
    • Line items with VAT breakdown
    • Payment instructions (IBAN, BIC, bank name)
    • Footer with terms and conditions

PDF Customization

Required permission: invoicing.designer

Customize invoice and statement templates via Settings > Template Designer.

Best Practices

Invoicing Workflow

  1. Complete Dossier: Ensure all services delivered before invoicing
  2. Review Revenue: Check all billable items are included
  3. Check Margins: Verify profitability before sending to customer
  4. Finalize Invoice: Lock the invoice with final number
  5. Send Promptly: Email invoice within 24 hours of completion
  6. Follow Up: Send reminder if unpaid after 7 days past due

Rate Card Management

  • Annual Review: Update rate cards yearly for inflation
  • Customer Tiers: Create different rate cards for different customer segments
  • Effective Dates: Set effective dates in advance for planned price changes
  • Versioning: Use Valid From / Valid Until dates to maintain pricing history

Payment Collection

  • Clear Terms: Always specify payment terms on invoices
  • Prompt Billing: Invoice immediately after service completion
  • Automate: Use auto-send and periodic invoice runs to reduce manual work
  • Statements: Send monthly statements to customers with recurring business

Troubleshooting

Invoice Not Generating from Dossier

“No invoice lines found”

  • Check dossier has revenue lines added
  • Verify revenue lines are not already locked/invoiced
  • Ensure customer has an active rate card with billable items
  • Check deduplication settings

“Customer not eligible for invoicing”

  • Verify customer has complete billing details
  • Check customer is active (not archived)
  • Ensure customer has an active rate card

Duty Pass-Through Not Working

“No duty lines created after tax assessment”

  • Verify rate card has per_declaration_duties billable items
  • Check duty_type_code in trigger config matches the assessed duty type
  • Review customs response logs for tax assessment processing

Invoice Run Failed

  • Check Settings > Invoice Runs for the error message
  • Common causes: configuration issues, missing rate card data
  • Use Retry button to re-run failed runs
  • Contact support if the issue persists

Accounting Integration Issues

“Invoice sync failed”

  • Check API credentials are still valid
  • Verify customer exists in accounting system
  • Check ledger account mappings are correct
  • Review sync error log for specific error message
Last updated on