Verify Payment
Verify the status and details of a payment transaction using its unique reference. This endpoint should be called after payment completion to confirm the transaction status.Endpoint
GET/transaction/verify/{reference}
Path Parameters
The unique transaction reference returned when the payment was initialized
Headers
| Name | Type | Required | Description |
|---|---|---|---|
Authorization | string | Required | Bearer token with your secret API key |
Content-Type | string | Required | Must be application/json |
Example Request
Response
Request status indicator -
"success" or "error"Human-readable message describing the result
Transaction verification data
Example Response
Transaction Status Guide
Understanding transaction statuses is crucial for proper payment handling:success
success
Payment Completed SuccessfullyThe payment has been processed and funds have been collected. You can proceed with order fulfillment.
paid_attimestamp will be populatedauthorizationobject will contain card details (for card payments)- Funds will be settled to your account based on your settlement schedule
failed
failed
Payment FailedThe payment attempt was unsuccessful. Common reasons include:
- Insufficient funds
- Invalid card details
- Bank decline
- Network timeout
-
paid_atwill be null -
authorizationwill be null -
Check
gateway_responsefor specific failure reason
pending
pending
Payment ProcessingThe payment is still being processed. This is common with:
- Bank transfers
- USSD payments
- Some mobile money transactions
- Keep checking status periodically
- You’ll receive a webhook when status changes
abandoned
abandoned
Payment Started but Not CompletedCustomer initiated payment but didn’t complete it:
- Closed browser before entering details
- Session timeout
- Customer changed mind
- No funds were collected
- Payment can potentially still be completed if session is still valid
cancelled
cancelled
Payment CancelledPayment was explicitly cancelled by customer or system:
- Customer clicked cancel
- Multiple failed attempts triggered cancellation
- System timeout
- Payment cannot be completed
- Customer needs to initiate a new payment
Best Practices
Always Verify
Verify every transaction on your backend before order fulfillment, even after webhook notifications
Handle All Status
Implement logic for all possible transaction statuses in your application
Store Authorization
Save authorization codes for successful card payments to enable future recurring charges
Monitor Logs
Use transaction logs to debug payment issues and improve user experience
Common Integration Patterns
- E-commerce Checkout
- Subscription Service
- Webhook Handler
