How to fix ibr-153-ae in UAE e-invoicing
What is ibr-153-ae?
ibr-153-ae is a fatal validation rule in the UAE's Peppol PINT-AE e-invoicing specification — one of the UAE-specific rules. It is checked against the invoice document and belongs to the Currency & exchange rule group. An e-invoice that fails ibr-153-ae is rejected by the Accredited Service Provider gateway before it reaches the FTA.
What the official rule says
Where it applies
This rule is checked against the invoice document of your UBL 2.1 invoice:
/ubl:Invoice | /cn:CreditNote
Business terms referenced
| Term ID | Field | Other rules |
|---|---|---|
| IBT-006 | Tax accounting currency | view → |
| IBT-005 | Invoice currency code | view → |
| BTAE-04 | Currency exchange rate | view → |
Field names are derived automatically from the official rule corpus.
Why this happens
A foreign-currency invoice (document currency ≠ AED with tax currency AED) must include a second TaxTotal carrying the VAT amount converted to AED. Without it the FTA can't account the VAT in dirhams and the invoice is rejected.
How to fix it
1. Keep your normal TaxTotal in the invoice currency (with its subtotals). 2. Add a second <cac:TaxTotal> whose <cbc:TaxAmount currencyID="AED"> is the converted VAT amount. 3. Include the exchange rate used (BTAE-04) — see rule ibr-159-ae.
Compliant XML
<cac:TaxTotal> <cbc:TaxAmount currencyID="USD">50</cbc:TaxAmount> <cac:TaxSubtotal>...</cac:TaxSubtotal> </cac:TaxTotal> <cac:TaxTotal> <cbc:TaxAmount currencyID="AED">183.64</cbc:TaxAmount> </cac:TaxTotal>
Technical test condition (Schematron)
not(cbc:TaxCurrencyCode = "AED" and cbc:DocumentCurrencyCode != "AED" and (not(cac:TaxExchangeRate/cbc:SourceCurrencyCode = cbc:DocumentCurrencyCode) or not(cac:TaxExchangeRate/cbc:TargetCurrencyCode = cbc:TaxCurrencyCode) or not(cac:TaxExchangeRate/cbc:CalculationRate)))
Worried your invoices fail ibr-153-ae?
Upload your UBL XML — qmetrics runs 40+ core PINT-AE pre-submission checks (TRN, VAT math, addresses, totals and more) in one second. Your file is validated in memory and never stored.
Related rules
Rule text sourced from the official OpenPeppol PINT-AE validation artifacts (version 2026.5), refreshed weekly. Explanations are qmetrics' own guidance, not official FTA/MoF text.