# BR-49 L’instruction de paiement doit indiquer un code de moyen de paiement

Une instruction de paiement (BG-16) doit indiquer le code de moyen de paiement (BT-81).

## Description du problème

> **ERREUR**: Règle métier de la norme EN 16931 (CEN)

## Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. Le code de moyen de paiement (BT-81) indique à l’acheteur comment régler la facture (virement, prélèvement, carte), et d’autres règles en dépendent, comme BR-61 qui exige un compte pour les codes 30 et 58. L’erreur survient lorsque l’export contient un IBAN mais pas de code, souvent parce que le mode de règlement n’est pas paramétré dans la fiche client. Le schéma UBL impose déjà cbc:PaymentMeansCode : BR-49 apparaît donc surtout sur des factures CII sans ram:TypeCode.

## Solution

Ajoutez cac:PaymentMeans/cbc:PaymentMeansCode (CII : ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) issu de UNCL4461, par exemple 58 pour un virement SEPA, 30 pour un virement, 59 pour un prélèvement SEPA ou 48 pour une carte bancaire.

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

## Exemples valides

- BT-81 = 58 (virement SEPA)

## Exemples invalides

- ram:SpecifiedTradeSettlementPaymentMeans (CII) avec uniquement ram:PayeePartyCreditorFinancialAccount/ram:IBANID et sans ram:TypeCode ; en UBL, un cac:PaymentMeans sans cbc:PaymentMeansCode est déjà une erreur de schéma XML

## Exemples de code

### XML valide
```
<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:TypeCode>58</ram:TypeCode>
  <ram:PayeePartyCreditorFinancialAccount>
    <ram:IBANID>DE89370400440532013000</ram:IBANID>
  </ram:PayeePartyCreditorFinancialAccount>
</ram:SpecifiedTradeSettlementPaymentMeans>
```

### XML invalide
```
<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:PayeePartyCreditorFinancialAccount>
    <ram:IBANID>DE89370400440532013000</ram:IBANID>
  </ram:PayeePartyCreditorFinancialAccount>
</ram:SpecifiedTradeSettlementPaymentMeans>
```

## Champs concernés

- [BT-81 Code de moyen de paiement](/resources/xrechnung/bt-81-payment-means-type-code)

## Règles associées

- [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)

## 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://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [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.
