For Merchants
Integrate once. Accept payments from any participating bank via IBAN or NPT alias. No per-bank integrations, no separate agreements — one API key to rule them all.
Merchant Integration Guide
An Apache 2.0 standard developed by Neptune. Fintech for bank payments, NPT identity, Open Banking consent, webhooks, settlement, and gateway-to-gateway switching.


OpenWave is developed and maintained by Neptune. Fintech as open infrastructure: product-neutral, bank-agnostic, and built for a multi-gateway ecosystem.
Read the architectureArchitecture in motion
The moving paths are separated by purpose: session creation, customer authorization, alias resolution, bank execution, webhook confirmation, and gateway-to-gateway routing.
How OpenWave works
Each flow below cycles through the real responsibility split: who starts it, where customer authorization happens, who moves money or data, and what the receiving system can trust.
Payment routing
Open Banking
Gateway interconnect
OpenWave is an open API standard created and maintained by Neptune. Fintech for payments, Open Banking, identity, settlement webhooks, and gateway interconnect. It defines a unified contract so any bank, merchant, fintech, or gateway operator can plug into a single interoperable network without bilateral agreements between every participant.
Libya's problem: Customers are locked to their bank's app. Merchants integrate with each bank separately. There is no shared payment identity layer. Money can't move freely.
OpenWave's solution: one standard that every participant implements. A bank integrates once, and every merchant on any compliant gateway can accept payments from its customers.
Developer path
OpenWave is split by who is calling whom. Merchant APIs use bearer merchant keys, banks expose gateway callbacks, TPPs use OAuth 2.0 + PKCE, and gateways use OW-GIP with gateway keys and mTLS.
Authorization: Bearer mk_...BankSend OTP, verify SCA, execute debit/credit callbacks.X-OpenWave-Internal-KeyTPPAsk for scoped Open Banking access with PKCE consent./ob/consents -> /ob/tokenGatewayDiscover peer gateways and route cross-gateway payments.X-OpenWave-Gateway-KeyMerchant OpenWave Gateway Debtor Bank (CBS) CBL LyPay Merchant Bank
│ │ │ │ │
│── POST /payments ────►│ │ │ │
│ /initiate │ │ │ │
│◄── { payment_url } ──│ │ │ │
│ │ │ │ │
│ [Customer opens checkout URL] │ │ │
│ │── resolve alias ─────►│ │ │
│ │── send OTP ──────────►│ │ │
│ │◄── OTP verified ──────│ │ │
│ │ │ │ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ SAME_BANK: internal CBS book transfer (instant) │ │
│ │ LYPAY: debit at debtor CBS → LyPay instruction → credit at │ │
│ │ merchant bank (2–10 seconds) │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │◄── credit confirmed ──────────────────────────────────── │
│◄── payment.completed ─│ │ │ │
│ webhook │ │ │ │| Surface | Caller | Authentication | Customer protection |
|---|---|---|---|
| Payments | Merchant backend → Gateway | Authorization: Bearer mk_... | Hosted checkout or SDK session token, bank OTP or push SCA |
| Bank callbacks | Gateway → Bank middleware | X-OpenWave-Internal-Key: ow_cbk_... | Bank performs OTP/push verification before debit |
| Open Banking | TPP → Gateway | OAuth 2.0 Authorization Code + PKCE | Hosted consent screen, explicit scopes, revocation |
| Identity | Bank → Registry | X-OpenWave-Bank-Key: owbk_... | Bank can only manage accounts it vouched for |
| Gateway interconnect | Gateway → Gateway | X-OpenWave-Gateway-Key: owgw_... + production mTLS | Idempotent routes, signed settlement batches |