One tap from session to billCGST + SGST, per line

THE ONE SCREEN YOUR CUSTOMERS SEE

Everything else in this product is for you. The invoice leaves the building with your café's name on it · so it is numbered, itemised, split for GST the way the rule actually asks, and on your customer's phone before they have left the counter.

Section by section

ONE BILL, END TO END

The same invoice all the way down: the two tabs it was cut from, the document your customer opens, the tax underneath it, how it gets settled, how it reaches them, and the row it leaves in your ledger. The tax figures are computed by the module your real bills run through, not typed into this page.

The café and its customers are invented · an invoice is the most identifying document a café holds about somebody, and no real one appears here.

Before the bill

The rig is free before the bill is

What happens between a session ending and money changing hands

End a session and the station is immediately available to the next customer, while the charge waits at the counter as a tab. Snacks and custom charges keep landing on it. Drag one tab onto another and the two settle as a single invoice · which is how two friends on two rigs pay once, without anybody doing arithmetic in their head.

  • check_circleThe station frees the moment the session ends, not when it is paid
  • check_circleAdd snacks or a custom charge to a tab that is already open
  • check_circleMerge tabs onto one invoice · and split a member back out
  • check_circleDiscard a tab that was opened by mistake, stock returned

What changesYour busiest hour stops being gated on how fast somebody can find their wallet.

respawna.com / admin / billing

Open now

2 open tabs

PC-04

Rig free

NEON_DRIFT · 2h 10m

  • Gaming PC · 2h 10m₹210
  • Cold Coffee ×2₹180
Tab₹390

PS5-01

Rig free

GHOST_07 · 1h

  • PlayStation 5 · 1h₹150
  • Maggi₹60
Tab₹210

Two tabs, two rigs, one bill · this is the merge that lets two friends who played separately pay together.

The document

What your customer actually receives

The one screen of this product your customers will see

Every session and every tab closes into a numbered invoice with your café's name on it, the lines itemised, the tax named and a total that adds up. This is the whole of it · not a mock-up, and not a cropped detail. It is what opens when they tap the link, and what prints when they take the PDF.

  • check_circleSequential numbers · the same series your accountant follows
  • check_circleLines itemised by what they are · gaming, food, membership
  • check_circleYour own sign-off at the foot, or a sensible one if you never set it
  • check_circleWalk-ins get a bill too · a customer without an account is still a customer

What changesYou stop handing out a scribbled figure and start handing out something that looks like a business.

Invoice

INV-2026-0912

paid

Billed To

NEON_DRIFT

Issued

07 Sep 2026

Paid Via

UPI

ItemQtyAmount
Gaming PC · 2h 10m1₹210
PlayStation 5 · 1h1₹150
Cold Coffee2₹180
Maggi1₹60
Subtotal₹600
GST 18%₹108
Total₹708

Thanks for playing at Apex Gaming

Generated with Respawna · respawna.com

What the customer opens · the same document at respawna.com/i/… and in the PDF, with no login between them and it.

The tax

GST split the way Rule 46 asks for it

Whether this invoice survives being looked at properly

“18% GST” is a thing people say, not a thing that appears on a compliant invoice. Tax is shown by component and per line: CGST and SGST listed apart when the customer is standing in your room, IGST when the supply crosses a state. HSN and SAC codes where you have set them, and a place of supply frozen at the moment of issue, because a café can move.

  • check_circleCGST and SGST apart on intra-state, IGST on inter-state · never both
  • check_circleComputed per line, so two rates on one bill still add up
  • check_circleHSN and SAC per line, blank rather than wrong when unset
  • check_circleTurn GST off entirely if you are not registered

What changesThe bill you hand a corporate customer is the same bill their finance team accepts without a phone call.

18% · intra-state

LineHSN / SACTaxableCGST 9%SGST 9%
Gaming PC · 2h 10m998439₹210₹18.90₹18.90
PlayStation 5 · 1h998439₹150₹13.50₹13.50
Cold Coffee2202₹180₹16.20₹16.20
Maggi2106₹60₹5.40₹5.40
Total₹600₹54₹54

Place of supply

32 · Kerala

Frozen at issue · a café can move

Tax charged

₹108

CGST + SGST, split apart

Reconciles

₹108

Halves sum to the tax exactly

Why the halves are derived, not rounded twice

Take a line at ₹123.50. 18% of it is ₹22.23 · an odd number of paise, so half is not a whole one.

Rounding each half

₹22.24

A paisa more tax than was charged

Half, then subtract

₹11.12 + ₹11.11 = ₹22.23

Reconciles against the invoice

Computed by lib/gst.ts, the module your café's real invoices run through · not typed into this page.

Settling

Five ways to pay, and one bill split between two

How the money actually comes in at an Indian counter

Cash, UPI, GPay, card, or the member's own prepaid wallet. A bill can also be split across methods · three hundred in cash and the rest on UPI is an ordinary evening, and the parts are stored rather than written into a note, so your month's cash figure still knows about the cash.

  • check_circleCash, UPI, GPay, card and wallet, each recorded as itself
  • check_circleSplit one bill across methods, with the parts kept
  • check_circleWallet settlement is one database transaction · it cannot half-happen
  • check_circleApply a discount before payment, as a real line, not a fudged total

What changesYour end-of-day cash count matches the console, because the console was told what was cash.

cashThe drawer, still most of them
upiA QR at the counter
gpayRecorded apart from plain UPI
cardWhatever your machine takes
walletThe member's own prepaid balance

One bill, two methods

  • cash₹300
  • upi₹228

The parts are stored, not written into a description · so the month's cash figure still knows about the ₹300 that came in as cash.

Paid from the wallet

Bill₹248
Wallet before₹850
Wallet after₹602

The debit, the settle, the loyalty points and the revenue row happen in one database transaction · a wallet that empties without the bill closing cannot occur.

The SPLIT pill is the console's own component · hover or tap it and the parts are there, exactly as they are at the counter.

Delivery

It reaches them on WhatsApp

How a bill gets to a customer who has already left

One tap opens WhatsApp with the invoice written out and a link to it. The link is a capability token rather than a guessable number, and it opens that bill and nothing else · no login, no app, no account. They can read it on the spot or take the PDF.

  • check_circleStraight to their chat when you hold a number, the picker when you do not
  • check_circleA page at your own address, in your café's theme
  • check_circleDownload PDF from the same page, printable as it stands
  • check_circleThe link opens that one bill · never the console, never anyone else's

What changes“Can you send me the bill?” stops being a job for tomorrow morning.

To the customer

APEX GAMING · Invoice

Invoice: INV-2026-0912

Total: ₹708

Status: PAID · UPI

View or download:

respawna.com/i/8f3c1a…

Direct to their chat when you hold their number, and the contact picker when you do not · the button is never a dead end.

What the link opens

link

A page at your own address

respawna.com/i/8f3c1a…

lock_open

No login, no app

The token is the key

picture_as_pdf

Download PDF

The same bill, printable

visibility_off

This bill only

Never the console, never another customer

The link is a capability token, not a guessable id · and it opens the bill, never the café's console.

The ledger

Every bill you have ever raised

Where a figure goes when somebody asks about it three weeks later

Paid, pending, overdue and void, grouped by month and filterable by period, member and method. Four figures sit above it · what is outstanding, what came in, how many are past their due date and what an average bill is worth. Each one is worked out from the rows underneath rather than asserted beside them.

  • check_circleStatus follows the money · overdue is derived, not typed
  • check_circleFilter by month, member or payment method, and share the URL
  • check_circleOutstanding, collected, overdue count and average bill up top
  • check_circleExport the lot to PDF or Excel whenever you want it

What changesA customer query from three weeks ago takes eight seconds instead of a shoebox.

Sep 2026

Outstandingaccount_balance_wallet
₹708

Pending + overdue

Collectedcheck_circle
₹2,310

Paid bills

Overduewarning
1

Past the due date

Avg Invoicereceipt_long
₹431.14

Across non-void bills

NumberMemberIssuedMethodTotalStatus
INV-2026-0912NEON_DRIFT07 Sepupi₹708paid
INV-2026-0911Walk-in07 Sep₹528paid
INV-2026-0910GHOST_0707 Sepwallet₹248paid
INV-2026-0909VOID_KING06 Sep·₹413pending
INV-2026-0908Walk-in06 Sepcash₹189
INV-2026-0907SPECTRE_905 Sepcash₹354paid
INV-2026-0906ZEN_MODE04 Sep·₹295overdue
INV-2026-0905MIDNIGHT_OWL04 Sepgpay₹472paid

Every tile is worked out from the rows underneath it · a headline that disagrees with its own table is worse than no headline.

Undoing one

The one action that cannot be taken back

What happens when a bill was wrong

One control with two meanings. On an unpaid invoice it is a void · nothing was ever booked, so it cancels and the stock goes back. On a paid one it is a refund, and the wording says so, because it moves real money. Both need a typed reason and an explicit confirm, and the row stays in the ledger with that reason on it.

  • check_circleVoid an unpaid bill · stock returns to the shelf
  • check_circleRefund a paid one, with the method it was paid by kept
  • check_circleA reason is required, and it is kept on the row forever
  • check_circleNothing is deleted · a bill that vanishes is one nobody can explain

What changesA mistake at the counter becomes a line you can point at, instead of a gap you have to account for.

One control, two meanings

Unpaid → VOID

Cancels it

Nothing was ever booked, and the stock goes back on the shelf

Paid → REFUND

Moves money

The wording changes, because this one leaves the till

warning

Refund ₹189 · INV-2026-0908

Paid by cash. This cannot be undone.

Reason · required

Duplicate tab · charged twice at the counter

CancelblockRefund

And this is the row it leaves behind, forever · at the same height as every PAID row beside it, with the reason and how the money went back on the card it shows when you hover, focus or tap it.

The reason is required, typed at the time, and kept · a bill that vanishes is a bill nobody can explain to an auditor.

Why the numbers hold

MONEY MATHS IS THE PART WORTH TESTING

Whole paise, never floats

Every amount is held as an integer number of paise, so nothing drifts by a hundredth over a year of bills. The GST halves are derived rather than each rounded on their own, which is what keeps CGST plus SGST exactly equal to the tax charged on an odd number of paise.

Append-only, by design

Invoices are not edited and not deleted. A wrong one is voided with a reason and stays on the ledger; a refund keeps the method the money came in by. Your revenue reports read that same ledger, which is why the figure on your analytics screen and the figure on your bills cannot disagree.

Your money, not ours

Respawna never processes what your customers pay you. Cash is cash, your UPI is yours, and the wallet is your café's own prepaid balance. We count it and show it back to you · standing in the middle of it is regulated territory we deliberately stay out of.

On the floor

The counter's own screen

Open tabs across the top waiting to be cut, then the ledger underneath with every invoice you have raised. A pending bill carries its controls on the row · open it, send it, mark it paid, discount it, void it · so settling somebody at a busy counter is one screen and no navigation.

  • check_circleOpen tabs and the full ledger on one screen
  • check_circleEvery control on the row · no dialog hunting mid-rush
  • check_circleGrouped by month, filtered by period, member or method
  • check_circlePDF and Excel export whenever your accountant asks
respawna.com / admin / billing
The console's Billing screen: open tabs awaiting an invoice across the top, then the invoice ledger with number, member, dates, payment method, total and status.The console's Billing screen: open tabs awaiting an invoice across the top, then the invoice ledger with number, member, dates, payment method, total and status.

A real capture of the console · the screen the sections above are drawn from, on a different café's month.

Questions

ASKED BEFORE THE FIRST BILL

Does Respawna produce GST-compliant invoices?expand_more

Yes. Tax is shown by component the way CGST Rule 46 asks for it · CGST and SGST listed apart on an intra-state supply, IGST on an inter-state one, computed per line rather than once on the total. HSN and SAC codes print per line where you have set them, the place of supply is frozen at the moment of issue, and your GSTIN and business details sit on the invoice. If you are not GST registered you can switch tax off entirely and the invoice is simply a clean bill.

Can a customer pay part cash and part UPI?expand_more

Yes. A bill can be split across cash, UPI, GPay and card, and the parts are stored as parts rather than written into a description · so a report that asks how much cash came in this month gets the right answer. Wallet is deliberately not available inside a split, because a wallet part has to debit a balance and be reversed on a void, and that is not worth half-building.

How does the customer get their invoice?expand_more

On WhatsApp, in one tap. The message carries the invoice written out plus a link to it, and the link opens a page at your own address showing that bill with a Download PDF button. There is no login and no app · the link is a capability token, so it opens that one invoice and never your console or anybody else's bill.

What happens if we bill someone twice by mistake?expand_more

Void it. On an unpaid invoice that cancels it and returns any stock; on a paid one it is a refund and the wording changes to say so, because it moves real money. Both require a typed reason and an explicit confirm, and the invoice stays in your ledger marked void with that reason attached. Nothing is deleted, which is the point: a bill that disappears is a bill you cannot explain later.

Do walk-in customers get invoices?expand_more

Yes. An invoice does not need a member account behind it · a walk-in gets the same numbered, itemised, tax-correct bill, and it can still be shared by link or WhatsApp. Members simply get theirs attached to their profile as well, alongside their wallet and their history.

Can I bill two people who played on different machines together?expand_more

Yes. Each ended session sits as its own tab, and dragging one tab onto another merges them onto a single invoice · one total, one payment, both sessions itemised. You can split a member back out again before the invoice is cut if they would rather pay separately.

Can I export invoices for my accountant?expand_more

Yes, to PDF and Excel. Take a month as a PDF for filing or a spreadsheet for your own analysis; amounts are held to the paisa and the ledger is append-only, so what you hand over reconciles. There is no lock-in and your data leaves cleanly.

What does it cost?expand_more

Plans start at ₹299 a month, and every plan begins with a 14-day free trial, no card. When the trial ends you either pay to carry on or stop · nothing renews by itself, because we hold no card. Current plans and prices are on the pricing page.

CUT YOUR FIRST INVOICE TODAY

Set your GST rate and your GSTIN once, and every bill after that is one tap from an ended session. Every plan starts with a free trial.