GuidesAPI ReferenceChangelog
API Reference

Initiate Withdrawal

Create a withdrawal to an external bank account.

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.

If destination_address_id is an External Account ID, then the asset, network,
and country_code here should remain consistent with the External Account ID.

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.

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

Customer ID

Body Params
string | null

Wallet address for crypto withdrawals

Required for crypto asset withdrawals (e.g., USDC, USDT).
Cannot be provided together with external_account_id.

Examples

  • Wallet Address
    0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d
string | null

External account ID for fiat withdrawals

Required for fiat currency withdrawals (e.g., USD, EUR).
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
  • Fiat currencies: USD
string
required

Withdrawal network.

Allowed values:

  • Crypto: ETHEREUM, POLYGON, ARBITRUM, AVALANCHE, BASE, BNBCHAIN, SOLANA, TRON
  • Fiat: US_ACH, US_FEDWIRE, US_RTP, SWIFT
string | null

The localized payment code used for fiat withdrawals

Format: {country_code}_{network}_{code} (e.g., in_swift_p0001)

  • country_code: ISO 3166-1 alpha-2 code (2 letters, e.g., in for India)

See https://developer.1money.com/reference/local-payment-code for supported codes

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