Cette page est le catalogue de référence des événements webhook. Pour la mise en place
(signature, retry, idempotence), voir le guide Webhooks .
Enveloppe commune
Tout webhook partage la même enveloppe. Le contenu spécifique est dans data :
{
"event" : "payment_intent.completed" ,
"timestamp" : 1731843299 ,
"data" : { }
}
Champ Type Sens eventstring Le type d’événement (voir ci-dessous). timestampnumber Horodatage Unix de l’émission. Sert à l’anti-replay, jamais à décider d’une action. dataobject Les données de la ressource concernée.
Deux headers accompagnent chaque livraison : X-IziPay-Signature et X-IziPay-Timestamp.
Vérifiez toujours la signature avant de traiter.
Payment Intents
payment_intent.completed
Déclenché quand un payment intent atteint le montant attendu, dans la plage acceptée.
{
"event" : "payment_intent.completed" ,
"timestamp" : 1731843299 ,
"data" : {
"intentId" : "pi_3kf8a2" ,
"merchantId" : "mrc_91xz" ,
"merchantReference" : "order_42" ,
"status" : "completed" ,
"amountRequested" : "50000" ,
"currencyRequested" : "XOF" ,
"totalAmountReceived" : "76.42" ,
"assetCode" : "USDT.TRC20" ,
"amountNetMerchant" : "75.66" ,
"source" : "api"
}
}
payment_intent.expired
Déclenché quand le timer s’écoule avant qu’un montant suffisant ne soit reçu.
{
"event" : "payment_intent.expired" ,
"timestamp" : 1731843299 ,
"data" : {
"intentId" : "pi_3kf8a2" ,
"merchantId" : "mrc_91xz" ,
"merchantReference" : "order_42" ,
"status" : "expired" ,
"totalAmountReceived" : "0" ,
"expiresAt" : "2026-05-20T14:00:00Z"
}
}
Payouts
payout.confirmed
Déclenché quand un payout est confirmé on-chain.
{
"event" : "payout.confirmed" ,
"timestamp" : 1731843299 ,
"data" : {
"payoutId" : "po_5d9e2" ,
"merchantId" : "mrc_91xz" ,
"type" : "standard" ,
"assetCode" : "USDT.TRC20" ,
"amount" : "500.00" ,
"destinationAddress" : "TXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ,
"txHash" : "1c7d4f...ab90"
}
}
payout.failed
Déclenché quand un payout échoue après tous les réessais.
{
"event" : "payout.failed" ,
"timestamp" : 1731843299 ,
"data" : {
"payoutId" : "po_5d9e2" ,
"merchantId" : "mrc_91xz" ,
"type" : "standard" ,
"assetCode" : "USDT.TRC20" ,
"amount" : "500.00" ,
"failureReason" : "broadcast_error"
}
}
Settlements
settlement.completed
Déclenché quand le provider confirme la réception de la monnaie locale.
{
"event" : "settlement.completed" ,
"timestamp" : 1731843299 ,
"data" : {
"settlementId" : "stl_8a3b6" ,
"merchantId" : "mrc_91xz" ,
"assetCode" : "USDT.TRC20" ,
"amountCrypto" : "100.00" ,
"amountFiat" : "58610" ,
"currency" : "XOF" ,
"effectiveRate" : "598.00"
}
}
settlement.failed
Déclenché quand le reversement (settlement) a échoué.
{
"event" : "settlement.failed" ,
"timestamp" : 1731843299 ,
"data" : {
"settlementId" : "stl_8a3b6" ,
"merchantId" : "mrc_91xz" ,
"assetCode" : "USDT.TRC20" ,
"amountCrypto" : "100.00" ,
"failureReason" : "settlement_failed"
}
}
Invoices
invoice.paid
Déclenché quand le payment intent rattaché à une facture est complété.
{
"event" : "invoice.paid" ,
"timestamp" : 1731843299 ,
"data" : {
"invoiceId" : "inv_2f6a9" ,
"merchantId" : "mrc_91xz" ,
"intentId" : "pi_3kf8a2" ,
"amount" : "25000" ,
"currency" : "XOF" ,
"clientEmail" : "client@example.com"
}
}
invoice.expired
Déclenché quand l’échéance d’une facture est dépassée sans paiement.
{
"event" : "invoice.expired" ,
"timestamp" : 1731843299 ,
"data" : {
"invoiceId" : "inv_2f6a9" ,
"merchantId" : "mrc_91xz" ,
"amount" : "25000" ,
"currency" : "XOF" ,
"dueDate" : "2026-05-20"
}
}
Récapitulatif
Événement Déclenché quand payment_intent.completedMontant reçu dans la plage acceptée. payment_intent.expiredTimer écoulé sans paiement suffisant. payout.confirmedPayout confirmé on-chain. payout.failedPayout en échec après réessais. settlement.completedProvider a confirmé le transfert fiat. settlement.failedReversement (settlement) échoué. invoice.paidFacture réglée. invoice.expiredÉchéance dépassée sans paiement.
Les payloads ci-dessus sont représentatifs . La liste exacte des champs est fournie par
l’enveloppe réelle au moment de la livraison. Codez défensivement et ne dépendez que des
champs que vous utilisez.
Voir aussi
Guide Webhooks Signature, retry, idempotence côté receveur, debugging.
Codes d'erreur Le catalogue des erreurs API.