Payments Overview
REMMU has a unified payment system that handles all money movement in your academy โ student fees, package purchases, one-off charges, and instructor compensation.
๐ณ Payment Flow
- Payment is created โ either automatically (recurring monthly fee) or manually (admin records a payment)
- Member pays โ via bank transfer (upload proof) or online payment (CommercePay)
- Payment is confirmed โ automatically for online payments, or by admin approval for bank transfers
- Receipt is sent โ member receives a WhatsApp notification and/or email with their receipt
๐ Payment Statuses
Status | Meaning |
|---|---|
Draft | Generated as a draft for admin review โ not yet visible to members |
Pending | Payment created, waiting for member to pay |
Processing | Online payment initiated, waiting for gateway confirmation |
Paid | Payment confirmed and complete |
Overdue | Payment past due date |
Rejected | Proof uploaded but rejected by admin |
Failed | Online payment failed at gateway |
Partially Paid | Some payment received, balance remaining |
Cancelled | Payment voided by admin |
Refunded | Payment was refunded โ see Credit Notes & Payment Vouchers๏ปฟ |
๐ท๏ธ Payment Types
REMMU tracks different kinds of charges under one unified system:
- Class fees โ monthly, per-session, or package-based
- Package purchases โ upfront session blocks
- One-off charges โ custom amounts for merchandise, events, etc.
- Enrollment fees โ bundled one-time fees generated automatically when a student joins a class
- Instructor payments โ compensation records for coaches
โ See Payment Types๏ปฟ for how to configure recurring schedules, auto-generation, deposits, and invoice numbering.
๐๏ธ Filtering Payments
The Payments page supports multiple filters that can be combined:
Filter | Description |
|---|---|
Billing period | Filter by month, year, or a specific week |
Location / Class | Filter by branch or specific class using expandable pills |
Status | Pending, Paid, Overdue, etc. |
Invoice type | Standard or New Enrollments |
Student | Search by student name |
Week filter: Appears automatically when your academy has weekly payment types. Select a start and end date to view payments for that specific week.
Sorting, pagination, and the Date column
- The Payments table defaults to newest first (sorted by created date)
- Invoice # and Date column headers are clickable โ toggle ascending/descending
- Rows per page can be set to 20 / 50 / 100 / 200 (default 50); the choice persists in the URL
- The Date column is context-aware: it shows the paid date for paid payments, the cancelled date for cancelled ones, and the due date otherwise. Hover the header for the explainer tooltip
๐ค AI Proof Verification
REMMU can automatically verify bank transfer proofs using AI before an admin reviews them. When a member uploads a receipt screenshot, the AI extracts the amount, date, transfer status, and bank name, then scores the proof against the expected payment.
Proofs that score highly are auto-approved and marked Paid immediately โ everything else stays in the normal manual review queue. The AI never auto-rejects a proof; it only ever fast-tracks the ones it's confident about.
What the AI checks:
Signal | What it checks |
|---|---|
Amount | Does the transferred amount match the invoice? |
Status | Does the receipt show a success indicator? |
Date | Was the transfer made within the expected window? |
Bank | Does the bank name match? (Skipped for QR/e-wallet receipts โ not penalised) |
Each proof card in the Proof Submissions panel shows an AI breakdown โ a confidence score, the transfer type detected, and individual signal pass/fail indicators โ so admins reviewing manually can see why a proof did or didn't qualify for auto-approval.
Configuring AI Verification
Go to Settings โ Billing โ Payment Methods โ expand Bank Transfer โ scroll to AI Proof Verification to turn the feature on, control whether qualifying proofs auto-approve, set a cap on which payments can be auto-approved, and adjust how strict the matching should be.
AI verification is available to academies on the REMMU platform. Contact support if you'd like to enable it.
๐งพ Proof Submissions (Batch Review)
When members upload bank transfer proofs, REMMU groups them by submission batch โ so if a member uploads one receipt covering multiple invoices, it appears as a single card for the admin to review.
The Proof Submissions section sits above the payments table on Payments. It is collapsible โ click the heading to expand or collapse it. An amber badge shows the number of pending submissions waiting for review.
Each batch card shows:
- File name, student name(s), submission date/time, and total amount
- Approve button (green) โ approves all linked invoices in one click without needing to expand
- Reject button (red) โ prompts for a rejection reason, then rejects all linked invoices
- Click the card to expand it and see the proof image alongside a list of all invoices covered
When expanded, you can:
- View the proof image inline or open it full size in a new tab
- See each individual invoice (student, amount, billing period, invoice number)
- Read any note the member added when uploading
- Still approve or reject from the expanded view
Members whose proof is rejected receive an email with the rejection reason and can re-upload corrected proof.
Proof History
For a complete audit trail of every proof ever submitted (approved, rejected, or re-submitted), go to Payments โ Proof History.
The page lists every proof batch with:
- Submission date and uploader name
- Student(s) and invoice number(s) covered by the batch
- Total amount
- Status badge (Approved / Rejected / Pending)
- AI verification confidence score
- Rejection reason (if rejected)
Tools available:
Tool | Purpose |
|---|---|
Search | By student name or invoice number |
Status filter | All / Approved / Rejected |
Date range | Filter by submission date (from/to) |
Sort | Newest first, oldest first, amount descending, amount ascending |
Click any batch card to expand the proof image and see all linked invoices. Use this page to audit historical decisions, find a specific proof for re-review, or check why a past proof was rejected.
๐งพ Admin-Recorded Proof
When an admin marks a payment as paid on the student's behalf (e.g. cash received at the desk, bank transfer confirmed directly with the member), they can now upload a proof image as part of that record โ a photo of the cash handover, a screenshot of the transfer confirmation, or any other supporting document.
How it works:
- Open a pending invoice and click Mark as Paid
- Fill in the amount, method, and date as usual
- Scroll to the Upload proof (optional) section
- Attach an image or PDF
The uploaded file is saved as an admin-recorded proof:
- Marked as already approved (it skips the review queue)
- Tagged with an Admin-uploaded badge in the payment detail view to distinguish from student-submitted proofs
- Visible in Proof History alongside regular submissions for audit
This is separate from the member-facing proof upload flow. Use admin-recorded proof to document offline / informal payments that still need a paper trail.
๐ฐ Partial Payments
Admins can record partial payments when a member pays part of an invoice amount. This is useful for instalment arrangements or when members pay in stages.
How it works
- Open a pending, overdue, or partially paid invoice
- Click Mark as Paid
- Enter the amount received โ if it's less than the remaining balance, it's recorded as a partial payment
- The invoice status changes to Partially Paid until the full amount is collected
- Each subsequent payment is added as a new entry until the invoice is fully paid
- The final payment automatically marks the invoice as Paid and issues a receipt
Payment entries timeline
Each partial payment is shown as a numbered entry in a visual timeline:
- Progress bar โ shows percentage paid (cyan while partial, green when complete)
- Running total โ cumulative amount paid after each entry
- Per-entry details โ amount, payment method, date, reference number, notes, and receipt (if issued)
Managing entries
While an invoice is partially paid, admins can:
- Edit an entry โ change the amount, payment method, date, or notes
- Delete an entry โ removes the payment and recalculates the balance
- Download receipt โ if a receipt was issued for that entry
Deleting all entries reverts the invoice back to its original status (pending or overdue).
Receipt options for partial payments
Scenario | Receipt behaviour |
|---|---|
First partial payment | Choose to issue a receipt or skip |
Subsequent partials | Add to existing receipt or issue a new receipt number |
Final payment | Receipt is always issued automatically |
Payment summary
The Mark as Paid dialog shows a summary box at the top:
- Invoice Total โ the full amount
- Paid so far โ sum of all entries (green when > 0)
- Remaining โ what's still owed (highlighted)
The amount input defaults to the remaining balance and shows a warning when recording a partial amount.
Partial payments are an admin-only feature. Members see their invoice status as "Partially Paid" with the amount remaining.
๐ข Gateway Reference & Transaction Numbers
For online payments, the payment detail view shows the gateway-issued reference code (order ID) and transaction number in monospace font. Use these to cross-reference with your CommercePay or other gateway dashboards when reconciling.
๐ Review Drafts
If your academy has Generate as drafts enabled in invoice settings, monthly recurring invoices are created as drafts instead of being sent to members directly. Drafts are not visible to members and don't trigger any emails until you send them.
Review drafts under Payments โ Review Drafts. Pick a billing month โ drafts are grouped by billing type:
Section | Shows |
|---|---|
Per Hour | Student, class, day, hourly rate, Lessons (editable inline), amount |
Monthly | Student, class, amount |
Frequency | Student, class, tier / cycle, amount |
Package | Student, package name, sessions / validity, amount |
Other | Anything that doesn't fit above |
A summary band at the top shows total students, draft count, total amount, location breakdown, and how many lessons were adjusted.
Filters
A toolbar above the sections lets you narrow the list:
- Search by student name or class name
- Location filter (appears when 2+ locations have drafts)
- Class filter โ beside the location filter; its options narrow to the selected location, and changing the location resets it
- Clear filters button
Per-section multi-select
Each billing-type section header has a select-all checkbox. Ticking it (or individual rows) reveals Send and Delete buttons in the section header โ so you can send or delete whole groups (e.g. only per-hour drafts) in one click.
Per-row actions
- Send โ emails the invoice to the member (and guardians) and moves the draft to Pending. Clicking Send twice (or two admins sending the same draft) is safe โ the invoice number is claimed once, so no number is wasted
- Edit โ open the full edit dialog to change amount, line items, or due date
- Delete โ permanently remove the draft (drafts only)
Inline lesson edit (per-hour drafts only)
For per-hour drafts, the Lessons column is editable inline โ click the cell, type the corrected lesson count, blur or hit Enter. REMMU recalculates the amount server-side instantly.
Send All
A sticky action bar at the bottom shows the total amount and draft count. Click Send All to bulk-send every draft on screen after a confirmation dialog, or Delete All to drop them entirely (also confirmed). When filters are active, the buttons change to Send Filtered / Delete Filtered so you only act on what you can see.
Drafts that aren't sent stay in this list until you send or delete them. They are also auto-promoted to Pending on the due date of the invoice (so you don't miss billing if you forget to review).
Invoice numbers are assigned at publish time, not when the draft is generated โ so deleted drafts don't leave gaps in your invoice sequence.
โ๏ธ Editing a Payment
Open any payment and click Edit to update its details:
- Invoice Date โ the date printed on the invoice/receipt PDF (defaults to creation date; useful for back-dating)
- Billing period โ the month/quarter/year this invoice covers; the description updates automatically to match
- Description โ auto-generated from the class and billing period, but you can override it manually
- Discount (RM) โ apply a one-off discount to the invoice amount
- Late fee โ add a late payment charge if configured
- Line items (enrollment invoices only) โ edit individual line item amounts, add a description to each item, remove items, or add new custom line items
๐ฅ Downloading Invoice & Receipt PDFs
You can download a PDF copy of any invoice or receipt:
- From the payments table: open the โฏ menu โ Download Invoice or Download Receipt
- From inside the payment detail view: click the Download button
Both pending and paid invoices can be downloaded. Paid invoices also have a receipt PDF with the receipt number and payment confirmation details.
๐ง Resending Invoice / Receipt Email
You can resend the invoice or receipt email to the member at any time:
- From the payments table: open the โฏ menu โ Resend Invoice (pending) or Resend Receipt (paid)
- From inside the payment detail view: click Resend Invoice or Resend Receipt
The email is sent to the member or guardian with the latest payment details.
๐ Reverting a Payment
Admins can revert a Paid payment back to Pending status. This is useful when a payment was marked paid by mistake or a bank transfer was reversed.
From the Payments table, open the โฏ menu on any paid payment โ Revert to Pending. The payment returns to pending and the member's payment health updates accordingly.
โป๏ธ Reinstating a Cancelled Invoice
Cancelled an invoice by mistake? Admins can bring it back to Pending:
- From the Payments table: open the โฏ menu on a cancelled payment โ Reinstate
- From the student's Payments tab, or inside the payment detail view: click Reinstate
Confirm in the dialog. The invoice returns to Pending with the same invoice number, and the cancellation reason is cleared. Reinstate is also available in the mobile app for admins.
Only Cancelled invoices can be reinstated. To undo a payment that was marked paid by mistake, use Revert to Pending instead.
๐ Exporting Payments
Click Export above the Payments table to download the current filtered list as a CSV file. All active filters apply โ filter first, then export the exact records you need.
๐ฐ Currency
All amounts are in Malaysian Ringgit (RM). Amounts are stored precisely to the sen (e.g. RM 75.50).
โ See Billing Types๏ปฟ for more on how fees are calculated. โ See Payment Methods๏ปฟ for how members can pay.