A few weeks ago I was having dinner with 5 friends. The check came - crumpled thermal paper, foreign language, nobody has cash.
Usually what happens:
- One person stares at the calculator app looking depressed.
- Someone says "let's just split equally", even though two people only had tea and one ordered a $30 steak.
- Someone suggests Splitwise. But two people don't have it, one forgot their password, the App Store wants an update, and nobody wants to spend 10 minutes setting up an account at midnight just to pay for noodles (which is why I started looking for a zero-signup Splitwise alternative).
I was looking at that receipt thinking: phone cameras are crazy good now. Why are we still manually typing numbers into spreadsheets?
So over the last few weeks I ended up building a Telegram bot to do this for us.
How it works
The goal was zero friction - nobody wants to download another 150MB native app for a 20-second task:
- You snap a photo of the receipt in Telegram.
- The bot reads the items, prices, tax, and tip automatically (and translates foreign dish names on the fly).
- It drops a shared Mini App card into your group chat. Everyone opens it right inside Telegram and taps what they ordered. No signups, no passwords.
- It calculates who owes what and collapses all debts into the fewest possible bank transfers.
Why restaurant bill math is surprisingly messy
Reading crumpled receipts was only half the problem. The real headaches were the everyday edge cases at the table:
- Proportional tips: When you split a dinner bill where Bob gets a $5 beer and Alice orders a $50 bottle of wine, dividing a 15% service charge 50/50 is unfair. Tax and tips have to scale proportionally to what each person actually ordered. If you didn't drink, you don't pay tip on alcohol.
- The missing cent: When you split $100 three ways, you get $33.33 each - and one cent disappears. To keep the bill exact to the penny, the leftover cent automatically goes to whoever had the biggest tab. Nobody notices, and the total always matches the receipt.
- Collapsing the debt web: When 6 friends split travel expenses across dinners, taxis, and groceries over a weekend, having everyone send 10 tiny Revolut or Venmo transfers to each other is awful. The app calculates each person's net balance and matches the biggest debtor directly with the biggest creditor.
Before: 6 friends sending 10 chaotic transfers back and forth
After: Boris sends $20 to Anna, Charlie sends $15 to Anna. Done.
For a group of 6 people, everyone is guaranteed to settle up in at most 5 direct transfers total.
Things that broke in the real world
- Thermal paper + camera flash: If you take a receipt photo with the flash on glossy thermal paper, it turns into a white mirror and prices vanish. I added a quick tap-to-edit mode so you can fix a smudged price in two seconds if the photo was blurry.
- Mobile keyboard overlap: On smaller phone screens, the keyboard kept covering the "Confirm" button when someone wanted to type a custom tip. Making the whole receipt card fit cleanly on one screen without awkward scrolling took a lot of real-world bar testing.
- The double-debt bug: In my very first test with friends, I flipped a plus and minus sign when recording a repayment. Every time someone marked a debt as paid, their balance doubled instead of clearing to zero. Glad I caught that before a 4-day mountain trip.
Anyway, it's live and free to use on your next dinner or group trip:
- Web: botsplit.com
- Telegram: @spbill_bot
How do you and your friends usually split bills when traveling together?

Top comments (0)