I got tired of typing receipt data into spreadsheets.
You take a photo of a receipt, then you have to manually type the amount, merchant, date, category. Six fields, every time. It's not hard, just tedious. The kind of work you keep putting off until you have a pile of receipts to deal with.
So I built something to skip that step.
How It Works
Kittyledger is a Telegram bot. You send it a photo of a receipt, and it extracts the data using GPT-4 Vision. Amount, merchant, date, category, tax—all pulled out automatically and stored in a per-chat database.
When you need the data, you export it as CSV.
That's basically it. Send photo, get structured data, export when needed.
The Technical Choices
Telegram as the interface. No app to download, no account to create. Most people already have Telegram. The bot just lives in a chat. Send a photo, get a response. Each chat gets its own receipt database, so you can have separate chats for personal expenses, team expenses, client reimbursements—whatever makes sense.
GPT-4 Vision for extraction. Traditional OCR struggles with blurry photos, wrinkled paper, weird layouts. GPT-4 Vision handles these better. If you can read the receipt, the bot probably can too. It's not perfect, but it's good enough that manual corrections are rare.
Pay-as-you-go with crypto. $0.10 per receipt, paid in USDC on Solana. No subscriptions, no recurring billing. You buy credits, use them whenever, they don't expire. The crypto part keeps the payment flow simple—send to an address, verify the transaction, credits appear.
Per-chat pricing. The cost is per receipt, not per person. So pricing is per-chat. One group chat with unlimited members sharing the same credit pool. Makes more sense for teams.
What's There Now
- Send a receipt photo → get structured data back
- Balance tracking (expenses vs top-ups)
- CSV export
- Duplicate detection using perceptual hashing
- Commands to update or delete entries if the AI got something wrong
Try It
Kittyledger is live at @kittyledger_bot. Ten free receipts to start.
If you're manually entering receipt data, this might save you some time.