inspection.report_ready, puis récupérer le PV via
GET /transports/{id}/inspection.
Ces événements partagent exactement la même mécanique de livraison que les
webhooks de transport : même enveloppe
{ id, type, created_at, data }, mêmes
en-têtes X-MED-*, même signature HMAC-SHA256. Si vous avez déjà branché les
événements transport.*, vous n’avez rien à changer côté réception — voir
Catalogue d’événements et
Vérification de signature.À qui s’adressent ces événements
Vous recevez un événementinspection.* lorsque la mission inspectée appartient
à votre groupe. Le rattachement est dérivé côté serveur de l’identifiant de
mission (offer_id) — vous ne recevez jamais l’inspection d’une mission d’un
autre groupe.
Le produit d’inspection MED expose aussi ces mêmes événements à deux autres
publics — un tenant du produit d’inspection en marque blanche, et une
intégration MED globale. Cette page documente le scope groupe, le seul
pertinent pour un client de l’API Transport (clé
med_live_…).Charge utile (data)
Tous les événements d’inspection portent la même structure de data. Branchez
votre logique sur type (ou l’en-tête X-MED-Event-Type), jamais sur la forme de
data.
Identifiant de l’inspection.
Identifiant de la mission MED liée (le même
id que dans l’API Transport,
ex. M-54321). C’est la clé de rattachement et le paramètre de
GET /transports/{offer_id}/inspection.Origine de l’inspection :
med (inspection d’une mission MED) ou iaas
(produit d’inspection en marque blanche). Côté groupe, vous voyez med.Référence externe libre éventuellement posée à la création (binding côté
partenaire).
Phase concernée par l’événement :
departure (enlèvement) ou arrival
(livraison). null pour les événements non liés à une phase
(inspection.created, inspection.completed, inspection.cancelled,
inspection.report_ready).Statut courant de l’inspection :
pending, in_progress, completed ou
cancelled.one_way (aller simple) ou round_trip (aller-retour, deux phases).Identité minimale du véhicule :
{ plate, brand, model, vin }.Horodatage de la transition observée, au format ISO 8601.
Souvent
null. Le PDF du PV n’est pas servi par ce champ : récupérez-le via
GET /transports/{offer_id}/inspection après inspection.report_ready (URLs
re-signées, TTL 24 h).Catalogue d’événements
Cycle de l'inspection
inspection.created, inspection.completed, inspection.cancelledPhases (départ / arrivée)
inspection.departure.started, inspection.departure.completed,
inspection.arrival.started, inspection.arrival.completedPV prêt
inspection.report_ready — le pivot pour récupérer le PV| Événement | Déclencheur | phase |
|---|---|---|
inspection.created | Inspection créée | null |
inspection.departure.started | Ouverture de la phase d’enlèvement | departure |
inspection.departure.completed | Phase d’enlèvement terminée | departure |
inspection.arrival.started | Ouverture de la phase de livraison | arrival |
inspection.arrival.completed | Phase de livraison terminée | arrival |
inspection.completed | Inspection terminée (toutes phases) | null |
inspection.cancelled | Inspection annulée | null |
inspection.report_ready | PV (PDF) généré et disponible | null |
Un endpoint peut s’abonner à toute la famille via
inspection.*, à * (tous
les événements), ou à une liste explicite de types. Pour une inspection
one_way, inspection.departure.completed et inspection.completed sont émis
tous les deux.Détail des événements
inspection.created — Inspection créée
inspection.created — Inspection créée
Émis lorsqu’une inspection est créée pour la mission.
inspection.departure.started / arrival.started — Phase ouverte
inspection.departure.started / arrival.started — Phase ouverte
Émis à l’ouverture d’une phase d’inspection dans l’application (le
convoyeur démarre le constat).
phase vaut departure (enlèvement) ou
arrival (livraison).inspection.departure.completed / arrival.completed — Phase terminée
inspection.departure.completed / arrival.completed — Phase terminée
Émis lorsqu’une phase d’inspection est terminée (constat sauvegardé).
inspection.completed — Inspection terminée
inspection.completed — Inspection terminée
Émis lorsque l’inspection passe au statut
completed (toutes les phases
requises sont terminées). Un seul signal « fini », sans détail de phase.inspection.cancelled — Inspection annulée
inspection.cancelled — Inspection annulée
Émis lorsque l’inspection passe au statut
cancelled.inspection.report_ready — PV prêt
inspection.report_ready — PV prêt
L’événement pivot. Émis lorsque le PDF du PV est généré et disponible.
Récupérez le contenu du PV via
GET /transports/{offer_id}/inspection (le
champ report_url du payload est généralement null — il ne sert pas le PDF).Flux : du report_ready au PV
Recevez inspection.report_ready
Vérifiez la signature et l’horodatage, puis dédupliquez sur
X-MED-Delivery-Id. Lisez data.offer_id.Récupérez le PV
Appelez
GET /transports/{offer_id}/inspection avec votre clé X-Api-Key
(scope transports:read). La réponse contient les phases, champs, photos
validées et le(s) PDF re-signé(s) (URLs valables 24 h).S’abonner aux événements d’inspection
Un endpoint webhook s’abonne àinspection.* (toute la famille) ou à une liste
explicite de types. Un même groupe peut conserver en parallèle un abonnement
transport.* et un abonnement inspection.* — ce sont des abonnements distincts
sur le même mécanisme de livraison signé.
L’abonnement d’un groupe partenaire aux événements d’inspection est aujourd’hui
provisionné par MED lors de l’onboarding (l’interface self-service ne propose
pas encore la famille
inspection.*). Contactez le support API
(api@myexpressdriver.com) pour activer un endpoint d’inspection sur votre
groupe.Étapes suivantes
Vérification de signature
Recalculez le HMAC-SHA256, comparez à temps constant et bloquez les rejeux.
Catalogue transport
Les événements
transport.* et document.* du cycle de vie d’une mission.