Approved by the MRA (230) 203 3900 [email protected]

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.

Open an account to get keys

# Fiscalise a document POST /v1/documents/fiscalise Authorization: Bearer <your api key> Content-Type: application/json { "documentType": "STD", "reference": "INV-000148", "currency": "MUR", "buyer": { "name": "Bonne Affaire Ltee", "brn": "C07012345" }, "lines": [ { "description": "Consultancy — August", "qty": 1, "unitPrice": 21000, "taxCode": "TX" } ] }
# 200 OK { "status": "FISCALISED", "irn": "<reference returned by the MRA>", "qr": "<qr payload>", "totals": { "net": 21000.00, "vat": 3150.00, "gross": 24150.00 } }

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.

Open an account Talk to an engineer