Skip to content

Events

Each request contains an event, the payment data, a timestamp and livemode. You choose which events you receive in API and Logs or through the API.

Event When
payment.completed Payment confirmed (SUCCESS status). This is the event to wait for before fulfilling.
payment.failed Payment failed or declined (FAILED status).
payment.cancelled Payment abandoned by the customer (page left, session expired) or cancelled by the merchant (CANCELLED status). Event added on September 19, 2026: webhooks configured before that date only receive it once ticked in API and Logs.
payment.updated Any other status change: REFUNDED, back to PENDING.
transfer.succeeded Outgoing transfer credited to the recipient’s account (data = the transfer, see Send money).
transfer.failed Transfer rejected by the operator or the provider, with data.failure.
POST https://maboutique.com/webhooks/cartflox
{
"event": "payment.completed",
"livemode": true,
"data": {
"id": "cmf3k2p1x0001abcd9e8f7g6h",
"order_id": "CS-MF3K2A-9X1QZ",
"status": "SUCCESS",
"amount": 5000,
"currency": "XOF",
"provider": "PayDunya",
"provider_reference": "pd_7f3a9c",
"customer_name": "Awa Koné",
"customer_email": "awa@example.com",
"customer_phone": "+2250700000000",
"metadata": { "order_id": "1042", "source": "checkout_session" },
"completed_at": "2026-09-02T10:17:42.000Z"
},
"timestamp": "2026-09-02T10:17:42.000Z"
}
Field Description
data.id Session identifier, the same one returned at creation
data.order_id Cartflox reference (CS-...)
data.status SUCCESS, FAILED, PENDING, CANCELLED or REFUNDED
data.provider Gateway that processed the payment
data.provider_reference Reference at the aggregator, useful for reconciliation
data.metadata Your metadata, enriched with the source (checkout_session, payment_link…)
data.completed_at Confirmation date, null until the payment succeeds
livemode true in production, false for a payment made with a test key (test mode)