For the complete documentation index, see llms.txt. This page is also available as Markdown.

KYC Module Endpoint

POI, POA, AML, and liveness operations use the following endpoint:

POST /common/initiateKyc

The requested operation is selected through the module field.

Common Request Structure

{
  "emailId": "joe@example.com",
  "module": "<MODULE>",
  "payload": {}
}

Common Parameters

Field
Type
Required
Description

emailId

String

Yes

Email address of the user being verified

module

String

Yes

Verification operation to perform

payload

Object

Conditional

Module-specific information

Supported Modules

Module
Purpose

POI

Submit proof-of-identity documents

POA

Submit a proof-of-address document

AML

Run AML screening

Liveness

Generate a liveness-verification link

1. Update Proof of Identity

Submits the front and, where applicable, back images of the userโ€™s identity document.

Endpoint

Module

Request Body

Request Parameters

Field
Type
Required
Description

emailId

String

Yes

Email address of the user

module

String

Yes

Must be POI

payload

Object

Yes

Proof-of-identity document information

payload.poiImageFrontUrl

String

Yes

Secure URL of the front of the identity document

payload.poiImageBackUrl

String

Conditional

Secure URL of the back of the identity document

The back image may not be required for single-sided documents such as passports. This should be confirmed against the configured document-verification workflow.

JavaScript Example

Document URL Requirements

The document URLs should:

  • Use HTTPS

  • Be accessible by Tyltโ€™s verification service

  • Point directly to the document image

  • Remain valid long enough for processing

  • Not require an interactive login

  • Not expose unrelated user documents

  • Use short-lived or restricted access URLs where supported

The merchant must not use public image-hosting services for production identity documents.

Response


2. Update Proof of Address

Submits the userโ€™s proof-of-address document.

Endpoint

Module

Request Body

Request Parameters

Field
Type
Required
Description

emailId

String

Yes

Email address of the user

module

String

Yes

Must be POA

payload

Object

Yes

Proof-of-address document information

payload.poaDocumentUrl

String

Yes

Secure URL of the proof-of-address document

Common Proof-of-Address Documents

Subject to the configured verification policy, acceptable documents may include:

  • Bank statement

  • Utility bill

  • Government-issued residence document

  • Tax document

  • Credit-card statement

  • Official correspondence showing the userโ€™s residential address

The supported document types and document-age requirements are determined by the applicable KYC policy.

JavaScript Example

Response


3. Run AML Check

Runs an AML screening check for the identified user.

Endpoint

Module

Request Body

The AML module does not require a payload object in the current request structure.

Request Parameters

Field
Type
Required
Description

emailId

String

Yes

Email address of the user to screen

module

String

Yes

Must be AML

Prerequisites

Before initiating AML screening, the merchant should ensure that the userโ€™s profile contains the identifying information required for screening, including:

  • Legal first name

  • Legal last name

  • Date of birth

  • Country information

The AML check uses the information already associated with the userโ€™s account.

JavaScript Example

Response

The endpoint returns the result or status of the AML screening operation.

Depending on the configured screening process, the result may be returned immediately or may remain pending for further review.

The exact AML response fields and possible status values should be confirmed against the deployed API.

Possible AML Outcomes

The response may represent outcomes such as:

Status
Description

approved

No disqualifying match was identified

pending

Screening is still being processed

requires_review

A possible match requires manual review

rejected

The user cannot proceed based on the screening result

failed

The screening request could not be completed

These values are illustrative and must be aligned with the actual API response.


4. Initiate Liveness Verification

Initiates a liveness-verification session and returns a link that the user can open to complete the verification.

Endpoint

Request Body

The exact value of the liveness module field must be confirmed before publication.

Expected Response

The endpoint is expected to return a user-specific liveness-verification link.

Merchant Integration Flow

  1. The merchant calls the liveness module from its backend.

  2. Tylt creates a liveness-verification session.

  3. Tylt returns a user-specific verification link.

  4. The merchant redirects the user to the link or displays it in the merchant interface.

  5. The user completes the liveness check.

  6. The merchant retrieves the resulting KYC status through the applicable status API.

Security Requirements

The merchant should:

  • Only provide the link to the relevant user

  • Treat the link as sensitive and user-specific

  • Avoid logging the complete link

  • Avoid sending the link to analytics platforms

  • Respect the linkโ€™s expiry period

  • Request a new link where the existing session has expired

  • Prevent one user from accessing another userโ€™s session


Java Script Example

The following helper can be used for all supported operations.

Create or Update User

Submit POI

Submit POA

Run AML Screening


A typical verification flow should follow this order:

  1. Create or update the user through /common/initiateUser.

  2. Submit the userโ€™s proof of identity using the POI module.

  3. Submit proof of address using the POA module where required.

  4. Run AML screening using the AML module.

  5. Request a liveness-verification link.

  6. Ask the user to complete the liveness session.

  7. Retrieve the userโ€™s final KYC status.

  8. Enable regulated wallet or transaction functionality only after the required checks have been approved.


Error Handling

A failed request may return:

Merchants should handle at least the following categories:

HTTP Status
Description

400

Missing, malformed, or unsupported request parameters

401

Missing or invalid API authentication

403

Merchant, user, or operation is not authorized

404

User or requested resource was not found

409

Conflicting user or verification data

422

Submitted verification data could not be processed

429

Too many requests

500

Unexpected processing error

503

Verification service temporarily unavailable

Last updated