Send raw UBL
For callers who already generate compliant PINT OM UBL themselves.
For callers who already generate compliant PINT OM UBL and want to skip the JSON-to-UBL build step that Create an invoice handles. You keep control of the document; you also take on responsibility for keeping it compliant as the Oman specification evolves. Once accepted, the same tracking, webhook, and download model applies — see Get a transaction.
/v1/api/documents| Field | Type | Description | |
|---|---|---|---|
| sender_id | uuid | required | The taxpayer issuing the document. Must be the party the document itself names as issuer |
| document | string | required | The complete UBL XML, as a JSON string |
Only sender_id and document are accepted — the receiver is always derived from the UBL you send,
not taken from the request, and there's no metadata field or per-send webhook_url override.
The sender named in sender_id must match who the document itself says issued it — the API checks the
UBL's own supplier (or, for self-billed types, buyer) party against the taxpayer's VAT id / electronic
address before accepting it, and rejects a mismatch. That's a security boundary, not a formatting
nicety: without it, one valid API key could issue documents under any taxpayer's name.
Response fields
| Field | Type | Description | |
|---|---|---|---|
| transaction_id | uuid | — | Track delivery and tax reporting with this — see Get a transaction |
| document_id | uuid | — | Same value as transaction_id. Fetch the transmitted XML or a rendered PDF back with this id — see Download a document |
| invoice_uuid | uuid or null | — | Read from the UBL's own cbc:UUID. Null if the document doesn't carry one |
| invoice_number | string or null | — | Read from the UBL, not generated |
| status | enum | — | Always queued on success |
| peppol_instance_id | string or null | — | The Access Point's correlation handle. Null until the dispatch sweep actually transmits — poll Get a transaction rather than expecting it here |
| tax_report.status | enum | — | Always pending immediately after send |
| tax_report.tdd_uuid | uuid | — | Identifier of the Tax Data Document derived from your document |