The decision engine evaluates an investor and wallet against a policy and returns anDocumentation Index
Fetch the complete documentation index at: https://clearlayer.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
"allow", "deny", or "review" verdict. Every decision is stored immutably and can be retrieved by its audit_id.
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:
| Priority | Condition | Decision |
|---|---|---|
| 1 | Wallet screening_status is "blocked" | deny — wallet_blocked |
| 2 | Investor kyc_status is not "verified" | review — kyc_not_verified |
| 3 | Policy requires_accredited is true and investor is not accredited | deny — not_accredited |
| 4 | Policy allowed_countries is non-empty and investor’s country is not in it | deny — country_not_allowed |
| 5 | Policy wallet_must_be_verified is true and wallet is not "verified" | review — wallet_not_verified |
| 6 | All checks pass | allow — policy_requirements_satisfied |
Request body
The ID of the investor to evaluate. Returns
404 if not found.The ID of the wallet to evaluate. Returns
404 if not found.The ID of the policy to evaluate against. Returns
404 if not found.A label describing the action being attempted (e.g.
"transfer", "mint", "redeem"). Stored for audit purposes.Response fields
The outcome of the compliance check:
"allow", "deny", or "review".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".The unique ID of this decision record. Format:
dec_.... Use this to retrieve the decision later with GET /v1/decisions/:id.The version of the decision engine used. Always
"v1".ISO 8601 timestamp of when the decision was made.
Examples
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
The
audit_id returned from POST /v1/decisions.Response fields
The decision record ID. Format:
dec_...The ID of the investor evaluated.
The ID of the wallet evaluated.
The ID of the policy used.
The action label provided at decision time.
"allow", "deny", or "review".Reason codes for the decision outcome.
Always
"v1".ISO 8601 timestamp of when the decision was recorded.
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.