ibr-033
Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).
What the rule checks
As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.
cac:AllowanceCharge[cbc:ChargeIndicator = false()]
((exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)) and not(exists(ancestor::cac:InvoiceLine|ancestor::cac:CreditNoteLine))) or (ancestor::cac:InvoiceLine | ancestor::cac:CreditNoteLine)
Checked with PINT SG Invoice, PINT SG Credit Note, PINT JP Invoice, PINT A-NZ Invoice, PINT A-NZ Credit Note, PINT MY Invoice, PINT MY Credit Note