Skip to main content
GET
Get decision details

Authorizations

Authorization
string
header
required

RS256-signed JWT bearer token, obtained via the OAuth2 client-credentials grant and verifiable against the issuer's JWKS (see Authentication).

Path Parameters

id
string
required

Decision ID

Response

Decision entry

Persisted decision log entry. Fields carrying regulated data are subject to the instance's per-scope retention — once the window configured for a scope has passed, every field of that scope reads as null on this entry (the key stays), and backend_results[].raw_response is nulled on the first window to expire. Retention is instance configuration; an unconfigured scope is retained without bound, and any-scoped fields are never aged out.

id
string<uuid>
Example:

"1e7b9c0a-2d43-4f6a-8d29-c4a1f2d05b3e"

amount
integer | null
Example:

5000

backend_results
BackendResult · object[]

One entry per backend rule that was executed.

context
string
Example:

"checkout"

credential_fingerprint
string
Example:

"crd_4ba218..."

credential_type
enum<string> | null

Type of credential supplied in the request

Available options:
pan,
masked_pan,
sepa,
paypal
currency
string | null
Example:

"USD"

customer_id
string | null
pii
Example:

"customer-123"

decision
enum<string>
Available options:
ALLOW,
BLOCK,
REVIEW
device_fingerprint
string | null
pii
Example:

"fp-9c1e4b7a"

device_ip
string | null
pii
Example:

"1.2.3.4"

evaluated_at
string<date-time>
Example:

"2026-06-01T10:00:00Z"

events
object[]

Lifecycle events ingested for this decision, ordered by occurred_at.

fraud_marked_at
string<date-time> | null

Set when a fraud_report event marked this decision as fraud. Independent of payment_state; the first report wins.

fraud_reason
string | null

Free-text reason for the fraud report (from the event's data.reason).

fraud_source
string | null

Free-text origin of the fraud report (from the event's data.source).

has_backend_error
boolean

True if any backend_results entry carries a non-nil error (e.g. "backend_capability_disabled").

Example:

false

integration
string | null

Integration type that originated this decision (e.g. 'interceptor')

Example:

"interceptor"

interceptor_id
string<uuid> | null

ID of the interceptor that originated this decision

Example:

null

masked_credential
string | null

Display-safe masked representation, e.g. '411111 •••••• 4242' for cards or 's•••@example.com' for PayPal. Identifies nobody on its own, so it carries no classification marker and is not subject to retention.

Example:

"411111 •••••• 4242"

metadata
object | null

Merchant-supplied key-value pairs stored with the decision.

Example:
payment_state
enum<string> | null

Current payment lifecycle state; null until a lifecycle event is ingested. Advances via POST /api/events. "fraud_reported" is a legacy value no longer written — fraud is tracked by the fraud marker fields, independent of payment_state.

Available options:
authorized,
captured,
voided,
fraud_reported,
chargedback,
failed
resolution
object | null

Present when the decision was REVIEW and has been resolved by the merchant.

ruleset_id
string<uuid> | null
Example:

"6c1f4e8b-9a2d-4c7e-b5f3-8d1a6e9c4b2f"

ruleset_version
integer | null
Example:

7

schema
SchemaBinding · object

The (schema, version) the decision was evaluated against — the resolved ruleset's binding.

source
enum<string>
Available options:
RULE_ENGINE,
BACKEND,
COMBINED
transaction_reference
string | null
Example:

"X36Q9C"

triggered_rules
TriggeredRule · object[]