Tracking

Intégrer les services de livraison Boxtal dans une boutique en ligne ou une marketplace sur-mesure : API v3 (points relais, expéditions, documents, suivi), API v1 (cotation, non disponible en v3) et composant Carte (carte de points relais au checkout).

Liens utiles
BriqueGuide de démarrageDocumentation de référence
API v3 Getting started API v3 Documentation API v3
API v1 (cotation) Getting started API v1 Documentation API v1
Composant Carte Guide du composant Carte
Partie 1 : Comprendre l'API Boxtal v3 et son articulation avec l'API v1

Cette partie présente l'API v3, ce qui la distingue de l'API v1, et les notions à connaître avant de se lancer : environnements, identifiants, authentification, erreurs et migration. Les détails techniques et les exemples à tester se trouvent dans le guide interactif API v3 & carte.

Qu'est-ce que l'API v3 ?

Une API est une porte d'entrée qui permet à votre site de dialoguer directement avec Boxtal, sans passer par l'espace client. Votre boutique peut ainsi rechercher des points relais, commander une expédition, récupérer les étiquettes et suivre les colis, de façon automatique.

L'API v3 (actuellement en version 3.1) est la génération actuelle de l'API Boxtal. C'est elle qui est recommandée pour toute nouvelle intégration : elle offre de meilleures performances et un fonctionnement plus moderne. L'API v1, plus ancienne, est officiellement dépréciée. Elle reste maintenue pour assurer la compatibilité avec les anciens modules e-commerce et parce qu'elle est encore nécessaire pour la cotation.

Quelle est la différence entre l'API v1 et l'API v3 ?

Les deux API servent le même objectif, mais l'API v3 a été conçue selon les standards actuels. Voici les principales différences.

API v1API v3.1
StatutDépréciée, maintenue pour la compatibilitéRecommandée pour les nouvelles intégrations
Format des échangesXMLJSON, plus moderne et largement utilisé aujourd'hui
AuthentificationSystème de clés d'accèsBasic Auth, ou jeton temporaire (Bearer) obtenu auprès d'un service d'authentification
Offres hébergées (votre propre contrat transporteur, par exemple Colissimo)NonOui
Cotation (calcul des tarifs)OuiPas disponible, pas d'informations sur une éventuelle disponibilité

Le point clé est la cotation : comme elle n'existe pas en v3, une boutique qui affiche des frais de port calculés doit continuer à utiliser l'API v1 pour cette seule étape. Les deux API se combinent sans difficulté : v1 pour obtenir les tarifs au panier, v3 pour tout le reste (points relais, expéditions, étiquettes, suivi).

Le passage de l'une à l'autre est simple : chaque offre renvoyée par la cotation v1 comporte un code transporteur (bloc operator, par exemple CHRP) et un code de prestation (bloc service, par exemple Chrono2ShopDirect). Le code d'offre à utiliser en v3 s'obtient en les reliant par un tiret : CHRP-Chrono2ShopDirect. Le détail, avec un convertisseur, est dans la section De la cotation v1 à l'offre v3 du guide.

Quels environnements utiliser ?

Boxtal propose deux environnements séparés, chacun avec son adresse et ses comptes.

L'environnement de test (https://api.boxtal.build) sert à développer et à vérifier votre intégration. Il nécessite un compte dédié, distinct de votre compte habituel, et les expéditions qui y sont créées ne sont pas facturées. Pour que vous puissiez tester le suivi, Boxtal y génère des événements fictifs toutes les 20 minutes, de la création de l'étiquette jusqu'à la « livraison ». Ce suivi simulé concerne Mondial Relay, Colissimo, Chronopost, UPS et TNT domestique. Seuls les bordereaux et, le cas échéant, les factures proforma sont générés.

L'environnement de production (https://api.boxtal.com) est celui de votre activité réelle : les expéditions y sont facturées. On n'y bascule qu'une fois tout validé en test. Les clés de test ne fonctionnent qu'en test, et inversement.

Dans les deux cas, les échanges se font obligatoirement en HTTPS sécurisé (TLS 1.2).

Quels identifiants dois-je créer ?

Les identifiants se créent dans l'espace développeur Boxtal, page « Applications ». Chaque application fournit une clé d'accès et une clé secrète, et chacune a un rôle précis :

  • Application API v3 : pour les points relais, les expéditions, les étiquettes, le suivi et les notifications.
  • Application API v1 : pour la cotation, si vous affichez des tarifs calculés. Sur une marketplace, seule la plateforme en a besoin (voir Partie 3).
  • Application Composant Carte : pour afficher la carte des points relais dans votre page de commande.

Ces clés doivent rester sur votre serveur. Seul le jeton de la carte, temporaire et limité à cet usage, peut être transmis au navigateur de vos clients. N'utilisez jamais les clés API v3 pour la carte : elles donnent accès à toutes les opérations, y compris la création d'expéditions facturées (voir le jeton de la carte).

Comment s'authentifier sur l'API v3 ?

À chaque appel, Boxtal doit savoir qui fait la demande. L'API v3 propose deux méthodes.

Le jeton temporaire (méthode recommandée). Votre serveur présente une fois sa clé d'accès et sa clé secrète au service d'authentification de Boxtal. Il reçoit en échange un jeton valable une heure, une sorte de badge provisoire qu'il joint ensuite à chacune de ses demandes. Avant l'expiration, il en redemande un nouveau. Les clés circulent ainsi le moins possible.

Le Basic Auth. Plus simple, cette méthode consiste à joindre directement la clé d'accès et la clé secrète à chaque demande. Elle fonctionne sur toutes les opérations, mais expose davantage vos clés.

Ce fonctionnement remplace le système de clés d'accès de l'API v1. Pour le détail des en-têtes et un simulateur, voir la section S'authentifier du guide.

Comment l'API v3 signale-t-elle les erreurs ?

Quand une demande ne peut pas aboutir, l'API répond avec un code d'état et un message structuré qui indique la nature du problème, et le plus souvent le champ en cause. Votre site peut donc afficher une explication précise plutôt qu'un simple échec.

CodeCe que cela signifie
200La demande a réussi.
400La demande est mal formée (syntaxe incorrecte).
401L'authentification est absente ou refusée : clé erronée, jeton expiré ou mauvais environnement.
422La demande est comprise mais refusée : information manquante, offre indisponible, problème de paiement… Attention, une ressource introuvable renvoie aussi ce code, et non une erreur 404.
5xxIncident côté Boxtal, à retenter plus tard.

La liste complète des codes d'erreur, avec leur signification et la correction à apporter, figure dans la section Comprendre les erreurs du guide.

Comment migrer de l'API v1 vers l'API v3 sans interruption ?

La migration peut se faire progressivement, sans arrêter votre activité, car les deux API fonctionnent en parallèle.

  • Créez vos identifiants v3 tout en gardant votre application v1 active.
  • Migrez fonction par fonction : basculez d'abord la création des expéditions, puis les étiquettes et le suivi, en conservant la cotation en v1, la seule API qui la propose.
  • Profitez-en pour adopter les notifications : plutôt que d'interroger Boxtal régulièrement, laissez-le prévenir votre site quand une étiquette est prête ou quand un colis avance.
  • Validez tout en environnement de test avant de passer en production : création d'expédition, réception des notifications, gestion des erreurs.
Si vous expédiez avec votre propre contrat transporteur (offre hébergée, par exemple Colissimo), l'API v3 permet de l'utiliser directement : c'est un avantage supplémentaire de la migration.
Partie 2 : Intégrer les expéditions dans une boutique en ligne

Cette partie explique le principe, sans entrer dans le code. Pour les appels exacts, les paramètres et des exemples à tester, utilisez le guide interactif API v3 & carte.

Le principe en quelques mots

Intégrer Boxtal, c'est relier votre boutique à Boxtal à trois moments de la vie d'une commande. Au panier, le client voit les modes de livraison et leur prix. Après le paiement, votre site commande le transport. Ensuite, Boxtal vous transmet l'étiquette du colis puis, au fil du trajet, les nouvelles du suivi.

C'est toujours votre site, côté serveur, qui dialogue avec Boxtal. Le navigateur de votre client ne voit jamais vos clés : il affiche seulement ce que votre site lui prépare, et éventuellement la carte des points relais.

Avant de commencer : préparer le terrain

Il faut d'abord un compte Boxtal professionnel et des clés d'accès, que l'on crée dans l'espace développeur. Une clé sert à gérer les expéditions (API v3), une autre au calcul des tarifs (API v1) si vous en avez besoin, et une troisième à la carte des points relais. Commencez sur l'environnement de test : les expéditions n'y sont pas facturées et vous pouvez tout essayer sans risque.

Paiement différé obligatoire en production. Pour pouvoir commander des expéditions par l'API sur l'environnement de production, le paiement différé doit être activé sur votre compte Boxtal. Faites la demande depuis votre espace client (elle nécessite un numéro SIRET valide dans vos préférences de facturation) suffisamment tôt, pour qu'elle soit active au moment de la mise en ligne.

Préparez aussi vos données produit. Pour expédier un colis, Boxtal a besoin de son poids, de ses dimensions, de sa valeur et de la nature de son contenu (une catégorie choisie dans une liste fournie par Boxtal). Une boutique qui connaît déjà le poids et la taille de ses articles gagnera beaucoup de temps.

Enfin, à la mise en place, votre site s'abonne une fois pour toutes aux notifications de Boxtal : il indique l'adresse à laquelle il souhaite être prévenu quand une étiquette est prête et quand le suivi d'un colis évolue.

Au panier : afficher les frais de port

Deux approches sont possibles, et le choix dépend surtout de votre catalogue.

Les tarifs fixes. Vous décidez vous-même du prix affiché, par exemple 4,90 € en point relais et 7,90 € à domicile, avec livraison offerte au-delà d'un certain montant. Aucun appel à Boxtal n'est nécessaire à ce moment-là : c'est simple, prévisible et suffisant pour des produits de poids et de taille proches. Vous devez seulement choisir à l'avance quelle offre de transport Boxtal correspond à chaque mode proposé, car c'est elle qui sera commandée après le paiement.

Les tarifs calculés. Si vos colis varient beaucoup, ou si vous livrez dans plusieurs pays, mieux vaut demander le prix réel. Au moment où le client consulte son panier, votre site envoie à Boxtal le poids, les dimensions, l'adresse d'expédition et celle du client. Boxtal répond avec la liste des offres possibles et leur prix. Vous choisissez ensuite lesquelles afficher, et vous pouvez ajouter une marge ou arrondir. Ce calcul passe aujourd'hui par l'API v1, car l'API v3 ne propose pas la cotation. L'offre choisie par le client se convertit ensuite directement en code d'offre v3, en reliant le code transporteur et le code de prestation de la cotation par un tiret (par exemple MONR-CpourToi) : enregistrez ce code sur la commande, il servira à commander le transport (voir De la cotation v1 à l'offre v3).

Dans les deux cas, prévoyez une solution de secours : si le calcul ne répond pas, affichez un tarif par défaut plutôt que de bloquer la commande.
Au panier : choisir un point relais

Si le client opte pour une livraison en point relais ou en consigne (locker), il doit choisir où retirer son colis. Deux solutions s'offrent à vous. Vous pouvez utiliser le composant Carte de Boxtal : une carte prête à l'emploi, à intégrer dans votre page de commande, qui affiche les points relais autour de l'adresse du client et le laisse choisir celui qui lui convient. Elle peut aussi présélectionner automatiquement le point le plus proche, et votre site récupère le point choisi. C'est la solution la plus simple, sans développement cartographique (voir le composant Carte dans le guide). Vous pouvez aussi construire votre propre liste ou carte en interrogeant l'API, si vous voulez une présentation sur mesure.

Dans tous les cas, votre site enregistre l'identifiant du point choisi avec la commande. Il en aura besoin pour commander le transport.

Après le paiement : commander le transport

Une fois la commande payée, votre site crée l'expédition chez Boxtal. Il transmet l'adresse de départ, celle du client, la description des colis, l'offre de transport retenue, le point relais s'il y en a un, et votre propre numéro de commande. Ce numéro vous permettra de retrouver facilement la commande quand Boxtal vous enverra des nouvelles.

Boxtal enregistre alors l'envoi auprès du transporteur et vous indique le prix facturé ainsi qu'une date de livraison estimée. Vous pouvez déclencher cette étape automatiquement dès le paiement, ou la garder manuelle, par exemple via un bouton dans votre back-office, si vous préférez vérifier chaque commande avant l'envoi.

L'étiquette : imprimer et expédier

Une fois l'expédition créée, l'étiquette est disponible presque immédiatement. Il peut toutefois arriver qu'elle mette de plusieurs secondes à quelques minutes à être disponible, en cas de forte affluence sur les serveurs des transporteurs. Votre site ne doit donc pas compter sur une étiquette instantanée : Boxtal le prévient dès qu'elle est prête et lui transmet un lien de téléchargement. Votre site peut alors l'afficher dans le back-office ou l'imprimer directement. Pour un envoi hors Union européenne, les documents de douane arrivent de la même façon.

Ces liens expirent au bout de 7 jours : si vous souhaitez garder les étiquettes, enregistrez les fichiers. Il ne reste plus qu'à coller l'étiquette sur le colis et à le déposer, ou à le remettre au transporteur.

Le suivi : informer le client sans effort

À chaque étape du trajet (pris en charge, en transit, disponible au point relais, livré…), Boxtal prévient votre site. Celui-ci peut mettre à jour le statut de la commande et envoyer automatiquement un email ou un SMS au client, avec le lien de suivi du transporteur. Inutile d'interroger Boxtal en boucle pour savoir où en est chaque colis : l'information arrive d'elle-même.

Les imprévus à anticiper
  • Commande annulée : une expédition peut être annulée depuis votre site. Boxtal peut toutefois refuser l'annulation si l'envoi n'est plus annulable, par exemple s'il est déjà en route.
  • Demande refusée : une adresse incomplète, un colis trop lourd pour l'offre choisie ou une offre indisponible empêchent la création de l'expédition. Boxtal indique précisément ce qui ne va pas ; prévoyez de l'afficher clairement dans votre back-office.
  • Notifications : si votre site ne répond pas à une notification, Boxtal réessaie pendant 24 heures. Votre site doit simplement répondre vite et savoir ignorer une notification déjà reçue.
Pour passer à la pratique, le guide interactif détaille chaque étape avec un simulateur : authentification, abonnement aux notifications, recherche de points relais, carte, création d'expédition, étiquettes et suivi. Pour la cotation, voir la documentation API v1.
Partie 3 : FAQ spécifique marketplace sur-mesure

Architecture multi-marchands : identifiants, webhooks, facturation, onboarding et panier multi-vendeurs.

Comment faire la cotation des frais de port sur une marketplace ?

La cotation n'est pas disponible en API v3, et il n'y a pas d'information sur une éventuelle disponibilité. Utilisez l'API v1 pour interroger les tarifs en temps réel selon le poids, les dimensions, l'adresse d'expédition du vendeur et l'adresse du client.

Sur une marketplace, la cotation est centralisée par la plateforme : c'est le propriétaire de la marketplace qui utilise l'API v1, avec sa propre application, et qui propose les tarifs pour les commandes de tous ses marchands. Les marchands n'ont pas besoin de créer d'application API v1. Pour chaque cotation, indiquez comme adresse d'expédition celle du marchand concerné.

Les tarifs cotés sont ceux du compte de la plateforme. L'expédition, elle, est créée et facturée sur le compte du marchand, à ses propres conditions. Deux écarts sont possibles :
  • Le prix : si les tarifs du marchand diffèrent de ceux de la plateforme (remises, conditions négociées), le prix réellement facturé, renvoyé à la création dans deliveryPriceExclTax, peut différer du prix affiché à l'acheteur. Choisissez une règle claire : prix indicatif, marge de sécurité ou tarifs fixes.
  • L'offre : une offre cotée sur le compte de la plateforme doit aussi être disponible sur le compte du marchand, sinon la création est refusée (erreur 422, par exemple NoShippingOfferException). Les offres de contrats hébergés propres à un marchand n'apparaissent pas dans la cotation de la plateforme.

Vous pouvez combiner l'API v1 pour la cotation au panier et l'API v3 pour la gestion opérationnelle (expéditions, documents, suivi, webhooks). L'offre retenue en cotation se convertit en code d'offre v3 au format OPERATEUR-Service (voir De la cotation v1 à l'offre v3 et la liste des codes d'offres v3).

Comment rattacher les marchands à ma plateforme ?

Il n'existe pas de compte « maître » avec des sous-comptes, ni de paramètre d'API qui rattache plusieurs marchands à un compte principal. Chaque marchand utilise son propre compte Boxtal et ses propres identifiants.

  • Compte propre : chaque marchand crée son compte professionnel Boxtal.
  • Application du marchand : il crée une seule application, de type API v3, pour les expéditions, les documents, le suivi et les webhooks. Il n'a pas besoin d'application API v1 : la cotation est faite par la plateforme (voir cotation).
  • Écran de configuration : votre back-office prévoit un écran où le marchand saisit ses clés API v3. Stockez les clés secrètes chiffrées.
  • Appels cloisonnés : la cotation utilise les clés API v1 de la plateforme ; la création des expéditions, les documents, le suivi et les souscriptions utilisent les clés API v3 du marchand concerné. Gardez un jeton API v3 en cache par marchand.
Comment recevoir les webhooks de tous les marchands ?

Une souscription ne reçoit que les événements de l'application API v3 qui l'a créée. Votre plateforme doit donc créer les souscriptions DOCUMENT_CREATED et TRACKING_CHANGED avec les clés de chaque marchand, idéalement juste après la saisie de ses clés.

  • Utilisez une URL de callback par marchand (ex. https://marketplace.fr/webhooks/boxtal/{idMarchand}) ou retrouvez le marchand via shippingOrderId / shipmentExternalId.
  • Utilisez un webhookSecret différent par marchand pour vérifier chaque signature x-bxt-signature.
  • Si un marchand change de clés ou recrée son application, recréez ses souscriptions.
Comment fonctionne la facturation multi-vendeurs ?

La facturation est liée au compte Boxtal dont les clés sont utilisées pour créer l'expédition.

  • Entité facturée : chaque marchand est facturé et prélevé par Boxtal sur son propre compte dès lors que ses clés sont utilisées.
  • Conditions : chaque marchand renseigne un SIRET valide dans ses préférences de facturation Boxtal et demande l'activation du paiement différé.
  • Suivi des coûts : chaque marchand suit ses consommations dans son compte Boxtal. Côté API, la réponse de création renvoie le prix HT (deliveryPriceExclTax).
  • Cotation et facturation sont distinctes : la cotation faite par la plateforme ne génère aucune facturation. Seule la création de l'expédition, avec les clés du marchand, est facturée, au tarif de son compte. Comparez deliveryPriceExclTax au prix coté pour repérer les écarts.
Quelles étapes d'onboarding prévoir pour les marchands ?
  1. Création du compte professionnel Boxtal.
  2. Saisie du SIRET et demande d'activation du paiement différé.
  3. Création d'une application API v3 dans l'espace développeur (pas d'application API v1 : la cotation est faite par la plateforme).
  4. Saisie des clés API v3 dans le back-office de la marketplace.
  5. Création automatique des souscriptions webhooks par votre plateforme.
  6. Test : une cotation par la plateforme depuis l'adresse d'expédition du marchand, puis une création d'expédition de test avec les clés du marchand, pour vérifier que l'offre cotée est bien disponible sur son compte.
Comment gérer le point relais dans un panier multi-vendeurs ?

La recherche (API ou carte) se fait une seule fois avec operationType=ARRIVAL. À la validation, la plateforme scinde le panier et crée une commande POST /shipping/v3.1/shipping-order par vendeur, chacune avec ses propres clés.

Le même pickupPointCode ne peut être réutilisé que si toutes les expéditions utilisent une offre du même réseau. Vérifiez compatibleNetworks sur le point choisi, ou limitez le choix aux offres d'un réseau commun. Sinon, l'acheteur choisit un point par expédition.

Le point de dépôt (dropoffPointCode), lui, est propre à chaque vendeur.

Synthèse des endpoints

URL de base API v3 : https://api.boxtal.build (test) et https://api.boxtal.com (production). Authentification : Bearer (jeton) ou Basic sur tous les endpoints v3.

DomaineActionMéthodeEndpointParamètres
Cotation (v1)Cotation multi-transporteursGET/api/v1/cotation (à confirmer)Query string, réponse XML, Basic Auth
IAM (v3)Jeton API (clés v3) ou jeton Carte (clés Carte)POST/iam/account-app/tokenEn-tête Authorization: Basic
SouscriptionLister / créerGET / POST/shipping/v3.1/subscriptionCorps JSON (POST)
SouscriptionModifier / supprimerPUT / DELETE/shipping/v3.1/subscription/{id}{id} dans le chemin
Points relaisPar offre d'expéditionGET/shipping/v3.2/parcel-point-by-shipping-offerQuery parameters
Points relaisPar réseauGET/shipping/v3.2/parcel-point-by-networkQuery parameters
RéférentielCatégories de contenuGET/shipping/v3.1/content-categorylanguage (facultatif)
ExpéditionCréer une commandePOST/shipping/v3.1/shipping-orderCorps JSON
ExpéditionConsulter une commandeGET/shipping/v3.1/shipping-order/{id}{id} dans le chemin
ExpéditionAnnuler une commandeDELETE/shipping/v3.1/shipping-order/{id}{id} dans le chemin
DocumentsListe des documents (URL signées)GET/shipping/v3.1/shipping-order/{id}/shipping-document{id} dans le chemin
SuiviSuivi ponctuelGET/shipping/v3.1/shipping-order/{id}/tracking{id} dans le chemin

Points à valider avant diffusion

  • Chemin et hôte exacts de l'endpoint de cotation v1.
  • Liste officielle des valeurs searchNetworks.
  • Règles métier marketplace : absence de compte maître, SIRET, paiement différé.
  • Propriétaire de l'application Composant Carte sur une marketplace (plateforme ou marchand).