Skip to main content

Types

1ClickEntity

1ClickEntity Type
{
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
}
}
}
}
PropertyTypeFormatDescriptionExample
identifiersobjectSee aboveUser identifiers, keyed on identifierKeySee Example 1ClickEntity
identifierKey
enum

Possible values (see identifiers for details):

  • phone
  • email
camelCaseThe type of identifier"phone"
credentialsobjectSee aboveUser credentials, keyed on credentialKeySee Example 1ClickEntity
credentialKey
enum

Possible values (see credentials for details):

  • phone
  • email
  • fullName.firstName
  • fullName.middleName
  • fullName.lastName
  • address.line1
  • address.line2
  • address.city
  • address.state
  • address.zipCode
  • address.country
  • birthDate
  • ssn
  • sex
camelCase

The type of user data a credential has

"firstName"
metadataobjectSee aboveMetadata, keyed on metadataKeySee Example 1ClickEntity
metadataKey
enum

Possible values:

  • id
  • verificationMethod
  • status
  • issuanceDate
  • expirationDate
camelCaseAny 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 type object.

      Example: Credential Value of Type object

      If 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 type string.

      Example: Credential Value of Type string

      If 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 multi set to true, the data keyed on credentialKey will be an array of credential values.

      Example: Array of Credential Values

      If the credential request has multi set to true:

      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 Valued

      An array of credential values may only include one value. If multi is set to true in 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 Requests

      The multi option does not work on children credential requests. It only applies to the parent credential request.

    • If the credential request has multi set to false, the data keyed on credentialKey will be a single credential value.

      Example: Single Credential Value

      If the credential request has multi set to false:

      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 object or string (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

1ClickEntity 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

1ClickHealthEntity Type
{
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
}
]
}
important

Eligibility info is returned only if an eligibility check was run. This happens in two cases:

  1. 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.
  2. You included member ID (and payer) as inputs: You passed memberId (and payer) in the request body of POST /1-click/health.

Eligibilty info consists of:

  • The raw 271: The edi_271 string.
  • A parsed version of the 271: The eligibility object.
PropertyTypeFormatDescriptionExample
healthDataUuidstringVersion 4 UUIDUnique identifier for the 1ClickHealthEntity that will be returned at the end of the 1-Click Health flow"053cd0be-22e4-4985-84e0-d6493708ac28"
status
enum

Possible values:

  • "PENDING"
  • "PROCESSING"
  • "SUCCEEDED"
  • "FAILED"
  • "PARTIAL"
UPPER_SNAKE_CASEStatus of the 1-Click Health flow"PROCESSING"
resultsobject[]Array of objectsHealth insurance plans-
results[i]objectObject with keys described belowHealth insurance plan-
↳ ↳ results[i].memberIdstringAlphanumericMember ID for health insurance plan"V000000000"
↳ ↳ results[i].payerPayerSee PayerPayer for health insurance planSee Payer Example
↳ ↳ results[i].verificationMethod
enum

Possible values:

  • "clearinghouse"
  • "self_attested"
  • null
snake_caseHow a health insurance plan was verified"clearinghouse"
↳ ↳ results[i].edi_271stringX12 EDI 271Health Care Eligibility Benefit ResponseSee X12 EDI 271 examples
↳ ↳ results[i].eligibilityParsedEdi271See ParsedEdi271Parsed version of edi_271See ParsedEdi271 Example
errorsobject[]Array of objectsErrors-
errors[i]objectObject with key described belowError{ "message": "No coverage found" }
↳ ↳ errors[i].messagestring-Error message"No coverage found"

Example

1ClickHealthEntity Success 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"
}
}
]
}
1ClickHealthEntity Failure Example
{
"healthDataUuid": "df8f8623-7fee-4ee1-aeba-14e0572b132d",
"status": "FAILED",
"errors": [
{
"message": "No coverage found"
}
]
}

Payer

Payer Type
{
name: string,
verifiedId: string,
ids: [string], // ids[0] is considered primary
logoUrl?: string
}
Payer IDs

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.
PropertyTypeFormatDescriptionExample
namestringTitle CaseName of payer for health insurance plan"Aviato Health Insurance Of California"
verifiedIdstringV followed by 6 digits (0-9)Verified ID (never changes) of payer for health insurance plan"V431835"
idsarrayArray of stringsIDs (can change) of payer for health insurance plan — ids[0] is considered primary["0000A"]
logoUrlstringURLURL for logo of payer for health insurance plan"https://verified.inc/payers/logos/V431835"

Example

Payer Example: Aetna
{
"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"
}
Payer Example: UnitedHealthcare
{
"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

Payer Type
{
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
},
...
]
}
Coverage Status Values

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 (EB01 U) to confirm. In this latter case, contacts contains 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".)

PropertyTypeFormatDescriptionExample
coverageStatus
enum

Possible values:

  • "active"
  • "indeterminate"
  • "inactive"
camelCaseCoverage status of health insurance plan"active"
coverageType
enum[]

Possible values:

  • "medical"
  • "dental"
  • "vision"
lower caseCoverage type(s) of health insurance plan"[medical]"
payerobjectObject with key described belowPayer for health insurance plan["0000A"]
payer.namestring-Name of payer for health insurance plan"Aetna"
memberobjectObject with keys described belowMember for health insurance plan-
member.memberIdstring-Member ID of member for health insurance plan"A484069"
member.fullNamestring-Full name of member for health insurance plan-
↳ ↳ member.fullName.firstNameobject-First name of member for health insurance plan"Richard"
↳ ↳ member.fullName.lastNamestring-Last name of member for health insurance plan"Hendricks"
member.birthDatestringyyyy-MM-ddBirth date of member for health insurance plan"1989-08-01"
member.sex
enum

Possible values:

  • "Male"
  • "Female"
Title CaseSex of member for health insurance plan"Male"
planobjectObject with keys described belowDetails for health insurance plan-
plan.namestring-Name for health insurance plan"Managed Choice Open Access"
plan.groupNumberstring-Group number (for employer or purchaser group) for health insurance plan"123456-123-12345"
plan.insuranceTypestringX12 insurance descriptor codeType for health insurance plan"C1"
plan.effectiveDatestringyyyy-MM-ddCoverage start date for health insurance plan"2026-01-01"
plan.terminationDatestringyyyy-MM-ddCoverage end date for health insurance plan"2026-12-31"
benefitsobject[]Array of objectsBenefits for health insurance plan-
benefits[i].type
enum

Possible values:

  • "deductible"
  • "outOfPocket"
  • "copay"
  • "coinsurance"
  • "limitation"
camelCaseType of cost share for health insurance plan"deductible"
benefits[i].serviceTypeCodesstring[]Array of stringsList of X12 service type codes for health insurance plan["30"]
↳ ↳ benefits[i].serviceTypeCodes[j]string1+ charactersX12 service type code for health insurance plan"30"
benefits[i].level
enum

Possible values:

  • "individual"
  • "family"
camelCaseCoverage level that amount applies to for health insurance plan"individual"
benefits[i].network
enum

Possible values:

  • "in"
  • "out"
camelCaseWhether health insurance plan is in or out of network"in"
benefits[i].amountstringdecimalDollar amount applicable (copay, or period total for deductible or out of pocket) for health insurance plan"1500.00"
benefits[i].remainingstringdecimalDollar amount remaining (deductible or out of pocket) for health insurance plan"750.00"
benefits[i].remainingstringdecimal fractionPatient coinsurance responsibility for health insurance plan"0.20"
contactsobject[]Array of objectsBenefits for health insurance plan-
contacts[i].namestring-Entity to contact (e.g. the payer's member services or a carve out administrator) about health insurance plan"Aetna Member Services"
contacts[i].serviceTypeCodesstring[]Array of stringsList of X12 service type codes relevant to contact for health insurance plan["30"]
↳ ↳ contacts[i].serviceTypeCodes[j]string1+ charactersX12 service type code relevant to contact for health insurance plan"30"
contacts[i].phonestring-Phone number"8005550000"
contacts[i].faxstring-Fax number"8005550001"
contacts[i].emailstringEmailEmail address"memberservices@aetna.com"
contacts[i].urlstringURLContact URL"https://aetna.com/member-services"

Example

Payer Type
{
"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

1ClickVerificationEntity Type
{
uuid: string,
phone: string,
channel: string,
status: string,
verified: boolean,
createdAt: integer,
expiresAt: integer,
deliveredAt?: integer,
verifiedAt?: integer,
attemptsRemaining?: integer
}
PropertyTypeFormatDescriptionExample
uuidstringVersion 4 UUIDUnique identifier for the 1ClickVerificationEntity"535dba63-d4bd-442a-b3f6-21b785260a08"
phonestringE.164User's phone number (in E.164 format)"+12125550010"
channel
enum

Possible values:

  • "textToSignup"
  • "sms"
camelCaseThe channel used for verification"textToSignup"
status
enum

Possible values:

  • "pending"
  • "sending"
  • "delivered"
  • "verified"
  • "expired"
  • "failed"
camelCaseThe status of the verification"delivered"
verifiedbooleanbooleanWhether the phone can currently be considered verifiedtrue
createdAtintegerUnix time (milliseconds)When the verification started1760053695000
expiresAtintegerUnix time (milliseconds)When the verification expires (meaning it can no longer succeed)1760053995000
deliveredAtintegerUnix time (milliseconds)When the verification message was delivered1760053699054
verifiedAtintegerUnix time (milliseconds)When the verification succeeded1760053705000
attemptsRemainingintegerAny number of digits (0-9)How many verification attempts the user has remaining3

Example

1ClickVerificationEntity 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.

tip

You can configure which risk signals you receive using the risk signals brand setting:

OptionDescription
OnInclude 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.

RiskSignals Type
{
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:

1ClickEntity
{
...
"metadata": {
"identifiers": {
"riskSignals": RiskSignals,
...
},
...
}
}
OCE017 Error
{
"name": "BadRequest",
"message": "1-Click Blocked: Risk Score Too High",
"code": 400,
"className": "bad-request",
"data": {
"errorCode": "OCE017",
"riskSignals": RiskSignals
}
}

Example

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

Error Type
{
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
}
}
PropertyTypeFormatDescriptionExample
namestringPascalCaseName of the error"BadRequest"
messagestringSentence caseMessage for developer that explains the error"Additional information is required to source data for user: birthDate"
codenumber3 digits (0-9)HTTP response status code400
classNamestringkebab-caseClass of errorbad-request
data.errorCode
enum

See Error Codes for possible values

3 letters and 3 digits (0-9)Verified error code"OCE011"
data.additionalInputs[string]camelCaseAdditional inputs to source credentials for user, where multiple values indicates inclusive OR (only included for OCE011)["birthDate", "ssn4"]
data.inputAttemptsExceeded[string]camelCaseInput(s) for which the attempts limit (3 for each input) has been exceeded (only included for OCE019)["birthDate", "ssn4"]
data.identifiersobjectcamelCaseIdentifiers includede in the request["birthDate", "ssn4"]
data.verificationMethodobjectcamelCaseVerification method for identifiers includede in the request["birthDate", "ssn4"]
identifierKey
enum

Possible values (see identifiers for details):

  • phone
  • email
camelCaseThe type of identifier"phone"
data.riskSignalsRiskSignalsobjectVerified risk signals associated with the 1-Click Signup event (only included for OCE011, OCE012, OCE013, OCE017, and OCE019)See RiskSignals example
data.atteptsRemainingintegerAny number of digits (0-9)How many verification attempts the user has remaining3
data.expiresAtintegerUnix time (milliseconds)When the verification expires (meaning it can no longer succeed)1760053995000

Example

Error 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

CredentialRequest Type
{
type: string,
mandatory?: "yes" | "no" | "if_available",
children?: CredentialRequest[],
multi?: boolean
}
PropertyRequired?TypeFormatDefaultDescriptionExample
type
Required
enum

Most common values:

  • "PhoneCredential"
  • "EmailCredential"
  • "FullNameCredential"
  • "FirstNameCredential"
  • "MiddleNameCredential"
  • "LastNameCredential"
  • "BirthDateCredential"
  • "AddressCredential"
  • "Line1Credential"
  • "Line2Credential"
  • "CityCredential"
  • "StateCredential"
  • "ZipCodeCredential"
  • "CountryCredential"
  • "SsnCredential"
PascalCase-The type of user data a credential has"FirstNameCredential"
mandatory
Optional
enumsnake_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 CredentialRequestChild CredentialRequests with types "FirstNameCredential" and "LastNameCredential" relative to a parent CredentialRequest with type "FullNameCredential"
multi
Optional
booleanbooleanfalseWhether the credential should contain multiple values if availabletrue

Example

CredentialRequest
{
"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"
}
]
}