Company/Program Management and Automated KYB

Overview

The Company Management and Automated Know Your Business (KYB) process ensures that businesses onboarded onto the Qolo platform meet regulatory and compliance requirements. This guide explains how companies are structured, how they are verified, how programs are created and how KYB processes work within the platform.

This section is applicable for onboarding companies under top company hierarchy and for clients having complex hierarchy requirements.
You must reach out to your implementation manager for more details and setup.

Company Structure and Hierarchy

Companies are structured in a hierarchical model on the Qolo platform. The hierarchy supports multiple levels, allowing for flexible program configurations:

  • Top Company: Created by Qolo and represents the primary entity (e.g., a fintech service provider).
  • Sub-Company (Level 2): Clients of the fintech service provider, created under the top company.
  • Sub-Company (Level 3+): Subsidiaries or associated entities of the client companies.

Example of Company Hierarchy
A fintech service provider (Top Company) can onboard multiple business clients as sub-companies. Each client can have subsidiaries or different divisions set up as additional sub-companies.

This hierarchical structure allows companies to manage their own KYB processes while still being part of an overarching program.


Creating Company and Program

Company and Program can only be created in an existing hierarchy where Top Company and Top Program is already created by Qolo.

Ways to create Company and Program

Company and Program can be created by calling the Create Company API in three different ways:


  1. Creating Company and Program in one request
  • Clients can call the Create Company API and include both the company and program object in the same API request.
  • This method ensures that a company is created first, followed by the program.
  • Potential Issue: If the program hierarchy requires Company KYB to be completed before program creation, the program creation may fail while the company is successfully created.
  • Since Company KYB is an asynchronous process, the program cannot be created immediately if KYB is required.

Use Case: When new sub-companies do not require automatic KYB, and program can be created right away.

{
  "endpoint": "/api/v1/company/create",
  "method": "POST",
  "request_body": {
    "company": { /* company details */ },
    "program": { /* program details */ }
  },
  "response": {
    "company": { /* company details including company_guid */ },
    "program": { /* program details including program_guid */ }
  }
}

  1. Create a Company Only
  • Clients can call the Create Company API with only the company object.
  • This is useful when clients intend to perform KYB verification first before creating a program.
  • Once KYB is completed, the client can create the program separately using the same Create Company API.

Use Case: When a company must pass KYB before program creation.

{
  "endpoint": "/api/v1/company/create",
  "method": "POST",
  "request_body": {
    "company": { /* company details */ }
  },
  "response": { 
    "company": { /* company details including company_guid */ }
  }
}

  1. Create a Program Only
  • Clients can use the Create Company API to create only a program by passing an existing company_guid.
  • This is typically used when a sub-company has already passed KYB, and now only the program needs to be created.
  • The created program will be linked to the existing company.

Use Case: When a company is already verified, and a new program must be associated with it.

{
  "endpoint": "/api/v1/company/create",
  "method": "POST",
  "request_body": {
    "company_guid": "existing-company-guid",
    "program": { /* program details */ }
  },
  "response": {
    "company": { /* company details including company_guid */ },
    "program": { /* program details including program_guid */ }
  }
}

Error Handling

If company creation succeeds but program creation fails, the client will receive an appropriate error message and should retry program creation later.


Automated Company KYB Process

KYB is required for businesses onboarding onto the platform and includes identity verification, compliance checks, and risk assessments.

To facilitate automated KYB, the Company and Program hierarchy must be configured for the same through a KYB service provider.

Qolo currently supports automated KYB through Middesk integration.

Automated KYB Steps

  1. Configure for automated KYB

The client must be configured for Automated KYB on Qolo platform.

  1. Create Company

Company must be created on Qolo platform using the Create Company API.

  1. Perform Company KYB

Using the company_guid from the preceding Create Company API, client must call the Perform Company KYB API.

  1. Listen to the company.updated Webhook

The company KYB is an asynchronous process. Clients must subscribe and listen to the company.updated webhook to get informed when KYB process is completed.


Perform Company KYB API

The Perform Company KYB API is used to send additional details about the company and to request automated KYB.

{
  "endpoint": "/api/vi/companies/performkyb",
  "method": "POST",
  "request_body": {
    "company_guid": "/* company guid */",
  	"addresses": [
      {
        /* Additional Addresses for the Company */
      }
  	],
    "primary_contact": {
     /* Primary Contact at the Company */
    },
    "secondary_contact": {
      /* Optional Secondary Contact at the Company */
    },
    "beneficial_owner": [
      {
        /* Company Beneficial Owners who have more 25% ownership */
      }
    ],
    "controller_officer_info": {
      /* Mandatory Controlling Officer Information */
    },
    "parent_company_info": {
      /* Parent Company Information if applicable */
    },
    "document": {
      /* Documents required to complete KYB. Attestation document must be provided as per the format shared by the implementation manager. */
    }
	}
}

For more details about performing automated KYB, refer to the recipe below:


Company Status

Company status would determine whether a company has successfully passed KYB or not. Possible values should be:

  1. UNVERIFIED -- Default status for every new company
  2. CLEARED / VERIFIED -- Company has passed KYB either through Middesk or through Manual Override
  3. REVIEW -- Data was sent to Middesk or a service provider and is in review
  4. FAILED -- KYB has failed either through Middesk, another service provider or through Manual Override

By default, program can never be created for FAILED status Companies.

However programs may be created for UNVERIFIED or REVIEW status companies if allowed by Platform configurations.


Retrieve Company KYB API

The Retrieve Company KYB API allows client to fetch the company status and the KYB history of a company created on the Qolo platform.

{
  "endpoint": "/api/vi/companies/{company_guid}/kyb",
  "method": "GET",
  "response_body": {
    /* Company Status and Verification Results Array */
  }