infobusinessPeppol BIS 3.0

IN-PAYMENT-MEANS-CODES:Payment means codes validation

Fix: Update the `cbc:PaymentMeansCode` element to use a value from the allowed code list (IN-PAYMENT-MEANS-CODES).

Payment means codes should be from recommended UNCL4461 subset

Severity
Info
Rule set
Peppol BIS 3.0
Country
All EU
Fix type
BLOCKED

Engine Classification

Financial or legal field · Modification blocked by policy

Reason: Payment means code determines payment processing. Invalid codes may indicate an unsupported payment method that requires business decision.

What is IN-PAYMENT-MEANS-CODES?

IN-PAYMENT-MEANS-CODES is a info validation rule defined in the Peppol BIS 3.0 specification. It validates the DocumentCurrencyCode element under Invoice in the UBL invoice XML.

This flags a compliance issue that should be reviewed to improve interoperability and audit readiness.

Target path: XPath: /Invoice/cbc:DocumentCurrencyCode

This error requires manual correction — financial fields are protected by policy.

Why This Error Matters

Currency must be explicitly stated.

Ignoring IN-PAYMENT-MEANS-CODES degrades your invoice quality score. Receivers increasingly flag these for manual review.

Validator Behavior

  • ·Rejected by PEPPOL Access Points
  • ·Error returned: IN-PAYMENT-MEANS-CODES
  • ·Specification: Peppol BIS 3.0

How to Fix It

1.

Add currency

DocumentCurrencyCode element

2.

Use ISO code

3-letter ISO 4217

Before / After

Failing XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>INVALID_CODE</cbc:PaymentMeansCode>
</cac:PaymentMeans>
Corrected XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>VALID_CODE</cbc:PaymentMeansCode>
</cac:PaymentMeans>

Technical Reference

XPathXPath: /Invoice/cbc:DocumentCurrencyCode
SpecPeppol BIS 3.0

Common Causes

  • ·Missing currency
  • ·Wrong code

Seeing this in production? The API handles IN-PAYMENT-MEANS-CODES automatically. See the fix response →

Frequently Asked Questions

Invoice must specify document currency.

Update the `cbc:PaymentMeansCode` element to use a value from the allowed code list (IN-PAYMENT-MEANS-CODES). This error involves a protected field — Invoice Navigator flags it in your pipeline so your team can correct it at the source.

Yes, PEPPOL-EN16931-R008 is a critical error that must be fixed.

Related Errors

Related Content

Last updated: 3 March 2026

Share this guide:

Validate your invoice

Drop your XML here to check for IN-PAYMENT-MEANS-CODES

Detect IN-PAYMENT-MEANS-CODES before submission

This error involves a financial field that can't be auto-modified. We'll flag it with a clear diagnosis so you can fix it at the source.