Skip to main content

BR-DE-23-b Credit transfer payment means must not contain card (BG-18) or direct debit (BG-19) data

Under the German XRechnung rule BR-DE-23-b, a payment means with a credit transfer code in BT-81 (30 or 58) must not also contain payment card information (BG-18) or direct debit information (BG-19). XRechnung ties each payment means code to one payment group: BR-DE-23 covers credit transfer, BR-DE-24 payment cards and BR-DE-25 direct debit. In UBL, the validator reports the error when cac:CardAccount or cac:PaymentMandate appears inside the same cac:PaymentMeans. In CII, it reports the error when the payment means contains ram:ApplicableTradeSettlementFinancialCard or ram:PayerPartyDebtorFinancialAccount/ram:IBANID, or when the header settlement contains a mandate reference (ram:DirectDebitMandateID, BT-89) or a creditor identifier (ram:CreditorReferenceID, BT-90). KoSIT flags the error as fatal.

Problem Description

ERROR

German XRechnung rule (KoSIT, BR-DE) · XRechnung 3.0

Context and Significance

The error usually comes from ERP templates that fill every payment field from the customer master data, for example a stored SEPA mandate or the creditor identifier, although the invoice is paid by transfer. In UBL, the check is limited to the cac:PaymentMeans element with the credit transfer code. In CII, BT-89 and BT-90 sit at header level, so a CII invoice that offers a credit transfer (30 or 58) fails BR-DE-23-b as soon as it also carries a mandate reference or a creditor identifier.

Solution

Decide which payment method the invoice offers and export only its group. For a credit transfer, keep BG-17 with the account in BT-84 and remove card and mandate data: in UBL, delete cac:CardAccount and cac:PaymentMandate from the <cac:PaymentMeans> with code 30 or 58. In CII, delete ram:ApplicableTradeSettlementFinancialCard and ram:PayerPartyDebtorFinancialAccount from the payment means and remove ram:DirectDebitMandateID and ram:CreditorReferenceID from the header settlement. If the buyer pays by SEPA direct debit, set BT-81 to 59 and send BG-19 instead of BG-17.

Quick actions

Valid Examples

  • BT-81 = 58 with BG-17 (IBAN in BT-84) and no card or mandate data in the same payment means
  • CII: TypeCode 30 with BG-17 and no ram:DirectDebitMandateID or ram:CreditorReferenceID in the header settlement

Invalid Examples

  • UBL: cac:PaymentMeans with code 58 contains cac:PayeeFinancialAccount and also cac:PaymentMandate with a mandate reference
  • CII: payment means with TypeCode 58, but ram:CreditorReferenceID (BT-90) in the header settlement is filled from the master data
  • UBL: code 30 together with cac:CardAccount holding the last four card digits

Code Examples

Valid XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <cbc:ID>DE89370400440532013000</cbc:ID>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
Invalid XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <cbc:ID>DE89370400440532013000</cbc:ID>
  </cac:PayeeFinancialAccount>
  <cac:PaymentMandate>
    <cbc:ID>MANDATE-2026-001</cbc:ID>
  </cac:PaymentMandate>
</cac:PaymentMeans>

Affected Fields

Validation Tools