Home / Help Center / pos-app / Sell / Billing / Khata Reminders
📖 Sell / Billing

Khata Reminders

Khata Reminders lists every customer who still owes money (udhaar/khata) and lets you send a polite, pre-written WhatsApp message asking them to clear it — in one click, with no typing required.

📍 Menu path: Sell / Billing → Khata Reminders
👤 Who uses it: All roles with Customers access (featureKey: customers) — no plan-tier restriction

Overview

The list is built from the same outstanding-balance data used in Customer Reports, showing each customer's name, phone, total amount due, how many unpaid bills make up that total, and the date of their oldest unpaid bill.

A single editable message template (with placeholders for the customer's name, the amount, the bill count and the oldest bill's date) is used for every reminder, so the tone stays consistent without retyping it customer by customer.

Sending a reminder opens WhatsApp Web/App via a wa.me link with the message pre-filled against that customer's phone number — you still click Send inside WhatsApp yourself, nothing is sent automatically in the background.

Before You Start

Step-by-Step Guide

1 Review who owes money today

  1. Open Khata Reminders — the two summary tiles at the top show Total due across all customers and Customers with dues (a headcount).
  2. Use the search box to narrow the table to a specific customer by name or phone.
  3. Click Refresh to re-pull the latest balances (e.g. right after recording a payment elsewhere in the app).

2 Customise the reminder message

  1. Edit the text in the Reminder message box — it supports four placeholders: {name}, {amount}, {bills} and {since}.
  2. The template you type applies to every customer's reminder from that point on for the current session; each customer's own values are substituted in automatically when you click Remind or Copy.

3 Send or copy a reminder

  1. Click the green Remind button on a customer's row to open WhatsApp with the message pre-filled and addressed to their phone number; press send inside WhatsApp to actually deliver it.
  2. Click the copy icon instead to copy the finished message text to your clipboard — useful for sending over SMS or a different messaging app.

Every Field & Button, Explained

Field / ButtonWhat it does
Total dueSum of the outstanding (unpaid) balance across every customer currently shown in the list.
Customers with duesCount of distinct customers who have any outstanding balance greater than zero.
Reminder message boxEditable template with placeholders {name}, {amount}, {bills}, {since}; substituted per-customer when you send or copy.
Search boxFilters the table by customer name or phone as you type.
Due Amount columnThat customer's current total outstanding balance, formatted in the shop's currency.
Bills columnNumber of unpaid/partially-paid invoices contributing to the Due Amount.
Oldest Bill columnDate of the customer's longest-outstanding unpaid invoice — useful for prioritising who to chase first.
Remind buttonOpens WhatsApp (wa.me) with the filled-in reminder message, addressed to the customer's phone if one is on file.
Copy buttonCopies the filled-in reminder message text to the clipboard without opening WhatsApp.

Tips & Best Practices

Troubleshooting & FAQ

A customer I know owes money is not in this list.
They only appear once they have at least one unpaid or partially paid bill contributing an outstanding balance greater than zero. If they were just billed on credit, click Refresh to pull the latest figures.
The Remind button did not open a specific chat.
That customer has no phone number on file. The message still opens in WhatsApp, pre-filled, but you will need to choose the contact yourself, or add their phone number under Customers first.
Can I schedule reminders to send automatically?
No — every reminder is a manual one-click action that opens WhatsApp for you to send; there is no automatic or scheduled sending on this page.
I changed the message template — did it save?
The template only persists for your current session on this page; it is not saved to the server, so it resets to the default the next time you open Khata Reminders.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/KhataRemindersPage.jsx

Backend endpoints used:

  • GET /customer-reports/outstanding?search=&limit=200

Related tables (db-core repositories):

  • Customer
  • Sale
  • SaleItem

Feature flag key: customers

Reuses the exact same "outstanding balance" report endpoint as Customer Reports rather than a dedicated table — this page is purely a WhatsApp-reminder front-end over that data. Message text is built client-side with simple String.replaceAll placeholder substitution and opened via window.open('https://wa.me/<phone>?text=...'); the phone number is stripped of all non-digit characters before being placed in the wa.me URL.