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

# Withdrawal

> A withdrawal represents a request to transfer funds from a ledger account to an external payout method.

<ResponseExample>
  ```json Example theme={null}
  {
  	"amount": 6.9,
  	"created_at": "2023-12-01T05:00:00.401Z",
  	"currency": "usd",
  	"error_code": "account_closed",
  	"error_message": "Destination bank account is invalid.",
  	"estimated_availability": "2023-12-01T05:00:00.401Z",
  	"fee_amount": 6.9,
  	"fee_type": "exclusive",
  	"id": "wdrl_xxxxxxxxxxxxx",
  	"ledger_account": {
  		"company_id": "<string>",
  		"id": "ldgr_xxxxxxxxxxxxx"
  	},
  	"markup_fee": 6.9,
  	"payout_token": {
  		"created_at": "2023-12-01T05:00:00.401Z",
  		"destination_currency_code": "USD",
  		"id": "potk_xxxxxxxxxxxxx",
  		"nickname": "My Business Account",
  		"payer_name": "Acme Corp LLC"
  	},
  	"speed": "standard",
  	"status": "requested",
  	"trace_code": "021000021234567"
  }
  ```
</ResponseExample>

<ResponseField name="amount" type="number" required>
  The withdrawal amount as a decimal number in the specified currency (e.g., 100.00 for \$100.00 USD).

  Example: `6.9`
</ResponseField>

<ResponseField name="created_at" type="string<date-time>" required>
  The datetime the withdrawal was created.

  Example: `2023-12-01T05:00:00.401Z`
</ResponseField>

<ResponseField name="currency" type="Currencies" required>
  The three-letter ISO currency code for this withdrawal (e.g., 'usd', 'eur').

  Available options: `usd`, `sgd`, `inr`, `aud`, `brl`, `cad`, `dkk`, `eur`, `nok`, `gbp`, `sek`, `chf`, `hkd`, `huf`, `jpy`, `mxn`, `myr`, `pln`, `czk`, `nzd`, `aed`, `eth`, `ape`, `cop`, `ron`, `thb`, `bgn`, `idr`, `dop`, `php`, `try`, `krw`, `twd`, `vnd`, `pkr`, `clp`, `uyu`, `ars`, `zar`, `dzd`, `tnd`, `mad`, `kes`, `kwd`, `jod`, `all`, `xcd`, `amd`, `bsd`, `bhd`, `bob`, `bam`, `khr`, `crc`, `xof`, `egp`, `etb`, `gmd`, `ghs`, `gtq`, `gyd`, `ils`, `jmd`, `mop`, `mga`, `mur`, `mdl`, `mnt`, `nad`, `ngn`, `mkd`, `omr`, `pyg`, `pen`, `qar`, `rwf`, `sar`, `rsd`, `lkr`, `tzs`, `ttd`, `uzs`, `rub`, `btc`, `cny`, `usdt`, `kzt`, `awg`, `whop_usd`, `xau`
</ResponseField>

<ResponseField name="error_code" type="PayoutErrorCodes | null" required>
  A machine-readable error code describing why the payout failed. Null if no error occurred.

  Available options: `account_closed`, `account_does_not_exist`, `account_information_invalid`, `account_number_invalid_region`, `account_frozen`, `account_lookup_failed`, `account_not_found`, `amount_out_of_bounds`, `attributes_not_validated`, `b2b_payments_prohibited`, `bank_statement_required`, `compliance_review`, `currency_not_supported`, `deposit_canceled`, `deposit_failed`, `deposit_rejected`, `destination_unavailable`, `exceeded_account_limit`, `expired_quote`, `generic_payout_error`, `technical_problem`, `identification_number_invalid`, `invalid_account_number`, `invalid_bank_code`, `invalid_beneficiary`, `invalid_mailing_address`, `invalid_branch_number`, `invalid_branch_code`, `invalid_phone_number`, `invalid_routing_number`, `invalid_swift_code`, `invalid_company_details`, `manual_cancelation`, `misc_error`, `missing_city_and_country`, `missing_phone_number`, `missing_remittance_info`, `payee_name_invalid`, `beneficiary_name_mismatch`, `receiving_account_locked`, `rejected_by_compliance`, `rtp_not_supported`, `non_transaction_account`, `source_token_insufficient_funds`, `ssn_invalid`, `wallet_screenshot_required`, `unsupported_region`, `payout_provider_timeout`
</ResponseField>

<ResponseField name="error_message" type="string | null" required>
  A human-readable message describing why the payout failed. Null if no error occurred.

  Example: `Destination bank account is invalid.`
</ResponseField>

<ResponseField name="estimated_availability" type="string<date-time> | null" required>
  The estimated time at which the funds become available in the destination account. Null if no estimate is available. As a Unix timestamp.

  Example: `2023-12-01T05:00:00.401Z`
</ResponseField>

<ResponseField name="fee_amount" type="number" required>
  The fee charged for processing this withdrawal, in the same currency as the withdrawal amount.

  Example: `6.9`
</ResponseField>

<ResponseField name="fee_type" type="WithdrawalFeeTypes | null" required>
  How the fee was applied to the withdrawal. 'exclusive' means the fee was added on top (user receives the full requested amount). 'inclusive' means the fee was deducted from the withdrawal (user receives less than requested). Null if no fee was charged.

  Available options: `exclusive`, `inclusive`
</ResponseField>

<ResponseField name="id" type="string" required>
  The unique identifier for the withdrawal.

  Example: `wdrl_xxxxxxxxxxxxx`
</ResponseField>

<ResponseField name="ledger_account" type="object" required>
  The ledger account from which the withdrawal funds are sourced.

  <Expandable title="child attributes">
    <ResponseField name="company_id" type="string | null" required />

    <ResponseField name="id" type="string" required>
      The unique identifier for the ledger account.

      Example: `ldgr_xxxxxxxxxxxxx`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="markup_fee" type="number" required>
  An additional markup fee charged for the withdrawal, in the same currency as the withdrawal amount. Only applies to platform accounts using Whop Rails.

  Example: `6.9`
</ResponseField>

<ResponseField name="payout_token" type="object | null" required>
  The saved payout destination used for this withdrawal (e.g., a bank account or PayPal address). Null if no payout token was used.

  <Expandable title="child attributes">
    <ResponseField name="created_at" type="string<date-time>" required>
      The datetime the payout token was created.

      Example: `2023-12-01T05:00:00.401Z`
    </ResponseField>

    <ResponseField name="destination_currency_code" type="string" required>
      The three-letter ISO currency code that payouts are delivered in for this destination.

      Example: `USD`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      The unique identifier for the payout token.

      Example: `potk_xxxxxxxxxxxxx`
    </ResponseField>

    <ResponseField name="nickname" type="string | null" required>
      A user-defined label to help identify this payout destination. Not sent to the provider. Null if no nickname has been set.

      Example: `My Business Account`
    </ResponseField>

    <ResponseField name="payer_name" type="string | null" required>
      The legal name of the account holder receiving payouts. Null if not provided.

      Example: `Acme Corp LLC`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="speed" type="WithdrawalSpeeds" required>
  The processing speed selected for this withdrawal ('standard' or 'instant').

  Available options: `standard`, `instant`
</ResponseField>

<ResponseField name="status" type="WithdrawalStatus" required>
  The computed lifecycle status of the withdrawal, accounting for the state of associated payouts (e.g., 'requested', 'in\_transit', 'completed', 'failed').

  Available options: `requested`, `awaiting_payment`, `in_transit`, `completed`, `failed`, `canceled`, `denied`
</ResponseField>

<ResponseField name="trace_code" type="string | null" required>
  The ACH trace number for tracking the payout through the banking network. Null if not available or not an ACH transaction.

  Example: `021000021234567`
</ResponseField>
