BR-DE – XRechnung
BR-DE-30: creditor identifier (BT-90) missing for a direct debit
ErrorXRechnung business rule (KoSIT)
The rule's own wording
[BR-DE-30] Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Bank assigned creditor identifier" BT-90 übermittelt werden.Source: KoSIT XRechnung, version 3.0.2 (Schematron 2.6.0)
The fix in the XML
Enter the creditor identifier at the seller or at the payee: in UBL cac:PartyIdentification/cbc:ID with the attribute schemeID SEPA, in CII ram:CreditorReferenceID in the settlement details.
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyName><cbc:Name>Beispiel GmbH</cbc:Name></cac:PartyName>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cbc:ID>MANDATE-2024-0031</cbc:ID>
<cac:PayerFinancialAccount><cbc:ID>DE75512108001245126199</cbc:ID></cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans><cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeID="SEPA">DE98ZZZ09999999999</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName><cbc:Name>Beispiel GmbH</cbc:Name></cac:PartyName>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cbc:ID>MANDATE-2024-0031</cbc:ID>
<cac:PayerFinancialAccount><cbc:ID>DE75512108001245126199</cbc:ID></cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans>Meaning of the rule
Your invoice announces a direct debit and names a mandate, but not the creditor identifier under which you, as the collecting party, are registered with the Bundesbank. Without this identifier the customer cannot match the mandate to your company and their bank cannot verify the collection. XRechnung therefore requires the identifier as soon as the direct debit group is present. For German creditors it starts with DE and is 18 characters long.
What usually goes wrong
- The creditor identifier is not stored in the master data or unknown to the software.
- The identifier is written into the invoice text, not into the field meant for it.
- The identifier field is missing at the payee because a third party collects.
Questions and answers
Why does the creditor identifier sit at the seller in UBL and not with the payment data?
UBL has no element of its own for it; the norm maps BT-90 to the party identifier with schemeID SEPA, at the seller or at the payee.
What if a service provider collects the direct debit for me?
Then their creditor identifier belongs in the invoice, at the payee, because their identifier is the one on the customer's mandate.
EN 16931 fields
- BT-90
- BG-19
- BT-89
- BT-91
See also
Check your invoice
The XRechnung validator reports this rule with the line number and location – right in your browser, without upload.
The rule in detail
- UBL · Context (XPath)
/ubl:Invoice | /cn:CreditNote- UBL · Schematron test
not(cac:PaymentMeans/cac:PaymentMandate) or (cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEPA'] | cac:PayeeParty/cac:PartyIdentification/cbc:ID[@schemeID='SEPA'])- CII · Context (XPath)
/rsm:CrossIndustryInvoice- CII · Schematron test
(($BT-89-path or $BT-91-path) and $BT-90-path) or $BG-19-not-existing
Explanation written on 14 September 2026