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

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

Available options:
ach_inbound,
wire_inbound,
crypto_inbound,
ach_outbound_returned,
ach_outbound_failed,
wire_outbound_returned,
wire_outbound_failed,
ach_outbound_settled,
ach_outbound_rejected,
wire_outbound_settled,
wire_outbound_rejected,
ach_reversal,
wire_reversal
Example:

"ach_inbound"

account_id
string
required

Platform account ID (required for ach_inbound and wire_inbound types)

Example:

"acc_123"

amount
string
required

Amount as a decimal string

Example:

"100.00"

currency
string
required

Currency code

Example:

"USD"

wallet_id
string

Wallet ID (required for crypto_inbound type)

Example:

"wallet_abc"

movement_id
string

Movement ID (required for outbound types)

Example:

"mov_456"

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