Demandes de collecte
Planifiez une collecte ponctuelle de colis depuis votre adresse. DPD viendra collecter les colis à la date demandée, dans un créneau horaire spécifié.
Point de terminaison: POST /api/v1/collection-requests
Authentification: Jeton JWT Bearer requis
Requête
Paramètre de requête : locale (facultatif) — localise les messages d'erreur (p. ex. de_CH, en_US, fr_CH, it_CH)
Corps : List<CollectionRequestDTO>
Champs
| Champ | Type | Longueur | Obligatoire | Description |
|---|---|---|---|---|
id | Long | — | Non | Identifiant de la demande pour le suivi dans la réponse |
invoicingNumber | String | 1–20 | Oui | Votre numéro de facturation client DPD |
pickupDate | String | 10 | Oui | Date de collecte souhaitée (yyyy-MM-dd), doit être une date future |
referenceNumber | String | 0–50 | Non | Votre numéro de référence interne |
note | String | 0–255 | Non | Instructions spéciales de collecte |
sender | AddressDTO | — | Oui | Adresse où les colis seront collectés |
receiver | AddressDTO | — | Oui | Adresse de destination finale |
requester | AddressDTO | — | Non | Personne demandant la collecte (par défaut, le destinataire) |
numberOfParcels | Integer | — | Oui | Nombre de colis prévu (1–999) |
weight | Double | — | Non | Poids total de tous les colis en grammes |
serviceCode | String | 2–10 | Oui | Code service DPD (p. ex. PSD, PSI) |
clientSoftware | String | 0–50 | Non | Nom de votre application |
clientVersion | String | 0–20 | Non | Version de votre application |
Exemple
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/collection-requests?locale=fr_CH" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '[
{
"invoicingNumber": "12345678",
"pickupDate": "2025-10-31",
"serviceCode": "PSD",
"numberOfParcels": 5,
"weight": 25000.0,
"sender": {
"name": "Société Expéditrice SA",
"countryCode": "CH",
"zipCode": "1000",
"city": "Lausanne",
"street": "Route de Berne 25",
"phone": "+41441234567"
},
"receiver": {
"name": "Société Destinataire SARL",
"countryCode": "FR",
"zipCode": "75001",
"city": "Paris",
"street": "Rue de Rivoli 1"
}
}
]'
Réponse
201 Created — toutes les demandes créées :
{
"tracingId": "TRACE-789",
"success": [
{ "id": 1, "referenceNumber": "CR-20251031-001" }
],
"failed": []
}
207 Multi-Status — succès partiel :
{
"tracingId": "TRACE-790",
"success": [],
"failed": [
{
"id": 1,
"fieldErrors": {
"pickupDate": ["MUST_BE_FUTURE_DATE"]
}
}
]
}
Codes de statut :
| Code | Description |
|---|---|
201 Created | Toutes les demandes de collecte créées |
207 Multi-Status | Certaines ont réussi, d'autres ont échoué |
400 Bad Request | Erreur de validation |
401 Unauthorized | Jeton manquant ou invalide |
Remarques
pickupDatedoit être une date future ; les dates passées sont rejetéesweightest exprimé en grammes (p. ex. 25000 = 25 kg)- La validation des adresses suit les mêmes règles spécifiques aux pays que les Expéditions (numéro de maison NL, téléphone GB, e-mail non-CH/LI, etc.)