Payouts

Create payout

Debit your merchant NGN wallet and send the amount to a resolved Nigerian bank account. Live keys only.

POSThttps://api.vastel.io/api/v1/payouts

Send 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

  • amount

    number · required

    Payout amount in Naira. Minimum 5000. Whole naira only.

  • bank_id

    string · required

    Vastel bank id from GET /banks.

  • account_number

    string · required

    10-digit NUBAN.

  • account_name

    string · required

    Exact name from /banks/resolve.

  • remark

    string

    Optional narration on the bank transfer.

  • idempotency_key

    string

    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"
  }'