Notifications push Apple Wallet et Google Wallet
Une carte installée dans Apple Wallet ou Google Wallet est un canal direct vers l’écran de verrouillage de votre client. Pas d’application à installer, pas d’email noyé dans une boîte.
Un seul endpoint, quatre réglages
POST/push-notifications couvre tous les cas. Quatre champs décident du comportement :
| Champ | Valeurs | Effet |
|---|---|---|
target | ALL, SPECIFIC | Tous les porteurs, ou seulement les clients listés dans clients |
type | INSTANT, SCHEDULED | Tout de suite, ou à la date scheduleAt (obligatoire en SCHEDULED) |
category | INFORMATIVE, COMMERCIAL | Information de service ou message marketing : eldo wallet respecte le consentement du client pour chaque catégorie |
clients | id, title, message | Avec SPECIFIC : la liste des destinataires, avec un titre et un message propres à chacun si besoin |
defaultTitle et defaultMessage servent pour tous les destinataires qui n’ont pas de texte personnalisé.
Exemple : une annonce planifiée à tous
- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L 'https://api-v2.test.eldowallet.fr/push-notifications' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
-d '{
"defaultTitle": "Ventes privées",
"defaultMessage": "-30 % pour vous ce week-end.",
"target": "ALL",
"type": "SCHEDULED",
"category": "COMMERCIAL",
"scheduleAt": "2026-11-12T17:00:00.000Z"
}'
Exemple : un message par client
- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L 'https://api-v2.test.eldowallet.fr/push-notifications' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
-d '{
"defaultTitle": "Votre cagnotte",
"defaultMessage": "Votre cagnotte a été mise à jour.",
"target": "SPECIFIC",
"type": "INSTANT",
"category": "INFORMATIVE",
"clients": [
{
"id": "$CLIENT_ID_1",
"message": "Marie, il vous reste 31,40 € sur votre cagnotte."
},
{
"id": "$CLIENT_ID_2",
"message": "Loïc, plus que 2 trajets avant le prochain offert."
}
]
}'
Consentement : informatif ou commercial
Chaque client a ses préférences : pushInformativeEnabled et pushCommercialEnabled.
Une notification COMMERCIAL n’atteint pas un client qui a refusé les messages commerciaux. Lisez et modifiez ces préférences avec GET/clients/{clientId}/communication-preferences et PUT/clients/{clientId}/communication-preferences.
« Votre commande est prête » est informatif. « -30 % ce week-end » est commercial. Classer une promotion en INFORMATIVE contourne le choix du client : ne le faites pas.
Pourquoi c'est important
eldo wallet filtre les destinataires au moment de l'envoi, d'après la catégorie que vous indiquez. Il ne lit pas le contenu du message. Une promotion envoyée en INFORMATIVE atteint donc aussi les clients qui ont refusé les messages commerciaux.
Les conséquences pour vous :
- Juridique. En France et dans l'Union européenne, la prospection commerciale par voie électronique repose sur le consentement de la personne (RGPD, règles de la CNIL). Écrire à un client qui a refusé ces messages vous expose à des plaintes et à des sanctions. Son refus est daté et conservé : GET
/clients/{clientId}/communication-preferences/historyen garde la trace. - Perte du canal. Un client agacé coupe les notifications du pass ou le supprime de son wallet. Vous perdez alors aussi les messages utiles : commande prête, retard, renouvellement de carte. Le webhook
pass.uninstalledvous le signale, trop tard. - Confiance. Une notification « de service » qui cache une publicité apprend au client à ignorer toutes vos notifications, y compris les importantes.
- Statistiques faussées. Vos statistiques d'envoi par catégorie ne veulent plus rien dire : impossible de savoir ce qui fonctionne.
En cas de doute, choisissez COMMERCIAL : vous touchez moins de clients, mais tous ont accepté de vous lire.
Notifications liées à un trajet
Pour les titres de transport, ciblez un trajet, pas tous les porteurs.
POST/transits/{transitId}/passes/trip/{tripNumber}/notify envoie un message à tous les billets d’un même tripNumber. Voir Mettre à jour un trajet.
Notifications automatiques
Certains événements notifient sans appel de votre part : nouvelle carte, gain mis à jour, nouveau coupon, nouvel événement…
Les règles se règlent par type de notification et par canal (email, SMS, notification) dans communicationRules (PATCH/wallet-settings). Les textes se personnalisent avec les modèles de notification (POST/notification-templates).
Suivre et gérer
- GET
/push-notifications/{id}/stats: livraison d’une notification. - GET
/push-notifications, GET/push-notifications/{id}: historique. - PUT
/push-notifications/{id}, DELETE/push-notifications/{id}: modifier ou annuler une notification planifiée.
Bonnes pratiques
- Un message, une action. « Votre commande est prête, jusqu’à samedi 19 h » vaut mieux qu’un paragraphe.
- Ciblez. Un push envoyé à tous pour une info qui concerne 10 % des porteurs fait désinstaller la carte.
- Respectez les horaires. Planifiez avec
SCHEDULEDplutôt que d’envoyer à 23 h. - Espacez les envois planifiés. Deux notifications trop proches dans le temps sont refusées avec
PUSH_NOTIFICATION_SCHEDULE_CONFLICT(409). - Une date dans le futur. Une date déjà passée renvoie
SCHEDUle_DATE_PASSED.
Sur iPhone, la notification s’affiche parce qu’un champ du pass change de valeur. Deux envois successifs avec exactement le même texte peuvent ne rien afficher la seconde fois.
Pour aller plus loin
- Apple Wallet vs Google Wallet
- Localisations : la notification sans envoi, quand le client passe à proximité
- Le pass ne se met pas à jour