Skip to content

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é