Skip to main content
POST
/
transactions
/
one-off
Create a one-off transaction
curl --request POST \
  --url https://api.platform.dakota.xyz/transactions/one-off \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --header 'x-idempotency-key: <x-idempotency-key>' \
  --data '
{
  "amount": "1.23",
  "customer_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
  "source_network_id": "ethereum-mainnet",
  "source_asset": "USDC",
  "destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
  "destination_asset": "USD",
  "destination_payment_rail": "ach",
  "payment_reference": "Invoice payment for services"
}
'
{
  "id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
  "customer_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
  "crypto_address": "0x1234567890abcdef1234567890abcdef12345678",
  "status": "pending",
  "source_network_id": "ethereum-mainnet",
  "source_asset": "USDC",
  "destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
  "destination_asset": "USD",
  "created_at": 1234567890,
  "updated_at": 1234567890,
  "send_amount": "1.24",
  "amount": "1.23",
  "failure_reason": "<string>",
  "receipt": {
    "input": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "output": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "exchange_rate": "<string>",
    "imad": "<string>",
    "omad": "<string>",
    "subtotal": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "converted": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "external_fee": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "dakota_fee": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "client_fee": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "gas_fee": {
      "amount": "<string>",
      "asset": "<string>",
      "network": "<string>"
    },
    "payment_reference": "Invoice payment for services"
  },
  "crypto_details": {
    "source_crypto_address": "<string>",
    "source_network_id": "ethereum-mainnet",
    "destination_crypto_address": "<string>",
    "destination_network_id": "ethereum-mainnet",
    "deposit_transaction_hash": "<string>",
    "transaction_hash": "<string>"
  },
  "completed_at": 1234567890,
  "destination_payment_rail": "ach",
  "payment_reference": "<string>",
  "destination_bank_name": "Chase Bank",
  "destination_account_holder_name": "Acme Corporation",
  "destination_account_number_last_four": "6789",
  "destination_routing_number": "021000021",
  "destination_iban": "GB82WEST12345698765432",
  "destination_bic": "BARCGB22XXX"
}

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.

Body

application/json

One-off transaction details

Request to create a one-off offramp transaction

amount
string
required

Amount to transfer as a decimal string

Minimum string length: 1
Example:

"1.23"

customer_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
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

source_network_id
enum<string>
required

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,
avalanche-mainnet,
avalanche-fuji,
polygon-mainnet,
polygon-amoy
Required string length: 1 - 30
Example:

"ethereum-mainnet"

source_asset
string
required

Source crypto asset symbol

Example:

"USDC"

destination_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
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

destination_asset
string
required

Destination fiat currency

Example:

"USD"

destination_payment_rail
enum<string>

Optional preferred payment rail for bank transfers. If not specified, the system will automatically select the most appropriate rail based on the destination's supported methods.

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

"ach"

payment_reference
string

Optional payment reference message for bank transfers. Length limits: ACH (1-10 chars), Wire (1-140 chars), SEPA (6-140 chars), SWIFT (1-140 chars, max 4 lines of 35 chars each)

Required string length: 1 - 140
Example:

"Invoice payment for services"

Response

One-off transaction created successfully

A one-off transaction response

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
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

customer_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
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

crypto_address
string
required

Temporary address where funds should be sent

Example:

"0x1234567890abcdef1234567890abcdef12345678"

status
enum<string>
required

Status of a one-off transaction

Available options:
pending,
processing,
completed,
failed,
cancelled,
reversed,
pending_return,
returned
Example:

"pending"

source_network_id
enum<string>
required

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,
avalanche-mainnet,
avalanche-fuji,
polygon-mainnet,
polygon-amoy
Required string length: 1 - 30
Example:

"ethereum-mainnet"

source_asset
string
required

Source crypto asset symbol

Example:

"USDC"

destination_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
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

destination_asset
string
required

ISO 4217 symbol representing a fiat asset.

Required string length: 3
Example:

"USD"

created_at
integer
required

Unix timestamp when the transaction was created

Example:

1234567890

updated_at
integer
required

Unix timestamp when the transaction was last updated

Example:

1234567890

send_amount
string

Amount that should be sent (may be higher than requested amount due to fees)

Example:

"1.24"

amount
string

Original requested amount

Example:

"1.23"

failure_reason
string

Reason for failure if status is failed

receipt
object

Detailed receipt information for a transaction

crypto_details
object

Blockchain-specific details for crypto transactions

completed_at
integer

Unix timestamp when the transaction was completed

Example:

1234567890

destination_payment_rail
enum<string> | null

The payment rail that was selected for this transaction

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

"ach"

payment_reference
string | null

Payment reference message for bank transfers (e.g. wire message, SWIFT or SEPA reference)

destination_bank_name
string

Name of the destination bank

Example:

"Chase Bank"

destination_account_holder_name
string

Name of the account holder at the destination bank

Example:

"Acme Corporation"

destination_account_number_last_four
string

Last four digits of the destination account number

Example:

"6789"

destination_routing_number
string

ABA routing number for US bank accounts

Example:

"021000021"

destination_iban
string

IBAN for international bank accounts

Example:

"GB82WEST12345698765432"

destination_bic
string

BIC/SWIFT code for international transfers

Example:

"BARCGB22XXX"