Create a bulk invoice import batch

Submits up to 100 invoice XML files in a single multipart request and imports them asynchronously, using the same per-file pipeline as the web-UI bulk upload.

Processing is always asynchronous. This endpoint returns 202 Accepted immediately with the batch ID and processing status. Use the GET /accounts/{account}/invoices/imports/{id} endpoint to poll for per-file outcomes, or subscribe to the invoice_import.finished webhook event to be notified when the whole batch finishes.

Per-file deduplication: files whose SHA-256 digest is already present in the project are recorded with error_message: duplicated_document instead of being re-imported. Two files in the same batch with the same digest also collide — the second receives the same dedup marker.

Filename correlation: the results[].filename field echoes the multipart filename for items that have not yet been imported. Once an item is imported, the polymorphic association on the wrapper row swaps from the original Attachment to the resulting Invoice and the filename is no longer accessible. Clients correlate imported items by the explicit results[].index (zero-based position in the original upload, always present) or by invoice_id.

Webhook payload note: the invoice_import.finished webhook carries only the batch summary (batch_id, status, summary, status_url). Per-file results are not included to keep the payload under the web_hook_calls.data 65535-byte cap — fetch them via the status_url GET endpoint.

Limits: Maximum 100 files per batch.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Account identifier (ID)

Body Params
files
array of files
required
length between 1 and 100

Invoice XML files to import.

string

Origin tag stored on the resulting Invoice (e.g. uploaded, sftp, peppol). Defaults to uploaded.

boolean

Whether the files should be imported as issued (sent by the account) or received. Defaults to the receiver behaviour for most networks.

boolean

Run import-time validations (default true).

boolean

Keep the original XML attached to the Invoice (default true).

boolean

After importing, attempt to send the resulting invoice. Same semantics as the single-file POST .../invoices/import endpoint.

boolean

After importing, issue the resulting invoice without sending it. If both send_after_import and issue_after_import are true, send_after_import wins.

Headers
string
Defaults to 2026-06-26

Specifies the version of the API to use in this request. If not specified uses the API-Version set in the group conifguration
B2Brouter UI Application -> Developers -> API Keys -> API Version

Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json