Send to bank
POST
/payment-api/send/bankDebits your wallet for the amount plus the transfer fee and submits the payout to a bank account. The account name is resolved on our side before the transfer is submitted. Transfers settle asynchronously: the final outcome is delivered to your callback URL.
- Only whitelisted IPs may call this endpoint (403 otherwise).
- If the transfer fails after acceptance, the webhook reports status failed and the debit (amount plus fee) is refunded to your wallet.
Parameters
amountdecimalrequiredAmount in GHS, minimum 0.50, up to your account transfer limit.
account_numberstringrequiredRecipient bank account number.
bank_idstringrequiredFrom List banks.
account_namestringoptionalOptional label; the verified name is used for the transfer.
client_referencestringrequiredYour unique reference, 12 to 36 characters.
callback_urlstringoptionalHTTPS URL that receives the webhook when the transfer reaches success or failed.
| Field | Type | Required | Description |
|---|---|---|---|
amount | decimal | required | Amount in GHS, minimum 0.50, up to your account transfer limit. |
account_number | string | required | Recipient bank account number. |
bank_id | string | required | From List banks. |
account_name | string | optional | Optional label; the verified name is used for the transfer. |
client_reference | string | required | Your unique reference, 12 to 36 characters. |
callback_url | string | optional | HTTPS URL that receives the webhook when the transfer reaches success or failed. |
Errors
- 400Insufficient wallet balance
- 400Transaction failed. Refund issued.
- 403Access denied. Your IP address(x.x.x.x) is not whitelisted.
Request
curl -X POST "https://api.bulkclix.com/api/v1/payment-api/send/bank" \ -H "x-api-key: YOUR_API_KEY" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "amount": 500, "account_number": "1021234567890", "bank_id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f", "client_reference": "ORDER-2026-000123", "callback_url": "https://example.com/webhooks/bulkclix" }'
Response · 200
application/json
{ "message": "Sent Successfully", "data": { "client_reference": "ORDER-2026-000123", "transaction_id": "839201746512", "amount": "500.00", "charges": 5, "channel": "bank", "account_number": "1021234567890", "account_name": "AMA MENSAH" } }
Webhook · POST to your callback_url
application/json
{ "amount": "500.00", "charges": "5.00", "status": "success", "transaction_id": "ORDER-2026-000123", "ext_transaction_id": "839201746512" }