Duplicate Checks
Introduction
Duplicate checks help detect and prevent the creation of multiple customer records for the same individual within KYC systems. They are essential for maintaining data integrity, reducing fraud risk, and ensuring compliance with regulatory requirements.
Duplicate Step in KYC Workflows
The duplicate step is a critical component of the KYC workflow, enabling organizations to detect and manage potential duplicate entities during onboarding. This step provides:
- Automated identification of possible duplicates using configurable, rules-based matching logic.
- Manual review and resolution capabilities for operators to confirm or dismiss flagged duplicates.
- Seamless integration with existing KYC processes, supporting both operational efficiency and regulatory compliance.
To implement duplicate checks, you must add the duplicate step to your KYC workflow. This step will automatically run during the onboarding process, checking for potential duplicates based on defined matching rules. Speak with your FrankieOne representative to configure the duplicate step in your workflow.
Key Benefits
Integrating duplicate checks into onboarding delivers key benefits:
- Strengthens fraud prevention by detecting and blocking attempts to create multiple accounts for the same individual or entity.
- Improves data integrity by consolidating duplicate records, ensuring a single, authoritative customer profile.
- Enhances customer experience by reducing errors and inconsistencies across systems.
- Supports compliance with anti-money laundering (AML) and know your customer (KYC) regulations by maintaining accurate and up-to-date records.
This approach helps organizations maintain accurate records, reduce operational risk, and meet compliance requirements.
How It Works
The duplicate step in FrankieOne’s KYC workflow identifies potential duplicate entities based on configurable matching rules. It allows operators to review and resolve duplicates during the onboarding process, ensuring data integrity and compliance.
Prerequisites
- KYC Workflow: The duplicate step must be included in the KYC workflow.
- Matching Rules: Define matching rules in
duplicate.json
to specify how duplicates are identified.
Configurations starting with EXACT
are exact matches, while those starting with FUZZY
allow for variations in data (e.g., typos). With the current implementation, only EXACT
matching is supported. The FUZZY
matching configuration is provided for future compatibility.
Example Duplicate Configuration
-
Risk Profiles: Configure risk profiles in
risk_profiles.json
to handle duplicates appropriately.Example Risk Configuration
Process Overview
Create Entity
Start by creating an entity using the KYC API, including attributes like name, date of birth, and identifiers.
Example Request for Create Individual Endpoint
Run Workflow
Execute the workflow that includes the duplicate step. This will trigger the duplicate check against existing entities.
Example Request for Execute Workflow Endpoint
Execute a workflow for an individual's service profile.
This operation initiates the configured workflow, including the duplicate step, for the specified individual.
Replace all placeholder values (e.g., YOUR_API_KEY
, ENTITY_ID
, SERVICE_NAME
, WORKFLOW_NAME
, etc.) with your actual data before executing.
{{baseHost}}
should be set to your API base URL (e.g., https://api.frankieone.com
).
Check for Duplicates
The duplicate step will automatically check the entity against existing records based on the defined matching rules. If duplicates are found, they will be returned in the response.
Review Results
Review the results of the duplicate check. The response will include potential duplicates and their matching fields.
Example Response for Duplicate Check PRO
Resolve Duplicates
After reviewing the results, the operator can resolve duplicates by updating the process results. This is done by sending a PATCH request to the results endpoint with the appropriate manualStatus
value.
There are three possible outcomes when resolving duplicates, each indicated by the manualStatus
field:
-
FALSE_POSITIVE (FP):
Indicates the result is not actually a duplicate. The process result is marked as FP, and no duplicate relationship is created.FP PRO Example
-
TRUE_POSITIVE_ACCEPT (TPA):
Confirms the found entity is a duplicate, but onboarding continues for the focus entity. TheduplicateEntityId
is the duplicate, and the PRO belongs to the focus entity (entityId
).TPA PRO Example
-
TRUE_POSITIVE_REJECT (TPR):
Confirms the found entity is a duplicate, and onboarding is stopped for the focus entity. TheentityId
is the duplicate, and theduplicateEntityId
is the non-duplicate. The PRO still belongs to the focus entity.TPR PRO Example
Note:
It is possible for a single entity to have multiple duplicate results pointing to it, indicating it is a duplicate for several other entities. Always consider the full set of duplicate results when managing entity state.
Example Request to Update Duplicate Results
Key Concepts
Entity Deletion and Duplicate Relationships
When an entity is deleted, any duplicate relationships involving that entity—whether it is the focus or the duplicate—are also removed. There may be multiple such relationships. After deletion, the system re-evaluates the duplicate state of any impacted entities. If an entity no longer has any relationships indicating it is a duplicate, its duplicate state may be revoked.
Note:
The duplicate state may or may not change immediately after deletion, depending on whether other duplicate-indicating relationships remain. See Multiple Duplicate-Indicating Results for more details.
Duplicate State and Relationship Management
The DUPLICATE
state is an entity-level state (also reflected in the service profile) managed exclusively by the results of the Duplicate step and subsequent operator actions.
- When a potential duplicate is detected, a Process Result Object (PRO) is created.
- The entity’s state is not immediately changed; the operator must review and update the result.
- Marking an entity as a duplicate also creates a relationship between the focus entity and the duplicate.
- These relationships are updated as results are reviewed or as the workflow is rerun.
How a PRO Indicates a Duplicate
An entity is marked as a duplicate if there is at least one relationship (from a PRO) indicating it is a duplicate.
Result-Based Duplicate Marking
The outcome of operator review determines both the duplicate state and relationships:
- TRUE_POSITIVE_ACCEPT (TPA) or TRUE_POSITIVE_REJECT (TPR):
- The entity may be marked as a duplicate.
- A duplicate relationship is created.
- FALSE_POSITIVE (FP):
- The entity may have its duplicate state revoked.
- The duplicate relationship is removed.
Example Scenarios
Scenario 1: Single Focus Entity
- Entities: A, B, C.
- Onboard A; duplicate step finds B and C as potential matches.
- Operator marks B as FP:
- No relationship created, no duplicate state change.
- Operator marks C as TPA:
- Relationship created between A and C.
- If C was not previously a duplicate, it is now marked as
DUPLICATE
.
Scenario 2: Multiple Entities Reference the Same Duplicate
- Entities: A, B, C.
- Onboard A; duplicate step finds B as a potential match.
- Operator marks B as TPA:
- Relationship created (A → B).
- B marked as
DUPLICATE
if not already.
- Onboard C; duplicate step finds B as a potential match.
- Operator marks B as TPA:
- Relationship created (C → B).
- B remains in
DUPLICATE
state.
- Later, operator marks A → B as FP:
- Relationship (A → B) removed.
- B remains in
DUPLICATE
state due to C → B.
Step-Based Duplicate Marking
When the duplicate step is rerun (e.g., after entity data changes), previously detected duplicates may no longer match:
- If an entity previously marked as a duplicate is no longer matched, the corresponding relationship is removed.
- The PRO is marked as stale.
- If no relationships remain indicating the entity is a duplicate, its duplicate state is revoked.
Example
- Entities: A, B.
- Onboard A; duplicate step finds B as a match.
- Operator marks B as TPA:
- Relationship created (A → B).
- B marked as
DUPLICATE
.
- Later, A’s data changes and the duplicate step is rerun.
- B is no longer matched:
- Relationship removed.
- If B has no other duplicate relationships, its
DUPLICATE
state is revoked.
Multiple Duplicate-Indicating Results
An entity can have multiple PROs and relationships indicating it is a duplicate for several other entities. The duplicate state is only revoked when all such relationships are removed.
Summary Table
Notable Objects
-
Results:
Process-Result-Manual-StatusEnum-Duplicate
- Process result should reference matching fields
-
Relationships:
- Duplicates relationship in entity response
-
Audit Events:
Supplementary-Data-AuditEvent-Duplicate
- Types:
DUPLICATE
,ENTITY_PROFILE_STATE_UPDATE
- Profile state changes:
Supplementary-Data-AuditEvent-Entity-Profile-State-Change