CKYC Upload for Individuals

💫 🧙‍♂️ One solution to create them all, one solution to find them. One solution to bring them all, and in the registry bind them.

Decentro's CKYC Bulk Upload product is an abstraction over CKYC's SFTP Upload via a simple API. The solution lets customers seamlessly push bulk users and their documents via a single API hit.

Decentro will perform all the validations, image processing, image compression, batch building, connecting to the Financial Institution's SFTP server and uploading the users to CKYC in the format recommended by them.

CKYC Bulk Upload

CKYC Bulk Upload

Additionally, Decentro will also parse all stage-wise and periodic response files from CKYC. We will send you an email whenever an upload is pending on the CKYC portal, and also send detailed reports about approved and rejected updates from CKYC.

Lastly, to add more touch points to the entire flow described above, Decentro's CKYC Bulk Upload solution also comes with status check APIs, both at the transaction level as well as the unit entity level (whether it's a batch of individuals or legal entities).

In short, you get to combine the best of both worlds, with the simplicity of an API interface and the stability of SFTP connection. Decentro handles the SFTP connection in the backend so that you don't have to worry about pushing and polling files from SFTP, and does all the heavy-lifting required to parse the API request payload into CKYC's format.

This documentation highlights the high-level interface and integration requirements using which a RE (regulated entity) can upload 1 or more individual users or legal entities to the CKYC Record Registry.

📑 Request Contract

The request contract for CKYC bulk upload will have the following parameters:

ParameterTypeMandatoryDefinition
reference_idStringYesA unique reference ID of this transaction set by the RE (UUID recommended)
consentBooleanYesA mandatory field for compliance. This field accepts a boolean value and must be true for the transaction to go through.
purposeStringYesThe purpose of this transaction
verifierObjectYesThis is an object that contains the KYC verifier details. Please refer to the Verifier section to learn more about the parameters within this object.
individualsArrayNoAn array of individuals whose details are to be uploaded to CKYC. Refer the Individuals array
legal_entitiesArrayNoAn array of legal entities whose details are to be uploaded to CKYC.

👍

Rule of Thumb

You must either send a list of individuals or a list of legal_entities only.

You cannot send both these fields in the same request because CKYC has different rules for creating a batch of different entities and mandates that a batch has either only a set of individuals or legal_entities.

Hence, to maintain simplicity and a clean interface, we have segregated CKYC Upload for Individuals and Legal Entities into 2 separate APIs.

🧑🏻 Upload Individuals

The following shows a sample request and response body for upload individuals to the CKYC Record Registry. For more information on the parameters inside the individuals array, please refer to the Upload Individuals API for individuals.

{
    "reference_id": "12345",
    "consent": true,
    "purpose": "For bank account purpose",
    "verifier": {
        "name": "John Doe",
        "designation": "CEO",
        "employee_code": "123456789",
        "kyc_declaration_place": "Bangalore"
    },
    "individuals": [
        {
            "identifier": "1",
            "salutation": "MR",
            "name": "John Doe",
            "gender": "MALE",
            "date_of_birth": "YYYY-MM-DD",
            "location": {
                "address": "XXXXXXXXXXXXXXXXXXXX",
                "pincode": "XXXXXX"
            },
            "document_submission_type": "EKYC",
            "relative": {
                "salutation": "MR",
                "type": "FATHER",
                "name": "John Doe"
            },
            "documents": [
                {
                    "base64": "xxxx",
                    "type": "AADHAAR"
                },
                {
                    "base64": "xxxx",
                    "type": "PHOTOGRAPH"
                }
            ],
            "ids": [
                {
                    "id_number": "ABCDE1234F",
                    "type": "PAN"
                },
                {
                    "id_number": "XXXXXXXX1234",
                    "type": "VOTER_ID"
                }
            ]
        }
    ]
}
{
    "decentroTxnId": "DEC001",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "message": "CKYC bulk upload has been initiated",
    "responseKey": "success_initiate_bulk_upload"
}

🏦 Upload Legal Entities

The following shows a sample request and response body for upload legal entities to the CKYC Record Registry.

{
    "reference_id": "12345",
    "consent": true,
    "purpose": "For bank account purpose",
    "verifier": {
        "name": "John Doe",
        "designation": "CEO",
        "employee_code": "123456789",
        "kyc_declaration_place": "Bangalore"
    },
    "legal_entities": [
        {
            "identifier": "1",
            "consitution_type": "PARTNERSHIP_FIRM",
            "entity_name": "John Doe Partners",
            "incorporation": {
	            "place": "Bangalore",
	            "date": "YYYY-MM-DD",
	            "country_code": "IN"
            },
            "commencement_date": "YYYY-MM-DD",
            "location": {
                "address": "XXXXXXXXXXXXXXX",
                "pincode": "XXXXXX"
            },
            "related_individuals": [
                {
                    "type": "DIRECTOR",
                    "deletion_flag": false,
                    "salutation": "MR",
                    "name": "Jane Doe",
                    "ckyc_number": "XXXXXXXXXXXXXXX"
                }
            ],
            "document_submission_type": "CERTIFIED_COPIES",
            "documents": [
                {
                    "base64": "<base64>",
                    "type": "OFFICIALLY_VALID_DOCUMENT"
                },
                {
                    "base64": "<base64>",
                    "type": "CERTIFICATE_OF_INCORPORATION"
                }
            ],
            "ids": [
                {
                    "id_number": "ABCDE1234F",
                    "type": "OFFICIALLY_VALID_DOCUMENT"
                },
                {
                    "id_number": "XXXXXXXX1234",
                    "type": "CERTIFICATE_OF_INCORPORATION"
                },
                {
                    "id_number": "ABCDE1234F",
                    "type": "GSTIN"
                },
                {
                    "id_number": "XXXXXXXX1234",
                    "type": "PAN"
                }
            ]
        }
    ] 
}
{
    "decentroTxnId": "DEC001",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "message": "CKYC bulk upload has been initiated",
    "responseKey": "success_initiate_bulk_upload"
}

⚡️Status Updates

Both Individuals and legal entities similar GTS APIs and the response contracts are mentioned below.

📚 Bulk Transaction GTS

{
    "decentroTxnId": "XXXXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "referenceId": "XXXXXX",
        "bulkDecentroTxnId": "XXXXXX",
        "individuals": {
            "requested": 10,
            "processed": 1,
            "successful": 9,
            "failed": 1,
            "pending": 0,
            "failedIdentifiers": [
                "123456789"
            ]
        },
        "stage": "BULK_CKYC_UPLOAD_RECORDS_UPLOADING_SUCCESSFUL",
        "status": "SUCCESS",
        "description": "Records Uploading Succeeded",
        "creationTimestamp": "XXXXXXXXX",
        "lastModificationTimestamp": "XXXXXXXXX"
    },
    "responseKey": "success_bulk_upload_status_extracted"
}

📗 Unit Entity GTS

{
    "decentroTxnId": "XXXXXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "identifier": "123456789",
        "referenceId": "XXXXXX",
        "bulkDecentroTxnId": "XXXXXXXX",
        "stage": "RECORD_VALIDATION_COMPLETED",
        "remarks": "Accepted by CKYC Registry",
        "status": "PROCESSING",
        "description": "Record Validation Completed",
        "creationTimestamp": "XXXXXXXXXX",
        "lastModificationTimestamp": "XXXXXXXXXX"
    },
    "responseKey": "success_bulk_upload_entity_status_extracted"
}

Native Setup & CKYC SFTP Guide

Below are the prerequisites required before you can natively set up your application with Decentro’s CKYC Upload APIs.

  • Step 1: You will need to send your FI code to Decentro. We need this to validate that you are a registered financial institution.
  • Step 2: Decentro will email you the form here with our IP addresses filled up which you can add your details before mailing.
  • Step 3: Email the form to CERSAI and receive the login credentials for the SFTP server in 3-4 working days.
  • Step 4: Send the SFTP login credentials to Decentro.
  • Step 5: You can then use the portal to approve all the Bulk Uploads that Decentro has processed.

You can manage the authorization in the “Bulk Upload Authorization” in the CKYC Portal as shown below.

CERSAI KYC Managmentment >> Bulk Upload Authorization

You can also view the successful SFTP bulk upload responses in the same place where you view regular bulk upload responses, in the “Bulk Upload Response” section.

If you are a financial institution that does not have CKYC credentials, we encourage you to use Decentro’s CKYC Upload without Native Setup as UAT testing and go live on your FI code. If you are interested in getting your own credentials, please refer to Appendix 1 and 2.

Appendix 1: How to get your own CKYC credentials?

The process for Financial Institutions (FIs) to register with the Central KYC Registry is long and tedious. If you are willing to go through this painstaking ordeal, then the process is as follows:

  • Visit the website of CKYC here -> Central KYC (CKYC).
  • Click to register a new FI registration.
  • First, you have to add the details of an individual who is the “admin” in this case.
  • Then, you have to enter the details of your financial institution.
  • Provide the details of the regulating body you are registered with (RBI, SEBI, etc).
  • Download the filled FI registration form and submit it along with the required documents.

Appendix 2: Documents required for CKYC credentials

  • A Duly signed Institution Registration Form of the FI
  • Licence, Certificate, and Notification issued by the regulator
  • PAN card of the Financial Entity
  • Corporate Identification number in case the Institution holds multiple Licences
  • In the case of Co-Operative Banks or Societies, you need to submit a Registration Certificate issued by the concerned authority
  • The Authorization letter from the competent authority for Admin Users should be signed by the Authorised Signatory/ Director
  • Certified copy of the photo identity card of the user administrator issued by the respective institution
  • Certified copy of any ID proof of the user administrator.