Fee Management
Overview
Manages fee structures, records payments, tracks outstanding balances, and sends reminders. See also Accounts for the double-entry bookkeeping underlying all transactions.
Fee Structure
Define fees per class per academic year:
POST /school-admin/fee/structure/create
{
"data": {
"academicYearId": "uuid",
"classId": "uuid",
"heads": [
{ "name": "Tuition Fee", "account": "REVENUE_TUITION", "amount": 5000, "frequency": "MONTHLY" },
{ "name": "Transport Fee", "account": "REVENUE_TRANSPORT", "amount": 2000, "frequency": "MONTHLY", "optional": true },
{ "name": "Lab Fee", "account": "REVENUE_LAB", "amount": 1000, "frequency": "ANNUAL" },
{ "name": "Admission Fee", "account": "REVENUE_ADMISSION", "amount": 5000, "frequency": "ONE_TIME" }
]
}
}
Frequency Types
| Frequency | Description |
|---|---|
MONTHLY | Charged every month |
QUARTERLY | Charged once per quarter |
HALF_YEARLY | Charged twice a year |
ANNUAL | Charged once per academic year |
ONE_TIME | One-time (admission, exam fee) |
Record Payment
POST /school-admin/fee/collection/record
{
"data": {
"studentId": "uuid",
"academicYearId": "uuid",
"date": "2024-04-05",
"amount": 7000,
"paymentMode": "ONLINE", // CASH | ONLINE | CHEQUE | DD
"transactionRef": "UPI/TXN123456",
"narration": "Q1 tuition + transport"
}
}
This creates double-entry records in the FeeLedger (see Accounts).
Fee Collection Report
GET /school-admin/fee/report/collection?from=2024-04-01&to=2024-04-30
{
"data": {
"totalCollected": 125000,
"totalOutstanding": 43000,
"modeBreakdown": {
"ONLINE": 95000,
"CASH": 20000,
"CHEQUE": 10000
},
"classBreakdown": [
{ "className": "Class 1", "collected": 20000, "outstanding": 5000 },
{ "className": "Class 2", "collected": 18000, "outstanding": 8000 }
]
}
}
Outstanding Report
GET /school-admin/fee/report/outstanding
Lists all students with pending fees, sorted by amount due.
Send Reminder
POST /school-admin/fee/reminder/send
{
"data": {
"studentId": "uuid",
"medium": "SMS" // SMS | EMAIL | BOTH
}
}
Sends via SNS → SMS or SES → email.
Concessions
POST /school-admin/fee/concession/apply
{
"data": {
"studentId": "uuid",
"type": "SCHOLARSHIP", // SCHOLARSHIP | SIBLING | NEED_BASED | SPORTS
"amount": 5000,
"reason": "Academic excellence"
}
}
Creates a CR entry in FeeLedger (see Accounts).
Parents App Integration
Parents can view:
- Fee structure and what's due
- Payment history
- Download receipt (PDF via S3 presigned URL)