Skip to main content

Security

How we protect your data, your merchants, and your money.

Encryption

All sensitive data is encrypted at rest using AES-256-GCM, an authenticated encryption standard that protects both confidentiality and integrity. This includes:

  • — Paystack secret keys (lender-managed, never visible to Floatra admins)
  • — Bank account numbers (stored encrypted, displayed masked)
  • — BVN and phone numbers (encrypted values + SHA-256 hashes for lookup)
  • — Mandate references and identity documents

Data in transit is protected via TLS. Database connections require SSL in production.

Authentication

Floatra uses per-role JWT isolation. Each user type (platform, lender, merchant, agent, admin, ops) has a distinct signing secret. Compromising one role's token cannot be used to access another role.

  • — Platform and lender auth via API key exchange for JWT
  • — Merchant and agent auth via OTP (SMS/WhatsApp) with rate limiting
  • — Admin access requires TOTP two-factor authentication in production
  • — Token revocation via Redis blacklist on key rotation or account deactivation

Webhook Verification

All inbound webhooks from payment providers are verified before processing:

  • — HMAC-SHA512 signature verification with constant-time comparison
  • — Source IP validation against known provider ranges
  • — Replay protection via timestamp validation (2-minute window) and nonce deduplication (7-day Redis TTL)
  • — Amount cross-verification against the payment provider API before recording repayments

Identity Verification

Merchant identity is verified through licensed providers before any credit access:

  • — BVN and NIN verification via Smile Identity with biometric facial matching
  • — Three-tier confidence scoring: auto-accept (80%+), manual document review (60-79%), auto-reject with fraud logging (below 60%)
  • — Watchlist screening on the verification result: a flagged identity is blocked, blacklisted, and recorded as a fraud event
  • — Explicit NDPR-compliant consent required before biometric data collection

Financial Controls

  • — Database row-level locking on all financial writes (prevents race conditions on exposure limits)
  • — Idempotency enforcement on loan creation and repayment recording
  • — Overpayment protection with decimal-precision balance calculations
  • — Lender exposure caps checked atomically inside database transactions
  • — Disbursement error classification (retryable vs. fatal) prevents wasting retries on permanent failures

Audit Trail

All sensitive operations are recorded in an append-only audit log with advisory-locked hash chain integrity. This includes loan creation, status transitions, repayments, admin actions, and consent grants. Every loan outcome additionally writes an immutable decision record carrying a 7-year retention marker, per CBN expectations for credit decision records.

Infrastructure

  • — Docker containers running as non-root users
  • — Helmet.js with strict CSP, HSTS (1 year, preload), and X-Frame-Options
  • — CORS restricted to HTTPS origins in production
  • — Redis-backed distributed rate limiting across all instances
  • — Graceful shutdown with connection draining
  • — Multi-instance safe: Redis Pub/Sub event bridge for cross-instance events

Data Protection

Floatra complies with the Nigeria Data Protection Act (NDPA) and the Nigeria Data Protection Regulation (NDPR). A Data Protection Impact Assessment (DPIA) has been completed for biometric verification processing. For full details, see our Privacy Policy.

Responsible Disclosure

If you discover a security vulnerability, please report it to security@floatra.com. We take all reports seriously and will respond within 48 hours.