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).

error: the document is invalid

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.

Context
cac:AllowanceCharge[cbc:ChargeIndicator = false()]
Test
((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