Skip to main content
POST
Create an account

Authorizations

x-api-key
string
header
required

Headers

x-idempotency-key
string<uuid>
required

Unique key to ensure request idempotency. If the same key is used within a certain time window, the original response will be returned instead of executing the request again.

X-Sandbox-Scenario
enum<string>

Sandbox-only. Applies a preset failure or behavior mode for the request, selecting a coherent combination of error step, status, and message. The full set of scenarios is also exposed dynamically via GET /sandbox/scenarios along with descriptions and per-rail applicability. Effective only on https://api.platform.sandbox.dakota.xyz. Ignored in production.

Available options:
happy_path,
delayed_settlement,
insufficient_funds,
compliance_block,
invalid_account,
provider_maintenance,
network_congestion,
kyb_manual_review,
kyb_rejected,
kyb_expired,
network_timeout,
intermittent_errors,
account_frozen,
document_expired,
invalid_swift
Example:

"insufficient_funds"

X-Sandbox-Error-Step
enum<string>

Sandbox-only. Names the pipeline step at which the injected error fires. Pair with X-Sandbox-Error-Status and (optionally) X-Sandbox-Error-Message to drive a deterministic failure mode at a known point in the request lifecycle. Values longer than 100 characters are ignored. Effective only on https://api.platform.sandbox.dakota.xyz. Ignored in production.

Available options:
transaction_processing,
compliance_check,
account_validation,
provider_call,
kyb_submission,
kyb_approval,
network_call
Maximum string length: 100
Example:

"provider_call"

X-Sandbox-Error-Status
integer

Sandbox-only. Sets the HTTP status code returned when the sandbox injects an error at the configured step (see X-Sandbox-Error-Step). Must be a valid HTTP status code in the range 100-599; values outside that range are ignored. Status codes >= 400 cause the request to short-circuit immediately with a structured error response. Effective only on https://api.platform.sandbox.dakota.xyz. Ignored in production.

Required range: 100 <= x <= 599
Example:

503

X-Sandbox-Error-Message
string

Sandbox-only. Sets the human-readable message field of the injected sandbox error response. Truncated values longer than 500 characters are ignored. Effective only on https://api.platform.sandbox.dakota.xyz. Ignored in production.

Maximum string length: 500
Example:

"Provider temporarily unavailable for maintenance."

Body

application/json

Unified account create request for onramp/offramp/swap.

account_type
enum<string>
required

Unified account family for account resources.

Available options:
onramp,
offramp,
swap
Example:

"onramp"

capabilities
enum<string>[]

List of payment capabilities supported by a rail. Currently, as input, you can only request one in this list. This constraint will be loosened in the future.

Minimum array length: 1

Type of payment rail capability supported. For onramp accounts, us_bank_account indicates the account accepts both ACH and Wire (Fedwire) deposits interchangeably.

Available options:
ach,
fedwire,
swift,
us_bank_account
Example:
rail
enum<string>

Type of payment rail capability supported. For onramp accounts, us_bank_account indicates the account accepts both ACH and Wire (Fedwire) deposits interchangeably.

Available options:
ach,
fedwire,
swift,
us_bank_account
Example:

"ach"

crypto_destination_id
string

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

fiat_destination_id
string

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

destination_network_id
enum<string>

Identifier for a blockchain network

Available options:
ethereum-mainnet,
ethereum-sepolia,
ethereum-goerli,
ethereum-holesky,
solana-mainnet,
solana-devnet,
solana-testnet,
base-mainnet,
base-sepolia,
arbitrum-mainnet,
arbitrum-sepolia,
optimism-mainnet,
optimism-sepolia,
polygon-mainnet,
polygon-amoy
Required string length: 1 - 30
Example:

"ethereum-mainnet"

source_network_id
string

Source network ID or wildcard network for crypto input.

Example:

"ethereum-mainnet"

source_asset
string

Asset to send into the account.

Minimum string length: 1
Example:

"USDC"

destination_asset
string

Asset to receive at the destination.

Minimum string length: 1
Example:

"USDC"

return_address
Crypto Resource Identifier Ā· object

A unique identifier for a specific account on a specific blockchain. When rendered as a string, it has the syntax: :// (e.g., ethereum-mainnet://0x165cd37b4c644c2921454429e7f9358d18a45e14)

return_crypto_address
Crypto Resource Identifier Ā· object

A unique identifier for a specific account on a specific blockchain. When rendered as a string, it has the syntax: :// (e.g., ethereum-mainnet://0x165cd37b4c644c2921454429e7f9358d18a45e14)

developer_fee_bps
integer<int32>

Developer fee in basis points (1 bp = 0.01%).

Required range: 0 <= x <= 10000
Example:

50

Response

Account created successfully.

Unified account response for onramp/offramp/swap.

id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

account_type
enum<string>
required

Unified account family for account resources.

Available options:
onramp,
offramp,
swap
Example:

"onramp"

bank_account
Bank Account Ā· object

Unified schema for bank accounts.

destination
Crypto Destination Response Ā· object

Response for a crypto destination.

source_crypto_address
string

Source crypto address for offramp/swap accounts.

Example:

"0x1234"

source_family
enum<string>

Blockchain family for the crypto account.

Available options:
evm,
solana
Example:

"evm"

source_network_id
enum<string>

Identifier for a blockchain network

Available options:
ethereum-mainnet,
ethereum-sepolia,
ethereum-goerli,
ethereum-holesky,
solana-mainnet,
solana-devnet,
solana-testnet,
base-mainnet,
base-sepolia,
arbitrum-mainnet,
arbitrum-sepolia,
optimism-mainnet,
optimism-sepolia,
polygon-mainnet,
polygon-amoy
Required string length: 1 - 30
Example:

"ethereum-mainnet"

source_asset
string

Asset sent into the account.

Example:

"USDC"

destination_asset
string

Asset received at the destination.

Example:

"USDC"

rail
enum<string>

Type of payment rail capability supported. For onramp accounts, us_bank_account indicates the account accepts both ACH and Wire (Fedwire) deposits interchangeably.

Available options:
ach,
fedwire,
swift,
us_bank_account
Example:

"ach"

destination_rail
enum<string>

Type of payment rail capability supported. For onramp accounts, us_bank_account indicates the account accepts both ACH and Wire (Fedwire) deposits interchangeably.

Available options:
ach,
fedwire,
swift,
us_bank_account
Example:

"ach"