Integrate Sigma Synthetic Fraud
Before you start
Make sure your RiskOS™ environment is provisioned with:
A workflow configured for the Sigma Synthetic Fraud enrichment.
Choose your environment
Start with Sandbox for development and testing, then move to Production for live applications.
https://riskos.sandbox.socure.com/api/evaluation
- No real customer data
- Free testing environment
- Unlimited API calls
https://riskos.socure.com/api/evaluation
- Real customer data
- API usage charges apply
- Connects to live data services
Get an API key
In the Sandbox RiskOS™ Dashboard, go to Developer Workbench > API Keys.
Copy your API key securely.
In the Production RiskOS™ Dashboard, go to Developer Workbench > API Keys.
Copy your API key securely.
How it works
- Send a
POSTrequest to/api/evaluationwith identity data. - Socure runs the request through configured RiskOS™ workflow with tailored enrichments.
- Receive a decision (
ACCEPT,REVIEW, orREJECT) and supporting metadata. - Apply your routing logic based on the result.
Start a new Risk Evaluation
Endpoint
Sandbox Production
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": "APP-123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "consumer_onboarding",
"data":
{
"individual":
{
"given_name": "Shannon",
"family_name": "Zhao",
"national_id": "123456789",
"date_of_birth": "1958-01-31",
"email": "j.smith@example.com",
"phone_number": "+13475551234",
"address":
{
"line_1": "234 Main Street",
"line_2": "Apt. 3C",
"locality": "Jersey City",
"major_admin_division": "NJ",
"country": "US",
"postal_code": "07307"
}
},
"ip_address" : "10.10.10.10"
}
}
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": "APP-123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "consumer_onboarding",
"data": {
"individual": {
"given_name": "Shannon",
"family_name": "Zhao",
"national_id": "123456789",
"date_of_birth": "1958-01-31",
"email": "j.smith@example.com",
"phone_number": "+13475551234",
"address": {
"line_1": "234 Main Street",
"line_2": "Apt. 3C",
"locality": "Jersey City",
"major_admin_division": "NJ",
"country": "US",
"postal_code": "07307"
}
},
"ip_address": "10.10.10.10"
}
}'
Request schema
Top-level fields
The Sigma Synthetic product makes use of multiple input fields to determine both the score and reason codes. For the highest accuracy and performance all these fields should be collected and passed in the input, however the product will still work when select fields are not provided. The table below lists all input 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. |
"APP-123456" |
timestamp |
String | Required | RFC 3339 timestamp indicating when the evaluation was initiated. | "2022-07-28T06:10:54.298Z" |
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. |
"consumer_onboarding" |
data |
Object | Required | Main payload for the RiskOS™ workflow containing all request details. | |
→ individual |
Object | Required | Individual identity object containing personal and address information. | See individual schema below. |
→ ip_address |
String | Recommended | IP address from which the consumer is accessing your service. | "10.10.10.10" |
individual fields
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
given_name |
String | Required | Consumer’s first name. | "Shannon" |
family_name |
String | Required | Consumer’s last name. | "Zhao" |
national_id |
String | Optional (Recommended) | Consumer’s nine-digit SSN or ITIN. Hyphens are optional. | "123456789" |
date_of_birth |
String | Required If omitted, models may have reduced accuracy. |
Consumer’s date of birth in YYYY-MM-DD, YYYY/MM/DD, or YYYYMMDD format. |
"1958-01-31" |
email |
String | Required if neither phone_number nor both address.line_1 and address.postal_code are provided. |
Consumer’s email address. | "j.smith@example.com" |
phone_number |
String | Required if neither email nor both address.line_1 and address.postal_code are provided. |
Consumer’s phone number in E.164 format. The API expects the standard E.164 format but tolerates hyphens and spaces for user convenience. | "+13475551234" |
address |
Object | Required if neither email nor phone_number is provided (must include line_1 and postal_code). |
Structured address object containing residence details. | See address schema below. |
address fields
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
line_1 |
String | Required if neither email nor phone_number is provided and must be accompanied by postal_code. |
The first line of the consumer’s address. | "234 Main Street" |
line_2 |
String | Optional (Recommended) | The second line of the address (e.g., apartment, suite, or unit number). | "Apt. 3C" |
locality |
String | Optional (Recommended) | The city or locality where the consumer resides. | "Jersey City" |
major_admin_division |
String | Optional (Recommended) | The state, province, or region where the consumer resides, in ISO 3166-2 format. | "NJ" |
postal_code |
String | Required if neither email nor phone_number is provided and must be accompanied by line_1. |
The consumer’s five- or nine-digit ZIP code. Hyphens and spaces are optional. | "07307" |
country |
String | Required | The country where the consumer resides, 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": "APP-123456",
"eval_id": "6dc8f39c-ecc3-4fe0-9283-fc8e5f99e816",
"decision": "ACCEPT",
"tags": [],
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Sigma Synthetic",
"enrichment_endpoint": "https://service.socure.com/api/3.0/EmailAuthScore",
"enrichment_provider": "Socure",
"status_code": 200,
"request": {},
"response": {
"referenceId": "f3863a33-69ca-43c2-90e0-8b4344a41a09",
"synthetic": {
"reasonCodes": [
"I610",
"I621",
"I912",
"I622",
"I554",
"I568",
"I212",
"R217",
"I557",
"I709",
"I208",
"I559"
],
"scores": [
{
"name": "synthetic",
"version": "4.0",
"score": 0.684
}
]
}
}
}
]
}
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)
Use these fields to determine what action your application should take.
| Field | Type | Description | Example |
|---|---|---|---|
decision |
String (enum) | Final evaluation result. Possible values: • ACCEPT• REVIEW• REJECT |
"ACCEPT" |
decision_at |
String <Date-Time> |
RFC 3339 timestamp when the decision was finalized. | "2025-09-12T16:42:08.513Z" |
score |
Number | If configured for a workflow, provides an aggregate score of all steps. | 0.94 |
tags |
Array of Strings | Array of labels applied during the workflow | [] |
review_queues |
Array of Strings | Lists any manual review queues the evaluation was sent to. | [] |
notes |
String | Freeform text field for analyst or system comments about the evaluation. | "Auto-approved after successful verification" |
Evaluation lifecycle and status
| Field | Type | Description | Example |
|---|---|---|---|
eval_status |
String (enum) | Current state of an evaluation in RiskOS™. | "evaluation_completed" |
status |
String (enum) | Current state of an evaluation or case. | "CLOSED" |
sub_status |
String | Additional detail about the evaluation status. | "Accept" |
Identifiers and traceability
| Field | Type | Description | Example |
|---|---|---|---|
id |
String | Your evaluation identifier within RiskOS™. | "APP-123456" |
eval_id |
String | RiskOS™-generated unique identifier for the evaluation. | "6dc8f39c-ecc3-4fe0-9283-fc8e5f99e816" |
workflow |
String | Name of the workflow executed. | "consumer_onboarding" |
workflow_id |
String (UUID) | Unique identifier for the workflow run. | "dc7f261e-b158-477e-9770-7e4eae066156" |
workflow_version |
String | Version of the executed workflow. | "28.16.0" |
Execution context
| Field | Type | Description | Example |
|---|---|---|---|
eval_source |
String enum | Indicates where the evaluation was initiated from. | "API" |
eval_start_time |
String <Date-Time> |
RFC 3339 timestamp for when RiskOS™ started processing the evaluation. | "2025-09-30T08:15:30.982Z" |
eval_end_time |
String <Date-Time> |
RFC 3339 timestamp for when RiskOS™ finished processing the evaluation. | "2025-09-30T08:15:31.215Z" |
environment_name |
String | Indicates which environment the evaluation ran in. | "Sandbox" |