Aller au contenu principal

Problèmes courants

Réponses rapides aux problèmes d'intégration les plus fréquents.


Authentification

401 Unauthorized à chaque requête

Cause : Le jeton est absent, expiré ou malformé.

Solution :

  1. Vérifiez que vous envoyez l'en-tête : Authorization: Bearer <token> (avec le mot Bearer)
  2. Vérifiez si votre jeton a expiré — utilisez /api/v1/login-extended pour voir le champ expireAt
  3. Reconnectez-vous via /api/v1/login pour obtenir un nouveau jeton

Le jeton expire trop vite

Cause : La durée de vie (TTL) du jeton est configurée côté serveur.

Solution : Contactez votre responsable de compte DPD pour ajuster la durée de vie (TTL) du jeton pour votre compte. En attendant, mettez en place une logique de renouvellement qui se reconnecte avant l'expiration.


Expéditions

400 Bad Request — erreur de validation

Cause : Un champ obligatoire est absent ou échoue à la validation.

Solution : Vérifiez l'objet fieldErrors dans la réponse — il indique précisément quel champ a échoué et pourquoi :

{
"fieldErrors": {
"receiver.email": ["REQUIRED_FOR_INTERNATIONAL"],
"receiver.countryCode": ["NOT_SUPPORTED"]
}
}

Exigences courantes par champ :

  • email est requis pour toutes les destinations hors CH/LI (sauf GB)
  • phone est requis pour les destinations GB (format international : +44...)
  • houseNumber est requis pour les destinations NL
  • stateCode est requis pour les destinations US/CA

207 Multi-Status — échec partiel d'un lot

Cause : Dans une requête par lot, certaines expéditions ont réussi et d'autres ont échoué.

Solution : Vérifiez le tableau failed dans la réponse pour obtenir les fieldErrors de chaque élément. Le tableau success contient les expéditions créées avec leurs numéros de colis et leurs étiquettes.


L'étiquette est vide ou ne s'imprime pas

Cause : printOptions.paperSize ne correspond pas à votre imprimante.

Solution : Définissez paperSize explicitement dans votre requête :

  • "A4" — feuille A4 complète (plusieurs étiquettes par page, utilisez startPosition : UPPER_LEFT, UPPER_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT)
  • "A6" — imprimantes d'étiquettes thermiques

Points de collecte

Résultats vides lors d'une recherche par adresse

Cause : Aucun point de collecte trouvé dans le rayon de recherche par défaut de 5 km, ou l'adresse n'a pas pu être résolue.

Solution :

  1. Essayez de fournir à la fois zipCode et city — l'API se rabat sur le code postal si l'adresse complète ne peut pas être géocodée
  2. Supprimez les filtres de service ou de type pour élargir la recherche
  3. Définissez hideClosed: false pour inclure les points de collecte temporairement fermés

404 Not Found pour un identifiant de point de collecte

Cause : L'identifiant du point de collecte n'existe pas ou n'est plus actif.

Solution : Relancez une recherche par adresse ou par coordonnées pour obtenir les identifiants de points de collecte actuels. Les identifiants de points de collecte peuvent changer lorsque des points ferment ou rouvrent.


Suivi

404 Not Found pour un numéro de colis

Cause : Les données de suivi ne sont pas encore disponibles ou le numéro de colis est incorrect.

Solution :

  1. Vérifiez le numéro de colis dans la réponse de création d'expédition (success[].parcelNumber)
  2. Attendez quelques minutes après la création de l'expédition pour que le suivi devienne disponible
  3. Vérifiez que le format du numéro de colis est correct (ex. 05305000123456)

Demandes d'enlèvement et ordres de collecte

pickupDate rejeté

Cause : La date est dans le passé ou mal formatée.

Solution : Utilisez le format yyyy-MM-dd et assurez-vous que la date correspond au minimum à demain dans le fuseau horaire européen.


Général

Erreurs HTTPS / SSL

Tous les appels API doivent utiliser HTTPS. Les certificats auto-signés ne sont pas acceptés en production.

Limitation de débit (429 Too Many Requests)

Mettez en place un repli exponentiel (exponential backoff) dans votre application. Envisagez de mettre en cache les données des points de collecte (qui changent rarement) afin de réduire le nombre d'appels API.

Toujours bloqué ?

Contactez le support DPD en fournissant :

  • Le tracingId de la réponse API (ou le corps complet de la réponse d'erreur)
  • Le point de terminaison appelé et l'heure approximative de la requête
  • Votre environnement d'intégration (dev/staging/production)