Skip to main content
POST
/
sandbox
/
simulate
/
onboarding
Simulate an onboarding state transition
curl --request POST \
  --url https://api.platform.dakota.xyz/sandbox/simulate/onboarding \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --header 'x-idempotency-key: <x-idempotency-key>' \
  --data '
{
  "type": "kyb_approve",
  "applicant_id": "01HABCDEFG1234567890XYZ",
  "simulation_id": "sim_kyb_approve_001"
}
'
{
  "simulation_id": "sim_kyb_approve_001",
  "applicant_id": "01HABCDEFG1234567890XYZ",
  "previous_state": "pending",
  "new_state": "approved"
}

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
type
enum<string>
required

The onboarding transition to simulate

Available options:
kyb_approve,
kyb_reject,
kyb_info_request,
kyc_approve,
kyc_reject,
kyc_info_request,
applicant_activate,
applicant_suspend
applicant_id
string
required

The onboarding application ID (from POST /applications)

Example:

"01H..."

simulation_id
string
required

Unique ID for this simulation (for idempotency and tracing)

Required string length: 1 - 128
Example:

"sim_03H..."

organization_id
string

Organization ID (for context; optional, used for logging)

Example:

"org_01H..."

reason_code
string

Optional reason code for reject/info_request transitions

Example:

"MISSING_EIN"

info_request_fields
string[]

Fields to request (for *_info_request types only)

Example:
["ssn", "address"]

Response

Onboarding transition applied

simulation_id
string
applicant_id
string
previous_state
string

KYB status before the transition

new_state
string

KYB status after the transition