Skip to main content

Send invoice (v2)

POST 

/v2/invoices/send

Business-shaped invoice send endpoint. Recommended for new integrations.

Accepts a structured invoice + routing JSON body, validates totals and tax breakdowns, builds a Peppol BIS Billing 3.0 UBL document, and submits it to the network.

Key differences from v1:

  • Uses supplier/buyer instead of vendor/customerName
  • Structured addresses with explicit countryCode
  • taxRate is a percentage (21.0 for 21%), not a fraction (0.21)
  • Explicit totals block cross-validated against line items
  • No extraction concepts (extractionConfidence, etc.)

Idempotency: Pass an Idempotency-Key header (any unique string up to 128 chars) to prevent duplicate submissions on retry.

Pre-flight validation:

  • Sender and receiver must be valid ISO 6523 IDs (XXXX:identifier)
  • Declared subtotal must equal sum of line extensions (zero tolerance)
  • grandTotal must equal subtotal − allowances + charges + taxAmount
  • UBL is validated against Peppol BIS 3.0 rules before network submission

Request

Responses

Invoice submitted

Response Headers
    X-RateLimit-Limit

    Effective per-minute request budget for this API key + verb. Defaults to 60 GET / 20 POST, overridable per key via the admin policy endpoint.

    X-RateLimit-Remaining

    Requests remaining in the current window for this API key + verb. Decrements by 1 on each accepted request; resets to limit when the sliding window rolls over.

    X-RateLimit-Reset

    Unix epoch seconds at which the oldest request in the current window ages out — i.e. the earliest time remaining could increase.

    Idempotency-Key

    Echoes the Idempotency-Key request header back to the client on every response where one was supplied, so integrator retry logic can correlate against the server's view of the request.

    Idempotency-Replay

    true when the response body was served from the idempotency cache (i.e. the request was a replay of a previously accepted submission). false on the first submission with a given Idempotency-Key.