Advanced KYC Flow

Implementation guide for Advanced KYC.

📘

Do I have to switch?

Currently, no, you are not required to switch to Advanced if you are already using the Classic KYC flow. While there is no current ETA, we do plan to eventually sunset the Classic flow and only support Advanced KYC.

Implementation Guide

This guide is primarily meant to walk customers with the existing Classic flow through switching to Advanced KYC. Please note that this process is not supported by our SDK's.

If you are a brand-new customer without the Classic flow built out, please see our KYC Flows Overview doc for a list of the endpoints to build out for the Advanced KYC flow.

Code Changes

Note that the below is an overview of changes to make. Please see the linked endpoint docs for more specifics on requirements, requests, and responses.

Existing Endpoints

  • New required verification_uuid field in request. The ID of the verification record the document is for must be provided.
  • New provider field in the request. Optional. Default is ALLOY (only valid option, currently).
  • New is_front field in the request. This is a boolean to designate the front and back of the document being uploaded. Default is true, so only required to set to false for the back of documents.
  • NOTE: You will only need to upload a single document for the new KYC flow. There will no longer be any need to upload multiple documents for a single review.

New Endpoints

  • The endpoint you'll use to kick off the KYC verification process after registering a new end user instead of /request_kyc.

  • Supply a verification UUID to return the full verification record. Use instead of /check_kyc.

  • Returns the full list of verification records for a single user_handle. Use instead of /check_kyc.

📘

Do not poll /get_verification or /get_verifications

Just like how we recommend against polling /check_kyc and using webhooks instead, please use our webooks instead of polling these endpoints.

  • Resumes the verification process after updating end user PII or uploading a document.

Endpoints No Longer Needed

/request_kyc

  • Use /kyc.

/check_kyc

  • Use /get_verification or /get_verifications instead.

Webhooks

  • Fires on the transition between pass/fail. Rely on kyc_action for all updates in between.

  • Fires on documents_required updates or review. Rely on kyc_status for pass/fail update.

Testing

The triggers for Classic KYC do not apply. Please see the Advanced KYC Testing doc for the new triggers.

KYB

  • There are no new endpoints, but business members are now required to be linked prior to calling /kyc on the business entity. This will run verifications on all the business members, and the business.
  • If there is a change in business members and you need to add a new one, you can link that member before or after they have passed KYC, but you should run KYC on just that individual entity rather than re-running the business through KYB.
    • In this scenario, if you are linking a new member that has not yet passed KYC, /link_member will kick off the verification process - no need to call /kyc. The verification_uuid will be returned in the /link_member response.

Console Setup Requirements

With Advanced KYC, you will create your own KYC Flows in the Console to be submitted to our Compliance team for approval. You are required to have one for KYC, but if you use KYB you will need two Flows - one for KYC and one for KYB.

Creating a New KYC Flow

  1. Navigate to the Applications tab

  2. Find the app you want to create a KYC Flow for and click the KYC Flow tab

  3. Click Add New

  4. After clicking Add New, fill out the information and choose KYC options for your new Flow

    1. Name: Required. Give your KYC Flow a name

    2. Version: Pre-populated. Once your Flow has been approved, you have the option to create a new version of the Flow with different options.

    3. Pre-Defined Option Set: Required. Choose between KYC, KYB with EIN, and KYB without EIN. This automatically selects a group of options.

  5. Once you've chosen a Pre-Defined Option Set, the Options section will appear. The pre-defined options are already selected, greyed out. These cannot be removed. Additional options can be added here if desired.

  6. Save your KYC Flow

    1. NOTE: After you save your KYC Flow, you will see the Flow UUID populated.

Editing an Existing KYC Flow

🚧

When editing is allowed

Editing is only allowed before you submit a KYC Flow to our Compliance team for approval. Once submitted, editing is no longer allowed.

The only exception is when a Flow is denied by the Compliance team - the status will change to Denied and you can make edits, then resubmit for approval.

Once you have an existing Flow populating the list at the bottom of the KYC Flows tab, click "View Details" (far right) then "Edit"


Submitting a KYC Flow for Approval

Once you have an existing Flow populating the list at the bottom of the KYC Flows tab and you are ready for Sila's Compliance team to review it, click "Submit for Approval" (far right). The status will change to Pending Approval, and no further edits can be made to this Flow.

📘

Sandbox Approval

In the Sandbox environment ONLY, approval is automatically granted once you click "Submit for Approval"

Creating a New Version

If you need to make changes to a KYC Flow after it's been approved, you can create a new version.

  1. Click "View Details," then "Add New Version"

  2. You CANNOT edit the Name or the Flow UUID. You CAN change the Pre-Defined Option Set and the Options.

  3. Once your changes have been made, click "Save" and this will add a new In Process Flow to the list, with a different Flow UUID. Make further edits as needed, then submit for approval.