1. How UAE E-Invoicing Works

VAT on each line

Read this page when your app builds the lines of a document, or when it gets an error about VAT on a line. For the steps to submit a document, refer to Submit a document.

This page uses these terms:

  • Taxpayer: a business from which your organization has an active grant. On each invoice and credit note that your app submits, the taxpayer is the seller.
  • Document: an invoice or a credit note.
  • Line: one item in line_items. A line is one product or service, with its quantity and its price.
  • VAT category: the code that tells how VAT applies to a line, in tax_category.
  • VAT rate: the percentage of VAT on a line, in tax_percent.
  • Exemption reason code: the code of the law article that makes a line exempt from VAT, in tax_exemption_reason_code.
  • TRN: the VAT registration number of a business: 15 digits, ending in 03. A seller with a TRN is registered for VAT.
  • Document type: the code that tells the UAE Federal Tax Authority (FTA) what kind of document it is. For example, 380 is a tax invoice. Refer to Document types.

Example. A trader with a TRN sells 10 office chairs at 450 each. The sale is standard-rated. The line has the VAT category S and the VAT rate 5. Wafeq ASP calculates the VAT of the line: 5% of 4,500, which is 225.

Each line of a document tells how VAT applies to it. It has a VAT category and a VAT rate. An exempt line also gives the reason for the exemption. Your app sends only these VAT details. Wafeq ASP calculates the VAT amounts and the totals. Wafeq ASP also uses the VAT categories to pick the document type.

The VAT categories

Categorytax_categoryMeaningExampletax_percent
Standard-ratedSVAT at the standard rate.A sale of office chairs.5
Zero-ratedZThe supply is taxable, at 0%.An export of goods to a country outside the GCC (the Gulf Cooperation Council states). International transport. Some healthcare and education.0
ExemptENo VAT, because the law exempts this kind of supply. The line must give the exemption reason code.The rent of a residential apartment.0
Out of scopeOThe line is not a supply for VAT.A payment that is not for goods or services, for example compensation for damages.0
Reverse chargeAEThe buyer pays the VAT, not the seller. The line shows no VAT. Only for some goods. Refer to Reverse charge.A sale of smartphones to a retailer with a TRN.0
Margin schemeNStandard rate additional VAT. The seller pays VAT on its profit margin, outside the document. The line shows no VAT.A sale of a used vehicle under the profit margin scheme.5

Zero-rated lines and exempt lines both have no VAT. But they are different. A zero-rated supply is taxable, at 0%. An exempt supply is not taxable. Your user decides which category applies to a sale. The API does not decide it.

Use N only on a document with the margin scheme flag. Each line of that document must have N. Refer to Special scenarios.

🚧

Always send tax_category and tax_percent

tax_percent has the default value 5, for all categories. Send 0 on each zero-rated, exempt, out-of-scope and reverse-charge line. If you do not, Wafeq ASP calculates VAT on the line, and the document fails the check. tax_category has the default value S.

Exemption reasons

An exempt line (E) must have the exemption reason code in tax_exemption_reason_code. You can also send the reason in words, in tax_exemption_reason.

tax_exemption_reason_codeExempt supply
DL8.46.1Some financial services
DL8.46.2Supply of residential units (lease or sale)
DL8.46.3Bare land
DL8.46.4Local passenger transport

The codes refer to Article 46 of the UAE VAT law (Federal Decree-Law No. 8 of 2017). This article lists the exempt supplies.

Reverse charge

Example. A distributor with a TRN sells 40 smartphones to a retailer with a TRN. The retailer resells the phones. The distributor issues a tax invoice with no VAT on the phones. The retailer pays this VAT in its own VAT return.

With reverse charge, the buyer pays the VAT, not the seller. In the UAE, reverse charge applies to sales of some goods between two businesses with a TRN. Your user decides if a sale is under reverse charge.

A reverse-charge line (AE) needs these fields:

  • tax_percent: 0. The line shows no VAT.
  • reverse_charge_goods_type: the type of goods, from the table below.
  • gtin: the GTIN of the item. GTIN is the Global Trade Item Number of GS1, the number under the barcode of a product. It has 8, 12, 13 or 14 digits.
reverse_charge_goods_typeGoods
DL8.48.8.1Gold and diamonds
DL8.48.8.2Electronic devices
DL8.48.3.1Crude oil or refined oil
DL8.48.3.2Natural gas, processed or not processed
DL8.48.3.3Pure hydrocarbons

Wafeq ASP accepts AE only on a line with one of these goods types. The document must also contain:

  • The VAT TRN of the buyer, in customer.vat_number.
  • A seller with a VAT TRN. A seller without a TRN cannot issue a reverse-charge line.

The UAE e-invoicing guidelines tell the seller to state on the invoice why reverse charge applies. Put this text in notes.

A document can have reverse-charge lines and lines with other categories. A document with the margin scheme flag cannot have reverse-charge lines.

Example:

{
  "invoice_number": "INV-2026-0410",
  "issue_date": "2026-10-15",
  "due_date": "2026-11-14",
  "source_id": "erp-invoice-9410",
  "notes": "Reverse charge: the buyer accounts for the VAT on the smartphones.",
  "customer": {
    "id": "0235:1999200000",
    "name": "Gulf Fresh Foods LLC",
    "vat_number": "199920000000003",
    "address": { "street": "Warehouse 7, Al Quoz Industrial 3", "city": "Dubai", "country": "AE", "country_subentity": "DXB" }
  },
  "line_items": [
    { "description": "Smartphone, 128 GB", "quantity": 40, "unit_price": 1800, "tax_category": "AE", "tax_percent": 0, "reverse_charge_goods_type": "DL8.48.8.2", "gtin": "9520123456788" },
    { "description": "Phone case", "quantity": 40, "unit_price": 25, "tax_category": "S", "tax_percent": 5 }
  ]
}

Wafeq ASP calculates VAT only on the phone cases: 5% of 1,000, which is 50.

How the lines decide the document type

The sellerThe linesDocument type
Has a TRNOne or more lines are standard-rated (S), zero-rated (Z), reverse charge (AE) or margin scheme (N).380 tax invoice
Has a TRNAll lines are exempt (E) or out of scope (O).480 commercial invoice
Has no TRNAll lines are exempt (E), out of scope (O) or zero-rated (Z).480 commercial invoice

A seller without a TRN cannot charge VAT. Wafeq ASP refuses a standard-rated, reverse-charge or margin scheme line from such a seller. For all the rules, refer to Document types.

Line amounts

The amount of a line without VAT is quantity × unit_price. To send a different amount, put it in line_extension_amount. Send it when your system rounds the line amounts. Then the totals that Wafeq ASP calculates agree with the totals in your books:

{ "description": "Cable, per metre", "quantity": 3.333, "unit_price": 1.15, "line_extension_amount": 3.83, "tax_category": "S", "tax_percent": 5 }

Example

This invoice has a standard-rated line, a zero-rated line and an exempt line. The seller has a TRN, and one line is standard-rated. Thus the invoice is a tax invoice (380):

{
  "invoice_number": "INV-2026-0303",
  "issue_date": "2026-10-15",
  "due_date": "2026-11-14",
  "source_id": "erp-invoice-9303",
  "customer": {
    "id": "0235:1999200000",
    "name": "Gulf Fresh Foods LLC",
    "vat_number": "199920000000003",
    "legal_registration": { "type": "TL", "id": "CN-7654321", "authority": "Dubai Economy and Tourism" },
    "address": { "street": "Warehouse 7, Al Quoz Industrial 3", "city": "Dubai", "country": "AE", "country_subentity": "DXB" }
  },
  "line_items": [
    { "description": "Office chairs", "quantity": 10, "unit_price": 450, "tax_category": "S", "tax_percent": 5 },
    { "description": "International freight, Jebel Ali to Muscat", "quantity": 1, "unit_price": 1200, "tax_category": "Z", "tax_percent": 0 },
    {
      "description": "Staff apartment rent, October",
      "quantity": 1,
      "unit_price": 8000,
      "tax_category": "E",
      "tax_percent": 0,
      "tax_exemption_reason_code": "DL8.46.2",
      "tax_exemption_reason": "Supply of residential units (lease or sale)"
    }
  ]
}

Common errors

The check (POST /invoices/validate) gives these codes in errors. A submission gives the SCH: codes in validation_errors. A code that starts with SCH: names an official UAE rule. To read these codes, refer to Submit a document.

SCH:ibr-167-ae

  • Cause: an exempt line has no exemption reason code.
  • Action: send tax_exemption_reason_code on each E line.

SCH:aligned-ibrp-e-09, SCH:aligned-ibrp-o-09 or SCH:aligned-ibrp-z-05

  • Cause: an exempt, out-of-scope or zero-rated line has a VAT rate that is not 0. Usually, the line has no tax_percent, and the default value 5 applies. A zero-rated line also gives other codes.
  • Action: send tax_percent: 0 on the line.

SCH:ibr-190-ae

  • Cause: a standard-rated line has a VAT rate that is not 5.
  • Action: send tax_percent: 5 on each S line.

422: reverse_charge_goods_type is required on a reverse-charge (AE) line

  • Cause: an AE line has no goods type.
  • Action: send reverse_charge_goods_type on each AE line.

422: gtin is required on a reverse-charge (AE) line

  • Cause: an AE line has no GTIN.
  • Action: send gtin on each AE line.

422: gtin must be a GTIN: 8, 12, 13 or 14 digits with a valid check digit

  • Cause: the value is not a GTIN.
  • Action: send the GTIN from the barcode of the item.

422: reverse_charge_goods_type is allowed only on a reverse-charge (AE) line

  • Cause: a line has a goods type, but its category is not AE. Usually, the line has no tax_category, and the default value S applies.
  • Action: send tax_category: "AE", or remove the goods type.

SCH:ibr-162-ae and SCH:aligned-ibrp-ae-09-ae

  • Cause: an AE line has a VAT rate that is not 0. Usually, the line has no tax_percent, and the default value 5 applies.
  • Action: send tax_percent: 0 on each AE line.

SCH:ibr-103-ae

  • Cause: a document with an AE line has no VAT TRN of the buyer.
  • Action: send the VAT TRN of the buyer in customer.vat_number. A buyer without a TRN cannot buy under reverse charge.

seller_without_trn_taxable_lines

  • Cause: the seller has no TRN, and a line is standard-rated, reverse charge or margin scheme. A submission gives this code in status.
  • Action: a seller without a TRN cannot charge VAT. Give each line the category E, O or Z.