POST
Modifier un OTR
POST /APIs/external/update_otr.php
Description
Modifie un ordre de transport tant qu'il n'a pas été validé (statut create). Seuls les champs envoyés sont modifiés.
Clé API expéditeur dans l'en-tête X-API-KEY (ou Authorization: Bearer).
Corps de la requête (JSON)
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| otr_id ou otr_number | int / string | Oui | OTR à modifier |
| carrier_id | int | Non | Nouveau transporteur (partenaire avec un abonnement actif) |
| matchcode | string | Non | Nouveau client destinataire : l'adresse de livraison est reprise de sa fiche |
| pickup_date / delivery_date | string | Non | Mêmes règles qu'à la création |
| units | array | Non | Remplace toutes les unités (au moins une) |
| packaging | array | Non | Remplace tous les emballages |
| Adresses, références, créneau, instructions, notes | Non | Mêmes champs qu'à la création |
Le client se change uniquement par matchcode (pas par client_id). Le statut ne se modifie pas par cet endpoint.
Exemple de requête
curl -X POST "https://shippinova.com/APIs/external/update_otr.php" \
-H "X-API-KEY: votre_cle_api" \
-H "Content-Type: application/json" \
-d '{ "otr_id": 123, "delivery_date": "2026-01-26T09:00", "notes": "Quai 3" }'
Réponse (succès)
{
"success": true,
"otr_id": 123
}
Un tableau warnings est ajouté si une date tombe un week-end.
Codes d'erreur
| Code | Signification |
|---|---|
| 401 | Clé API absente |
| 403 | Clé invalide, ou clé transporteur utilisée sur un endpoint expéditeur |
| 400 | Champ invalide, matchcode inconnu, ou aucun champ à modifier (VALIDATION_ERROR) |
| 403 | OTR déjà validé : il n'est plus modifiable |
| 404 | OTR introuvable, ou d'une autre société |
| 422 | Transporteur qui n'est pas votre partenaire ou sans abonnement actif (CARRIER_NOT_ALLOWED) |
| 429 | Trop de requêtes (120 par minute, 20 000 par jour) ; réessayer après le délai Retry-After |