Docs

Get an invoice's current state

  • In the sandbox

In plain words

Shows where one invoice stands.
GET
/invoices/{id}

Authorization

apiKey
headerAuthorizationBearer <token>

Send your key as a bearer token: Authorization: Bearer <your-api-key>. Health is the only call that needs no key.

Path parameters

id*string

The invoice id returned by the submit call.

Match^inv_[A-Za-z0-9]{16,40}$

Response body

The invoice.

application/json
  1. response
id*string
invoice_ref*string
invoice_number?string
route*Route

The country route. The same values as country_route in status events.

Value in"PEPPOL""PL-KSEF""RO-EFACTURA""FR-PA""DE-XRECHNUNG"
environment*string
Value in"sandbox""production"
state*InvoiceState

The service's own state for an invoice. Status events report the partner-facing lifecycle; queued and submitting are internal steps between validated and submitted. validation_failed means the official rules refused the document; since 0.18.4 a check that did not run (KOSIT-RUN, EI-PDF-CHECK) retries instead, then ends dead_letter with that code. A dead_letter keeps its document held, so the same file answers with duplicate_of; since 0.18.6 the operator can cancel one for which no call to the route was made, and then the file can go again.

Value in"received""source_error""validated""validation_failed""queued""submitting""submitted""ready""accepted""rejected""delivered""cancelled""dead_letter"
legal_id?|

KSeF number, ANAF upload index, access-point document ID, French platform invoice ID.

buyer_status?string|null
document_sha256?|
Match^[a-f0-9]{64}$
attempts?array<>

Earlier submissions of the same invoice_ref (for example after a rejection and a fix).

errors?array<>
documents?array<>
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
deadline_at?string

An indicative deadline for this invoice, as the last moment of its last permitted day in UTC (read the date part as that day): the issue date plus five working days for Romania (e-Factura), the next business day for Poland (KSeF offline24). Days are counted Monday to Friday and public holidays are not applied, so the real deadline can be later, never earlier; it is not legal advice. Given in every state of the invoice; it does not say the invoice was on time or late. Present only for those two routes, and only when the invoice carries an issue date: POST /invoices with an invoice.issue_date, or since 0.19.2 a UBL file (cbc:IssueDate) or an FA(3) file (Fa/P_1) sent as XML or dropped in the folder. A PDF carries none, and its absence does not mean no deadline applies. Since 0.19.1.

Formatdate-time
curl -X GET "https://example.com/invoices/inv_bd8bc8b276f38643f1c0f24f" \  -H "Authorization: Bearer <your-api-key>"
{  "invoice_ref": "CAPTURE-JSON-1790961440",  "environment": "sandbox",  "document_sha256": "45f857890231e9bc6e73c1ec1e53bc01e7b030f84068b324bdd9ef42b88322bc",  "route": "DE-XRECHNUNG",  "updated_at": "2026-10-06T19:49:02.676Z",  "documents": [    {      "sha256": "45f857890231e9bc6e73c1ec1e53bc01e7b030f84068b324bdd9ef42b88322bc",      "kind": "canonical",      "href": "/invoices/inv_936a93e38de84e7b0a1d7681/documents/canonical"    },    {      "sha256": "ad122fe72dc6f04b2de6b6bbc01fcb7e46e33116b12e3bbb02a569cde3f10106",      "kind": "manifest",      "href": "/invoices/inv_936a93e38de84e7b0a1d7681/documents/manifest"    },    {      "sha256": "941fd5005aa03586a7bf23f3039c6d15e38220879d46690f9199a494e35fdc11",      "kind": "validation-report",      "href": "/invoices/inv_936a93e38de84e7b0a1d7681/documents/validation-report"    },    {      "sha256": "251a52fec3bdd44555a7396a1567d62c5ada3e3b7d002bb757d6b50e347c2e90",      "kind": "xrechnung-ubl",      "href": "/invoices/inv_936a93e38de84e7b0a1d7681/documents/xrechnung-ubl"    }  ],  "client": "acme-srl",  "created_at": "2026-10-06T19:49:01.621Z",  "id": "inv_936a93e38de84e7b0a1d7681",  "state": "ready",  "invoice_number": "DOC-mux3dlqm"}