Méthodes de paiement
Ce guide décrit les codes internes de méthodes de paiement dans B2Brouter ainsi que leur encodage correspondant dans UBL, Facturae et FatturaPA.
Équivalences :
- Champ interne B2Brouter :
payment_method - Champ Facturae :
PaymentMeans(élément à/facturae:Facturae/Invoices/Invoice/PaymentDetails/Installment/PaymentMeans) - Champ UBL :
cbc:PaymentMeansCode(élément à/Invoice/cac:PaymentMeans/cbc:PaymentMeansCode) - Champ FatturaPA :
ModalitaPagamento(élément à/p:FatturaElettronica/FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/ModalitaPagamento) - Champ CII :
TypeCode(élément àrsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) - Business Terms ID :
BT-81
1. Tableau des codes de paiement
Section titled “1. Tableau des codes de paiement”| Méthode | Référence interne | UBL | Facturae | FatturaPA | Description |
|---|---|---|---|---|---|
| CASH | 1 | 10 | 01 | MP01 | Paiement en espèces (y compris billets et pièces en circulation), y compris les dépôts sur compte courant. |
| DEBIT | 2 | 49 | 02 | MP19 | Prélèvement direct (le montant est, ou a été, directement débité du compte bancaire du client). |
| HOLD | 3 | 8 | 03 | MP12 | Indique que la banque doit conserver le paiement pour recouvrement par le bénéficiaire ou selon d’autres instructions. |
| TRANSFER | 4 | 30 | 04 | MP05 | Virement bancaire (le montant est, ou a été, directement crédité sur le compte bancaire du fournisseur). |
| AWARDING | 7 | ZZZ | 07 | Paiement par cession ou adjudication | |
| PAGARE N O | 10 | 60 | 10 | MP06 | Billet à ordre non transmissible. Paiement au moyen d’une promesse inconditionnelle écrite par laquelle une personne s’engage envers une autre, signée par l’émetteur, à payer à vue ou à une date future déterminée une somme certaine en argent, à ordre ou au porteur. |
| CHEQUE | 11 | 20 | 11 | MP02 | Paiement au moyen d’un formulaire préimprimé par lequel un titulaire de compte (banque ou caisse d’épargne) ordonne le paiement d’une somme donnée à un bénéficiaire désigné. |
| REPOSITION | 12 | ZZZ | 12 | MP22 | Remboursement en compte ouvert. |
| SPECIAL/OTHER | 13 | ZZZ | 13 | MP22 | Définit toute autre méthode de paiement ; utilisez payment_method_text pour les descriptions personnalisées. |
| COMPENSATION | 14 | 97 | 14 | MP22 | Montants que deux partenaires se doivent mutuellement et qui sont compensés afin d’éviter des paiements inutiles. |
| PLUSGIRO | 15 | 50 | 15 | MP18 | Méthode de paiement suédoise standard utilisant le système postal giro. |
| CHEQUE B | 17 | 23 | 17 | MP03 | Paiement au moyen d’un formulaire préimprimé, complété par une institution financière, par lequel des instructions sont données à un titulaire de compte (banque ou caisse d’épargne) de payer une somme donnée à un bénéficiaire désigné. |
| BANK CARD | 19 | 48 | 19 | MP08 | Paiement au moyen d’une carte émise par une banque ou un autre établissement financier. |
| DEBIT TRANSFER | 31 | 31 | 04 | MP13 | Paiement par mouvement débiteur de fonds d’un compte vers un autre. |
| CREDIT CARD | 54 | 54 | 19 | MP08 | Paiement effectué au moyen d’une carte de crédit |
| BANKGIRO | 56 | 56 | 04 | MP03 | Méthode de paiement utilisant le réseau bank giro. |
| TRANSFER SEPA | 58 | 58 | 04 | MP05 | Virement SEPA (les fonds sont crédités sur le compte bancaire du fournisseur). |
| DEBIT SEPA | 59 | 59 | 02 | MP19 | Prélèvement SEPA (les fonds sont débités du compte bancaire du client ; un mandat peut être requis). |
| GIRO | 101 | ZZZ | 13 | Giro | |
| PAY NOW | 102 | ZZZ | 13 | Paiement immédiat (Pay Now) |
1.1 Champs supplémentaires requis (API)
Section titled “1.1 Champs supplémentaires requis (API)”Selon payment_method, il peut être nécessaire de fournir des champs supplémentaires pour que la facture puisse être générée/exportée correctement.
Cette section se concentre sur les exigences universelles en matière de données bancaires/de paiement ; certains formats de factures électroniques peuvent toutefois restreindre les codes de paiement acceptés.
Exigences universelles
Section titled “Exigences universelles”- Compte bancaire du client (payeur) : DEBIT (2), DEBIT SEPA (59).
Requis dans certains formats/flux spécifiques, mais pas universellement. Par exemple,
XRechnung \common_xrechnung_v23requiertinvoice.contact_iban,XRechnung v3requiert aussimandate_reference_identifier, etFacturaerequiert le compte bancaire du client (contact.bank_account_numberou uninvoice.contact_ibanvalide). Cela ne s’applique pas àIssuedSimplifiedInvoice. - Conditions de paiement : DEBIT (2).
Fournissez
terms(il ne peut pas être0ou vide). - Date d’échéance du paiement (dans la plupart des exports) :
Si vous définissez un
payment_methodet utilisezterms = "custom", vous devez fournirdue_date(sauf pour certains transports comme PEPPOL et SDI). Si vous utilisez destermsnon personnalisés, le système dérive automatiquementdue_date. - Compte bancaire de l’entreprise (bénéficiaire) : TRANSFER (4), TRANSFER SEPA (58), DEBIT TRANSFER (31), PLUSGIRO (15), BANKGIRO (56), AWARDING (7).
Fournissez
bank_account_id(ou incluez l’objetbank_accountlors de la création/mise à jour de la facture). - Description personnalisée : SPECIAL/OTHER (13).
Fournissez
payment_method_text(elle n’est conservée que lorsquepayment_method = 13). - Toutes les autres méthodes de paiement ne requièrent pas de champs bancaires/de paiement supplémentaires.
Cas particuliers (type de facture)
Section titled “Cas particuliers (type de facture)”- IssuedSelfInvoice :
- DEBIT (2) / DEBIT SEPA (59) requièrent
bank_account_id(compte bancaire de l’entreprise). - Les méthodes de type virement (TRANSFER (4), TRANSFER SEPA (58), DEBIT TRANSFER (31), PLUSGIRO (15), BANKGIRO (56), AWARDING (7)) requièrent
invoice.contact_iban(certains flux PDF-only peuvent ne pas l’exiger, mais la plupart des exports de factures électroniques oui).
- DEBIT (2) / DEBIT SEPA (59) requièrent
- IssuedSimplifiedInvoice : DEBIT (2) / DEBIT SEPA (59) ne requièrent pas
invoice.contact_iban.
Cas particuliers (format d’export)
Section titled “Cas particuliers (format d’export)”- Facturae :
- Si vous définissez un
payment_methodet que la facture n’est pas un avoir, vous devez fournir soit destermsvalides (non personnalisés), soitdue_date(en utilisantterms = "custom"). - Si la facture est en DEBIT/DEBIT SEPA, le compte bancaire du client doit être disponible (le
bank_account_numberdu contact ou uninvoice.contact_ibanvalide). - Si la facture est en TRANSFER (y compris les méthodes assimilées au virement), le compte bancaire de l’entreprise doit être disponible (via
bank_account_id/bank_account) et contenir un numéro de compte/IBAN valide.
- Si vous définissez un
- Svefaktura : les paiements par prélèvement (DEBIT/DEBIT SEPA) ne sont pas pris en charge.
- FatturaPA : COMPENSATION (14) n’est pas autorisé.
- XRechnung (UBL/CII) :
- Si la facture est en DEBIT/DEBIT SEPA, vous devez fournir
bank_assigned_creditor_referenceetinvoice.contact_iban. - Pour les profils v3,
mandate_reference_identifierest également requis.
- Si la facture est en DEBIT/DEBIT SEPA, vous devez fournir
2. Utilisation des endpoints
Section titled “2. Utilisation des endpoints”Ci-dessous, nous montrons comment utiliser les principaux endpoints pour gérer les paiements et les comptes bancaires associés aux contacts et aux factures.
2.1. Créer des comptes bancaires
Section titled “2.1. Créer des comptes bancaires”Lors de la création d’un compte bancaire, vous devez spécifier le type du compte afin d’indiquer quels champs utiliser :
number: utilisez uniquement le champnumber.number: numéro de compte bancaire.
iban: utilisezibanetbic.iban: International Bank Account Number.bic: code SWIFT de la banque.
Exemple de requête :
curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/bank_accounts \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json' \ --header 'content-type: application/json''sufix est le suffixe utilisé pour l’identifiant créancier dans les fichiers SEPA.
Exemple de réponse :
{ "bank_account": { "type": "number", "id": 3296, "name": "Ejemplo S.L.", "number": "ES9121000418450200051332", "sufix": 123, "country": "es", "created_at": "2025-07-14T11:37:02.000Z", "updated_at": "2025-07-14T11:37:02.000Z" }}Conservez bank_account.id pour référencer ce compte dans de futures requêtes.
2.2. Créer un contact
Section titled “2.2. Créer un contact”Configurer les détails de paiement pour les factures envoyées à un contact est utile pour éviter de gérer ces informations à chaque fois que vous devez envoyer un document.
Exemple de requête :
curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/contacts \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json' \ --header 'content-type: application/json''2.3. Créer une facture
Section titled “2.3. Créer une facture”Vous n’avez pas besoin de redéfinir les champs de paiement déjà définis sur le contact, sauf si vous devez les surcharger. Pour minimiser les appels API, incluez directement tous les détails de paiement requis, tels que payment_method, bank_account_id, payment_terms, etc., dans la requête Create Invoice au lieu de créer au préalable des contacts ou des comptes bancaires.
Exemple de requête :
curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/invoices \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'content-type: application/json' 'Et si vous n’avez pas fourni bank_account_id, vous pouvez toujours inclure l’objet bank_account :
{"invoice": { ... "bank_account": { "type": "number", "number": "ES9121000418450200051332" }, ... }} '