Manual KYC Verification (mKYC)
A step-by-step guide to verifying an entity that has completed an in-person or offline identity check.
What is Manual KYC?
Manual KYC (mKYC) is the process of verifying a customer’s identity using physical documents that are sighted and confirmed by an authorised representative (e.g., during a face-to-face meeting).
This guide explains how to use the FrankieOne API to record the outcome of a manual verification, ensuring it is correctly reflected in your compliance workflows and audit trails.
How It Works: The FrankieOne Approach
FrankieOne facilitates mKYC through a simple two-part process that separates the recording of the approval from the verification check itself.
1. Log the Manual Approval via API
You make a single API call to create special “Manual” Process Results for an entity. This acts as a permanent record that a trusted employee has verified the customer’s identity documents in person.
2. Verify via Workflow
A dedicated Manual KYC step within your configured workflow checks for the existence of these “Manual” Process Results. If they are present and meet your configured policy, the step passes, allowing the entity to proceed through the workflow just like an electronic verification.
Implementation Guide
This guide will walk you through the API calls required to perform a manual KYC verification.
Prerequisites
Before you begin, ensure you have the following:
- An existing
entityIdfor the individual you want to verify. - The entity has all the necessary information and documents (e.g., name, address, date of birth, and document details with
documentIds) already added to their profile via the API. - A workflow has been configured in your FrankieOne instance that includes the
Manual KYCstep.
Step 1: Log the Manual Approval
First, you must log that the manual verification has taken place. You do this by calling the POST /v2/individuals/{entityId}/results/mkyc endpoint. This request tells FrankieOne to create the special “Manual” Process Results (PROs) that will be used as evidence in the workflow.
Request Body Explained:
approvedBy: (string) The name or identifier of the person who performed the manual verification. This is crucial for your audit trail.approvedDocuments: (array of strings) A list of thedocumentIds that were sighted and approved as part of the check.comment: (object, optional) A comment to add context to the approval.
A successful request will return a 200 OK response containing the newly created PROs. Note the key fields that identify these as manual results: providerResult.name is set to MANUAL and result is MATCH.
Step 2: Execute the Verification Workflow
With the manual approval logged, you can now execute your standard verification workflow. The Manual KYC step in this workflow will automatically detect the PROs created in Step 1 and pass if your configured rules are met.
In the workflow execution response, you will see the Manual KYC step result. Look for provider: "MANUAL" and a result of MATCH or PASS to confirm success.
Configuring the Manual KYC Step
The logic that determines a successful manual verification is defined within the Manual KYC workflow step, not in the API call. The API call simply logs the evidence (approvedDocuments); the workflow step evaluates that evidence against your business rules.
Below is an example of a policy configuration within a workflow step.
In this example, to manually approve an Australian entity, you could satisfy the first requirement by logging an approval with a single documentId that corresponds to a PASSPORT.
Invalidating Manual Results
If you need to revert a manual approval (e.g., to perform a new electronic check), you can invalidate all existing manual results for an entity.
Call the POST /v2/individuals/{entityId}/results/mkyc/invalidate endpoint. This will mark all existing manual PROs as MARKED_INVALID, causing any subsequent Manual KYC workflow steps to fail until a new manual approval is logged.
