Outgoing invoices
Create a draft
POST /public/v1/outgoing-invoices accepts structured JSON or raw UBL. Without issue: true, it creates a draft and returns 201 Created. Automatic issuance returns 202 Accepted and an operation resource.
Structured input inherits the issuer, operator, and default revenue account from the API client profile. A caller cannot switch organizations by sending a different OIB.
Update a structured draft
PATCH /public/v1/outgoing-invoices/{invoiceId} updates a structured draft. A raw UBL draft is immutable through this route; create a new draft when its source XML must change.
Validate without issuing
POST /public/v1/outgoing-invoices/{invoiceId}/validate runs exchange and fiscalization validation over the effective UBL without transmitting it.
Issue
POST /public/v1/outgoing-invoices/{invoiceId}/issue locks settlement and the document chain, selects the authoritative route, revalidates the UBL, performs delivery and fiscalization in the required order, and persists external identifiers and the terminal outcome.
Read and filter
GET /public/v1/outgoing-invoices?status=ISSUED&from=2026-09-01&to=2026-09-30&limit=100
GET /public/v1/outgoing-invoices/{invoiceId}
GET /public/v1/outgoing-invoices/{invoiceId}/status
GET /public/v1/outgoing-invoices/{invoiceId}/extract-xml/ubl