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:
{
"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
"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).