NL-R-008:For Dutch domestic invoices, payment means code must be one of: 30, 48, 49,...
For Dutch domestic invoices, payment means code must be one of: 30, 48, 49, 57, 58, or 59. Other codes are not accepted.
Engine Classification
Normalize Dutch VAT number format (NL + 9 digits + B + 2 digits)
Confidence: 80% · Applied automatically in pipeline
What is NL-R-008?
NL-R-008 is a fatal validation rule defined in the NLCIUS (Netherlands) specification (NLD national rules). It validates the CompanyID element under PartyTaxScheme[cac:TaxScheme > ID='VAT'] in the UBL invoice XML.
When this rule fires, the invoice is non-compliant and will be rejected by Peppol access points and national validation services. The sending system receives a rejection response and the invoice does not reach the buyer.
Target path: //cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/cbc:ID='VAT']/cbc:CompanyID
Why This Error Matters
Invoice will be rejected by Dutch validation. Domestic payments must use approved codes.
NL-R-008 is a hard failure. Invoices that trigger this rule are rejected at the access point and never reach the recipient. In Peppol networks, this means your sending system receives an MLR (Message Level Response) with a rejection status. The invoice must be corrected and re-sent, adding delay to your payment cycle.
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
- ·Error returned: NL-R-008
- ·Specification: NLCIUS (Netherlands)
Before / After
<Invoice> <!-- Issue: For suppliers in the Netherlands, if the customer is in the --> </Invoice>
<Invoice> <!-- Issue resolved per NLCIUS (Netherlands) --> </Invoice>
Technical Reference
//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/cbc:ID='VAT']/cbc:CompanyIDCommon Causes
- ·Invalid payment means code for NL domestic
- ·Payment code not in Dutch allowed list
- ·Wrong code for payment type
- ·ERP default code not valid for Netherlands
- ·Non-Dutch payment method used
Seeing this in production? The API handles NL-R-008 automatically. See the fix response →
Related Errors
Last updated: 27 February 2026
Handle NL-R-008 Automatically in Your Pipeline
The compliance engine auto-remediates this error with controlled safety policies and evidence pack generation.