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.

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
    • 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)
  • 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 (AFAS, e-Boekhouden, Snelstart)
  4. On success: status changes to Synced, external ID is recorded
  5. On failure: error message is logged for review

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
  • All sync attempts are logged with timestamps, duration, and error details
  • Failed syncs can always be retried manually

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

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 assessment (CCTAXA)Customs webhook
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 by typedeclaration_types: ['H1', 'H7']
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'
ManualNever auto-triggered, added manually-

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)

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: Immediate, Delayed, Daily, Weekly, or Monthly
    • Consolidation Mode: Per Dossier or Merged
    • Currency: EUR (default)
  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

Invoice Frequency

Rate cards support five billing frequencies:

FrequencyBehaviorWhen Invoices Are Generated
ImmediateReal-time per eventAs soon as a trigger event fires
DelayedAfter dossier completionWhen dossier status becomes “Ready to Invoice”
DailyDaily batchDaily at configured time
WeeklyWeekly batchWeekly on configured day
MonthlyMonthly batchMonthly on configured day

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

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.

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 Customer

Customers can be configured to bill a different entity:

  • Default: Invoice sent to the declaring customer
  • Explicit Override: Set the Invoice-To Customer field to bill a different customer
  • Freight Forwarder Parent: If the customer has a parent freight forwarder, invoices go to the parent

Resolution priority: Explicit override > Parent forwarder > Self

Customer Invoice Settings

SettingDescription
Invoice EmailEmail address for invoice delivery
Auto-Send InvoicesAutomatically email invoices when finalized
Invoice-To CustomerOverride which customer receives invoices
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

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