Documentation Index
Fetch the complete documentation index at: https://docs.verifow.com/llms.txt
Use this file to discover all available pages before exploring further.
Every transaction checks the sender’s KYC verification status using their BVN. The result feeds directly into the screening pipeline’s KYC Verification engine.
Identity Verification Providers
Embedded Providers (Default)
BVN, NIN, and vNIN verification calls are made through integrated providers (Prembly, Dojah). When you trigger verify-bvn or verify-nin, the platform calls the provider’s API with the ID number and cross-references the returned name against the applicant’s name (including swapped name order, which is common in Nigeria). Liveness checks use face-match and liveness detection APIs.
Bring Your Own License (BYOL)
Tenants can switch to BYOL mode and plug in their own KYC provider via a JSON configuration. This is useful when your institution already has a direct contract with an identity verification provider (e.g., Smile Identity, VerifyMe, Prembly enterprise).
How it works:
| Mode | Provider | Configuration |
|---|
EMBEDDED | Platform-managed (Prembly → Dojah fallback) | None required |
BYOL | Tenant-managed via CustomProvider | JSON config stored per-tenant |
BYOL Configuration JSON (stored in Tenant.kycProviderConfig):
{
"providerName": "SmileIdentity",
"baseUrl": "https://api.smileidentity.com/v1",
"headers": { "Authorization": "Bearer sk_xxx" },
"endpoints": {
"nin": "/id_verification",
"bvn": "/id_verification",
"liveness": "/biometric"
},
"methods": { "nin": "POST" },
"requestMapping": {
"nin": { "id_number": "nin", "id_type": "'NIN'" }
},
"responseMapping": {
"firstNamePath": "result.first_name",
"lastNamePath": "result.last_name"
},
"matchConfidence": 92
}
Key mapping fields:
| Field | Purpose |
|---|
requestMapping | Maps internal field names to provider API fields. Use {{nin}} for dynamic values or 'NIN' for literals. |
responseMapping | JSON paths to extract firstName and lastName from the provider response. |
matchConfidence | Minimum confidence (0–100) to consider a name match successful. |
Admins can switch modes and edit the BYOL config from Dashboard → Settings → KYC Provider.
KYC Application Statuses
Applications progress through the following statuses during verification:
| Status | Meaning |
|---|
PENDING | Submitted, awaiting document upload |
DOCUMENT_UPLOADED | ID documents uploaded |
NIN_VERIFIED | NIN check passed against provider |
BVN_VERIFIED | BVN check passed against provider |
LIVENESS_PASSED | Biometric liveness and face-match passed |
APPROVED | Fully verified by compliance officer |
REJECTED | Failed verification or fraudulent documents |
EXPIRED | Verification expired, re-verification required |
Screening Impact
When a transaction is screened, the KYC Verification engine evaluates the sender’s status. If no KYC application exists, the engine flags it accordingly.
| Condition | Score | Outcome | What Happens |
|---|
| No KYC record | 40 | REVIEW | Officer notified, customer prompted to complete KYC |
| PENDING / DOCUMENT_UPLOADED | 20 | APPROVE | Application in progress — transaction proceeds |
| NIN_VERIFIED / BVN_VERIFIED / LIVENESS_PASSED | 0 | APPROVE | Partially verified — no risk contribution |
| APPROVED | 0 | APPROVE | Fully verified — no risk contribution |
| EXPIRED | 50 | REVIEW | Officer notified, re-verification required |
| REJECTED | 70 | ESCALATE | Case created, officer notified, enhanced due diligence required |
Note: If senderBvn is not provided in the request, KYC status defaults to “No KYC record” (score 40, REVIEW). Always include the sender’s BVN for accurate KYC risk scoring.