Start Prefill in Hosted Flow
Create a Prefill + KYC Hosted Flow evaluation with RiskOS™ by configuring your API key, webhook, and evaluation request body.
Before you start
evaluation_completed events for asynchronous decisions.Test with Postman
Use this Postman collection to send sample requests to the Evaluation API and validate your Hosted Flow integration in Sandbox.
Step 1: Customize the Hosted Flow experience
Configure your hosted onboarding UI in the Templates tab in the RiskOS™ Dashboard.
This includes:
- Branding (logo, colors)
- User-facing copy
- Flow configuration
Step 2: Create an evaluation
Make a POST request to the Evaluation endpoint using the Advanced Prefill workflow. This request starts the evaluation using the identity data collected in your application.
Endpoint
Start with Sandbox for development and testing, then move to Production for live applications.
POST https://riskos.sandbox.socure.com/api/evaluationPOST https://riskos.socure.com/api/evaluationMinimum working request
curl --request POST \
--url "https://riskos.sandbox.socure.com/api/evaluation" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY" \
--data '{
"id": "session_12345",
"timestamp": "2026-01-01T12:00:00Z",
"workflow": "advanced_pre_fill",
"data": {
"custom": {
"redirect_uri": "https://yourapp.com/callback"
}
}
}'{
"id": "session_12345",
"timestamp": "2026-01-01T12:00:00Z",
"workflow": "advanced_pre_fill",
"data": {
"custom": {
"redirect_uri": "https://yourapp.com/callback"
}
}
}Required fields
The following fields are required to create a Hosted Flow evaluation:
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | Required | Unique identifier for the evaluation request | eval-123456 |
timestamp | String (ISO 8601) | Required | Time the request is created | 2026-04-21T18:25:43Z |
workflow | String | Required | Workflow name configured in RiskOS™ | consumer_onboarding |
data.custom.redirect_uri | String (URL) | Required | URL to redirect user after flow completion | https://example.com/complete |
For complete request field definitions and advanced configuration options, see the Evaluation API Reference.
Optional: Document Verification
The following fields are nested under data.individual.docv.config. Use these optional fields to customize document verification behavior.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
send_message | Boolean | Optional | Set to true to send an SMS to the provided phone number with the document request URL. Defaults to false.- US & Canada: sent from short code 33436 - Other countries: sent from +1 (510) 330-19xx | true |
language | String | Optional | Determines Capture App UI language. Defaults to en-us. | en-us |
use_case_key | String | Optional | Deploys a specific Capture App flow created in RiskOS™. | default_docv_flow |
document_type | String (Enum: license | passport) | Optional | Restrict the flow to a single document type. When provided, users skip the document type selection screen. | passport |
redirect.url | String (URL) | Conditional | Destination URL to send the consumer after capture. Required if redirect is provided. Can include query strings for transaction tracking. | https://example.com/complete |
redirect.method | String (Enum: GET | POST) | Conditional | HTTP method used for the redirect. Required if redirect is provided. | POST |
Example response
{
"eval_id": "6c3e1165-1617-4417-b759-92176c75c6e5",
"status": "ON_HOLD",
"decision": "REVIEW",
"eval_status": "evaluation_paused",
"redirect_uri": "https://riskos.sandbox.socure.com/hosted/xyz"
}For the full response schema and all available fields, see the Evaluation API Reference.
Response notes
| Field / Value | Description |
|---|---|
eval_id | Unique identifier used to correlate webhook events with this evaluation. |
status: ON_HOLD | Indicates the evaluation is waiting for user interaction. |
eval_status: evaluation_paused | Indicates the evaluation is paused during the hosted flow. |
decision: REVIEW | Expected initial decision; does not represent the final outcome. |
redirect_uri | URL used to launch the hosted onboarding experience. |
Tip:
A
"decision": "REVIEW"response includes the hostedredirect_uri, which is required to launch the experience.
Step 3: Redirect and launch the Hosted Flow
Immediately redirect the user to the redirect_uri returned in the evaluation response. RiskOS™ now manages the full onboarding experience.
During the hosted session, RiskOS™ may:
- Collect phone number and date of birth
- Perform KYC and Watchlist screening
- Step-up to Document Verification (DocV), if risk thresholds are met
Web integration
If integrating in a web application, redirect the user to the hosted redirect_uri. You may open it in the same tab or a new tab.
window.location.href = hostedRedirectUriNative iOS integration
Hosted Flows for iOS enables you to launch the RiskOS™ Hosted Flow from your iOS app by using an in-app browser such as SFSafariViewController.
import SafariServices
let safariVC = SFSafariViewController(url: URL(string: hostedRedirectUri)!)
present(safariVC, animated: true)Native Android integration
Hosted Flows for Android enables you to launch the RiskOS™ Hosted Flow using Chrome Custom Tabs for a secure in-app browser experience.
val customTabsIntent = CustomTabsIntent.Builder().build()
customTabsIntent.launchUrl(this, Uri.parse(hostedRedirectUri))Your application does not collect or process PII during this stage.
Important:
The redirect indicates the UX is complete. The final decision is delivered asynchronously via webhook.
Summary
- Customize the hosted experience.
- Create the evaluation via API.
- Redirect the user to the Hosted Flow.
Updated 13 days ago
