GuidesAPI ReferenceChangelog
API Reference

Create Withdrawal Transaction

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). This represents the payment_method_id for bank transfers. 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)
  • Fiat currencies: USD
string
required
  • Stablecoin networks: ETHEREUM, POLYGON, ARBITRUM, AVALANCHE, BASE, BNBCHAIN, SOLANA, TRON
  • Fiat networks (deposit): US_FEDWIRE, SWIFT
  • Fiat networks (withdrawal): 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.

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.

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
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json