Suivi public
Contrairement à toutes les autres pages de cette référence API, ce point de terminaison n’exige ni clé API ni connexion. C’est lui qui alimente le lien de suivi public partagé avec le destinataire d’une expédition.
Comment les jetons sont créés
Section intitulée « Comment les jetons sont créés »Un lien de suivi n’est pas généré automatiquement pour chaque expédition — il est créé à la demande. Dans l’application, un utilisateur disposant d’un accès en lecture aux expéditions sélectionne Partager le lien de suivi sur une expédition (page Expéditions), ce qui appelle un point de terminaison authentifié (POST /shipments/:id/share) qui :
- Génère un jeton aléatoire pour cette expédition la première fois qu’elle est partagée, et le stocke sur l’enregistrement de l’expédition.
- Renvoie le même jeton à chaque partage suivant — le lien ne change pas une fois créé.
Voir la page Expéditions du Guide utilisateur pour la marche à suivre dans l’application. Le lien obtenu ouvre la page de suivi de l’application elle-même (/track/:token) ; le point de terminaison API ci-dessous est celui que cette page appelle.
Point de terminaison
Section intitulée « Point de terminaison »GET /track/:tokenAucun en-tête d’authentification n’est requis ni vérifié. :token est le jeton opaque du lien de partage.
Exemple de requête
Section intitulée « Exemple de requête »curl https://tenant.logistall.cloud/api/track/9f2e4a1b7c3d5e6f8a0b1c2d3e4f5a6bExemple de réponse
Section intitulée « Exemple de réponse »{ "shipmentNumber": "SHP-00482", "status": "in_transit", "mode": "ftl", "originCity": "Casablanca", "destCity": "Tanger", "pickupScheduledAt": "2026-07-10T08:00:00.000Z", "deliveryScheduledAt": "2026-07-12T17:00:00.000Z", "events": [ { "eventType": "departure", "status": "in_transit", "description": "Left Casablanca distribution hub", "city": "Casablanca", "eventAt": "2026-07-10T09:15:00.000Z" }, { "eventType": "pickup", "status": "pickup_scheduled", "description": null, "city": "Casablanca", "eventAt": "2026-07-10T08:05:00.000Z" } ]}Notez que events[] inclut ici un champ description — la note en texte libre qu’un répartiteur ou un chauffeur peut joindre à un événement de suivi. C’est la seule différence avec le tableau tracking[] du point de terminaison authentifié GET /v1/shipments/:id, qui ne l’inclut pas.
Ce qui n’est jamais exposé
Section intitulée « Ce qui n’est jamais exposé »Ce point de terminaison est volontairement minimal. Il ne renvoie jamais :
- L’
idinterne de l’expédition (uniquement sonshipmentNumberlisible). - Les noms des clients ou des transporteurs.
- La moindre adresse, le moindre contact ou toute autre donnée personnelle au-delà des noms de villes d’origine et de destination.
- La tarification, les frais, la facture ou toute donnée financière.
- Le locataire/l’entreprise auquel appartient l’expédition (le jeton seul le résout côté serveur).
- Toute donnée appartenant à d’autres expéditions, clients ou locataires — le jeton ne déverrouille jamais que la seule expédition pour laquelle il a été créé.
S’il vous faut davantage — noms de clients, adresses, tarification — cela requiert une clé API authentifiée contre /v1/shipments/:id ou les pages équivalentes de l’application, pas ce point de terminaison.
| Statut | Corps | Quand |
|---|---|---|
404 |
{ "error": "Not found" } |
Le jeton ne correspond à aucune expédition dans aucun locataire actif. |
500 |
{ "error": "Server error" } |
Erreur serveur inattendue. |
Il n’existe aucun moyen d’énumérer ou de lister les jetons valides — un jeton ne fonctionne que si vous possédez le lien exact.