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)

Worried your invoices fail ibr-127-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.