Gulf Bank's retail app runs on Oracle Banking Digital Experience — OBDX 21.1 over a FLEXCUBE 14.5 core, per the bank's published transformation account — with the mobile client built in Flutter and talking to the backend over the OBDX channel protocol. That detail shapes the integration work. The data worth having sits in well-structured channel responses, not scattered across screens that have to be scraped. For a Kuwaiti retail customer the app holds account balances, dated statement history, debit, credit and prepaid card activity, own-account, local and international transfers, and the alias-based WAMD instant transfers that KNET operates under Central Bank of Kuwait supervision. The first job we usually take on here is a clean bulk backfill of that history into a normalized ledger, then a light delta sync to keep it current.
Account data held behind the login
Each row below maps a data domain to where it surfaces in the app, the grain you can read it at, and what an integrator typically does with it. The set reflects what Gulf Bank documents and what the listing describes — not a generic banking checklist.
| Data domain | Where it lives in the app | Granularity | What you'd build with it |
|---|---|---|---|
| Accounts & balances | Accounts dashboard (products such as Al Danah, E-Savings, current) | Per account, current balance plus IBAN | Cash position, multi-account reconciliation |
| Statement history | Account statement view | Per transaction, value-dated, with running balance | Backfilled ledger, categorization, accounting export |
| Card activity | Cards section (debit, credit, prepaid) | Per card, per movement, plus card status | Spend analytics, card-control tooling |
| Transfers | Transfers (own-account, local, international, scheduled) | Per transfer, beneficiary and status | Payment-status sync, payables tracking |
| WAMD instant transfers | WAMD service | Per event, counterparty by mobile alias | Real-time P2P reconciliation |
| Bills & installments | Payments, installment payment | Per payment, biller and amount | Expense tracking, recurring-payment views |
| Loyalty (Gulf Rewards) | Rewards section | Points balance and redemptions | Loyalty-aware budgeting or redemption flows |
How a backfill call looks
The shape below is illustrative and follows the OBDX channel convention; exact field names and paths are pinned during the build against the live channel. The retail client authenticates once, then pages a date range of transactions per account and persists the offset as a resume cursor.
# OBDX channel handshake -- exchange credentials for a session token
POST /digx-infra/login/v1/login
Content-Type: application/json
X-Token-Type: JWT
-> 200 { "status": {...}, "token": "{jwt}", "csrf": "{csrf}" }
# Backfill cleared transactions for one demand-deposit account
GET /digx/v1/accounts/demandDeposit/{accountId}/transactions
?fromDate=2025-01-01&toDate=2025-03-31&pageSize=200&offset=0
Authorization: Bearer {jwt}
X-Token-Type: JWT
X-CSRF-Token: {csrf}
-> 200 {
"transactions": [
{ "valueDate":"2025-03-14",
"amount": {"currency":"KWD","amount":45.000},
"narration":"WAMD transfer ...",
"balance": {"amount":1280.500},
"refNo":"..." }
],
"nextOffset": 200
}
# Page until nextOffset is absent. Note KWD carries three decimals.
Normalized record we map each line to
Every channel line collapses to one currency-aware, source-referenced shape, so WAMD events, ordinary transfers and card movements share a schema downstream.
{
"account_ref": "hmac(account_no)",
"booked_at": "2025-03-14T11:02:00+03:00",
"amount_kwd": "-45.000",
"kind": "wamd_transfer",
"counterparty": { "msisdn_alias": "+965********", "name": "..." },
"running_balance_kwd": "1280.500",
"source_ref": "OBDX refNo"
}
What lands in your repository
The handover is working code first, with the reference documents sitting alongside it.
- Runnable clients in Python and Node.js for the OBDX channel: session handshake, account and balance reads, paged transaction backfill, card lists and transfer history.
- A batch backfill runner with cursor state and resume, plus a delta-sync mode for keeping the ledger current after the first pull.
- An automated test suite that runs against recorded channel fixtures, so the mapper is exercised without a live login on every run.
- The normalized, Kuwaiti-dinar-aware transaction schema and mapper that folds WAMD, transfers and card activity into one shape.
- An OpenAPI/Swagger description of the mapped surface and a protocol and auth-flow report covering the token and CSRF chain — the reference behind the code.
- Interface documentation plus data-retention guidance: consent records, access logging, and what to keep versus discard.
Routes to the same ledger
A few routes reach this data; they differ mostly in who authorizes the access and how durable the result stays.
- Authorized protocol analysis of the app-to-OBDX channel. With the account holder's authorization, we map the channel the Flutter client already uses — handshake, account list, paged transactions, cards, transfers — and reproduce those calls server-side. Reachable: effectively everything the app displays. Effort: moderate. Durability: tied to app and channel versions, which we re-validate. For most projects this is the one we run first.
- Consented credential access. For aggregation under a customer's explicit consent, the same surfaces are reached through their own login. It suits one account or a consenting set; the consent record and access scope ship as part of the work.
- Native export as a fallback. Where a customer can produce statements as PDF or file exports, those feed a lower-fidelity ledger without per-field structure — a stopgap rather than the primary feed.
- The licensed open-banking path. Once Kuwait's framework is live and providers are licensed, this becomes the durable long-run feed; we shape the schema toward it now so the move is incremental.
Consent and where Kuwait's open-banking rules stand
Authorization is the basis we build on. For one customer's own data that means their explicit consent to access their Gulf Bank login and reproduce what the app shows them — logged, scoped to what the project needs, and under an NDA where the client wants one. Kuwait's regulated route is still taking shape. The Central Bank of Kuwait put a draft Open Banking Regulatory Framework out for a four-week consultation in June 2025, built around utility, security, transparency and adoption, with customer data shared only with CBK-licensed providers on explicit approval. It is not in force, and the CBK has said services will launch in phases once the framework is finalized and tested. We read that as the direction of travel, not today's rulebook, so a build runs now on the account holder's authorization with the data model kept close to the draft's conventions — moving to a licensed-provider feed later becomes a swap, not a rebuild. WAMD, the instant account-to-account scheme KNET runs under CBK supervision, sits inside that same consented scope as a payment surface.
Things we handle on a Gulf Bank build
Access is arranged with you during onboarding — the build runs against a consenting account or an authorized test login, set up together. A few specifics matter on this app in particular.
- Kuwaiti dinar minor units. The dinar carries three decimal places — 1,000 fils to the dinar — so amounts are modelled as three-decimal values (or integer fils) end to end. Ingestion schemas that assume two-decimal currencies truncate here; ours does not.
- Bilingual, right-to-left narratives. Statement descriptions arrive in Arabic and English. We normalize encoding, preserve both, and keep right-to-left text intact so the narration stays searchable on your side.
- WAMD reconciliation. WAMD events name a counterparty by mobile number rather than IBAN. We map those aliases and line each one up against the cleared transaction list, so a P2P payment and its ledger entry resolve to a single record.
- Resumable history pulls. A first pull can span years across several accounts. We run it as a checkpointed backfill that records its cursor per account, so an interrupted run resumes from where it stopped instead of starting the range again.
Other Kuwaiti banking apps in the same picture
These share Gulf Bank's market, the WAMD rail, and the CBK's emerging open-banking regime, so they tend to come up when a project wants one ledger across several Kuwaiti banks.
- NBK Mobile Banking — National Bank of Kuwait's retail app, covering balances, transfers, WAMD and card management.
- Boubyan Bank — an Islamic digital bank app known for AI-assisted budgeting on top of accounts and transfers.
- Kuwait Finance House (KFH) — Islamic banking app with the KFH Wallet for NFC contactless payments.
- Burgan Bank — retail app with biometric login and WAMD instant transfers.
- Warba Bank — Islamic bank app that pushes real-time transaction alerts to account holders.
- Commercial Bank of Kuwait (Al-Tijari) — retail app with in-app support and WAMD transfers.
- Weyay Bank — NBK's digital-only bank, onboarding and accounts handled fully in-app.
- Ahli Bank of Kuwait (ABK) — retail app for accounts, cards and transfers across the same rail.
Screens from the listing
Store screenshots, useful for confirming which surfaces a build would map. Select one to enlarge.
Questions integrators ask about this one
How far back can the first run pull statement history?
As far as the account itself exposes it. We page through the per-account transaction surface from the earliest available date and keep Kuwaiti dinar amounts at three decimal places, so the smallest fils values stay exact.
Does the feed cover WAMD transfers alongside card and account activity?
Yes. Alias-based WAMD instant transfers, ordinary own-account, local and international transfers, and debit, credit and prepaid card movements all map into one normalized ledger, reconciled against the cleared transaction list.
Is this build dependent on Kuwait's open-banking framework being live?
No. The work runs today on a consenting account holder's own authorization. The Central Bank of Kuwait issued its open-banking framework only in draft, for consultation, in June 2025, so we keep the schema close to its conventions and treat a licensed-provider path as a later swap rather than a precondition.
What happens when the app updates and the channel responses shift?
We keep recorded fixtures of the OBDX channel responses, re-validate the mapper against them, and ship an updated client. Versioning the channel that way is part of the handover, not an extra.
Getting a Gulf Bank build moving
A first pull — account list, paged transactions, card movements and WAMD activity, normalized to Kuwaiti dinar — usually lands within one to two weeks of a confirmed scope. Source code is delivered from $300 and paid only after delivery, once the build does what you need; or skip the source handover and call our hosted endpoints, paying per call with nothing upfront. Tell us the app and what you want out of its data, and we will scope it from there.
What this draws on
Built from the bank's own product pages and its August 2024 notes on the app and the WAMD service; the Central Bank of Kuwait's June 2025 announcement of the draft open-banking framework; a published account of Gulf Bank's OBDX and FLEXCUBE rollout; and KNET/ACI material on WAMD's scale. Checked 8 June 2026.
- CBK — draft Open Banking Regulatory Framework (June 2025)
- Gulf Bank's OBDX 21.1 / FLEXCUBE 14.5 transformation (case study)
- Gulf Bank — WAMD phone-number transfers in the app
- ACI Worldwide — WAMD passes one million accounts
Field review and protocol mapping by OpenFinance Lab — 2026-06-08.
App profile — quick facts
Gulf Bank Mobile Banking (package com.ofss.gbkprodret, per its Play Store listing) is the retail app of Gulf Bank K.S.C.P., a Kuwaiti commercial bank. The bank describes the current release as a redesign that is faster and adds new services. It handles account management for products such as Al Danah and E-Savings, statements, own-account and external transfers, WAMD instant transfers by mobile number, debit, credit and prepaid card controls, bill and installment payments, e-vouchers, and Gulf Rewards points, with biometric login. The package identifier and the bank's transformation account point to an Oracle OBDX channel over a FLEXCUBE core. Listed for Android and iOS.
Last checked 2026-06-08