Skip to main content

VAT Compliance Pack (UAE / KSA / EU)

The ECOSIRE VAT Compliance Pack computes government-format VAT return box totals directly from your posted Odoo journal entries and produces printable returns plus the UAE FTA Audit File (FAF). It covers four jurisdictions: UAE VAT 201 (EmaraTax), KSA ZATCA VAT Return (Fatoora), and EU OSS / IOSS. The module is a periodic reporting and computation layer — not a live e-invoicing API. Submission to each authority portal is a manual step performed by your accountant.

Compatibility: Odoo 17 / 18 / 19 Price: $249 (one-time) License: Up to 3 domain activations

No live government API required

UAE FTA, KSA ZATCA (for VAT returns), and EU OSS do not publish a public REST API for machine VAT-return submission — all three are portal-only. This module prepares the figures and exports the FAF; your accountant enters or uploads them in EmaraTax / Fatoora / the OSS portal. ZATCA e-invoice clearance (Phase 2) is the separate ecosire_einvoice_ksa product.

Key Features

  • UAE VAT 201 — Boxes 1–11: standard-rated supplies, reverse-charge, zero-rated, exempt, total supplies, standard-rated expenses, reverse-charge expenses, total expenses, total output VAT, recoverable input VAT (with partial-exemption apportionment), and net VAT payable / refundable
  • KSA ZATCA VAT Return — outward standard / zero / exempt / reverse-charge + inward standard / import-customs / reverse-charge + total output, total input, and net VAT; reads the rate from each tax record so historical 5% data and current 15% data are never mis-classified
  • UAE FTA Audit File (FAF) — SAF-T-style XML over any date range: audit file header, company master, chart of accounts, journal headers, transaction lines, customer master, and supplier master; CSV companion for spreadsheet review
  • EU OSS / IOSS — per-member-state taxable-supply and VAT-due box mapping; rates derived dynamically from Odoo tax records, never hardcoded
  • Configurable box map — each return box is linked to one or more account.tax.group records and an amount mode (base / tax / computed); remap without touching code
  • Drill-down audit trail — every computed box stores the source account.move records so you can trace any figure back to individual journal entries
  • Partial-exemption apportionment — an Input VAT Apportionment % field on each return record (default 100%) reduces recoverable input VAT for mixed-supply businesses per the FTA Input Tax Apportionment guide
  • Return lifecycle — Draft → Computed → Locked → Submitted workflow with full chatter tracking
  • Printable return report — QWeb PDF you can attach to your filing record or share with auditors

Prerequisites

  • Odoo 17, 18, or 19 (Community or Enterprise edition)
  • An active ECOSIRE license for this module (provided after purchase)
  • The account module installed (standard Odoo Accounting)
  • Your chart of accounts and tax groups configured for the relevant jurisdiction (Odoo's l10n_ae or l10n_sa localization is recommended; the module maps to account.tax.group by name and is editable)

Installation

  1. Download the module ZIP from your ECOSIRE Dashboard
  2. Extract to your Odoo addons directory:
    unzip ecosire-vat-compliance-*.zip -d /opt/odoo/addons/
  3. Restart the Odoo service:
    sudo systemctl restart odoo
  4. Navigate to Apps, click Update Apps List
  5. Search for "ECOSIRE VAT Compliance Pack" and click Install
  6. Enter your ECOSIRE license key when prompted (see Configuration Step 1 below)

Configuration

Step 1: Activate Your ECOSIRE License

  1. Navigate to Settings > ECOSIRE License
  2. Enter the license key you received after purchase
  3. Click Activate — the module will verify the key against the ECOSIRE license server
  4. Confirm the status shows Active before proceeding
note

The license check is performed once at activation and periodically in the background. If the status shows Inactive or Expired, re-enter your key or contact [email protected].

Step 2: Verify Your Box Maps

Box maps are pre-seeded on install for UAE VAT 201 and KSA ZATCA VAT Return. The EU OSS/IOSS maps are seeded with generic tax-group placeholders.

  1. Navigate to VAT Compliance > Configuration > Box Maps
  2. Review each box and confirm it references the correct account.tax.group records in your database
  3. Adjust the Amount Mode (Base or Tax) and Sign if your localization names tax groups differently from the ECOSIRE defaults
  4. For UAE Box 10 (recoverable input VAT): confirm the partial-exemption tax group is mapped if your business makes any exempt supplies

Step 3: Configure Partial-Exemption Apportionment (UAE / KSA mixed-supply businesses)

If your business makes both taxable and exempt supplies (e.g., residential landlords, financial services):

  1. Open a VAT Return record (or create one)
  2. Set Input VAT Apportionment % to the proportion of your supplies that are taxable (e.g., 80% if 20% of your supply value is exempt)
  3. The engine will multiply recoverable input VAT by this percentage when computing Box 10 (UAE) or the inward input total (KSA)

Refer to the FTA Input Tax Apportionment Special Methods guide (confirmed available at tax.gov.ae/en/taxes/Vat/guides.references.aspx) for the correct method for your business type.

Usage

Preparing a VAT Return

  1. Navigate to VAT Compliance > VAT Returns > New
  2. Select the Jurisdiction: UAE VAT 201, KSA ZATCA VAT Return, EU OSS, or EU IOSS
  3. Select the Company (each legal entity files separately)
  4. Enter the Period Start and Period End dates for the filing period
  5. Set the Input VAT Apportionment % if applicable (default 100%)
  6. Click Compute — the engine aggregates all posted account.move.line records within the period for the selected company and jurisdiction, then fills each box
  7. Review each box line; click the source-moves icon on any line to open the drill-down list of journal entries behind that figure
  8. When satisfied, click Lock to freeze the return (prevents re-computation)
  9. File the return in your authority portal (EmaraTax / Fatoora / EU OSS portal), then click Mark as Submitted and enter the government reference number

Printing the Return

  1. On any computed or locked return, click Print VAT Return (top toolbar)
  2. A QWeb PDF is generated showing all box amounts, the filing period, and company details
  3. Attach the PDF to the return record or download for your files

Generating the UAE FTA Audit File (FAF)

The FAF is requested by the FTA during a tax audit. It covers a date range you specify, not necessarily a single filing period.

  1. Navigate to VAT Compliance > UAE FAF Export > New
  2. Set the Date From and Date To for the audit period
  3. Choose Export Format: XML (primary FAF format) or CSV (for spreadsheet review)
  4. Click Generate — the module produces the file and attaches it to the record
  5. Download and submit to the FTA auditor as instructed
FAF XSD disclaimer

The UAE FTA has not published a public XSD schema file as of the module release date. The FAF XML is section-complete and well-formed using the reported SAF-T-shaped structure, but carries no fabricated official namespace. If the FTA supplies an XSD during your audit, configure the FAF XSD Namespace field in VAT Compliance > Configuration > Settings — strict XSD validation will then run at export time and raise a clear error for any non-conforming elements.

Troubleshooting / FAQ

IssueSolution
License not activeGo to Settings > ECOSIRE License, re-enter your key, and click Activate. Check internet connectivity — the license server must be reachable at activation time.
Box amounts are zeroConfirm your account.tax.group records match the names in the box map. Go to VAT Compliance > Configuration > Box Maps and check the tax group links on each box.
Wrong totals for Box 10 (UAE) / inward input (KSA)Check Input VAT Apportionment % on the return record. A value below 100% reduces recoverable input VAT.
KSA 5% historical data appearing in wrong boxThe module reads the rate from each tax record. If old 5% invoices are mapping to the 15% box, verify that the 5% tax records belong to a distinct account.tax.group from the 15% records.
FAF XSD validation errorThe FTA has not published an official XSD. Either leave XSD validation off, or configure the correct XSD namespace in VAT Compliance > Configuration > Settings once the FTA provides it.
EU OSS rates incorrectEU member-state standard rates are derived from your Odoo tax records — they are not hardcoded. Verify that your EU taxes are grouped by member state and rate in account.tax.group.
Compute takes a long timeLarge datasets (many moves) require aggregating account.move.line. This is normal. Lock old returns to exclude them from future compute runs.
"No moves found" for a periodConfirm journal entries are in Posted state (not draft). The engine only reads account.move records in state posted.

Scope Clarification

This module does NOT submit returns to any government portal. The three supported jurisdictions (UAE FTA, KSA ZATCA for VAT returns, EU OSS) are all portal-only. Your accountant uses the computed box figures to complete the online return form or upload a pre-filled worksheet.

For ZATCA Phase 2 real-time e-invoice clearance (UUID, QR code, cryptographic signature), see the separate ecosire_einvoice_ksa product.

Support