The built files of up to 200 invoices as one zip
- In the sandbox
Since 0.33.0 (16 Oct 2026). Body {"ids": [...]}, 1 to 200 invoice ids. The zip holds one file per built
document (UBL, CII, FA(3), XRechnung, Factur-X, ZUGFeRD, PDF, or the XML as received for a pass-through), named
<invoice_number>.<xml|pdf> (with the kind added when one invoice has two XML files), and manifest.csv with
invoice_id,invoice_ref,invoice_number,route,state,file,kind,sha256. The canonical JSON, the validation report
and the ERP's export are left out. An id that is unknown or another client's is skipped without being named,
like an invoice with no built file yet; X-Export-Skipped counts them. The read scope; 10 exports a minute per
client, shared with GET /exports/{dataset}; a data_exported audit row with the zip's SHA-256.
apiKeyAuthorizationBearer <token>Send your key as a bearer token: Authorization: Bearer <your-api-key>. Health is the only call that needs no key.
application/json- body
ids*array<>1 <= items <= 200The zip.
response?fileapplication/zipbinarycurl -X POST "https://example.com/invoices/export" \ -H "Authorization: Bearer <your-api-key>" \ -H "Content-Type: application/json" \ -d '{ "ids": [ "string" ] }'"string"Stop an invoice that has not been submitted yet POST
Works only while the invoice is received, validated or queued. Since 0.18.3, once a send was tried and its answer was lost (a timeout or a 5xx), the invoice reads submitting and a cancel answers 409 send-in-progress, because the route may hold it; the worker settles it as submitted or dead_letter. Once the route has it, a cancellation is a business document (a credit note, or a KOR in Poland), not an API call. Since 0.18.5 a cancel of an invoice that is already cancelled answers 200 with it, so a retry after a lost answer is safe. Since 0.18.6 the operator's key may cancel a dead_letter invoice when no call to the route was ever made for it: nothing can be on the route, so the same document can be sent again afterwards. When a call was made, the answer is 409 dead-letter-reached-rail, because a send whose answer was lost may be there: check with the route first. A client's key gets 409 dead-letter; the operator decides.
Get an invoice's current state GET
Next