Payouts
Create payout
Debit your merchant NGN wallet and send the amount to a resolved Nigerian bank account. Live keys only.
https://api.vastel.io/api/v1/payoutsSend amount in Naira (minimum ₦5,000, whole naira). Amount + fee is locked from your available balance before the transfer is submitted. If the transfer cannot be submitted, the debit is refunded.
Pay any resolved Nigerian account — no merchant/business name ownership check and no security PIN on the API (those apply only to dashboard payouts). account_name must still match the name returned by /banks/resolve. Sandbox keys receive 403.
POST /withdrawals is an alias of this endpoint.
Auth: API keys + HMAC request signature (+ optional IP allowlist). Dashboard PIN / name-match rules do not apply here.
Rate limited to a small number of payouts per minute per merchant.
Responses never include provider bank codes or provider brand names.
Treat every successful response as money already leaving your wallet. Store id / order_id and poll GET /payouts/{id} for the final status.
Body
amountnumber · required
Payout amount in Naira. Minimum 5000. Whole naira only.
bank_idstring · required
Vastel bank id from GET /banks.
account_numberstring · required
10-digit NUBAN.
account_namestring · required
Exact name from /banks/resolve.
remarkstring
Optional narration on the bank transfer.
idempotency_keystring
Optional. Replaying the same key within 24 hours returns the original payout instead of creating another.
curl -s -X POST https://api.vastel.io/api/v1/payouts \
-H "Content-Type: application/json" \
-H "X-Public-Key: vst_pub_xxxxxxxx" \
-H "X-Secret-Key: vst_sec_xxxxxxxx" \
-d '{
"amount": 5000,
"bank_id": "01hxyzabcdefghijklmnopqrstuv",
"account_number": "0123456789",
"account_name": "ADA OBI",
"remark": "Weekly settlement",
"idempotency_key": "settlement-2026-11-05-01"
}'