POS Billing
A browser point-of-sale counter: tap products, take a discount, print an 80 mm or A4 receipt.
Products
No products yet. Add them on the Catalogue tab, or start from a sample list.
Current bill
Tap a product to start the bill.
About POS Billing
A single-counter till that lives in a browser tab. Build a product list once, then tap items to ring up a sale, adjust quantities, take a discount off the bill, and download the receipt as an 80 mm roll PDF or an A4 sheet. There is no login, no subscription and no server: the catalogue, the shop details and the running day total sit in this browser localStorage and go no further.
Prices include tax, and that changes the arithmetic
Indian retail quotes the price the customer actually pays, with GST already inside it, so that is what this tool expects. Enter 118 for an item at 18 per cent and the customer is charged 118; the receipt reports 100 of taxable value and 18 of tax, recovered by dividing by 1.18 rather than by adding anything on. Each line carries its own rate, so a cart holding a zero-rated item, a 5 per cent item and an 18 per cent item produces three separate slab lines on the receipt with the correct split in each. If your business quotes prices net of tax and adds GST on top, this arithmetic runs the wrong way for you and the GST Invoice Generator is the tool you want.
A bill discount, in percent or in flat rupees, is shared across the lines in proportion to their value before any tax is separated out, so the slab figures stay honest after a discount rather than quietly over-reporting tax. The paisa that rounding leaves behind is pushed onto the last line, which means the line amounts always sum to the payable figure. The payable figure itself is then rounded to the nearest rupee, because no counter hands out paisa, and the difference is printed as its own Round Off line.
The two receipts
The 80 mm receipt is a PDF page exactly 80 millimetres wide, drawn in monospaced Courier so the amount column lines up, and cut to the height its own content needs — the page is measured before it is created, so a twenty-item bill does not produce a foot of blank roll. Two limits sit on that height. The page is never made shorter than 80 millimetres, because a PDF page shorter than it is wide is read as landscape and the receipt would print rotated with the amount column off the paper; a bill whose content measures less than that — a single line with no shop header — therefore keeps a centimetre or two of blank roll under it. And a bill long enough to reach the PDF page ceiling of roughly five metres carries on to a second 80 millimetre page instead of drawing its totals past the bottom edge. Print it with scaling set to Actual size or 100 per cent; anything else will shrink the width and the alignment with it. The A4 receipt is the same bill as a ruled table on a normal sheet, which suits an office printer or emailing a copy. Both are real text in an ordinary PDF, not an image, so they stay searchable and tiny. What neither does is talk to a thermal printer directly: there is no ESC/POS byte stream, no USB or Bluetooth link and no cash-drawer pulse, because a web page has no way to do those things.
Where your data lives, and how you lose it
Three keys in this browser localStorage hold everything: the product catalogue, the shop header for the receipt, and a counter of today's bills and takings. Nothing is uploaded, so nothing can leak — and nothing is backed up either. Clearing site data erases it. So does a private window, a different browser, a different device, or a browser reclaiming storage under pressure. The day counter is keyed to today's date and simply starts again at zero tomorrow; yesterday's figure is overwritten rather than kept. It counts sales rather than sheets of paper: a bill keeps the number it was issued, so a reprint in the other size or a correction to a bill already printed updates that one entry instead of adding another. Treat all of it as scratch space on the counter.
What this is not
It is not a substitute for audited accounting software, and it should not be relied on as your books. There is no audit trail, no gapless invoice register, no stock or inventory tracking, no customer ledger, no refunds or returns flow, no multi-counter sync, no GSTR filing and no tamper resistance — every number here can be edited or deleted without leaving a trace. No card is charged and no UPI request is raised; the payment selector only decides what the receipt says. Use this to ring up a stall, a canteen, a pop-up or a market day, and keep the statutory books somewhere built for them. To turn a sale into a proper tax invoice with GSTIN details and a CGST/SGST or IGST split, use the GST Invoice Generator.
Tax backed out, not bolted on
Prices are entered the way they are shown on the shelf — GST already inside. Each line divides by one plus its rate to recover the taxable value, so the customer pays the marked price and the receipt still carries a correct rate-wise tax breakdown.
Two receipt sizes from one bill
An 80 mm roll receipt cut to the height its content needs — never under 80 mm, because a PDF page shorter than it is wide gets turned on its side — in monospaced Courier, or a plain A4 sheet with a ruled item table. Both carry the same bill number and count as one sale, so a customer copy and an office copy do not read as two. Both are real text in a normal PDF, so they print from any driver rather than needing an ESC/POS printer.
A catalogue that stays on the counter
Products, shop details and the running day total live in this browser localStorage. Nothing is uploaded, no account is created — and equally, nothing is backed up, so clearing site data erases the lot.
Frequently Asked Questions
Are the prices I type tax-inclusive or tax-exclusive?
Inclusive. Type the price on the shelf label. A 118 rupee item at 18% is treated as 100 taxable plus 18 tax, computed as 118 divided by 1.18, and the customer is charged 118. This matches how most Indian retail counters quote, and it means the total never surprises anyone at the till. If your business quotes net-of-tax prices and adds GST on top, this is the wrong tool — use the GST Invoice Generator, which works the other way round.
How is a bill discount shared between lines?
In proportion to line value, before tax is backed out. A 10% bill discount reduces every line by 10% of its own amount, and each reduced line then has its own rate divided out of it, so a cart mixing 5%, 12% and 18% items still reports the correct tax per slab. The paisa left over by rounding is given to the last line, which guarantees the line amounts sum to the payable figure exactly rather than being a paisa adrift.
Why does the total end in a whole rupee?
Cash counters do not hand out paisa. The payable amount is rounded to the nearest rupee and the difference is printed as its own Round Off line on the receipt, positive or negative. Subtotal, discount and each tax slab are all shown to the paisa above it, so the receipt reconciles.
Will this drive my thermal printer?
Only through the normal print dialog. The 80 mm receipt is a PDF whose page is exactly 80 mm wide and as tall as the content needs, subject to two limits: it is never shorter than 80 mm, because a PDF page shorter than it is wide is treated as landscape and would print sideways, so a very short bill — one line and no shop header — carries a centimetre or two of blank roll below it; and a bill long enough to pass the PDF page ceiling of about five metres continues onto further 80 mm pages rather than running off the end. It is drawn in Courier so the columns line up. Open it and print to the roll printer with scaling set to Actual size or 100%. There is no ESC/POS output, no USB or Bluetooth connection and no cash-drawer kick — a browser page cannot do any of those.
Where does my catalogue live, and can I lose it?
It lives in this browser localStorage, under three keys for the product list, the shop details and the running day total. Nothing is sent anywhere and there is no account, which also means there is no backup. Clearing site data, using private browsing, switching to another browser or another device, or a browser evicting storage under pressure will all take the catalogue with them. Treat it as counter scratch space, not as records.
What is the day total, and when does it reset?
Every sale you ring up adds its rounded total to a counter stored against today's date — once. The bill number is issued on the first export and then held: printing the same bill again in the other size, or a second copy of the same size, reuses that number and does not count the sale twice, and editing a bill you have already printed revises its entry rather than adding another. The count moves on only when you press New bill or empty the cart. Open the page on a new day and the counter starts again at zero — the previous day's figure is overwritten, not archived. It is a sanity check on takings at closing time, nothing more, and there is a Reset button if a test bill inflated it.
Is this compliant accounting software?
No, and it should not be treated as one. There is no audit trail, no sequential invoice register, no stock movement, no customer ledger, no returns or refunds, no GSTR filing and no tamper resistance — any figure here can be edited or deleted without trace. Several Indian states also require specific particulars on a retail invoice that this receipt does not collect. Use it to ring up a stall, a pop-up or a canteen; keep your statutory books in audited accounting software.
Can the receipt show Hindi, Tamil or the ₹ symbol?
No. The PDF uses the standard Courier and Helvetica fonts that every reader has built in, whose character set is Latin-1. That excludes the rupee sign and every Indic script. A ₹ typed into a shop name or product is written as Rs., curly quotes and dashes fold to ASCII, and each character with no Latin-1 equivalent is printed as a question mark, with a count shown after export. The one thing never left as question marks is the date and time: if your browser's locale formats them in Bengali, Arabic or Persian digits, the receipt falls back to a plain 24/08/2026 17:20 rather than printing an unreadable stamp, and that fallback is not counted against you. The screen shows everything correctly; it is only the PDF that is limited.
Can I take payment through this page?
No. The payment method selector and the cash-tendered box are there to print the right words on the receipt and work out change; no card is charged, no UPI request is raised and no QR code is generated. If the cash tendered is less than the total, the screen says Still due and the receipt prints Balance due for the same amount, so a part-paid bill is never handed over looking settled. Collect the money however you normally do and record it here.