{
  "id": "UBL-SR-30",
  "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": "Document level allowance reason shall occur maximum once",
  "statement_lang": "en",
  "context": "cac:AllowanceCharge[cbc:ChargeIndicator = false()]",
  "test": "(count(cbc:AllowanceChargeReason) <= 1)",
  "meaning": "The document level allowance reason shall occur at most once. The statement has no period and says shall. It is 56 characters. The flag is fatal. The context is an allowance charge whose charge indicator is false. That comparison writes = with a space on each side. The published test counts cbc:AllowanceChargeReason. The count comparison has a space before <= and a space after it.",
  "fix": "On a document-level allowance, send at most one allowance charge reason.",
  "example_fail": "A document-level allowance has two allowance charge reasons.",
  "example_pass": "A document-level allowance has one allowance charge reason, or none.",
  "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-30/",
  "source_retrieved": "2026-10-18",
  "last_verified": "2026-10-18"
}
