curl -X POST https://api.handle.ng/v1/charges/dispatch \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"reference": "ORD-1092",
"bankId": "bnk_gtb_01",
"authChannel": "handle_push",
"description": "Nike Air Max at SneakerHub"
}'
{
"status": "success",
"message": "Authorization prompt dispatched to customer's phone",
"data": {
"reference": "ORD-1092",
"status": "PENDING_AUTHORIZATION",
"authChannel": "handle_push",
"expiresAt": "2026-09-21T08:30:00Z"
}
}
Charges
Dispatch Authorization
Trigger in-app biometric push notification or generate a dynamic QR code
POST
/
v1
/
charges
/
dispatch
curl -X POST https://api.handle.ng/v1/charges/dispatch \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"reference": "ORD-1092",
"bankId": "bnk_gtb_01",
"authChannel": "handle_push",
"description": "Nike Air Max at SneakerHub"
}'
{
"status": "success",
"message": "Authorization prompt dispatched to customer's phone",
"data": {
"reference": "ORD-1092",
"status": "PENDING_AUTHORIZATION",
"authChannel": "handle_push",
"expiresAt": "2026-09-21T08:30:00Z"
}
}
Request Body
string
required
The unique merchant-generated transaction reference.
string
required
The
bankId selected by the customer from linkedBanks.string
required
handle_push or handle_qr.string
Order description displayed on customer’s authorization screen.
object
Custom key-value pairs for internal order tracking.
Response
string
Returns
success.object
curl -X POST https://api.handle.ng/v1/charges/dispatch \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"reference": "ORD-1092",
"bankId": "bnk_gtb_01",
"authChannel": "handle_push",
"description": "Nike Air Max at SneakerHub"
}'
{
"status": "success",
"message": "Authorization prompt dispatched to customer's phone",
"data": {
"reference": "ORD-1092",
"status": "PENDING_AUTHORIZATION",
"authChannel": "handle_push",
"expiresAt": "2026-09-21T08:30:00Z"
}
}