Managing Duplicate Entities
What are Duplicate Checks?
Duplicate checks are essential for maintaining data integrity, reducing fraud risk, and ensuring compliance. They prevent the creation of multiple records for the same individual within your system.
FrankieOne integrates this capability directly into your KYC workflow via a dedicated DUPLICATE
step. 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 to support both operational efficiency and regulatory compliance.
To implement duplicate checks, you must have the DUPLICATE
step added to your KYC workflow. Speak with your FrankieOne representative to configure the duplicate step and its matching rules.
How Duplicate Checks Work
The process is designed to flag potential duplicates during onboarding and provide your team with the tools to resolve them.
1. Workflow Execution
When you execute a workflow for a new or updated entity, the DUPLICATE
step runs. It compares the entity’s attributes (e.g., name, DOB, document number) against all other entities in your system based on your configured matching rules.
2. A 'HIT' is Returned
If a potential duplicate is found, the workflow step returns a result
of HIT
, and a DUPLICATE
issue is created. This typically causes the overall workflow status
to become REVIEW
.
3. Detailed Results are Generated
For each potential duplicate found, a Process Result Object (PRO) is created. This PRO contains the granular details of the match, including which fields matched and the entityId
of the potential duplicate.
Implementation and API Guide
Step 1: Interpreting the Duplicate Check Result
When the DUPLICATE
step returns a HIT
, you need to parse the processResults
within that step to understand the match. Each PRO will have class: "DUPLICATE"
.
The most important information is in the supplementaryData
object.
Example: supplementaryData
for a Duplicate PRO
Example: supplementaryData
for a Duplicate PRO
Key supplementaryData
Fields:
duplicateEntityId
: TheentityId
of the existing profile that was matched.matchedFields
: An array detailing exactly which attributes matched between the two entities (e.g.,NAME
,ADDRESS
). It includes the specificobjectId
for each attribute and thematchStrength
.matchedRules
: Shows which configured rule was triggered to create this match.
Step 2: Resolving Duplicates
After reviewing the evidence, an operator must classify the match. This is done by sending a PATCH
request with the processResultId
and a manualStatus
.
Endpoint:
Understanding the Manual Statuses
The manualStatus
you send should reflect the operator’s decision.
Example: Resolve a Duplicate as False Positive
After resolving all duplicate-related issues
, you should re-run the workflow. The DUPLICATE
step will re-evaluate based on your resolutions, and the overall workflow status
can then update from REVIEW
to PASS
.
Key Concepts: State and Relationships
- Relationships: When a duplicate is confirmed (
TRUE_POSITIVE_ACCEPT
orTRUE_POSITIVE_REJECT
), a permanentrelationship
is created between the two entities. You can see this in the response ofGET /v2/individuals/{entityId}
under therelationships.duplicates
array. DUPLICATE
State: An entity’s service profile is moved to theDUPLICATE
state when a relationship identifies it as such. An entity remains a duplicate as long as at least one relationship points to it. If all such relationships are removed (e.g., by being marked asFALSE_POSITIVE
or if the source entity is deleted), itsDUPLICATE
state will be revoked.
Configuration (Reference)
The matching logic for the DUPLICATE
step is highly configurable by the FrankieOne team.
Example duplicate.json
Matching Rules
Example duplicate.json
Matching Rules