Inspiration
A small seller on PayPal sees sales roll in but rarely sees the whole picture: what PayPal kept in fees this week, whether refunds are creeping up, which dispute expires first, and who still owes them money. Those answers exist in PayPal, spread across four screens. Till turns them into one spoken answer.
What it does
Ask "How's PayPal looking?" and Till answers in a sentence: balance, the week's sales and fees, open disputes with the first deadline, and overdue invoices. Ask about refunds, fees, or who owes you, and it explains what changed against your own normal. Ask for the quarter and it forecasts your PayPal balance, counting unpaid invoices as cash arriving on their due dates.
Till can also act. "Invoice [email protected] 200 dollars for a birthday cake" returns a preview with a one-time code; say "confirm" and the invoice is created and sent. Refunds show the effect on your lowest projected balance before you confirm. Small disputes get a plain recommendation (settling a 42 dollar claim costs less than an hour of evidence gathering) and are accepted only after you confirm.
A cash desk dashboard shows the same numbers: fee rate against baseline, refund rate, disputes by deadline, unpaid invoices, recent activity, and the balance forecast.
How we built it
- PayPal REST APIs in the sandbox: Transaction Search (in 31 day windows), Balances, Invoicing (create, send, list), Disputes (list, accept claim), Orders and Captures (refunds).
- Every number comes from deterministic Python, not the model: fee rate by week, refund spikes, dispute exposure, invoice aging, and a 13 week forecast.
- Exposed as an MCP server (Streamable HTTP). Claude chooses and chains the tools; a keyword router works without any AI key.
- Agentic safety by construction: preview tools return a one-time, ten-minute code; confirm_action is the only write path, refuses reused or expired codes, and never refunds more than was paid. Customer emails are reduced to short hashes before anything reaches the model or the screen.
- Dashboard with AG Grid and AG Charts on the same data endpoint.
- Real sandbox history built by a daily job that places test card orders and the occasional refund, so the demo reads genuine Transaction Search data.
Challenges we ran into
- Transaction Search lags by up to three hours, so every action confirms through the immediate API, never through search.
- A new seller has no fee history; Till says so and builds a baseline instead of inventing one.
- Disputes can't be opened by API without buyer consent, so the demo disputes were opened by hand as a sandbox buyer.
Accomplishments that we're proud of
One sentence becomes a previewed, confirmed PayPal action with its cash impact explained first. Tests cover the confirm gate: fake codes fail, real codes work once, and over refunds are refused.
What we learned
Sellers do not want another dashboard first; they want the one number that changed and what to do about it. The dashboard is there for the details.
What's next for Till for PayPal
Webhooks for real time dispute alerts, payout timing in the forecast, and multi currency sellers.
Log in or sign up for Devpost to join the conversation.