Opérations asynchrones
Suivre l'avancement et le résultat d'une opération asynchrone.
Toutes les mutations asynchrones (/payouts, /payment-requests, /refunds) renvoient un operation_id que vous pouvez suivre via ces endpoints.
GET /operations/:id
Requête
GET /v1/operations/op_2f4a8b1c...
X-Api-Key: …
X-Timestamp: …
X-Signature: …Réponse 200 OK
{
"error": false,
"http_status": 200,
"data": {
"operation_id": "op_2f4a8b1c...",
"type": "payout",
"status": "succeeded",
"env": "live",
"payload": { /* body envoyé à l'origine */ },
"result": {
"reference": "PO-2026-0001",
"amount": 25000,
"currency": "XOF",
"status": "completed"
},
"error": null,
"attempts": 1,
"date": "2026-05-20T10:30:00.000Z",
"updated_date": "2026-05-20T10:30:14.000Z",
"completed_date": "2026-05-20T10:30:14.000Z",
"_links": { "self": "/api/v1/merchant/operations/op_2f4a8b1c..." }
}
}Statuts
status
Sens
queued
En file d'attente, pas encore traitée
processing
Worker actif
succeeded
Terminée — voir result
failed
Échouée — voir error.code et error.message
expired
(réservé pour TTL)
Quand status === "failed"
Les codes d'erreur métier sont listés dans le catalogue d'erreurs.
GET /operations
Liste paginée des opérations du marchand.
Query params
limit
1-100, défaut 20
type
payout, payment_request, refund
status
queued, processing, succeeded, failed, expired
before
ISO 8601 — curseur de pagination
Exemple : tous les payouts échoués des 7 derniers jours
Réponse
Pattern de polling
Si tu ne peux pas mettre en place de webhook (ex: dev local), poll avec un backoff :
Voir aussi
Webhooks — l'alternative push, recommandée
Mis à jour