بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ
◆ Design & Architecture Proposal

Agent Networking System for Umrah & Hajj Travel

A trustworthy, transparent and fully auditable agent-networking platform — generational commissions, segregated wallets, an immutable ledger, controlled withdrawals and agent achievement. Engineered to be trusted, not flaunted.

📱 PWA · VueJS ⚙️ Laravel 13 API 🗄️ MariaDB InnoDB 🔐 Double-Entry Ledger ☁️ Cloudflare CDN 📲 Mobile · 💻 Web · 🖥️ Admin

📱 Agent Mobile Application — PWA

A mobile-first experience for agents who prefer their phone. Installable as an app (Add to Home Screen), works offline for viewing, with a calm Umrah-themed interface.

9:41● ● ●  100%
AR
Assalamualaikum,
Ahmad Razak
🔔
💰 Commission Wallet
Rp 5,250,000
Withdrawable
🎫 Registration Balance
Rp 3,000,000
Product Use Only
Achievement — Season & Lifetime
🏅
Gold AgentSeason Q2 · 68% to Diamond
Lifetime: PlatinumSeason reset: 34 days
Quick Actions
👥
Network
💵
Commission
🏧
Withdraw
🕋
Products
Network Summary
3Gen-1 Direct
27Total Downline
5Generation Depth
Recent Wallet Activity View Ledger →
Gen-1 Commission · Hafiz POSTED19 Jun · CREDIT · ref REG-1042
+1,000,000
Gen-2 Commission · Aida POSTED18 Jun · CREDIT · ref REG-1039
+250,000
Withdrawal · awaiting Finance HOLD17 Jun · HOLD · ref WD-228
−2,000,000
Agent dashboard — two segregated wallets
9:41● ● ●  100%
👥 My Network
Tree Generation List
A
Ahmad Razak (You)Sponsor: HQ · Active
1
HafizGen-1 · direct recruit
+1,000,000
2
AidaGen-2
+250,000
3
RashidGen-3
+150,000
1
NurulGen-1 · direct recruit
+1,000,000
4+
ZakiGen-4 · within depth cap
+100,000
Commission by Generation
1
Generation 1 — Direct Sponsor3 active agents
Rp 1,000,000/agent
2
Generation 28 agents
Rp 250,000
3
Generation 311 agents
Rp 150,000
4
Generation 4+5 agents · within cap
Rp 100,000
ℹ️ Commission is posted only after the registration payment is valid/confirmed (BR-008). No double commission for a single transaction.
Upline/downline network + commission per generation
9:41● ● ●  100%
🏧 Wallet Withdrawal
Request
2Review
3Approve
4Pay
Gross withdrawalRp 5,000,000
Cooperative savings deduction (10%)− Rp 500,000
SourceCommission Wallet only
Net received by agentRp 4,500,000
🚫 The Registration Balance cannot be withdrawn (BR-012). Only the Commission Wallet is eligible.
Buy Product — Use Wallet & Deposit
🕋 عمرة
Economy Umrah Package — 12 Days
Rp 30,000,000
Package priceRp 30,000,000
− Commission WalletRp 5,000,000
− Registration BalanceRp 3,000,000
Cash balance dueRp 22,000,000
Withdrawal (10% cooperative) + product offset

💻 Agent Web Portal — Laptop / Desktop

Not every agent works from a phone. A full web experience for those who prefer a computer — the same data, a wider layout, and more spacious network and reporting views.

🔒 umrah.pasa.my/agent/dashboard

Welcome back, Ahmad 👋

Your network & financial summary

Gold Agent · Q2Ahmad Razak
AR
Commission Wallet
Rp 5.25M
↑ withdrawable
Registration Balance
Rp 3.0M
product use only
Total Downline
27
↑ 4 this month
Commission Earned
Rp 11.4M
lifetime

Commission Growth

Last 6 months (Rp million)

Jan
Feb
Mar
Apr
May
Jun

Network by Generation

Active commission per generation

GenAgentsCommission/agent
Gen-13Rp 1,000,000
Gen-28Rp 250,000
Gen-311Rp 150,000
Gen-4+5Rp 100,000

Wallet Ledger — Full Audit Trail

Every entry: date · type · amount · reference · status · running balance (NFR-009 Traceability)

DateDescriptionTypeAmountReferenceStatusBalance
19 JunGen-1 Commission · HafizCREDIT+1,000,000REG-1042POSTED5,250,000
18 JunGen-2 Commission · AidaCREDIT+250,000REG-1039POSTED4,250,000
17 JunWithdrawal requestHOLD−2,000,000WD-228HOLD4,000,000
12 JunCommission correction (downline refund)REVERSAL−250,000RV-051REVERSED6,000,000

🖥️ Web Admin — Control Centre

For Super Admin, Operations, Finance and Auditor/Management. Each role sees only what it is permitted to (NFR-001). Commission configuration, financial approvals and solvency disclosure all live here.

🔒 umrah.pasa.my/admin · Finance & Super Admin

System Overview

Operational, financial & solvency health

Super AdminControl Centre
SA
Active Agents
1,284
↑ 86 this month
Registrations (month)
Rp 258M
86 new sign-ups
Commission Paid
Rp 162M
posted
Withdrawals Pending
14
awaiting approval

🏧 Withdrawal Approval — Finance

Approve / reject / cancel with reason & payout proof (FR-012)

IDAgentGrossCoop.NetAction
WD-228A. Razak5,000,000−500,0004,500,000Approve Reject
WD-227Nurul H.2,000,000−200,0001,800,000Approve Reject
WD-225Hafiz M.3,500,000−350,0003,150,000Proof ✓

⚖️ Solvency Disclosure

Fund-pool health controls (Council recommendation)

Registration Deposits Outstanding
Rp 3.85B
Commission Liability (owed)
Rp 412M
Withdrawals on HOLD
Rp 38M
Clawback Receivable
Rp 6.2M
⚠️
Solvency guard active. Current commission depth cap = 16 generations. The Rp 1.6M per-registration pool cannot be exceeded — the system stops distributing once the pool is exhausted.

⚙️ Commission Rules — Configurable (BR-018 / NFR-008)

Adjust amounts, generations & depth cap without code changes. A change creates a new version; historical transactions are unaffected (BR-017).

Generation 1 — Direct sponsor Active
Generation 2 — Upline Active
Generation 3 Active
Generation 4 & beyond Active
Generation depth cap (solvency)Registration fee: Rp 3,000,000
Cooperative withdrawal deduction Active

🔍 Audit Trail (NFR-002)

Every financial transaction, approval and configuration change is recorded — and cannot be deleted.

TimeUserActionObjectStatus
19 Jun 14:02finance@sysApproved withdrawal WD-226WithdrawalApproved
19 Jun 11:31superadminChanged depth cap 14→16Commission RuleVersioned
18 Jun 09:15operations@sysVerified payment REG-1042Registration PaymentValid
◆ System Modules

Modular architecture — finance first, integrity guaranteed

Built on a proven, tested double-entry Amanah-Ledger pattern. Every module maps directly to a functional requirement (FR) in the URS document.

👤
Agent Registration & Activation

Sign up via sponsor/admin, Rp 3M fee, verification, activation, automatic sponsor/upline relationship.

FR-001FR-002FR-003BR-001..003
🌳
Network Management

Upline-downline structure (closure table), ancestor/descendant traversal, generation depth, tree visualisation. Circular referral prevented.

FR-004ClosureNFR-004
💵
Generational Commission Engine

Compute & post commission per generation idempotently & atomically on valid payment. Depth cap + solvency guard.

FR-005FR-006BR-004..009
💼
Wallet & Double-Entry Ledger

CREDIT / DEBIT / HOLD / RELEASE / REVERSAL. Append-only, hash-chained, no hard delete — cancellation by reversal only.

FR-007FR-008BR-014BR-017
🎫
Registration Balance (Deposit)

Rp 3M deposit — product use only, non-withdrawable. Applied as a reducer against product invoices.

FR-009FR-010BR-010..011
🏧
Withdrawal & 10% Cooperative

Request from Commission Wallet, 10% cooperative deduction, Finance approval flow, payout proof. Deposit excluded.

FR-011..013BR-012..013
🕋
Umrah/Hajj Products & Invoices

Product packages, orders, payment allocation (wallet + deposit + cash). Total allocation never exceeds the invoice.

ProductPayment AllocationAC-008
🏅
Appraisal / Badge & Season

Gold/Diamond/Platinum, lifetime + per season (2–3 months, resettable). Criteria & periods configurable.

FR-014..016BR-015..016
🔄
Reversal & Clawback

Agent termination/refund → safely reverse the upline commission chain. Receivable created when funds are already withdrawn.

BR-017§9.2Audit
📊
Reports & Dashboards

Management & agent dashboards; network/commission/wallet/withdrawal/cooperative/product/appraisal reports + CSV/Excel/PDF export.

FR-017FR-020§11
🔔
Notifications

Alerts for activation, incoming commission, withdrawal status and badge achievement — for agents & admins.

FR-019
🛡️
Roles & Access Control

Super Admin · Operations · Finance · Agent · Auditor/Management. Each role sees only what it is permitted to.

§3 RolesNFR-001FR-018
◆ URS Document Coverage — Nothing Omitted

Every line of the document mapped to the design

5 roles · 20 functional requirements · 18 business rules · 17 data entities · 7 state machines · 10 NFRs · 11 acceptance criteria — all accounted for.

👥 Roles & Access (§3)

  • Super Admin — configuration, master data, commission rules, roles, appraisal, season, audit
  • Operations — registration verification, network, products, agent support
  • Finance — payment verification, withdrawal approval, wallet reconciliation, financial reports
  • Agent — profile, network, wallet, commission, achievement, withdrawal, buy products
  • Auditor/Management — reports, audit trail, performance statistics (read-only)

⚙️ Business Rules (BR-001 → BR-018)

  • BR-001..003 Rp 3M fee · one direct sponsor · root agent by admin
  • BR-004..007 Commission Gen-1 1M · Gen-2 250K · Gen-3 150K · Gen-4+ 100K
  • BR-008..009 Commission after valid payment · credited to wallet as CREDIT
  • BR-010..013 Deposit product-only · wallet withdrawal · 10% cooperative
  • BR-014..017 Ledger+reference · appraisal lifetime/season · reset · reversal not deletion
  • BR-018 Amounts/generations/cooperative/season — configurable

🧩 Functional Requirements (FR-001 → FR-020)

  • FR-001..006 Registration · payment · activation · network · compute & post commission
  • FR-007..010 Wallet · ledger · registration deposit · apply to product
  • FR-011..013 Withdrawal · Finance approval · cooperative bookkeeping
  • FR-014..016 Appraisal/badge · season · achievement computation
  • FR-017..020 Reports · audit trail · notifications · data export

🗄️ Data Entities & States (§7, §9)

  • Agent · Agent Closure · Registration Payment · Registration Deposit
  • Commission Rule · Commission Transaction · Wallet Account · Wallet Ledger
  • Product · Product Order · Payment Allocation · Withdrawal · Cooperative Saving Ledger
  • Appraisal Rule · Agent Achievement · Season · Audit Log
  • State machines: Agent · Payment · Commission · Ledger · Withdrawal · Order · Season

🔒 Critical Validations (§9.2)

  • No commission before valid payment · no double commission
  • Prevent circular referral (agent sponsoring its own upline)
  • Withdrawal ≤ wallet balance · deposit not withdrawable
  • Product payment allocation ≤ invoice value
  • Rule changes never alter historical posted transactions (authorised reversal + re-post)

⚡ Non-Functional (NFR-001 → NFR-010)

  • NFR-001..003 Role-based security · auditability · decimal not float
  • NFR-004..005 Network search performance · idempotent processing
  • NFR-006..007 Backup & recovery · personal data protection
  • NFR-008..010 Configurability · traceability · dashboard usability
  • AC-001..011 11 acceptance criteria converted into Pest/PHPUnit tests
◆ Calculation Scenarios (§8) — verified by automated tests

The four official URS scenarios, exact to every Rupiah

Each scenario becomes an acceptance test (Pest) — a mathematical proof of the financial logic before any delivery.

Scenario 1 — Agent A recruits Agent A.1
Registration fee A.1Rp 3,000,000
Commission to A (direct sponsor)Rp 1,000,000
Gen-2 upline commission— (A is root)
Company remainderRp 2,000,000
Scenario 2 — Agent A.1 recruits A.1.1
Registration fee A.1.1Rp 3,000,000
Commission to A.1 (direct)Rp 1,000,000
Commission to A (Gen-2 upline)Rp 250,000
Company remainderRp 1,750,000
Scenario 3 — Apply Wallet & Deposit to a product
Umrah package priceRp 30,000,000
− Commission walletRp 5,000,000
− Registration depositRp 3,000,000
Cash/bank balance dueRp 22,000,000
Scenario 4 — Wallet Withdrawal
Gross withdrawalRp 5,000,000
10% cooperative deductionRp 500,000
Wallet balance reductionRp 5,000,000
Net received by agentRp 4,500,000