
KwiikPay: a cross-border payments and neo-banking platform
From 2024 to January 2026 we designed and built KwiikPay's platform end to end: the technology architecture, the platform itself and a custom neo-banking layer connected to multiple bank rails, with a double-entry ledger, real-time FX and stablecoin settlement underneath.
- TypeScript
- React
- React Native
- Node.js
- PostgreSQL
- Supabase
- Hono
- AWS
- Docker
Challenge
KwiikPay set out to give businesses named accounts in GBP, EUR, USD and other currencies, conversion at a rate they see before they confirm, and payouts that land the same day instead of in two to five days over correspondent banking.
Behind that simple promise sit several regulated partners: banking-rail and virtual IBAN providers, liquidity for instant FX, a stablecoin issuer, payout partners, crypto custody and identity verification. Each has its own API, webhooks, status values and retry rules. The platform had to:
- keep one authoritative record of every customer balance across fiat, stablecoins and crypto, down to the smallest unit
- make every money movement safe to retry, so a repeated webhook or a network timeout can never pay out or credit twice
- hide multi-leg routing from customers: they send GBP and the recipient gets paid, without needing to know a stablecoin leg was used in between
- verify businesses, their owners and every beneficiary before any money moves
- keep partners swappable, so changing a vendor doesn't mean rewriting the product
Approach
Architecture and neo-banking layer
- We designed the technology architecture and system structure, then built the platform on top of it.
- A custom neo-banking layer connects KwiikPay to multiple banking and payment rails behind one internal interface, so accounts, payments and partners can be added or swapped without rewriting the product.
Double-entry ledger
- Every transaction posts balanced debit and credit entries. Customer balances, KwiikPay's own revenue and partner costs live in separate ledgers that reconcile against each other.
- Amounts are stored in atomic units, so stablecoin and crypto balances are exact alongside GBP, EUR, USD and other assets.
- Two-phase entries reserve funds when a payout starts, then settle or reverse them when the partner confirms.
- Duplicate protection is enforced by the database, not just the code: each external event can post only once.
- A simulation harness checks the ledger rules against 1,000 synthetic trades before any schema change.
Payments and FX routing
- A routing service quotes the available rails in parallel and picks the cheapest one that is fast enough for each currency pair and destination.
- A payment state machine (created, priced, debited, FX executed, outbound, completed) with explicit failure lanes, so nothing fails silently.
- Bridged FX, for example GBP to USDC to EUR, recorded as a single customer conversion.
- Layered pricing: corridor defaults, per-customer overrides and tiered fees, resolved in one place.
Stablecoin settlement, invisible to customers
- USDC runs underneath as a settlement rail through a pooled treasury account. Customers see fiat in, fiat out, a rate and an arrival time. They never have to hold or swap crypto unless they choose to send to a wallet.
Onboarding and compliance
- Invitation-only business onboarding: company details, directors and owners, an automatic sanctions and PEP pre-check, then full document KYB inside the dashboard, then account provisioning.
Dashboard, mobile app and website
- A treasury dashboard for balances, payments, initiator and approver roles, FX, beneficiaries, statements, team access and compliance status.
- A React Native mobile app.
- A static marketing website with corridor tables and pricing.
Designed for what comes next
We also designed the next layers of the platform: per-swap instant settlement so ledger and account balances always match, emerging-market payout corridors, an OTC desk for large trades, beneficiary screening at the moment a payee is added, and an API-first core that lets partner fintechs open accounts and move money through one OpenAPI-defined API, with tenant isolation enforced in the database.
Results
- From 2024 to January 2026, teams.pk delivered KwiikPay's architecture, platform and neo-banking layer on multiple bank rails.
- The ledger passes 21+ invariants across 1,000 simulated trades, with zero breaks in the double-entry cross-checks.
- Each hop of a fiat-to-fiat conversion is designed to complete in under a second.
- According to kwiikpay.io, KwiikPay today offers named accounts in 40+ currencies across 30+ corridors, with same-day settlement in most corridors and 24/7 availability.