API change log
Contract changes that ship with each API version. Review this before setting X-MARMIN-VERSION: 20260507 in production.
How to upgrade (overview)
Read the migration guide for your target version below.
Test in sandbox with
X-MARMIN-VERSION: 20260507on every request in a workflow.Validate affected endpoints (create, retrieve, list) before production.
Roll back by keeping
X-MARMIN-VERSION: 20260101until migration is complete.
Deprecation policy
Older API versions remain available until announced otherwise. When a version is deprecated, this page will list a sunset date and required migration path. Current status: 20260101 baseline and 20260507 latest are both supported.
---
2026-07-07 — Endpoint ID mandatory
Who is affected
Integrators that create or resubmit sale invoices, sale credit notes, purchase invoices, purchase credit notes, or proforma invoices and send accounting_customer_party or accounting_supplier_party.
What changed
FTA substitute reference
For Peppol-registered UAE parties, use the party's 10-digit TIN as endpoint_id with 0235.
Migration steps
Audit payloads — ensure every create/resubmit request includes both
endpoint_idandendpoint_scheme_idon the party you send.Map transaction types — use the table above for deemed supply, exports, and non-compliant parties.
Remove reliance on defaults — do not omit endpoint fields expecting Marmin to apply
9900000098.Test in sandbox with
X-MARMIN-VERSION: 20260507.
Affected endpoints
All document create and resubmit endpoints for invoices, credit notes, and proforma invoices
Rollback
Keep X-MARMIN-VERSION: 20260101 until your payloads always include explicit endpoint values.
---
2026-05-07 — `payment_means` shape change
Who is affected
Integrators that create, retrieve, or list sale invoices or purchase invoices and parse or send payment_means.
What changed
Migration steps
Requests: Wrap existing
payment_meansobject in an array. One payment method → one-element array.Responses: Read
payment_meansas an array. Usepayment_means[0]where you previously read the object directly.Multiple methods: You may now send several payment methods in one invoice (see Multiple payment modes).
Test: Run create → retrieve for each document type you use in sandbox with
X-MARMIN-VERSION: 20260507.
Code migration hint
// Before
const code = invoice.payment_means.payment_means_code;
// After
const code = invoice.payment_means[0]?.payment_means_code;# Before
code = invoice["payment_means"]["payment_means_code"]
# After
code = invoice["payment_means"][0]["payment_means_code"]Affected endpoints
Testing checklist
[ ] Create invoice with one
payment_meansitem (array with length 1)[ ] Create invoice with multiple
payment_meansitems[ ] Create invoice with
payment_meansomitted ornull(still accepted on current version)[ ] Retrieve returns
payment_meansas array[ ] List
content[].payment_meansis array on each item[ ] Resubmit and retrieve flows use the same
X-MARMIN-VERSIONheader as create
Rollback
Keep X-MARMIN-VERSION: 20260101 on all requests until your parsers handle the array shape. Legacy clients can remain on 20260101 until rollout is complete — that is a deployment choice, not a sandbox test step.
Common errors
Use the Payload examples panel on the right to compare before and after JSON shapes.
Before you upgrade
Update your code to read and write
payment_meansas an array.Test the endpoints you use in sandbox with
X-MARMIN-VERSION: 20260507.Use the same header value on every request in a workflow.
Stay on
20260101until validation is complete.
