Peppol Transmission Status
After a document is created, Marmin transmits it over the Peppol network and tracks validation by the Oman Tax Authority (OTA). Transmission metadata is available on every document response and through dedicated status endpoints.
Overview
Message direction:
Sales documents (invoices, credit notes, debit notes) use sent messages.
Purchase documents (invoices, credit notes) use received messages.
Response meta_info object
Every document create and retrieve response may include a meta_info object:
Peppol status object
The meta_info.peppol_status field is an object with the following attributes:
Status values
Client processing guidance
Treat
overall_statusas the primary state for workflow decisions.Use
participant_statusandota_statusas stage-specific diagnostics for UI and support logs.If
overall_statusisPENDING, keep the document in a processing state and re-fetch the document later.If
overall_statusisAPPROVED, mark the Peppol flow as successful and continue normal downstream actions.If
overall_statusisREJECTEDorVALIDATION_FAILED, stop submission-dependent actions and surface the failure to users.When
validation_resultsis not empty, display user-friendly error summaries fromtext, and retainflag,reasonCode,location, andtestfor troubleshooting.participant_statusorota_statuscan benullin early or failed validation stages; do not treatnullalone as success or failure.
Dedicated status endpoints
In addition to meta_info on the document object, each document type exposes:
{id} is the document's Marmin ID (same as retrieve). Both endpoints resolve the document's internal uuid under the hood.
When to use which
Polling guidance
Prefer re-fetching the document (
GET /api/{document-type}/{id}) and readingmeta_info.peppol_status.overall_status.Stop polling once
overall_statusreaches a terminal state (APPROVED,REJECTED, orVALIDATION_FAILED).GET .../peppol-statusreturns{}when transmission has not started yet — this is not an error.
Get Peppol status response fields
Returns a single current snapshot (camelCase), unlike the chronological status log.
Root fields
`toC3` object (billing / PINT)
`toC5` object (tax reporting)
Same shape as toC3 in general: country, docTypeId, documentXml, lastUpdated, mlsResponse, processId, receiverId, senderId, status, transmissionUuid, transmissionResponse. The docTypeId and processId values reflect the tax reporting profile (e.g. urn:peppol:taxreporting).
`transmissionResponse` object
Present under toC3 and toC5 when the API returns transmission metadata.
Peppol status log response fields
Returns a time-ordered list of events (snake_case). Each entry includes:
Credit note documents use the same event log shape as invoices and debit notes.
Related documentation
Invoice QR Code and Seller UUID — explains
seller_uuidvsuuidGet Peppol status and Retrieve Peppol status log under each document type in the sidebar