Skip to content

Get a decision with its audit context

GET
/v1/decisions/{decision_id}
curl --request GET \
--url 'https://api-staging.asqary.com/v1/decisions/example?expand=policy_version' \
--header 'Authorization: Bearer <token>'
decision_id
required
string
/^dec_[0-9a-f]{32}$/
expand
string
Allowed values: policy_version

policy_version embeds the exact policy configuration used.

X-Request-Id
string
/^[A-Za-z0-9._:\-]{1,128}$/

Your own request ID (1–128 of letters, digits and . _ : -), echoed back and stored.

The decision

Media typeapplication/json
object
decision_id
required
string
/^dec_[0-9a-f]{32}$/
transaction_id
required
string
customer_hash
required

HMAC-SHA256 of the identifier under your identifier key, lowercase hex.

string
/^[0-9a-f]{64}$/
score
required
integer
risk_level
required
string
Allowed values: low medium high critical
confidence
required
integer
recommended_action
required
string
Allowed values: approve step_up manual_review block
reason_codes
required
Array<string>
policy
required
object
id
required
string
/^pol_[0-9a-f]{32}$/
version
required
integer
version_id
required
string
/^plv_[0-9a-f]{32}$/
feedback_label
required
One of:
string
Allowed values: fraud legitimate suspected
environment
required
string
Allowed values: live test
created_at
required
string format: date-time
reasons
required
Array<object>
object
code
required
string
contribution
required

Score points this rule added.

number
message
required
string
details
required
object
key
additional properties
any
evaluations
required
Array<object>
object
rule_code
required
string
rule_version
required
integer
signal
required
number
<= 1
coverage
required
number
<= 1
weight
required
number
contribution
required
number
message
required
string
details
required
object
key
additional properties
any
weight_total
required
number
transaction
required

The stored transaction (hashes only).

object
key
additional properties
any
features
required

Feature snapshot used to score.

object
key
additional properties
any
policy
required
object
id
required
string
/^pol_[0-9a-f]{32}$/
version
required
integer
version_id
required
string
/^plv_[0-9a-f]{32}$/
name
string
config_sha256
string
engine_version
string
policy_version
object
version_id
required
string
/^plv_[0-9a-f]{32}$/
version
required
integer
status
required
string
Allowed values: draft tested active archived
rules
required
Array<object>
object
code
required
string
version
required
integer
enabled
required
boolean
weight
required
number
config
required
object
key
additional properties
any
thresholds
required
object
medium
required
number
high
required
number
critical
required
number
actions
required
object
low
required
string
Allowed values: approve step_up manual_review block
medium
required
string
Allowed values: approve step_up manual_review block
high
required
string
Allowed values: approve step_up manual_review block
critical
required
string
Allowed values: approve step_up manual_review block
market
required
object
code
string
currency
string
timezone
string
spec
required

The configuration as submitted.

object
key
additional properties
any
config_sha256
required

SHA-256 of the resolved configuration.

string
engine_version
required
string
created_at
required
string format: date-time
tested_at
string | null format: date-time
activated_at
string | null format: date-time
archived_at
string | null format: date-time
first_used_at
string | null format: date-time
feedback
required
Array<object>
object
feedback_id
string
/^fbk_[0-9a-f]{32}$/
label
string
Allowed values: fraud legitimate suspected
fraud_type
string | null
outcome_at
string | null format: date-time
created_at
string format: date-time
api_key_id
string | null
request_id
string | null
latency_ms
integer | null

Example

{
"risk_level": "low",
"recommended_action": "approve",
"feedback_label": "fraud",
"environment": "live",
"policy": {
"policy_version": {
"status": "draft",
"actions": {
"low": "approve",
"medium": "approve",
"high": "approve",
"critical": "approve"
}
}
},
"feedback": [
{
"label": "fraud"
}
]
}

Missing, invalid, expired or revoked API key.

Media typeapplication/json
object
error_code
required

Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error

string
message
required
string
retryable
required
boolean
request_id
string
details
One of:
Array<object>
object
field
required
string
message
required
string
code
string

Example generated

{
"error_code": "example",
"message": "example",
"retryable": true,
"request_id": "example",
"details": {}
}

Missing scope or role, IP not allowed, or monthly quota exceeded (quota_exceeded).

Media typeapplication/json
object
error_code
required

Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error

string
message
required
string
retryable
required
boolean
request_id
string
details
One of:
Array<object>
object
field
required
string
message
required
string
code
string

Example generated

{
"error_code": "example",
"message": "example",
"retryable": true,
"request_id": "example",
"details": {}
}

Resource or endpoint not found.

Media typeapplication/json
object
error_code
required

Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error

string
message
required
string
retryable
required
boolean
request_id
string
details
One of:
Array<object>
object
field
required
string
message
required
string
code
string

Example generated

{
"error_code": "example",
"message": "example",
"retryable": true,
"request_id": "example",
"details": {}
}