Skip to main content
The decision engine evaluates an investor and wallet against a policy and returns an "allow", "deny", or "review" verdict. Every decision is stored immutably and can be retrieved by its audit_id.
All requests to these endpoints require a valid API key in the Authorization header.

Request a decision

POST /v1/decisions Runs a compliance check by evaluating the investor, wallet, and policy you specify. The engine applies the following rules in order:

Request body

string
required
The ID of the investor to evaluate. Returns 404 if not found.
string
required
The ID of the wallet to evaluate. Returns 404 if not found.
string
required
The ID of the policy to evaluate against. Returns 404 if not found.
string
required
A label describing the action being attempted (e.g. "transfer", "mint", "redeem"). Stored for audit purposes.

Response fields

string
The outcome of the compliance check: "allow", "deny", or "review".
string[]
An array of reason codes explaining the decision. Possible values: "policy_requirements_satisfied", "wallet_blocked", "kyc_not_verified", "not_accredited", "country_not_allowed", "wallet_not_verified".
string
The unique ID of this decision record. Format: dec_.... Use this to retrieve the decision later with GET /v1/decisions/:id.
string
The version of the decision engine used. Always "v1".
string
ISO 8601 timestamp of when the decision was made.

Examples

201 — Allow (investor and wallet pass all policy checks)
201 — Deny (wallet is blocked — first check triggers immediately)
201 — Review (investor KYC is pending, manual review required)

Retrieve a decision

GET /v1/decisions/:id Retrieves a previously recorded decision by its audit_id. The response includes an immutable snapshot of the investor, wallet, and policy state at the time the decision was made.

Path parameters

string
required
The audit_id returned from POST /v1/decisions.

Response fields

string
The decision record ID. Format: dec_...
string
The ID of the investor evaluated.
string
The ID of the wallet evaluated.
string
The ID of the policy used.
string
The action label provided at decision time.
string
"allow", "deny", or "review".
string[]
Reason codes for the decision outcome.
string
Always "v1".
string
ISO 8601 timestamp of when the decision was recorded.
object
An immutable snapshot of the investor, wallet, and policy data used to reach the decision. This does not reflect any subsequent changes to those records.

Example

200 — OK

404 — Not found