Message

All amounts SHALL have same currency code as document currency

Context
cbc:Amount | cbc:TaxAmount | cbc:TaxableAmount | cbc:LineExtensionAmount | cbc:PriceAmount | cbc:BaseAmount | cac:LegalMonetaryTotal/cbc:*
Test
not(@currencyID) or @currencyID = $documentCurrencyCode
Usage
/ ubl:OrderResponse / cac:AllowanceCharge / cbc:Amount
/ ubl:OrderResponse / cac:AllowanceCharge / cbc:BaseAmount
/ ubl:OrderResponse / cac:TaxTotal / cbc:TaxAmount
/ ubl:OrderResponse / cac:TaxTotal / cac:TaxSubtotal / cbc:TaxableAmount
/ ubl:OrderResponse / cac:TaxTotal / cac:TaxSubtotal / cbc:TaxAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:LineExtensionAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:TaxExclusiveAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:TaxInclusiveAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:AllowanceTotalAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:ChargeTotalAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:PrepaidAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:PayableRoundingAmount
/ ubl:OrderResponse / cac:LegalMonetaryTotal / cbc:PayableAmount
/ ubl:OrderResponse / cac:OrderLine / cac:LineItem / cbc:LineExtensionAmount
/ ubl:OrderResponse / cac:OrderLine / cac:LineItem / cac:Price / cbc:PriceAmount
/ ubl:OrderResponse / cac:OrderLine / cac:LineItem / cac:Price / cac:AllowanceCharge / cbc:Amount
/ ubl:OrderResponse / cac:OrderLine / cac:LineItem / cac:Price / cac:AllowanceCharge / cbc:BaseAmount