Security
Built like the regulated lenders we serve.
Vantage moves money for banks, MFIs, and government programmes. That means the platform’s security posture is not a marketing checkbox — it is what we are evaluated on before any partner gets to commercial discussions. Here is what is in the box on day one.
Authentication & session control
JWT-based auth with 15-minute access tokens and 7-day refresh. Bcrypt for password and PIN hashing at min 12 rounds. Auth endpoints are rate-limited at 5 attempts per minute. Three failed card-PIN attempts auto-lock the card.
Role-based access at every route
Every API route declares the role(s) allowed to call it — super_admin, partner_admin, partner_user, farmer, dealer. The dependency graph is enforced by FastAPI, not by middleware that can be bypassed by route bypass.
Multi-tenant isolation
Partner data is logically isolated at the repository layer. BaseRepository auto-scopes every query by tenant_id pulled from JWT claims via TenantMiddleware. Cross-partner reads are blocked at the SQL level, not just the UI.
Encrypted data at rest and in flight
PostgreSQL encryption-at-rest on the managed cluster, TLS 1.3 between every service hop. Card numbers are never stored raw — only a bcrypt hash plus the last four digits. KYC documents live in object storage with signed-URL access, never on disk.
Immutable financial ledger
Every cent that moves through Vantage writes a balanced double-entry journal line. The ledger is append-only — corrections post compensating entries, never overwrites. Quarterly audit exports are one click and reconcile to the cent.
KYC compliance framework
Per-country KYC engines for ZW, ZM, KE, NG, ZA, BW, with a plug-in interface for new markets. Document types, ID formats, watch-list checks, and review SLAs are configurable per partner policy and per country regulator.
Backups, monitoring, response
Daily encrypted database backups with 30-day retention. Sentry instrumentation on both frontend and backend. Structured audit logs on every authentication, allocation, redemption, and settlement event. Security disclosures handled at security@vantage.co.zw.
Data residency on Enterprise
Default deployment uses a managed PostgreSQL cluster in a single region. Enterprise customers can request in-country data residency — typically a dedicated database per country, sharing the same application binary.
Found a security issue? Email security@vantage.co.zw — we acknowledge within 24 hours and follow coordinated disclosure.