qmetrics
Fatal — invoice rejected Amounts & totals UAE-specific rule PINT-AE 2026.5

How to fix ibr-127-ae in UAE e-invoicing

What is ibr-127-ae?

ibr-127-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 Amounts & totals rule group. An e-invoice that fails ibr-127-ae is rejected by the Accredited Service Provider gateway before it reaches the FTA.

What the official rule says

Payment due date [IBT-009] MUST be present when the amount due for payment (IBT-115) greater than 0, except when invoice type code (IBT-003) is 'Credit note' or 'Credit note related to goods or services' or Invoice transaction-type code (BTAE-002) is X1XXXXXX (Deemed supply) .
UAE impact: this is a fatal rule specific to the UAE PINT-AE 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 invoice document of your UBL 2.1 invoice:

/ubl:Invoice | /cn:CreditNote

Business terms referenced

Term ID Field Other rules
IBT-009 Payment due date view →
IBT-115 Amount due for payment view →
IBT-003 Invoice type code view →
BTAE-002 Invoice transaction-type code view →

Field names are derived automatically from the official rule corpus.

Why this happens

If the amount due for payment (IBT-115) is greater than zero, the invoice must state a payment due date (IBT-009) — unless the invoice is of a type that legitimately has none. Billing systems that only print payment terms as free text ('within 15 days') without a machine-readable DueDate hit this rule constantly.

How to fix it

1. Add <cbc:DueDate> in YYYY-MM-DD format alongside the IssueDate. 2. If your system stores terms as day-offsets, compute the concrete date at export time.

Technical test condition (Schematron)
((cbc:InvoiceTypeCode | cbc:CreditNoteTypeCode) = "381" or (cbc:InvoiceTypeCode | cbc:CreditNoteTypeCode) = "81" or cbc:CreditNoteTypeCode = "261" or matches(cbc:ProfileExecutionID, "^[01]1[01]{6}$")) or not(cac:LegalMonetaryTotal/cbc:PayableAmount > 0) or exists(cbc:DueDate)

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