Integrate Prefill

Before you start

Make sure your RiskOS™ environment is provisioned with:

Postman Collection

The following Postman collection can be used to test the Prefill enrichment with the Evaluation endpoint.

How it works

  1. Send a POST request to /api/evaluation with identity data.
  2. Socure runs the request through your configured RiskOS™ workflow with Prefill enrichment.
  3. Receive either enriched identity data (full name, DOB, address, etc.) or an empty object.
  4. Use the returned data to auto-populate forms and accelerate your workflow.

Choose your environment

Start with Sandbox for development and testing, then move to Production for live applications.

https://riskos.sandbox.socure.com/api/evaluation
https://riskos.socure.com/api/evaluation

Get an API key

  1. In the Sandbox RiskOS™ Dashboard, go to Developer Workbench > API Keys.

  2. Copy your API key securely.

  3. In the Production RiskOS™ Dashboard, go to Developer Workbench > API Keys.

  4. Copy your API key securely.

Input signals

Field Type Description Example
phone_number String Consumer's phone number in E.164 format. The API expects the standard E.164 format but tolerates hyphens and spaces for user convenience. "+1-415-555-1234"
email String Consumer's email address. "user@example.com"
date_of_birth String Consumer's date of birth in ISO 8601 format (YYYY-MM-DD). "1990-05-20"
address Object Consumer's physical address (full or partial). {"line_1": "123 Main St", "locality": "SF", "postal_code": "94105"}
national_id String Consumer's government-issued ID (last 4 SSN for U.S., full ID for others). "4987"

📘

Note :

One or a combination of the above input signals must be provided. Phone_number + DOB is the most preferred for precision of Prefill.

Resolution rules

This ensures Prefill only returns data when inputs resolve with high confidence to one SocureID.

Matching logic flow

Prefill guarantees clear outcomes only — never partial, guessed, or inconsistent responses.

Common integration patterns

The table below outlines common integration patterns for Socure Prefill across different markets and use cases.

Example Required Inputs Response Returned Markets supported
Example 1 Name + National ID + Phone Number DOB, Address, Email US
Example 2 Name + Last 4 of SSN + Phone DOB, Address, Email US
Example 3 Email + Phone number + Last 4 of SSN Name, Address US
Example 4 Phone number + DOB Name, Address, Email, National ID (in US) US

📘

Note:

Get in touch with your account support rep to set up Prefill enrichment using other inputs.

Example frontend input form (mapped to /api/evaluation payload)

This example screen shows how a mobile app might capture minimal user information, then use Prefill to auto-complete additional PII during onboarding using a RiskOS™ /api/evaluation request.

Each field maps to required parameters in the data.individual object:

You can configure which fields are required per workflow by adjusting module-level match logic in RiskOS™.

Start a new evaluation

Endpoint

SandboxProduction

POST https://riskos.sandbox.socure.com/api/evaluation
POST https://riskos.socure.com/api/evaluation

Authentication and headers

Include your API key in the Authorization header as a Bearer token, along with standard JSON headers:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
X-API-Version: 2025-01-01.orion   # optional – pins a specific API version

Example request

{
  "id": "prefill_test_case_01_Name_Phoneno_4SSN",
  "timestamp": "2025-11-25T20:50:21.000Z",
  "workflow": "individual_onboarding",
  "data": {
      "modules": ["prefill"],
      "line_of_business": "onboarding",
      "channel": "mobile",
      "individual": {
          "given_name": "Sarah",
          "family_name": "Miles",
          "date_of_birth": "1988-07-22",
          "national_id": "4987",
          "id": "",
          "phone_number": "14155553311",
          "address": {
              "line_1": "",
              "line_2": "",
              "locality": "",
              "major_admin_division": "",
              "postal_code": "",
              "country": "US"
          }
      }
  }
}
curl --location --request POST 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "prefill_test_case_01_Name_Phoneno_4SSN",
  "timestamp": "2025-11-25T20:51:06.000Z",
  "workflow": "individual_onboarding",
  "data": {
      "modules": ["prefill"],
      "line_of_business": "onboarding",
      "channel": "mobile",
      "individual": {
          "given_name": "Sarah",
          "family_name": "Miles",
          "date_of_birth": "1988-07-22",
          "national_id": "4987",
          "id": "",
          "phone_number": "14155553311",
          "address": {
              "line_1": "",
              "line_2": "",
              "locality": "",
              "major_admin_division": "",
              "postal_code": "",
              "country": "US"
          }
      }
  }
}'

Request schema

Top-level fields

Field Type Required Description Example
id String Required Required, customer-defined unique identifier for the request.
This value must be unique for each evaluation. Reusing an ID causes RiskOS™ to treat the request as a re-run and can impact processing behavior, results, and downstream workflows.
"prefill_test_case_01_Name_Phoneno_4SSN"
timestamp String Required RFC 3339 timestamp when the request was created. "2025-10-07T23:50:03Z"
workflow String Required RiskOS™ workflow name configured in your environment.
Note: The workflow name must be unique within your RiskOS™ environment. It is not scoped by use case and must identify a single active workflow for each Evaluation API request.
"individual_onboarding"
data Object Required Main payload containing business and individual information
→modules Array Required Must include "prefill". `[
"prefill"`
→line_of_business String Optional Business context (for example, "onboarding"). "onboarding"
→channel String Optional Channel context (for example, "mobile"). "mobile"
→individual Object Required Primary identity object. See individual schema below.

individual fields

Field Type Required Description Example
given_name String Optional First name of the individual. "Sarah"
family_name String Optional Last name of the individual. "Miles"
national_id String Optional Government-issued ID (last 4 SSN for U.S., full ID for others). "4987"
date_of_birth String Optional Date of birth in YYYY-MM-DD format. "1988-07-22"
address Object Optional Residential address of the individual. See address schema below.
phone_number String Optional Phone number in E.164 format. "14155553311"
email String Optional Individual’s email address. "sarah.miles@example.com"

address

Field Type Required Description Example
line_1 String Optional Street address line 1. "812 N 5th Ave"
line_2 String Optional Street address line 2. "Apt 12"
locality String Optional City. "Seattle"
major_admin_division String Optional State, province, or region. "WA"
postal_code String Optional Postal or ZIP code. "98109"
country String Required Country code in ISO 3166-1 alpha-2 format. "US"

Example response

When you call the Evaluation API, RiskOS™ returns a JSON payload that includes the final decision, evaluation metadata, and enrichment-specific results.

{
  "id": "prefill_test_case_01_Name_Phoneno_4SSN",
  "eval_id": "6d004b47-e9c7-4f5d-b8c9-79d7039dd161",
  "workflow": "individual_onboarding",
  "workflow_id": "dc7f261e-b158-477e-9770-7e4eae066156",
  "eval_start_time": "2025-10-07T23:50:03.60187976Z",
  "eval_end_time": "2025-10-07T23:50:03.738794253Z",
  "workflow_version": "28.16.0",
  "eval_source": "API",
  "status": "CLOSED",
  "sub_status": "Accept",
  "decision": "ACCEPT",
  "decision_at": "2025-10-07T23:50:03.738648201Z",
  "tags": [],
  "review_queues": [],
  "data_enrichments": [{
    "enrichment_name": "Socure Prefill",
    "enrichment_endpoint": "https://sandbox.socure.com/api/3.0/EmailAuthScore",
    "enrichment_provider": "Socure",
    "status_code": 200,
    "request": {
      "country": "US",
      "dob": "1988-07-22",
      "firstName": "Sarah",
      "mobileNumber": "14155553311",
      "modules": ["prefill"],
      "nationalId": "4987",
      "parentTxnId": "6d004b47-e9c7-4f5d-b8c9-79d7039dd161",
      "riskOSId": "prefill_test_case_01_Name_Phoneno_4SSN",
      "surName": "Miles",
      "workflow": "individual_onboarding"
    },
    "response": {
      "prefill": {
        "aliases": ["S Miles", "Sar Miles"],
        "associatedAddresses": [{
          "city": "Seattle",
          "firstSeenDate": "2020-01-15",
          "state": "WA",
          "streetAddress": "812 N 5th Ave Apt 12",
          "zip": "98109"
        }, {
          "city": "Portland",
          "firstSeenDate": "2019-09-30",
          "state": "OR",
          "streetAddress": "23 Ridgeway Blvd",
          "zip": "97204"
        }],
        "associatedEmails": [{
          "emailAddress": "sarah.miles@example.com",
          "firstSeenDate": "2015-05-18",
          "lastSeenDate": "2024-01-10"
        }, {
          "emailAddress": "s.miles88@example.com",
          "firstSeenDate": "2012-11-02",
          "lastSeenDate": ""
        }],
        "associatedPhoneNumbers": [{
          "firstSeenDate": "2016-06-12",
          "lastSeenDate": "2024-03-14",
          "phoneNumber": "+14155553311"
        }, {
          "firstSeenDate": "2017-02-11",
          "lastSeenDate": "2024-03-10",
          "phoneNumber": "+14155558789"
        }],
        "city": "Seattle",
        "dob": "1988-07-22",
        "firstName": "Sarah",
        "mobileNumber": "+198765432100",
        "nationalId": "321654987",
        "ssnFirst5": "32165",
        "state": "WA",
        "streetAddress": "812 N 5th Ave Apt 12",
        "surName": "Miles",
        "zip": "98109"
      },
      "referenceId": "536efe69-d36c-4393-ac1b-dde96ed27860"
    },
    "is_source_cache": false,
    "total_attempts": 1
  }],
  "eval_status": "evaluation_completed",
  "environment_name": "Sandbox"
}

Key response fields

RiskOS™ returns a consistent set of top-level fields that describe the outcome of an evaluation, along with enrichment-specific results that depend on your workflow configuration.

Decision and routing (primary control signals)

Field Type Description Example
decision String enum Final evaluation result.
Possible values:
• ACCEPT
• REVIEW
• REJECT
Note: The fields returned can be customized to fit your integration or business needs.
"ACCEPT"
decision_at String <Date-Time> RFC 3339 timestamp when the decision was finalized. "2025-10-07T23:50:03.738648201Z"
score Number If configured for a workflow, provides an aggregate score of all steps. This can be used for risk banding, additional routing, or analytics alongside the primary decision value. 0.91
tags Array of strings Array of labels applied during the workflow to highlight routing choices, notable signals, or rule outcomes. Useful for reporting, segmentation, or UI highlighting in the RiskOS™ Dashboard. []
review_queues Array of strings Lists any manual review queues the evaluation was sent to. Empty when the case is fully auto-resolved without human review. []
notes String Freeform text field for analyst or system comments about the evaluation. Often used to capture manual review rationale or investigation context. "Identity verified with high confidence"

Evaluation lifecycle and status

Field Type Description Example
eval_status String enum Indicates the current state of an evaluation in RiskOS™.
Possible values:
• evaluation_completed
• evaluation_paused
• evaluation_in_progress
"evaluation_completed"
status String enum Indicates the current state of an evaluation or case.
Possible values:
• OPEN
• CLOSED
"CLOSED"
sub_status String Provides additional detail about the evaluation status.
Example values:
• Under Review
• Pending Verification
• Accept
• Reject
"Accept"