Skip to main content
POST
/
payout
/
onramp
/
deposit-accounts
cURL
curl -X POST https://api.relayer.fi/v1/payout/onramp/deposit-accounts \
  -H "Authorization: ApiKey $RELAYER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "currency":      "mxn",
    "country":       "MX",
    "stablecoin":    "usdc",
    "chain":         "base",
    "destinationAddress": "0xYourWallet..."
  }'
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "reference": "ONR-20260505-0001",
  "integrator_id": "7f1c5fc8-2a45-4cb0-9d3a-9b9c5b9a9b9c",
  "wallet_id": "6f1c5fc8-2a45-4cb0-9d3a-9b9c5b9a9b9c",
  "source_currency": "usd",
  "bridge_virtual_account_id": "va_01h5x...",
  "destination_payment_rail": "base",
  "destination_currency": "usdc",
  "destination_address": "0xAbC...123",
  "source_deposit_instructions": {},
  "status": "active",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.relayer.fi/llms.txt

Use this file to discover all available pages before exploring further.

Body

application/json
wallet_id
string
required

Wallet identifier. Accepts either the local UUID v4 (signing.wallets.id) OR the Turnkey wallet id (e.g. "wallet-abc123def456"). The on-ramp service resolves both forms via the wallet repository.

Example:

"wallet-abc123def456"

source_currency
enum<string>
required

Source fiat currency the depositor will send

Available options:
usd,
eur,
mxn,
brl,
gbp
Example:

"usd"

destination_currency
enum<string>
default:usdc

Destination stablecoin to receive in the wallet. Defaults to "usdc" if omitted (Phase 10 contract). Allowed: usdc, usdt — the rest of the Bridge stablecoin set is deferred until liquidity / icon coverage justifies it.

Available options:
usdc,
usdt
Example:

"usdc"

chain
enum<string>

Target chain for on-ramp destination. When supplied, the deposit account is scoped to this network. Omit to use the wallet's default (back-compat with pre-Phase-39 callers).

Available options:
base,
polygon,
avalanche_c_chain,
optimism,
arbitrum,
ethereum,
solana
Example:

"avalanche_c_chain"

Response

Deposit account created (or already existed for this integrator/wallet/currency)

id
string
required

Deposit account UUID (payout.deposit_accounts.id)

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

reference
string
required

Friendly URL-safe reference (ONR-YYYYMMDD-XXXX). Backs /orders/ lookups via OrdersService.parseOrderId. Populated since migration 0053.

Example:

"ONR-20260505-0001"

integrator_id
string
required

Owning integrator UUID (always equals the authenticated caller)

Example:

"7f1c5fc8-2a45-4cb0-9d3a-9b9c5b9a9b9c"

wallet_id
string
required

Destination wallet UUID (signing.wallets.id)

Example:

"6f1c5fc8-2a45-4cb0-9d3a-9b9c5b9a9b9c"

source_currency
enum<string>
required

Source fiat currency the depositor will send

Available options:
usd,
eur,
mxn,
brl,
gbp
Example:

"usd"

bridge_virtual_account_id
string
required

Bridge Virtual Account id — used by webhooks to route lifecycle events

Example:

"va_01h5x..."

destination_payment_rail
string
required

Crypto rail the funds settle on (e.g. base, solana)

Example:

"base"

destination_currency
string
required

Crypto destination currency (e.g. usdc)

Example:

"usdc"

destination_address
string
required

On-chain destination address (the wallet account address)

Example:

"0xAbC...123"

source_deposit_instructions
object
required

Bank rails / routing / clabe / iban — varies per source_currency. Raw Bridge source_deposit_instructions payload. May be null if Bridge has not yet returned instructions.

status
enum<string>
required

Lifecycle status. active = ready to receive deposits.

Available options:
active,
deactivated
Example:

"active"

created_at
string<date-time>
required
updated_at
string<date-time> | null
required