Skip to main content

Payment Status Update

This event is the primary mechanism for tracking the lifecycle of a transaction. It is triggered every time a payment object transitions from one state to another.

Scope

This webhook is sent for all states, including successful payments (Paid) and unsuccessful ones (Expired, Canceled).

The Payload

The type field will always be PaymentStatusUpdate. The core transaction details are nested within the body object.

Example JSON

{
"webhookID": "b4f79a83-bc8a-433a-b425-6cb94543c1b4",
"clientID": "your-client-id",
"type": "PaymentStatusUpdate",
"body": {
"paymentID": "32cd2d85-4dbe-4e91-a11b-1252ced54b5f",
"merchantID": "a1c77402-bcb6-4671-b71a-0e5660171137",
"merchantName": "Grafana k6 Testing",
"reference": "k6-grpc-1758527096432-8",
"amount": 29,
"status": 2,
"createdAt": "2025-09-22T07:44:56.602476+00:00",
"paidAt": "2025-09-22T07:44:57.0602476Z",
"expiredAt": null,
"canceledAt": null,
"reversedAt": null,
"description": null,
"walletHolderName": "K6 User 8",
"paymentSuccessfulReturnUrl": null
}
}

Status Codes

The body.status integer tells you the current state of the payment.

IDStatusMeaningAction Required
0PENDINGThe payment has been created but not yet actioned by the user.Wait.
1AUTHORIZEDThe payment has been reserved to a wallet but not yet paidWait.
2PAIDSuccess. The funds have been successfully transferred or captured.Release Goods/Services.
3EXPIREDThe payment window (4 days) closed without a successful payment.Mark order as failed/abandoned.
4CANCELEDThe user or the API manually canceled the payment before completion.Mark order as canceled.
5REVERSEDThe payment was successfully paid but later reversed (Refunded).Update ledger / Reopen order.