Create a one-off transfer
Create a one-off transfer. Supports both offramp (destination is a bank account, fiat_us or fiat_iban) and swap (destination is a crypto address) flows; the destination type selects which.
Documentation Index
Fetch the complete documentation index at: https://docs.dakota.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Headers
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.
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.
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 "insufficient_funds"
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.
transaction_processing, compliance_check, account_validation, provider_call, kyb_submission, kyb_approval, network_call 100"provider_call"
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.
100 <= x <= 599503
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.
500"Provider temporarily unavailable for maintenance."
Sandbox-only. When true, asynchronous simulation flows complete immediately rather than progressing through their normal timed states. Useful for fast end-to-end test runs that do not need to exercise intermediate webhook events. Accepts true/false (also 1/0, yes/no); other values are treated as false.
Effective only on https://api.platform.sandbox.dakota.xyz. Ignored in production.
true
Body
Transaction details.
Request to create a one-off transfer. The transfer type is determined by
the destination type referenced by destination_id:
- Offramp when the destination is a fiat bank account (fiat_us or
fiat_iban).
destination_payment_railis honored;destination_network_idis ignored. - Swap when the destination is a crypto address.
destination_network_idis required and selects the destination chain.
The platform generates a single-use deposit address and finalizes the transfer once the source-asset deposit arrives.
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Identifier for a blockchain network
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 1 - 30"ethereum-mainnet"
Source crypto asset symbol
"USDC"
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Destination asset symbol. For offramps this is a fiat currency (e.g. USD, EUR). For swaps this is the destination stablecoin (e.g. USDC, DKUSD).
"USD"
Transaction type for one-off transaction creation.
one_off "one_off"
Optional expected destination amount as a decimal string. When omitted, the resulting transaction's destination amount is populated from the actual deposit once funds arrive. When provided, must be at least 0.01 and is enforced by sandbox amount caps where applicable.
1^[0-9]+(\.[0-9]+)?$"1.23"
Identifier for a blockchain network
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 1 - 30"ethereum-mainnet"
Optional preferred payment rail for bank transfers (offramp). Ignored when the destination is a crypto address. If not specified, the system will automatically select the most appropriate rail based on the destination's supported methods.
ach, fedwire, swift, us_bank_account "ach"
Optional payment reference message for bank transfers. Length limits: ACH (1-10 chars), Wire (1-140 chars) (6-140 chars), SWIFT (1-140 chars, max 4 lines of 35 chars each)
1 - 140"Invoice payment for services"
Developer fee in basis points (1 bp = 0.01%). Overrides the default client fee for this transaction.
0 <= x <= 1000050
Response
One-off transaction created successfully
A one-off transaction response. Used for single-use offramp (crypto-to-fiat) and swap (crypto-to-crypto) transfers; the destination type determines which.
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Discriminator field. Always "one_off" for one-off transactions.
one_off, wallet, auto_account "one_off"
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Temporary address where funds should be sent
"0x1234567890abcdef1234567890abcdef12345678"
Status of a one-off transaction
pending, processing, completed, failed, cancelled, reversed, pending_return, returned, pending_reversal "pending"
Identifier for a blockchain network
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 1 - 30"ethereum-mainnet"
Source crypto asset symbol
"USDC"
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
ISO 4217 symbol representing a fiat asset.
3^[A-Z]{3}$"USD"
Unix timestamp when the transaction was created
1234567890
Unix timestamp when the transaction was last updated
1234567890
Amount that should be sent (may be higher than requested amount due to fees)
"1.24"
Original requested amount
"1.23"
Reason for failure if status is failed
Detailed receipt information for a transaction
Blockchain-specific details for crypto transactions
Originating sender details for onramp/offramp/swap transactions. Populated when source-side metadata is available (e.g., from inbound wire/ACH source data).
Unix timestamp when the transaction was completed
1234567890
The payment rail that was selected for this transaction
ach, fedwire, swift, us_bank_account "ach"
Payment reference message for bank transfers (e.g. wire message, SWIFT reference)
Name of the destination bank
"Chase Bank"
Name of the account holder at the destination bank
"Acme Corporation"
Last four digits of the destination account number
"6789"
ABA routing number for US bank accounts
"021000021"
IBAN for international bank accounts
"GB82WEST12345698765432"
BIC/SWIFT code for international transfers
"BARCGB22XXX"
NACHA/Fedwire return code (e.g., R01) when the transaction was returned by the receiving bank.
"R01"
Human-readable return reason provided by the receiving bank.
"Insufficient Funds"
Unix timestamp when the return was initiated.
1234567890
Unix timestamp deadline for return processing.
1234567890
Lead Bank ACH reversal reason when the originator reverses the transaction (e.g., duplicate, receiver_incorrect).
"duplicate"
Unix timestamp when the reversal was initiated.
1234567890
Display name of the customer associated with this transaction.
"Acme Corp"

