Home / Help Center / pos-app / Money & Accounts / Customer Advance
💵 Money & Accounts

Customer Advance

Customer Advance tracks money customers pay you upfront — deposits, prepayments, or advance bookings — as a running balance per customer that can later be adjusted against future purchases.

📍 Menu path: Money & Accounts → Customer Advance
👤 Who uses it: Managers and Owners/Admins only (manager-level feature)
🏷️ Plan tier: advanced+

Overview

This page shows every customer who currently has an advance balance, with dashboard-level totals for how much has been received, how much has been adjusted (used against sales), and the current outstanding balance across all customers.

Recording an advance can be started generically (choose the customer in the form) or directly from a customer's row using the Add action.

Every customer's full advance history — every CREDIT (money received) and every ADJUSTED (money used against a sale) entry — is available via the View action.

This is a manager-level feature: it is only shown to Managers and Owners/Admins, gated behind the customer_advance feature flag at the Advanced tier or above.

Before You Start

Step-by-Step Guide

1 Record a new advance payment

  1. Click Record Advance in the page header (or click Add on a specific customer's row in the table to skip the customer picker).
  2. If you started from the header button, select the Customer from the dropdown (required).
  3. Enter the Amount received (required).
  4. Choose the Payment Method: Cash, UPI, Bank Transfer, Cheque, Card, or Other.
  5. Optionally enter a Reference / Transaction ID and free-text Notes.
  6. Click Record Advance — the customer's advance balance increases immediately and the dashboard totals refresh.

2 View a customer's advance transaction history

  1. Click View on any customer row.
  2. The header of the history modal shows the customer's name, phone, and current advance balance.
  3. Each transaction is listed with its description, optional reference, date/time, and amount — green "+" entries are money Received (Credit), amber "−" entries are Adjusted (used against a purchase).

3 Monitor overall advance liability

  1. Review the four summary cards: Customers with Advance (count), Total Received (all-time), Total Adjusted (all-time), and Current Balance (your total outstanding liability to all customers combined).
  2. Use Refresh to pull the latest figures after recording new advances or adjustments elsewhere in the app.
  3. Search, sort, filter, switch table/grid view, or export the customer list using the data grid toolbar, same as other list pages.

Every Field & Button, Explained

Field / ButtonWhat it does
Customer *Which customer this advance belongs to; required when recording from the general "Record Advance" button.
Amount *The advance/deposit amount received; required.
Payment MethodCash, UPI, Bank Transfer, Cheque, Card, or Other.
Reference / Transaction IDOptional free-text reference for the payment (e.g. UPI transaction ID, cheque number).
NotesOptional free-text notes about the advance.
Advance Balance (list column)The customer's current unused advance balance, shown in green.
Transactions (list column)Total count of advance transactions (received + adjusted) for that customer.
Last Transaction (list column)Date/time of the most recent advance activity for that customer.
Customers with AdvanceDashboard stat: count of customers who currently have a non-zero advance balance.
Total ReceivedDashboard stat: all-time sum of advance payments received across all customers.
Total AdjustedDashboard stat: all-time sum of advance amounts used against sales.
Current BalanceDashboard stat: total advance liability currently outstanding across all customers.
View / Add row actionsView opens the transaction history modal; Add opens the Record Advance form pre-filled with that customer.

Tips & Best Practices

Troubleshooting & FAQ

I don't see the Customer Advance menu item.
This is a manager-level feature — cashier and general staff roles never see it, regardless of permissions. Log in as a Manager or Admin, and confirm the customer_advance feature is enabled on your plan.
A customer's advance balance seems too low after a purchase.
When an advance is adjusted against a sale, it reduces the balance and logs an "Adjusted" entry — check that customer's transaction history via View to see exactly which sale drew down the balance.
Can I refund an advance directly from this page?
This page only records advances received and shows how they've been adjusted — a direct refund flow is not exposed here; handle refunds through your standard payment/refund process and log an adjusting note.

🧑‍💻 Developer Notes

Source component(s):

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

Backend endpoints used:

  • GET /customer-advance/dashboard
  • GET /customer-advance/customers
  • POST /customer-advance/record
  • GET /customer-advance/:customerId
  • GET /customers

Related tables (db-core repositories):

  • Customer
  • CustomerAdvance
  • CustomerAdvanceEntry

Redux slices:

  • scope (selectCurrentScope / getScopeQueryParams)

Feature flag key: customer_advance (requires advanced plan tier or above)

The nav entry for this page carries managerOnly: true in navItems.jsx, so it is filtered out of the sidebar (and Quick Access) for any role below Manager regardless of individual page permissions. The customer list, dashboard totals, and per-customer history are three separate endpoints fetched independently and refreshed together after every record/adjust action.