Integrate Account Intelligence
Learn how to call the RiskOS™ Evaluation API for bank account verification with Socure Account Intelligence or Account Intelligence Premier.
Overview
This guide shows you how to:
- Send a
POSTrequest to/api/evaluationwith identity data using an Account Intelligence workflow. - Socure runs the request through configured RiskOS™ workflow with tailored enrichments.
- Interpret the response and decision (
ACCEPT,REVIEW,REJECT). - Apply your routing logic based on the result.
Before you start
Example frontend input form (mapped to /api/evaluation payload)
/api/evaluation payload)This example screen shows how a mobile app might capture user information during onboarding before triggering a RiskOS™ /api/evaluation request.
Each field maps to required parameters in the data.individual object:
- First Name →
given_name - Last Name →
family_name - Account Number →
account.account_number - Routing Number →
account.routing_number - Account Inquiries →
account.account_inquiries(for example,AVAILABILITY,OWNERSHIP)
You can configure which fields each workflow requires by adjusting module-level match logic in RiskOS™.

Start an evaluation
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/evaluationAuthentication
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 versionExample request: Account AVAILABILITY
AVAILABILITYUse these fields when you need to confirm whether a bank account is currently open and available for transactions. The account_number and routing_number together uniquely identify the account, and the account_inquiries field must be set to AVAILABILITY.
{
"id": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"individual": {
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["AVAILABILITY"]
}
}
}
}curl --location '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": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"individual": {
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["AVAILABILITY"]
}
}
}
}'
Example request: Account OWNERSHIP
OWNERSHIPUse these fields when you need to validate the identity of the account holder associated with a bank account.
This schema includes personal details (such as name, date of birth, and contact information) or business details, along with the account information. The account_inquiries field must be set to OWNERSHIP.
{
"id": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"individual": {
"given_name": "John",
"family_name": "Smith",
"date_of_birth": "1958-01-31",
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["OWNERSHIP"]
}
}
}
}
curl --location '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": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"individual": {
"given_name": "John",
"family_name": "Smith",
"date_of_birth": "1958-01-31",
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["OWNERSHIP"]
}
}
}
}'
{
"id": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"business": {
"name": "Online Gaming Inc",
"ein": "123456789",
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["OWNERSHIP"]
}
}
}
}curl --location '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": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"business": {
"name": "Online Gaming Inc",
"ein": "123456789",
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["OWNERSHIP"]
}
}
}
}'
Request schema
Top-level fields
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | Required | Mandatory identifier set by the customer when initiating a request in RiskOS™. | "123456" |
timestamp | String | Required | Timestamp when evaluation was initiated | "2025-05-18T02:09:25Z" |
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. | "bank_account_validation" |
data | Object | Required | Main payload containing business and individual information | See data schema below. |
→business | Object | Required | Primary identity object containing account information. | See business schema below. |
business fields
business fields| Field | Type | Required | Description | Example |
|---|---|---|---|---|
name | String | Required | Registered legal name of the business. | "Online Gaming Inc" |
ein | String | Optional | Employer Identification Number (EIN) for the business. | "123456789" |
phone_number | String | Optional | Business phone number in E.164 format. Hyphens are optional. | "+11232313213" |
account | Object | Required | Bank account details for validation. | See account schema below. |
account fields
account fields| Field | Type | Required | Description | Example |
|---|---|---|---|---|
account_number | String | Required | Bank account number to be validated. | "92301962561" |
routing_number | String | Required | Bank routing number associated with the account. | "122199983" |
account_inquiries | Array of Strings | Required | Types of checks to perform. Must include OWNERSHIP. | ["OWNERSHIP"] |
Note: By default, the business
nameandeinare read fromdata.business.nameanddata.business.ein. These paths are configurable per workflow through enrichment custom mappings, so a captured request may show the business name or EIN sourced from a different location (for example, underdata.individual).
Example request: Account AVAILABILITY and OWNERSHIP
AVAILABILITY and OWNERSHIPThe AVAILABILITY and OWNERSHIP parameters can be combined in any situation where you need to validate both an account's availability and ownership.
{
"id": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"individual": {
"given_name": "John",
"family_name": "Smith",
"national_id": "123456789",
"date_of_birth": "1958-01-31",
"email": "[email protected]",
"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"
},
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
}
}
}
}
curl --location '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": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"individual": {
"given_name": "John",
"family_name": "Smith",
"national_id": "123456789",
"date_of_birth": "1958-01-31",
"email": "[email protected]",
"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"
},
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
}
}
}
}'
{
"id": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"business": {
"name": "Online Gaming Inc",
"ein": "123456789",
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
}
}
}
}
curl --location '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": "123456",
"timestamp": "2022-07-28T06:10:54.298Z",
"workflow": "bank_account_validation",
"data": {
"business": {
"name": "Online Gaming Inc",
"ein": "123456789",
"account": {
"account_number": "92301962561",
"routing_number": "122199983",
"account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
}
}
}
}'
Request Fields
Note:
For the complete field schema, see the Evaluation API Reference.
Validation rules & accuracy guidance
Required fields
Every request must include the account fields:
account.account_numberaccount.routing_numberaccount.account_inquiries(AVAILABILITY,OWNERSHIP, or both)
Conditionally required fields
The identity fields you must add depend on the inquiry type:
AVAILABILITY— no additional identity fields are required.OWNERSHIPon a consumer account — also includegiven_nameandfamily_name.OWNERSHIPon a business account — also includebusiness.name.
Accuracy guidance
For OWNERSHIP inquiries, providing more account-holder data improves match accuracy. When available, also include date_of_birth, email, phone_number, national_id, and address fields.
Top-level fields
Path: root request object
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | 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. | "123456" |
timestamp | String <Date-Time> | Required | RFC 3339 timestamp indicating when the evaluation was initiated. | "2025-05-18T02:09:25Z" |
workflow | String | Required | RiskOS™ workflow name configured in your environment. The name must be unique within your environment and identify a single active workflow for each Evaluation API request. | "bank_account_validation" |
data | Object | Required | Main payload containing individual or business information. | See the fields in the following section. |
Individual fields
Path: data.individual
Use data.individual for consumer accounts. Provide given_name and family_name for ownership checks.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
given_name | String | Conditional | Individual's first name. Required for consumer ownership checks. | "John" |
family_name | String | Conditional | Individual's last name. Required for consumer ownership checks. | "Smith" |
national_id | String | Optional | Government-issued identifier (for example, SSN). Improves ownership accuracy. | "123456789" |
date_of_birth | String | Optional | Date of birth in YYYY-MM-DD format. | "1958-01-31" |
email | String | Optional | Email address associated with the individual. | "[email protected]" |
phone_number | String | Optional | Phone number. The API expects E.164 format but tolerates hyphens and spaces for user convenience. | "+13475551234" |
address | Object | Optional | Mailing address of the individual. | See Address fields in the following section. |
account | Object | Required | Bank account details to validate. | See the Account fields in the following section. |
Business fields
Path: data.business
Use data.business instead of data.individual for business accounts. Provide the business name for ownership checks.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
name | String | Conditional | Registered legal name of the business. Required for business ownership checks. | "Online Gaming Inc" |
ein | String | Optional | Employer Identification Number (EIN) for the business. | "123456789" |
phone_number | String | Optional | Business phone number in E.164 format. Hyphens are optional. | "+11232313213" |
account | Object | Required | Bank account details to validate. | See the Account fields in the following section. |
Address fields
Path: data.individual.address
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
line_1 | String | Optional | Street name and number. | "123 Rizal Avenue" |
line_2 | String | Optional | Apartment, suite, or unit. | "Apt. 3C" |
locality | String | Optional | City or locality. | "Portland" |
major_admin_division | String | Optional | State, province, or region. | "OR" |
postal_code | String | Optional | Postal or ZIP code. | "85142" |
country | String | Optional | Two-letter ISO 3166-1 alpha-2 country code. | "US" |
Account fields
Path: data.individual.account (or data.business.account)
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
account_number | String | Required | Bank account number to validate. | "92301962561" |
routing_number | String | Required | Bank routing number associated with the account. | "122199983" |
account_inquiries | Array of string | Required | Checks to perform: AVAILABILITY, OWNERSHIP, or both. | ["AVAILABILITY","OWNERSHIP"] |
International accounts: International requests add fields such as
country_code,account_type,iban,swift_bic, andclearing_system_idto theaccountobject, and required identifiers vary by market. See Account Intelligence Geographic Coverage.
Handling responses
When you call the Evaluation API, RiskOS™ returns the final decision, evaluation metadata, and the Account Intelligence results in the data_enrichments array. Each result contains an accountIntelligence object with an availabilityScore, an ownershipScore, an accountStatus, and reasonCodes that you can use in conditions, decision rules, and downstream routing logic.
Both scores range from 0.0 to 1.0. Higher values indicate lower risk — a higher availabilityScore means the account is more likely open and active, and a higher ownershipScore means the provided identity is more likely to match the true account holder.
Signal categories
Account Intelligence outputs fall into the following categories:
| Category | Purpose | Key fields |
|---|---|---|
| Risk scores | Quantify account availability and ownership confidence | availabilityScore, ownershipScore |
| Account status | Report the current operational state of the account | accountStatus |
| Reason codes | Explain the factors behind the scores | reasonCodes |
| Traceability | Correlate the enrichment result with logs and support cases | referenceId |
Example response
RiskOS™ returns a JSON payload that includes the final decision, evaluation metadata, and enrichment-specific results. Account Intelligence results are returned in the data_enrichments array. For full end-to-end request and response payloads, see the Sandbox Test Cases section.
{
"id": "Ananda_AccountIntelligence-1761645455142",
"workflow": "api_individual_onboarding",
"workflow_id": "36031914-1edb-4b81-8d80-5d50aa07cead",
"workflow_version": "179.1.0",
"eval_source": "API",
"eval_id": "2b3fb168-2a70-418d-80b7-0c0a9bdff17f",
"eval_start_time": "2025-10-28T09:57:38.019002347Z",
"eval_end_time": "2025-10-28T09:57:38.068070735Z",
"decision": "REJECT",
"decision_at": "2025-10-28T09:57:38.067908786Z",
"status": "CLOSED",
"sub_status": "Decline",
"tags": [],
"notes": "",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Account Intelligence",
"enrichment_provider": "Socure",
"status_code": 200,
"request": {
"modules": ["accountintelligence"],
"firstName": "Ananda",
"surName": "test",
"payments": {
"account": {
"accountNumber": "92301962141",
"routingNumber": "122199983",
"inquiries": ["AVAILABILITY", "OWNERSHIP"]
}
}
},
"response": {
"accountIntelligence": {
"account": {
"availabilityScore": 0.49,
"ownershipScore": 0.49,
"accountStatus": "OPEN"
},
"reasonCodes": []
},
"customerProfile": {
"customerUserId": "custom-customer_user_id",
"userId": "data-individual-id"
},
"referenceId": "9acd0778-5ee5-48c2-b2e9-9a7a141d887f"
},
"is_source_cache": false,
"total_attempts": 1
}
],
"eval_status": "evaluation_completed",
"environment_name": "Sandbox"
}Where to find results
RiskOS™ returns a consistent set of top-level fields that describe the outcome of an evaluation, along with the Account Intelligence results in data_enrichments.
| Area | Fields | How to use it |
|---|---|---|
| Decision and routing | decision, decision_at, tags, review_queues, notes, score | Primary control signals. Branch application logic on decision; use tags, queues, notes, and score for secondary routing. |
| Account Intelligence results | data_enrichments[].response.accountIntelligence (availabilityScore, ownershipScore, accountStatus, reasonCodes) | The scores and status Account Intelligence produced. Use for conditions, decision rules, and review routing. |
| Enrichment execution | data_enrichments[] (status_code, total_attempts, is_source_cache) | Inspect enrichment outputs and detect provisioning issues, retries, or cached responses. |
| Identifiers and traceability | id, eval_id, referenceId | Persist these identifiers to correlate API calls, logs, webhooks, and support cases. |
For the platform-level meaning of the top-level envelope fields (decision, eval_id, eval_status, status, and execution metadata), see API responses.
Enrichment envelope fields
Each entry in data_enrichments[] includes metadata about the enrichment execution.
| Field | Type | Description | Example |
|---|---|---|---|
enrichment_name | String | Name of the module or service executed. | "Socure Account Intelligence" |
enrichment_provider | String | Provider of the enrichment service. | "Socure" |
status_code | Integer | HTTP status returned by the enrichment API call. 200 indicates success. | 200 |
request | Object | Request payload sent to the enrichment provider. | See request fields below. |
response | Object | Response payload returned by the enrichment provider. | See response fields below. |
error | String | Populated only if the enrichment encountered an error. | |
is_source_cache | Boolean | Indicates whether cached data was used instead of a live call. | false |
total_attempts | Integer | Number of attempts made to retrieve the enrichment data. | 1 |
request fields
request fieldsThe request object is the payload RiskOS™ sends to the Account Intelligence enrichment. It reflects the identity and account inputs from your Evaluation API request.
| Field | Type | Description | Example |
|---|---|---|---|
modules | Array of string | Product modules to run. For Account Intelligence, include "accountintelligence"; for Premier, include "accountintelligencepremier". | ["accountintelligence"] |
country | String | Country code in ISO 3166-1 alpha-2 format. | "US" |
countryOfOrigin | String | Country of origin in ISO 3166-1 alpha-2 format. | "US" |
firstName | String | First name of the individual account holder. | "Ananda" |
surName | String | Last name (surname) of the individual account holder. | "test" |
dob | String (YYYY-MM-DD) | Date of birth of the individual account holder. | "1958-01-31" |
nationalId | String | Government-issued identifier (for example, SSN). | "700-01-3784" |
ein | String | Employer Identification Number (EIN), if applicable. | "912355201" |
physicalAddress | String | Address line 1 (street address). | "2 Moran Ave" |
physicalAddress2 | String | Address line 2 (apt/suite/unit). | "Address Line 2" |
city | String | City of the account holder. | "Danbury" |
state | String | State, province, or region. | "CT" |
zip | String | Postal code (ZIP code). | "068100000" |
mobileNumber | String | Mobile phone number (typically E.164). | "+1-2037986508" |
businessPhone | String | Business phone number (typically E.164). | "+11232313213" |
customerUserId | String | Customer-provided identifier for the end user. | "custom-customer_user_id" |
userId | String | Customer-provided identifier for the individual. | "data-individual-id" |
parentTxnId | String (UUID) | Parent transaction/evaluation ID for correlation. | "2b3fb168-2a70-418d-80b7-0c0a9bdff17f" |
payments.account.accountNumber | String | Bank account number evaluated. | "92301962141" |
payments.account.routingNumber | String | Bank routing number associated with the account. | "122199983" |
payments.account.inquiries | Array of string | Inquiry types performed for the bank account. | ["AVAILABILITY","OWNERSHIP"] |
response fields
response fieldsThe response object contains the Account Intelligence results.
| Field | Type | Description | Example |
|---|---|---|---|
referenceId | String (UUID) | Unique identifier assigned to the enrichment call result. | "9acd0778-5ee5-48c2-b2e9-9a7a141d887f" |
accountIntelligence | Object | Results from the Account Intelligence evaluation. Contains account and reasonCodes. | |
accountIntelligence.account.availabilityScore | Number | Likelihood (0.0–1.0) that the bank account is currently open and active. | 0.49 |
accountIntelligence.account.ownershipScore | Number | Probability (0.0–1.0) that the provided PII matches the true account holder. | 0.49 |
accountIntelligence.account.accountStatus | String (enum) | Current operational status of the account. Possible values: OPEN, CLOSED, PENDING, INVALID. | "OPEN" |
accountIntelligence.reasonCodes | Array of string | Codes providing context for the scores. | ["I334"] |
customerProfile | Object | Echoed customer identifiers associated with the request. |
Score interpretation
Both availabilityScore and ownershipScore are probabilistic values between 0.0 and 1.0. A higher Account Intelligence score indicates lower risk — a more available account or a stronger ownership match.
Detailed score interpretation — the score bands, thresholds, and their recommended handling — is proprietary and maintained in the RiskOS™ Dashboard. Go to Settings > Documentation > Account Intelligence Scoring, or use the following links.
| Environment | Scoring documentation |
|---|---|
| Sandbox | Go to Sandbox Dashboard |
| Production | Go to Production Dashboard |
For routing examples, see Account Intelligence Workflow Patterns.
accountStatus values
accountStatus values| Value | Meaning |
|---|---|
OPEN | The account is open and available for transactions. |
CLOSED | The account is closed and cannot be transacted against. |
PENDING | The account status could not be conclusively determined at evaluation time. |
INVALID | The account number or routing number failed validation. |
Reason codes
Reason codes provide granular insight into why a particular score or status was assigned. They are returned in the accountIntelligence.reasonCodes array and support auditability and continuous tuning.
Account Intelligence reason code definitions are proprietary and maintained in the RiskOS™ Dashboard. Go to Settings > Documentation > Account Intelligence Scoring, or use the following links.
| Environment | Reason Codes page |
|---|---|
| Sandbox | Go to Sandbox Dashboard |
| Production | Go to Production Dashboard |
Using response fields in workflows
Account Intelligence response fields are available to all downstream workflow components:
| Component | How Account Intelligence fields are used |
|---|---|
| Condition | Branch logic based on availabilityScore, ownershipScore, accountStatus, or reason codes |
| Decision Rules | Apply policy logic using Account Intelligence signals |
| Rule Score Card | Weight Account Intelligence scores in composite scoring |
| Decision | Return the final Accept / Review / Reject outcome |
For workflow configuration examples, see Account Intelligence Workflow Patterns.
Sandbox Test Cases
You can simulate almost any identity scenario using our Test Personas JSON file. Each entry includes a realistic, sandbox-only identity and a ready-to-use API request payload. Many entries also include the expected response to help you validate your /api/evaluation integration before going live.
Test cases - Happy path
Test case 1: Verify the availability and ownership of a consumer account
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'accept: application/json' \
--header 'X-API-Version: 2025-01-01.orion' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer YOUR_API_KEY' \
--data '{
"id": "Ananda_AccountIntelligence-1761645455142",
"timestamp": "2025-10-28T09:57:38.019002347Z",
"workflow": "api_individual_onboarding",
"data": {
"line_of_business": "test1",
"channel": "mobile",
"individual": {
"additional_context": {
},
"account": {
"account_number": "92301962141",
"routing_number": "122199983",
"account_inquiries": [
"AVAILABILITY",
"OWNERSHIP"
]
},
"id": "data-individual-id",
"given_name": "Ananda",
"family_name": "test",
"date_of_birth": "1958-01-31",
"national_id": "700-01-3784",
"phone_number": "+1-2037986508",
"address": {
"type": "HOME",
"line_1": "2 Moran Ave",
"line_2": "Address Line 2",
"locality": "Danbury",
"major_admin_division": "CT",
"country": "US",
"postal_code": "068100000"
}
},
"custom": {
"customer_user_id":"custom-customer_user_id",
"country_of_origin": "US"
},
"business": {
"ein":"912355201",
"phone_number":"+11232313213"
}
}
}'{
"id": "Ananda_AccountIntelligence-1761645455142",
"workflow": "api_individual_onboarding",
"workflow_id": "36031914-1edb-4b81-8d80-5d50aa07cead",
"workflow_version": "179.1.0",
"eval_source": "API",
"eval_id": "2b3fb168-2a70-418d-80b7-0c0a9bdff17f",
"eval_start_time": "2025-10-28T09:57:38.019002347Z",
"eval_end_time": "2025-10-28T09:57:38.068070735Z",
"decision": "REJECT",
"decision_at": "2025-10-28T09:57:38.067908786Z",
"status": "CLOSED",
"sub_status": "Decline",
"tags": [],
"notes": "",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Account Intelligence PROD SBX",
"enrichment_endpoint": "https://sandbox.socure.com/api/3.0/EmailAuthScore",
"enrichment_provider": "Socure",
"status_code": 200,
"request": {
"businessPhone": "+11232313213",
"city": "Danbury",
"country": "US",
"countryOfOrigin": "US",
"customerUserId": "custom-customer_user_id",
"dob": "1958-01-31",
"ein": "912355201",
"firstName": "Ananda",
"mobileNumber": "+1-2037986508",
"modules": [
"accountintelligence"
],
"nationalId": "700-01-3784",
"parentTxnId": "2b3fb168-2a70-418d-80b7-0c0a9bdff17f",
"payments": {
"account": {
"accountNumber": "92301962141",
"inquiries": [
"AVAILABILITY",
"OWNERSHIP"
],
"routingNumber": "122199983"
}
},
"physicalAddress": "2 Moran Ave",
"physicalAddress2": "Address Line 2",
"riskOSId": "Ananda_AccountIntelligence-1761645455142",
"state": "CT",
"surName": "test",
"userId": "data-individual-id",
"workflow": "api_individual_onboarding",
"zip": "068100000"
},
"response": {
"accountIntelligence": {
"account": {
"availabilityScore": 0.49,
"ownershipScore": 0.49,
"accountStatus": "OPEN"
},
"reasonCodes": []
},
"customerProfile": {
"customerUserId": "custom-customer_user_id",
"userId": "data-individual-id"
},
"referenceId": "9acd0778-5ee5-48c2-b2e9-9a7a141d887f"
},
"is_source_cache": false,
"total_attempts": 1
}
],
"computed": {
"CONDITION": false,
"socure_accountintelligence_response": {
"__third_party_name__": "Socure Account Intelligence PROD SBX",
"accountIntelligence": {
"account": {
"availabilityScore": 0.49,
"ownershipScore": 0.49,
"accountStatus": "OPEN"
},
"reasonCodes": []
},
"customerProfile": {
"customerUserId": "custom-customer_user_id",
"userId": "data-individual-id"
},
"referenceId": "9acd0778-5ee5-48c2-b2e9-9a7a141d887f"
}
},
"eval_status": "evaluation_completed",
"environment_name": "Sandbox"
}Test case 2: Verify the availability and ownership of a business account
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'accept: application/json' \
--header 'X-API-Version: 2025-01-01.orion' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer YOUR_API_KEY' \
--data '{
"id": "Ananda_AccountIntelligence-1761645406795",
"timestamp": "2025-10-28T09:56:48.268221402Z",
"workflow": "api_individual_onboarding",
"data": {
"line_of_business": "test1",
"channel": "mobile",
"individual": {
"additional_context": {
"entity_name": "sdfd"
},
"account": {
"account_number": "92301962141",
"routing_number": "122199983",
"account_inquiries": [
"AVAILABILITY",
"OWNERSHIP"
]
},
"id": "data-individual-id",
"date_of_birth": "1958-01-31",
"national_id": "700-01-3784",
"phone_number": "2037986508",
"address": {
"type": "HOME",
"line_1": "2 Moran Ave",
"line_2": "Address Line 2",
"locality": "Danbury",
"major_admin_division": "CT",
"country": "US",
"postal_code": "068100000"
}
},
"custom": {
"customer_user_id":"custom-customer_user_id",
"country_of_origin": "US"
},
"business": {
"ein":"912355201",
"phone_number":"+11232313213"
}
}
}'{
"id": "Ananda_AccountIntelligence-1761645406795",
"workflow": "api_individual_onboarding",
"workflow_id": "36031914-1edb-4b81-8d80-5d50aa07cead",
"workflow_version": "179.1.0",
"eval_source": "API",
"eval_id": "bee41fc8-347a-423d-aaff-58e385358090",
"eval_start_time": "2025-10-28T09:56:48.268221402Z",
"eval_end_time": "2025-10-28T09:56:48.503153007Z",
"decision": "REJECT",
"decision_at": "2025-10-28T09:56:48.503043807Z",
"status": "CLOSED",
"sub_status": "Decline",
"tags": [],
"notes": "",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Account Intelligence PROD SBX",
"enrichment_endpoint": "https://sandbox.socure.com/api/3.0/EmailAuthScore",
"enrichment_provider": "Socure",
"status_code": 200,
"request": {
"businessPhone": "+11232313213",
"city": "Danbury",
"country": "US",
"countryOfOrigin": "US",
"customerUserId": "custom-customer_user_id",
"dob": "1958-01-31",
"ein": "912355201",
"entityName": "sdfd",
"mobileNumber": "2037986508",
"modules": [
"accountintelligence"
],
"nationalId": "700-01-3784",
"parentTxnId": "bee41fc8-347a-423d-aaff-58e385358090",
"payments": {
"account": {
"accountNumber": "92301962141",
"inquiries": [
"AVAILABILITY",
"OWNERSHIP"
],
"routingNumber": "122199983"
}
},
"physicalAddress": "2 Moran Ave",
"physicalAddress2": "Address Line 2",
"riskOSId": "Ananda_AccountIntelligence-1761645406795",
"state": "CT",
"userId": "data-individual-id",
"workflow": "api_individual_onboarding",
"zip": "068100000"
},
"response": {
"accountIntelligence": {
"account": {
"availabilityScore": 0.49,
"ownershipScore": 0.49,
"accountStatus": "OPEN"
},
"reasonCodes": []
},
"customerProfile": {
"customerUserId": "custom-customer_user_id",
"userId": "data-individual-id"
},
"referenceId": "fb0395e6-30b9-4c38-9db0-24d3ddb062e4"
},
"is_source_cache": false,
"total_attempts": 1
}
],
"computed": {
"CONDITION": false,
"socure_accountintelligence_response": {
"__third_party_name__": "Socure Account Intelligence PROD SBX",
"accountIntelligence": {
"account": {
"availabilityScore": 0.49,
"ownershipScore": 0.49,
"accountStatus": "OPEN"
},
"reasonCodes": []
},
"customerProfile": {
"customerUserId": "custom-customer_user_id",
"userId": "data-individual-id"
},
"referenceId": "fb0395e6-30b9-4c38-9db0-24d3ddb062e4"
}
},
"eval_status": "evaluation_completed",
"environment_name": "Sandbox"
}Test cases - Unhappy path
Test case 3: Invalid account number
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'accept: application/json' \
--header 'X-API-Version: 2025-01-01.orion' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer YOUR_API_KEY' \
--data '{
"id": "Ananda_AccountIntelligence-1761645502459",
"timestamp": "2025-10-28T09:58:25.594488111Z",
"workflow": "api_individual_onboarding",
"data": {
"line_of_business": "test1",
"channel": "mobile",
"individual": {
"additional_context": {
},
"account": {
"account_number": "923019621s41",
"routing_number": "122199983",
"account_inquiries": [
"AVAILABILITY",
"OWNERSHIP"
]
},
"id": "data-individual-id",
"given_name": "Ananda",
"family_name": "test",
"date_of_birth": "1958-01-31",
"national_id": "700-01-3784",
"phone_number": "+1-2037986508",
"address": {
"type": "HOME",
"line_1": "2 Moran Ave",
"line_2": "Address Line 2",
"locality": "Danbury",
"major_admin_division": "CT",
"country": "US",
"postal_code": "068100000"
}
},
"custom": {
"customer_user_id":"custom-customer_user_id",
"country_of_origin": "US"
},
"business": {
"ein":"912355201",
"phone_number":"+11232313213"
}
}
}'{
"id": "Ananda_AccountIntelligence-1761645502459",
"workflow": "api_individual_onboarding",
"workflow_id": "36031914-1edb-4b81-8d80-5d50aa07cead",
"workflow_version": "179.1.0",
"eval_source": "API",
"eval_id": "3e4545bf-9914-4fb3-9076-45399e84df7a",
"eval_start_time": "2025-10-28T09:58:25.594488111Z",
"eval_end_time": "2025-10-28T09:58:25.675160519Z",
"decision": "REJECT",
"decision_at": "2025-10-28T09:58:25.675015459Z",
"status": "CLOSED",
"sub_status": "Decline",
"tags": [],
"notes": "",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Account Intelligence PROD SBX",
"enrichment_endpoint": "https://sandbox.socure.com/api/3.0/EmailAuthScore",
"enrichment_provider": "Socure",
"status_code": 400,
"request": {
"businessPhone": "+11232313213",
"city": "Danbury",
"country": "US",
"countryOfOrigin": "US",
"customerUserId": "custom-customer_user_id",
"dob": "1958-01-31",
"ein": "912355201",
"firstName": "Ananda",
"mobileNumber": "+1-2037986508",
"modules": [
"accountintelligence"
],
"nationalId": "700-01-3784",
"parentTxnId": "3e4545bf-9914-4fb3-9076-45399e84df7a",
"payments": {
"account": {
"accountNumber": "923019621s41",
"inquiries": [
"AVAILABILITY",
"OWNERSHIP"
],
"routingNumber": "122199983"
}
},
"physicalAddress": "2 Moran Ave",
"physicalAddress2": "Address Line 2",
"riskOSId": "Ananda_AccountIntelligence-1761645502459",
"state": "CT",
"surName": "test",
"userId": "data-individual-id",
"workflow": "api_individual_onboarding",
"zip": "068100000"
},
"response": {
"response": "{\"status\":\"Error\",\"referenceId\":\"69bd01bf-1048-4d7e-b9a1-5833fc7caa53\",\"data\":{\"parameters\":[\"Invalid account number. Please resubmit the transaction using proper account number\"]},\"customerProfile\":{\"customerUserId\":\"custom-customer_user_id\",\"userId\":\"data-individual-id\"},\"msg\":\"Invalid account number. Please resubmit the transaction using proper account number\"}"
},
"is_source_cache": false,
"total_attempts": 1
}
],
"computed": {
"CONDITION": false,
"socure_accountintelligence_error": {
"error_code": "EXTERNAL_ERROR",
"error_msg": "{\"status\":\"Error\",\"referenceId\":\"69bd01bf-1048-4d7e-b9a1-5833fc7caa53\",\"data\":{\"parameters\":[\"Invalid account number. Please resubmit the transaction using proper account number\"]},\"customerProfile\":{\"customerUserId\":\"custom-customer_user_id\",\"userId\":\"data-individual-id\"},\"msg\":\"Invalid account number. Please resubmit the transaction using proper account number\"}",
"http_status": 400,
"is_retryable": false
}
},
"eval_status": "evaluation_completed",
"environment_name": "Sandbox"
}Test case 4: Invalid routing number
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'accept: application/json' \
--header 'X-API-Version: 2025-01-01.orion' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer YOUR_API_KEY' \
--data '{
"id": "Ananda_AccountIntelligence-1761645548228",
"timestamp": "2025-10-28T09:59:11.141214973Z",
"workflow": "api_individual_onboarding",
"data": {
"line_of_business": "test1",
"channel": "mobile",
"individual": {
"additional_context": {
},
"account": {
"account_number": "92301962141",
"routing_number": "12219t9983",
"account_inquiries": [
"AVAILABILITY",
"OWNERSHIP"
]
},
"id": "data-individual-id",
"given_name": "Ananda",
"family_name": "test",
"date_of_birth": "1958-01-31",
"national_id": "700-01-3784",
"phone_number": "+1-2037986508",
"address": {
"type": "HOME",
"line_1": "2 Moran Ave",
"line_2": "Address Line 2",
"locality": "Danbury",
"major_admin_division": "CT",
"country": "US",
"postal_code": "068100000"
}
},
"custom": {
"customer_user_id":"custom-customer_user_id",
"country_of_origin": "US"
},
"business": {
"ein":"912355201",
"phone_number":"+11232313213"
}
}
}'{
"id": "Ananda_AccountIntelligence-1761645548228",
"workflow": "api_individual_onboarding",
"workflow_id": "36031914-1edb-4b81-8d80-5d50aa07cead",
"workflow_version": "179.1.0",
"eval_source": "API",
"eval_id": "3f3cb465-574d-4341-8d20-89f96bfe01ed",
"eval_start_time": "2025-10-28T09:59:11.141214973Z",
"eval_end_time": "2025-10-28T09:59:11.170252912Z",
"decision": "REJECT",
"decision_at": "2025-10-28T09:59:11.170122862Z",
"status": "CLOSED",
"sub_status": "Decline",
"tags": [],
"notes": "",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Account Intelligence PROD SBX",
"enrichment_endpoint": "https://sandbox.socure.com/api/3.0/EmailAuthScore",
"enrichment_provider": "Socure",
"status_code": 400,
"request": {
"businessPhone": "+11232313213",
"city": "Danbury",
"country": "US",
"countryOfOrigin": "US",
"customerUserId": "custom-customer_user_id",
"dob": "1958-01-31",
"ein": "912355201",
"firstName": "Ananda",
"mobileNumber": "+1-2037986508",
"modules": [
"accountintelligence"
],
"nationalId": "700-01-3784",
"parentTxnId": "3f3cb465-574d-4341-8d20-89f96bfe01ed",
"payments": {
"account": {
"accountNumber": "92301962141",
"inquiries": [
"AVAILABILITY",
"OWNERSHIP"
],
"routingNumber": "12219t9983"
}
},
"physicalAddress": "2 Moran Ave",
"physicalAddress2": "Address Line 2",
"riskOSId": "Ananda_AccountIntelligence-1761645548228",
"state": "CT",
"surName": "test",
"userId": "data-individual-id",
"workflow": "api_individual_onboarding",
"zip": "068100000"
},
"response": {
"response": "{\"status\":\"Error\",\"referenceId\":\"5d6f845e-9ee4-4779-a67c-f7c535fd6a25\",\"data\":{\"parameters\":[\"Invalid routing number. Please resubmit the transaction using proper routing number\"]},\"customerProfile\":{\"customerUserId\":\"custom-customer_user_id\",\"userId\":\"data-individual-id\"},\"msg\":\"Invalid routing number. Please resubmit the transaction using proper routing number\"}"
},
"is_source_cache": false,
"total_attempts": 1
}
],
"computed": {
"CONDITION": false,
"socure_accountintelligence_error": {
"error_code": "EXTERNAL_ERROR",
"error_msg": "{\"status\":\"Error\",\"referenceId\":\"5d6f845e-9ee4-4779-a67c-f7c535fd6a25\",\"data\":{\"parameters\":[\"Invalid routing number. Please resubmit the transaction using proper routing number\"]},\"customerProfile\":{\"customerUserId\":\"custom-customer_user_id\",\"userId\":\"data-individual-id\"},\"msg\":\"Invalid routing number. Please resubmit the transaction using proper routing number\"}",
"http_status": 400,
"is_retryable": false
}
},
"eval_status": "evaluation_completed",
"environment_name": "Sandbox"
}Test case 5: Invalid phone number
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'accept: application/json' \
--header 'X-API-Version: 2025-01-01.orion' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer YOUR_API_KEY' \
--data '{
"id": "Ananda_AccountIntelligence-1761645592583",
"timestamp": "2025-10-28T09:59:56.077836199Z",
"workflow": "api_individual_onboarding",
"data": {
"line_of_business": "test1",
"channel": "mobile",
"individual": {
"additional_context": {
},
"account": {
"account_number": "92301962141",
"routing_number": "122199983",
"account_inquiries": [
"AVAILABILITY",
"OWNERSHIP"
]
},
"id": "data-individual-id",
"given_name": "Ananda",
"family_name": "test",
"date_of_birth": "1958-01-31",
"national_id": "700-01-3784",
"phone_number": "+1-203127986508",
"address": {
"type": "HOME",
"line_1": "2 Moran Ave",
"line_2": "Address Line 2",
"locality": "Danbury",
"major_admin_division": "CT",
"country": "US",
"postal_code": "068100000"
}
},
"custom": {
"customer_user_id":"custom-customer_user_id",
"country_of_origin": "US"
},
"business": {
"ein":"912355201",
"phone_number":"+11232313213"
}
}
}'{
"id": "Ananda_AccountIntelligence-1761645592583",
"workflow": "api_individual_onboarding",
"workflow_id": "36031914-1edb-4b81-8d80-5d50aa07cead",
"workflow_version": "179.1.0",
"eval_source": "API",
"eval_id": "bd472d6f-b4c1-46ff-95ca-0ab44d65351b",
"eval_start_time": "2025-10-28T09:59:56.077836199Z",
"eval_end_time": "2025-10-28T09:59:56.138004338Z",
"decision": "REJECT",
"decision_at": "2025-10-28T09:59:56.137846578Z",
"status": "CLOSED",
"sub_status": "Decline",
"tags": [],
"notes": "",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure Account Intelligence PROD SBX",
"enrichment_endpoint": "https://sandbox.socure.com/api/3.0/EmailAuthScore",
"enrichment_provider": "Socure",
"status_code": 400,
"request": {
"businessPhone": "+11232313213",
"city": "Danbury",
"country": "US",
"countryOfOrigin": "US",
"customerUserId": "custom-customer_user_id",
"dob": "1958-01-31",
"ein": "912355201",
"firstName": "Ananda",
"mobileNumber": "+1-203127986508",
"modules": [
"accountintelligence"
],
"nationalId": "700-01-3784",
"parentTxnId": "bd472d6f-b4c1-46ff-95ca-0ab44d65351b",
"payments": {
"account": {
"accountNumber": "92301962141",
"inquiries": [
"AVAILABILITY",
"OWNERSHIP"
],
"routingNumber": "122199983"
}
},
"physicalAddress": "2 Moran Ave",
"physicalAddress2": "Address Line 2",
"riskOSId": "Ananda_AccountIntelligence-1761645592583",
"state": "CT",
"surName": "test",
"userId": "data-individual-id",
"workflow": "api_individual_onboarding",
"zip": "068100000"
},
"response": {
"response": "{\"status\":\"Error\",\"referenceId\":\"b8e2c3fb-934c-4a39-bc23-6221da6d5229\",\"data\":{\"parameters\":[\"Invalid phone number. Please resubmit the transaction using a phone number conforming to E.164 format.\"]},\"customerProfile\":{\"customerUserId\":\"custom-customer_user_id\",\"userId\":\"data-individual-id\"},\"msg\":\"Invalid phone number. Please resubmit the transaction using a phone number conforming to E.164 format.\"}"
},
"is_source_cache": false,
"total_attempts": 1
}
],
"computed": {
"CONDITION": false,
"socure_accountintelligence_error": {
"error_code": "EXTERNAL_ERROR",
"error_msg": "{\"status\":\"Error\",\"referenceId\":\"b8e2c3fb-934c-4a39-bc23-6221da6d5229\",\"data\":{\"parameters\":[\"Invalid phone number. Please resubmit the transaction using a phone number conforming to E.164 format.\"]},\"customerProfile\":{\"customerUserId\":\"custom-customer_user_id\",\"userId\":\"data-individual-id\"},\"msg\":\"Invalid phone number. Please resubmit the transaction using a phone number conforming to E.164 format.\"}",
"http_status": 400,
"is_retryable": false
}
},
"eval_status": "evaluation_completed",
"environment_name": "Sandbox"
}Validation Checklist
Test coverage
ACCEPT
REJECT or REVIEW
Schema and error handling
Logging and observability
Exception routing
REVIEW
Related enrichments
| Enrichment | Relationship |
|---|---|
| Verify / Verify+ | Confirm the person's identity before validating their bank account. |
| Email Risk | Add email reputation signals to strengthen ownership correlation. |
| Phone Risk | Add phone reputation and tenure signals for identity correlation. |
| Digital Intelligence | Layer device and behavioral risk on top of account validation. |
Related Concepts
Next Steps
- Account Intelligence Workflow Patterns — Configure workflows and routing logic.
- Account Intelligence Geographic Coverage — Verify international bank accounts.
- Account Intelligence Troubleshooting & FAQs — Debug common issues.
Updated 6 days ago

