Status values
| Status | Meaning | Terminal? |
|---|---|---|
pending | Awaiting customer action | No |
processing | Confirmed by customer; awaiting provider settlement | No |
succeeded | Funds in your wallet | Yes |
failed | Provider declined or customer cancelled | Yes |
refunded | A refund settled. See the refund object on the payment. | Yes |
GET a single payment
GET /api/v1/gateway/payments/pay_01HZ...
Authorization: Bearer qpay_test_xxx
→ 200
{
"data": {
"id": "pay_01HZ...",
"status": "succeeded",
"amount": 1500,
"currency": "XAF",
"reference": "order_12345",
"succeeded_at": "2026-05-11T13:24:09Z",
...
}
}List recent payments
GET /api/v1/gateway/merchant/payments returns a paginated list, newest first. Filter by status, reference, or a from / to date range.
Polling vs. webhooks
Polling is safe but wasteful — webhooks are the recommended pattern. Use polling only for status-check screens the customer triggers manually.