Intégration API

AfterShip API : tracking multi-transporteurs et événements de livraison

Jérémy Chomel Dawap
  • Publié le : 20 novembre 2025
  • Mis à jour le : 1er octobre 2026
  • Temps de lecture : 22 minutes
  1. Définir qui fait foi pour le suivi
  2. Stabiliser l’identité de chaque colis
  3. Associer le bon transporteur sans deviner
  4. Créer un tracking de manière rejouable
  5. Relier commande, expédition et colis
  6. Conserver la chronologie des checkpoints
  7. Normaliser les statuts sans perdre le brut
  8. Résister aux événements tardifs ou désordonnés
  9. Versionner le contrat des webhooks
  10. Vérifier la signature sur le corps brut
  11. Acquitter vite et traiter dans une file
  12. Dédupliquer événement et checkpoint
  13. Épingler les versions API et webhook
  14. Faire évoluer le schéma sans effacer des données
  15. Réconcilier plutôt que croire un seul canal
  16. Gouverner les estimations de livraison
  17. Séparer état transport et promesse client
  18. Transformer les exceptions en actions SAV
  19. Gérer changement de transporteur et dernier kilomètre
  20. Encadrer clôture et relance du tracking
  21. Respecter les limites propres à chaque endpoint
  22. Réduire secrets et données personnelles
  23. Superviser la fraîcheur métier
  24. Construire un SLO orienté client
  25. Préparer l’incident et la reprise
  26. Recetter les cas qui contredisent le nominal
  27. Savoir quand centraliser le tracking
  28. Éviter les erreurs fréquentes
  29. Décision : ouvrir, limiter ou bloquer
  30. Rendre le contrat technique exploitable
  31. Exécuter un plan d’action en quatre semaines
  32. Approfondir logistique et webhooks
  33. Conclusion : expliquer chaque état affiché
Portrait de Jérémy Chomel

Un client reçoit le message « livré » alors que son colis attend encore dans un point de retrait. Le service client consulte l’OMS, AfterShip puis le site du transporteur et obtient trois états différents. Le problème devient visible trop tard : le webhook le plus récent a écrasé la chronologie, mais personne ne sait s’il était tardif, mal rattaché ou simplement traduit avec une règle trop large.

Le vrai enjeu du tracking multi-transporteurs n’est pas seulement le nombre de transporteurs. Chaque réseau possède ses codes, ses fuseaux, ses ruptures de charge et ses rythmes de mise à jour. AfterShip fournit un modèle commun, mais l’entreprise reste responsable de l’identité du colis, de la promesse affichée et de la décision prise sur une exception.

Contre-intuitivement, davantage d’événements peut dégrader le suivi si l’intégration remplace l’état courant à chaque notification. Le coût caché apparaît dans les contacts SAV, les remboursements prématurés, les relances inutiles et le temps passé à reconstituer une séquence qui aurait dû rester immuable.

Une intégration API sur mesure doit transformer les messages AfterShip en faits vérifiables : couple colis–transporteur stable, checkpoint horodaté, statut normalisé, promesse client calculée séparément, événement dédupliqué et rapprochement périodique avec l’état réellement disponible.

Définir qui fait foi pour le suivi

L’OMS ou la plateforme e-commerce fait foi pour la commande, l’expédition promise et le client. Le WMS confirme la préparation et la remise au transporteur. AfterShip agrège le suivi. Le transporteur reste la source opérationnelle des scans qu’il émet. Aucun système ne possède seul toute la vérité.

La matrice d’autorité distingue création du colis, association au transporteur, checkpoint, estimation, preuve de livraison et message présenté au client. Un statut AfterShip enrichit le dossier ; il ne modifie pas silencieusement la commande ou le remboursement sans règle métier.

Le flux conserve l’origine de chaque valeur. Une date annoncée par le transporteur, une estimation AfterShip et une promesse commerciale portent des noms distincts. Cette séparation évite de présenter une prédiction comme un engagement contractuel.

Stabiliser l’identité de chaque colis

Un numéro de suivi n’est pas toujours unique à l’échelle mondiale ni éternel. Le couple avec le slug transporteur réduit les collisions, tandis que l’identifiant AfterShip et l’identifiant interne de colis forment la correspondance durable du connecteur.

La table de liaison conserve commande, expédition, colis, transporteur, tracking number, identifiant AfterShip et période de validité. Elle n’utilise pas l’email du client ou le numéro de commande comme clé technique. Une commande peut produire plusieurs colis et un colis peut changer de réseau au dernier kilomètre.

Une ambiguïté bloque l’association automatique. Rattacher un événement au mauvais colis crée une fausse livraison plus grave qu’un suivi temporairement absent. La quarantaine expose les candidats et la preuve disponible au lieu de choisir sur une simple ressemblance.

Associer le bon transporteur sans deviner

Lors de la création, fournir le slug exact du transporteur est préférable lorsqu’il est connu. AfterShip peut détecter un transporteur ou accepter un groupe de slugs selon le cas, mais la détection reste une hypothèse à confirmer quand plusieurs réseaux partagent des formats proches.

Le référentiel traduit les codes du TMS, du WMS ou de la marketplace vers les slugs AfterShip approuvés. Il possède une version, un propriétaire et un statut actif. Un transporteur non reconnu ne devient pas une valeur par défaut globale.

Le taux de détection incertaine est mesuré par origine. Une hausse après l’arrivée d’un nouveau service logistique signale un mapping manquant. L’équipe corrige la source ou le référentiel, puis rejoue uniquement les colis concernés.

Créer un tracking de manière rejouable

La création transmet le minimum nécessaire : numéro, transporteur connu, références internes et informations utiles aux fonctions choisies. Elle ne copie pas toute la commande. Le payload est validé avant l’appel afin de séparer donnée incomplète et panne fournisseur.

Une clé fonctionnelle interne combine colis, transporteur et version de relation. Après un timeout, le connecteur recherche la ressource existante avant de recréer. Un nouvel identifiant HTTP ne prouve pas qu’un premier appel n’a produit aucun effet.

La réponse rapproche immédiatement l’identifiant AfterShip. Si le fournisseur refuse le slug, le format ou un champ requis par ce transporteur, le dossier passe en quarantaine avec l’erreur structurée. Une correction manuelle dans le middleware serait perdue au prochain export.

Relier commande, expédition et colis

Une commande peut être fractionnée entre entrepôts et transporteurs. Le suivi client doit refléter chaque colis sans déclarer la commande entière livrée au premier scan final. La règle de consolidation appartient à l’OMS ou à la couche d’expérience, pas au statut d’un colis isolé.

Le modèle distingue nombre de colis attendu, colis connus et colis effectivement remis. Un colis créé tardivement n’efface pas l’historique des autres. La promesse de commande peut rester partielle tant qu’une ligne ou une quantité n’est pas couverte.

Les transferts vers un transporteur du dernier kilomètre créent une relation entre identifiants. Le nouveau tracking ne remplace pas l’ancien sans lien. La chaîne permet au support de traverser l’expédition de bout en bout et d’expliquer une rupture de visibilité.

Conserver la chronologie des checkpoints

Chaque checkpoint est enregistré comme un fait avec l’heure annoncée, l’heure de réception, le lieu, le statut brut, le message et la source. L’état courant est une projection de cette chronologie ; il ne remplace pas les faits précédents.

Les horodatages peuvent contenir un décalage, une date seule ou une précision variable selon le transporteur. Le stockage conserve la valeur et le fuseau disponibles, puis calcule une représentation normalisée. Inventer une heure locale rendrait l’ordre artificiellement précis.

La version récente du contrat peut fournir un hash de checkpoint utilisable pour la déduplication. L’intégration conserve néanmoins sa propre clé de repli, car une migration de version ou un ancien événement peut ne pas posséder ce champ.

Normaliser les statuts sans perdre le brut

Le statut commun facilite l’affichage : information reçue, en transit, en livraison, disponible au retrait, livré, tentative échouée, expiré ou exception. Ce vocabulaire ne suffit pas aux opérations. Le code brut et le sous-statut expliquent la cause et l’action possible.

Le mapping versionné associe un statut fournisseur à un état interne et, si nécessaire, à une action. Une exception douanière ne suit pas le même parcours qu’une adresse incorrecte. Regrouper les deux sous « incident » ferait disparaître le bon propriétaire.

Une valeur inconnue reste inconnue et déclenche une revue. Elle n’hérite pas du mapping le plus proche. Le dashboard mesure ces valeurs par transporteur et version afin de détecter une évolution du fournisseur avant que le client voie un message faux.

Résister aux événements tardifs ou désordonnés

Un webhook peut arriver après un événement plus récent ou être rejoué. Le traitement insère le checkpoint dans la chronologie puis recalcule l’état selon les règles. L’heure de réception ne gagne pas automatiquement sur l’heure opérationnelle.

Certains statuts sont terminaux pour le colis, mais un message tardif peut apporter une preuve ou une correction. La règle n’ouvre pas automatiquement un colis livré ; elle compare la séquence, conserve le fait et demande une décision si le nouvel événement contredit le résultat.

Scénario concret : le test envoie successivement livré, en transit tardif puis le doublon de livré. L’affichage reste cohérent, les trois réceptions sont auditables et aucun email de livraison supplémentaire n’est envoyé. Si la projection régresse, alors la promotion du mapping est bloquée.

Versionner le contrat des webhooks

AfterShip versionne ses webhooks et son API. La destination choisit une version connue, puis le parseur enregistre celle reçue. Une mise à jour fournisseur peut ajouter des champs, modifier un nom ou enrichir les sous-statuts ; elle ne doit pas être absorbée sans recette.

Le schéma accepte les champs supplémentaires mais refuse une structure critique incompatible. Les fixtures contiennent les événements employés : mise à jour de tracking, révision d’EDD et seuil de pending lorsque ces notifications sont activées. Chaque changement de version rejoue ce corpus.

Le changelog est relu avant la migration. L’équipe identifie champs renommés, nouvelles valeurs et dépréciations, puis déploie un lecteur compatible avant de modifier la version envoyée par AfterShip. Cette séquence évite une rupture brutale de l’ingestion.

Vérifier la signature sur le corps brut

Le webhook porte l’en-tête aftership-hmac-sha256. Le récepteur calcule un HMAC SHA-256 sur les octets bruts du corps avec le secret de webhook, encode le résultat en base64 puis effectue une comparaison en temps constant.

La vérification précède le parsing JSON et toute mise en file. Re-sérialiser l’objet avant calcul peut changer espaces ou ordre des propriétés et produire un faux rejet. Le corps brut est conservé seulement le temps nécessaire au contrôle et au traitement autorisé.

La rotation du secret accepte deux versions pendant une fenêtre courte. Les métriques distinguent ancien et nouveau secret sans exposer leur valeur. Après confirmation, l’ancien est retiré et un test prouve qu’il ne valide plus aucun appel.

Acquitter vite et traiter dans une file

Le récepteur vérifie signature, taille et JSON minimal, persiste l’événement puis répond rapidement en 2xx. La normalisation, la lecture du dossier et les notifications client se déroulent ensuite dans une file. Un traitement synchrone long encourage les retries fournisseur.

AfterShip documente plusieurs tentatives avec backoff lorsqu’une destination ne renvoie pas un succès. Le système considère donc les doublons comme normaux. Une réponse 2xx signifie que l’événement est durablement accepté, pas que toutes ses conséquences métier sont déjà terminées.

Si la file interne est indisponible, le endpoint refuse plutôt que d’acquitter un événement perdu. La capacité d’ingestion et le stockage tampon sont dimensionnés pour une reprise après incident, notamment lors d’un pic d’expéditions ou d’une restauration du fournisseur.

Dédupliquer événement et checkpoint

L’event_id du webhook identifie la livraison de l’événement et bloque son retraitement exact. Un checkpoint possède une identité différente : hash fourni lorsqu’il existe, sinon combinaison transporteur, colis, horodatage, lieu et code brut normalisés.

La déduplication ne supprime pas un événement distinct parce qu’il produit le même statut. Deux scans « en transit » à des lieux différents racontent une progression. À l’inverse, un retry identique ne déclenche ni message client ni action SAV supplémentaire.

Les effets aval emploient leurs propres clés fonctionnelles. L’envoi « colis livré » est rattaché au colis et à la première transition vers livré. Rejouer le pipeline peut reconstruire les projections sans renvoyer les communications déjà confirmées.

Épingler les versions API et webhook

La base URL AfterShip inclut une version. Le client la configure explicitement et refuse une valeur inconnue. Utiliser implicitement la dernière version transforme une évolution du fournisseur en déploiement non maîtrisé.

La version API et la version webhook peuvent évoluer à des dates différentes. Le contrat teste les deux sens : payload créé et événement reçu. Une compatibilité en lecture n’autorise pas nécessairement l’écriture d’un champ nouveau vers une version ancienne.

La migration possède un plan de repli. Le nouveau parseur accepte l’ancien format pendant la transition, tandis que le code d’écriture reste capable de revenir à l’ancienne base URL si elle est encore supportée. Les versions retirées sont surveillées comme une échéance produit.

Faire évoluer le schéma sans effacer des données

Absent, null, chaîne vide et tableau vide ne portent pas la même intention. Un champ absent dans une notification partielle ne doit pas effacer une valeur acquise par une lecture complète. Le mapping documente la sémantique de chaque champ.

Les enums sont ouverts côté ingestion : une nouvelle valeur est stockée comme inconnue et envoyée en quarantaine plutôt que de faire échouer tout le webhook. La projection client reste sur le dernier état sûr jusqu’à validation du mapping.

Les migrations ajoutent d’abord les colonnes ou structures compatibles, puis déploient le lecteur et enfin la nouvelle version fournisseur. Une suppression attend la disparition mesurée des anciens champs. Le rollback n’exige ainsi aucune restauration de données perdue.

Réconcilier plutôt que croire un seul canal

Les webhooks accélèrent le suivi mais ne constituent pas l’unique mécanisme de vérité. Une tâche planifiée relit un échantillon et les dossiers sensibles via l’API : colis sans événement, exception ancienne, livraison non rapprochée ou notification client contestée.

Le rapprochement compare identifiant, transporteur, statut, checkpoints et EDD. Il classe les écarts : événement manquant, ordre différent, mapping inconnu, ressource absente ou donnée locale obsolète. Chaque classe possède une reprise adaptée.

La lecture respecte les limites de l’endpoint et la priorité métier. Elle n’interroge pas chaque colis toutes les minutes. Les webhooks couvrent le nominal ; la réconciliation cible le risque et fournit une preuve de complétude périodique.

Gouverner les estimations de livraison

Le modèle peut exposer une date du transporteur, une estimation AfterShip et une estimation personnalisée. Chacune porte sa provenance et parfois une plage ou un niveau de confiance. Le connecteur ne les fusionne pas dans un unique champ « date prévue ».

Les formats et fuseaux varient selon la donnée disponible. L’affichage choisit le fuseau du destinataire lorsqu’il est connu et indique une plage sans inventer une heure. Une révision d’EDD produit un événement comparable à la valeur précédemment présentée.

La promesse commerciale reste gouvernée par l’entreprise. Une estimation peut informer sans repousser automatiquement une garantie ou un SLA. Le métier décide quand prévenir le client et à partir de quel écart ouvrir une action proactive.

Séparer état transport et promesse client

Le statut logistique décrit ce que le réseau a signalé. La promesse client combine date annoncée, niveau de service, événements et règles commerciales. Un colis « en transit » peut respecter sa promesse ; un autre avec le même statut peut déjà être en retard.

La projection client utilise des messages validés et une fraîcheur affichable. Elle n’expose pas directement un libellé brut incompréhensible ou anxiogène. Le support conserve néanmoins le détail pour diagnostiquer l’exception.

Les notifications se déclenchent sur une transition métier, non sur chaque webhook. La première mise en livraison peut informer ; un doublon ou une correction sans effet visible reste silencieux. Cette règle protège le client contre une rafale causée par les retries.

Transformer les exceptions en actions SAV

Une exception doit indiquer propriétaire, urgence et prochaine action. Adresse incorrecte, douane, tentative échouée, colis endommagé et absence de scan ne suivent pas le même runbook. Le mapping associe les sous-statuts exploitables à ces catégories.

Le dossier SAV contient commande, colis, dernier checkpoint pertinent, âge, promesse et lien vers le suivi officiel. Il ne demande pas au conseiller de comparer trois écrans. Les valeurs sensibles sont limitées à ce qui sert à contacter ou identifier l’envoi.

La clôture attend un fait : nouveau scan, confirmation transporteur, remise au client, réexpédition ou remboursement validé. Recevoir un autre webhook ne ferme pas automatiquement le cas si la cause métier reste ouverte.

Gérer changement de transporteur et dernier kilomètre

Un colis international peut passer d’un réseau à un autre. Le tracking de dernier kilomètre est relié au premier plutôt que substitué. La chronologie indique la remise et conserve les deux transporteurs, leurs identifiants et leurs liens officiels.

La détection d’un nouveau transporteur ne réécrit pas rétroactivement les anciens checkpoints. Elle ouvre une nouvelle étape de la chaîne. Le statut global choisit le segment actif tout en permettant au support de revenir au précédent.

Si le lien est ambigu, la transition attend une confirmation ou une donnée fournie par le transporteur. Créer automatiquement un second colis sur un numéro ressemblant peut mélanger deux commandes et exposer le suivi d’un autre destinataire.

Encadrer clôture et relance du tracking

Un tracking terminé n’a pas besoin d’être interrogé indéfiniment. La politique ferme livré, expiré ou dossier abandonné selon des critères précis, puis réduit les lectures. L’historique utile reste accessible suivant la durée retenue par l’entreprise.

La relance d’un tracking inactif utilise l’opération documentée lorsque le cas est autorisé. Elle n’est pas un retry générique : le service peut limiter cette action et refuser un suivi encore actif ou déjà relancé.

Une correction après clôture crée un nouvel événement et une revue ciblée. Elle ne supprime pas la livraison précédemment affichée. Le support voit le changement, sa provenance et les communications déjà envoyées avant de décider une action client.

Respecter les limites propres à chaque endpoint

Les versions récentes appliquent des limites différentes selon les endpoints. Créer un tracking, lire une ressource, détecter un transporteur ou prédire une EDD ne partage pas nécessairement le même débit. Le client possède donc des budgets distincts.

Les en-têtes de limite et de reset alimentent le régulateur. Une réponse 429 déclenche attente et jitter selon l’opération. Le système ne lance pas un retry massif à la seconde suivante, ni ne bloque les créations prioritaires derrière une réconciliation de fond.

Le tableau suit quota restant, refus, profondeur de file et âge du plus ancien colis. Une augmentation de quota ne remplace pas l’optimisation : déduplication des créations, usage des webhooks et rapprochement ciblé réduisent la charge inutile.

Réduire secrets et données personnelles

La clé d’API ou la clé privée employée par le mécanisme de signature sortante reste dans un coffre et n’est accessible qu’au connecteur. Une application partenaire suit OAuth et ses scopes lorsque ce modèle correspond au produit. Les méthodes ne sont pas mélangées dans un même secret générique.

Le webhook possède un secret distinct. Les logs n’enregistrent ni en-têtes d’authentification ni corps complet. La corrélation, l’identifiant de colis et les codes d’erreur suffisent au premier niveau de support.

Nom, téléphone, email, adresse et métadonnées de commande ne sont envoyés que si la fonction choisie les exige. Les environnements de test utilisent des données synthétiques. Copier la production facilite une démo mais étend inutilement le risque.

Superviser la fraîcheur métier

La supervision mesure créations acceptées, webhooks valides, délais de traitement, checkpoints inconnus, colis sans mise à jour, réconciliations divergentes et notifications déclenchées. Un endpoint disponible ne garantit pas un suivi client frais.

La corrélation relie commande, expédition, colis, identifiant AfterShip, événement et effet aval. Le support peut partir du numéro présenté par le client ; l’exploitation peut partir d’un event ID ; les deux rejoignent la même chronologie.

Les alertes désignent un impact : événements non ingérés, retard de file, signature rejetée, mapping inconnu ou hausse des exceptions. Elles incluent transporteur, version et runbook sans afficher de donnée personnelle dans le canal d’astreinte.

Construire un SLO orienté client

Le SLO combine fraîcheur du dernier état, couverture des colis attendus et exactitude des transitions critiques. La latence HTTP seule est secondaire si les checkpoints restent bloqués dans une file ou si un colis n’a jamais été créé.

Les seuils diffèrent selon la phase. Une information reçue peut attendre ; une livraison ou une exception qui appelle une action client possède une exigence plus courte. Le budget d’erreur privilégie ces événements au lieu de compter tous les webhooks de manière identique.

Le métier valide les conséquences du dépassement : suspendre les notifications, afficher un message neutre, lancer une réconciliation ou prévenir le support. Une alerte sans décision associée transforme simplement le retard technique en bruit opérationnel.

Préparer l’incident et la reprise

Le runbook commence par le colis et la promesse affichée. Il recherche ensuite la liaison AfterShip, les événements reçus, la file, le statut API et les effets aval. Cette progression évite une relance globale avant de connaître l’écart.

Une panne de webhook déclenche la réconciliation des dossiers à risque. Une panne API conserve les événements déjà reçus et met les créations en attente. Une signature invalide bloque le message et alerte la sécurité ; elle n’autorise pas un mode non vérifié.

La reprise traite d’abord les livraisons et exceptions anciennes, puis le nominal. Les clés fonctionnelles empêchent les doubles notifications. Le bilan mesure colis rattrapés, effets évités et dossiers nécessitant encore une décision humaine.

Recetter les cas qui contredisent le nominal

La recette couvre transporteur connu, détection ambiguë, numéro invalide, commande multi-colis, dernier kilomètre, date sans fuseau, nouvelle valeur de statut et EDD révisée. Chaque cas vérifie le brut, la projection et le message client.

Second scénario de test : webhook dupliqué, événement désordonné, signature altérée, réponse perdue après création, 429, indisponibilité API et file arrêtée. Le rejeu doit reconstruire le même état sans créer une seconde ressource ou renvoyer une communication ; si un effet diffère, alors le lot reste en quarantaine.

Un test de version lit une fixture ancienne et une fixture cible. Un test de volume simule le pic après remise de milliers de colis. Le support exécute enfin une reprise depuis un seul numéro de commande, sans accès direct à la base.

Savoir quand centraliser le tracking

AfterShip apporte de la valeur lorsque l’entreprise gère plusieurs transporteurs, veut une chronologie commune et doit industrialiser les communications ou exceptions. Il réduit le nombre d’adaptateurs, sans retirer la responsabilité sur les règles client.

Un lien direct vers un unique transporteur peut suffire pour un petit volume sans automatisation SAV. Ajouter un agrégateur, une file et une projection aurait alors un coût d’exploitation supérieur au bénéfice. Le choix suit les cas d’usage, pas la seule disponibilité de l’API.

Le projet doit être différé si les identifiants de colis et les promesses ne sont pas fiables dans l’OMS. Agréger des numéros mal rattachés accélère la diffusion d’erreurs. La priorité devient d’abord la création et la gouvernance de l’expédition.

Éviter les erreurs fréquentes

Faire confiance au dernier webhook reçu. Un événement tardif peut régresser l’affichage. La chronologie et les règles de transition décident l’état courant.

Utiliser le numéro seul comme identité. Les collisions entre transporteurs ou périodes rattachent alors un suivi au mauvais colis. Le slug et les identifiants internes restent nécessaires.

Répondre 2xx avant stockage durable. Une panne entre l’acquittement et la file perd l’événement, car AfterShip considère la livraison réussie.

Transformer l’EDD en promesse. Une estimation révisable ne doit pas modifier automatiquement un engagement commercial ou fermer un dossier de retard.

Décision : ouvrir, limiter ou bloquer

La sortie du pilote exige une création rejouée sans doublon, un webhook signé, un événement désordonné correctement projeté, une livraison rapprochée et une exception confiée au bon runbook. Le service client retrouve la chronologie depuis la commande.

  • À faire d’abord : ouvrir les transporteurs dont identité, statuts et chronologie sont validés.
  • À valider ensuite : limiter les communications aux transitions possédant une preuve complète.
  • À différer lorsque dernier kilomètre, EDD ou sous-statuts restent sans règle métier.
  • À bloquer si un événement non signé, un colis ambigu ou un rejeu peut produire un effet client.

La décision enregistre version API, version webhook, transporteurs ouverts, mappings et seuils. Ajouter un nouveau transporteur n’est pas une simple donnée de configuration : ses formats, statuts et scénarios d’exception passent une recette ciblée.

Rendre le contrat technique exploitable

Décrire l’événement sans imposer le modèle fournisseur

Le contrat interne expose colis, transporteur, statut brut, état normalisé, heure opérationnelle, heure de réception, version et source. Il garde l’identifiant AfterShip pour la corrélation, mais les consommateurs ne construisent pas leur logique autour de chaque champ externe.

{
  "eventType": "shipment.checkpoint.recorded",
  "shipmentId": "shp-4821",
  "courier": "carrier-slug",
  "rawStatus": "carrier-value",
  "occurredAt": "2026-10-01T08:42:00+02:00",
  "correlationId": "trk-7a14"
}

Relier preuve, retry et rollback

Le monitoring joint événement, checkpoint, projection et effets aval. La file applique l’idempotence : un retry technique conserve la même clé d’événement, tandis qu’une correction métier crée une nouvelle version. La journalisation de la DLQ indique motif, âge et prochaine action sans recopier les coordonnées du destinataire.

Le rollback suspend les notifications et active le repli vers le mapping précédent ; il n’efface pas les checkpoints reçus. Le runbook attribue la responsabilité, rapproche les dossiers affectés, recalcule leur projection puis renvoie uniquement les communications dont la transition n’a jamais été confirmée.

Exécuter un plan d’action en quatre semaines

Semaines 1 et 2 : fermer identité et chronologie

La première semaine choisit deux transporteurs, une population et cinq transitions critiques. OMS, logistique et SAV attribuent commande, expédition, colis, promesse et action. L’équipe inventorie slugs, formats, statuts bruts et dernier kilomètre, puis construit dix dossiers de référence dont un multi-colis et un identifiant ambigu. Elle documente aussi le seuil de fraîcheur qui déclenche une relecture.

La deuxième semaine crée les trackings, conserve les identifiants AfterShip et ingère les checkpoints dans une chronologie immuable. Le webhook est signé, persisté avant acquittement puis traité en file. Le mapping produit une projection sans notification. Un événement tardif et un doublon doivent laisser cette projection stable. Le registre compare pour chaque dossier le brut, l’état interne et la promesse affichable.

Semaines 3 et 4 : prouver rapprochement et exploitation

La troisième semaine ajoute notifications, EDD, exceptions, limites par endpoint et réconciliation ciblée. L’équipe perd une réponse de création, provoque un 429, coupe la file et change la version d’une fixture. Le support suit le runbook depuis la commande et identifie la première divergence sans requête manuelle en base. Chaque échec se termine par une décision et une preuve de reprise.

La quatrième semaine ouvre une cohorte réelle limitée, mesure fraîcheur, inconnus, écarts et contacts SAV. Une rotation de secret et un incident de webhook sont exercés. Le comité étend transporteur par transporteur ; le prochain réseau attend un mapping relu, un cas de dernier kilomètre et une exception clôturée par une preuve métier. Le bilan distingue gain client, charge évitée et dette encore acceptée.

Approfondir logistique et webhooks

Relier tracking, WMS et TMS

Le dossier API logistique et expédition aide à positionner la création du colis entre OMS, entrepôt et transport. Il clarifie les autorités avant d’ajouter l’agrégateur de suivi.

La lecture WMS, TMS et orchestration logistique complète le parcours lorsque plusieurs systèmes produisent les identifiants et services. Le tracking devient alors une projection, pas un référentiel caché.

Fiabiliser livraison et reprise des événements

Le comparatif webhook ou polling permet de répartir fraîcheur et rapprochement. AfterShip pousse le nominal ; une lecture ciblée ferme les écarts que la notification seule ne prouve pas.

Le dossier retries, backoff et circuit breaker structure les reprises sur 429 et indisponibilités. Ces mécanismes restent subordonnés à l’idempotence des effets client.

Conclusion : expliquer chaque état affiché

Une intégration AfterShip fiable ne réduit pas la livraison à un statut. Elle conserve l’identité du colis, le transporteur, les checkpoints, la version du mapping et la promesse séparée. Le webhook accélère cette chronologie sans en devenir l’unique preuve.

Le test décisif est simple : depuis une commande contestée, le support retrouve chaque transition, comprend pourquoi l’état client a changé et sait quelle action reste ouverte. Un retry ou un événement tardif ne produit ni faux livré ni communication répétée.

Si vos suivis multi-transporteurs génèrent encore des états contradictoires ou des recherches manuelles, notre accompagnement en intégration API peut remettre sous contrat identités, webhooks, statuts, EDD et reprise afin que chaque message client repose sur une séquence vérifiable.

Portrait de Jérémy Chomel

Transformez ce besoin en flux API fiable.

Dawap clarifie les systèmes concernés, les risques, le premier lot livrable et les conditions d’exploitation avant de construire le flux.

Vous préférez échanger ? Planifier un rendez-vous

Articles recommandés

API logistique et shipping : fiabiliser la promesse sans dérive Intégration API Promesse transport : fiabiliser tracking, retours et marge Lire l'article
  • 13 mars 2025
  • Lecture ~29 min

Une API logistique tient quand OMS, WMS, TMS et transporteurs partagent le même statut de vérité : étiquette, tracking, retours, cut-off, preuve contrat et reprise en cas d’écart. Le guide aide à cadrer Chronopost, DPD, Boxtal et les flux shipping sans promettre un temps réel fragile ou impossible à exploiter.

WMS, TMS et API logistique Intégration API WMS et TMS : relier stock et transport Lire l'article
  • 5 juin 2025
  • Lecture ~40 min

Relier les stocks, les préparations et les expéditions suppose de choisir quel système confirme chaque opération. Le guide examine les responsabilités du WMS et du TMS, les interfaces transporteurs et les contrôles utiles lorsque les informations ne concordent plus. Une recette suit la commande jusqu’au colis et au retour, avec les unités disponibles séparées des réservations.

Webhook ou polling API Intégration API Webhook ou polling API Lire l'article
  • 29 mai 2025
  • Lecture ~28 min

Webhook, polling et rattrapage ne servent pas le même objectif : l’un pousse le signal, l’autre contrôle la reprise. Cette carte montre comment tenir commandes, stocks et tickets sans confondre latence, quota et cohérence métier, tout en gardant un flux lisible pour le support et pour le run. Un vrai repère pour le run.

Retries, backoff et circuit breaker pour fiabiliser une API Intégration API Retries, backoff et circuit breaker pour fiabiliser une API Lire l'article
  • 28 mai 2025
  • Lecture ~42 min

Retries, backoff et circuit breaker doivent protéger la reprise sans exciter une dépendance déjà fragile. Le bon réglage borne les tentatives, étale les reprises, coupe quand la cible dérive et donne au support une décision claire avant qu’une retry storm ne rallonge l’incident. Il sépare rejet métier, panne transitoire et résultat ambigu avant tout replay.