Oman e-invoicing API (Fawtara)

Connect your invoicing system to Fawtara, Oman's e-invoicing system, through the Complyance API. Onboard the company, send each invoice in GETS and follow its status, starting in the sandbox environment.

Fawtara is the e-invoicing system of the Oman Tax Authority (OTA). Invoices are exchanged as structured data over Peppol, a network for exchanging business documents, using PINT OM, Oman’s Peppol invoice specification. You send each invoice to Complyance in GETS, the common invoice format used across countries. Complyance checks it against the PINT OM rules for the document type and produces the Omani e-invoice. A PDF or scanned invoice on its own is not an e-invoice.

Oman is available in the sandbox environment. Use it to build and test your integration.

Who is in scope?

The OTA introduces Fawtara in phases, starting with a pilot for selected large taxpayers and extending to all VAT-registered businesses. Check the OTA’s e-invoicing page for the phase that applies to your business. Do not use this page to decide a legal start date.

Send an Omani invoice

  1. Onboard the company with its VAT identification number (VATIN), OM followed by 10 digits. Onboarding creates the company’s Peppol participant ID and links the source that sends its invoices.
  2. Choose the document type from the table below. It goes in the request’s documentType.
  3. Use the Oman field reference to map your invoice data to GETS.
  4. Send a sandbox request to Unify, and correct any validation errors. An HTTP 200 means the invoice passed validation and was stored; it does not mean the buyer received it.
  5. Check the document status with the returned documentId.

Document types

Set documentType.base, and add modifiers or a variant for the transaction. Send modifiers: [] when none applies.

Documentbasemodifiers or variant
Tax invoicetax_invoice
Simplified tax invoicesimplified_invoice
Credit notecredit_note
Simplified credit notesimplified_credit_note
Debit notedebit_note
Simplified debit notesimplified_debit_note
Prepayment invoicetax_invoicevariant advance
Simplified prepayment invoicesimplified_invoicevariant advance
Self-billed invoicetax_invoiceself_billed
Self-billed credit notecredit_noteself_billed
Export invoicetax_invoiceexport
Import of goods invoicetax_invoiceimport_goods
Import of services (reverse charge) invoicetax_invoicereverse_charge
Third-party invoicetax_invoicethird_party
Summary invoicetax_invoicesummary
Continuous supply invoicetax_invoicecontinuous_supply
Deemed supply invoicetax_invoicedeemed_supply
Profit margin invoicetax_invoicemargin_scheme
Profit margin self-invoicetax_invoiceself_billed and margin_scheme
E-commerce invoicetax_invoicee_commerce
Special zone supplies invoicetax_invoicespecial_zone_supplies

A prepayment invoice sends the variant beside the base:

Prepayment invoice document typejson
{ "base": "tax_invoice", "modifiers": [], "variant": "advance" }

Some combinations are not allowed. self_billed, import_goods and reverse_charge work only with tax_invoice or credit_note. summary, export and margin_scheme need a full document, not a simplified one. The advance variant works only with tax_invoice and simplified_invoice. Unify rejects any other combination.

Self-billed documents, imports of goods and imports of services under reverse charge follow the PINT OM Self-Billing specification. Every other document follows the PINT OM Billing specification.

Last updated