DevelopersVirtual AccountCheck Payment Status
Check Payment Status
Use this endpoint to query the status of a payment made to a virtual account.
๐ก
Do not use this endpoint as your primary notification mechanism. Rely on your webhook callback first, and use status polling only as a fallback with exponential backoff.
Endpoint
GET/virtual/status?reference=<external_reference>
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| reference | Yes | The external_reference you provided when creating the virtual account. |
Sample Request
Request
GET /virtual/status?reference=INV-2026-0001
secretKey: sk_staging_xxxxxxxxxxxxxxxxxxxxSuccess Response
HTTP 200 OK โ Payment confirmed.
Response
{
"status": "success",
"data": {
"status": "success",
"session_id": "090405261234567890",
"reference": "INV-2026-0001",
"amount": 5000,
"date": "2026-03-06 14:23:11"
}
}Error Responses
| HTTP Status | Code | Error | Resolution |
|---|---|---|---|
| 404 | โ | Not Found | No transaction found for this reference. |
| 409 | โ | Conflict | The transaction exists but is still pending. Retry after a delay. |
Polling Best Practices
Recommended exponential backoff strategy:
1st2sImmediate retry after callback timeout
2nd4sDouble the wait
3rd8sDouble again
4th+30s+Cap and alert your team