Skip to content

Fatal

NL-R-008: Dutch domestic payment instructions need an allowed code

In short

Fatal: fails the selected checks.

NL-R-008 means an existing payment instructions group (BG-16) on an invoice between two parties in the Netherlands has no payment means code (BT-81), or uses a code other than 30, 48, 49, 57, 58 or 59. Fix it by setting cbc:PaymentMeansCode to the allowed code for the actual payment method.

On this page

What it means

When the seller and the buyer are both in the Netherlands, each cac:PaymentMeans group must contain a payment means code (BT-81) in cbc:PaymentMeansCode from this list: 30 (bank transfer), 48 (bank card), 49 (direct debit), 57 (standing agreement), 58 (SEPA bank transfer) or 59 (SEPA direct debit). A missing code or any other code fails. In Italian Peppol 3.2.1, the check applies when the seller is in the Netherlands, regardless of the buyer's country.

Why it matters

The Dutch rules accept only this short list of payment methods. With any other code the file fails the check.

How to fix it

Choose the payment method actually agreed with the buyer in your invoicing software. Use the corresponding code from the allowed list, such as 58 for a SEPA bank transfer or 59 for a SEPA direct debit. If you build the XML yourself, set cbc:PaymentMeansCode in every cac:PaymentMeans to the matching allowed code. Export and recheck the file.

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
Rule text from phive-rules 4.6.4.

Check your file

Drop your e-invoice to see whether NL-R-008 still fails, and which other rules do.

Updated 8 November 2026