APPROVED, DECLINED, MANUAL_REVIEW). The exact decision values and reasoning are configured per tenant.
This guide uses the default EU base URL (
If your tenant is in another cell (e.g.,
https://api.documents.resistant.ai).If your tenant is in another cell (e.g.,
us-1, ca-1, ap-2, ap-3), use the corresponding base URL described in Concepts.When to use Adaptive Decision
Use Adaptive Decision if you want:- a single machine-readable decision output you can route in your workflow
- an optional human-readable reason label to support review and audit trails
- a stable interface even if underlying fraud indicators evolve
Prerequisites
Adaptive Decision is available only if:- the submission is created with
enable_decision: true, and - Adaptive Decision is configured for your tenant.
Enable Adaptive Decision
Enable it when creating the submission:Fetch the decision
Endpoint
Query parameter: embed (optional)
Use embed to include full embedded data for selected decision_inputs.
| Parameter | Type | Example | Description |
|---|---|---|---|
embed | string | fraud | Comma-separated list of decision input keys to embed in full (example: ?embed=fraud). |
Responses (per OpenAPI)
200 OK — decision available
decision: your tenant-specific decision outputadaptive_decision_version: version of the tenant configuration used to decidedecision_inputs: links to the underlying inputs (and optionally embedded data if requested)reason: optional explanation object (tenant-dependent)
400 Bad Request — decision not enabled
If the submission was not created withenable_decision: true, the API returns 400.
404 Not Found — decision not ready or submission not found
If the decision is not ready yet (or the submission does not exist), the API may return404.
Non-success decision status
The API may return a non-success decision payload withstatus in:
FAILEDINVALID_INPUTINVALID_PIPELINE_CONFIGSKIPPED
Recommended integration behavior
- Store the decision response together with the underlying fraud result for auditability.
- Treat
SUCCESSas “decision available”; handle other statuses according to your workflow (e.g., route to manual review on failures). - If you rely on
reason.label, treat it as tenant-configured text (do not hardcode business logic on it).
Common issues
I get 400 Bad Request
I get 400 Bad Request
Confirm the submission was created with
enable_decision: true.I get 404 repeatedly
I get 404 repeatedly
Confirm the submission exists and you are using the correct base URL for the same stage/cell where the submission was created.
I need the full evidence behind the decision
I need the full evidence behind the decision
Fetch
/frauddirectly and store that payload alongside the decision. Use with_metadata=truewhen you need indicator metadata for visualization.