qmetrics
Fatal — invoice rejected Amounts & totals Shared Peppol rule PINT-AE 2026.5

How to fix ibr-co-13 in UAE e-invoicing

What is ibr-co-13?

ibr-co-13 is a fatal validation rule in the UAE's Peppol PINT-AE e-invoicing specification, inherited from the shared Peppol layer. It is checked against the document totals and belongs to the Amounts & totals rule group. An e-invoice that fails ibr-co-13 is rejected by the Accredited Service Provider gateway before it reaches the FTA.

What the official rule says

Invoice total amount without Tax (ibt-109) = Σ Invoice line net amount (ibt-131) - Sum of allowances on document level (ibt-107) + Sum of charges on document level (ibt-108).
UAE impact: this is a fatal rule from the shared Peppol layer, enforced in the UAE profile — an invoice failing it is rejected at the Accredited Service Provider gateway before it ever reaches the FTA. A rejected invoice means resubmission delays, and late transmission risks the AED 100-per-invoice penalty under Cabinet Decision No. 106 of 2025.

Where it applies

This rule is checked against the document totals of your UBL 2.1 invoice:

cac:LegalMonetaryTotal

Business terms referenced

Term ID Field Other rules
IBT-109 Invoice total amount without Tax view →
IBT-131 Invoice line net amount view →
IBT-107 Sum of allowances on document level view →
IBT-108 Sum of charges on document level view →

Field names are derived automatically from the official rule corpus.

Technical test condition (Schematron)
../cac:TaxTotal/cbc:TaxIncludedIndicator = true() or (((cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10) div 100 ))  or (not(cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10 ) div 100)) or ((cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount)) * 10 * 10 ) div 100)) or (not(cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = xs:decimal(cbc:LineExtensionAmount))))

Test your invoice against ibr-co-13 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.