Cycle de vie d’un pass Wallet
Un pass passe par quelques états simples. Les connaître vous évite deux erreurs classiques : relancer un client qui a déjà sa carte, et accepter deux fois le même coupon.
Les états
| État | Ce qui s’est passé | Comment le savoir |
|---|---|---|
| Envoyé | eldo wallet a créé le pass et son lien. L’email ou le SMS est parti si vous l’avez demandé. | Réponse de l’appel de création |
| Installé | Le client a ajouté le pass à Apple Wallet ou Google Wallet. Son appareil reçoit les mises à jour. | Webhook pass.installed, filtre status de GET/clients |
| Désinstallé | Le client a retiré le pass de son téléphone. | Webhook pass.uninstalled |
| Utilisé | Le pass a été scanné et validé. | POST/passes/template/{templateId}/redeem/{barcode} |
| Expiré | La date d’expiration est passée. Le pass reste visible dans le Wallet, marqué comme expiré. | Date d’expiration du pass |
Les webhooks se configurent au niveau du wallet. Voir Webhooks.
Relancer les inactifs
Un client a reçu sa carte mais ne l’a jamais installée ? POST/clients/reminder-inactive relance tous les inactifs (all) ou une liste précise (specific).
Valider un pass : redeem et unredeem
Au scan, votre caisse ou votre contrôle d’accès appelle POST/passes/template/{templateId}/redeem/{barcode} avec l’identifiant du template et le code-barres lu.
Le pass passe en « utilisé ». Un second scan du même pass est refusé avec PASS_ALREADY_REDEEMED.
Le caissier s’est trompé ? Annulez avec POST/passes/template/{templateId}/unredeem/{barcode}. Sur un pass jamais validé, l’API renvoie PASS_NOT_REDEEMED.
- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L -X POST 'https://api-v2.test.eldowallet.fr/passes/template/$TEMPLATE_ID/redeem/$BARCODE' \
-H 'Accept: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>'
Faites valider le pass par eldo wallet, pas seulement par votre caisse. Le statut se met à jour dans le Wallet du client et dans vos statistiques.
Forcer un statut
Vous pouvez aussi écrire le statut directement :
| Pass | Endpoint | Statuts |
|---|---|---|
| Coupon | PUT/coupons/{id}/passes/{instanceId}/status | UNUSED, USED, EXPIRED |
| Coupon (expirer tout de suite) | POST/coupons/{id}/passes/{instanceId}/expire | |
| Transport | PUT/transits/{transitId}/passes/{barcode}/status | UNUSED, USED |
| Événement | PUT/events/{id}/passes/{barcode}/status |
L’expiration
- Carte de fidélité : bloc
validityde PATCH/store-cards.expirationTypevautNO_EXPIRATION,AT_DATETIME(date fixe) ouAFTER_PERIOD(une durée après la création, en années, mois ou semaines). - Coupon :
expirationDatesur le template, surchargeable client par client à l’envoi. - Transport :
expirationDatesur le pass, ou pour tout un trajet avec PATCH/transits/{transitId}/passes/trip/{tripNumber}.
Une fois expiré, le pass reste dans le Wallet du client, grisé. Il sert de justificatif.
Le filtre status de GET/clients accepte les valeurs active, inactive, deleted, canceled et expired.