Envoyer des factures (de bout en bout)
Ce guide montre un flux API clair pour envoyer des factures : créer ou réutiliser un contact, créer ou importer une facture, l’envoyer, puis récupérer les fichiers finaux.
Prérequis
Section titled “Prérequis”- API Key :
X-B2B-API-Key - API Version :
X-B2B-API-Version ACCOUNT_ID: le compte qui émet la facture.
IDs importants :
ACCOUNT_ID: compte propriétaire (paramètre de chemin dans/accounts/{ACCOUNT_ID}/...).CONTACT_ID: contact destinataire (stocké dans le compte).INVOICE_ID: identifiant de facture (utilisé dans les endpoints/invoices/{INVOICE_ID}...).
1) Obtenir ou créer le contact destinataire
Section titled “1) Obtenir ou créer le contact destinataire”1.1) Rechercher des contacts (optionnel)
Section titled “1.1) Rechercher des contacts (optionnel)”curl --request GET \ --url 'https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/contacts?offset=0&limit=25&name=Example%20Customer' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'1.2) Recherche dans l’annuaire (optionnel)
Section titled “1.2) Recherche dans l’annuaire (optionnel)”Si vous connaissez l’identifiant et le pays du destinataire, vous pouvez récupérer des informations publiques depuis l’annuaire et les utiliser pour construire le contact.
curl --request GET \ --url https://api-staging.b2brouter.net/directory/es/ESB63276174 \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'1.3) Créer un contact (si vous n’en avez pas)
Section titled “1.3) Créer un contact (si vous n’en avez pas)”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' \ --data '{ "contact": { "name": "Example Customer", "country": "es", "is_client": true, "email": "billing@example.com", "tin_scheme": "9920", "tin_value": "ESB00000000", "transport_type_code": "b2brouter", "document_type_code": "json" } }'Remarque : CONTACT_ID est renvoyé dans la réponse. Ne le confondez pas avec ACCOUNT_ID.
2) Créer (JSON) ou importer (XML) la facture
Section titled “2) Créer (JSON) ou importer (XML) la facture”2.1) Créer une facture en JSON
Section titled “2.1) Créer une facture en JSON”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 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "send_after_import": false, "invoice": { "type": "IssuedInvoice", "contact_id": {CONTACT_ID}, "number": "INV-0001", "date": "2026-01-21", "terms": "custom", "due_date": "2026-02-21", "currency": "EUR", "invoice_lines_attributes": [ { "quantity": 1, "price": 10, "description": "Example service", "taxes_attributes": [ { "name": "VAT", "category": "S", "percent": 21 } ] } ] } }'2.2) Importer une facture depuis un fichier (lorsque vous générez déjà du XML)
Section titled “2.2) Importer une facture depuis un fichier (lorsque vous générez déjà du XML)”curl --request POST \ --url 'https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/invoices/import?send_after_import=false' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'content-type: application/octet-stream' \ --data 'data:text/xml;name=invoice.xml;base64,PD94bWw+Li4u'3) Envoyer la facture
Section titled “3) Envoyer la facture”curl --request POST \ --url https://api-staging.b2brouter.net/invoices/send_invoice/{INVOICE_ID} \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}'4) Récupérer la facture et télécharger les fichiers finaux
Section titled “4) Récupérer la facture et télécharger les fichiers finaux”4.1) Obtenir le payload de la facture
Section titled “4.1) Obtenir le payload de la facture”curl --request GET \ --url 'https://api-staging.b2brouter.net/invoices/{INVOICE_ID}?include=lines' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'4.2) Télécharger les fichiers légaux/originaux de la facture
Section titled “4.2) Télécharger les fichiers légaux/originaux de la facture”Voir le guide Download invoices.