Send invoice (legacy v1)
POST/v1/invoices/send
This endpoint has been deprecated and may be replaced or removed in future versions of the API.
Legacy — use POST /v2/invoices/send for new integrations.
Validates invoice data, builds a Peppol BIS Billing 3.0 UBL document, and submits it to the network. This endpoint uses an extraction-shaped request body. The v2 endpoint provides a cleaner, business-shaped contract.
Idempotency: Pass an Idempotency-Key header (any unique string up
to 128 chars) to prevent duplicate submissions on retry. If a record
with the same key already exists for your tenant, the original result is
returned without resubmitting.
Pre-flight validation:
- Sender and receiver must be valid ISO 6523 IDs (
XXXX:identifier) - Sum of line-item totals must match
totalAmountwithin ±0.02 - UBL is validated against Peppol BIS 3.0 rules before network submission
Request
Responses
- 200
- 400
- 401
- 403
- 429
Invoice submitted
Response Headers
Effective per-minute request budget for this API key + verb. Defaults to 60 GET / 20 POST, overridable per key via the admin policy endpoint.
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.
Unix epoch seconds at which the oldest request in the current window ages out — i.e. the earliest time remaining could increase.
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.
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.
Validation error
Missing or invalid credentials
Source IP is not in the allowlist for this API key. Configured via
the admin policy endpoint — when allowedIps is set, the source IP
of every /v1/* request is checked against the list.
Rate limit exceeded. Defaults: 60 GET/min, 20 POST/min per API key;
overridable per key via the admin policy endpoint. Every response
(success and 429) carries X-RateLimit-Limit, X-RateLimit-Remaining,
X-RateLimit-Reset.
Response Headers
Seconds to wait before retrying
Effective per-minute request budget for this API key + verb. Defaults to 60 GET / 20 POST, overridable per key via the admin policy endpoint.
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.
Unix epoch seconds at which the oldest request in the current window ages out — i.e. the earliest time remaining could increase.