Aller au contenu principal

Webhooks

eldo wallet peut appeler votre serveur quand un événement se produit dans votre wallet.

Événements​

ÉvénementDéclencheur
client.createdClient créé (API, opération en masse, formulaire d'inscription public, import CSV)
client.updatedClient modifié, y compris ses points (gain)
client.deletedClient supprimé
pass.installedUn téléphone a ajouté le pass à Apple Wallet ou Google Wallet
pass.uninstalledUn téléphone a retiré le pass

Configurer l'URL​

Renseignez webHookUrl sur votre wallet avec PATCH/wallets. Plusieurs URL peuvent être séparées par des virgules.

Déclarer l'URL de webhook
PATCH/walletsEssayer
curl -L -X PATCH 'https://api-v2.test.eldowallet.fr/wallets' \
-H 'Accept: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
-F 'webHookUrl="https://votre-serveur.example.com/hooks/eldo\#headers=Authorization:Bearer%20mon-secret-partage"'

Authentifier les appels​

Les webhooks ne sont pas signés. Pour vérifier qu'un appel vient d'eldo wallet, ajoutez vos propres en-têtes avec le fragment #headers= : Nom:Valeur, séparés par des virgules, valeurs encodées pour URL. eldo wallet les envoie à chaque appel, et ne les réaffiche jamais quand vous relisez le wallet.

Vérifiez cet en-tête côté serveur et refusez les appels qui ne le portent pas.

Format​

POST, Content-Type: application/json :

{
"event": "pass.installed",
"walletId": "6650a0b1c2d3e4f5a6b7c8d9",
"timestamp": "2026-11-20T10:02:13.408Z",
"data": {
"pass": {"_id": "6651b2…", "kind": "TRANSIT", "status": "active", "barcode": "MRS-AJA-000123", "activeIOSDeviceCount": 1, "activeAndroidDeviceCount": 0},
"barcode": "MRS-AJA-000123",
"deviceType": "IOS"
}
}

Pour client.*, data.client contient le client complet (_id, firstName, lastName, email, phoneNumber, barcode, source, gain…).

Livraison et nouvelles tentatives​

  • Répondez par un 2xx en moins de 10 secondes. Faites le traitement lourd après avoir répondu.
  • En cas d'échec, eldo wallet réessaie 3 fois avec un délai croissant (à partir de 2 s).
  • Un même événement peut arriver plusieurs fois, et l'ordre n'est pas garanti : rendez votre traitement idempotent (par exemple sur event + data.pass._id + timestamp).
// Express
app.post('/hooks/eldo', express.json(), (req, res) => {
if (req.get('Authorization') !== `Bearer ${process.env.ELDO_WEBHOOK_SECRET}`) return res.sendStatus(401);
res.sendStatus(204); // répondre tout de suite
queue.push(req.body); // traiter ensuite
});

Webhook de fin d'opération en masse​

Les endpoints /bulk acceptent un webhookUrl propre à la requête, appelé une seule fois à la fin. Voir opérations en masse.

Les nouveautés de l'API, une fois par mois

Nouveaux endpoints, changements à prévoir, guides et cas d'usage. Pas de spam, désinscription en un clic.

Signaler un problème technique

Une erreur de l’API, un pass qui ne se met pas à jour, un e-mail qui n’arrive pas ? Décrivez le problème : notre équipe technique vous répond.

Pour une réponse rapide, indiquez :

  • La méthode et l’endpoint (ex. POST /clients)
  • Le code d’erreur renvoyé (errorCode) et le corps envoyé
  • La date et l’heure de l’appel
  • Les identifiants concernés (client, modèle, pass)

N’y mettez jamais de jeton d’API ni de mot de passe.

Assistant IA

Beta

Chargement…

Réponses générées par IA (Claude) : vérifiez les points importants.

Connectez-vous pour utiliser l'assistant