Appearance
Are you an LLM? You can read better optimized documentation at /guide/user-verification/kyc-request.md for this page in Markdown format
KYC Request
Prior to requesting a KYC Review for a user, make sure that:
- All the necessary declarative data has been provided in the User object
- All the necessary Documents have been uploaded and checked
- The country of tax residency has been properly declared
Best practice – Submitting a KYB must be done for all users at once
The legal entity, its legal representative and shareholders are reviewed as a whole. You can submit the legal entity KYB request only once you have provided all the required documents for all the corresponding users.
The more you abide by the rules of verification, the more efficient Treezor teams will be in verifying your users, allowing for a much smoother experience.
Request a review of the user Legacy
Endpoint: /v1/users/{userId}/Kycreview
bash
curl -X PUT '{baseUrl}/v1/users/{userId}/Kycreview' \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'1
2
3
2
3
It returns the User object, with its kycLevel set to 0 (NONE) and kycReview set to 1 (PENDING).
json
{
"users": [
{
"userId": "1611975",
"userTypeId": "1",
"kycLevel": "0", // NONE
"kycReview": "1", // PENDING
"kycReviewComment": "", // <--- No comment has been set by Treezor yet
[...] // some attributes are hidden
}
]
}1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Treezor also sends a user.kycrequest webhook. Once the user refused or validated, you receive a user.kycreview webhook.
Information – Treezor's Compliance team verifies your company in Production
Verification usually takes about 24h, but may take up to 48h or more (working days only).
Request User verification New KYC Life Cycle
KYC object
The New KYC life cycle introduces a new KYC object gathering the user KYC-related information as part of the life cycle.
json
{
"userId": 1,
"clientId": 1234,
"distributionCountry": "FR",
"kycLevel": 1,
"kycReview": 2,
"kycReviewComment": "foo",
"kycStatus": "VALIDATED",
"kycReviewType": "ONBOARDING",
"codeStatus": "110006",
"informationStatus": "The user's identity has been successfully verified, and all compliance requirements are met.",
"lastRequestDatetime": "2015-02-25T11:06:39Z",
"lastReviewDatetime": "2015-02-25T15:06:39Z",
"nextReviewDate": "2020-02-25"
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Please note there can be only one KYC object per user; the object is updated as the user goes through their KYC journey.
Key attributes
Below the attributes of the new KYC object.
| Attribute | Type | Description |
|---|---|---|
userId | integer | The unique identifier of the user. |
clientId | integer | The identifier of the Treezor environment. |
distributionCountry | string | The user's country of distribution. See Distribution country. |
kycLevel | integer | Retained for migration purposes only. |
kycReview | integer | Retained for migration purposes only. |
kycReviewComment | string | Internal comments from Treezor’s compliance team. Provides specific guidance if a request is "Incomplete". |
kycStatus | string | The current verification stage. Replaces kycLevel and kycReview. See statuses. |
kycReviewType | string | The reason for the verification:
|
codeStatus | string | A unique technical code indicating the specific reason for the current kycStatus. See statuses. |
informationStatus | string | A human-readable explanation of the codeStatus. See statuses. |
lastRequestDatetime | string | Timestamp of the user's most recent KYC request. |
lastReviewDatetime | string | Timestamp of the most recent manual or automatic review by Treezor. |
nextReviewDate | string | The date of the next scheduled review. Note: kycStatus changes to REVIEW_NEEDED 3 months prior to this date. |
Statuses (codeStatus)
status | codeStatus | informationStatus |
|---|---|---|
NONE | 110001 | No request has been submitted for this user yet. |
PENDING | 110002 | The request for verification has been submitted and is currently awaiting review. |
INCOMPLETE | 110003 | Some documents or information are missing; action is required for this user. |
REFUSED | 110004 | Treezor refused to validate the user identity due to non-compliance, fraud suspicion, or ineligible documentation. |
REVIEWNEEDED | 110005 | The user must be verified again (periodic review or review following an event). |
VALIDATED | 110006 | The user's identity has been successfully verified, and all compliance requirements are met. |
CANCELED | 110007 | The request was canceled after being refused for a certain amount of time. |
Request a review
Request example
Endpoint: /v1/users/{userId}/Kycreview
bash
curl -X PUT '{baseUrl}/v1/users/{userId}/Kycreview' \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'1
2
3
2
3
Treezor sends a kycreview.request webhook. Once the user refused or validated, you receive a kycreview.result webhook.
Retrieve the user's KYC information
Request example
Endpoint: /v1/users/{userId}/kyc
bash
curl -X PUT '{baseUrl}/v1/users/{userId}/kyc' \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'1
2
3
2
3
Returns the KYC object of the user if successful.
json
{
"userId": 1,
"clientId": 1234,
"distributionCountry": "FR",
"kycLevel": 1,
"kycReview": 2,
"kycReviewComment": "foo",
"kycStatus": "VALIDATED",
"kycReviewType": "ONBOARDING",
"codeStatus": "110006",
"informationStatus": "The user's identity has been successfully verified, and all compliance requirements are met.",
"lastRequestDatetime": "2015-02-25T11:06:39Z",
"lastReviewDatetime": "2015-02-25T15:06:39Z",
"nextReviewDate": "2020-02-25"
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Endpoints
| Endpoint | Scope |
|---|---|
/v1/users/{userId}/Kycreview Initiate the user KYC review process | read_write |
/v1/users/{userId}/kyc Retrieve a user KYC information | read_only |