Aller au contenu principal

Ordres d'enlèvement

Créez des ordres d'enlèvement planifiés et récurrents. DPD collectera les colis à votre adresse les jours et créneaux horaires spécifiés.

Point de terminaisonAuthentification
POST /api/v1/pickup-ordersJeton JWT Bearer requis

Requête

Paramètre de requête : lang (facultatif) — p. ex. de_CH, en_US, fr_CH, it_CH

Corps : List<PickupOrderDTO>

Champs

ChampTypeLongueurObligatoireDescription
invoicingNumberString1–20OuiNuméro de facturation client
pickupDateString10OuiDate d'enlèvement planifiée (yyyy-MM-dd), doit être future
weekDayIntegerNonJour de la semaine (1=Lun … 7=Dim). Calculé automatiquement à partir de pickupDate si omis
fromTime1String5NonDébut du créneau matin (HH:mm)
toTime1String5NonFin du créneau matin (HH:mm)
fromTime2String5NonDébut du créneau après-midi (HH:mm)
toTime2String5NonFin du créneau après-midi (HH:mm)
addressAddressDTOOuiAdresse du lieu d'enlèvement
numberOfParcelsIntegerOuiNombre de colis prévu (1–99)
tourString0–50NonIdentifiant de tournée/route
clientSoftwareString1–30OuiNom de l'application cliente. La requête est rejetée si la valeur est absente ou vide
clientVersionString1–10OuiVersion de l'application cliente. La requête est rejetée si la valeur est absente ou vide

Créneaux horaires

Vous pouvez spécifier jusqu'à deux créneaux horaires (matin et après-midi). Laissez les champs de l'après-midi vides pour un créneau continu unique.

CréneauChampsExemple
MatinfromTime1 / toTime108:00 / 12:00
Après-midifromTime2 / toTime213:00 / 17:00

Exemple

curl -X POST "https://label-print-shipments.dpd.ch/api/v1/pickup-orders?lang=fr_CH" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '[
{
"invoicingNumber": "12345678",
"pickupDate": "<next working day, yyyy-MM-dd>",
"weekDay": 5,
"fromTime1": "08:00",
"toTime1": "12:00",
"fromTime2": "13:00",
"toTime2": "17:00",
"numberOfParcels": 15,
"address": {
"name": "Warehouse Location A",
"countryCode": "CH",
"zipCode": "8000",
"city": "Zürich",
"street": "Industriestrasse 45",
"phone": "+41441234567",
"email": "warehouse@company.ch",
"reference": "WAREHOUSE-A"
},
"tour": "TOUR-ZH-WEST",
"clientSoftware": "Customer App",
"clientVersion": "4.0.0"
}
]'

Réponse

201 Created — tous les ordres créés :

{
"tracingId": "TRACE-321",
"success": [
{ "tracingId": "123456789" }
],
"failed": []
}

Chaque élément de success[] porte le tracingId attribué à l'ordre créé, ainsi que identificationNumber renvoyé lorsque l'élément de la requête en fournissait un. Un élément de succès ne comporte pas de champ idid n'apparaît que dans les éléments failed[].

Les champs nuls sont omis des réponses : un élément de succès ne contient donc souvent que tracingId.

207 Multi-Status — succès partiel avec erreurs au niveau des champs. Chaque entrée de failed[] porte une identificationNumber (reprend la valeur fournie par le client, lorsque l'élément d'entrée en avait une) et un errorCode ; les violations de champ apparaissent comme un tableau fieldErrors[] plat, chaque entrée portant son propre path :

{
"tracingId": "TRACE-322",
"success": [],
"failed": [
{
"identificationNumber": "client-supplied-id-5",
"errorCode": "SYS-VALIDATION-FAILURE",
"fieldErrors": [
{
"path": "numberOfParcels",
"code": "SHP-VAL-NUMBEROFPARCELS-MAX-CHARACTERS",
"message": "Number of parcels exceeds the maximum allowed length."
},
{
"path": "address.countryCode",
"code": "SHP-VAL-COUNTRYCODE-REQUIRED",
"message": "Country code is required."
}
]
}
]
}

Un échec transitoire (sans fieldErrors — une panne n'est pas un problème de champ) se présente ainsi :

{
"identificationNumber": "client-supplied-id-7",
"errorCode": "SHP-ROUTING-ENGINE-UNAVAILABLE",
"reason": "SHP-ROUTING-ENGINE-UNAVAILABLE: Routing engine is temporarily unavailable. Please try again."
}

Codes de statut :

CodeDescription
201 CreatedTous les ordres d'enlèvement créés
207 Multi-StatusCertains ont réussi, d'autres ont échoué
400 Bad RequestErreur de validation, ou tous les éléments du lot ont échoué — quelle que soit la cause, y compris une panne du moteur de routage
401 UnauthorizedJeton manquant ou invalide

Différence avec les demandes de collecte

Ordres d'enlèvementDemandes de collecte
FréquenceRécurrent (planning hebdomadaire)Ponctuel
Créneaux horairesJusqu'à 2 (matin + après-midi)Défini par DPD
Limite de colis99999
Champ poidsNon requisFacultatif (grammes)