Erreurs

Forme des erreurs et liste des codes.

La forme

Toute erreur renvoie le même objet, quel que soit le point d'entrée.

{
  "error": {
    "code": "invalid_amount",
    "message": "Le montant doit etre un entier positif en FCFA.",
    "param": "amount",
    "hint": null
  }
}

code est stable : branchez-vous dessus, jamais sur message, dont la formulation peut changer. param désigne le champ fautif quand il y en a un, et hint dit quoi faire quand ce n'est pas évident.

Les codes

Un objet d'un autre compte renvoie 404, pas 403

C'est délibéré. Un 403 confirmerait que l'identifiant existe ailleurs, ce qui permettrait de deviner les références d'un autre marchand. Pour vous, un objet qui n'est pas le vôtre n'existe pas.

Sur un 500, ne rejouez pas à l'aveugle

Une erreur interne sur une création ne dit pas si l'opération a eu lieu. Rejouez avec la même clé d'idempotence : si elle était passée, vous récupérez la réponse d'origine au lieu de créer un doublon.