BG-17Credit transferBG-18Payment card informationBT-81Payment means type code
Official rule text
[BR-DE-25-b] If BT-81 "Payment means type code" contains a code for direct debits (59), BG-17 and BG-18 must not be transmitted.
Official text (German): Wenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), dürfen BG-17 und BG-18 nicht übermittelt werden.
Why this error occurs
The element or combination is not allowed in this context. The file contains something the standard forbids: an element that must not be repeated, a value that contradicts another field, or data that belongs to a different profile.
How to fix it
Remove the offending element or make the two fields consistent as described in the rule text. If your software adds the element automatically, check for a profile setting (e.g. "EN 16931" vs "EXTENDED") or an export option that suppresses it.
What the validator checks
Checked element (context):
UBL
/ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = '59'] | /cn:CreditNote/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = '59']Test (XPath):
not(cac:PayeeFinancialAccount) and not(cac:CardAccount)CII
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans[normalize-space(ram:TypeCode) = '59']Test (XPath):
not(ram:PayeePartyCreditorFinancialAccount) and not(ram:PayeeSpecifiedCreditorFinancialInstitution) and not(ram:PayerSpecifiedDebtorFinancialInstitution) and not(ram:ApplicableTradeSettlementFinancialCard)
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
BR-DE-23-aCredit transfer selected but no payee account (BG-17)BR-DE-23-bIf BT-81 "Payment means type code" contains a code for credit transfers (30, 58),…BR-DE-24-aIf BT-81 "Payment means type code" contains a code for card payments (48, 54, 55),…BR-DE-24-bIf BT-81 "Payment means type code" contains a code for card payments (48, 54, 55),…BR-DE-19Payment account identifier (BT-84) is not a valid IBANBR-DE-20"Debited account identifier" shall contain a valid IBAN if "Payment means type code"…BR-DE-25-aIf BT-81 "Payment means type code" contains a code for direct debits (59), exactly…BR-DE-1Payment instructions (BG-16) are missing
Frequently asked questions
What does BR-DE-25-b mean?
BR-DE-25-b is a xrechnung rule: If BT-81 "Payment means type code" contains a code for direct debits (59), BG-17 and BG-18 must not be transmitted.
Will my invoice be rejected because of BR-DE-25-b?
Yes. BR-DE-25-b is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does BR-DE-25-b apply to?
XRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it. Syntax: UBL and CII.
Source: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogue generated from the official schematron on 2026-10-14.