Skip to main content
POST
/
sandbox
/
simulate
/
inbound
Simulate an inbound payment event
curl --request POST \
  --url https://api.platform.dakota.xyz/sandbox/simulate/inbound \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --header 'x-idempotency-key: <x-idempotency-key>' \
  --data '
{
  "simulation_id": "sim_qa_run_001",
  "type": "ach_inbound",
  "account_id": "acc_123",
  "amount": "100.00",
  "currency": "USD",
  "scenario": "success_immediate"
}
'
{
  "simulation_id": "sim_qa_run_001",
  "state": "accepted",
  "trace_id": "trace_abc123"
}

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

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
simulation_id
string
required

Unique ID for this simulation (used for idempotency)

Required string length: 1 - 128
Example:

"sim_01H..."

type
enum<string>
required

Payment rail and direction. Use the fedwire_* values for Fedwire flows; the wire_* values are accepted as legacy aliases for backwards compatibility and may be removed in a future major version.

Available options:
ach_inbound,
fedwire_inbound,
wire_inbound,
crypto_inbound,
ach_outbound_returned,
ach_outbound_failed,
fedwire_outbound_returned,
wire_outbound_returned,
fedwire_outbound_failed,
wire_outbound_failed,
ach_outbound_settled,
ach_outbound_rejected,
fedwire_outbound_settled,
wire_outbound_settled,
fedwire_outbound_rejected,
wire_outbound_rejected,
ach_reversal,
fedwire_reversal,
wire_reversal
Example:

"ach_inbound"

amount
string
required

Amount as a decimal string

Example:

"100.00"

currency
string
required

Currency code

Example:

"USD"

account_id
string

Platform account ID of the target onramp/offramp auto account. Required for ach_inbound and fedwire_inbound. Ignored for other type values.

Example:

"acc_123"

wallet_address
string

The on-chain wallet address returned by POST /wallets (see the address field in the response). Required for crypto_inbound. Ignored for other types.

Example:

"0x165cd37b4c644c2921454429e7f9358d18a45e14"

wallet_id
string
deprecated

Legacy alias for wallet_address. Prefer wallet_address — this field is accepted for backwards compatibility and may be removed in a future major version.

Example:

"0x165cd37b4c644c2921454429e7f9358d18a45e14"

one_off_transaction_id
string

The one-off transaction ID returned by POST /transactions/one-off (see the id field in the response). Required for outbound types (ach_outbound_*, fedwire_outbound_*, *_reversal). Ignored for inbound types.

Example:

"2NfHrqBHb3cTfLVkFSGmHZqdDQ7"

movement_id
string
deprecated

Legacy alias for one_off_transaction_id. Prefer one_off_transaction_id — this field is accepted for backwards compatibility and may be removed in a future major version.

Example:

"2NfHrqBHb3cTfLVkFSGmHZqdDQ7"

scenario
string

Simulation scenario. Defaults to success_immediate.

  • success_immediate: callbacks fire immediately
  • success_delayed: callbacks fire after delay_seconds (default 30s) For crypto_inbound: success_immediate | wrong_chain | unsupported_token | address_mismatch | partial_crypto | unconfirmed
Example:

"success_immediate"

partial_amount
string

Amount actually received (for crypto_inbound with scenario=partial_crypto only). Must be a valid decimal less than amount.

Example:

"50.00"

delay_seconds
integer

Delay in seconds for success_delayed scenario (1-86400)

Required range: 1 <= x <= 86400
Example:

30

trace_id
string

Optional trace ID for correlation

Response

Simulation accepted

simulation_id
string
state
enum<string>

State of a sandbox simulation after submission.

Available options:
accepted
trace_id
string