For developers
A REST API for teams who build their own
If your billing lives in something we do not connect to out of the box — an in-house system, a bespoke ERP, a product you sell to others — integrate against the API and we handle the MRA channel behind it.
The shape of it
Post a document, get a fiscal reference
You send the document in our JSON structure. We validate it, map it to the MRA e-invoice format, transmit it to the Invoice Fiscalisation Platform, and return the Invoice Reference Number and QR payload. One call, one answer.
Every request is scoped to your Entity ID and business unit, so activity is attributable and auditable per company. Full reference documentation and sandbox credentials come with your account.
Reference
What the API covers
- Fiscalise a document
- Invoices, receipts, credit notes and debit notes. Returns the fiscal reference, QR payload and the MRA response verbatim.
- Validate without sending
- Run the same schema, buyer-identification and per-line tax checks we run before transmission, without touching the MRA channel. Useful in your test suite.
- Retrieve the register
- Query fiscalised documents by date, status, buyer or reference — for reconciliation and for the five-year retention obligation.
- Status and rejections
- Poll a document, or receive a callback when its state changes. Rejections carry the MRA reason code and the field that caused it.
- Sandbox and production
- Separate keys for each. Sandbox mirrors production validation so you can build against real rejections before you go live.
Practicalities
Things worth knowing early
Amounts are decimal, never floats in transit. Tax is computed per line and totals are summed from rounded lines, so the printed document always adds up. Currency is MUR unless you say otherwise. Timestamps are ISO 8601.
Rate limits, retry semantics and the idempotency key convention are in the reference documentation issued with your keys — retries matter here, because a document that was accepted by the MRA must never be transmitted twice.
Get started
Open an account, then generate sandbox keys from the API access screen. If you want to talk through an unusual integration before you write any code, our team is happy to take the call.