Provide an account identifier for a credit transfer

Error BR-50 EN 16931

A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

For a payment means with ram:TypeCode 30 or 58, both ram:IBANID and ram:ProprietaryID are empty or absent. No payment account identifier is therefore provided.

What the rule means

A credit transfer payment instruction must include an identifier for the payment account. The rule accepts either an IBAN or a proprietary account identifier.

Affected fields BT-84 BG-16
Please provide the account identifier for the credit transfer

The specified payment means has no account identifier. You can provide an IBAN or a proprietary account identifier.

What to do
  1. Add ram:IBANID or ram:ProprietaryID under ram:PayeePartyCreditorFinancialAccount.
  2. Check the mapping through IBAN.
  3. Generate the invoice again and validate it again.
What it looks like
✗ Triggers the message
<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:TypeCode>30</ram:TypeCode>
  <ram:PayeePartyCreditorFinancialAccount/>
</ram:SpecifiedTradeSettlementPaymentMeans>
✓ Correct
<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:TypeCode>30</ram:TypeCode>
  <ram:PayeePartyCreditorFinancialAccount>
    <ram:IBANID>DE89370400440532013000</ram:IBANID>
  </ram:PayeePartyCreditorFinancialAccount>
</ram:SpecifiedTradeSettlementPaymentMeans>
Check in FactoorSharp
  • BankAccount.IBAN (BT-84)
  • FacturXInvoice.DebitorBankAccounts (BG-16)
  • FacturXInvoice.PaymentMeans (BG-16)
Technical details

For ram:TypeCode 30 or 58, the XPath requires either ram:IBANID or ram:ProprietaryID to be non-empty after normalize-space.

Where the rule applies

The rule applies to ram:PayeePartyCreditorFinancialAccount when ram:SpecifiedTradeSettlementPaymentMeans has a ram:TypeCode of 30 or 58.

Context (rule/@context)
//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount
Test expression (assert/@test)
normalize-space(ram:IBANID) != '' or normalize-space(ram:ProprietaryID) != ''