Inspiration
We've all gone through the hassle of splitting a bill after a group dinner or group purchase. Someone pays upfront, everyone tries to remember what they ordered, and calculating each person's share of tax and tip takes work. We wanted to make this process effortless by bringing it into a place people use every day: iMessage.
Our goal for GroupCart is to turn group spending into a simple task. Instead of manually calculating expenses, chasing friends for money, and coordinating separate payments, everyone gets their own AI agent that handles the logistics for them.
What it does
GroupCart is a chat bot that helps people find products, coordinate purchases, and settle expenses through text messages.
For example, for a dinner, one person sends GroupCart a photo of the receipt and identifies who was there. Gemini reads the receipt, extracts the items and totals, and starts a shared process in which each person's agent asks them what they ordered. Once everyone responds, GroupCart sends each person an breakdown of what they owe, taking into account tax, tips, fees, and adjustments. GroupCart can do the same but for shopping hauls as well, calculating how much each person needs to pay depending on if it is a personal item or shared item.
Once the payment is confirmed, it is completed through Capital One Nessie's sandbox banking API or through external services such as Venmo, Zelle, and PayPal. GroupCart uses collaborative shopping and checkout, with a card vault designed to keep sensitive payment details out of the AI model's context.
How we built it
We built GroupCart around three main pieces: an AI agent runtime, our group cart and splitting logic, and a secure card vault.
- Photon Spectrum: Connects our agents to iMessage/text messengers so users can interact with GroupCart through natural conversations.
- Gemini: Reads receipt photos and helps interpret users' messages and requests.
- Python split plugin: Coordinates the bill-splitting workflow, collects item claims, manages shared state, and calculates how much each person owes.
- SQLite ledger: Stores participants, receipts, item claims, payment statuses, and messages between agents so that separate conversations can coordinate around the same bill.
- Capital One Nessie: Provides sandbox banking accounts, transfers, and purchase functionality for testing payment flows.
- Card vault: Uses encrypted storage, per-person access controls, and checkout authorization checks to prevent the AI model from directly seeing card numbers or security codes.
- Website and demo tools: Provide a visual explanation of the product and a demonstration of the agent workflow.
Challenges we ran into
One major challenge was making multiple independent agents behave like one coordinated system. Each person needs their own identity, conversation, financial information, and payment details, but their agents still need to exchange information and agree on the final bill. We addressed this with separate agent sessions and a shared, ledger-backed communication channel.
Another challenge was working within the constraints of Photon Spectrum. The shared iMessage setup we used could not create new native group chats with multiple participants on our plan. Instead, we built a shared room in our ledger that lets agents exchange messages and coordinate the split while continuing to communicate individually with their users.
Accurate bill splitting also required more than just dividing the total by the number of people. We needed to take into account shared items, unclaimed items, tax and tips, and any discrepancies between the total and item prices. We implemented the calculations using integer cents so that everything added up to the bill exactly.
Finally, payment security was an important challenge. We designed the card vault so card details are intercepted before reaching the model, restricted to approved websites, and subject to purchase authorization checks. Handling receipt image formats, asynchronous responses, API limitations, and the distinction between real integrations and sandbox behavior added further complexity.
Accomplishments that we're proud of
We're proud that we built more than a chatbot that simply explains how to split a bill. GroupCart brings together receipt understanding, agent coordination, item-level calculations, and payment workflows into a single experience.
We implemented a complete bill-splitting flow: a receipt is submitted, each participant is asked what they ordered, shares are calculated, and individual payment requests are generated. We also built a scripted demonstration that exercises the actual agent workflow without requiring phones, along with a website and calculator that help communicate the idea.
We're especially proud of the thought we put into financial correctness and privacy. Our split calculations account for real-world receipt edge cases, and our card vault adds ownership checks, encrypted storage, site restrictions, and a payment-approval gate rather than trusting the AI model with unrestricted access to financial information.
Most importantly, we turned the idea of agents working together on behalf of different people into a concrete prototype that we can demonstrate, test, and continue improving.
What we learned
We learned that building useful AI agents involves much more than choosing a model and writing a good prompt. The surrounding systems matter just as much: tools must enforce financial calculations, persistent storage must keep people and payments separate, and integrations must handle real-world constraints.
We also learned that multi-agent collaboration does not necessarily require a traditional group chat. A shared ledger can provide the coordination layer while each agent maintains a separate relationship with its own user.
Another important lesson was that financial automation needs deterministic logic and clear safeguards. An AI model can interpret a receipt and understand a person's message, but the actual math, money movement, and authorization checks should be handled by explicit tools and application logic.
Finally, we learned to be deliberate about what is implemented, simulated, and fully tested. Our sandbox payment flows make experimentation possible, while further end-to-end testing is still needed for live browser checkout and some messaging interactions.
What's next for GroupCart
We want to make GroupCart more reliable, secure, and convenient for everyday use.
Next, we'd like to improve the group experience, potentially by supporting native iMessage group conversations or dedicated messaging identities for each agent. We also want to make receipt interpretation and item assignment more robust, especially when receipts are ambiguous, multiple people order the same item, or participants disagree about a shared expense.
On the payments side, we plan to strengthen payment verification, expand end-to-end testing, and explore one-time or virtual cards so sensitive financial information does not need to travel through ordinary message histories. We also want to further validate the checkout authorization flow and make it easier for users to understand and approve what an agent is about to purchase.
Ultimately, our vision is for GroupCart to become a trusted personal shopping and expense-sharing assistant: one that helps groups discover what to buy, coordinate who is paying, split costs fairly, and settle up with as little friction as possible.
Log in or sign up for Devpost to join the conversation.