API d’utilisation des récompenses de tampons (v2)
L’API d’utilisation des récompenses de tampons marque une récompense (boisson gratuite, réduction, etc.) comme utilisée une fois tous les tampons complétés.
Après utilisation, le tampon ne peut plus être utilisé, et un nouveau doit être émis pour démarrer un nouveau cycle.
Elle est utilisée dans les systèmes de récompense basés sur les visites ou les achats.
Cette API est disponible à partir de l’offre Personal.
/api/stamp/v2/redeem
{
"stampIdx": 394,
"onsiteToken": "QsBkV0ryiCkxiV4KUNJBSWQcR8MzSlvez4ntLh2Tt2M",
"processStoreIdx": 22
}
Request Parameters
- stampIdx integer required
- Stamp IDX.
- onsiteToken string
-
Jeton d'échange de courte durée. v2 n'accepte pas le mot de passe en clair
(
onsitePwd).
Lorsque la ressource aonsiteYn = Y, envoyez tel quel l'onsiteTokenrenvoyé par l'API de vérification.
Idempotency-Keyest obligatoire pour les requêtes utilisant un jeton. Une nouvelle tentative avec la même clé rejoue le résultat initial ; réutiliser le même jeton avec une autre clé est refusé avec400(code d'erreur1228).
Si un magasin de traitement a été indiqué lors de la vérification, cette requête doit utiliser le même. - processStoreIdx integer
-
IDX du magasin où cette requête est réellement traitée. S'il est envoyé, le serveur vérifie l'appartenance à l'organisation, l'état actif et les autorisations avant de l'enregistrer dans l'historique de traitement.
L'agence de traitement n'est pas reçue dans la requête ; le serveur la déduit de ce magasin. Cette valeur diffère du magasin émetteur (storeIdx).
{
"code": 0,
"message": "",
"result": null
}
Response Parameters
- code integer
- Code de réponse : 0 = Succès, autres valeurs = Erreur
- message string
- Message de réponse. Si le code n’est pas 0, un message d’erreur est renvoyé.
- result null
Validation des paramètres numériques
Si un paramètre numérique reçoit une valeur non numérique ou un nombre dépassant la plage que le serveur peut traiter, la requête est immédiatement refusée avec 400 (code d'erreur 653).
Dans ce cas, les données du tampon et l'historique de cumul ne changent pas du tout, et aucun enregistrement d'événement ni envoi de Webhook n'est produit. Une réponse en échec signifie que rien n'a été enregistré.
Indiquer le magasin de traitement
| Paramètre | Signification | Description |
|---|---|---|
processStoreIdx |
Magasin de traitement | Le magasin où cette requête est réellement traitée. Facultatif : s'il est envoyé, le serveur vérifie l'appartenance à l'organisation, l'état actif et les autorisations avant de l'enregistrer dans l'historique. |
L'agence de traitement n'est pas reçue dans la requête. Le serveur la déduit du magasin indiqué et l'enregistre.
Si la portée d'utilisation est BRANCH, le traitement n'a lieu que si l'agence du magasin vérifié correspond à l'agence d'utilisation,
ou si vous vous authentifiez avec le mot de passe sur place de cette agence. Sans l'un ou l'autre, la requête est refusée.
Paramètres non utilisables — branchIdx (agence émettrice),
storeIdx (magasin émetteur), useScope (portée d'utilisation) et
useBranchIdx (agence d'utilisation) relèvent de la politique d'émission déjà enregistrée et ne peuvent pas être modifiés via cette API.
S'ils sont envoyés, la réponse est 400 (code d'erreur 1227).
Idempotency-Key
Pour réessayer en toute sécurité lorsqu'une réponse est perdue à cause d'une erreur réseau, envoyez une valeur unique par requête
dans l'en-tête Idempotency-Key. Vous pouvez aussi l'envoyer via requestId dans le corps ;
si les deux sont envoyés avec des valeurs différentes, la requête est refusée.
Le format autorisé est de 8 à 64 caractères composés de lettres, de chiffres et de . _ : -.
Si vous renvoyez la même requête avec la même clé, le résultat initial est renvoyé sans nouveau traitement. Rien n'est traité deux fois et les webhooks ne sont pas renvoyés.
N'utilisez la même clé que pour les nouvelles tentatives d'une même opération logique.
Pour une opération différente, utilisez toujours une nouvelle clé.
Réutiliser la même clé avec un contenu différent ou pour une autre opération peut être refusé avec 409.
À quelle étape intervient cette API ?
Il s’agit de la dernière étape du système de tampons.
- Vérifier que l’accumulation est complète
- Traiter l’attribution de la récompense
- Marquer le tampon comme utilisé
Il ne s’agit pas seulement d’un changement d’état, mais de la finalisation du résultat du programme.
Point final du cycle
Cette API représente la dernière étape du cycle de tampons.
Pour l’utilisateur, c’est le moment de recevoir la récompense. Pour le développeur, cela marque la fin d’un cycle et le début du suivant.
Après Redeem, appeler Create permet de maintenir l’engagement.
Cycle complet
Create→ Émettre un tamponAdd Stamp→ AccumulerValidate→ VérifierRedeem→ Utiliser la récompenseCreate→ Démarrer un nouveau cycle
Jeton de vérification en point de vente (onsiteToken)
v2 n’accepte pas le mot de passe du point de vente en clair (onsitePwd).
Envoyez sans modification l’onsiteToken renvoyé par l’API de validation.
L’envoi de onsitePwd seul ou avec onsiteToken est refusé avec
400 (code d’erreur 1227).
Idempotency-Key est obligatoire pour toute requête utilisant un jeton.
Une nouvelle tentative avec la même Idempotency-Key renvoie le résultat initial.
La réutilisation du même jeton avec une autre Idempotency-Key est refusée avec
400 (code d’erreur 1228).
Le point de vente utilisé pour la validation doit être le même que celui où l’opération est traitée.
Si processStoreIdx a été indiqué lors de la validation, cette requête doit utiliser le même point de vente.
Un jeton validé sans point de vente ne peut pas être associé à un point de vente par la suite.
Les jetons expirés, altérés, déjà utilisés ou présentant une liaison incorrecte renvoient tous 1228.
Ces causes ne sont volontairement pas distinguées afin d’éviter qu’un tiers puisse sonder l’état interne à l’aide d’un autre jeton.
Aucun jeton n’est requis pour les ressources qui n’utilisent pas la vérification en point de vente (onsiteYn = N).
v1 continue d’accepter onsitePwd en clair.
Automatisation après utilisation
Vous pouvez automatiser les actions après utilisation de la récompense.
- Appeler l’API de création de coupons pour émettre une récompense immédiatement
- Créer un nouveau tampon pour démarrer un nouveau cycle
Ce flux permet d’automatiser l’ensemble du cycle de récompense sans intervention manuelle.
Points clés en opération
Cette API n’est pas seulement une fonctionnalité, mais le point où les résultats métier sont définitivement validés.
Il est essentiel de garantir le flux validation → utilisation, le contrôle transactionnel côté serveur et la journalisation d’audit.