IIAB: Sharia-Compliant Digital Banking Modernization in Jordan
Contributed to digital banking modernization at IIAB Jordan — mobile integration, Apple Pay, and Sharia-compliance workflows for Islamic banking.
Islamic banking is not conventional banking with some words changed. The distinction matters architecturally, and it matters in ways that a developer who hasn’t worked in the space will not anticipate until they are in it.
The Islamic International Arab Bank (iiabank.com.jo) is a Sharia-compliant bank operating in Jordan, offering individual accounts, business banking, and SME services under Islamic finance principles. During my time at Talentera I contributed to the backend modernization of their digital banking platform — the web portal, the mobile integration layer, the Apple Pay and IIAB Pay implementations, and the backend workflows that support Sharia-compliance validation.
What Sharia-compliant means in a backend context
The core distinction: Islamic finance prohibits interest (riba). What this means in practice is that the financial products are structured differently — profit-sharing (Mudaraba), cost-plus financing (Murabaha), lease-to-own arrangements (Ijara), equity partnership (Musharaka). These are not equivalent to a loan with interest by another name. They have different legal structures, different payment schedules, different disclosure requirements, and different audit trails.
For the backend, this means:
The product model is more complex than a conventional bank. A Murabaha financing agreement (the bank buys an asset and sells it to the customer at cost plus profit) has different fields, different state transitions, and different compliance check requirements than a loan. The data model has to represent that accurately — not as a special case bolted onto a loan schema, but as a first-class entity with its own workflow.
The Sharia-compliance workflow is real. Transactions and products have to satisfy validation rules derived from the bank’s Sharia Supervisory Board’s guidelines. These rules are not static — they are updated, audited, and reviewed. The system needs to apply the current version of the rules, log which version applied, and maintain the audit trail required for internal Sharia audits and external regulatory review.
Building this as a checkbox on a conventional banking backend is how you end up with a compliance nightmare. Building it as a core part of the domain model is how you end up with a system the bank can actually audit.
The digital banking platform: what was there and what needed to change
IIAB’s digital offering covered individual customers, business accounts, and the SME segment — different products, different onboarding flows, different limit structures, different regulatory reporting.
When I came into the modernization work, the backend had the common problem of a financial institution that had been operating for years: functional but aging, with business logic that had accumulated organically and was not well-separated from the presentation layer. The kind of codebase where changing one product’s payment schedule requires carefully tracing what else assumes that schedule somewhere in the stack.
The mobile integration work was the most immediately visible deliverable. IIAB Pay and Thuraya loyalty program integration, Apple Pay connectivity, the mobile banking API surface that the app consumed. Mobile banking in Jordan in 2018 was not an afterthought — it was where a substantial part of the customer base was doing their actual banking. Getting the API contract right mattered. Getting the mobile experience’s failure modes handled gracefully mattered even more: a payment that appears to fail on the phone but succeeds on the backend is the kind of inconsistency that causes real customer harm and requires manual intervention to resolve.
Idempotency in payment systems: the unglamorous essential
Every payments engineer has a story about idempotency. Mine involves a retry mechanism that was doing exactly what it was supposed to do — retrying failed network calls — on a backend that was processing each retry as a new transaction. The result was not catastrophic, but it was educational.
In a Sharia-compliant context, this has an additional dimension: duplicate transactions are not just an operational problem, they are a compliance problem. A double charge that is subsequently refunded is still an event that has to be explained in a Sharia audit, traced to its cause, and documented. The cleanup is not just a database fix. It is a paper trail.
Idempotency keys on every payment-mutating API call. Exactly-once semantics at the processing layer. These are standard best practices for payments. They are not optional in a bank. Stating them plainly because I’ve seen what happens when they’re skipped.
The customer segments and why they matter architecturally
Individual, business, and SME are not just marketing categories. They have different:
- Onboarding workflows (documentation requirements, Sharia-compliance validation, KYC depth)
- Product availability (not all products are available to all segments)
- Limit structures (transaction limits, account limits, financing limits vary by segment and are regulatory, not just business-policy)
- Reporting requirements (SME accounts have different tax and regulatory reporting obligations in Jordan than individual accounts)
A backend that treats these as the same customer with different flags will eventually produce a bug at the intersection of a limit rule and a product availability rule and a reporting requirement. A backend that models each segment’s workflow correctly avoids that class of bug by construction. The additional complexity at the domain layer pays off in the absence of subtle compliance failures in production.
What I took from this
Islamic finance is a genuinely distinct domain. The technical work is real — payments, mobile integration, security, compliance workflows — and the domain adds a layer of specificity that requires understanding it, not just implementing around it.
The combination of regulated financial institution, bilingual market (Arabic-primary), mobile-first customer behavior, and Sharia-compliance requirements produces a set of constraints that makes the engineering more demanding and more interesting than the surface area suggests.
I’ve since worked at higher scale (auxmoney’s credit pipeline doing serious Kafka volume, Hakeem’s national EHR). The discipline of getting payment-adjacent backend work right — idempotency, audit trails, compliance workflow modeling — is foundational. You build it correctly at IIAB’s scale and you have the instinct for it when the stakes go up.