Skip to main content
POST
/
wallet-withdraw
curl --request POST \ --url https://aarwcjjzhlmkgdwrisyt.supabase.co/functions/v1/wallet-withdraw \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data ' { "amount": 50000 } '
{
  "success": true,
  "status": 201,
  "data": {
    "transaction_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "amount": 50000,
    "currency": "NGN",
    "status": "pending",
    "payout_account": {
      "bank_name": "Access Bank",
      "account_number": "******6789",
      "account_name": "Ade Johnson"
    }
  }
}

Authorizations

Authorization
string
header
required

JWT access token obtained from /auth-verify (login context) or /auth-signup. Set the bearer_token environment variable in your API client to apply it globally.

Body

application/json
amount
number<double>
required

Amount to withdraw in NGN. Must be positive and not exceed available balance.

Example:

50000

payout_account_id
string<uuid>

ID of a saved payout account to use. Omit to use the default account.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

one_time_payout
object

One-time bank details — use when the user wants to withdraw to an account not yet saved. Takes precedence over payout_account_id and the default account.

Response

Withdrawal initiated — transfer is pending Paystack confirmation

success
boolean
Example:

true

status
integer
Example:

201

data
object