Référence
Export MarkdownBR-DE-23-a Un virement comme moyen de paiement exige le groupe Virement (BG-17)
Selon la règle allemande XRechnung BR-DE-23-a, chaque moyen de paiement dont BT-81 porte un code de virement (30 = virement, 58 = virement SEPA) doit contenir le groupe Virement BG-17. BG-17 regroupe l’identifiant du compte de paiement BT-84 (en général l’IBAN), le nom du compte BT-85, facultatif, et l’identifiant du prestataire de services de paiement BT-86 (BIC), facultatif. Le validateur contrôle chaque moyen de paiement séparément : en UBL, il recherche cac:PayeeFinancialAccount dans l’élément cac:PaymentMeans ; en CII, ram:PayeePartyCreditorFinancialAccount dans ram:SpecifiedTradeSettlementPaymentMeans. KoSIT classe l’absence de BG-17 comme erreur fatale : la facture n’est pas valide.
Description du problème
ERREUR
Règle nationale allemande XRechnung (KoSIT, BR-DE) · XRechnung 3.0
Contexte et importance
L’erreur apparaît surtout lorsqu’un export écrit le code 58 mais laisse les coordonnées bancaires en texte libre, par exemple dans les conditions de paiement (BT-20) ou une note de facture, ou place le compte dans un autre élément de moyen de paiement. Le service fournisseurs de l’acheteur ne dispose alors d’aucun compte structuré pour payer. BR-DE-23-a vérifie seulement la présence de BG-17 : BR-50 exige l’identifiant de compte BT-84 dans BG-17, et BR-DE-19 signale, avec le code 58, une valeur BT-84 qui n’est pas un IBAN valide.
Solution
Enregistrez le compte bancaire du vendeur dans votre ERP ou votre outil de facturation et exportez-le avec chaque moyen de paiement de type virement. En UBL 2.1, ajoutez <cac:PayeeFinancialAccount><cbc:ID>DE89370400440532013000</cbc:ID></cac:PayeeFinancialAccount> dans le <cac:PaymentMeans> qui porte <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>. En CII, ajoutez <ram:PayeePartyCreditorFinancialAccount><ram:IBANID>DE89370400440532013000</ram:IBANID></ram:PayeePartyCreditorFinancialAccount> dans le <ram:SpecifiedTradeSettlementPaymentMeans> qui porte <ram:TypeCode>58</ram:TypeCode> ; pour un numéro de compte qui n’est pas un IBAN, utilisez ram:ProprietaryID. Si l’acheteur ne paie pas par virement, indiquez dans BT-81 le code du moyen de paiement réellement utilisé.
Actions rapides
Exemples valides
- BT-81 = 58 (virement SEPA) avec BG-17 et BT-84 = « DE89370400440532013000 »
- BT-81 = 30 (virement) avec BG-17 et un numéro de compte hors format IBAN dans BT-84
Exemples invalides
- BT-81 = 58, mais l’IBAN figure uniquement dans le texte des conditions de paiement (BT-20)
- BT-81 = 30 et cac:PaymentMeans ne contient que cbc:PaymentMeansCode et cbc:PaymentID, sans cac:PayeeFinancialAccount
Exemples de code
<cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cbc:PaymentID>RE-2026-0042</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>DE89370400440532013000</cbc:ID>
<cbc:Name>Lieferant GmbH</cbc:Name>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans><cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cbc:PaymentID>RE-2026-0042</cbc:PaymentID>
</cac:PaymentMeans>