Rule at a Glance
| ID | Severity | Context (XPath) |
|---|---|---|
| Series ref. BR-43 | Fatal (error) | cac:PaymentMeans |
Schematron ID: ibr-049 | Field: cbc:PaymentMeansCode (Payment means type code, IBT-081) |
||
Classification
Transaction Data — the payment means code is set per invoice based on how that specific transaction is expected to be settled, even though the underlying payment terms often derive from the customer master.
What the Rule Is Checking
Wherever an invoice includes a cac:PaymentMeans block — a Payment instruction, IBG-16 — that block must include a cbc:PaymentMeansCode. This field carries a code from the UNCL4461 payment means code list (credit transfer, direct debit, card, cash, and so on) and it is not optional once a payment instruction is present at all.
Why This Rule Exists
The payment means type code is what every subsequent conditional field in the payment block reads off. Rule ibr-192-ae, for example, only requires a payee financial account identifier when the payment means type code is credit transfer — without the code, that conditional logic has nothing to evaluate against. It also drives how the buyer's accounts payable system routes the invoice for settlement, since a card payment and a bank transfer trigger entirely different processing paths on the buyer side.
UAE Data Example
PASSES ✓: cac:PaymentMeans includes <cbc:PaymentMeansCode>30</cbc:PaymentMeansCode> (credit transfer), paired with a payee financial account identifier as required by the dependent rule.
FAILS ✗: A PaymentMeans block exists with payment terms narrative text but no PaymentMeansCode element — common where an ERP's payment terms field was mapped to the free-text note rather than the coded field.
What Your ERP / IT Team Must Ensure
Map payment terms in the ERP to a UNCL4461 code, not to free text, before generating the PaymentMeans block. Confirm the mapping table covers every payment method your business actually uses — cash, cheque, credit transfer, direct debit — rather than defaulting everything to a single code. Test the dependent field logic (bank account requirement for credit transfer) alongside this rule, since the two are validated together in practice.
Related Rules
ibr-192-ae requires the payee financial account identifier when the payment means type code is credit transfer.
