Submit KYC With Token
POSThttps://api.cleverhub.co/api/v2/contacts/share_token
This API enables merchants to verify a contact’s identity seamlessly using Sumsub
KYC solution. Instead of requiring contacts to upload identification documents and selfies directly, this API leverages a token-based approach.
When a contact completes their KYC process through Sumsub
interface, a unique verification token is generated. This token represents the validated identity data, eliminating the need for manual document handling. The merchant submits this token along with the contact’s email
to finalize the verification process on the server.
Additionally, this API allows for automated KYC status tracking through webhook notifications. Merchants can provide a callback URL and an authorization header to receive real-time updates whenever the KYC status changes, ensuring a smooth verification experience without requiring periodic checks.
With this approach, merchants can enhance security, streamline identity verification, and provide contacts with a frictionless onboarding experience.
Request
- application/json
Body
- You must call the Generate share token using Sumsub API first to obtain this token.
- This token is a unique identifier linking the contact to their KYC verification process.
- It is a required field and must be a valid token provided by Sumsub.
- The token is time-sensitive and may expire after a certain period if the KYC process is not completed.
- If the token is invalid or expired, the API will return an error.
The contact's email used for verification.
Usage Notes:
webhook_notification object
Responses
- 200
- 400
- 401
- 422
KYC submission successful
- application/json
- Schema
- Example (auto)
- Example
Schema
{
"status": "string"
}
{
"status": "Ok"
}
Bad Request
Unauthorized
- application/json
- Schema
- Example (auto)
- Example
Schema
errors object
{
"errors": {
"code": "string",
"message": "string"
}
}
{
"errors": {
"code": "REQUIRE_LOGIN",
"message": "Not Authorised"
}
}
Unprocessable Entity
- application/json
- Schema
- Example (auto)
- Example
Schema
errors object
{
"errors": {
"message": "string"
}
}
{
"errors": {
"message": "Email can't be blank"
}
}
Callbacks
- POST KYCStatusChanged
POST{$request.body#/endpoint_url}
When the KYC status changes, Hello Clever will call the endpoint_url
provided in the Submit KYC request.
The call will be made using the HTTP POST method.
The notification will include detailed KYC information for the contact, including the updated status (pending, approved, failed), and other relevant details.
- application/json
Bodyrequired
Contact's email
Contact's first name
Contact's last name
The type of contact (e.g., individual or organization)
Possible values: [individual
, organization
]
individual
Contact date of birth format 'yyyy-mm-dd'
Contact's phone
+61-412345678
Contact registration number.
Contact's gender
Possible values: [male
, female
]
male
The primary name of an address's street.
Name of an address's city or town.
The address's postcode
The address's state / province / county.
ISO 3166-1 alpha-2 country code.
identity object
kyc_statuses object[]
Callbacks Responses
- 200
The merchant's server should return this code
Authorization: app-id
name: app-idtype: apiKeydescription: The app-id is registered and secured inside Hello Clever system and only required when client has initiated or in the middle of the transaction.in: header
name: secret-keytype: apiKeydescription: The secret-key is our client's secret of the source. Required if a publishable key is used to retrieve the source.in: header
- csharp
- curl
- dart
- go
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- powershell
- python
- r
- ruby
- rust
- shell
- swift
- HTTPCLIENT
- RESTSHARP
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.cleverhub.co/api/v2/contacts/share_token");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("app-id", "<app-id>");
request.Headers.Add("secret-key", "<app-id>");
var content = new StringContent("{\n \"email\": \"string\",\n \"token\": \"string\",\n \"webhook_notification\": {\n \"endpoint_url\": \"https://example.org\",\n \"authorization_header\": \"SECRET\"\n }\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());