Webhooks et journal de livraison
Transférez les événements, avec signatures et nouvelles tentatives.
Le webhook informe ton système externe en temps réel des événements stmpr : nouveau client, tampon, statut récompense disponible ou validation.
Chaque requête est signée afin que le système récepteur puisse vérifier qu’elle a bien été envoyée par le stmpr. Si la livraison échoue, le système retarde la rétentative.
Le journal de livraison affiche l’événement, l’heure, le code de réponse et les résultats de la réessay.
https://stmpr.io/dashboard/developers · Webhooks
Étape par étape
- Allez sur la page Webhooks dans le menu Intégrations.
- Ajoute un point de terminaison HTTPS et choisis les événements que tu veux transmettre.
- Sauvegardez le secret de signature dans la configuration sécurisée du système hôte.
- Envoyez un événement test et vérifiez la signature, le corps de la demande et la réponse 2xx réussie.
- Après la mise en ligne, surveillez le journal de livraison. Au point de terminaison fixe, redémarrez la non-livraison.
Ce que contient une requête webhook
- Corps de la requête: le nom de l'événement (event), l'horodatage created_at et l'objet data.
- data.wallet: l'identifiant et le nom de la carte de fidélité.
- data.customer: l'identifiant du client, son code à quatre chiffres, le nombre de tampons, les tampons requis, si la récompense est prête, ainsi que l'inscription et la dernière activité.
- customer.created: un client vient de s'inscrire, sans champ supplémentaire.
- stamp.added: ce qui précède plus la source du tampon (manual, api, auto, survey_reward, kiosk).
- stamp.removed: comme pour l'ajout, avec la source du retrait.
- reward.ready: le client a réuni les tampons demandés par la récompense, sans champ supplémentaire.
- reward.redeemed: le type d'utilisation (staff, manual, auto, api).
- pass.updated: quelles cartes ont été actualisées sur le téléphone (apple, google).
- En-têtes: X-Stmpr-Event porte le nom de l'événement, X-Stmpr-Delivery l'identifiant de la livraison, et X-Stmpr-Signature vaut t=horodatage,v1=HMAC-SHA256 signé avec ton secret.
- Réponse: nous attendons un 2xx en moins de 10 secondes. Sinon nous réessayons cinq fois au total, après 10 secondes, 1 minute, 5 minutes et 15 minutes.
Exemple de requête par événement
customer.created
{
"event": "customer.created",
"created_at": "2026-09-01T14:12:03+00:00",
"data": {
"wallet": {
"id": "w_8Kd2Qm",
"name": "Kávé hűségkártya"
},
"customer": {
"id": "c_9YbVt3xQ",
"display_code": "4693",
"stamps_count": 0,
"stamps_required": 10,
"ready_to_redeem": false,
"created_at": "2026-07-14T09:20:11+00:00",
"last_activity_at": "2026-09-01T14:12:03+00:00"
}
}
}stamp.added
{
"event": "stamp.added",
"created_at": "2026-09-01T14:12:03+00:00",
"data": {
"wallet": {
"id": "w_8Kd2Qm",
"name": "Kávé hűségkártya"
},
"customer": {
"id": "c_9YbVt3xQ",
"display_code": "4693",
"stamps_count": 7,
"stamps_required": 10,
"ready_to_redeem": false,
"created_at": "2026-07-14T09:20:11+00:00",
"last_activity_at": "2026-09-01T14:12:03+00:00"
},
"source": "manual"
}
}stamp.removed
{
"event": "stamp.removed",
"created_at": "2026-09-01T14:12:03+00:00",
"data": {
"wallet": {
"id": "w_8Kd2Qm",
"name": "Kávé hűségkártya"
},
"customer": {
"id": "c_9YbVt3xQ",
"display_code": "4693",
"stamps_count": 6,
"stamps_required": 10,
"ready_to_redeem": false,
"created_at": "2026-07-14T09:20:11+00:00",
"last_activity_at": "2026-09-01T14:12:03+00:00"
},
"source": "manual"
}
}reward.ready
{
"event": "reward.ready",
"created_at": "2026-09-01T14:12:03+00:00",
"data": {
"wallet": {
"id": "w_8Kd2Qm",
"name": "Kávé hűségkártya"
},
"customer": {
"id": "c_9YbVt3xQ",
"display_code": "4693",
"stamps_count": 10,
"stamps_required": 10,
"ready_to_redeem": true,
"created_at": "2026-07-14T09:20:11+00:00",
"last_activity_at": "2026-09-01T14:12:03+00:00"
}
}
}reward.redeemed
{
"event": "reward.redeemed",
"created_at": "2026-09-01T14:12:03+00:00",
"data": {
"wallet": {
"id": "w_8Kd2Qm",
"name": "Kávé hűségkártya"
},
"customer": {
"id": "c_9YbVt3xQ",
"display_code": "4693",
"stamps_count": 0,
"stamps_required": 10,
"ready_to_redeem": false,
"created_at": "2026-07-14T09:20:11+00:00",
"last_activity_at": "2026-09-01T14:12:03+00:00"
},
"type": "staff"
}
}pass.updated
{
"event": "pass.updated",
"created_at": "2026-09-01T14:12:03+00:00",
"data": {
"wallet": {
"id": "w_8Kd2Qm",
"name": "Kávé hűségkártya"
},
"customer": {
"id": "c_9YbVt3xQ",
"display_code": "4693",
"stamps_count": 7,
"stamps_required": 10,
"ready_to_redeem": false,
"created_at": "2026-07-14T09:20:11+00:00",
"last_activity_at": "2026-09-01T14:12:03+00:00"
},
"passes": [
"apple",
"google"
]
}
}