Skip to content

Saving Goals

A saving goal is a named target a member saves toward — a Hajj fund, an emergency fund, school fees — funded by a fixed amount moved from the main balance each cycle into a holding dedicated to that goal. The member watches the balance grow toward the target and releases it when ready.

Held savings under Wadiah (safe-keeping), with Mudarabah (profit-sharing) where a goal is structured to share returns. No interest is paid on the held amount; growth, if any, comes from a compliant profit-share, not riba.

  • Members saving toward a specific target over time.
  • Cooperatives and organizations collecting regular dues from members (the dues variant below).

Typical goals: a locked multi-year Hajj fund, a flexible emergency fund a member can withdraw anytime, an education fund an admin sets up for a member.

  • Named target with an amount and a timeframe.
  • Scheduled auto-debit — a fixed amount moves from the main balance into the goal each cycle.
  • Liquidity choicelocked (held until maturity) or loose (withdraw anytime).
  • Pause / resume auto-debit without losing the goal.
  • Manual top-up — an off-schedule one-time contribution.
  • Withdraw the held amount back to the main balance.
stateDiagram-v2
    direction LR
    [*] --> Active: member creates goal
    Active --> Paused: pause auto-debit
    Paused --> Active: resume
    Active --> Completed: target reached / fully withdrawn
    Active --> Cancelled: member cancels
    Paused --> Cancelled: member cancels
    Completed --> [*]
    Cancelled --> [*]

    note right of Active
        Auto-debit runs each
        cycle on the due date
    end note
    note right of Paused
        Auto-debit skipped;
        an admin may still add
        a manual contribution
    end note

Funds shuttle between the main balance and the goal holding. Nothing leaves the platform until the member withdraws to a bank.

flowchart LR
    MEMBER([Member])
    MAIN[("Main balance")]
    HOLD[("Goal holding")]
    BANK[/"Bank<br/>(separate withdrawal)"/]

    MEMBER -.->|creates goal| HOLD
    MAIN -->|"auto-debit each cycle"| HOLD
    MAIN -->|"manual top-up"| HOLD
    HOLD -->|"withdraw / on completion"| MAIN
    MAIN -->|"withdrawal"| BANK

    classDef money fill:#FDF8E8,stroke:#3C2C96,stroke-width:2px,color:#1E1B4B;
    classDef edge fill:#FFF3D0,stroke:#F4BE27,stroke-width:1.5px,color:#8B5A00;
    classDef actor fill:#FFFFFF,stroke:#3C2C96,stroke-width:1.5px,color:#1E1B4B;
    class MAIN,HOLD money;
    class BANK edge;
    class MEMBER actor;

The same engine powers cooperative dues (iuran): a recurring obligation a member owes their organization, rather than a personal target. The organization defines the monthly amount; the member pays it from their balance, and the app shows current-month progress — paid or outstanding. Dues can be settled straight from the main balance or topped up first through the payment gateway.

  • Goal types — offer personal goals, cooperative dues, or both.
  • Liquidity rules — allow locked goals, loose goals, or restrict to one.
  • Admin-managed goals — let org admins create and manage goals on behalf of members.
  • Branding & language — the whole flow under your brand, in ID / EN / AR.
  • Auto-debit only runs when the main balance has funds; a short balance skips the cycle.
  • The goal does not pull from external banks — funds come from the main balance.
  • Locked goals hold funds until maturity by design.