1. Background & Objectives
1.1 Background
All IBAN-based payment flows within the PayBy wallet ecosystem currently rely on IBANs issued by FAB (First Abu Dhabi Bank). To reduce single-bank dependency risk, optimize cost structure, and improve system flexibility, a full migration of all IBAN payment flows from FAB to Zand Bank is required.
This migration spans 5 core use cases, impacting approximately 212K+ active users/corporates, with a monthly transaction volume of ~10-15M AED.
1.2 Objectives
- 100% of active FAB IBAN users migrated to new IBANs (Zand / PayBy / ENBD)
- 100% of new users onboarded directly with new IBANs
- Full decommissioning of FAB IBANs with zero residual dependencies
- Zero fund loss and zero business disruption throughout the migration
1.3 Migration Scope Overview
| Use Case | Active Users | Switch To | User Notification | New Users Start | Existing Migration | Priority |
|---|---|---|---|---|---|---|
| Lean Wallet Top-up | 8.2K | ENBD IBANs | Yes - App UI | Mid-Feb 2026 | W2-Apr → W4-Apr | P0 |
| IBAN Wallet Top-up | 19.8K | Zand IBANs | Yes - App UI | W1-Mar 2026 | W2-Mar → W1-Apr | P1 |
| AANI Activation & Txn | 134.6K | PayBy IBANs | Not required | W1-Mar 2026 | W2-Mar → W2-Apr | P1 |
| Quantix Loan Repayment | 50K | Zand IBANs | Yes - App UI | W1-Mar 2026 | W3-Mar → W2-Apr | P2 |
| WPS Salary Credits | 125 | Zand IBANs | Yes - Email Trigger | W1-Mar 2026 | W4-Mar → W3-Apr | P3 |
2. Overall Migration Architecture
2.1 Migration Timeline (Master View)
2.2 Migration Phasing
2.3 Dual-IBAN Parallel Architecture During Migration
Key Design Decision: During the overlap period, both old and new IBANs can accept funds. Any funds received via FAB IBANs are manually transferred to the Zand Escrow account by the C&S team, ensuring unified fund reconciliation.
3. Detailed Use Case Migration Plans
3.1 Use Case 1: Lean Wallet Top-up (P0)
Target: 8.2K users → ENBD IBANs
Notification: Yes - App UI
New Users: Mid-Feb 2026 | Existing Migration: W2-Apr → W4-Apr
3.1.1 New User Flow (Mid-Feb)
3.1.2 Existing User Migration Strategy (W2-Apr → W4-Apr)
≥1 Lean txn in last 6 months
~8.2K users] Identify --> Split{User Classification} Split --> |Active users - 8.2K| Delink[Delink old FAB destination binding] Split --> |Inactive users| DirectDelink[Delink destination directly] Delink --> Notify[App UI notification
Inform users of new flow] Notify --> NextVisit[User's next visit] NextVisit --> GPFlow[Auto-route to GP flow
Bind ENBD IBAN] GPFlow --> Done([Migration Complete]) DirectDelink --> NewFlow[Routed via new flow on next use] NewFlow --> Done
Key Decisions:
- Active user definition: Unique member_IDs with ≥1 Lean transaction in the last 6 months (Aug 2025 – Jan 2026)
- Lean new users go live earliest (Mid-Feb), but existing migration is deliberately scheduled last (W2-Apr) to allow the GP flow to stabilize
- Inactive users have their destination delinked immediately; they enter the new GP flow on next usage
3.2 Use Case 2: IBAN Wallet Top-up (P1)
Target: 19.8K users → Zand IBANs
Notification: Yes - App UI
New Users: W1-Mar 2026 | Existing Migration: W2-Mar → W1-Apr
Prerequisite: Zand IBAN fund-in Pilot testing passed (end of Feb 2026)
3.2.1 New User Flow (W1-Mar)
Note: KYC team must be updated — new users post-KYC will receive Zand IBANs instead of FAB IBANs.
3.2.2 Existing User Migration (W2-Mar → W1-Apr)
≥1 IBAN top-up in last 6 months
~19.8K users] Identify --> Pilot[Step 1: 10% user pilot
~2K users] Pilot --> CreateIBAN[Bulk-create Zand IBANs
Assign as secondary IBAN alongside FAB] CreateIBAN --> Notify[Step 2: App UI notification
+ In-App message
Checkout UI updated to show new IBAN] Notify --> DualRun[Step 3: Dual-IBAN parallel operation
FAB fund-in → manual transfer to Zand Escrow] DualRun --> Remind[Step 5: Send 2 reminders before cutoff] Remind --> Cutoff{Cutoff reached} Cutoff --> |Target met| Deactivate[Deactivate FAB IBAN
Delink binding] Cutoff --> |Target not met| Extend[Extend window + additional reminders] Deactivate --> Analyze{Step 6: Pilot analysis} Analyze --> |Success| FullRollout[Full rollout - remaining 90%
Repeat Steps 1-5] Analyze --> |Issues found| Fix[Fix issues and retry] FullRollout --> Complete([Complete by W1-Apr]) style Pilot fill:#FFF3E0 style FullRollout fill:#E8F5E9
Migration Timeline:
Risks & Mitigations:
- Users on old App versions: Some users may not receive In-App notifications → send SMS/Push notifications in parallel
- Checkout UI requirement: Existing user migration requires UI on checkout page to display new IBAN — coordinate with frontend team
3.3 Use Case 3: AANI Activation & Transactions (P1)
Target: 134.6K users → PayBy IBANs (413 bank code)
Notification: Not required (backend-only change)
New Users: W1-Mar 2026 | Existing Migration: W2-Mar → W2-Apr
Overview
In the AANI flow, IBANs are configured at the backend during user enrollment. Users are never exposed to the IBAN — no user-facing communication is required.
Per the team's recommendation, AANI will adopt PayBy's own 413 IBAN (PayBy bank code) rather than Zand IBANs. As a CBUAE-licensed SVF & RPSC, PayBy is eligible to use its own bank code.
Migration Strategy
Key Advantage: Since users never see the IBAN, the entire migration is a backend operation with no UI dependency and no user notification required. This makes AANI the lowest-risk migration despite having the largest user base (134.6K).
For the detailed migration plan, refer to the AANI Migration Plan document.
3.4 Use Case 4: Quantix Loan Repayment (P2)
Target: 50K users → Zand IBANs
Notification: Yes - App UI
New Users: W1-Mar 2026 | Existing Migration: W3-Mar → W2-Apr
3.4.1 Current Architecture
3.4.2 Migration Strategy (W3-Mar → W2-Apr)
Assign as secondary IBAN] CreateIBAN --> APISwitch[Step 2: PayBy API returns Zand IBAN first
Falls back to FAB IBAN if Zand unavailable] APISwitch --> UIUpdate[Step 3: CashNow checkout UI updated
Display new Zand IBAN as repayment option] UIUpdate --> CashNowNotify[Step 4: App UI notification to users
Update Beneficiary within cutoff window] CashNowNotify --> DualRun[Step 5: Dual-IBAN parallel repayment
FAB fund-in → C&S manual transfer to Zand] DualRun --> Remind[Step 6: Send 2 reminders before cutoff] Remind --> Deactivate[Deactivate FAB IBAN
Complete by W2-Apr] Deactivate --> Complete([Migration Complete])
API Change:
GET /api/v1/user/{userId}/iban
// Pre-migration response
{ "iban": "AE12 0351 xxxx xxxx xxxx", "bank": "FAB" }
// Post-migration response (Zand preferred)
{ "iban": "AE12 ZAND xxxx xxxx xxxx", "bank": "ZAND" }
// Fallback: returns FAB IBAN if Zand IBAN does not exist3.5 Use Case 5: WPS Salary Credits (P3)
Target: 125 corporates → Zand IBANs
Notification: Yes - Email Trigger
New Corporates: W1-Mar 2026 | Existing Migration: W4-Mar → W3-Apr
3.5.1 Current Architecture
WPS_SALARY Account] PayBy --> |Employee onboarding| EmpIBAN[Employee FAB IBAN
Basic PayBy Account] end subgraph Transaction["Salary Disbursement"] Corp --> |Pre-fund| FABIBAN FABIBAN --> |Salary credit| EmpIBAN EmpIBAN --> |Credit| EmpWallet[(Employee Wallet)] end
3.5.2 New Corporate Flow (W1-Mar)
3.5.3 Existing Corporate Migration (W4-Mar → W3-Apr)
Select corporates with fewest employees] Pilot --> CreateIBAN[Create Zand IBANs
Bind to WPS_SALARY Account] CreateIBAN --> BDNotify[Steps 2-3: BD team sends email trigger
30-45 day switchover window] BDNotify --> DualRun[Step 4: Dual-IBAN parallel operation
FAB fund-in → C&S manual transfer to Zand] DualRun --> Remind[Step 6: Send 2 reminders before cutoff] Remind --> Cutoff{30-day window ends} Cutoff --> |External deactivation| SoftDeactivate[Front-end FAB IBAN deactivation] SoftDeactivate --> Fallback[Silent 15-day fallback period
FAB fund-in still manually forwarded to Zand] Fallback --> HardDeactivate[Hard deactivation of FAB IBAN] HardDeactivate --> Analyze{Pilot analysis} Analyze --> |Success| FullRollout[Full rollout - all 125 corporates] Analyze --> |Issues found| Fix[Fix and retry] FullRollout --> Complete([Complete by W3-Apr]) style Pilot fill:#FFF3E0 style Fallback fill:#FFEBEE style FullRollout fill:#E8F5E9
Key Design: 30-day external deactivation + 15-day silent fallback = effective 45-day buffer period, reducing corporate migration risk. Communication via email trigger (not App UI) since WPS corporates interact through the merchant portal.
4. Cross-Team Collaboration
4.1 RACI Matrix
Core development] Backend[Backend/API Team
API modifications] CS[C&S Team
Fund reconciliation &
manual transfers] BD[BD Team
Corporate communication] KYC[KYC Team
New user flow update] CashNow[CashNow Team
Repayment UI adaptation] Frontend[Frontend Team
Checkout UI updates] QA[QA Team
Regression testing] PM[PM / Raj
Stakeholder coordination] end subgraph Responsibilities["Key Responsibilities"] R1[Zand / PayBy / ENBD IBAN creation & binding] R2[Dual-IBAN routing logic] R3[FAB fund-in manual transfer to Zand] R4[WPS corporate email triggers] R5[New user IBAN issuance flow] R6[CashNow repayment UI IBAN display] R7[Checkout UI for IBAN Top-up & Quantix] R8[Full-chain regression testing] R9[Cross-team grooming] end Deposit --> R1 Deposit --> R2 CS --> R3 BD --> R4 KYC --> R5 CashNow --> R6 Frontend --> R7 QA --> R8 PM --> R9
4.2 Key Dependencies
API TPS capacity] --> BulkCreate[Bulk IBAN creation] Pilot[Pilot testing passed] --> Migration[Formal migration begins] KYC_Update[KYC team flow update] --> NewUser[New users issued Zand IBAN] BD_Confirm[BD team confirms
communication timeline] --> WPS_Start[WPS migration begins] UI_Checkout[Checkout UI ready
for IBAN Top-Up & Quantix] --> ExistingMigration[Existing user migration] FAB_Deactivate_Test[FAB IBAN deactivation test
Confirm fund-in fails] --> Deactivate[Formal deactivation] CashNow_UI[CashNow UI adaptation
complete] --> QtxMigration[Quantix migration starts] style Zand_TPS fill:#FFCDD2 style FAB_Deactivate_Test fill:#FFCDD2 style UI_Checkout fill:#FFCDD2
5. Data Migration Design
5.1 IBAN Data Model Changes
5.2 Migration State Machine
Front-end FAB deactivation FAB_SOFT_DEACTIVATED --> FAB_HARD_DEACTIVATED: Fallback period expires
Hard deactivation FAB_HARD_DEACTIVATED --> MIGRATED: FAB IBAN delinked MIGRATED --> [*] note right of DUAL_IBAN: Both IBANs accept funds
FAB fund-in manually forwarded note right of FAB_SOFT_DEACTIVATED: WPS: additional 15-day
silent fallback
6. Risk Assessment & Fallback Strategy
6.1 Risk Matrix
| Risk | Impact | Probability | Mitigation |
|---|---|---|---|
| Zand VA Create API TPS insufficient | Bulk IBAN creation timeout/failure | Medium | Pre-confirm TPS with Zand; create in batches |
| Users fail to update Beneficiary in time | Funds sent to old IBAN after cutoff | High | Silent fallback period + C&S manual transfer |
| Checkout UI not ready on time | Blocks existing user migration for IBAN Top-Up & Quantix | Medium | Decouple new-user go-live from existing migration; UI as hard dependency for existing only |
| Users on old App versions miss notifications | Users unaware of IBAN change | Medium | Multi-channel notifications: SMS + Push |
| Zand system outage | New IBANs unable to receive funds | Low | Retain FAB channel as emergency fallback |
| C&S manual transfer delays | Delayed wallet crediting for users | Medium | Establish SLA + build automated reconciliation tool |
6.2 Fallback Strategy
7. Monitoring & Acceptance Criteria
7.1 Key Monitoring Metrics
| Metric | Description | Alert Threshold |
|---|---|---|
| New IBAN creation success rate | VA Create API success rate (Zand/PayBy) | < 99% |
| FAB fund-in ratio during dual-IBAN period | Reflects user migration progress | > 5% after window closes |
| New IBAN fund-in success rate | Zand/PayBy/ENBD fund-in success rate | < 99.5% |
| C&S manual transfer SLA | FAB → Zand transfer turnaround time | > 4 hours |
| User complaint rate | IBAN-related customer complaints | > 2x normal levels |
| Checkout UI adoption rate | % of users seeing & using new IBAN on checkout | < 80% after notification |
7.2 Migration Completion Acceptance Criteria
- [ ] 100% of active users have new IBANs assigned (Zand/PayBy/ENBD per use case)
- [ ] 100% of new users are issued new IBANs directly
- [ ] 0 successful fund-in transactions via deactivated FAB IBANs
- [ ] All API endpoints return new IBANs as default
- [ ] C&S manual transfer process terminated
- [ ] FAB channel officially decommissioned
8. Open Items
| # | Item | Owner | Status |
|---|---|---|---|
| 1 | Confirm Zand VA Create API TPS capacity | Zand | 🔴 Pending |
| 2 | Verify FAB IBAN deactivation behavior (fund-in should fail) | QA | 🔴 Pending |
| 3 | Checkout UI design & development for IBAN Top-Up + Quantix existing migration | Frontend/Design | 🔴 Pending |
| 4 | Wallet top-up + Quantix repayment user whitelist IBAN notification strategy | PM | 🔴 Pending |
| 5 | FAB fallback fund channel retention plan for outages | Deposit Team | 🟡 In Progress |
| 6 | Cross-team grooming schedule | Raj | 🟡 In Progress |
| 7 | Merchant data collection | BD/PM | 🔴 Pending |
| 8 | AANI 134.6K user batch migration script & validation | Deposit Team | 🔴 Pending |