Overview
The shape of every integration — onboard, send, track two outcomes, receive.
Every request is JSON over HTTPS, authenticated with an API key. Sending is asynchronous: you get a
transaction_id immediately and track progress by polling or by webhook.
| Base URL | https://api.joinsumu.com/v1/api |
| Sandbox | https://sandbox.api.joinsumu.com/v1/api |
| Spec | PINT OM 1.0.1 |
The shape of an integration
- Onboard each taxpayer once. Register the business you're sending on behalf of, then register it on the Peppol network so others can invoice it.
- Send documents. Either as structured JSON that SUMU turns into compliant UBL, or as UBL you've already built yourself. Checking the buyer with Participant lookup first catches an unregistered receiver before you've committed an invoice number to it — see Best practices.
- Track two outcomes. Every Oman invoice has two independent destinations — the buyer, and the Tax Authority. They succeed and fail separately.
- Receive inbound documents through webhooks.
Why two delivery tracks
Oman requires every issued invoice to be reported to the Tax Authority as a Tax Data Document, within
15 minutes for B2B and 30 minutes for B2C. That report is separate from delivering the invoice to the
buyer — a rejected delivery doesn't retract the tax report, and a failed tax report doesn't mean the
buyer never received it. delivery and tax_report are always reported as two separate objects.
Response envelope
Every response carries the same wrapper. Endpoint pages in this reference show the contents of data
— assume the envelope around it unless stated otherwise.
{
"statusCode": 202,
"request_id": "a78010ec-a2bd-41e7-9c0d-654449103c7b",
"timestamp": "2026-08-13T10:30:00.000Z",
"message": "Document queued for delivery",
"data": { }
}Quote request_id in any support conversation — it identifies the exact request in SUMU's logs.
Versioning and support
SUMU is a certified Peppol Access Point. Breaking changes ship as a new version path — /v1/api
itself stays stable. Questions: support@joinsumu.com.