Reports & Day Close
Review counter sales, check manual UPI against the bank, count cash at handover or close, and read preserved closing records.
Use Today with a cashier PIN to review the counter and close its cash session. A store administrator uses the separate full counter report for store-wide dates and bank checks. Counted cash and confirmed bank money are separate from the sales total.
Screen: Open /pos directly in either admin skin and open More on the left rail and select
Today (it is one of the counter's own entries in the first group of More, on every screen size). The direct cashier route is /pos/day.
Review the day
Check the business date and scope
Read the date and counter name beneath Today. A cashier sees the current register's live summary. The current session's summary is labelled This register session, and the cash-count panel states Totals for this register session only. Earlier sessions remain in close history. A previous session on this same business date is retained in history rather than folded into the current drawer count. Use the authenticated admin report below when you need store-wide totals or another date; a single drawer and a store report have different scopes.
Read both totals pages
The first page leads with Bills less refunds paid (the amount, with the bill count beside it as in N bills), then lists Cash, UPI, Card, Udhaar and Bills total (before returns). A sentence under the amount spells out the sum, for example Bills ₹1,000 − refunds paid ₹100 = balance ₹900. Use Next for Refunds paid (with the number of returns under it), Bills less refunds paid and UPI to check; Previous returns to the first page. Refunds are deductions, not additional sales. The same three figures carry the same names on the printed X and Z report and in the admin counter report, so you can compare them directly.
Read the Voided and Forfeited deposits lines
When the day includes a voided sale or a kept booking deposit, one or two plain lines appear on the first page, under the Bills ... = balance sentence: Voided sales: -₹X (N) (the amount, with the number of voided bills) followed by the small note Included in the total above; the refund is under Refunds., and Forfeited deposits: ₹X. They only name what is already inside the totals; they do not change Bills less refunds paid or any other figure. A day with neither shows neither line. See Voided sales and forfeited deposits below.
A third line, Deposits refunded in cash: -₹X, appears in the same place when a booking deposit was paid back to a customer in cash from this register. Unlike the other two it is cash that left the drawer, so it is taken off the expected drawer cash. See Deposits refunded in cash.
Return or open the ledger
Back to counter leaves Today. Udhaar opens the customer ledger covered in Counter Billing & Tenders.
If counter sales are paused, the page says Today · counter paused. You can still review the counter and close it. A paused sales state does not remove the history of earlier money.
Owner and manager Today views are not yet available
Signing in with an owner or manager PIN does not provide the store-admin access needed by Today's
store-wide views. Its Date, Top items, UPI to check → Check, Owner alerts, date-wide
Close history and Added after close views cannot be relied on as completed flows in this
release. Use /reports/pos-counter with your admin sign-in for store-wide reporting and bank checks.
A cashier PIN can use the current-register summary and drawer close below.
Check manual UPI in the bank
Open unchecked payments in the admin report
Open /reports/pos-counter while signed in as a store administrator. Select the report period,
then use Next and select Check beside UPI to check when unchecked payments exist.
Review each row's original order reference, time and amount. The report can show
Customer details unavailable; use the original order and payment details to identify the money.
Match the actual payment
Check each amount in your bank app. Select Bank checked on that row only after confirming receipt of the money. The report acknowledges the bank check and refreshes the unchecked total. It does not inspect the bank app on your behalf.
Return or retry the read
The shared bank-review control Back to Today returns to the report here. If loading fails, select Try again. A missing customer name does not mean there was no payment. Confirmation is disabled while a request is being recorded.
Count at cashier handover
With a cashier PIN, if another cashier's cash is still on the register, POS can redirect you to Count the cash before you start. Check who takes over from whom, the counter and business date. Enter Cash received in drawer · required, then select Start counter. The input must be non-negative with no more than two decimal places. The screen shows expected cash and any Shortfall, Excess or Cash matches expected once you enter a valid count.
After Cash handover recorded, review Counted cash received and select Open Today. This staff handover requires a physical count and has no skip-count button, including when the incoming person is the owner. A real count of zero is valid: the next opening float is exactly the entered count, including zero. Do not enter the expected drawer amount just to get past the task. An order taker cannot hand over or close a drawer. Owner and manager PIN Today limitations are described above.
Close the current counter
Start the close task
On Today, use Count the drawer for a counted close, or open the additional details and select Close without counting. A compact view can show Close counter, then Count cash (optional). Check the expected cash and current business date and register. Closing needs a current open register session; Keep open returns without closing.
Choose whether to count
Counting at day close is optional, regardless of an older count-at-close setting. To count, enter Cash counted or use the denomination controls, then review Shortfall, Excess or Cash matches expected. Use Back to leave before confirming. Close without counting records Not counted, without inventing a physical count or cash difference. This choice does not remove the mandatory count at staff handover.
Record and inspect the close
Confirm the counted close with Close register, or confirm Close counter in the uncounted or compact close view. On Counter closed, review the business date, cashier, expected cash, counted cash and difference. The large figure at the top is labelled Cash difference after a counted close (for example the shortfall, the excess or Cash matches expected); after a close without counting it is labelled Cash count and reads Not counted. A counted close also identifies Recorded by. View summary returns to the summary; View close history opens the closing records.
Review closing history
On Close history, each row shows the business date, counter, counted cash and difference. Uncounted sessions show Not counted and No cash difference recorded. Use Next and Previous when more than four records need additional pages. A cashier can review persisted closes for the current register and selected business date, including after reconnecting or rebinding to that register. Date-wide history through an owner or manager PIN is unavailable as described above; the admin report lists its selected dates' sessions.
Back on the counter after a close. Leave the close screens and the counter home shows a Counter closed notice with the line Your next sale starts a new register session. and a View day summary button. The notice also appears after you reload the page, as long as the business day has a closed register and none open. View day summary opens Today so you can review the closed day. On a phone-width counter and on the big-button and task home screens the notice sits above the tender bar. There is no manual open-register action: the next sale you take opens a new register session and the notice goes away. The notice does not show before the first sale of a day that has no closed register, or while the register is open or still loading.
The closing record stays fixed
The closing snapshot, also called the Z report, is written once. A later refund or payment check is added separately rather than rewriting the closed totals. The owner-only Added after close view in Today is not available through the PIN workspace in this release; do not mistake a fixed close snapshot for a fresh bank statement.
Count and close from the summary footer (owner and manager)
Screen: /pos → Today, signed in with an owner or manager PIN. The summary footer holds the
count and close buttons. A cashier PIN sees the count panel directly on Today instead.
Start the count
Before any amount is entered, the footer's main button reads Count the drawer. Select it to open the cash count entry (Cash counted or the denomination controls) beside the summary. The button is enabled unless the register is loading, the counter is offline, the counter is locked, or no register session is open.
Enter the amount
Once a valid amount is entered, the same button reads Close register and becomes enabled, and Save count, continue later becomes enabled too. Select Close register to open the Close register? confirmation, then confirm as in Close the current counter. Save count, continue later shows Count saved on this device for this register. and keeps the entered count on this device so you can finish closing later.
If you use the denomination boxes and then clear every one of them, the count goes back to "not counted": the footer button returns to Count the drawer, Close register and Save count, continue later are disabled again, and the reason line Enter the cash counted in the drawer to continue. reappears. A box you leave empty is not a zero. Typing 0 into any box (or entering 0 as the cash counted) is a real count of zero and keeps Close register enabled.
Offline on the close screen. When the close screen shows the cash ledger (the Opening float and Cash sales lines), going offline does not add a yellow connection banner. The offline message is given once: the footer's grey reason line (You are offline. Reconnect to count or close the register.) explains the disabled Close register and Save count, continue later, and Print report, though also greyed out, does not repeat it; it points to that same footer line. In the plain count form (no cash ledger, see Troubleshooting) a yellow banner reading Connection lost. Reconnect to update orders. still shows.
Why are Count and Close disabled? A grey line in the footer beside the buttons gives the reason whenever Close register or Save count, continue later is disabled. Only one reason shows at a time, in this order:
| Reason line | What to do |
|---|---|
| Loading the register. Wait a moment. | Wait for the summary to finish loading. |
| You are offline. Reconnect to count or close the register. | Reconnect. Counting and closing need the server. |
| The register is locked. Unlock it to count or close. | Unlock the counter with your PIN. |
| No register session is open, so there is nothing to count or close. | There is no open session for this register. Check Close history for an earlier close. |
| Enter the cash counted in the drawer to continue. | Enter the counted cash (zero is valid). The close and save buttons stay disabled until you do. |
The reason line also shows while Count the drawer itself is enabled and no amount has been entered, because Close register and Save count, continue later are not ready yet. The legacy count form shown when the cash ledger is missing, and the handover screen, do not show this line.
Why was I sent to the handover count?
If the previous cashier's cash is still on the register, POS refuses to record a return or an udhaar collection until the incoming person has counted the drawer. Instead of showing an unknown-result error, the counter sends you to the Count the cash before you start screen on Today (any PIN role except order taker; an order taker is not redirected and cannot hand over).
Complete the handover count
Enter Cash received in drawer · required and select Start counter, as in Count at cashier handover.
Record the return or collection again
After Cash handover recorded, select Open Today, return to the counter, and record the return or the udhaar collection again. The refused attempt wrote nothing, so there is nothing to undo and no duplicate refund or collection to worry about.
The same screen also appears when you sign in with your PIN, or reload the counter, while the drawer holds another person's uncounted cash (for example after the owner took over). You land on Count the cash before you start straight away, instead of reaching the counter with every payment tile disabled under A payment is still waiting. Check it before collecting again. Once the count is recorded, a payment that was already cancelled stops showing as waiting. A payment you have not cancelled and that may have been collected still needs checking before you collect again. An order taker is not redirected, and does not see the waiting-payment banner for a payment a cashier left unfinished on the device: order takers cannot check or collect payments, so that payment waits for a cashier or the owner, who see the banner and Check payment when they sign in. The order taker can keep building orders meanwhile.
Read the close summary and give a reason for a difference
Screen: /pos → Today → Count the drawer. The summary heading is This register session
while a session is open.
Read the cash ledger
When the register's figures add up, the close summary lists the cash that built the expected amount, in this order: Opening float, Cash sales, Udhaar collected in cash, Gift value sold for cash, Cash out · Cash refunded and Expected in drawer. Beside the count heading an Opened badge shows the time the session started (for example Opened 9:30 am), in the store's timezone. Udhaar collected in cash and Gift value sold for cash appear only when that amount is more than zero, and Cash out appears only when cash left the drawer as a refund. The amounts are added and subtracted to give Expected in drawer.
When the figures do not add up
If the opening float, cash sales, udhaar cash, gift cash and cash refunds do not come to the server's own expected cash, or one of them is missing, the ledger is not shown. The screen falls back to the plain count form: the expected cash figure, labelled Expected in drawer and shown beside the amount (the cash the server expects to be in the drawer for this register session, or the last close's figure when no session is open), a Payment totals disclosure, and the Cash counted box. Closing still works the same way; only the breakdown is absent. Do not treat the missing ledger as a zero.
Choose a reason when the count differs
Once Cash counted differs from expected, a Reason for difference (required) list appears with Choose a reason, Counting error, Cash expense and Other, plus Note (optional) of up to 200 characters. On the ledger close, the Close register? confirmation shows Choose a reason to continue. and Close register stays disabled until a reason is chosen. On the plain count form, the Close counter button stays disabled and the hint Choose a reason for the difference to close the counter. sits beside it. When the count matches expected, no reason is asked for.
How a void or Undo shows in the totals
Bills less refunds paid is Bills total (before returns) minus Refunds paid, and a whole-bill void follows the same arithmetic as any refund. Voiding a paid bill (see Void an entire paid bill) keeps the original sale in Bills total (before returns) and puts the refund under Refunds paid once, so Bills less refunds paid drops by the refunded amount a single time. A sale removed with short-window Undo has no refund: it is excluded from both Bills total (before returns) and refunds. The same rule applies to the closing snapshot (Z report) and the owner's report, whose headline figure is also Bills less refunds paid. A void done in a later register session shows as a return in that session, while the original sale stays in its own. If a day's net looks too low by exactly one bill, compare the voided bill with the returns list before assuming it was deducted twice.
Voided sales and forfeited deposits
Screen: /pos → Today, the close count screen, and the X register report / Z register report.
The two lines below exist to explain why the register total and Orders → Today can differ. Neither
changes a total.
| Line | Where it shows | What it means |
|---|---|---|
| Voided sales: -₹X (N) with Included in the total above; the refund is under Refunds. | The first page of Today, and under the sales figures on the close count screen | N whole sales on this register were voided, worth ₹X together. They are still inside Bills total (before returns); the money returned to the customer is already counted once under Refunds paid. So the voided amount is explained, not deducted a second time. |
| Voided sales | The printed X register report / Z register report, with the amount printed as -₹X | The same figure, listed after Bills total (before returns). |
| Forfeited deposits: ₹X (Forfeited deposits on the printed report) | Same three places | Booking deposits the shop kept from cancelled or no-show bookings, after any refund. It names money you kept; it is not a refund. |
Find a voided sale behind the line
Open Orders → Today: a voided sale is still listed under its sale date with a Voided chip (see Review a paid sale in Orders: Today).
Match it to the refund
On the first page of Today, use Next to see Refunds paid. The void's refund is in that figure, so Bills less refunds paid drops by the sale amount exactly once.
Find the booking behind forfeited deposits
Open the booking in Today's appointments; a cancelled or no-show booking whose deposit was kept is the source. The rules for keeping or refunding it are in POS Settings.
The lines are missing. They show only when the amount is above zero, and only for a register total that carries them. A close saved before the server began reporting these amounts shows neither line even if a sale was voided that day; the totals themselves are unaffected.
Deposits refunded in cash
Screen: /pos → Today, the close count screen, the X register report / Z register report
and Cash movements for the day.
When a booking deposit is refunded to the customer in cash, that cash leaves the drawer. The register shows it under one label wherever the cash is added up, so the expected drawer cash is not left too high:
| Line | Where it shows | What it means |
|---|---|---|
| Deposits refunded in cash: -₹X | The first page of Today, and under the sales figures on the close count screen | Cash booking deposits paid back from this register. |
| Deposits refunded in cash | The X register report / Z register report, after Refunds paid and before Expected drawer cash, printed as -₹X | The same figure. |
| Deposits refunded in cash | Cash movements for the day: once in the day block, and once in a counter's block under Latest drawer at each counter, just above Expected in drawer | The cash the deposit refunds took out of that day or that drawer, shown as a negative. |
Every one of these lines is hidden when the amount is zero. The server's expected cash already has the amount taken off, so Expected in drawer and Expected drawer cash are lower by exactly this figure; do not count the deposit refund as a second cash refund.
The close screen shows the plain count form. The itemised close ledger (see Read the close summary) does not list deposit refunds. When a register has deposit refunds in cash its lines no longer add up to the server's expected cash, so the screen falls back to the plain count form with the Expected in drawer figure. Count and close as usual; the Deposits refunded in cash line under the sales figures explains the difference.
Add up the day's cash
Screen: /pos → Today. The close summary carries a heading of This register session while a
session is open and Today at this counter when none is. Below its figures, open the Cash movements
for the day disclosure.
Read the scope line
Open Cash movements for the day. Its note says it covers all register sessions for this business day, including appointment payments, that cash refunds exclude exchange credit, and that drawer balances use the latest session at each counter, so carried opening cash is counted once.
Add the day's cash lines
The day block lists Cash received, Cash refunded (shown as a negative), Cash after refunds, Gift / store credit cash received, Khata cash collected and, only when above zero, Deposits refunded in cash (shown as a negative). A line the server could not supply shows Payment total unavailable instead of a guess.
Check each counter's drawer
Under Latest drawer at each counter, every register has its own block: Opening float, Cash received, Cash refunded, Gift / store credit cash received, Khata cash collected, Deposits refunded in cash (only when above zero, shown as a negative) and Expected in drawer. Add the lines to reach Expected in drawer.
Compare with the payment totals
The payment list on Today labels cash Cash payments · POS bills (net). Its note explains these are POS bill payment records after refunds and exchange credit, that a register is chosen by the bill, and that appointment receipts linked only to a session may be outside the total. Use the cash movements above to reconcile the register's physical cash.
A float carried from the previous session is the same money, not a new receipt. When a counter was closed and reopened the same day, only its latest drawer is used, so the carried opening float is not counted twice. Receipts and refunds across the day's sessions still add up. A second counter appears as its own drawer block.
Why does Expected in drawer differ from the Cash line on Today? They answer different questions. The payment line counts bill payments net of refunds and exchange credit. The drawer figure also includes the opening float, gift or store-credit cash taken in and khata cash collected, and subtracts cash refunds actually paid out (exchange credit spent on a replacement bill is not cash leaving the drawer). A booking paid at the counter can sit in the drawer but fall outside the bill payment line. Do not edit a count to force them equal; use the labelled lines to find the gap.
Open and export the full counter report
Screen: Open /reports/pos-counter directly while signed in
as a store administrator. Use this direct route in either admin skin; the report is separate from
the cashier's PIN session. In the new layout the breadcrumb ends with Counter sales report, the same as the page title.
Select a period
On Counter sales report, select Today, This week or Custom period. This week starts
on Monday and ends on the current business date. Use From and To for a custom inclusive
range, up to thirty-one days. From must not be later than To. A report opened with a date in its link initially uses that business date.
The dates on this admin report are written in the admin panel's language (month names included).
On the counter, the day summary and close screens use the language chosen for the POS. English
keeps the day-month order in both places, for example 3 Oct.
Compare totals and sessions
The first report page shows Bills less refunds paid, the bill count, the sum Bills (amount) − refunds paid (amount) = balance (amount) and payment totals. It also lists counter, cashier names and bill count by session. Use Next for the refunds, balance and unchecked-UPI figures; Check opens bank review for the selected dates. Previous returns to the first page.
Export the displayed period
On the second report page, select Export with the displayed date or date range. The CSV contains From, To, Bills, Bills total (before returns), Refunds paid (shown as a negative number), Bills less refunds paid, Cash, UPI, Card and Udhaar. Export reflects the loaded summary; it is not an item-by-item ledger or a bank statement.
Print the X or Z register report
Open the day summary
On the counter, open Today. The Print report button shows on the summary, the cash count and the closed screens. On the register summary (headed This register session, or Today at this counter when no session is open) it sits in a row next to Cash in / out; on the other screens it stands on its own at the bottom. It is disabled until the screen is ready or while the page is busy, and printing needs a connection. Select Print report.
Offline. While the counter is offline Print report is disabled. On the summary and count screens that already show the footer line You are offline. Reconnect to count or close the register., that one line is the only offline message and Print report is described by it. Where there is no such footer line (for example after the register is closed), a plain hint next to Print report reads You are offline. Reconnect to print the report. (ordinary text, not a yellow warning box). Reconnect and the button enables again; nothing is queued meanwhile.
Optional: review the cash movements first
On the register summary, Cash in / out (with the small hint View cash movements) opens a panel titled Cash in / out. It lists Opening float, the cash sales line (Cash sales (N bills)), Udhaar collected in cash and Gift value sold for cash when they are not zero, and the cash out line (Cash out with its label, shown when there is cash out). Back closes it. A cashier PIN also sees the line Ask the owner in this panel; an owner or manager PIN does not. The button is disabled when the register's cash ledger could not be built for this screen (the plain count form described under Troubleshooting).
Read the report
The page is titled X register report while the register is open and Z register report once it is closed. It shows the register name and business date, then these figures, each with its own label:
| Label on the report | What the number is |
|---|---|
| in N bills | How many bills this register took in the period. |
| Bills total (before returns) | The total of those bills before any refunds. It is not a net figure. |
| Returns | How many returns were recorded. |
| Refunds paid | The money actually refunded across all payment methods, added together. |
| Deposits refunded in cash | Shown only when above zero: booking deposits paid back in cash, printed as -₹X. See Deposits refunded in cash. |
| Expected drawer cash | What the drawer should hold. |
| Cash counted | What was counted, or Not counted. |
The report then shows a Tax summary with the Taxable amount and a table by GST rate with CGST, SGST and IGST, and Tender totals. In Tender totals the UPI and card lines are labelled plainly UPI and Card, the same words as on Today.
If the tax block is missing
Where the saved report has no complete tax detail, the tax section reads Tax details unavailable in this saved report. and the other figures still print. If printing fails, the message is The report could not be printed. Check the connection and try again. Reconnect and print again.
Understand overnight totals
Restaurant business dates default to 04:00 in the store's timezone and do not close tables or bills merely because that date changes. Cash-register sessions use a separate roll-hour setting, with a 03:00 default. A session opens automatically on the first sale. Automatic session roll creates an uncounted close; use an explicit counted close when you need a drawer reconciliation. Always compare the displayed business date and report scope before comparing totals across screens.
Troubleshooting
| What happens | What to do |
|---|---|
| Close counter is disabled | Check that a current open session exists, you are online, and you are using the current register and business date with a cashier PIN. Order takers cannot close. |
| Close counter or Close register stays disabled after I entered a count | The count differs from expected and no reason is chosen. Pick one in Reason for difference (required); the hint Choose a reason for the difference to close the counter. (plain count form) or Choose a reason to continue. (Close register? confirmation) goes away. |
| The close screen has no Opening float or Cash sales lines | The register's cash movements did not reconcile to its expected cash, so the screen shows the plain count form instead. Count and close as usual; see the reconciliation lines under Add up the day's cash to find the gap. |
| Print report is greyed out, with You are offline. Reconnect to print the report. beside it (or, on the summary and count screens, only the footer line You are offline. Reconnect to count or close the register.) | Printing needs a connection. Reconnect; the button enables by itself. The count and close figures are not affected. |
| Cash in / out is greyed out | The register's cash movements did not reconcile, so there is no cash ledger to show. Print the report and count the drawer as usual; see the row above. |
| Cash in / out shows Ask the owner at the bottom | The line is shown only to a cashier PIN. An owner or manager PIN opens the same panel without it. |
| Could not record the cash | Your entered count is kept. Use Try again on the same close or handover instead of entering a second count elsewhere. |
| Start counter needs a count | This is a handover, which always requires the actual cash received. Zero is valid; negative, unfinished or nonnumeric amounts are not. |
| History says Not counted | That close did not include a cash count. Expected cash is not a counted amount. |
| Bills less refunds paid looks lower after a void | A whole void is deducted once, under Refunds paid, while the sale stays in Bills total (before returns). An Undo removes the sale from both sides. See how a void or Undo shows. |
| Orders → Today lists a sale with a Voided chip but the register total still counts it | By design. A voided sale stays in Bills total (before returns) and its refund is in Refunds paid; the Voided sales line names it. See Voided sales and forfeited deposits. |
| A refund appears after close | The original closing snapshot remains unchanged. The owner-only Added after close view is unavailable through the PIN workspace. |
| Could not load with Could not load Today. Try again. and a Try again button | Today could not be read. This is a failed read, not a zero-sales day and not a failed cash save. Select Try again to reload it. If the counter was locked when it failed, Today reloads on its own the next time you unlock it. |
| Full report says Could not load | Check From and To and the thirty-one-day limit, then Try again. A read failure is not a zero-sales result. |
| Owner/manager PIN Today fails to load | Use the authenticated admin report for store-wide dates and bank checks; the PIN workspace does not have the required admin access. |
| The printed report's Bills total (before returns) is higher than Bills less refunds paid on Today | That is expected: the printed figure is before returns. Subtract Refunds paid from it to reach the Today balance. Do not read it as net sales. |
| No Check in the admin report | The control is absent when the selected period has no unchecked UPI rows. |
For the original sales and returns, follow Orders, Refunds & Carts. Shared product stock is covered in Products, Inventory & Categories, and service staff and booking setup in Appointments & Bookings.
Reopen totals and close history
After reconnecting or rebinding, open Today on the same register. The day summary reads saved totals instead of treating a new browser session as a new trading day. Gateway UPI is included in UPI, and terminal card is included in Card, for live totals and closing snapshots. These categories identify the tender rail; they do not confirm a manual bank check.
When saved closed sessions exist, select View close history. Review Close history, use Next or Previous, then select Print on a saved close when offered. Check the physical output. A cashier's history is restricted to their current register; rebinding to another register does not grant access to the old register's history. History loading and printing require the appropriate connected session.
Why is close history missing after a rebind? Check the bound register and business date, then reconnect and reopen Today. The button appears when closed sessions are present. A failed load is not evidence that a drawer never closed; retry the read instead of closing it a second time.
Why is the drawer total smaller than the store's day total? Check This register session
and the counter name before comparing. A close counts this open session; earlier sessions on the
same date stay in View close history. Use /reports/pos-counter with an admin sign-in for the
store's selected dates. Do not add an earlier session's cash to this count to force the totals to match.