uae-fta-einvoicing
title: UAE FTA E-Invoicing (PINT AE) description: UAE FTA e-invoicing country pack for Odoo 17, 18, and 19 — PINT AE / UBL 2.1 document generation, UAE business-rule validators, pluggable ASP transport adapter, and compliance cockpit sidebar_label: UAE FTA E-Invoicing
UAE FTA E-Invoicing (PINT AE)
The ECOSIRE UAE FTA E-Invoicing module is the United Arab Emirates country pack for the ECOSIRE E-Invoicing Suite. It sits on top of ecosire_einvoice_core and handles the document side of UAE's Peppol-based e-invoicing mandate: PINT AE / UBL 2.1 invoice and credit-note generation, UAE-specific business-rule validation (TRN, AED currency, tax categories), a pluggable Accredited Service Provider (ASP) transport adapter interface, and a compliance cockpit that logs malfunction and ASP data-change notifications and estimates the exposure.
Cabinet Decision No. 173 of 2026 repealed Cabinet Decision No. 106 of 2025, and Ministerial Decision No. 197 of 2026 repealed the duty to notify the Authority of a system failure (Article 12 of Ministerial Decision No. 243 of 2025). Both were read on 3 November 2026. The module's compliance cockpit still estimates AED 1,000 a day, a rate from the repealed decision, so do not quote its figure as the current penalty. The current amounts are under Confirmed legislation tracked.
| Technical name | ecosire_einvoice_uae |
| Odoo versions | 17.0, 18.0, 19.0 (Community or Enterprise) |
| Current shipped version | 17.0 → 17.0.1.0.9, 18.0 → 18.0.1.0.9, 19.0 → 19.0.1.0.9 |
| Price | $499 USD (one-time, per Odoo major) — or $1,499 for the GCC Bundle (40% off the full stack) |
| Licence | OPL-1 (Odoo Proprietary License v1.0) |
| Requires | ecosire_einvoice_core (the ECOSIRE E-Invoicing engine) |
| Python dependency | lxml |
Explore the live demo at zatca.demo.ecosire.com — the same server hosts all GCC E-Invoicing Suite country packs.
How UAE e-invoicing differs from KSA ZATCA
UAE is not ZATCA. There is no taxpayer-facing government REST API. The UAE mandates a Peppol 5-corner DCTCE (Decentralised CTC and Exchange) model:
| Corner | Party | Role |
|---|---|---|
| 1 | Supplier ERP (this module) | Generates and validates the PINT AE document |
| 2 | Accredited Service Provider (ASP) / Peppol Access Point | Legally mandatory; transmits to the network |
| 3 | Receiving Access Point | Delivers to the buyer system |
| 4 | Buyer system | Receives the e-invoice |
| 5 | FTA | Receives a Tax Data Document (TDD) from the network |
Appointing an ASP is legally mandatory: Ministerial Decision No. 244 of 2025 sets the deadlines, and Cabinet Decision No. 173 of 2026 penalises a failure to appoint one. The module ships the document side plus a pluggable adapter interface — no concrete network adapter is enabled by default because all known ASP APIs (Pagero, Sovos, Avalara, Cleartax AE, EDICOM, Comarch) are gated behind provider documentation or sandbox agreements that were not publicly available at build time. The manual / file-export adapter is the default, allowing you to export a validated PINT AE XML and upload it to your chosen ASP portal.
Confirmed legislation tracked
| Instrument | Subject |
|---|---|
| Ministerial Decision No. 243 of 2025, amended by No. 197 of 2026 | Establishes the Electronic Invoicing System and in-scope entities. No. 197 of 2026 repealed Article 12, the duty to notify the Authority of a system failure |
| Ministerial Decision No. 244 of 2025, amended by No. 66 of 2026 | Implementation dates and the deadlines to appoint an ASP |
| Cabinet Decision No. 173 of 2026, which repealed No. 106 of 2025 | Penalty framework: AED 5,000 for not implementing the system, including not appointing an ASP, then AED 5,000 for each further month or part of one, up to AED 50,000 in any 12 consecutive months; AED 100 per e-invoice and AED 100 per e-credit note not issued and transmitted (cap AED 5,000 per calendar month each); AED 250 per day of delay for not notifying the ASP of changes to the data registered with the Authority (cap AED 5,000 per calendar month). Voluntary issuers are excepted |
These were read from the Ministry of Finance e-invoicing portal on 3 November 2026. The dates: voluntary from 1 July 2026; revenue of AED 50 million or more by 1 January 2027, with an ASP appointed by 30 October 2026; revenue below that by 1 July 2027, with an ASP appointed by 31 March 2027; government entities by 1 October 2027, with an ASP appointed by 31 March 2027. The MoF Guidelines V2.0 say e-invoices carry no QR code or barcode and that the ASP generates the UUID. The module was written before these documents were published: it generates an EN16931/UBL 2.1 backbone and flags what must be confirmed before live submission.
Key Features
- PINT AE / UBL 2.1 document builder extending Odoo's native
account_edi_ubl_ciiinfrastructure (the same foundation used by Odoo's PINT profiles for ANZ, Japan, Malaysia, Singapore) - UAE business-rule validators: 15-digit TRN check for seller and B2B/B2G buyer, AED currency enforcement, UAE tax categories (5% standard / 0% zero-rated / exempt), UBL document type codes 380 (invoice) and 381 (credit note)
- Five invoice-level PINT AE status states tracked on every
account.move: Not Applicable, To Send, Queued, Sent, Error - Manual / file-export fallback adapter: generates and attaches a validated PINT AE XML without any network call; allows ASP portal upload before a provider adapter is installed
- Pluggable
einvoice.asp.adapterabstract interface: any future ASP adapter is a thin subclass; an unconfigured adapter raises a plain-language error rather than silently failing - Compliance cockpit (
einvoice.uae.notification): log and track malfunction-notification and ASP-data-change obligations, with a real-time exposure estimate and a "Mark as Notified" action that stops the clock. The estimate uses AED 1,000/day, a rate from the repealed Cabinet Decision No. 106 of 2025 (see the caution above) - Cockpit view suite: a kanban board grouped by status, a bar graph of obligations opened per month by type, and a type × status pivot with the estimated AED exposure as the measure
- Credit-note support (UBL type 381) — credit notes are confirmed in scope by the penalty legislation
- Multi-company isolation: all records are scoped to
company_id - Role-gated entry points: validation and export need the engine's E-Invoicing User group, submission needs E-Invoicing Manager. A user without the role never sees the button, rather than meeting a raw access error
Prerequisites
- Odoo 17, 18, or 19 (Community or Enterprise edition)
ecosire_einvoice_coreinstalled (the ECOSIRE GCC E-Invoicing engine, $499 or included in the GCC Bundle)- The engine's E-Invoicing User group on the users who validate and export, and E-Invoicing Manager on whoever submits. The groups ship with the engine — assign them under Settings > Users & Companies > Users
- Python
lxmllibrary (typically pre-installed in standard Odoo environments) - A UAE VAT registration number (15-digit TRN) for your company
- An Accredited Service Provider (ASP) agreement to submit documents to the FTA network (required for live production submission; the manual-export mode works without an ASP agreement)
Installation
- Download the module ZIP from your ECOSIRE Dashboard. If you purchased the GCC Bundle, download both
ecosire_einvoice_coreandecosire_einvoice_uae. - Extract both modules to your Odoo addons directory:
unzip ecosire-einvoice-core-*.zip -d /opt/odoo/addons/unzip ecosire-einvoice-uae-*.zip -d /opt/odoo/addons/
- Restart the Odoo service:
sudo systemctl restart odoo
- Navigate to Apps, click Update Apps List.
- Search for "ECOSIRE E-Invoicing Core" and install it first.
- Search for "ECOSIRE E-Invoicing UAE FTA" and install it.
- Assign the e-invoicing groups to your users (see Step 1 below). There is nothing else to switch on: the published builds carry no licence-client dependency and no activation step.
Configuration
Step 1: Give your users an e-invoicing role
The three invoice entry points are gated by the engine's security groups, so a user sees only the actions their role allows:
| Action | Group required |
|---|---|
| Validate PINT AE | E-Invoicing User |
| Export PINT AE XML | E-Invoicing User |
| Submit to FTA (via ASP) | E-Invoicing Manager |
- Navigate to Settings > Users & Companies > Users and open the user.
- Under Other / Access Rights, set E-Invoicing User for anyone who validates and exports, and E-Invoicing Manager for whoever submits documents to the ASP.
- Save. A user who then opens a posted invoice sees exactly the buttons their role allows.
Step 2: Enter your company TRN
- Navigate to Settings > Companies and open your company.
- In the General Information tab, enter your 15-digit UAE Tax Registration Number in the Tax ID field (
vat). - Save the record.
The module validates this field on every PINT AE generation. B2B and B2G buyer partners must also have their 15-digit TRN entered in the Tax ID field on their contact record.
Step 3: Configure your ASP provider
- Navigate to Settings > E-Invoicing > UAE.
- The UAE ASP Provider field defaults to
Manual export (upload to ASP portal). This is the only adapter shipped in the current version. - If you have installed a separately available provider-specific adapter (e.g., a future Pagero or Sovos pack), select it here and enter the provider credentials that adapter requires.
No concrete network adapter ships enabled in the current release. Live production submission to the FTA via the Peppol network requires an Accredited Service Provider agreement and a provider-specific adapter built against real provider documentation or sandbox access. The manual export adapter is fully functional for generating validated PINT AE XML files for ASP-portal upload.
Step 4: Configure tax categories on products
Ensure the tax rates on your products map cleanly to the three UAE categories the module validates:
| UAE category | Rate | When to use |
|---|---|---|
| S (Standard) | 5% | Default for most goods and services |
| Z (Zero-rated) | 0% | Exports, international services, etc. |
| E (Exempt) | Exempt flag | Financial services, residential property, etc. |
Any tax rate other than 5% or 0% (or exempt) will raise a BR-AE-04 validation error at document generation time.
Reviewing the VATEX-AE categories
The module preloads six UAE zero-rated and exempt categories on install. To review them, open VATEX-AE Categories (19.0: E-Invoicing > Configuration > United Arab Emirates > VATEX-AE Categories; 17.0 and 18.0: E-Invoicing > United Arab Emirates > Configuration > VATEX-AE Categories).
The list shows each category's Code, Name (English) and Tax Category (Zero rated or Exempt). The Name (Arabic) column is available from the optional-columns toggle and is always shown on the category form. Use the Zero rated and Exempt filters, or group by Tax Category, to find a category quickly.
Since version 1.0.9 (all three series) this list shows these columns. Earlier builds opened a list with only an ID column, because the engine shipped no view for the category model.
Usage
Validating an invoice
- Open a posted customer invoice.
- Click Validate PINT AE (requires the E-Invoicing User group).
- The module runs all UAE business rules (BR-AE-01 through BR-AE-05). A success notification confirms the invoice passes; a validation error lists each failed rule by code and description.
The five business rules checked are:
| Rule | Check |
|---|---|
| BR-AE-01 | Seller TRN present and exactly 15 digits |
| BR-AE-02 | B2B/B2G buyer has a valid 15-digit TRN |
| BR-AE-03 | Invoice currency is AED (warning for foreign-currency documents) |
| BR-AE-04 | All tax lines resolve to a UAE category (S / Z / E) |
| BR-AE-05 | Document type is invoice (380) or credit note (381) |
Exporting a PINT AE XML file
- Open a posted customer invoice that passes validation.
- Click Export PINT AE XML (requires the E-Invoicing User group).
- The module generates a validated PINT AE / UBL 2.1 XML and attaches it to the invoice.
- Download the attachment and upload it to your ASP's portal for transmission to the FTA network.
This workflow is the primary path for live submission in the current version.
Submitting via an ASP adapter
- Open a posted invoice.
- Click Submit PINT AE (requires the E-Invoicing Manager group).
- The module routes the document through the configured ASP adapter:
- With the default manual adapter, the XML is generated and attached, and the status moves to Queued (manual / ASP).
- With a network adapter installed and configured, the status moves to Sent and the ASP Reference field is populated with the provider's reference.
- The PINT AE status field on the invoice form tracks the outcome: Not Applicable, To Send, Queued, Sent, or Error.
Using the compliance cockpit
The compliance cockpit logs the two notification obligations it was written for, and both have changed. Ministerial Decision No. 197 of 2026 repealed the duty to notify the Authority of a malfunction. Not notifying your ASP of data changes now costs AED 250 per day of delay, up to AED 5,000 per calendar month, under Cabinet Decision No. 173 of 2026. The cockpit's Estimated Penalty (AED) field still uses AED 1,000/day from the repealed Cabinet Decision No. 106 of 2025, so treat it as an internal log, not a penalty calculation.
- Navigate to E-Invoicing > UAE Compliance > Notifications.
- Click New to log a new obligation:
- Type: Malfunction — notify FTA, or Data Change — notify ASP
- Obligation Started: the datetime when the malfunction occurred or the data change took effect (the penalty clock starts here)
- Details: a description of the event
- The Days Exposed and Estimated Penalty (AED) fields compute automatically in real time.
- Once you have notified the FTA or ASP, click Mark as Notified to stop the clock and record the notification datetime.
- Click Close when the obligation is fully resolved.
The cockpit opens on a kanban board grouped by status, so open obligations with the clock still running are the first thing on screen. Switch to the graph for the obligations opened per month by type, or the pivot for type × status with the estimated AED exposure as the measure. Check that figure against the current penalties above before you show it to an auditor or a CFO.
The cockpit does not submit notifications to any authority automatically — it is an internal auditable log that demonstrates timely action.
Troubleshooting / FAQ
| Issue | Cause | Solution |
|---|---|---|
| Validate / Export / Submit button missing on a posted invoice | The signed-in user does not hold the e-invoicing role the action needs | Give the user E-Invoicing User (validate, export) or E-Invoicing Manager (submit) under Settings > Users & Companies > Users |
| BR-AE-01: Seller TRN missing | Your company's Tax ID field is blank or not 15 digits | Go to Settings > Companies, enter the 15-digit UAE TRN in the Tax ID field |
| BR-AE-02: Buyer TRN missing | A B2B/B2G partner contact is missing a valid TRN | Open the partner record and enter the 15-digit UAE TRN in the Tax ID field |
| BR-AE-03 warning: currency is not AED | The invoice currency is set to a non-AED currency | The warning does not block export; confirm whether your ASP accepts foreign-currency PINT AE documents |
| BR-AE-04: Unsupported tax rate | A product tax is set to a rate other than 5%, 0%, or exempt | Update the tax to one of the three UAE categories (S / Z / E) |
| "No Accredited Service Provider is configured" | The Submit action was clicked with the abstract adapter (not the manual adapter) | Go to Settings > E-Invoicing > UAE and ensure the UAE ASP Provider is set to Manual export or a provider adapter |
| "UBL 2.1 builder not available" | account_edi_ubl_cii is not installed | Verify that ecosire_einvoice_core and its Odoo dependencies are fully installed; update the module list and restart Odoo |
| PINT AE XML attachment is missing after export | The export action completed but the file is not visible | Hard-refresh your browser (Ctrl+Shift+R) and check the Attachments section on the invoice chatter |
| Estimated penalty shows 0 on a new notification | The Obligation Started datetime has not been saved yet | Save the record first; the computation runs on the stored value |
Frequently Asked Questions
Is this module ready for live production submission? The module is production-ready for PINT AE document generation and validation. Live submission to the FTA network requires an Accredited Service Provider agreement and a provider-specific adapter. The manual export adapter (included) covers the file-upload path that every ASP portal supports.
Why does the module not include a provider adapter for Pagero, Sovos, or another ASP? All known ASP APIs were gated behind non-disclosure or private sandbox agreements at build time. ECOSIRE does not fabricate API endpoints. Provider adapters will be released as separate optional packs once real provider documentation or sandbox access is obtained.
Does this module handle QR codes, UUIDs and sequence numbering? The MoF Guidelines V2.0 say e-invoices carry no QR code or barcode and that the ASP generates the UUID (read 3 November 2026). The module was written before those documents were published: it generates an EN16931/UBL 2.1 backbone and logs a clear warning that these fields must be confirmed before live submission. No dummy values are inserted.
What is the Phase 1 go-live date? 1 January 2027 for revenue of AED 50 million or more, under Ministerial Decisions No. 244 of 2025 and No. 66 of 2026 (read 3 November 2026). Revenue below that follows by 1 July 2027. Voluntary adoption opened on 1 July 2026.
Can I use this module for credit notes? Yes. Credit notes are in scope of Cabinet Decision No. 173 of 2026 (AED 100 per e-credit note not issued and transmitted, up to AED 5,000 per calendar month). The module maps Odoo refund moves to UBL type code 381.