GuidesAPI ReferenceChangelog
API Reference

Initiate Withdrawal

Create a withdrawal to an external bank account.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Withdrawal Types:

  • Withdraw to Self: Use external_account_id from the External Accounts API
  • Send to Others: Use external_account_id from a Recipient's bank account

The system automatically detects whether the bank account belongs to the customer or a recipient based on the external_account_id.

The asset and network should remain consistent with the account identified by external_account_id. The destination country is taken from that bank account; this request has no country_code field.

Sandbox Simulation

In sandbox environments, you can simulate different withdrawal states by appending a suffix to the Idempotency-Key header:

SuffixSimulated StateDescription
:FAILEDFAILEDTransaction failed
:PENDINGPENDINGTransaction is held for risk review

Example:

  • Normal: Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000
  • Simulate failure: Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000:FAILED
  • Simulate pending: Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000:PENDING

Important: When querying by idempotency_key, you must use the full key including the suffix. For example, if you created a withdrawal with 550e8400-e29b-41d4-a716-446655440000:FAILED, you must query with the same full key. Using only the UUID part will return 404 Not Found.

Note: Simulation suffixes are only available in sandbox environments and will be ignored in production.

Path Params
string
required

Customer ID

Body Params
string | null

Wallet address for a crypto transaction.

For withdrawal requests, this is the external destination wallet and cannot be provided
together with external_account_id. Transaction responses expose the actual on-chain
origin in source.wallet_address and the receiving wallet in
destination.wallet_address.

Examples

  • Wallet Address
    0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d
string | null

External account ID for fiat withdrawals

Required for fiat currency withdrawals (e.g., USD, MXN).
Identifies the external bank account used for the transfer.
Cannot be provided together with wallet_address.

Examples

  • External Account ID
    ffb9e832-8e64-11f0-b308-2eaa4f6974f2
string
required

Amount to withdraw

string
required
  • Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported)
  • Digital assets: BTC, ETH, SOL
  • Fiat currencies: USD, MXN
string
required

Withdrawal network.

Allowed values:

  • Bank: US_ACH, US_FEDWIRE, US_RTP, SWIFT, CUBIX, SPEI, PIX_TRANSFER, LOCAL_BANK_TRANSFER, CHATS, FPS
  • Blockchain: ETHEREUM, POLYGON, ARBITRUM, AVALANCHE, BASE, BNBCHAIN, SOLANA, TRON
string | null

Purpose code for a fiat withdrawal.

Some fiat withdrawals require a purpose code. Select the complete canonical value from the Local Payment Code guide based on the destination country and network. Submit it exactly as documented, including the country and network prefix; do not add, remove, or modify the prefix.

For example, a business-to-business USD SWIFT withdrawal to China requires a code such as cn_swift_cgoddr.

string | null

A string representing the message about the fiat transaction.
Values longer than 256 characters are truncated.

string | null
enum

Withdrawal mode. Set to prefunding to fund the withdrawal from the
main account on behalf of the customer specified in on_behalf_of.

Allowed:
string | null

The customer ID to execute the withdrawal on behalf of.
Required when mode is prefunding. The customer must belong
to the same entity as the API key owner.

string | null
enum

Controls how the fee is applied to the withdrawal amount.

  • SEND_AMOUNT (default): Fee is deducted from the amount. Amount = what leaves the sender.
  • RECEIVE_AMOUNT: Fee is added on top. Amount = what the recipient gets.
Allowed:
Headers
string
required

UUID v4 for idempotent requests. In sandbox, append simulation suffix (e.g., :FAILED, :PENDING) to simulate different states.

Responses

Language
Credentials
Bearer
OneMoney-HMAC-SHA256
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json