ibr-038

Each Document level charge (ibg-21) MUST have a Document level charge reason (ibt-104) or a Document level charge reason code (ibt-105).

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 = true()]
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