ErrorPeppol BIS 3.0Input required

NL-R-008

For suppliers in the Netherlands, if the customer is in the Netherlands, the payment means code (ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) MUST be one of 30, 48, 49, 57, 58 or 59

What does this rule mean?

A Dutch payment means code is not permitted there.

For domestic trade the Netherlands allow only 30, 48, 49, 57, 58 and 59.

Official rule message (standard)

For suppliers in the Netherlands, if the customer is in the Netherlands, the payment means code (ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) MUST be one of 30, 48, 49, 57, 58 or 59

Where the rule applies

Syntax: CII · UBL

The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.

UBL

  • cac:PaymentMeans[$supplierCountryIsNL and $customerCountryIsNL]

CII

  • /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans[$supplierCountryIsNL and $customerCountryIsNL]

Technical test

The rule passes when this Schematron expression holds true:

normalize-space(ram:TypeCode) = '30' or
                normalize-space(ram:TypeCode) = '48' or
                normalize-space(ram:TypeCode) = '49' or
                normalize-space(ram:TypeCode) = '57' or
                normalize-space(ram:TypeCode) = '58' or
                normalize-space(ram:TypeCode) = '59'

How to fix it

A missing or incorrect business entry only you can supply. Add or correct it, then re-check.

Choose one of the permitted codes.

Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.

Check an e-invoice here

Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.

100% local — no upload, no account.

Related rules

← Back to the error library