Guide de migration v2025-01-01 → v2025-10-13
Tout ce dont vous avez besoin pour mettre à jour votre code.
Ce guide vous aide à passer de X-B2B-API-Version: 2025-01-01 à X-B2B-API-Version: 2025-10-13, en se concentrant sur ce que vous devez changer, pas seulement sur ce qui a changé.
Mettre à jour votre intégration
Section titled “Mettre à jour votre intégration”-
Mettre à jour l’URL de base : remplacez l’URL de base de votre API
app.b2brouter.netouapp-staging.b2brouter.netparapi.b2brouter.netouapi-staging.b2brouter.netrespectivement. -
Ajouter l’en-tête de version : incluez l’en-tête
X-B2B-API-Version: 2025-10-13dans toutes les requêtes, ou configurez la version par défaut dans les paramètres de clé API de votre groupe. -
Supprimer les extensions de format : supprimez les extensions
.jsonou.xmlde tous les chemins de point de terminaison. Toutes les réponses sont désormais en JSON par défaut. -
Mettre à jour les segments de chemin :
- remplacez
/projects/par/accounts/dans tous les chemins ; - remplacez
/clients/par/contacts/dans tous les chemins ; - supprimez le préfixe
/users/des points de terminaison de listes de codes ; - supprimez le préfixe
/api/v1/des points de terminaison de répertoire et de déclarations fiscales.
- Mettre à jour la gestion de la pagination : mettez à jour votre code afin de lire les données de pagination depuis l’objet
metaau lieu des propriétés au niveau racine :
const totalCount = response.total_count;const offset = response.offset;const limit = response.limit;const totalCount = response.meta.total_count;const offset = response.meta.offset;const limit = response.meta.limit;- Mettre à jour les noms de propriétés : remplacez toutes les références à
clientparcontactdans votre code de traitement des requêtes et réponses :
// Corps de requête{ "invoice": { "client_id": 123, "client": { "name": "Client Name", "taxcode": "9920:ESD29766391" } }}
// Corps de réponse{ "invoice": { "id": 123, "client": { ... } }}// Corps de requête{ "invoice": { "contact_id": 123, "contact": { "name": "Contact Name", "tin_scheme": "9920", "tin_value": "ESD29766391" } }}
// Corps de réponse{ "invoice": { "id": 123, "contact": { ... } }}- Consolider les listes de factures : remplacez les points de terminaison distincts de liste de factures par le point de terminaison consolidé
/accounts/{account}/invoicesen utilisant le paramètretype:
- pour les factures reçues :
GET /accounts/{account}/invoices?type=ReceivedInvoice - pour les auto-factures :
GET /accounts/{account}/invoices?type=IssuedSelfInvoice - pour les factures simplifiées :
GET /accounts/{account}/invoices?type=IssuedSimplifiedInvoice
-
Mettre à jour les déclarations fiscales : remplacez les anciens points de terminaison obsolètes des déclarations fiscales par les nouveaux points de terminaison consolidés sous
/accounts/{account}/tax_reportset/tax_reports/{id}. Consultez la New Tax Reports API pour plus de détails. -
Gérer les réponses complètes : mettez à jour votre code afin de traiter les représentations complètes des ressources renvoyées par les opérations PUT, DELETE et POST au lieu de réponses vides
204. -
Supprimer la prise en charge XML : si votre intégration reposait sur des réponses XML, convertissez votre code afin de ne gérer que des réponses JSON.
-
Mettre à jour les attributs de facture obsolètes : remplacez les attributs de facture obsolètes par leurs alternatives normalisées :
{ "invoice": { "contact_person": "John Doe", "state": "accepted", "customer_party_identification": "12345", "accounting_cost": "DEPT-001", "iban": "ES6000000000000000000000", "bic": "ABCDESMMXXX", "num_contracte": "CONTRACT-2024", "organ_gestor": "ORG-001", "oficina_comptable": "OFF-001" }}{ "invoice": { "customer_contact_person": "John Doe", // state supprimé - utilisez POST /invoices/{id}/mark_as à la place "contact": { "party_identification": "12345" }, "buyer_accounting_reference": "DEPT-001", "bank_account": { "iban": "ES6000000000000000000000", "bic": "ABCDESMMXXX" }, "contract_number": "CONTRACT-2024", "managing_unit": "ORG-001", "accounting_unit": "OFF-001" }}- Mettre à jour les attributs de contact/client obsolètes : remplacez les attributs de contact obsolètes par leurs alternatives normalisées :
{ "contact": { "old_channel": "peppol", "taxcode": "9920:ESD29766391", "contact": "John Doe", "bank_account": "ES6000000000000000000000", "company_identifier": "A12345678", "transport_type": "peppol", "document_type": "xml.ubl.invoice.bis3", "posta_elettronica_certificata": "pec@example.it", "codice_destinatario": "ABC1234" }}{ "contact": { "transport_type_code": "peppol", "tin_scheme": "9920", "tin_value": "ESD29766391", "contact_person": "John Doe", "bank_account_number": "ES6000000000000000000000", "cin_value": "A12345678", "document_type_code": "xml.ubl.invoice.bis3", "certified_email": "pec@example.it", "recipient_code": "ABC1234" }}- Mettre à jour les routing codes : les champs de routing code (
cin1_value,cin1_scheme, …,cin5_value,cin5_scheme) ne sont plus acceptés comme attributs de contact de premier niveau. Ils doivent être envoyés dans un wrapperrouting_codes:
{ "contact": { "name": "Ajuntament de Girona", "cin1_value": "L01170792", "cin1_scheme": "8014", "cin2_value": "L01170792", "cin2_scheme": "8014", "cin3_value": "L01170792", "cin3_scheme": "8014" }}{ "contact": { "name": "Ajuntament de Girona", "routing_codes": { "cin1_value": "L01170792", "cin1_scheme": "8014", "cin2_value": "L01170792", "cin2_scheme": "8014", "cin3_value": "L01170792", "cin3_scheme": "8014" } }}Dans les réponses, les routing codes sont également renvoyés dans l’objet routing_codes.
- Mettre à jour les changements d’état de facture : remplacez les mises à jour directes de l’attribut
statepar le point de terminaisonmark_as:
PUT /invoices/{id}.json{ "invoice": { "state": "accepted" }}POST /invoices/{id}/mark_as{ "state": "accepted"}Tester votre migration
Section titled “Tester votre migration”Nous recommandons de tester en profondeur votre intégration dans l’environnement de staging (api-staging.b2brouter.net) avant de la déployer en production. L’en-tête X-B2B-API-Version vous permet de tester la nouvelle version sans affecter votre intégration actuelle.