UBL-CR-669:A UBL invoice should not include a Price Allowance Reason Code
Fix: Invoice Navigator automatically removes the disallowed `cbc:AllowanceChargeReasonCode` element from your Invoice (UBL-CR-669). Upload your invoice to fix this automatically.
UBL 2.1 Invoice schema does not include `cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode`. This element must be removed for EN 16931 compliance (rule UBL-CR-669).
Engine Classification
Remove disallowed UBL element per EN16931 specification
Confidence: 90% · Applied automatically in pipeline
What is UBL-CR-669?
UBL-CR-669 is a fatal validation rule defined in the UBL 2.1 specification. It validates the AllowanceChargeReasonCode element under AllowanceCharge in the UBL invoice XML.
When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.
Target path: //cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode
Why This Error Matters
Invoice will be rejected by EN16931 validators. These conformance rules prohibit UBL attributes and element combinations not in the EN16931 e-invoicing profile. Remove the disallowed attribute or restructure the element.
UBL-CR-669 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.
Invoice Navigator can automatically correct this error in your pipeline. The fix is applied with full audit evidence, so your compliance trail remains intact.
Validator Behavior
- ·Causes invoice rejection
- ·Fails UBL schema validation
- ·Error returned: UBL-CR-669
- ·Specification: UBL 2.1
How to Fix It
Locate the disallowed element
Open your invoice XML and find cbc:AllowanceChargeReasonCode at //cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode. This element is not permitted in the target e-invoice profile and triggers UBL-CR-669.
Remove cbc:AllowanceChargeReasonCode
Delete the entire cbc:AllowanceChargeReasonCode block and its child elements. Invoice Navigator automatically removes the disallowed `cbc:AllowanceChargeReasonCode` element from your Invoice (UBL-CR-669).
Re-validate your invoice
Upload the corrected invoice to confirm UBL-CR-669 is resolved. If your software consistently adds this element, contact your vendor about their e-invoice export settings.
Before / After
<cac:AllowanceCharge> <cbc:AllowanceChargeReasonCode>value</cbc:AllowanceChargeReasonCode> </cac:AllowanceCharge>
<cac:AllowanceCharge> <!-- cbc:AllowanceChargeReasonCode removed for EN 16931 compliance --> </cac:AllowanceCharge>
Technical Reference
//cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCodeCommon Causes
- ·Price contains AllowanceCharge ReasonCode element
- ·Price AllowanceChargeReasonCode not in EN16931
- ·Reason code for price discount not permitted
- ·Use BaseAmount only for price allowances
- ·ERP exports coded reason for price adjustment
Seeing this in production? The API handles UBL-CR-669 automatically. See the fix response →
Frequently Asked Questions
UBL 2.1 Invoice schema does not include `cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode`. This element must be removed for EN 16931 compliance (rule UBL-CR-669).
Invoice Navigator automatically removes the disallowed `cbc:AllowanceChargeReasonCode` element from your Invoice (UBL-CR-669). You can also use Invoice Navigator's compliance engine to correct this automatically in your pipeline.
Yes, UBL-CR-669 is a critical error that will cause invoice rejection. It must be fixed before submission.
Many instances of UBL-CR-669 can be automatically corrected using Invoice Navigator's compliance engine. The fix is applied in your pipeline with full audit evidence.
Last updated: 14 April 2026
Validate your invoice
Drop your XML here to check for UBL-CR-669
Auto-fix UBL-CR-669 in seconds
Upload your invoice and we fix this error automatically. Financial fields are never touched.