Types
1ClickEntity
{
identifiers: {
[identifierKey: string]: string
},
credentials: {
[credentialKey: string]:
string // Single string value when `multi` is false and `children` isn't included in the credential requests
| [string] // Array of string values when `multi` is true and `children` isn't included in the credential requests
| Object // Single object value when `multi` is false and `children` is included in the credential requests
| [Object] // Array of object values when `multi` is true and `children` is included in the credential requests
},
metadata: {
identifiers: {
[identifierKey: string]: {
[metadataKey: string]: string
}
},
credentials: {
[credentialKey: string]: {
// Follows the same structure as `credentials` and maintains the same order for array items when `multi` is set to `true`
[metadataKey: string]:
string // Single string value when `multi` is false and `children` isn't included in the credential requests
| [string] // Array of string values when `multi` is true and `children` isn't included in the credential requests
| Object // Single object value when `multi` is false and `children` is included in the credential requests
| [Object] // Array of object values when `multi` is true and `children` is included in the credential requests
}
}
}
}
| Property | Type | Format | Description | Example |
|---|---|---|---|---|
identifiers | object | See above | User identifiers, keyed on identifierKey | See Example 1ClickEntity |
identifierKey |
| camelCase | The type of identifier | "phone" |
credentials | object | See above | User credentials, keyed on credentialKey | See Example 1ClickEntity |
credentialKey |
| camelCase | The type of user data a credential has | "firstName" |
metadata | object | See above | Metadata, keyed on metadataKey | See Example 1ClickEntity |
metadataKey |
| camelCase | Any additional data that's not a user's identity data (identifiers or credentials) | "verificationMethod" |
The data keyed on a credentialKey will be one or more credential values. This data will have a type that depends on children and multi in the credential request:
- Based on
children:-
If the credential request has
children, each credential value will have typeobject.Example: Credential Value of Type
objectIf the credential request has
children:CredentialRequest with children{"type": "AddressCredential","children": [{"type": "Line1Credential"},{"type": "Line2Credential"},{"type": "CityCredential"},{"type": "StateCredential"},{"type": "ZipCodeCredential"},{"type": "CountryCredential"}]}Then, the credential returned will have type
object(and so will the corresponding metadata):1ClickEntity for CredentialRequest with children{..."credentials": {"address": {"line1": "5320 Newell Rd","city": "Palo Alto","state": "CA","zipCode": "94303","country": "US"}},"metadata": {..."credentials": {"id": {"address": {"line1": "f5a4dc93-bc06-4bb8-bd05-17b5ba912bcd","city": "efd3820f-676a-4db1-b63e-695b66ed8ba0","state": "b65022a2-2016-41df-88f3-252e8e3a29c5","zipCode": "b747ff84-39d8-4df9-98f9-24a465f1a9ae","country": "d57a7bca-2a7c-4671-86ad-5647731cad02"},},...}}} -
If the credential request does not have
children, each credential value will have typestring.Example: Credential Value of Type
stringIf the credential request does not have children:
CredentialRequest without children{"type": "EmailCredential",}Then, the credential returned will have type
string(and so will the corresponding metadata):1ClickEntity for CredentialRequest without children{..."credentials": {"email": "richard@piedpiper.net"},"metadata": {..."credentials": {"id": {"email": "8a1d4e35-413d-496b-b499-8810b55cfb5c"},...}}}
-
- Based on
multi:-
If the credential request has
multiset totrue, the data keyed oncredentialKeywill be an array of credential values.Example: Array of Credential Values
If the credential request has
multiset totrue:CredentialRequest with multi true, with children{"type": "AddressCredential","children": [{"type": "Line1Credential"},{"type": "Line2Credential"},{"type": "CityCredential"},{"type": "StateCredential"},{"type": "ZipCodeCredential"},{"type": "CountryCredential"}],"multi": true}CredentialRequest with multi true, without children{"type": "EmailCredential","multi": true}Then, the data returned will be an array of credential values, so it will have type
[Object]or[string](and so will the corresponding metadata):1ClickEntity for CredentialRequest with multi true, with children{..."credentials": {"address": [{"line1": "5320 Newell Rd","city": "Palo Alto","state": "CA","zipCode": "94303","country": "US"},{"line1": "9536 Meadow Dr","line2": "Apt 301","city": "San Francisco","state": "CA","zipCode": "94112","country": "US"},...],},"metadata": {..."credentials": {"id": {"address": [{"line1": "f5a4dc93-bc06-4bb8-bd05-17b5ba912bcd","city": "efd3820f-676a-4db1-b63e-695b66ed8ba0","state": "b65022a2-2016-41df-88f3-252e8e3a29c5","zipCode": "b747ff84-39d8-4df9-98f9-24a465f1a9ae","country": "d57a7bca-2a7c-4671-86ad-5647731cad02"},{"line1": "6c7350bd-ea84-485b-baa8-fba3381cc859","line2": "5311e2c8-67a1-4fe4-8ddb-88dc8a900915","city": "c315d4ed-34c6-41a9-b7ca-c17cb4bac927","state": "e3774b5f-0996-4dc7-a9b3-8ad24c9a286c","zipCode": "abc2e42c-2864-4bf6-b262-05cb51416957","country": "fca7d486-c99b-436e-9a92-95e221e4ba5d"},...],},...}}}1ClickEntity for CredentialRequest with multi true, without children{..."credentials": {"email": ["richard@piedpiper.net","richard@hooli.com",...],},"metadata": {..."credentials": {"id": {"email": ["8a1d4e35-413d-496b-b499-8810b55cfb5c","b82e39cf-3bb6-4105-b9c1-bfd1ed2a4dbc",...]},...}}}Arrays May Be Single ValuedAn array of credential values may only include one value. If
multiis set totruein a credential request, we'll return multiple values if we can source them (up to a maximum of 3). But if we can only source a single value, we'll still return it in an array, to ensure the data type is predictable.Multi Does Not Apply to Child Credential RequestsThe
multioption does not work onchildrencredential requests. It only applies to the parent credential request. -
If the credential request has
multiset tofalse, the data keyed oncredentialKeywill be a single credential value.Example: Single Credential Value
If the credential request has
multiset tofalse:CredentialRequest with multi false, with children{"type": "AddressCredential","children": [{"type": "Line1Credential"},{"type": "Line2Credential"},{"type": "CityCredential"},{"type": "StateCredential"},{"type": "ZipCodeCredential"},{"type": "CountryCredential"}],"multi": false}CredentialRequest with multi false, without children{"type": "EmailCredential","multi": false}Then, the data returned will be a single credential value, so it will have type
objectorstring(and so will the corresponding metadata):1ClickEntity for CredentialRequest with multi false, with children{..."credentials": {"address": {"line1": "5320 Newell Rd","city": "Palo Alto","state": "CA","zipCode": "94303","country": "US"}},"metadata": {..."credentials": {"id": {"address": {"line1": "f5a4dc93-bc06-4bb8-bd05-17b5ba912bcd","city": "efd3820f-676a-4db1-b63e-695b66ed8ba0","state": "b65022a2-2016-41df-88f3-252e8e3a29c5","zipCode": "b747ff84-39d8-4df9-98f9-24a465f1a9ae","country": "d57a7bca-2a7c-4671-86ad-5647731cad02"}},...}}}1ClickEntity for CredentialRequest with multi false, without children{..."credentials": {"email": "richard@piedpiper.net"},"metadata": {..."credentials": {"id": {"email": "8a1d4e35-413d-496b-b499-8810b55cfb5c"},...}}}
-
Example
{
"identifiers": {
"phone": "+12125550010"
},
"credentials": {
"fullName": {
"firstName": "Richard",
"lastName": "Hendricks"
},
// Array because `multi` was set to `true` in the address credential request
"address": [
{
"line1": "5320 Newell Rd",
"city": "Palo Alto",
"state": "CA",
"zipCode": "94303",
"country": "US"
}
],
"birthDate": "1989-08-01",
"ssn": "000456789"
},
"metadata": {
"identifiers": {
"verificationMethod": {
"phone": "otp"
},
"riskSignals": {
"overall": {
"score": 0,
"level": "low",
"recommendation": "allow",
"reasonCodes": [
"OCR10021"
]
},
"phone": {
"carrier": {
"id": 0,
"name": "Example Carrier"
}
"reasonCodes": [
"OCR20004",
"OCR20005",
"OCR20007",
"OCR20101"
]
},
"email": {
"reasonCodes": [
"OCR60001",
"OCR60002"
]
}
}
},
// Follows the same structure as `credentials` and maintains the same order for array items when `multi` is set to `true`
"credentials": {
"verificationMethod": {
"fullName": {
"firstName": "phone_carrier",
"lastName": "phone_carrier"
},
// Array because `multi` was set to `true` in the address credential request
"address": [
{
"line1": "credit_bureau",
"city": "credit_bureau",
"state": "credit_bureau",
"zipCode": "credit_bureau",
"country": "credit_bureau"
}
],
"birthDate": "phone_carrier",
"ssn": "phone_carrier"
}
}
}
}
1ClickHealthEntity
{
healthDataUuid: string,
status: "PENDING" | "PROCESSING" | "SUCCEEDED" | "FAILED" | "PARTIAL"
results?: [
{
memberId: string,
payer: {
name: string,
verifiedId: string,
ids: [string], // ids[0] is considered primary
logoUrl?: string // included if available
},
verificationMethod: string,
edi_271?: string, // included if eligibility check was run
eligibility?: object, // parsed version of edi_271: included if eligibility check was run
}
],
errors?: [
{
message: string
}
]
}
Eligibility info is returned only if an eligibility check was run. This happens in two cases:
- The Check After Autofill brand setting is enabled: This ensures that we automatically run an eligibility check for a user's insurance after autofilling it.
- You included member ID (and payer) as inputs: You passed
memberId(andpayer) in the request body ofPOST /1-click/health.
Eligibilty info consists of:
- The raw 271: The
edi_271string. - A parsed version of the 271: The
eligibilityobject.
| Property | Type | Format | Description | Example |
|---|---|---|---|---|
healthDataUuid | string | Version 4 UUID | Unique identifier for the 1ClickHealthEntity that will be returned at the end of the 1-Click Health flow | "053cd0be-22e4-4985-84e0-d6493708ac28" |
status |
| UPPER_SNAKE_CASE | Status of the 1-Click Health flow | "PROCESSING" |
results | object[] | Array of objects | Health insurance plans | - |
↳ results[i] | object | Object with keys described below | Health insurance plan | - |
↳ ↳ results[i].memberId | string | Alphanumeric | Member ID for health insurance plan | "V000000000" |
↳ ↳ results[i].payer | Payer | See Payer | Payer for health insurance plan | See Payer Example |
↳ ↳ results[i].verificationMethod |
| snake_case | How a health insurance plan was verified | "clearinghouse" |
↳ ↳ results[i].edi_271 | string | X12 EDI 271 | Health Care Eligibility Benefit Response | See X12 EDI 271 examples |
↳ ↳ results[i].eligibility | ParsedEdi271 | See ParsedEdi271 | Parsed version of edi_271 | See ParsedEdi271 Example |
errors | object[] | Array of objects | Errors | - |
↳ errors[i] | object | Object with key described below | Error | { "message": "No coverage found" } |
↳ ↳ errors[i].message | string | - | Error message | "No coverage found" |
Example
{
"healthDataUuid": "9e12fe5b-5bb8-410a-ac6b-6e053e4c7e8d",
"status": "SUCCEEDED",
"results": [
{
"memberId": "A484069",
"payer": {
"name": "Aetna",
"verifiedId": "V404110",
"ids": [
"60054", // ids[0] is considered primary
"HPQRS",
"Z95668",
"10004",
"953402799",
"6400",
"60054MA",
"4500",
"AETNA"
],
"logoUrl": "https://assets.verified.inc/1-click/health/payers/11145919-80e4-4cb0-8518-cffbf44ee9fb.png"
}
},
{
"memberId": "B231615071",
"payer": {
"name": "UnitedHealthcare",
"verifiedId": "V816685",
"ids": [
"87726", // ids[0] is considered primary
"KMQTZ",
"77082",
"J87726MA",
"10655",
"2721",
"87726MA",
"95123",
"11077",
"MDC01",
"10192",
"14339",
"3550",
"3429",
"UHC",
"10806",
"87726E",
"KPIC1",
"8455",
"4523",
"96107",
"NGHPRT",
"6442",
"WCHEA",
"10636",
"10002",
"72126",
"UHCMP",
"6847",
"JDHS"
],
"logoUrl": "https://assets.verified.inc/1-click/health/payers/ff5e124c-f19f-475c-9757-7fa011e5221a.png"
}
}
]
}
{
"healthDataUuid": "df8f8623-7fee-4ee1-aeba-14e0572b132d",
"status": "FAILED",
"errors": [
{
"message": "No coverage found"
}
]
}
Payer
{
name: string,
verifiedId: string,
ids: [string], // ids[0] is considered primary
logoUrl?: string
}
1-Click Health can return many different IDs for a given payer:
verifiedId: This ID identifies the payer within Verified but is not used in external systems. It never changes, so it can reliably used to identify the payer over time.ids[]: These IDs identify the payer in external systems, like healthcare clearing houses or the payer's own system. They may change over time.ids[0]: This is considered the primary ID for the payer and is generally the ID the payer uses for itself. It may change over time.
| Property | Type | Format | Description | Example |
|---|---|---|---|---|
name | string | Title Case | Name of payer for health insurance plan | "Aviato Health Insurance Of California" |
verifiedId | string | V followed by 6 digits (0-9) | Verified ID (never changes) of payer for health insurance plan | "V431835" |
ids | array | Array of strings | IDs (can change) of payer for health insurance plan — ids[0] is considered primary | ["0000A"] |
logoUrl | string | URL | URL for logo of payer for health insurance plan | "https://verified.inc/payers/logos/V431835" |
Example
{
"name": "Aetna",
"verifiedId": "V404110",
"ids": [
"60054", // ids[0] is considered primary
"HPQRS",
"Z95668",
"10004",
"953402799",
"6400",
"60054MA",
"4500",
"AETNA"
],
"logoUrl": "https://assets.verified.inc/1-click/health/payers/11145919-80e4-4cb0-8518-cffbf44ee9fb.png"
}
{
"name": "UnitedHealthcare",
"verifiedId": "V816685",
"ids": [
"87726", // ids[0] is considered primary
"KMQTZ",
"77082",
"J87726MA",
"10655",
"2721",
"87726MA",
"95123",
"11077",
"MDC01",
"10192",
"14339",
"3550",
"3429",
"UHC",
"10806",
"87726E",
"KPIC1",
"8455",
"4523",
"96107",
"NGHPRT",
"6442",
"WCHEA",
"10636",
"10002",
"72126",
"UHCMP",
"6847",
"JDHS"
],
"logoUrl": "https://assets.verified.inc/1-click/health/payers/ff5e124c-f19f-475c-9757-7fa011e5221a.png"
}
ParsedEdi271
{
coverageStatus?: "active" | "indeterminate" | "inactive",
coverageType?: string[], // can include "medical", "dental", and "vision"
payer?: {
name: string,
},
member?: {
memberId: string,
fullName?: {
firstName?: string,
lastName?: string
},
birthDate?: string,
sex?: string
},
plan?: {
name?: string,
groupNumber?: string,
insuranceType?: string,
effectiveDate?: string,
terminationDate?: string
},
benefits?: [
{
type?: "deductible" | "outOfPocket" | "copay" | "coinsurance" | "limitation",
serviceTypeCodes?: string[],
level?: "individual" | "family",
network?: "in" | "out",
amount?: string,
remaining?: string,
percent?: string
},
...
],
contacts?: [
{
name?: string,
serviceTypeCodes?: string[],
phone?: string,
fax?: string,
email?: string,
url?: string
},
...
]
}
The coverageStatus property derives the status of a user's healht insurance plan from the EDI 271:
"active": The payer confirmed active coverage."indeterminate": The payer returned no clear signal or indicated you need to contact them (EB01U) to confirm. In this latter case,contactscontains the number(s) you need to call."inactive": The payer confirmed inactive coverage.
(We don't return inactive plans, so in practice you won't see "inactive".)
| Property | Type | Format | Description | Example |
|---|---|---|---|---|
coverageStatus |
| camelCase | Coverage status of health insurance plan | "active" |
coverageType |
| lower case | Coverage type(s) of health insurance plan | "[medical]" |
payer | object | Object with key described below | Payer for health insurance plan | ["0000A"] |
↳ payer.name | string | - | Name of payer for health insurance plan | "Aetna" |
member | object | Object with keys described below | Member for health insurance plan | - |
↳ member.memberId | string | - | Member ID of member for health insurance plan | "A484069" |
↳ member.fullName | string | - | Full name of member for health insurance plan | - |
↳ ↳ member.fullName.firstName | object | - | First name of member for health insurance plan | "Richard" |
↳ ↳ member.fullName.lastName | string | - | Last name of member for health insurance plan | "Hendricks" |
↳ member.birthDate | string | yyyy-MM-dd | Birth date of member for health insurance plan | "1989-08-01" |
↳ member.sex |
| Title Case | Sex of member for health insurance plan | "Male" |
plan | object | Object with keys described below | Details for health insurance plan | - |
↳ plan.name | string | - | Name for health insurance plan | "Managed Choice Open Access" |
↳ plan.groupNumber | string | - | Group number (for employer or purchaser group) for health insurance plan | "123456-123-12345" |
↳ plan.insuranceType | string | X12 insurance descriptor code | Type for health insurance plan | "C1" |
↳ plan.effectiveDate | string | yyyy-MM-dd | Coverage start date for health insurance plan | "2026-01-01" |
↳ plan.terminationDate | string | yyyy-MM-dd | Coverage end date for health insurance plan | "2026-12-31" |
benefits | object[] | Array of objects | Benefits for health insurance plan | - |
↳ benefits[i].type |
| camelCase | Type of cost share for health insurance plan | "deductible" |
↳ benefits[i].serviceTypeCodes | string[] | Array of strings | List of X12 service type codes for health insurance plan | ["30"] |
↳ ↳ benefits[i].serviceTypeCodes[j] | string | 1+ characters | X12 service type code for health insurance plan | "30" |
↳ benefits[i].level |
| camelCase | Coverage level that amount applies to for health insurance plan | "individual" |
↳ benefits[i].network |
| camelCase | Whether health insurance plan is in or out of network | "in" |
↳ benefits[i].amount | string | decimal | Dollar amount applicable (copay, or period total for deductible or out of pocket) for health insurance plan | "1500.00" |
↳ benefits[i].remaining | string | decimal | Dollar amount remaining (deductible or out of pocket) for health insurance plan | "750.00" |
↳ benefits[i].remaining | string | decimal fraction | Patient coinsurance responsibility for health insurance plan | "0.20" |
contacts | object[] | Array of objects | Benefits for health insurance plan | - |
↳ contacts[i].name | string | - | Entity to contact (e.g. the payer's member services or a carve out administrator) about health insurance plan | "Aetna Member Services" |
↳ contacts[i].serviceTypeCodes | string[] | Array of strings | List of X12 service type codes relevant to contact for health insurance plan | ["30"] |
↳ ↳ contacts[i].serviceTypeCodes[j] | string | 1+ characters | X12 service type code relevant to contact for health insurance plan | "30" |
↳ contacts[i].phone | string | - | Phone number | "8005550000" |
↳ contacts[i].fax | string | - | Fax number | "8005550001" |
↳ contacts[i].email | string | Email address | "memberservices@aetna.com" | |
↳ contacts[i].url | string | URL | Contact URL | "https://aetna.com/member-services" |
Example
{
"coverageStatus": "active",
"coverageType": ["medical"],
"payer": {
"name": "Aetna",
},
"member": {
"memberId": "A484069",
"fullName": {
"firstName": "Richard",
"lastName": "Hendricks"
},
"birthDate": "1989-08-01",
"sex": "Male"
},
"plan": {
"name": "Managed Choice Open Access",
"groupNumber": "123456-123-12345",
"insuranceType": "C1",
"effectiveDate": "2026-01-01",
"terminationDate": "2026-12-31"
},
"benefits": [
{
"type": "deductible",
"serviceTypeCodes": "[30]",
"level": "individual",
"network": "in",
"amount": "1500.00",
"remaining": "750.00",
"percent": "0.20"
},
...
],
contacts?: [
{
"name": "Aetna Member Services",
"serviceTypeCodes": "[30]",
"phone": "8005550000",
"fax": "8005550001",
"email": "memberservices@aetna.com",
"url": "https://aetna.com/member-services"
},
...
]
}
1ClickVerificationEntity
{
uuid: string,
phone: string,
channel: string,
status: string,
verified: boolean,
createdAt: integer,
expiresAt: integer,
deliveredAt?: integer,
verifiedAt?: integer,
attemptsRemaining?: integer
}
| Property | Type | Format | Description | Example |
|---|---|---|---|---|
uuid | string | Version 4 UUID | Unique identifier for the 1ClickVerificationEntity | "535dba63-d4bd-442a-b3f6-21b785260a08" |
phone | string | E.164 | User's phone number (in E.164 format) | "+12125550010" |
channel |
| camelCase | The channel used for verification | "textToSignup" |
status |
| camelCase | The status of the verification | "delivered" |
verified | boolean | boolean | Whether the phone can currently be considered verified | true |
createdAt | integer | Unix time (milliseconds) | When the verification started | 1760053695000 |
expiresAt | integer | Unix time (milliseconds) | When the verification expires (meaning it can no longer succeed) | 1760053995000 |
deliveredAt | integer | Unix time (milliseconds) | When the verification message was delivered | 1760053699054 |
verifiedAt | integer | Unix time (milliseconds) | When the verification succeeded | 1760053705000 |
attemptsRemaining | integer | Any number of digits (0-9) | How many verification attempts the user has remaining | 3 |
Example
{
"uuid": "535dba63-d4bd-442a-b3f6-21b785260a08",
"phone": "+12125550010",
"channel": "textToSignup",
"status": "verified",
"verified": true,
"createdAt": 1760053695000,
"expiresAt": 1760053995000,
"deliveredAt": 1760053699054,
"verifiedAt": 1760053705000,
"attemptsRemaining": 2
}
RiskSignals
See Risk Signals on the Data page for details about the attributes and when they're included.
You can configure which risk signals you receive using the risk signals brand setting:
| Option | Description |
|---|---|
| On | Include risk signals |
| Off Not Recommended | Don't include risk signals |
If risk signals are enabled, we will block users with an Overall Score greater than 600 and return a OCE017 error.
{
overall: {
score: integer,
level: "low" | "medium-low" | "medium" | "medium-high" | "high",
recommendation: "allow" | "flag" | "block",
reasonCodes: [string]
},
phone: {
carrier: {
id: integer,
name: string
}
reasonCodes: [string]
},
email?: {
reasonCodes: [string]
}
}
When enabled, the risk signals appear in identifiers metadata in a 1ClickEntity and in an error for the OCE017 error code:
{
...
"metadata": {
"identifiers": {
"riskSignals": RiskSignals,
...
},
...
}
}
{
"name": "BadRequest",
"message": "1-Click Blocked: Risk Score Too High",
"code": 400,
"className": "bad-request",
"data": {
"errorCode": "OCE017",
"riskSignals": RiskSignals
}
}
Example
{
...
"metadata": {
"identifiers": {
...
"riskSignals": {
"overall": {
"score": 0,
"level": "low",
"recommendation": "allow",
"reasonCodes": [
"OCR10021"
]
},
"phone": {
"carrier": {
"id": 0,
"name": "Example Carrier"
}
"reasonCodes": [
"OCR20004",
"OCR20005",
"OCR20007",
"OCR20101"
]
},
"email": {
"reasonCodes": [
"OCR60001",
"OCR60002"
]
}
}
},
...
}
}
Error
{
name: string,
message: string,
code: number,
className: string,
data: {
errorCode?: string,
additionalInputs?: [string], // only for error code OCE011
inputAttemptsExceeded?: [string], // only for error code OCE019
identifiers?: {
[identifierKey: string]: string
},
verificationMethod?: {
[identifierKey: string]: string
},
riskSignals?: RiskSignals // only for error codes OCE011, OCE012, OCE013, OCE017, and OCE019
attemptsRemaining?: integer, // only for OCV error codes
expiresAt?: integer // only for OCV error codes
}
}
| Property | Type | Format | Description | Example |
|---|---|---|---|---|
name | string | PascalCase | Name of the error | "BadRequest" |
message | string | Sentence case | Message for developer that explains the error | "Additional information is required to source data for user: birthDate" |
code | number | 3 digits (0-9) | HTTP response status code | 400 |
className | string | kebab-case | Class of error | bad-request |
data.errorCode |
| 3 letters and 3 digits (0-9) | Verified error code | "OCE011" |
data.additionalInputs | [string] | camelCase | Additional inputs to source credentials for user, where multiple values indicates inclusive OR (only included for OCE011) | ["birthDate", "ssn4"] |
data.inputAttemptsExceeded | [string] | camelCase | Input(s) for which the attempts limit (3 for each input) has been exceeded (only included for OCE019) | ["birthDate", "ssn4"] |
data.identifiers | object | camelCase | Identifiers includede in the request | ["birthDate", "ssn4"] |
data.verificationMethod | object | camelCase | Verification method for identifiers includede in the request | ["birthDate", "ssn4"] |
identifierKey |
| camelCase | The type of identifier | "phone" |
data.riskSignals | RiskSignals | object | Verified risk signals associated with the 1-Click Signup event (only included for OCE011, OCE012, OCE013, OCE017, and OCE019) | See RiskSignals example |
data.atteptsRemaining | integer | Any number of digits (0-9) | How many verification attempts the user has remaining | 3 |
data.expiresAt | integer | Unix time (milliseconds) | When the verification expires (meaning it can no longer succeed) | 1760053995000 |
Example
{
"name": "BadRequest",
"message": "1-Click Blocked: Risk Score Too High",
"code": 400,
"className": "bad-request",
"data": {
"errorCode": "OCE017",
"identifiers": {
"phone": "+14045551799",
"email": "richard@piedpiper.com"
},
"verificationMethod": {
"phone": "customer_otp",
"email": "customer_otp"
},
"riskSignals": {
"overall": {
"score": 999, // always enabled
"level": "high", // always enabled
"recommendation": "block", // always enabled
"reasonCodes": [ // add on (ask Verified support to enable)
"OCR10032"
]
},
"phone": { // add on (ask Verified support to enable)
"carrier": {
"id": 1,
"name": "Risky Carrier"
}
"reasonCodes": [
"OCR20009",
"OCR20107",
"OCR21012",
"OCR21003"
]
},
"email": { // add on (ask Verified support to enable)
"reasonCodes": [
"OCR60006",
"OCR60006"
]
}
}
}
}
CredentialRequest
{
type: string,
mandatory?: "yes" | "no" | "if_available",
children?: CredentialRequest[],
multi?: boolean
}
| Property | Required? | Type | Format | Default | Description | Example |
|---|---|---|---|---|---|---|
type | Required |
| PascalCase | - | The type of user data a credential has | "FirstNameCredential" |
mandatory | Optional | enum | snake_case | "no" | Whether the credential is required, not required, or required if available (accepted values "yes", "no", and "if_available") | "if_available" |
children | Optional | CredentialRequest[] | See CredentialRequest | - | List of child CredentialRequests relative to the parent CredentialRequest | Child CredentialRequests with types "FirstNameCredential" and "LastNameCredential" relative to a parent CredentialRequest with type "FullNameCredential" |
multi | Optional | boolean | boolean | false | Whether the credential should contain multiple values if available | true |
Example
{
"type": "AddressCredential",
"multi": true,
"children": [
{
"type": "Line1Credential",
"mandatory": "if_available"
},
{
"type": "Line2Credential",
"mandatory": "no"
},
{
"type": "CityCredential",
"mandatory": "if_available"
},
{
"type": "StateCredential",
"mandatory": "if_available"
},
{
"type": "ZipCodeCredential",
"mandatory": "if_available"
},
{
"type": "CountryCredential",
"mandatory": "if_available"
}
]
}