v8

OpenAPI 3.1.02026-08-033623795.0 MB
Withdrawals

Create withdrawal

Creates a withdrawal request for a ledger account

Required permissions:

  • payout:withdraw_funds
  • payout:destination:read
post/withdrawals

Request body

amountnumber required

The amount to withdraw in the specified currency

company_idstring required

The ID of the company to withdraw from.

currency'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' required

The available currencies on the platform

idempotency_keystring nullable

A client-generated key that makes retries safe. Retrying with the same key returns the original withdrawal instead of creating a second one.

payout_method_idstring nullable

The ID of the payout method to use for the withdrawal.

platform_covers_feesboolean nullable

Whether the platform covers the payout fees.

speed'standard' | 'instant'

The different speeds of withdrawals

statement_descriptorstring nullable

Custom statement descriptor for the withdrawal. Must be between 5 and 22 characters and contain only alphanumeric characters.

Example request

{
  "amount": 6.9,
  "company_id": "biz_xxxxxxxxxxxxxx"
}

Response

A successful response

amountnumber required

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

created_atstring date-time required

The datetime the withdrawal was created.

currency'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' required

The available currencies on the platform

error_code'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' required

The different error codes a payout can be in.

error_messagestring nullable required

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

estimated_availabilitystring date-time nullable required

The estimated time at which the funds become available in the destination account. Null if no estimate is available. As a Unix timestamp.

fee_amountnumber required

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

fee_type'exclusive' | 'inclusive' required

The different fee types for a withdrawal.

idstring required

The unique identifier for the withdrawal.

markup_feenumber 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.

payout_request_idstring nullable required

The id of the payout request (returned by POST /payouts) that this withdrawal settles. Null unless the withdrawal originated from a stablecoin payout.

speed'standard' | 'instant' required

The different speeds of withdrawals

status'requested' | 'awaiting_payment' | 'in_transit' | 'completed' | 'failed' | 'canceled' | 'denied' required

The status of a withdrawal request

trace_codestring nullable required

The ACH trace number for tracking the payout through the banking network. Null if not available or not an ACH transaction.

Example response

{
  "amount": 6.9,
  "created_at": "2023-12-01T05:00:00.401Z",
  "error_message": "Destination bank account is invalid.",
  "estimated_availability": "2023-12-01T05:00:00.401Z",
  "fee_amount": 6.9,
  "id": "wdrl_xxxxxxxxxxxxx",
  "ledger_account": {
    "id": "ldgr_xxxxxxxxxxxxx"
  },
  "markup_fee": 6.9,
  "payout_request_id": "cofr_xxxxxxxxxxxxxx",
  "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"
  },
  "trace_code": "021000021234567"
}