> ## Documentation Index
> Fetch the complete documentation index at: https://getequity.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Withdraw from member wallet

> Debit a member's currency wallet to a bank account

Debits a member's currency wallet (the member is identified by `id` in the path). The request is created as `Pending` and the tokens are moved into escrow; it still needs to be approved before funds are disbursed.

The balance and escrow are the member's, and `owner_model` is `user` (versus `organisation` for the [organisation withdrawal](/docs/api-reference/endpoint/Wallet/withdraw)). The `withdrawal.created` webhook still fires to your organisation.

`disburse_amount` = `amount` − `fee`, where `fee` is the withdrawal fee from your `*_WITHDRAWAL_FEE` config.

<ParamField path="id" type="string" required>
  The member's user ID.
</ParamField>

<RequestExample>
  ```json theme={null}
  {
      "amount": 5000,
      "bank_name": "Access Bank",
      "account_name": "John Doe",
      "account_number": "0690000004",
      "currency": "NGN"
  }
  ```
</RequestExample>

<ParamField body="amount" type="number" required>
  The amount to withdraw. Must be ≥ 1, ≤ the member's currency wallet balance, and ≥ `MINIMUM_WITHDRAWAL_<CUR>`.
</ParamField>

<ParamField body="bank_name" type="string" required>
  Matched against Flutterwave's bank list to resolve the code — pass the full name (e.g. `Guaranty Trust Bank`, not `GTBank`).
</ParamField>

<ParamField body="account_name" type="string" required>
  The account holder's name. For NGN it is replaced with Flutterwave's resolved name when available.
</ParamField>

<ParamField body="account_number" type="string" required>
  The destination account number.
</ParamField>

<ParamField body="currency" type="string" required>
  The withdrawal currency. One of `NGN`, `KES`, `GHS`, `ZAR`, `UGX`, `TZS`.
</ParamField>

<ResponseExample>
  ```json theme={null}
  {
      "status": "success",
      "message": "Withdrawal request created successfully.",
      "data": {
          "withdrawalRequest": {
              "_id": "665f0c2e9a1b2c0012ab77ef",
              "owner": "651bd2a49a1b2c0012cc55dd",
              "owner_model": "user",
              "reference": "GETXN_PAYOUT_K92JD0PLM",
              "amount": 5000,
              "disburse_amount": 4975,
              "fee": 25,
              "currency": "NGN",
              "bank": "665f0c2e9a1b2c0012ab7700",
              "status": "Pending",
              "actioned_on": null,
              "createdAt": "2026-07-04T10:18:10.442Z",
              "updatedAt": "2026-07-04T10:18:10.442Z"
          },
          "bank": {
              "_id": "665f0c2e9a1b2c0012ab7700",
              "name": "Access Bank",
              "code": "044",
              "account_number": "0690000004",
              "account_name": "JOHN DOE",
              "currency": "NGN"
          }
      }
  }
  ```

  ```json Insufficient balance — 400 theme={null}
  {
      "status": "failed",
      "message": "Insufficient NGN balance. Available: 1200, requested: 5000."
  }
  ```
</ResponseExample>

## Errors

| HTTP | Message (example)                                                                                                           | When                                                     |
| ---- | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| 400  | `Insufficient NGN balance. Available: 1200, requested: 5000.`                                                               | Wallet balance \< amount (checked before anything else). |
| 400  | `Cannot withdraw less than 1000 NGN`                                                                                        | Below `MINIMUM_WITHDRAWAL_<CUR>`.                        |
| 400  | `child "Currency" fails because ["Currency" must be one of [NGN, KES, GHS, ZAR, UGX, TZS]]`                                 | Unsupported/invalid currency.                            |
| 400  | `Withdrawals with automatic bank resolution are not supported for USD. Supported currencies: NGN, GHS, KES, ZAR, UGX, TZS.` | Currency has no Flutterwave bank list.                   |
| 404  | `Could not find a bank matching "Acess Bank" for NGN. Please check the bank name and try again.`                            | `bank_name` didn't match Flutterwave's list.             |
| 404  | `User not found`                                                                                                            | Invalid `id`.                                            |
| 502  | `Could not fetch the bank list from our payment provider. Please try again later.`                                          | Flutterwave banks call failed.                           |
