Skip to main content
PATCH
Update an account

Authorizations

x-api-key
string
header
required

Headers

x-idempotency-key
string<uuid>
required

Unique key (UUID) to ensure request idempotency on POST, PUT and PATCH requests.

A key is scoped to your client, the HTTP method and the path, and is remembered for 24 hours after a successful (below 400) response. Repeating the same request (same JSON body, whatever the key order or whitespace) with the same key within that window returns the original response with X-Idempotent-Replayed: true instead of executing the request again. Using the same key on the same endpoint with a different body returns 422 with problem type idempotency-key-reused; the request is not executed. Error responses (4xx and 5xx) are not remembered, so a request refused for a fixable reason can be corrected and retried under the same key. Request bodies that are not JSON (for example file uploads) are not compared.

Path Parameters

account_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"

Body

application/json

Unified account update request for onramp/offramp/swap.

Only the developer fee (developer_fee_bps or developer_fee_fixed) can be updated on an existing account. Setting one replaces the other. Routing fields (crypto_destination_id, destination_network_id, destination_asset, and fiat_destination_id) are immutable after creation. To change the destination asset, network, or address, create a new account. A new onramp account returns new virtual account (VA) details. Creating a new crypto destination alone does not update an existing account's routing or preserve its VA details for new routing.

capabilities and rail cannot be changed through this request; create a new account to change them.

developer_fee_bps applies to future transactions only; existing transactions are unaffected.

account_type
enum<string>
required

Unified account family for account resources.

Available options:
onramp,
offramp,
swap
Example:

"onramp"

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"

destination_asset
string

Asset to receive at the destination.

Example:

"USDC"

developer_fee_bps
integer<int32>

Developer fee (client revenue share) in basis points. When set, updates the fee applied to FUTURE transactions on this account; existing transactions are unaffected. Setting it replaces an existing developer_fee_fixed. The developer fee is the only updatable field; routing fields remain immutable.

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

50

developer_fee_fixed
string

Fixed developer fee charged on every deposit to this account, in units of the asset deposited (for example 10.00 USDC on a USDC deposit, 10.00 USD on a USD bank deposit, 10.00 EUR on a EUR bank deposit). A decimal string such as "10.00", with at most 2 decimal places. Must be greater than 0. Cannot be combined with developer_fee_bps: send one or the other. Setting it on update replaces an existing developer_fee_bps.

Example:

"10.00"

external_id
string

Your own label for this account in your system, used to look it up with the external_id filter on GET /accounts. Not unique: Dakota does not reject a duplicate, and several accounts can share one value. Omit to leave the current value unchanged; it cannot be cleared.

Maximum string length: 255
Pattern: ^[^\x00-\x1f]*$
Example:

"acct-0042"

Response

Account updated 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"

developer_fee_bps
integer<int32>
required

Developer fee charged on each deposit to this account, in basis points (1 bp = 0.01%). 0 when the account charges no developer fee.

Example:

50

external_id
string

Your own label for this account in your system, used to look it up with the external_id filter on GET /accounts. Not unique: Dakota does not reject a duplicate, and several accounts can share one value. Omitted when none was set.

Example:

"acct-0042"

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 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.

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

"ach"

destination_rail
enum<string>

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.

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

"ach"

developer_fee_fixed
string

Fixed developer fee charged on every deposit to this account, in units of the asset deposited. Absent when the account charges developer_fee_bps instead.

Example:

"10.00"

minimum_deposit
string

Smallest deposit that will be processed, in units of the asset deposited: developer_fee_fixed + 0.01. Smaller deposits are not converted. Returned for fixed-fee accounts only.

Example:

"10.01"