FideliaDéveloppeurs · API caisseEnglish

Erreurs, reprises & limites

Idempotence : réessayer sans risque

Chaque POST exige un en-tête Idempotency-Key, unique par action (un UUID est idéal). Si le réseau coupe et que vous ne savez pas si Fidelia a reçu l’appel, renvoyez-le avec la même clé et le même corps :

La même clé avec un autre corps répond 409 idempotency_mismatch. Les clés sont conservées 24 heures.

Si Fidelia est injoignable, ne bloquez pas le client : terminez la vente et réessayez plus tard avec la même clé.

Erreurs

Les erreurs ont un statut HTTP et un code stable sur lequel brancher votre logique :

{ "error": "insufficient_balance", "message": "The card balance is too low.", "request_id": "6f1c…" }

message est en anglais, pour vos journaux. field nomme le paramètre invalide en 400 ; detail précise parfois la règle non respectée.

Statut Codes
400 invalid_input (avec field), invalid_location
401 invalid_key
402 plan_required (le commerce n’a pas Pro), subscription_inactive
403 scope_denied
404 card_not_found, receipt_not_found, pairing_not_found, milestone_not_found, not_found
409 insufficient_balance, insufficient_points, insufficient_items, not_ready, already_claimed, reward_ready, wrong_card_type, pack_inactive, membership_expired, membership_inactive, program_inactive, already_reversed, reverse_conflict, reverse_window_expired, idempotency_mismatch
410 card_voided (le commerce a effacé ce client), pairing_expired, pairing_collected
429 rate_limited : attendez Retry-After secondes
500 internal_error : réessayez plus tard avec la même clé d’idempotence

Limites de débit

Par clé : 10 requêtes par seconde et 20 000 par jour. Au-delà, vous recevez 429 avec Retry-After. Besoin de plus ? Demandez-nous.

Délais

Utilisez un délai d’attente de 10 secondes. La plupart des appels répondent en bien moins d’une seconde.

Versions

La version est dans l’URL (/v1). Dans la v1, nous ne faisons qu’ajouter : nouveaux champs, nouveaux points d’accès, nouveaux codes reason ou d’erreur. Ignorez les champs inconnus, et traitez un code d’erreur inconnu selon son statut HTTP. Un changement incompatible viendrait en /v2, annoncé à l’avance. Voir l’historique des versions.

Support

Envoyez-nous le X-Request-Id de l’appel : il nous permet de le retrouver dans nos journaux. support@fidelia.se