Inspiration
Splitting a group dinner bill is a small problem that creates real friction. One person ends up decoding a messy receipt, doing manual math, and chasing repayments across apps. We wanted to remove that friction and make the whole flow feel instant inside the bunq ecosystem.
What it does
Splitter is a multimodal AI bill-splitting assistant connected to bunq.
Scan - Upload a receipt photo. A vision-capable model extracts line items, prices, and totals into structured data. Speak - Say who had what in natural language (or edit text manually). Verify & Split - The backend maps spoken assignments to receipt items, handles shared dishes, and calculates per-person totals. Request - The app generates per-person bunq.me payment links so repayment can happen immediately.
How we built it
We built the frontend using React + Vite with Framer Motion for a fast, polished flow from capture to payment.
The backend is a Python FastAPI service that operates the multimodal pipeline:
1. Receipt understanding with Claude (Opus 4.6) on AWS Bedrock 2. Speech transcription via AWS Transcribe 3. A reasoning step where Claude maps transcript intent to extracted receipt lines, handling shared dishes, quantity parsing, typo tolerance, and payer logic.
We integrated the bunq Sandbox API to create shareable payment links (bunq.me), enabling realistic end-to-end repayment in demo conditions.
Challenges we ran into
bunq Sandbox constraints - Getting authentication/session setup and payment-link flows stable in sandbox took careful handling. Multimodal mapping quality - Converting noisy receipt extraction plus conversational speech into accurate item-to-person assignment required iterative prompt + logic tuning, especially for shared items and edge cases.
What we learned
Multimodal AI is most valuable when modalities complement each other. Vision can read the bill, but not intent; voice captures intent, but not structure. Combining both creates a much more natural financial workflow.
What's next for Splitter
Production bunq rollout - Move from sandbox to production-grade payment flows. Stronger edge-case handling - Improve support for complex tips, taxes, discounts, and ambiguous phrasing. Multi-language support - Expand speech/transcript understanding for multilingual group payments.
Built With
- amazon-polly
- aws-bedrock
- aws-transcribe
- bunq-api
- claude-opus4.6
- fastapi
- framer-motion
- node.js
- python
- react
- remotion
- tailwind-css
- typescript
- uvicorn
- vite
Log in or sign up for Devpost to join the conversation.