Skip to main content

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:
ModeProviderConfiguration
EMBEDDEDPlatform-managed (Prembly → Dojah fallback)None required
BYOLTenant-managed via CustomProviderJSON 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:
FieldPurpose
requestMappingMaps internal field names to provider API fields. Use {{nin}} for dynamic values or 'NIN' for literals.
responseMappingJSON paths to extract firstName and lastName from the provider response.
matchConfidenceMinimum 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:
StatusMeaning
PENDINGSubmitted, awaiting document upload
DOCUMENT_UPLOADEDID documents uploaded
NIN_VERIFIEDNIN check passed against provider
BVN_VERIFIEDBVN check passed against provider
LIVENESS_PASSEDBiometric liveness and face-match passed
APPROVEDFully verified by compliance officer
REJECTEDFailed verification or fraudulent documents
EXPIREDVerification 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.
ConditionScoreOutcomeWhat Happens
No KYC record40REVIEWOfficer notified, customer prompted to complete KYC
PENDING / DOCUMENT_UPLOADED20APPROVEApplication in progress — transaction proceeds
NIN_VERIFIED / BVN_VERIFIED / LIVENESS_PASSED0APPROVEPartially verified — no risk contribution
APPROVED0APPROVEFully verified — no risk contribution
EXPIRED50REVIEWOfficer notified, re-verification required
REJECTED70ESCALATECase 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.