infoPeppol BIS 3.0

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

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 rule flags a potential compliance issue that should be reviewed. While it may not block transmission, correcting it improves interoperability and audit readiness.

Target path: XPath: /Invoice/cbc:DocumentCurrencyCode

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

Why This Error Matters

Currency must be explicitly stated.

While IN-PAYMENT-MEANS-CODES does not block transmission, ignoring it degrades your invoice quality score. Receivers and tax authorities increasingly use these signals to flag suppliers 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 Content

Last updated: 3 March 2026

Share this guide:

Detect IN-PAYMENT-MEANS-CODES Before Submission

This error involves a financial or legal field that cannot be auto-modified. The compliance engine flags it immediately with a clear diagnosis so your team can fix it at the source.