Titres de transport dans Apple Wallet et Google Wallet
Quand vous vendez du voyage, votre client a besoin d'une seule chose : le bon billet, au bon moment, sans stress. eldo wallet pose le titre de transport dans son téléphone, dans Apple Wallet ou Google Wallet, dès la réservation. Il est disponible hors ligne, remonte sur l'écran de verrouillage le jour du départ et se met à jour tout seul quand l'horaire change.
Essayez ce pass en directRemplissez le formulaire, voyez le pass et le code se mettre à jour, puis recevez-le sur votre téléphone.Le parcours client
Workflow d'intégration
- Créer le modèle de liaisonBack-office
Un modèle de transit regroupe ce qui est commun à tous les billets d'une liaison : type (
Bus,Train,Tram,Boat,Air,Generic), gares et codes, horaires de référence, tarif, conditions, numéro du service client, couleurs, strip et format de code-barres. Créez-le une fois, dans le back-office ou par l'API. Le wallet doit avoir le type de pass TRANSIT activé.- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L 'https://api-v2.test.eldowallet.fr/transits' \
-H 'Accept: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
-F 'strip=@"bandeau.png"' \
-F 'type="Bus"' \
-F 'number="147"' \
-F 'originStationCode="MLH"' \
-F 'originName="Mulhouse"' \
-F 'destinationStationCode="GVA"' \
-F 'destinationName="Genève"' \
-F 'departureTime="09:30"' \
-F 'arrivalTime="12:15"' \
-F 'details="Présentez-vous 15 minutes avant le départ."' \
-F 'terms="Billet nominatif, échangeable jusqu'\''à la veille."' \
-F 'barcodeFormat="QR_CODE"' \
-F 'colors="{\"backgroundColor\":\"\#0f3d5e\",\"labelColor\":\"\#9ee00d\",\"foregroundColor\":\"\#ffffff\"}"' \
-F 'security="{\"enableOneTimeUse\":true,\"disableIOSPassSharing\":true}"' - Le voyageur réserveClient final
Sur votre site, votre application, au guichet ou chez un revendeur. Votre billettique enregistre la vente, puis appelle eldo wallet.
- Émettre le billetVotre serveur
Un appel par voyageur, avec ses coordonnées, les dates, le code-barres et surtout le
tripNumber. Ce numéro regroupe tous les billets d'un même service : c'est lui qui rend possibles les mises à jour groupées.Deux options de distribution :
enableSendEmailOrSms: true: eldo wallet envoie l'email ou le SMS avec le bouton « Ajouter au Wallet ».enableSendEmailOrSms: false: vous récupérez le lien dans la réponse et le diffusez vous-même (email de confirmation, application, QR sur un ticket d'agence ou une borne).
- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L 'https://api-v2.test.eldowallet.fr/transits/$TRANSIT_ID/passes' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
--data-raw '{
"firstName": "Loïc",
"lastName": "Bernard",
"email": "loic.bernard@example.com",
"departureDate": "2026-11-12",
"arrivalDate": "2026-11-12",
"departureTime": "09:30",
"arrivalTime": "12:15",
"tripNumber": "MLH-GVA-20261112-0930",
"seat": "14",
"barcode": "TR-2026-000123",
"expirationDate": "2026-11-13T00:00:00.000Z",
"enableSendEmailOrSms": true
}' - Émettre en lotVotre serveur
Groupes scolaires, comités d'entreprise, affrètements : envoyez jusqu'à 5 000 billets en une requête. L'opération est asynchrone. Suivez son statut par son identifiant, ou passez un
webhookUrlpour être prévenu à la fin. - Prévenir d'un retard ou d'un changementVotre serveur
Un appel met à jour tous les billets du trajet (horaires, gares, dates). Pour expliquer le contexte (« Retard 30 min, météo »), envoyez en plus un message aux porteurs du
tripNumber. Guide complet : Mettre à jour un trajet.- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L -X PATCH 'https://api-v2.test.eldowallet.fr/transits/$TRANSIT_ID/passes/trip/MLH-GVA-20261112-0930' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
-d '{
"departureTime": "09:00",
"arrivalTime": "11:45"
}'- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L 'https://api-v2.test.eldowallet.fr/transits/$TRANSIT_ID/passes/trip/MLH-GVA-20261112-0930/notify' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
-d '{
"message": "Votre départ est avancé à 09:00."
}' - Corriger un billet individuelVotre serveur
Changement de date pour un seul voyageur, nouveau siège, faute dans le nom : mettez à jour son billet sans toucher aux autres. Plusieurs corrections d'un coup : utilisez la mise à jour en lot.
- Valider à l'embarquementVotre serveur
Le contrôleur scanne le code-barres. Votre terminal retrouve le billet, puis le valide. Un second scan est refusé. Activez l'usage unique sur le modèle pour bloquer un second passage.
- Suivre les émissionsVotre serveur
Listez les billets émis par liaison (pagination
pageetlimit) et suivez les statistiques par liaison, type et période. - Fidéliser les réguliersVotre serveur
Ajoutez une carte voyageur : un compteur de trajets sur la carte de fidélité, et un coupon « trajet offert » au 5ᵉ voyage.
Bonnes pratiques
- Le
tripNumberest indispensable dans les faits. Sans lui, vous devrez mettre à jour chaque billet un par un lors d'un retard. - Renseignez une date d'expiration. Le billet passe en expiré après le trajet et reste consultable dans l'historique du Wallet comme justificatif.
- Séparez donnée et message. Mettez à jour l'horaire avec un appel, expliquez la raison avec un autre. Le voyageur comprend ce qui change et pourquoi.
- Dates au format
YYYY-MM-DD, heures au formatHH:mm. Si vous changez la date de départ d'un trajet, envoyez aussi la date d'arrivée. - Protégez contre le partage. Les options de sécurité du modèle (usage unique, partage iOS désactivé, code-barres rotatif) limitent la revente et les captures d'écran.
Pour aller plus loin
- Mettre à jour un trajet
- Ferry & maritime, même mécanique avec cabines et quais
- Compagnies aériennes, même mécanique avec le type
Air - Codes-barres
- Cycle de vie d'un pass
- Endpoints : POST
/transitsPOST/transits/{transitId}/passesPATCH/transits/{transitId}/passes/trip/{tripNumber}POST/transits/{transitId}/passes/trip/{tripNumber}/notify
Pour vous inspirer
Le billet n’est que le début du voyage. Voici des idées pour accompagner vos voyageurs et les faire revenir.
Une de ces idées vous parle ? Contactez notre équipe : nous vous montrons comment la mettre en place.
