GET /options rend les options que vous pouvez poser sur une mission, au prix
de votre grille (les tarifs négociés de votre groupe s’appliquent), et pour
chacune ce qu’elle exige de vous. C’est la source à consulter avant
POST /transports/{id}/options ou une duplication avec options.add.
Le prix d’une option est figé au moment où elle est posée, dans sa clé
(
stored_key, par exemple Booster - 60). Une modification ultérieure de votre
grille ne change pas les missions déjà créées.1. Lire le catalogue
GET /options — sans paramètre, le catalogue de votre groupe. Avec
?transport_id=…, celui du donneur d’ordre de la mission, et active_options
liste les options déjà posées sur la jambe (?leg=aller|retour).
2. Lire les obligations (requirements)
Les options que votre grille a désactivées ne sont pas rendues — sauf les deux
options PV du catalogue (
PV_PAPIER et PV_DEMATERIALISE), qui y sont
désactivées parce qu’elles ne se cochent pas comme les autres : elles se posent
avec le document à faire signer. Elles restent donc listées et acceptées par
POST /options et par options.add. Toute autre option désactivée, y compris
une option propre à votre compte, reste refusée (option_disabled).
Les loueurs proposés pour un PV dématérialisé dépendent de la prestation de
la jambe : seuls les partenaires configurés pour cette prestation apparaissent
dans choices. input dit ce que vous devez saisir : un lien de session
(link) ou un code PIN (pin). Quand link_optional vaut true, le lien
de ce loueur est facultatif : vous pouvez l’omettre (le convoyeur ouvre alors
l’outil du loueur) ; un lien fourni reste vérifié.
3. Ajouter une option avec ses obligations
errors[].error : renter_required, renter_not_eligible,
link_required, link_invalid, pin_required, accessories_required,
accessories_too_many (100 accessoires au plus), accessory_invalid,
document_required (avec documents), option_disabled, not_addable.
leg: "retour" sur une mission sans trajet retour est refusé en 422 avec
code: "no_return_leg" (rien n’est posé) ; un leg autre que aller / retour
renvoie 422 avec errors: [{ "field": "leg", "error": "invalid" }]. Même règle
pour ?leg= au retrait.
Un document annoncé (pending_documents, ou documents.pending en duplication)
ne couvre que sa jambe : PV_PAPIER pour l’aller, PV_PAPIER_RETOUR pour le
retour.
4. Retirer une option
DELETE /transports/{id}/options/{option_key}?leg=aller|retour retire l’option
(toutes ses variantes de prix) et nettoie ses dérivés : retirer un PV
dématérialisé efface le lien, le code PIN et le commentaire. Retirer le dernier
PV d’une restitution loueur est refusé (409, code: pv_required_for_restitution).
5. Pendant une duplication
Le même contrat s’applique àPOST /transports/{id}/duplicate via
options.aller.add / options.retour.add et documents.pending : voir
Dupliquer une mission. L’aperçu (/preview)
valide les obligations et rend les options finales sans rien créer.