Skip to main content
GET
/
withdrawals
/
{id}
JavaScript
import Whop from '@whop/sdk';

const client = new Whop({
  apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted
});

const withdrawal = await client.withdrawals.retrieve('wdrl_xxxxxxxxxxxxx');

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

Authorizations

Authorization
string
header
required

A company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like Bearer ***************************

Path Parameters

id
string
required

The unique identifier of the withdrawal to retrieve.

Example:

"wdrl_xxxxxxxxxxxxx"

Response

A successful response

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

id
string
required

The unique identifier for the withdrawal.

Example:

"wdrl_xxxxxxxxxxxxx"

status
enum<string>
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
amount
number
required

The withdrawal amount as a decimal number in the specified currency (e.g., 100.00 for $100.00 USD).

Example:

6.9

currency
enum<string>
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
fee_amount
number
required

The fee charged for processing this withdrawal, in the same currency as the withdrawal amount.

Example:

6.9

fee_type
enum<string> | 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
speed
enum<string>
required

The processing speed selected for this withdrawal ('standard' or 'instant').

Available options:
standard,
instant
created_at
string<date-time>
required

The datetime the withdrawal was created.

Example:

"2023-12-01T05:00:00.401Z"

markup_fee
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

ledger_account
object
required

The ledger account from which the withdrawal funds are sourced.

payout_token
object
required

The saved payout destination used for this withdrawal (e.g., a bank account or PayPal address). Null if no payout token was used.

error_code
enum<string> | 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,
receiving_account_locked,
rejected_by_compliance,
rtp_not_supported,
non_transaction_account,
source_token_insufficient_funds,
ssn_invalid,
wallet_screenshot_required,
unsupported_region
error_message
string | null
required

A human-readable message describing why the payout failed. Null if no error occurred.

Example:

"Destination bank account is invalid."

estimated_availability
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"

trace_code
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"