Mono-transporteur (cas nominal)
C'est le scénario le plus simple, et le plus courant : un seul transporteur, du chargement à la livraison, sans relais ni sous-traitance. Un TMS externe crée le document, un chauffeur (via son application mobile) effectue les deux signatures (collecte et livraison), et le TMS est notifié en temps réel de chaque changement de statut via webhook — il n'a jamais besoin d'interroger l'API en polling.
Points clés à retenir :
- La souscription au webhook se fait une seule fois, en amont, indépendamment de chaque transport.
- Le chauffeur peut précharger le document (mode offline) avant même l'arrivée sur site.
- Chaque signature déclenche à la fois une transition de statut et une notification webhook — les deux sont synchrones du point de vue du chauffeur, asynchrones du point de vue du TMS.
- La consultation du PDF signé se fait à la demande, a posteriori — ce n'est jamais l'API qui pousse le PDF.
sequenceDiagram
participant TMS as TMS externe
participant API as API e-CMR
participant Chauffeur as App chauffeur
Note over TMS,API: Onboarding préalable (une fois)
TMS->>API: Souscription webhook (callback URL)
API-->>TMS: 201 Subscription créée
Note over TMS,API: Création du transport
TMS->>API: POST /freightdocuments (externalIdentifier, parties, marchandises)
API-->>TMS: 201 Created, status=DRAFT
TMS->>API: POST /freightdocuments/id/issue
API-->>TMS: 200 OK, status=ISSUED
API-)TMS: Webhook STATUS=ISSUED
Note over API,Chauffeur: Préchargement terrain
API-)Chauffeur: Notification push (mission assignée)
Chauffeur->>API: GET /freightdocuments/id (mode offline)
API-->>Chauffeur: Document complet + config signature
Note over Chauffeur,API: Collecte
Chauffeur->>API: POST events (arrivée, chargement)
Chauffeur->>API: POST signature collecte
API-->>Chauffeur: 200 OK, status=TRANSIT
API-)TMS: Webhook STATUS=TRANSIT
Note over Chauffeur,API: Livraison
Chauffeur->>API: POST events (arrivée, déchargement)
Chauffeur->>API: POST signature livraison
API-->>Chauffeur: 200 OK, status=DELIVERED
API-)TMS: Webhook STATUS=DELIVERED
Note over TMS,API: Consultation a posteriori
TMS->>API: GET /freightdocuments/id/pdf
API-->>TMS: PDF e-CMR signé