Aller au contenu principal

Diagnostiquez à partir du statut et du code stable

Conservez X-Request-Id, l’identifiant d’opération et le statut. Ne journalisez jamais la clé API, l’URL destinataire, le contact, l’image de preuve ou le corps brut du webhook. Certains points de terminaison renvoient un code structuré ; d’autres renvoient des erreurs de validation ou une réponse 401/403/404 vide. Ne supposez pas que toutes les erreurs ont la même structure JSON et ne fondez jamais la logique sur le texte traduit d’un message.

Code ou statutCause probableNouvelle tentative et correction
401Identifiant absent, mal formé, révoqué ou expiréCorriger l’identifiant ; ne pas réessayer sans changement
403Portée ou permission du compte manquanteVérifier la portée de l’opération et l’environnement ; actualiser les identifiants après modification de la configuration
404Mauvais identifiant ou environnement, ou lien d’accès expiré/invalideVérifier la lecture authentifiée de la ressource de référence et l’environnement
429Limite de débit ou quotaRespecter Retry-After ; délai exponentiel avec variation aléatoire
5xx / erreur de transportErreur temporaire du service ou du réseauRéutiliser exactement les identifiants et le corps, limiter les tentatives et consulter l’état de référence si le résultat est incertain
returns_pausedÉcritures de retours temporairement indisponiblesRéessayer plus tard avec les mêmes identifiants ; les lectures restent disponibles
idempotency_key_invalidClé de création absente ou trop longueFournir une clé stable non vide, de 160 caractères au maximum
idempotency_conflictClé réutilisée pour une autre opérationRécupérer la requête d’origine ou utiliser une clé pour une opération réellement nouvelle
event_id_invalidUUID absent ou videGénérer et conserver un UUID par événement
occurred_at_invalidDate d’événement dans le futurCorriger l’horloge ou l’horodatage ; conserver l’heure réelle de survenue
return_not_eligibleÉtat de livraison incompatible avec ce type de retourLe retour client exige Delivered ; le RTS après échec exige DeliveryAttempted
return_state_conflictTransition invalide, dépendance à une preuve ou événement contradictoireLire l’état de référence et les exigences de preuve ; corriger avant de réessayer
return_conflictRetour concurrent ou contrainte d’identifiantLire le retour actuel ; ne pas créer de travail physique en double
return_origin_invalid, return_destination_invalidInstantané absent ou invalideFournir des champs d’adresse confirmée et des coordonnées valides
return_event_invalidDonnées d’événement invalidesCorriger les données selon la référence API
return_pickup_confirmation_not_allowedAccès à la collecte interdit dans l’état actuelExaminer l’état d’autorisation et de remise avant d’émettre un nouveau lien
return_proof_asset_missingRéférence ne correspondant pas à un fichier de retour téléverséTéléverser d’abord le PNG avec le retour, la preuve et le type correspondants ; utiliser la référence renvoyée
return_proof_invalid, proof_image_invalidImage ou champs de preuve invalidesCorriger la méthode, l’usage, les dimensions, la taille et l’horodatage
return_proof_conflictUUID de preuve réutilisé avec un autre contenuRéessayer avec une preuve identique ; ne jamais écraser une preuve immuable
return_destination_requiredPolitique RTS exigeant une destinationFournir la destination convenue de l’expéditeur ou du commerçant

Problèmes d’intégration courants​

La clé copiée commence par [object Object] : recopiez l’identifiant depuis la console. Une clé ne contient ni icône, ni balisage, ni texte d’affichage ajouté. Configurez sa valeur brute complète.

Le statut de livraison n’a pas avancé après l’envoi de la preuve : vérifiez la synchronisation de la preuve. La portée delivery:proof est distincte de delivery:events. L’échec d’une preuve bloque l’événement de finalisation qui en dépend. Corrigez la configuration et réessayez l’opération d’origine avec les mêmes identifiants.

Mon e-mail correspond, mais le lien destinataire ne fonctionne pas : vérifiez que le contact de référence de l’expédition est correct et que le contact du compte est vérifié. Un contact utilisé uniquement pour confirmer l’adresse ne change pas l’appartenance de l’expédition. Le suivi public renseigne sur l’avancement, pas sur l’autorisation du destinataire.

Aucune option de retour n’est disponible : la livraison doit être liée et son état de référence doit être Delivered avant qu’un retour client puisse commencer.

L’URL de preuve de retour est rejetée : téléversez un véritable PNG via l’API des fichiers de retour. Une signature textuelle ou une URL arbitraire du commerçant ne satisfait pas ce contrat.

La signature du webhook échoue : préservez les octets bruts, vérifiez le secret du bon abonnement, contrôlez la fraîcheur de l’horodatage et évitez toute resérialisation JSON. Consultez les recettes de webhooks.