Traduite de l'anglais. En cas de différence, la page en anglais fait foi. Lire en anglais

Gérer les erreurs et les nouvelles tentatives

Les trois endroits où les erreurs apparaissent, et comment construire des nouvelles tentatives qui n'aggravent jamais la situation.

Les erreurs apparaissent à trois endroits distincts. Organisez votre gestion selon celui que vous regardez.

1. Erreurs de requête (statut HTTP + enveloppe)

Validation, authentification et limites de débit. Elles sont synchrones, dans l'enveloppe d'erreur. Basez-vous sur error.type pour la politique de nouvelle tentative et sur error.code pour le détail. 429 → attendez Retry-After ; 5xx → backoff exponentiel avec la même Idempotency-Key.

2. Erreurs de canal (les issues[] de l'annonce)

La requête était correcte, mais le canal a rejeté l'annonce plus tard, de façon asynchrone. L'annonce passe en status: "error" et issues[] contient le message du canal lui-même en texte clair (par exemple « You are currently in a Shop probation period… »). Ce sont des problèmes du vendeur, pas de l'API : montrez-les au marchand.

Corrigez d'abord la cause, puis relancez uniquement les annonces qui échouent avec cette erreur. error_contains porte sur le message d'erreur actuel de l'annonce :

curl "https://api.nembol.com/rest/v1/listings?error_contains=item%20specific%20Brand" \
  -H "Authorization: Bearer $NEMBOL_API_KEY"

Puis relancez exactement celles-ci, jusqu'à 100 par appel :

curl -X POST https://api.nembol.com/rest/v1/listings/batch \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "retry",
       "items": [{"product_id": "prod_66a1f0", "channel_account_id": "chac_6aa12cab"}]}'

Les annonces qui ne sont plus en erreur reviennent en skipped (not_in_error) : une liste de relance devenue obsolète est donc sans danger. Pour une seule annonce, PATCH /listings/{id} avec {} la resynchronise.

3. Résultats partiels (opérations)

Les appels batch renvoient une opération dont les results[] sont par élément/canal. status: "partial" signifie que certains ont réussi. Relancez uniquement les entrées en échec, jamais tout le batch à l'aveugle.

Pièges à éviter

  • Ne relancez jamais à l'aveugle. Filtrez par l'échec exact (error_contains, les lignes results[] en échec). Relancer en bloc toutes les annonces en erreur amplifie les problèmes.
  • L'Idempotency-Key rend les nouvelles tentatives sans risque. Même clé + même payload = réponse enregistrée, aucun double effet.
  • Des codes inconnus apparaîtront avec le temps. Rabattez-vous sur error.type.
  • request_id figure dans chaque erreur : communiquez-le au support.

Dernière mise à jour le 20 octobre 2026

Besoin d'aide ?

Écrivez-nous et une personne vous répond, généralement sous un jour ouvré.

Sur cette page