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.

Overview

Verifow operates as a multi-tenant platform. Each bank or financial institution operates within its own tenant, with complete data isolation from other institutions.

What Is a Tenant?

A tenant represents your organization within Verifow. All your transactions, cases, rules, reports, and users exist within your tenant boundary.

Tenant Characteristics

FeatureDescription
Data IsolationTransaction data, cases, and user records are completely isolated from other tenants
Independent RulesEach tenant maintains its own custom rules alongside the shared CBN mandatory rules
Dedicated AdminsEvery tenant has BANK_ADMIN users who manage day-to-day operations
Engine ConfigurationRisk weights and thresholds can be tuned per tenant
Auto-Seeded RulesNew tenants automatically receive the 7 CBN mandatory rules
KYC Provider SelectionEach tenant chooses between embedded providers or BYOL (Bring Your Own License)

Data Boundaries

The following data is scoped to your tenant and never shared:
  • Transaction screening history
  • Compliance cases and notes
  • Custom detection rules
  • KYC applications and verification results
  • KYB applications and corporate verification data
  • Regulatory reports
  • Audit logs
  • User accounts and roles

KYC Provider Configuration

Each tenant independently controls how customer identity verification is performed.

Provider Modes

ModeDescriptionUse Case
EMBEDDEDPlatform-managed providers (Prembly → Dojah fallback)Default — no setup required
BYOLTenant provides their own KYC API credentialsInstitutions with existing provider contracts

Configuring BYOL

BANK_ADMIN users can configure BYOL from Dashboard → Settings → KYC Provider:
  1. Select BYOL from the mode dropdown.
  2. Enter your provider details:
    • Provider Name — e.g., “Smile Identity”
    • Base URL — Your provider’s API root
    • API Key / App ID — Authentication credentials
    • Endpoints — Paths for NIN, BVN, and Liveness checks
    • Response Mapping — JSON paths to extract first/last names
    • Match Confidence — Threshold for name match success (0–100)
  3. Save — new verifications immediately use your provider.
The configuration is stored securely as JSON in Tenant.kycProviderConfig and is never exposed to other tenants.

Automated VPS Provisioning

For institutions requiring a dedicated deployment, Verifow includes an automated VPS provisioning script.

What It Does

scripts/provision-bank-vps.sh creates a fully configured single-tenant deployment:
  • Generates secure secrets (JWT, DB, MinIO)
  • Installs Nginx with SSL via Certbot (auto-renewal)
  • Creates a systemd service (ratel-{slug}.service)
  • Configures log rotation at /var/log/ratel-{slug}/
  • Hardens UFW firewall (exposes only 22, 80, 443)
  • Optionally installs compliance engines (Marble, Tirreno)

Usage

./scripts/provision-bank-vps.sh \
  --bank-name "First Bank of Nigeria" \
  --slug "firstbank" \
  --domain "compliance.firstbank.ng" \
  --admin-email "admin@firstbank.ng" \
  --with-engines

Arguments

FlagRequiredDescription
--bank-nameFull institution name
--slugShort identifier for services/files
--domainPrimary domain for the deployment
--admin-emailAdmin email for SSL notifications
--with-enginesAlso provision Marble + Tirreno engines
--skip-sslSkip Certbot SSL (use for internal deployments)
Note: Tenant-level configuration changes for engine weights or feature flags are handled by platform administrators. Contact your account manager if you need adjustments beyond KYC provider selection.