curl --request DELETE \
--url https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"new_price": 123,
"delta": 123,
"option": "<string>",
"leg": "aller",
"removed": [
"<string>"
],
"derived": [
"<string>"
],
"warnings": [
"<string>"
],
"driver_validation": {
"mode": "ask",
"requested": true,
"client_update_id": "<string>"
}
}Retirer une option
Retire une option (toutes ses variantes de prix) et recalcule le prix.
Retirer un PV dématérialisé efface aussi le lien, le code PIN et le
commentaire associés ; retirer le dernier PV d’une restitution loueur
est refusé (409, code: pv_required_for_restitution). Émet
transport.price_adjusted.
curl --request DELETE \
--url https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.myexpressdriver.com/v1/transports/{id}/options/{option_key}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"new_price": 123,
"delta": 123,
"option": "<string>",
"leg": "aller",
"removed": [
"<string>"
],
"derived": [
"<string>"
],
"warnings": [
"<string>"
],
"driver_validation": {
"mode": "ask",
"requested": true,
"client_update_id": "<string>"
}
}Autorisations
Clé API liée à un groupe (med_live_… en production, med_test_… en test).
Fournie en clair une seule fois à la création depuis le profil client.
Paramètres de chemin
Identifiant de la mission (offer_id).
Clé de l'option à retirer (URL-encodée).
Paramètres de requête
Jambe visée (aller par défaut). Une autre valeur renvoie 422 ; retour sur une mission sans trajet retour renvoie 422 (code: no_return_leg).
aller, retour Réponse
Option retirée, prix recalculé.
Clé effectivement retirée.
aller, retour Sort du convoyeur attribué après la modification (#1725).
Dès qu'un convoyeur est attribué et que la mission n'est pas encore
partie, toute modification faite avec une clé partenaire lui demande de
valider les nouvelles modalités (mode: ask). Il reçoit une
notification et doit accepter ou refuser depuis l'application MED.
En cas de refus, le convoyeur est retiré de la mission, qui repart
en ligne : prévoyez ce cas dans votre intégration, en écoutant
l'événement transport.driver_validation_requested puis le statut de la
mission. Sans réponse après trois relances, le convoyeur est également
retiré.
mode: none signifie qu'il n'y avait personne à solliciter (mission non
attribuée, ou déjà enlevée).
Show child attributes
Show child attributes
