curl --request PATCH \
--url https://api.platform.dakota.xyz/accounts/{account_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"account_type": "onramp",
"crypto_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"fiat_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_network_id": "ethereum-mainnet",
"destination_asset": "USDC"
}
'const options = {
method: 'PATCH',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account_type: 'onramp',
crypto_destination_id: '1NFHrqBHb3cTfLVkFSGmHZqdDPi',
fiat_destination_id: '1NFHrqBHb3cTfLVkFSGmHZqdDPi',
destination_network_id: 'ethereum-mainnet',
destination_asset: 'USDC'
})
};
fetch('https://api.platform.dakota.xyz/accounts/{account_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/accounts/{account_id}"
payload = {
"account_type": "onramp",
"crypto_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"fiat_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_network_id": "ethereum-mainnet",
"destination_asset": "USDC"
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/accounts/{account_id}"
payload := strings.NewReader("{\n \"account_type\": \"onramp\",\n \"crypto_destination_id\": \"1NFHrqBHb3cTfLVkFSGmHZqdDPi\",\n \"fiat_destination_id\": \"1NFHrqBHb3cTfLVkFSGmHZqdDPi\",\n \"destination_network_id\": \"ethereum-mainnet\",\n \"destination_asset\": \"USDC\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"account_type": "onramp",
"bank_account": {
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"capabilities": [
"ach",
"fedwire"
],
"aba_routing_number": "123456789",
"aba_wire_routing_number": "123456789",
"account_number": "123456789",
"account_type": "checking",
"bic": "DEUTDEFFXXX",
"iban": "DE89370400440532013000",
"account_holder_name": "John Doe",
"account_holder_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"account_holder_phone": "1234567890",
"bank_name": "Bank of America",
"bank_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"bank_phone": "+12345678900"
},
"destination": {
"destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_type": "crypto",
"name": "My Ethereum Wallet",
"crypto_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"family": "evm",
"network_id": "ethereum-mainnet"
},
"source_crypto_address": "0x1234",
"source_family": "evm",
"source_network_id": "ethereum-mainnet",
"source_asset": "USDC",
"destination_asset": "USDC",
"rail": "ach",
"destination_rail": "ach"
}Update an account
Partially update an onramp, offramp, or swap account.
Only the account’s destination routing may be changed. For onramp
accounts these are crypto_destination_id, destination_network_id,
and destination_asset; for offramp accounts it is
fiat_destination_id.
An account’s capabilities and rail are fixed when the account is
created and cannot be changed through this endpoint. To use a
different capability or rail, create a new account.
curl --request PATCH \
--url https://api.platform.dakota.xyz/accounts/{account_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"account_type": "onramp",
"crypto_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"fiat_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_network_id": "ethereum-mainnet",
"destination_asset": "USDC"
}
'const options = {
method: 'PATCH',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account_type: 'onramp',
crypto_destination_id: '1NFHrqBHb3cTfLVkFSGmHZqdDPi',
fiat_destination_id: '1NFHrqBHb3cTfLVkFSGmHZqdDPi',
destination_network_id: 'ethereum-mainnet',
destination_asset: 'USDC'
})
};
fetch('https://api.platform.dakota.xyz/accounts/{account_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/accounts/{account_id}"
payload = {
"account_type": "onramp",
"crypto_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"fiat_destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_network_id": "ethereum-mainnet",
"destination_asset": "USDC"
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/accounts/{account_id}"
payload := strings.NewReader("{\n \"account_type\": \"onramp\",\n \"crypto_destination_id\": \"1NFHrqBHb3cTfLVkFSGmHZqdDPi\",\n \"fiat_destination_id\": \"1NFHrqBHb3cTfLVkFSGmHZqdDPi\",\n \"destination_network_id\": \"ethereum-mainnet\",\n \"destination_asset\": \"USDC\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"account_type": "onramp",
"bank_account": {
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"capabilities": [
"ach",
"fedwire"
],
"aba_routing_number": "123456789",
"aba_wire_routing_number": "123456789",
"account_number": "123456789",
"account_type": "checking",
"bic": "DEUTDEFFXXX",
"iban": "DE89370400440532013000",
"account_holder_name": "John Doe",
"account_holder_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"account_holder_phone": "1234567890",
"bank_name": "Bank of America",
"bank_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"bank_phone": "+12345678900"
},
"destination": {
"destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_type": "crypto",
"name": "My Ethereum Wallet",
"crypto_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"family": "evm",
"network_id": "ethereum-mainnet"
},
"source_crypto_address": "0x1234",
"source_family": "evm",
"source_network_id": "ethereum-mainnet",
"source_asset": "USDC",
"destination_asset": "USDC",
"rail": "ach",
"destination_rail": "ach"
}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.
Path Parameters
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"
Body
Unified account update request for onramp/offramp/swap.
Only destination routing fields are updatable: crypto_destination_id,
destination_network_id, and destination_asset for onramp accounts,
and fiat_destination_id for offramp accounts. capabilities and
rail are immutable after account creation and cannot be updated
through this request; create a new account to change them.
developer_fee_bps is also updatable and applies to future
transactions only; existing transactions are unaffected.
Unified account family for account resources.
onramp, offramp, swap "onramp"
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"
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"
Asset to receive at the destination.
"USDC"
Developer fee (client revenue share) in basis points. When set, updates the fee applied to FUTURE transactions on this account; existing transactions are unaffected. Routing fields remain immutable.
0 <= x <= 1000050
Response
Account updated successfully.
Unified account response for onramp/offramp/swap.
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"
Unified account family for account resources.
onramp, offramp, swap "onramp"
Unified schema for bank accounts.
Show child attributes
Show child attributes
Response for a crypto destination.
- Crypto Destination Response
- Crypto Destination Response
- Crypto Destination Response
- US Fiat Destination Response
- IBAN Fiat Destination Response
Show child attributes
Show child attributes
Source crypto address for offramp/swap accounts.
"0x1234"
Blockchain family for the crypto account.
evm, solana "evm"
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"
Asset sent into the account.
"USDC"
Asset received at the destination.
"USDC"
Type of payment rail capability supported. For onramp accounts, us_bank_account indicates the account accepts ACH, Wire (Fedwire), and FedNow deposits interchangeably. fednow is the FedNow instant US-domestic USD rail for payouts and deposits — $500k per-transaction cap on payouts; a payout destination whose bank cannot receive FedNow is rejected at account creation with problem type https://docs.dakota.xyz/api-reference/errors#fednow-destination-unreachable — route that destination over ach instead. swift is the international USD wire rail: gated on the customer's international_wire capability, USD only, payouts target fiat_iban destinations, and deposit instructions carry the BIC and the beneficiary address. Intermediary banks may deduct fees en route, so the amount received can be lower than the amount sent. sepa is not currently offered.
ach, fedwire, swift, us_bank_account, fednow "ach"
Type of payment rail capability supported. For onramp accounts, us_bank_account indicates the account accepts ACH, Wire (Fedwire), and FedNow deposits interchangeably. fednow is the FedNow instant US-domestic USD rail for payouts and deposits — $500k per-transaction cap on payouts; a payout destination whose bank cannot receive FedNow is rejected at account creation with problem type https://docs.dakota.xyz/api-reference/errors#fednow-destination-unreachable — route that destination over ach instead. swift is the international USD wire rail: gated on the customer's international_wire capability, USD only, payouts target fiat_iban destinations, and deposit instructions carry the BIC and the beneficiary address. Intermediary banks may deduct fees en route, so the amount received can be lower than the amount sent. sepa is not currently offered.
ach, fedwire, swift, us_bank_account, fednow "ach"
Was this page helpful?

