Digital Banking
Same bank on every surface
No feature that exists only on iOS. No screen that is a wrapped web page pretending otherwise. The API can do everything the app can do, because the app is built on it.
- App rating
- 4.8 / 5
- Cold start
- 0.9s
- API uptime
- 99.99%
- WCAG level
- 2.2 AA
Principles
Four rules we hold the software to
They are unglamorous, and they are the reason the app feels quiet.
Fast on a bad connection
Every screen renders from local state first and reconciles in the background. Budget: 1.2s to interactive on 3G.
Accessible by default
WCAG 2.2 AA across app and web, tested with VoiceOver, TalkBack and keyboard-only every release.
Parity across platforms
One specification, three implementations, one release train. Nothing ships to one platform alone.
API-first
The app consumes the same public API you do, so nothing is privileged or undocumented.
For developers
An API you can read in an afternoon
REST over HTTPS, idempotency keys on every mutation, cursor pagination and signed webhooks. Sandbox keys are available before your account is even open.
Versioned, never silently broken
Breaking changes ship as a new version with a minimum twelve-month overlap.
Signed webhooks with replay
HMAC-signed events, with a 30-day replay window and delivery logs you can inspect.
Idempotency everywhere
Every payment endpoint accepts an idempotency key, so retries can never double-send.
Realistic sandbox
Simulate declines, recalls, FX moves and webhook failures deliberately.
curl https://api.nordhavenbank.example/v2/payments \
-H "Authorization: Bearer $MT_KEY" \
-H "Idempotency-Key: 8f1c-4d2a" \
-d amount=125000 \
-d currency=GBP \
-d beneficiary_id=ben_3Kd91 \
-d reference="INV-2291"
{
"id": "pay_7Qm42",
"status": "settled",
"recall_until": "2026-08-06T09:41:04Z",
"settled_in_ms": 3820
}Performance budget
Numbers we refuse to exceed
A release that breaks a budget does not ship. These are measured on a mid-range Android device over a throttled connection, not a flagship on office wifi.
Enforced per release
- Cold start to interactive
- < 1.2s
- Balance screen render
- < 400ms
- Payment confirm round trip
- < 900ms
- App download size
- < 24 MB
- Web Largest Contentful Paint
- < 1.8s
- Web JavaScript budget
- < 180 KB gzip
FAQs
Questions, answered plainly
Next step
Try the platform, not the brochure
Sandbox keys are free and instant. Open an account and the same credentials work in production.

