Zum Inhalt springen
Section navigation

How to check the status of an e-invoice?

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

When creating an invoice Record (TRANSACTION::INVOICE), a transmission Record (E_INVOICE::TRANSMISSION) is also created alongside to track the delivery of the e-invoice. 

Note: A TRANSACTION::INVOICE in COMPLETED state and FINISHED mode does not necessarily mean the e-invoice was accepted. Diagnostic logs on both Records should be checked to identify any issues. For E-INVOICE DE  and BE, the TRANSACTION::INVOICE Record reaches the COMPLETED state as soon as the e-invoice is accepted for transmission, while the E_INVOICE::TRANSMISSION Record shows the actual delivery status. For this reason, the states of the two Records can differ. For E-INVOICE IT, the states of the two Records are always aligned.

Step 1: Retrieve the TRANSACTION::INVOICE Record

Section titled “Step 1: Retrieve the TRANSACTION::INVOICE Record”

When creating a TRANSACTION::INVOICE, save the record id from the API response. Then retrieve it using:

GET /records/{{record_id}}

In the response, check the content.logs field:

  • If it contains entries with "severity": "ERROR", the invoice failed validation before any transmission was attempted. To resolve the issue, review the error message, correct the request payload accordingly, and create a new TRANSACTION::INVOICE Record with a new idempotency key, the same invoice number, date and content. 

  • If content.logs contains no ERROR entries, validation passed and the e-invoice was submitted for transmission. Proceed to Step 2.

Step 2: Retrieve the E_INVOICE::TRANSMISSION Record

Section titled “Step 2: Retrieve the E_INVOICE::TRANSMISSION Record”

In the TRANSACTION::INVOICE response from Step 1, locate the content.used_in.id field. This is the ID of the E_INVOICE::TRANSMISSION Record. Retrieve it using:

GET /records/{{content.used_in.id}}

Check the content.logs field:

  • If it contains ERROR entries, the e-invoice could not be delivered through the e-invoicing channel. The message field describes what went wrong. 

  • If the error concerns the invoice content, correct the request payload accordingly and create a new TRANSACTION::INVOICE Record with a new idempotency key, the same invoice number, date and content.

  • If the error indicates a network or infrastructure issue, retry after a short delay.  If the issue persists, contact fiskaly support.

  • If content.logs contains no ERROR entries on both Records, the transmission may still be in progress. E-invoice delivery is handled asynchronously:

For DE and BE, it typically completes within seconds to minutes. 

  • For IT, the response from SDI can take up to 5 days. 

If the e-invoice is still not delivered after several minutes for DE and BE, or after 5 days for IT, contact fiskaly support.

Each log entry contains the following fields:

FieldDescription
severityERROR (a failure that prevented delivery) or WARNING (a non-fatal issue, the operation still proceeded).
messageA human-readable description of the issue.
codeA machine-readable code to categorize the log.
dateThe timestamp when the log was created.
[
{
"code": "Log@v1",
"date": "2026-05-13T08:32:18.214995449Z",
"message": "invalid Belgian VAT ID length '12'",
"severity": "ERROR"
},
{
"code": "Log@v1",
"date": "2026-05-13T08:32:18.30059009Z",
"message": "e_invoicing failed: code: invalid format.",
"severity": "ERROR"
}
]

 

Note: WARNING logs are informational and do not affect the transmission of the e-invoice.