{
  "id": "UBL-SR-47",
  "country": "EU",
  "syntax": "ubl",
  "group": "syntax",
  "severity": "fatal",
  "severity_note": "fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-18.",
  "spec": "Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL",
  "statement": "When there are more than one payment means code, they shall be equal",
  "statement_lang": "en",
  "context": "/ubl:Invoice | /cn:CreditNote",
  "test": "count(//cbc:PaymentMeansCode[not(preceding::cbc:PaymentMeansCode/. = .)]) <= 1",
  "meaning": "When more than one payment means code is present, those codes shall be equal. The statement has no period and says shall. It is 68 characters. The flag is fatal. The context is the same string as BR-CO-18. The published test does not wrap the count in parentheses. It counts distinct payment means codes and writes = and <= with a space on each side.",
  "fix": "Use the same payment means code whenever more than one is sent.",
  "example_fail": "The invoice has two different payment means codes.",
  "example_pass": "The invoice has one payment means code, or several copies of the same code.",
  "example_note": "Illustration of the condition in the official statement. Not an example published by the source.",
  "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-SR-47/",
  "source_retrieved": "2026-10-18",
  "last_verified": "2026-10-18"
}
