Erreurs, limites et reprises.

Les erreurs utilisent une structure commune. Votre intégration doit distinguer les corrections fonctionnelles des incidents temporaires.

Décider quand réessayer

StatutSignificationAction
400Paramètre ou corps invalideCorriger la requête, ne pas relancer automatiquement
401Jeton absent ou expiréRenouveler le jeton puis relancer une fois
403Scope manquantDemander une permission, ne pas relancer
409Conflit métier ou d’idempotenceInspecter le code d’erreur avant toute nouvelle tentative
429Trop de requêtesAttendre puis reprendre progressivement
503Service temporairement indisponibleRéessayer avec délai exponentiel

Format d’une erreur

Réponse 403json
{
  "statusCode": 403,
  "code": "MISSING_SCOPE",
  "error": "Forbidden",
  "message": "Permission insuffisante",
  "missingScopes": ["stock:read"]
}

Idempotence du débit d’une carte cadeau

PUT /v1/gift-cards/{giftCardId} demande un en-tête Idempotency-Key. Conservez la même clé uniquement pour rejouer exactement la même intention.

Clé de reprisehttp
Idempotency-Key: gift-card-debit-2026-000142
Pendant la fenêtre de rétention configurée, 24 heures par défaut, la même clé et le même corps rejouent la première réponse. La même clé avec un corps différent retourne un conflit 409.

Journalisation utile

Conservez l’opération appelée, le statut HTTP, le code d’erreur, votre référence externe et la clé d’idempotence. Ne journalisez jamais les mots de passe, jetons ou codes complets de cartes cadeaux.