Rule reference

PEPPOL-EN16931-CL007 "XCG" is not in the ISO 4217 currency list Peppol admits for BT-5 — the invoice currency, which every amount on the document is denominated in

"XCG" is not in the ISO 4217 currency list Peppol admits for BT-5 — the invoice currency, which every amount on the document is denominated in. Peppol maintains its own copy of ISO 4217 and refreshes it on its own release cadence, so it is not always the same list as the one BR-CL-04 enforces: a currency the CEN artefact has just added is refused here until Peppol catches up, and one the CEN artefact has just retired is still accepted. Passing BR-CL-04 is therefore not evidence of passing this rule. This is a Peppol BIS Billing 3.0 profile rule: it applies because profile is "peppol-bis-3". It does not apply to the en16931, xrechnung-ubl or xrechnung-cii profiles, whose validators will accept the same document.

This rule is implemented and its error payload below is real, but the long-form write-up — normative text, worked example, divergence note — is not written yet. Everything the library knows about this rule is on this page. Ask and we will prioritise it.

Business term
BT-5
Severity
fatal

What the library returns

The exact object in result.errors when this rule fires. Generated by running @attestwire/en16931, not transcribed:

TeachingError
{
  "rule": "PEPPOL-EN16931-CL007",
  "field": "BT-5",
  "severity": "fatal",
  "message": "\"XCG\" is not in the ISO 4217 currency list Peppol admits for BT-5 — the invoice currency, which every amount on the document is denominated in. Peppol maintains its own copy of ISO 4217 and refreshes it on its own release cadence, so it is not always the same list as the one BR-CL-04 enforces: a currency the CEN artefact has just added is refused here until Peppol catches up, and one the CEN artefact has just retired is still accepted. Passing BR-CL-04 is therefore not evidence of passing this rule. This is a Peppol BIS Billing 3.0 profile rule: it applies because profile is \"peppol-bis-3\". It does not apply to the en16931, xrechnung-ubl or xrechnung-cii profiles, whose validators will accept the same document.",
  "fix": "Set currency to an ISO 4217 alphabetic code in upper case, from the PEPPOL_CURRENCY_CODES list this package exports. If the currency you need is genuinely absent, the invoice cannot be sent over Peppol in it — bill in a currency the network knows and state the original in the note (BT-22).",
  "example": "\"currency\": \"EUR\"",
  "xpath": "/ubl:Invoice/cbc:DocumentCurrencyCode",
  "docsUrl": "https://attestwire.com/rules/PEPPOL-EN16931-CL007"
}

xpath locates the element in the generated UBL document, which is where a KoSIT or Peppol validator will report the same problem.

A passing value

the shape this field expects
"currency": "EUR"

The fix

Set currency to an ISO 4217 alphabetic code in upper case, from the PEPPOL_CURRENCY_CODES list this package exports. If the currency you need is genuinely absent, the invoice cannot be sent over Peppol in it — bill in a currency the network knows and state the original in the note (BT-22).

Arrived from a stack trace? The docsUrl on every error links straight here. Something wrong on this page — tell us.