Skip to main content

Endpoints

POST /1-click

Run in SwaggerRun in Postman

Begin a 1-Click Signup flow

MethodPOST
Path/1-click

Request

Full Definition
note

We recommend looking at the partial definitions below under the integration type tabs (Hosted, Semi-Hosted, and Non-Hosted) because they show only the properties relevant to the integration type you choose. The full definition here shows all possible properties, but some may not be relevant to your integration type.

POST /1-click Request Body
{
phone: string,
email?: string,
birthDate?: string,
credentialRequests?: CredentialRequest[],
content?: {
title?: "Signup" | "Login" | "Verify" | "Apply",
description?: string
}
redirectUrl?: string
}
PropertyRequired?TypeFormatDefaultDescriptionExample
phonerequiredstringE.164noneUser's phone number (in E.164 format)"+10123456789"
emailoptionalstringemailnoneUser's email address"richard@piedpiper.net"
birthDateoptionalstringYYYY-MM-DDnoneUser's birth date (in Sandbox, this must be "1989-08-01" to pass validation)"1989-08-01"
credentialRequestsoptionalCredentialRequest[]See CredentialRequestDefined by the default credential requests brand setting in your DashboardList of CredentialRequest objects (which encode which credentials you're asking for)See CredentialRequest example
content.titleoptionalenumTitle Case"Signup"What word should be displayed after "1-Click" (accepted values are Signup, Login, Verify, and Apply)"Verify"
content.descriptionoptionalstringSentence casenoneWhat text should be displayed under the 1-Click page title"Confirm your new Hooli account info:"
redirectUrloptionalstringURLdefined for your brand in the DashboardOverrides the default redirect URL in your brand settings"https://hooli.com/verifiedAlternate"
note

With the Hosted tab active above, your brand's integration type setting should be set to Hosted in the Dashboard. See Determine integration type if you need help deciding which type is right for you.

POST /1-click Request Body (Hosted Integration Type)
{
phone: string,
email?: string,
birthDate?: string,
credentialRequests?: CredentialRequest[],
content?: {
title?: "Signup" | "Login" | "Verify" | "Apply",
description?: string
}
redirectUrl?: string
}
PropertyRequired?TypeFormatDefaultDescriptionExample
phonerequiredstringE.164noneUser's phone number (in E.164 format)"+10123456789"
emailoptionalstringemailnoneUser's email address"richard@piedpiper.net"
birthDateoptionalstringYYYY-MM-DDnoneUser's birth date (in Sandbox, this must be "1989-08-01" to pass validation)"1989-08-01"
credentialRequestsoptionalCredentialRequest[]See CredentialRequestDefined by the default credential requests brand setting in your DashboardList of CredentialRequest objects (which encode which credentials you're asking for)See CredentialRequest example
content.titleoptionalenumTitle Case"Signup"What word should be displayed after "1-Click" (accepted values are Signup, Login, Verify, and Apply)"Verify"
content.descriptionoptionalstringSentence casenoneWhat text should be displayed under the 1-Click page title"Confirm your new Hooli account info:"
redirectUrloptionalstringURLdefined for your brand in the DashboardOverrides the default redirect URL in your brand settings"https://hooli.com/verifiedAlternate"
Sandbox Birth Date Value

In Sandbox, for birthDate you need to use a value of "1989-08-01" to pass validation. Otherwise, you'll get a birth date mismatch error (OCE012 error code).

Default Credential Requests

If you don't include credentialRequests in the request body, the default credential requests will apply. These include the core KYC data points, all set to optional and allowing user input.

Default
Default Credential Requests
[
{
"type": "FullNameCredential",
"mandatory": "no",
"allowUserInput": true,
"children": [
{
"type": "FirstNameCredential"
},
{
"type": "MiddleNameCredential"
},
{
"type": "LastNameCredential"
}
]
},
{
"type": "PhoneCredential",
"mandatory": "no",
"allowUserInput": true
},
{
"type": "AddressCredential",
"mandatory": "no",
"allowUserInput": true,
"children": [
{
"type": "Line1Credential"
},
{
"type": "Line2Credential"
},
{
"type": "CityCredential"
},
{
"type": "StateCredential"
},
{
"type": "CountryCredential"
},
{
"type": "ZipCodeCredential"
}
],
"multi": true
},
{
"type": "BirthDateCredential",
"mandatory": "no",
"allowUserInput": true
},
{
"type": "SsnCredential",
"mandatory": "no",
"allowUserInput": true
}
]
Sandbox Birth Date Value

In Sandbox, for birthDate you need to use a value of "1989-08-01" to pass validation. Otherwise, you'll get a birth date mismatch error (OCE012 error code).

Response

Full Definition
note

We recommend looking at the partial definitions below under the integration type tabs (Hosted, Semi-Hosted, and Non-Hosted) because they show only the properties relevant to the integration type you choose. The full definition here shows all possible properties, but some may not be relevant to your integration type.

POST /1-click Response Body
{
uuid: string,
url?: string,
code?: string,
identity?: 1ClickEntity
}
PropertyTypeFormatDescriptionExample
uuidstringVersion 4 UUIDUnique identifier for the 1ClickEntity that will be returned at the end of the 1-Click Signup flow"535dba63-d4bd-442a-b3f6-21b785260a08"
urlstringURLLink to the Verified Wallet, which will prompt the user to enter their verification code, display the user's data to them, and ask the user to share the data with your brand"https://wallet.verified.inc/request/e009d01e-b155-480b-b288-2c9084ab863a?phone=%2B10123456789"
codestring6 digits (0-9)Verification code you should send to the user by SMS"111111"
identity1ClickEntitySee 1ClickEntityA 1ClickEntity object, which contains the user's verified data and metadata about itSee below
note

With the Hosted tab active above, your brand's integration type setting should be set to Hosted in the Dashboard. See Determine integration type if you need help deciding which type is right for you.

POST /1-click Response Body (Hosted Integration Type)
{
uuid: string,
url: string,
code: string
}
PropertyTypeFormatDescriptionExample
uuidstringVersion 4 UUIDUnique identifier for the 1ClickEntity that will be returned at the end of the 1-Click Signup flow"535dba63-d4bd-442a-b3f6-21b785260a08"
urlstringURLLink to the Verified Wallet, which will prompt the user to enter their verification code, display the user's data to them, and ask the user to share the data with your brand"https://wallet.verified.inc/request/e009d01e-b155-480b-b288-2c9084ab863a?phone=%2B10123456789"
codestring6 digits (0-9)Verification code you should send to the user by SMS"111111"

GET /1-click

Run in SwaggerRun in Postman

Get data for a user who has completed a 1-Click Signup flow

MethodGET
Path/1-click/{uuid}?code={userInput}

Request

note

With the Hosted tab active above, your brand's integration type setting should be set to Hosted in the Dashboard. See Determine integration type if you need help deciding which type is right for you.

Call:

GET /1-click Request (Hosted Integration Type)
GET /1-click/{identityUuid}
  • For the {uuid} endpoint path parameter, use the value of the identityUuid URL parameter from the redirect URL.
  • The {userInput} endpoint URL parameter isn't relevant here.

Response

GET /1-click Response (All Integration Types)
{
...1ClickEntity
}

See 1ClickEntity.


PATCH /1-click

Run in SwaggerRun in Postman

Pass additional information about a user to complete a 1-Click Signup flow

MethodPATCH
Path/1-click/{uuid}

Request

note

With the Hosted tab active above, your brand's integration type setting should be set to Hosted in the Dashboard. See Determine integration type if you need help deciding which type is right for you.

There's no need to call PATCH /1-click if your brand's integration type is Hosted, because our web app handles collecting additional information (birth date) from the user if it's required — see here.

For a Hosted integration, you should only use POST /1-click and GET /1-click.

Response

PATCH /1-click Response (All Integration Types)
{
...1ClickEntity
}

See 1ClickEntity.