Receipt and expense tracking platform in Telegram for teams across 12 regions
142 bots in production, 2.41M messages and 51,200 receipts in 30 days at 99.98% uptime. Each team works in its own bot, a person checks every receipt, and daily reconciliations build themselves.

Operations dashboard over 30 days
Load and capabilities
When the platform is busiest and what it can do.
The problem
Teams at a financial service in 12 regions tracked receipts and expenses by hand: photos in shared chats, amounts in spreadsheets, reconciliations in the evening. Data got lost, currencies got mixed up, and participants' identities overlapped in shared chats.
They needed a system where each team lives in its own isolated space, a receipt is logged in seconds, a person confirms each one, and the reconciliation report arrives on its own.
The solution
We built a multi-tenant platform on Telegram: each team has its own bot, so participants' identities never overlap.
- Receipt intake. The photo and amount are logged in the team's bot, then the receipt goes to a person for review.
- Human review. Approve, reject, or send back for rework. The decision always stays with a person.
- Multi-currency accounting. Reconciliations across 12 regional currencies, with rates updated and sent to linked chats.
- Daily reconciliations. Reports build themselves on each chat's working hours.
- Audit log. Every message and edit is saved and can be replayed.
The system only does accounting and reconciliation: it never moves money.
Technology
Python, python-telegram-bot and aiogram, SQLite, systemd, DigitalOcean (Linux). Built and maintained by a single engineer.
Result
The platform runs unattended: queues, monitoring, and restarts don't lose state, and the audit log lets you reconstruct any chain of events.