DEV Community

Priyansh Kansara
Priyansh Kansara

Posted on

How to Automate Fee Reminders for Your Coaching Institute on WhatsApp

How to Automate Fee Reminders for Your Coaching Institute on WhatsApp

Target audience: Coaching institute owners, EdTech operators, and developers building WhatsApp automation for education businesses in India.


The Problem: Fee Collection Is Broken

If you run a coaching institute in India — whether it's a JEE/NEET prep centre in Kota, a CAT classroom in Pune, or a chain of tuition centres — you already know the pain:

  • Manual follow-ups don't scale. One counsellor can realistically call 30–40 parents per day. If you have 500+ students with monthly or quarterly instalments, you're already underwater.
  • SMS open rates are ~75%, but response rates are abysmal. Parents see the SMS, intend to pay, and then forget. The average fee collection delay in Indian coaching institutes is 8–12 days.
  • Phone calls are awkward. No counsellor enjoys calling 200 parents to say "fee due tomorrow." It burns staff morale and still doesn't guarantee payment.
  • Cash collection is a nightmare. Handling cash means reconciliation errors, no audit trail, and parents who lose receipts.

The result? A coaching institute collecting ₹50 lakh/month in fees might have ₹8–10 lakh stuck in "pending" at any given time. That's working capital you can't use for faculty salaries, marketing, or expansion.

Why WhatsApp Works for Fee Reminders

WhatsApp isn't just another channel — it's where your parents already live. Here's what the data shows:

Metric WhatsApp SMS Phone Call
Open rate 98% 75% 30% (answered)
Avg. response time 90 seconds Hours to days Immediate (if answered)
Two-way conversation Yes No Yes
Rich media (PDF receipts, UPI QR) Yes No No
Cost per outreach ₹0.30–0.79/conversation ₹0.15–0.30/SMS ₹1–3/call

Coaching institutes that switch to WhatsApp API for fee reminders consistently report 40–50% improvement in on-time collection within the first 60 days. At ₹50 lakh/month, even a 10% improvement adds ₹5 lakh to monthly cash flow.

The Architecture: How Fee Reminder Automation Works

Here's the end-to-end flow:

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Your ERP /     │────▶│  WhatsApp        │────▶│  Parent's        │
│  Student DB     │     │  Business API    │     │  WhatsApp        │
│  (Fee due data) │     │  (via BSP)       │     │  (Pays via UPI)  │
└─────────────────┘     └──────────────────┘     └─────────────────┘
         │                       │                        │
         │                       ▼                        │
         │              ┌──────────────────┐              │
         │              │  Payment Gateway │◀─────────────┘
         │              │  (Razorpay/PayU) │   Webhook:
         │              └──────────────────┘   "Payment received"
         │                       │
         ▼                       ▼
┌─────────────────────────────────────────┐
│  Auto-send PDF receipt via WhatsApp     │
│  Update ERP: "Fee collected"            │
└─────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Key Components

  1. Student database / ERP — Source of truth for fee amounts, due dates, and parent contact info. This could be a custom ERP, a Google Sheet, or a platform like Fedena or SchoolAdmin.

  2. WhatsApp Business API (WABA) — Accessed through a Meta-approved Business Solution Provider (BSP). You cannot use WABA directly; the BSP handles API access, template approvals, and hosting.

  3. Payment gateway — Razorpay, PayU, or Cashfree. Generates payment links and sends webhooks on successful payment.

  4. Automation engine — A cron job or webhook handler that checks for upcoming due dates, sends reminders, and processes payment confirmations.

Step-by-Step: Building the Fee Reminder System

Step 1: Set Up WhatsApp Business API

You need three things:

  • Meta Business Manager account — Register at business.facebook.com with your institute's official name, address, and GST certificate or trust/society registration.
  • A dedicated phone number — A fresh number not previously linked to a personal WhatsApp account. This becomes your institute's permanent WhatsApp identity.
  • A BSP (Business Solution Provider) — Meta-approved partners like WATI, Interakt, AiSensy, or Twilio. For coaching institutes, look for a BSP with pre-built education templates and ERP integration support.

Timeline: Business verification takes 1–3 business days. Template approval takes minutes to 24 hours. Most institutes go live in 5–7 business days.

Step 2: Create Fee Reminder Message Templates

WhatsApp requires pre-approval for outbound message templates. Here are the four templates you need:

Template 1 — Advance Notice (7 days before due date)

Hi {{1}}, this is a friendly reminder from {{2}}.

Your tuition fee of ₹{{3}} for {{4}} is due on {{5}}.

Please pay before the due date to avoid late fees.

[Pay Now] [View Fee Details]
Enter fullscreen mode Exit fullscreen mode

Template 2 — Due Date Reminder (1 day before)

⏰ Fee Due Today

{{1}}, your fee of ₹{{3}} is due today.
Avoid a ₹{{4}} late fee by paying now.

UPI ID: {{5}}

[Pay Now] [Contact Admin]
Enter fullscreen mode Exit fullscreen mode

Template 3 — Payment Confirmation

✅ Payment Received

Thank you, {{1}}! We have received ₹{{2}} for {{3}}.
Your receipt number is {{4}}.

Receipt attached. Next instalment due: {{5}}
Enter fullscreen mode Exit fullscreen mode

Template 4 — Overdue Notice (3 days past due)

Dear {{1}},

Your fee of ₹{{2}} for {{3}} was due on {{4}}.
Please clear the pending amount to avoid late fee charges.

[Pay Now] [Contact Admin]
Enter fullscreen mode Exit fullscreen mode

Pro tip: Utility templates (fee reminders, attendance alerts) get approved faster than marketing templates. Submit your fee reminder templates first.

Step 3: Integrate with Your Payment Gateway

Here's a Python example using Razorpay webhooks to trigger payment confirmation messages:

import requests
import json
from datetime import datetime, timedelta

# Configuration
WHATSAPP_API_URL = "https://graph.facebook.com/v18.0/{phone_number_id}/messages"
ACCESS_TOKEN = "your_whatsapp_access_token"
HEADERS = {
    "Authorization": f"Bearer {ACCESS_TOKEN}",
    "Content-Type": "application/json"
}

def send_fee_reminder(phone_number, student_name, amount, due_date, course_name):
    """Send a fee reminder via WhatsApp Business API."""
    payload = {
        "messaging_product": "whatsapp",
        "to": phone_number,
        "type": "template",
        "template": {
            "name": "fee_reminder_advance",
            "language": {"code": "en"},
            "components": [
                {
                    "type": "body",
                    "parameters": [
                        {"type": "text", "text": student_name},
                        {"type": "text", "text": "Your Institute Name"},
                        {"type": "text", "text": str(amount)},
                        {"type": "text", "text": course_name},
                        {"type": "text", "text": due_date}
                    ]
                }
            ]
        }
    }

    response = requests.post(
        WHATSAPP_API_URL.format(phone_number_id="your_phone_number_id"),
        headers=HEADERS,
        json=payload
    )
    return response.json()

def handle_payment_webhook(payment_data):
    """Process Razorpay payment webhook and send confirmation."""
    if payment_data.get("event") == "payment.captured":
        payment = payment_data["payload"]["payment"]["entity"]

        # Extract student info from notes
        student_name = payment["notes"].get("student_name", "Parent")
        amount = payment["amount"] / 100  # Razorpay sends in paise
        receipt_id = payment["notes"].get("receipt_id", "N/A")
        course = payment["notes"].get("course", "Tuition Fee")
        next_due = payment["notes"].get("next_due", "N/A")
        parent_phone = payment["notes"].get("parent_phone")

        if parent_phone:
            send_payment_confirmation(
                parent_phone, student_name, amount, 
                receipt_id, course, next_due
            )

def send_payment_confirmation(phone, name, amount, receipt, course, next_due):
    """Send payment confirmation with receipt."""
    payload = {
        "messaging_product": "whatsapp",
        "to": phone,
        "type": "template",
        "template": {
            "name": "payment_confirmation",
            "language": {"code": "en"},
            "components": [
                {
                    "type": "body",
                    "parameters": [
                        {"type": "text", "text": name},
                        {"type": "text", "text": f"₹{amount}"},
                        {"type": "text", "text": course},
                        {"type": "text", "text": receipt},
                        {"type": "text", "text": next_due}
                    ]
                }
            ]
        }
    }

    requests.post(
        WHATSAPP_API_URL.format(phone_number_id="your_phone_number_id"),
        headers=HEADERS,
        json=payload
    )
Enter fullscreen mode Exit fullscreen mode

Step 4: Build the Reminder Scheduler

A cron job that runs daily and checks for upcoming due dates:

import schedule
import time
from datetime import datetime, timedelta

def check_upcoming_fees():
    """Check for fees due in 7 days, 1 day, and overdue."""
    today = datetime.now().date()

    # Query your database for students with upcoming fees
    students = get_students_with_fees_due()

    for student in students:
        due_date = student["fee_due_date"]
        days_until_due = (due_date - today).days

        if days_until_due == 7:
            send_fee_reminder(
                student["parent_phone"],
                student["student_name"],
                student["fee_amount"],
                str(due_date),
                student["course_name"]
            )
        elif days_until_due == 1:
            send_due_date_reminder(
                student["parent_phone"],
                student["student_name"],
                student["fee_amount"],
                student["late_fee_amount"],
                student["upi_id"]
            )
        elif days_until_due == -3:
            send_overdue_notice(
                student["parent_phone"],
                student["student_name"],
                student["fee_amount"],
                str(due_date)
            )

# Run daily at 9:00 AM
schedule.every().day.at("09:00").do(check_upcoming_fees)

while True:
    schedule.run_pending()
    time.sleep(60)
Enter fullscreen mode Exit fullscreen mode

Step 5: Collect Opt-In (Critical!)

You cannot send WhatsApp messages to parents who haven't explicitly opted in. Here's how to collect opt-in:

  • At admission time: Add a checkbox on your admission form: "I agree to receive fee reminders and updates on WhatsApp."
  • At fee payment: When parents pay via your payment gateway, include an opt-in consent checkbox.
  • Via website form: Add a WhatsApp opt-in form on your website.
  • Via QR code: Put a "Join WhatsApp Updates" QR code at your front desk.

Store opt-in records with timestamp and source. If a parent replies "STOP," your system must handle unsubscription automatically.

The Reminder Cadence That Works

Based on data from coaching institutes using WhatsApp API, this cadence maximises on-time collection:

Timing Message Type Expected Impact
7 days before due Friendly advance notice with payment link 60% pay at this stage
1 day before due Urgent reminder with UPI ID and pay button 25% pay at this stage
Due date morning "Fee due today" with one-tap pay 10% pay at this stage
3 days overdue Polite overdue notice with late fee warning 4% pay at this stage
7 days overdue Final notice + escalation to counsellor 1% pay at this stage

Total on-time collection: 80–90% (up from 55–65% with manual follow-ups).

Real-World Results

Here's what coaching institutes report after implementing WhatsApp fee reminder automation:

Metric Before After
On-time fee collection rate 55–65% 80–90%
Avg. collection delay 8–12 days 3–5 days
Counsellor hours per 100 leads 40–60 hours 8–12 hours
Cost per enrolled student (from WhatsApp) ₹800–1,500 ₹250–500
Parent satisfaction (fee comms) Low Very High

Common Mistakes to Avoid

  1. Sending messages without opt-in. This violates WhatsApp's policies and gets your number banned. Always collect explicit consent.

  2. Using personal WhatsApp for bulk messaging. Personal numbers get banned quickly. Always use the Business API via a registered BSP.

  3. Ignoring template approval timelines. Submit templates at least 48 hours before you need them. Marketing templates take longer than utility templates.

  4. Not integrating with your payment gateway. The magic happens when payment confirmation is automatic. Without it, you're just sending reminders — still useful, but not transformative.

  5. Sending too many messages. If you send more than 4–5 reminders per fee cycle, parents will mute or block you. Stick to the cadence above.

  6. Forgetting about late fees. If you charge late fees, mention them in the overdue template. If you don't, don't threaten them.

Cost Breakdown for a Coaching Institute

Let's say you have 500 students, each paying ₹5,000/month:

Cost Component Amount
WhatsApp utility conversations (500 × 2 reminders/month) ₹0.30 × 1,000 = ₹300/month
Payment gateway (Razorpay: 2% + GST) ₹5,000/month
BSP platform fee (varies) ₹0–2,000/month
Total ₹5,300–7,300/month

Compare this to the cost of one staff member spending 3 days/month on manual follow-up calls: ₹15,000–20,000/month in salary alone, plus the opportunity cost of not doing actual counselling.

Next Steps

  1. Audit your current fee collection process. How many staff hours go to follow-up? What's your on-time collection rate?
  2. Choose a BSP with education-sector experience and ERP integration support.
  3. Set up your Meta Business Manager and get verified.
  4. Create and submit your fee reminder templates.
  5. Integrate with your payment gateway for automatic confirmation.
  6. Collect opt-in from your existing parents before going live.
  7. Start with one course or batch as a pilot, then scale.

The institutes that win in 2026 aren't the ones with the best faculty or the lowest fees — they're the ones with the best systems. WhatsApp fee reminder automation is one of the highest-ROI systems you can implement.


Have you implemented WhatsApp fee reminders at your coaching institute? What results did you see? Share your experience in the comments.

Top comments (0)