# 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](https://tms.taxoman.gov.om/portal/web/taxportal/e-invoicing) (OTA). Invoices are exchanged as structured data over Peppol, a network for exchanging business documents, using [PINT OM](https://docs.peppol.eu/poac/om/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 **sandbox only**: you can build and test an integration, but you cannot send invoices in production yet.

- [Onboard a company](https://docs.complyance.io/countries/om/onboarding/): Register the company's Peppol participant ID and its invoice source.
- [Check invoice fields](https://docs.complyance.io/countries/om/fields/): Find the GETS fields accepted for Oman.
- [Send a sandbox invoice](https://docs.complyance.io/countries/om/examples/): Submit a complete Omani tax invoice and read the response.
- [Fix validation errors](https://docs.complyance.io/countries/om/validation-rules/): Find the PINT OM rule behind an error and correct the invoice.

## 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](https://tms.taxoman.gov.om/portal/web/taxportal/e-invoicing) 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](https://docs.complyance.io/countries/om/onboarding/) 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](https://docs.complyance.io/countries/om/fields/) to map your invoice data to GETS.
4. Send a [sandbox request](https://docs.complyance.io/countries/om/examples/) to [Unify](https://docs.complyance.io/api-reference/unify/), and correct any [validation errors](https://docs.complyance.io/countries/om/validation-rules/). An HTTP `200` means the invoice passed validation and was stored; it does not mean the buyer received it.
5. [Follow the document](https://docs.complyance.io/api-reference/unify/submit-and-retrieve/#follow-the-document) with the returned `documentId` until `isTerminal` is `true`.

## What the final status means

In the Oman sandbox, Complyance delivers the e-invoice over Peppol to the buyer’s access point. `final_valid` means the buyer’s access point accepted it; `final_invalid` means it rejected it. The sandbox does not report invoices to the OTA, so no tax authority result follows.

## Document types

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

| Document | `base` | `modifiers` or `variant` |
| - | - | - |
| Tax invoice | `tax_invoice` | |
| Simplified tax invoice | `simplified_invoice` | |
| Credit note | `credit_note` | |
| Simplified credit note | `simplified_credit_note` | |
| Debit note | `debit_note` | |
| Simplified debit note | `simplified_debit_note` | |
| Prepayment invoice | `tax_invoice` | variant `advance` |
| Simplified prepayment invoice | `simplified_invoice` | variant `advance` |
| Self-billed invoice | `tax_invoice` | `self_billed` |
| Self-billed credit note | `credit_note` | `self_billed` |
| Export invoice | `tax_invoice` | `export` |
| Import of goods invoice | `tax_invoice` | `import_goods` |
| Import of services (reverse charge) invoice | `tax_invoice` | `reverse_charge` |
| Third-party invoice | `tax_invoice` | `third_party` |
| Summary invoice | `tax_invoice` | `summary` |
| Continuous supply invoice | `tax_invoice` | `continuous_supply` |
| Deemed supply invoice | `tax_invoice` | `deemed_supply` |
| Profit margin invoice | `tax_invoice` | `margin_scheme` |
| Profit margin self-invoice | `tax_invoice` | `self_billed` and `margin_scheme` |
| E-commerce invoice | `tax_invoice` | `e_commerce` |
| Special zone supplies invoice | `tax_invoice` | `special_zone_supplies` |

A prepayment invoice sends the variant beside the base:

```json title="Prepayment invoice document type"
{ "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](https://docs.peppol.eu/poac/om/pint-om-sb/). Every other document follows the [PINT OM Billing specification](https://docs.peppol.eu/poac/om/pint-om/).

Source: https://docs.complyance.io/countries/om/
