Opérations en masse
Pour importer toute une base clients, émettre des centaines de billets ou mettre à jour des milliers de cartes, utilisez les endpoints /bulk plutôt qu'une boucle d'appels unitaires.
| Ressource | Créer | Modifier | Supprimer |
|---|---|---|---|
| Clients | POST/clients/bulk | PATCH/clients/bulk | DELETE/clients/bulk |
| Passes de transport | POST/transits/{transitId}/passes/bulk | PATCH/transits/{transitId}/passes/bulk | DELETE/transits/{transitId}/passes/bulk |
| Passes d'événement | POST/events/{id}/passes/bulk | PATCH/events/{id}/passes/bulk | DELETE/events/{id}/passes/bulk |
| Passes d'hôtel | POST/hotels/{id}/passes/bulk | PATCH/hotels/{id}/passes/bulk | DELETE/hotels/{id}/passes/bulk |
| Coupons envoyés | PATCH/coupons/{id}/passes/bulk | DELETE/coupons/{id}/passes/bulk |
Le corps de la requête
| Champ | Type | Description |
|---|---|---|
items | array | De 1 à 5 000 éléments, chacun au format de l'endpoint unitaire. Les suppressions prennent ids (tableau d'identifiants). |
webhookUrl | string | Facultatif. URL appelée une fois l'opération terminée. |
forceSync | boolean | Facultatif, false par défaut. true traite la requête immédiatement et renvoie les résultats. Réservé aux lots de moins de 1 000 éléments (sinon 400:SYNC_EXECUTION_NOT_ALLOWED). |
- curl
- SDK Node.js
- nodejs
- php
- python
- java
- csharp
- go
- ruby
- CURL
curl -L 'https://api-v2.test.eldowallet.fr/clients/bulk' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-lang: fr' \
-H 'Authorization: Bearer <token>' \
--data-raw '{
"webhookUrl": "https://votre-serveur.example.com/hooks/eldo-bulk",
"items": [
{
"firstName": "Camille",
"lastName": "Martin",
"email": "camille@example.com",
"source": "CRM",
"gain": 1250,
"sendCard": true
},
{
"firstName": "Yanis",
"lastName": "Benali",
"email": "yanis@example.com",
"source": "CRM",
"gain": 300,
"sendCard": true
}
]
}'
Mode asynchrone (par défaut)
La réponse arrive immédiatement, avant le traitement :
{
"operationId": "6651a7e0c4b2f19d8e3a0c55",
"totalItems": 2,
"successCount": 0,
"failureCount": 0,
"status": "pending",
"createdAt": "2026-11-20T10:00:00.000Z"
}
Suivez l'avancement avec GET/bulk-operations/{operationId} : status passe de pending à processing, puis completed ou failed. À la fin, chaque élément en échec est listé dans operationErrors.
Le webhook de fin n'est pas garanti
L'URL webhookUrl est appelée une seule fois, sans nouvelle tentative, et seulement si l'opération se termine en completed. Gardez le suivi par GET/bulk-operations/{operationId} comme filet de sécurité.
Bonnes pratiques
- Découpez au-delà de 5 000 éléments, et envoyez les lots les uns après les autres.
- Fournissez votre propre
barcodepar élément si vous devez relier le pass à votre système (billetterie, CRM). - Une erreur sur un élément n'annule pas les autres : relancez uniquement les éléments de
operationErrors.