Méthode POST/partner /dispatch /shipments
Ouvrir une commande B2B pour un distributeur, rejouable sur la référence de commande. Droit dispatch:write.
Sur cette page
Vous ouvrez une commande B2B : la référence de commande de votre ERP ou de votre logisticien, et le distributeur qui la reçoit. Les unités s'y ajoutent ensuite, au fil de la préparation. Le parcours complet est dans le guide Rattacher chaque unité à sa commande.
L'adresse complète est https://api.sealtrust.io/v1/partner/dispatch/shipments.
Cet appel est rejouable. La même order_ref renvoie la même expédition, avec
le code 200 et created à false. La même order_ref pour un autre
distributeur est refusée en 409 : nous ne réécrivons jamais où des unités sont
parties.
#Autorisation
Clef d'API dans l'en-tête Authorization, au format Bearer, avec le droit
dispatch:write. Une clef sans ce droit reçoit un 403 dont le message nomme le
droit manquant. L'offre de la marque de la clef doit comprendre l'accès API, et
la marque de l'expédition doit être sur l'offre Conformité + Identité.
Authorization: Bearer votre_clef#Plafond d'appels
Le même que les autres routes partenaires : un compteur par clef et un compteur pour la somme des clefs de votre marque, 120 appels par fenêtre de 60 secondes par défaut. Chaque appel qui écrit prélève 1 unité du quota journalier de la clef, quel que soit le nombre d'unités qu'il porte.
#Corps de la requête
Format application/json. Tout champ inconnu fait refuser la requête en 422.
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
order_ref | string | oui | Votre numéro de commande, 1 à 100 caractères. Unique dans votre marque. |
distributor_code | string | oui | Le code du distributeur, un point de vente actif de type « Distributeur ». |
ship_date | string | non | Date d'expédition, au format AAAA-MM-JJ. |
ship_to_country | string | non | Pays de livraison, code ISO à deux lettres. Absent, c'est le pays du distributeur. |
brand_code | string | non | Avec une clef revendeur, le code public d'une de vos marques clientes. Absent, c'est la marque de la clef. |
Le territoire vérifié par l'alerte est celui du distributeur, jamais
ship_to_country, qui n'est qu'informatif.
#Requête d'exemple
curl -i -X POST "https://api.sealtrust.io/v1/partner/dispatch/shipments" \
-H "Authorization: Bearer st_live_0000000000000000000000000000000000000000000000" \
-H "Content-Type: application/json" \
-d '{"order_ref": "SO-2026-1042", "distributor_code": "DIST-DE", "ship_date": "2026-10-09"}'#Réponse d'exemple
Code HTTP 201Created
Code HTTP 201 à la création, 200 quand la commande existait déjà.
{
"id": 318,
"brand_id": 42,
"order_ref": "SO-2026-1042",
"status": "open",
"ship_date": "2026-10-09",
"ship_to_country": "DE",
"distributor": {
"id": 77,
"code": "DIST-DE",
"name": "Acme Distribution GmbH",
"country": "DE",
"territory_countries": ["DE", "AT"]
},
"units_allocated": 0,
"created_by": "api-key:st_live_000",
"created_at": "2026-10-09T07:12:44.120391+00:00",
"closed_at": null,
"created": true
}#Erreurs
| Code | Condition | Que faire |
|---|---|---|
| 401 | Clef absente, mal formée ou inconnue. | Envoyez Authorization: Bearer <votre clef> avec la clef entière. |
| 403 | La clef n'a pas le droit dispatch:write. Message Missing required scopes: dispatch:write. | Créez une clef qui porte ce droit. |
| 403 | La marque est sur l'offre Conformité. detail.code vaut OFFER_EXCLUDES_IDENTITY et detail.feature vaut dispatch. Rien n'est enregistré. | Passez à l'offre Conformité + Identité. Réessayer ne changera rien. |
| 429 | Plafond de débit ou quota journalier atteint. | Attendez le nombre de secondes de Retry-After, ou minuit en temps universel pour le quota. |
| 404 | Aucun distributeur actif de votre marque ne porte ce code. detail.code vaut distributor_not_found. | Créez le distributeur dans la console, onglet Points de vente. |
| 409 | Cette order_ref existe déjà pour un autre distributeur. detail.code vaut order_ref_other_distributor. | Vérifiez la référence de commande. |
| 422 | Le point de vente existe mais n'est pas de type distributeur (retailer_is_not_a_distributor), ou le corps est invalide : un caractère de contrôle, ou une order_ref qui commence par =, +, - ou @, qu'un tableur exécuterait comme une formule. | Changez son type dans la console, ou corrigez le corps. |
Cette page vous a-t-elle été utile ?
Votre réponse ouvre un courriel pré-rempli dans votre messagerie, à destination de contact@sealtrust.io. Vous le relisez avant de l'envoyer.