Base URL :
https://api.myexpressdriver.com/v1Toutes les requêtes exigent l’en-tête X-Api-Key. Les réponses de succès sont en
application/json ; les erreurs suivent la RFC 9457
(application/problem+json).Avant de commencer
Un compte client MED
Flotte, concession ou loueur. Votre clé API est rattachée à votre groupe :
elle ne voit que les missions de ce groupe.
Un accès admin de groupe
Seul l’administrateur du groupe peut créer ou révoquer des clés API depuis la
console.
Démarrage en 4 étapes
1
Obtenir une clé API
Les clés API se créent depuis la console client, onglet API &
Intégrations. Cet onglet n’est visible que si vous êtes administrateur d’au
moins un groupe.
- Connectez-vous à votre console client.
- Ouvrez l’onglet API & Intégrations (si plusieurs groupes, sélectionnez celui pour lequel vous voulez une clé).
- Cliquez sur Créer une clé, donnez-lui un libellé (ex.
intégration ERP) et choisissez l’environnement (liveoutest). - Copiez la clé affichée et stockez-la dans un coffre de secrets.
med_live_, les clés de test par
med_test_. Chaque requête doit porter l’en-tête :2
Estimer un prix
POST /pricing calcule un tarif à partir de la grille de votre groupe, sans
créer de mission. Idéal pour afficher un devis avant de confirmer.200 — l’estimation tarifaire de votre groupe :number
Prix HT du transport facturé au client.
string
Devise des montants — toujours
EUR.number
Distance estimée en kilomètres.
object | null
Détail du trajet retour si demandé (
price_ht, distance_km), sinon null.3
Créer une mission
POST /transports crée la mission. Sont requis : le véhicule avec son
immatriculation, pickup et delivery (adresse, date au format
YYYY-MM-DDTHH:MM:SS.sssZ, créneau et contact complet : nom, téléphone,
e-mail) et billing (raison sociale, adresse, e-mail). Ajoutez l’en-tête Idempotency-Key (un UUID que vous générez)
pour rendre la création rejouable sans risque de doublon.201 — la mission est créée et planifiée :string
Identifiant de la mission (
offer_id). À conserver : il sert à toutes les
requêtes de suivi.string | null
Référence métier lisible de la mission (ex.
M-54321). Vaut null dans la
réponse de création : elle est attribuée juste après, lisez-la via
GET /transports/{id}.string
Statut public à la création : toujours
scheduled (planifiée, en attente
d’attribution).string | null
Prix HT de l’aller, en chaîne décimale (ex.
"407.44"). Le prix détaillé
(amount_ht, surcharge_ht, currency) se lit via GET /transports/{id}.Rejouer la même
Idempotency-Key avec un corps identique renvoie la réponse
mise en cache (en-tête Idempotent-Replayed: true) — une seule mission est
créée. La même clé avec un corps différent renvoie 409 Conflict.4
Suivre la mission
Deux moyens complémentaires de suivre une mission : interroger son détail à la
demande, et s’abonner aux webhooks pour être notifié à chaque changement.Lire le détail à la demande avec Le
GET /transports/{id} :status évolue selon le cycle de vie public :S’abonner aux webhooks depuis l’onglet API & Intégrations : ajoutez un
endpoint HTTPS et recevez un événement à chaque transition. Le corps a la forme
{ id, type, created_at, data } :Bien démarrer
Vous avez créé une clé, estimé un prix, créé une mission et lu son statut. Voici les
réflexes à adopter pour une intégration robuste.
Sécuriser votre clé API
Sécuriser votre clé API
Stockez la clé dans un coffre de secrets, jamais en clair dans le code ni dans un
dépôt. Une clé manquante, inconnue, révoquée ou expirée renvoie
401. En cas de
fuite, révoquez-la depuis la console et créez-en une nouvelle.Gérer les erreurs proprement
Gérer les erreurs proprement
Branchez votre logique sur le champ
status (et title) de la réponse
application/problem+json, pas sur le texte de detail qui peut évoluer. Les
erreurs de validation détaillent le champ fautif dans errors[].Respecter les limites de débit
Respecter les limites de débit
Un dépassement renvoie
429 Too Many Requests avec un en-tête Retry-After (en
secondes). Implémentez un back-off et respectez ce délai.Toujours utiliser l'idempotence
Toujours utiliser l'idempotence
Ajoutez une
Idempotency-Key unique sur toutes les créations et mutations
(POST, PATCH, DELETE). C’est indispensable sur un réseau peu fiable pour
éviter les doublons.Étapes suivantes
Authentification
Clés
live / test, scopes transports:read / transports:write et isolation
par groupe.Webhooks
Vérifier la signature HMAC, dédupliquer les livraisons et réconcilier les
événements manqués.
Référence API
Tous les endpoints, schémas et codes de réponse en détail.
