E-invoice artifacts (EN 16931 / XRechnung / Peppol): generation, validation findings, and document downloads.
Count e-invoice documents per invoice (batch)
Returns a flat {invoice_id: count} map so the invoice list can render a per-row "has e-invoice document" badge in one extra round-trip rather than N. Up to 200 ids per call.
query Parameters
invoice_idsComma-separated invoice UUIDs (max 200)
Comma-separated invoice UUIDs (max 200)
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Count e-invoice documents per invoice (batch) › Responses
OK
List e-invoice documents
Every artifact ever rendered for the org, most recent first — the single canonical home for e-invoice documents. Filter to one parent with ?invoice_id=
query Parameters
invoice_idScope to one invoice's documents (canonical replacement for the retired /e-invoicing/invoices/{id}/documents nesting)
Scope to one invoice's documents (canonical replacement for the retired /e-invoicing/invoices/{id}/documents nesting)
credit_note_idScope to one credit note's documents (canonical replacement for the retired /e-invoicing/credit-notes/{id}/documents nesting)
Scope to one credit note's documents (canonical replacement for the retired /e-invoicing/credit-notes/{id}/documents nesting)
profileExact profile ID match
Exact profile ID match
quarantined_onlyReturn only quarantined docs (true/1)
Return only quarantined docs (true/1)
limitPage size. Values above the server-side cap are clamped (standard default 50, cap 200; a few document-heavy lists use larger windows). Invalid values fall back to the default.
cursorOpaque continuation token from the previous response's pagination.cursor. Omit for the first page. Cursors are stateless and do not expire, but are only valid for the list and filters that produced them.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List e-invoice documents › Responses
OK
Generate an e-invoice document for an invoice
Renders and stores a new e-invoice artifact for the invoice named in the body (invoice_id, plus optional profile). Creates a row in the /e-invoicing/documents collection; 201 with the generated document.
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Generate an e-invoice document for an invoice › Request Body
credit_note_idCredit note to generate the e-invoice for; set exactly one of invoice_id or credit_note_id.
invoice_idInvoice to generate the e-invoice for; set exactly one of invoice_id or credit_note_id.
jurisdictionOptional jurisdiction hint (e.g. DE) that selects jurisdiction-specific rules.
profileTarget e-invoice profile (e.g. EN16931_UBL, XRECHNUNG_CII, PEPPOL_BIS); required.
Generate an e-invoice document for an invoice › Responses
Created
Get an e-invoice document's metadata
Returns the document's metadata row (parent invoice or credit note, profile, syntax, jurisdiction, content hash, byte size, quarantine reason) without the artifact bytes — use /e-invoicing/documents/{id}/raw for the payload.
path Parameters
idDocument UUID
Document UUID
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get an e-invoice document's metadata › Responses
OK
List validation findings for an e-invoice document
Returns every validation finding recorded for the document, resolved ones included (those carry resolved_at and resolution_notes). Findings identify the violated rule, severity, and the XPath of the offending element where available.
path Parameters
idDocument UUID
Document UUID
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List validation findings for an e-invoice document › Responses
OK
Download an e-invoice document's bytes
Streams the artifact bytes with a Content-Disposition attachment header. With ?presigned=1 the response is a 302 redirect to a short-lived presigned URL instead.
path Parameters
idDocument UUID
Document UUID
query Parameters
presignedReturn a 302 redirect to a presigned URL instead of streaming (presigned=1)
Return a 302 redirect to a presigned URL instead of streaming (presigned=1)
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Download an e-invoice document's bytes › Responses
Document bytes
Mark a finding resolved (operator override)
Stamps the finding resolved_at with optional operator notes from the body ({"notes": "..."}; a bare POST resolves with empty notes). Record-keeping only: the document is not re-validated and its quarantine state is untouched. A finding that is already resolved responds 404.
path Parameters
idFinding UUID
Finding UUID
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Mark a finding resolved (operator override) › Request Body
notesOptional operator notes explaining why the finding was overridden/resolved.
Mark a finding resolved (operator override) › Responses
No Content