# BR-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é.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-DE-23-a)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-DE-23-a)

## 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

### XML valide
```
<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>
```

### XML invalide
```
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cbc:PaymentID>RE-2026-0042</cbc:PaymentID>
</cac:PaymentMeans>
```

## Champs concernés

- [BT-81 Code du type de moyen de paiement](/resources/xrechnung/bt-81-payment-means-type-code)
- [BG-17 Virement](/resources/xrechnung/bt-84-payment-account-identifier)
- [BT-84 Identifiant du compte de paiement](/resources/xrechnung/bt-84-payment-account-identifier)

## Règles associées

- [BR-DE-23-b](/resources/kosit-validator-errors/br-de-23-b-credit-transfer-excludes-card-and-direct-debit)
- [BR-50](/resources/kosit-validator-errors/br-50-credit-transfer-account-identifier-required)
- [BR-61](/resources/kosit-validator-errors/br-61-credit-transfer-account-required)
- [BR-DE-19](/resources/kosit-validator-errors/br-de-19-sepa-payment-account-must-be-valid-iban)

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://xeinkauf.de/xrechnung/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
