What it means
When both parties are in Denmark, this check examines document-level and line-level cac:AllowanceCharge elements with cbc:AllowanceChargeReasonCode ZZZ. In Peppol BIS, the reason passes if its whitespace-normalised text has four characters and its numeric value is between 0 and 9999, or if its untrimmed text contains # without starting or ending with #. The numeric branch does not enforce four digits. The UBL.BE and Italian Peppol checks allow only the four-character numeric form. The check does not detect a missing or different reason code.
Why it matters
The reason identifies the non-VAT tax represented by the discount or charge. A consistent format helps the buyer interpret that information.
How to fix it
Find the affected cac:AllowanceCharge. For a non-VAT tax, use ZZZ in cbc:AllowanceChargeReasonCode and enter the actual four-digit tax category in cbc:AllowanceChargeReason. If you use the Peppol BIS text alternative, keep # inside the text, not at either end. For UBL.BE and Italian Peppol, only the four-character category form passes. Export the correction and check the file again.
Once the file is corrected, check it again for free: Validate a Peppol BIS invoice
Or fix the invoice in a form and download the corrected file, for 1 credit: Fix a rejected e-invoice
The rule as published
Read the rule on the publisher's site
Where this rule applies
| Rule set | Version |
|---|---|
| Peppol BIS Billing 3.0 (invoice) | 2026.5 |
| Peppol BIS Billing 3.0 (credit note) | 2026.5 |
Check your file
Drop your e-invoice to see whether DK-R-004 still fails, and which other rules do.
Related rules
- DK-R-005 Use an allowed Danish payment means code
- DK-R-006 Add the payee's account and bank registration number
- DK-R-007 Add the direct debit mandate and bank account
- DK-R-008 Check the giro reference and account number
- DK-R-009 Check giro references starting with 04# or 15#
- DK-R-010 Check the FIK reference and creditor number