Home / Help Center / pos-app-restaurant / rest-finance / Bill Splitting
🧾 rest-finance

Bill Splitting

Bill Splitting lets you divide an occupied table's open KOT items among multiple guests — equally, by assigning specific items to each guest, or by typing a custom amount per guest — and collect each guest's payment (Cash/Card/UPI) individually, tracking who has paid.

📍 Menu path: Finance & Payments → Bill Splitting
👤 Who uses it: All roles with the Billing feature enabled

Overview

Pick an occupied table (or arrive pre-locked to one from the active billing screen); its open, non-served/non-cancelled KOTs and their items load automatically. If a table has more than one open KOT, a KOT selector lets you choose which one the split applies to.

Three split modes: Equal Split (divide the grand total evenly across guests), By Item (tap a numbered guest button next to each item to assign it, including partial quantities), and Custom Amount (type any amount per guest — a live "Difference" indicator shows if amounts don't add up to the grand total).

For Equal Split, the page calls the backend split-equally endpoint for the selected KOT to get a tax-consistent per-guest subtotal; if that call fails or is still syncing, it falls back to a simple local grand-total ÷ guest-count calculation.

A configurable GST % (default 5%) is applied to the subtotal to compute the grand total for splitting; for By Item mode, tax is applied proportionally to each guest's assigned item total.

Guests can be renamed (default "Guest 1", "Guest 2", …) and each has a "Collect ₹…" button that opens a payment method chooser (Cash/Card/UPI); once confirmed it posts a restaurant payment for that guest's amount and marks them Paid with a checkmark.

A Collection Progress bar tracks how much of the grand total has been collected across all guests; once every guest is marked paid, a green "All guests settled" banner appears.

Before You Start

Step-by-Step Guide

1 Split a bill equally

  1. Open Finance & Payments → Bill Splitting (or launch it directly from an active table's billing screen, which locks the table selection).
  2. Pick the table (if not already locked) and the KOT if the table has more than one open order.
  3. Leave the mode on "Equal Split" and set the Number of Guests using the +/− stepper (2–12).
  4. Each guest column shows the same share; click "Collect ₹…" under a guest, choose a payment method, and confirm to record that guest's payment.

2 Split by item

  1. Switch the Split Mode to "By Item".
  2. For each item in the order (or in the "Unassigned Items" panel), click the numbered colored button matching a guest to assign one unit of that item to them — click it again to assign more units.
  3. Remove an assigned item from a guest's column with its × button if you assigned it in error.
  4. Once all items are assigned, each guest's column shows their item total plus a proportional share of tax; collect payment per guest as usual.

3 Split by custom amount

  1. Switch the Split Mode to "Custom Amount".
  2. Type an amount for each guest — the "Difference" indicator shows whether the amounts are balanced against the grand total, unallocated, or over.
  3. Collect payment per guest once you are satisfied with the split; the app does not block collection even if amounts don't balance exactly.

Every Field & Button, Explained

Field / ButtonWhat it does
Split ModeEqual Split, By Item, or Custom Amount — switching modes resets guest amounts/assignments for that mode.
Number of GuestsEqual Split and By Item modes use this stepper (2–12); Custom Amount uses the same guest list but ignores the even-split logic.
GST %Editable tax rate (default 5) applied to the order subtotal to compute the grand total being split.
Guest NamesEditable inline; default to "Guest 1", "Guest 2", etc.
Collection ProgressRunning total of what has been collected across all guests vs. the grand total, updated as each guest is marked paid.

Tips & Best Practices

Troubleshooting & FAQ

No items show up after picking a table.
The table has no open KOT (all its orders are already SERVED or CANCELLED) — place or reopen an order for that table first.
Equal Split amounts look slightly different from a plain division of the total.
When the backend split-equally sync succeeds, guest amounts come from a tax-consistent per-guest subtotal calculation rather than a flat grand-total ÷ guest-count — small rounding differences between guests are expected and by design.
A guest's payment succeeded on screen but I'm not sure it was recorded.
If the payment API call fails (e.g. connectivity), the guest is still marked Paid locally so you aren't blocked mid-service — reconcile against Cash Reconciliation or Restaurant Payments at end of shift if you suspect a sync issue.