API v1.0 · Production

Build on
Olympus Pay

Full API reference, system architecture, and integration guides for the Olympus Pay neobank platform.

Explore API Reference System Documentation
Interactive
API Reference
Every endpoint documented with schemas, examples, and a live try-it-out console. 53 edge functions across 13 categories.
REST 53 endpoints
📐
Architecture
System Documentation
Database schema, security model, provider integrations, KYC flow, account tiers, and deployment guide.
22 sections 10k words
📦
Postman
Collection & Environment
Import pre-configured Postman collections with all variables, auth flows, and test scripts ready to run.
4 collections 35+ variables
🔖
Spec
OpenAPI 3.0
Machine-readable OpenAPI 3.0 spec. Generate SDKs, mock servers, or import into any API toolchain.
OpenAPI 3.0 JSON

Platform & Integrations

External providers used by Olympus Pay edge functions

Supabase
Auth, database (Postgres), Edge Functions, RLS
Live
Zenus / TUUM
Core banking — accounts, payments, cards, compliance
Live
DIDIT
KYC — liveness, document verification, AML screening
Live
Flutterwave
Mobile money, airtime, bills, payment links
Live
Duffel
Flight search, booking, stays, cancellations
Live
Africa's Talking
SMS, WhatsApp, USSD, airtime
Live
Cloudflare R2
Object storage — avatars, receipts, statements
Live
Documenso
e-Signature for Terms of Service
Live
Resend
Transactional email for payment requests
Live
HotelBeds
Hotels, activities, airport transfers
Live
Kong Gateway
JWT validation, CORS, TLS, rate limiting
Embedded
Vercel
Expo web app hosting, edge CDN
Live
Getting Started

Quick Start

1

Import the Postman collection

Download the Olympus Pay Core collection and Environment from the cards above. In Postman: File → Import and select both files. Set the Olympus Pay environment as active.

2

Authenticate

Run 01 · Auth → Login. The test script auto-saves USER_ACCESS_TOKEN and USER_ID to the environment. All subsequent requests inherit the Bearer token from the collection level.

Request
POST https://hzxxenidupmnrpatbniq.supabase.co/auth/v1/token?grant_type=password
apikey: <SUPABASE_ANON_KEY>

{ "email": "you@example.com", "password": "your-password" }
Response
{ "access_token": "eyJ...", "refresh_token": "...", "user": { "id": "uuid" } }
3

Add both required headers

Every request needs both Authorization and apikey. The Postman collection handles this at the collection level automatically.

Required headers
Authorization: Bearer <USER_ACCESS_TOKEN>
apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
4

Complete KYC before financial operations

Payments, cards, and bulk transfers all require KYC approval. Start a session, redirect the user to the returned URL, then poll for the decision.

Create session
POST /functions/v1/didit-session
{ "entity_type": "individual", "country": "BW" }

→ { "session_id": "did_sess_...", "session_url": "https://..." }
Poll decision
POST /functions/v1/didit-decision
{ "session_id": "did_sess_..." }

→ { "status": "success", "liveness_score": 0.98 }
5

Base URLs

Auth      →  https://hzxxenidupmnrpatbniq.supabase.co/auth/v1/
Database  →  https://hzxxenidupmnrpatbniq.supabase.co/rest/v1/
Functions →  https://hzxxenidupmnrpatbniq.supabase.co/functions/v1/