Fees troubleshooting — common errors and fixes
Fix common Pathshala fee problems — invoices that will not generate, payments refused, receipts not delivered, reminders skipped and gateway errors.
This page lists the problems people meet most often in Pathshala Fees, what the message means, and what to do. Some messages on these screens are in Hinglish today; they are described here in English.
#Setup
| What you see | What it means | What to do |
|---|---|---|
| Fee Structures says no class is configured, or no academic year is configured | Fees are set per class and per year | Add classes (Apps › School & Academics › School settings › Classes) and set the current year (Sidebar › Settings › Organisation › Organisation details › 🎓 Academic) |
| The structure grid says no fee head is active | There are no active fee heads | Create heads in Apps › Fees › Fees settings › Fee Heads, or switch one on |
| "Due day" must be between 1 and 31 | A due day outside the month | Type a day from 1 to 31 |
| A fee head with this name already exists | Names must be unique | Use a different name, or edit the existing head |
| A head (or discount type, or activity) "is in use" and can only be deactivated | It is already used on structures, students or invoices | Switch it to Inactive instead of deleting |
| The source class has no fee structure (when copying) | The class you copy from is empty | Fill the source class first |
| A collection plan amount must be on every instalment or on none | Some instalments have amounts and some do not | Fill all of them, or clear all of them |
| More than 24 instalments, or a period outside the academic year | Plan limits | Keep to 24 instalments inside the session dates |
#Raising invoices
| What you see | What it means | What to do |
|---|---|---|
| Invoice already exists for this period | The student already has a bill for that month | Press View → and take the payment on the existing bill |
| A list of months already billed by another invoice | The new bill would overlap an old one | Cancel the old bill, or pick a period that does not overlap |
| No charge applicable for this period | Every head was already billed in its frequency window, or nothing applies | Check the class structure; check Skipped items on the preview |
| Only active students can be invoiced | The student is not active | Make the student active, or skip them |
| The student's class (or academic year) is not set | Missing on the student record | Edit the student and choose the class and session |
| No current academic year. Set one in Settings → Academic year. | No session is marked current | Set the current academic year |
| An invoice with payments cannot be cancelled | Money is recorded against it | Cancel or refund those payments first (Refunds), then cancel the invoice |
| Bulk run shows Failed (n) | Some students could not be billed | Open the Failed tab — each row gives the reason |
#Recording payments
| What you see | What it means | What to do |
|---|---|---|
| A warning that no payment method is configured, with a setup link | There is no active method | Add one in Apps › Fees › Fees settings › Payment Methods |
| The payment is more than the balance | Overpayment is not allowed | Take the balance only, or raise the next bill first |
| A payment cannot be taken on a cancelled invoice | The bill was cancelled | Use the student's current bill |
| The payment method is invalid or inactive | The method was switched off | Switch it on, or choose another |
| "Payment … was already recorded" | You pressed twice; the first press worked | Nothing to do — nothing was taken twice |
| A cashier cannot cancel or refund | These need owner/admin or a job with the permission | Ask the owner or an admin |
#Receipts and invoices on WhatsApp
| What you see | What it means | What to do |
|---|---|---|
| No parent phone on this student | No phone or WhatsApp number on the record | Add the number on the student record and press Send again on WhatsApp |
| Not delivered — Meta error … | WhatsApp could not reach the number | Check the number is on WhatsApp; phone the family |
| Not sent — this parent replied STOP | The family opted out of WhatsApp messages | Give the receipt by hand or print it |
| Sent — waiting for WhatsApp to confirm delivery | Accepted, not yet confirmed | Check again in a minute |
| Receipts are not sent, and pressing Send gives a plan message | Forever Free does not send receipts or invoices on WhatsApp | Upgrade to Basic, or download the PDF and share it |
| Receipt could not be generated | A temporary problem making the PDF | Try Download PDF again; contact support if it repeats |
#Fee reminders
| What you see | What it means | What to do |
|---|---|---|
| No WhatsApp number is configured to send from. Connect one in Settings -> WhatsApp Settings, or contact MJX. | No sending number is set up | Connect your number or contact MJX support |
| Skipped: no phone number | No number on the student | Add it on the student record |
| Skipped: already reminded today | Reminded within 20 hours | Wait, or (owner/admin) tick Send again |
| Skipped: reminded less than 60 minutes ago — try again shortly | Too soon | Wait an hour |
| Skipped: parent has opted out (replied STOP) | The family opted out | Phone them |
| Your own WhatsApp number cannot send fee reminders yet | The fee templates are not approved on your number | Press Create these on my number and wait for Meta |
| A family is missing from the list | Only bills overdue or due within 7 days, with a balance, for active students are listed | Check the bill's due date and status |
#Cheques
| What you see | What it means | What to do |
|---|---|---|
| A reason is required for a bounce | Bounces need a note | Type the reason, e.g. Insufficient funds |
| The cheque is already marked with that outcome | Nothing to change | — |
| The outcome date cannot be in the future | Wrong date | Use the date the bank answered |
| A cancelled or refunded payment cannot get a cheque outcome | It was already reversed | Nothing to do |
| The payment is not in the cheque register | No cheque number was typed | Record cheques with the cheque number |
#Discounts
| What you see | What it means | What to do |
|---|---|---|
| The value is above the cap | The type has a Max Value (Cap) | Give a value up to the cap, or change the type |
| The type requires approval and cannot be auto-approved | Requires Approval is on | Save it as pending; the owner or an admin presses Approve |
| A used discount cannot be removed | It is on an invoice already | Press Expire and set the last date |
| Only the owner or an admin can approve | Approval needs that role or the permission | Ask the owner |
#Online payments and parent claims
| What you see | What it means | What to do |
|---|---|---|
| That does not look like a Razorpay Key ID (it should start with rzp_test_ or rzp_live_). | The wrong value was pasted | Copy the Key ID from Razorpay → Settings → API Keys |
| Razorpay rejected these keys. Please check the Key ID and Secret and try again. | Wrong, old or mixed test/live keys | Make new keys and paste both |
| PhonePe did not accept these credentials… | Wrong PhonePe Client ID or Secret | Copy them again from your PhonePe Business dashboard |
| Only the owner or an admin can change payment settings | Gateway settings are owner/admin only | Ask the owner |
| MJX is set as the collector for this institution… | MJX collects for you; you cannot connect your own gateway | Use Getting paid & KYC instead |
| A parent sees Online payment is not available for this school. | No gateway is connected (or not on Pro) | Connect one in Payment Methods, or let them pay by UPI |
| A parent sees Your payment may have gone through but we could not record it… | The gateway took the money but Pathshala could not confirm it | Check your gateway dashboard and record the payment by hand |
| This feature is not part of your plan. | The plan lacks it (gateway, claims, activities, insights) | Upgrade |
See also Online payments, Parent payments and Refunds.
#Menus and access
| What you see | What it means | What to do |
|---|---|---|
| A Fees row with a padlock | It is not in your plan | Click it to see the upgrade, or ask the owner |
| A Fees row is missing | Your job lacks the permission, or the plan hides that row | See Who can do what |
| The section is called Payments, not Fees | You hold Fees only because of MJX LMS | Buy MJX Fees Management to get the full fee book |
#Still stuck?
WhatsApp or call MJX support on 7996837555, or email info@mjxtechnologies.com. Tell us the screen, the student or invoice number, and the exact message.
#Questions people ask
Why can I not see a Fees screen in the menu?
Either your plan does not include it (the row shows a padlock or is hidden) or your job does not include the permission. Ask the owner, or see Who can do what.
Why did a parent not get the receipt?
Open the payment and read the Receipt on WhatsApp card. The usual reasons are no phone number on the student, a number that is not on WhatsApp, a parent who replied STOP, or a Forever Free plan, which does not send receipts.
Why does a new discount not show on the bill?
Discounts apply only to invoices generated after they are approved and only when they are valid on the first day of the bill's period. Cancel and regenerate the bill if needed.