0%
balqalam Logo
balqalam
FeaturesCommunityPricingDocumentation
Login
  • Introduction
  • Help center
  • Common questions
  • Get Started
  • Localhost
  • Architecture
  • Structure
  • Pattern
  • Page
  • Layout
  • Content
  • Types
  • Config
  • Actions
  • Queries
  • Authorization
  • Validation
  • Form
  • Table
  • Detail
  • Card
  • Util
  • Hooks
  • List Params
  • Views
  • README.md
  • ISSUE.md
  • Technology Stack
  • Database
  • File
  • CDN Assets
  • Entry Points
  • Dashboard
  • Authentication
  • Credentials
  • OAuth
  • Flow Diagrams
  • Multi-Tenancy
  • Offline
  • Onboarding
  • Onboarding Videos
  • Add Values
  • Admission
  • Application
  • Attendance
  • Compliance
  • Profile
  • Exams
  • Exam Wizard
  • Timetable
  • Classrooms
  • Notifications
  • Conference
  • LMS (Lumos)
  • Finance
  • Fee Management
  • Invoice
  • Wallet
  • Salary
  • Payroll
  • Timesheet
  • Expenses
  • Budget
  • Receipt
  • Accounts
  • Banking
  • Reports
  • Dashboard
  • Permissions
  • Messages
  • Integration Flow
  • Provision
  • AI Document Processing
  • Document Intelligence
  • Internationalization
  • Translation
  • Translation Guide
  • Icons
  • Docs Factory
  • Inspiration
  • Listings
  • Teachers
  • Students
  • Catalog
  • Library
  • Contributing
  • Code of conduct
  • GitHub Workflow
  • Database Seeds
  • Database Safety
  • Test Accounts
  • Bulk import
  • Playwright
  • Prettier
  • Block Rebound
  • Transportation

Wallet

PreviousNext

Cashless stored-value wallets for students and staff — top-ups, balances, and spending. Wallet CRUD and top-ups work, but top-ups don't post to the ledger, there is no surfaced refund workflow, and PIN/QR payments are not built.

Wallet gives each user a stored-value balance for cashless school transactions — top up, hold a balance, and (eventually) pay fees from it. The UI lives in content.tsx; there are no dedicated table/columns/form components yet.

Flow

Create wallet  →  top up (payment method)  →  hold balance  →  spend (e.g. pay fees)

Status

FeatureStatus
Wallet CRUD per userProduction
Top-up flowProduction
Balance accrual from paymentsProduction
RefundrefundWallet action exists, but no surfaced workflow — overpaid top-ups are reversed manually
Payment-gateway integrationPlanned
PIN verificationPlanned
QR-code paymentsPlanned
Low-balance alertsPlanned
Wallet-to-bank sweepPlanned

Routes

RoutePageStatus
/{lang}/finance/walletOverviewReady
/{lang}/finance/wallet/allAll wallets listReady
/{lang}/finance/wallet/newCreate walletReady
/{lang}/finance/wallet/[id]Wallet detailReady
/{lang}/finance/wallet/transactionsTransaction historyReady

Server actions

ActionPurpose
createWalletCreate a wallet for a user
getWalletsList wallets (tenant-scoped)
topupWalletAdd funds to a wallet
refundWalletReverse funds (no surfaced workflow yet)

Ledger / accounting

Does not post to the ledger. postWalletTopup exists in the engine but has zero callers, so top-ups do not create the DR Cash / CR Unearned Revenue entries the README describes. Reversing an overpaid top-up requires a manual journal entry in Accounts.

Schema

prisma/models/finance-budgets.prisma: Wallet, WalletTransaction — both schoolId-scoped. No lang field.

Stubs

  • No table.tsx / columns.tsx / form.tsx — all UI is inline in content.tsx.
  • validation.ts factory not yet wired to consumers.

Tests

None.

Key files

ComponentPath
Server actionssrc/components/school-dashboard/finance/wallet/actions.ts
Content (UI)src/components/school-dashboard/finance/wallet/content.tsx
Schemaprisma/models/finance-budgets.prisma

See also

  • Finance — block overview
  • Fees — wallet balance can settle fees
  • Banking — intended wallet-to-bank sweep target
InvoiceSalary

On This Page

FlowStatusRoutesServer actionsLedger / accountingSchemaStubsTestsKey filesSee also

Built by Databayt ·

Welcome to balqalam.

A great journey is about to begin.