How to fix ibr-149-ae in UAE e-invoicing
What is ibr-149-ae?
ibr-149-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 buyer (customer) party block and belongs to the TRN & registration rule group. An e-invoice that fails ibr-149-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 buyer (customer) party block of your UBL 2.1 invoice:
cac:AccountingCustomerParty/cac:Party
Business terms referenced
| Term ID | Field | Other rules |
|---|---|---|
| IBT-047 | Buyer legal registration identifier | view → |
| IBT-049-1 | scheme identifier | view → |
| IBT-049 | Buyer electronic address | view → |
Field names are derived automatically from the official rule corpus.
Why this happens
The buyer-side twin of ibr-150-ae: when the buyer's electronic address uses UAE scheme 0235 (and the endpoint doesn't match the exempt patterns), the buyer's legal registration identifier is mandatory. Simplified B2C invoices are the usual exception path — but standard B2B invoices between UAE businesses must identify the buyer.
How to fix it
1. For B2B invoices, populate the buyer's PartyLegalEntity/CompanyID with type TL, EID, PAS or CD. 2. If this is genuinely a B2C/simplified invoice, check with your ASP which transaction-type flags (BTAE-02) apply instead.
Technical test condition (Schematron)
cbc:EndpointID/@schemeID != "0235" or matches(normalize-space(cbc:EndpointID), "^[19]") or exists(cac:PartyTaxScheme/cbc:CompanyID)
Test your invoice against ibr-149-ae now
Upload your UBL XML — we check all 302 PINT-AE rules including this one, 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.