Tracking
Get a transaction
The full lifecycle of one sent document, across both destinations.
GET
/v1/api/transactions/{transaction_id}status summarises delivery — see Status values for the full list on
both delivery and tax_report. metadata is yours to set on send and is returned unchanged, useful
for correlating against your own ERP's record (erp_ref above).
Response fields
| Field | Type | Description | |
|---|---|---|---|
| status | enum | — | Overall state. Summarises delivery — see Status values |
| delivery.status | enum | — | Getting the document to the buyer |
| delivery.attempts | integer | — | Transmission attempts so far. Retries are automatic |
| delivery.response_code | string | — | AP accepted or RE rejected by the receiver |
| tax_report.status | enum | — | Reporting to the Tax Authority — independent of delivery |
| tax_report.tdd_uuid | uuid | — | Identifier of the Tax Data Document filed |
| tax_report.reason | string | — | Why the Authority refused it, when rejected |
| documents.xml_url | string | — | Signed link to the UBL. Expires — fetch a fresh one rather than storing it |
| events | array | — | Append-only history, oldest first |
A failure is provisional
Delivery retries on a schedule, so delivery.status: "failed" with attempts remaining
isn't final. Wait for the transaction.failed webhook, or for attempts to stop rising,
before treating a document as undeliverable.