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
Sección titulada «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 newTRANSACTION::INVOICERecord with a new idempotency key, the same invoice number, date and content. -
If
content.logscontains noERRORentries, validation passed and the e-invoice was submitted for transmission. Proceed to Step 2.
Step 2: Retrieve the E_INVOICE::TRANSMISSION Record
Sección titulada «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
ERRORentries, the e-invoice could not be delivered through the e-invoicing channel. Themessagefield describes what went wrong. -
If the error concerns the invoice content, correct the request payload accordingly and create a new
TRANSACTION::INVOICERecord 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.logscontains noERRORentries 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.
Reading a log entry
Sección titulada «Reading a log entry»Each log entry contains the following fields:
| Field | Description |
|---|---|
severity | ERROR (a failure that prevented delivery) or WARNING (a non-fatal issue, the operation still proceeded). |
message | A human-readable description of the issue. |
code | A machine-readable code to categorize the log. |
date | The timestamp when the log was created. |
Example
Sección titulada «Example»[ { "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.