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:

  1. Send a POST request to /api/evaluation with identity data using an Account Intelligence workflow.
  2. Socure runs the request through configured RiskOS™ workflow with tailored enrichments.
  3. Interpret the response and decision (ACCEPT, REVIEW, REJECT).
  4. Apply your routing logic based on the result.

Before you start

Configure and publish a workflow for the Account Intelligence enrichment.
Get your API key from the API & SDK Keys page in the RiskOS™ Dashboard.
Confirm regional coverage for the account you plan to verify (United States, or one of the supported international markets).

Example frontend input form (mapped to /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/evaluation
POST https://riskos.socure.com/api/evaluation

Authentication

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: Account AVAILABILITY

Use 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

Use 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"]
      }
    }
  }
}'

Example request: Account AVAILABILITY and OWNERSHIP

The 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"]
      }
    }
  }
}'

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_number
  • account.routing_number
  • account.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.
  • OWNERSHIP on a consumer account — also include given_name and family_name.
  • OWNERSHIP on a business account — also include business.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

FieldTypeRequiredDescriptionExample
idStringRequiredCustomer-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"
timestampString <Date-Time>RequiredRFC 3339 timestamp indicating when the evaluation was initiated."2025-05-18T02:09:25Z"
workflowStringRequiredRiskOS™ 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"
dataObjectRequiredMain 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.

FieldTypeRequiredDescriptionExample
given_nameStringConditionalIndividual's first name. Required for consumer ownership checks."John"
family_nameStringConditionalIndividual's last name. Required for consumer ownership checks."Smith"
national_idStringOptionalGovernment-issued identifier (for example, SSN). Improves ownership accuracy."123456789"
date_of_birthStringOptionalDate of birth in YYYY-MM-DD format."1958-01-31"
emailStringOptionalEmail address associated with the individual."[email protected]"
phone_numberStringOptionalPhone number. The API expects E.164 format but tolerates hyphens and spaces for user convenience."+13475551234"
addressObjectOptionalMailing address of the individual.See Address fields in the following section.
accountObjectRequiredBank 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.

FieldTypeRequiredDescriptionExample
nameStringConditionalRegistered legal name of the business. Required for business ownership checks."Online Gaming Inc"
einStringOptionalEmployer Identification Number (EIN) for the business."123456789"
phone_numberStringOptionalBusiness phone number in E.164 format. Hyphens are optional."+11232313213"
accountObjectRequiredBank account details to validate.See the Account fields in the following section.

Address fields

Path: data.individual.address

FieldTypeRequiredDescriptionExample
line_1StringOptionalStreet name and number."123 Rizal Avenue"
line_2StringOptionalApartment, suite, or unit."Apt. 3C"
localityStringOptionalCity or locality."Portland"
major_admin_divisionStringOptionalState, province, or region."OR"
postal_codeStringOptionalPostal or ZIP code."85142"
countryStringOptionalTwo-letter ISO 3166-1 alpha-2 country code."US"

Account fields

Path: data.individual.account (or data.business.account)

FieldTypeRequiredDescriptionExample
account_numberStringRequiredBank account number to validate."92301962561"
routing_numberStringRequiredBank routing number associated with the account."122199983"
account_inquiriesArray of stringRequiredChecks to perform: AVAILABILITY, OWNERSHIP, or both.["AVAILABILITY","OWNERSHIP"]

International accounts: International requests add fields such as country_code, account_type, iban, swift_bic, and clearing_system_id to the account object, 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:

CategoryPurposeKey fields
Risk scoresQuantify account availability and ownership confidenceavailabilityScore, ownershipScore
Account statusReport the current operational state of the accountaccountStatus
Reason codesExplain the factors behind the scoresreasonCodes
TraceabilityCorrelate the enrichment result with logs and support casesreferenceId

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.

AreaFieldsHow to use it
Decision and routingdecision, decision_at, tags, review_queues, notes, scorePrimary control signals. Branch application logic on decision; use tags, queues, notes, and score for secondary routing.
Account Intelligence resultsdata_enrichments[].response.accountIntelligence (availabilityScore, ownershipScore, accountStatus, reasonCodes)The scores and status Account Intelligence produced. Use for conditions, decision rules, and review routing.
Enrichment executiondata_enrichments[] (status_code, total_attempts, is_source_cache)Inspect enrichment outputs and detect provisioning issues, retries, or cached responses.
Identifiers and traceabilityid, eval_id, referenceIdPersist 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.

FieldTypeDescriptionExample
enrichment_nameStringName of the module or service executed."Socure Account Intelligence"
enrichment_providerStringProvider of the enrichment service."Socure"
status_codeIntegerHTTP status returned by the enrichment API call. 200 indicates success.200
requestObjectRequest payload sent to the enrichment provider.See request fields below.
responseObjectResponse payload returned by the enrichment provider.See response fields below.
errorStringPopulated only if the enrichment encountered an error.
is_source_cacheBooleanIndicates whether cached data was used instead of a live call.false
total_attemptsIntegerNumber of attempts made to retrieve the enrichment data.1

request fields

The request object is the payload RiskOS™ sends to the Account Intelligence enrichment. It reflects the identity and account inputs from your Evaluation API request.

FieldTypeDescriptionExample
modulesArray of stringProduct modules to run. For Account Intelligence, include "accountintelligence"; for Premier, include "accountintelligencepremier".["accountintelligence"]
countryStringCountry code in ISO 3166-1 alpha-2 format."US"
countryOfOriginStringCountry of origin in ISO 3166-1 alpha-2 format."US"
firstNameStringFirst name of the individual account holder."Ananda"
surNameStringLast name (surname) of the individual account holder."test"
dobString (YYYY-MM-DD)Date of birth of the individual account holder."1958-01-31"
nationalIdStringGovernment-issued identifier (for example, SSN)."700-01-3784"
einStringEmployer Identification Number (EIN), if applicable."912355201"
physicalAddressStringAddress line 1 (street address)."2 Moran Ave"
physicalAddress2StringAddress line 2 (apt/suite/unit)."Address Line 2"
cityStringCity of the account holder."Danbury"
stateStringState, province, or region."CT"
zipStringPostal code (ZIP code)."068100000"
mobileNumberStringMobile phone number (typically E.164)."+1-2037986508"
businessPhoneStringBusiness phone number (typically E.164)."+11232313213"
customerUserIdStringCustomer-provided identifier for the end user."custom-customer_user_id"
userIdStringCustomer-provided identifier for the individual."data-individual-id"
parentTxnIdString (UUID)Parent transaction/evaluation ID for correlation."2b3fb168-2a70-418d-80b7-0c0a9bdff17f"
payments.account.accountNumberStringBank account number evaluated."92301962141"
payments.account.routingNumberStringBank routing number associated with the account."122199983"
payments.account.inquiriesArray of stringInquiry types performed for the bank account.["AVAILABILITY","OWNERSHIP"]

response fields

The response object contains the Account Intelligence results.

FieldTypeDescriptionExample
referenceIdString (UUID)Unique identifier assigned to the enrichment call result."9acd0778-5ee5-48c2-b2e9-9a7a141d887f"
accountIntelligenceObjectResults from the Account Intelligence evaluation. Contains account and reasonCodes.
accountIntelligence.account.availabilityScoreNumberLikelihood (0.01.0) that the bank account is currently open and active.0.49
accountIntelligence.account.ownershipScoreNumberProbability (0.01.0) that the provided PII matches the true account holder.0.49
accountIntelligence.account.accountStatusString (enum)Current operational status of the account. Possible values: OPEN, CLOSED, PENDING, INVALID."OPEN"
accountIntelligence.reasonCodesArray of stringCodes providing context for the scores.["I334"]
customerProfileObjectEchoed 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.

EnvironmentScoring documentation
SandboxGo to Sandbox Dashboard
ProductionGo to Production Dashboard

For routing examples, see Account Intelligence Workflow Patterns.


accountStatus values

ValueMeaning
OPENThe account is open and available for transactions.
CLOSEDThe account is closed and cannot be transacted against.
PENDINGThe account status could not be conclusively determined at evaluation time.
INVALIDThe 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.

EnvironmentReason Codes page
SandboxGo to Sandbox Dashboard
ProductionGo to Production Dashboard

Using response fields in workflows

Account Intelligence response fields are available to all downstream workflow components:

ComponentHow Account Intelligence fields are used
ConditionBranch logic based on availabilityScore, ownershipScore, accountStatus, or reason codes
Decision RulesApply policy logic using Account Intelligence signals
Rule Score CardWeight Account Intelligence scores in composite scoring
DecisionReturn 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

Known good identities → ACCEPT
Bad or mismatched identities → REJECT or REVIEW
Edge cases logged and reviewed

Schema and error handling

Fields match schema across environments
Errors are structured and retryable
Use exponential fallback with jitter for resubmissions

Logging and observability

Log full request and response
Include correlation IDs
Redact secrets from logs

Exception routing

Escalation paths defined for REVIEW
Support team has access to logs and scores


Related enrichments

EnrichmentRelationship
Verify / Verify+Confirm the person's identity before validating their bank account.
Email RiskAdd email reputation signals to strengthen ownership correlation.
Phone RiskAdd phone reputation and tenure signals for identity correlation.
Digital IntelligenceLayer device and behavioral risk on top of account validation.

Related Concepts


Next Steps


Did this page help you?