Inspiration

Picture Doña Rosa. She sells at a street market in La Paz, and for years she has run a pasanaku: a savings circle where everyone puts in the same amount every week and, each round, one person takes the whole pot. No bank. No interest. No paperwork. Just ayni, the Andean principle of reciprocity: today for you, tomorrow for me.

It works because people trust each other. And it breaks in two predictable ways.

First, the person who gets the pot early can stop paying. It happened to Doña Rosa. She covered the missing money from her own pocket, because the group trusted her.

Second, it only works between people who can see each other. Her daughter moved to Madrid and wants to join the family circle. She can't: the money moves in cash, hand to hand, 9,000 km away.

Millions of families save this way (pasanaku, tanda, susu, ROSCA). We wanted to keep everything beautiful about it and fix the two things that break it. No limits, no borders.

What it does

Ayni is a pasanaku where every cent moves through PayPal, and an AI helps the group run itself, but never touches the money.

🛡 A guarantee that tapers. Whoever receives early gets most of the pot now; part of it is withheld and returned automatically when they finish contributing. If someone stops paying, their own guarantee covers the group.

🪪 A trust passport. Completed circles, on-time rate, late payments, PayPal-verified account. Built only from how you pay inside Ayni, never from age, origin or gender. It's what lets strangers open a circle together, across countries, with a refundable deposit held on PayPal.

🤖 An AI that proposes, never pays. It reads each round and tells the organizer what to do next, with the reason. It writes reminders that escalate from friendly to firm, mediates conflicts, recommends admissions in borderline cases, fills the form from a sentence, translates the chat, and answers "how much do I owe?" from real data, privately. Anything that moves money becomes a decision the organizer approves, and every AI action is written to a log the whole group can read.

And underneath: members pay with PayPal Checkout, pots leave with PayPal Payouts, overdue contributions get a PayPal invoice, and disputes, refunds, saved payment methods and daily reconciliation are all PayPal too.

How we built it

  • PayPal, end to end (12 capabilities): Log in with PayPal, Orders v2 (capture and authorize), Payments v2 (capture, void, refunds), Payouts, Invoicing v2, Disputes, Vault v3, Balances, Transaction Search, and signature-verified Webhooks. Every movement of money in Ayni is a PayPal operation.
  • AI with tool use over real data: the assistant calls tools on the group's actual state. A small adapter runs the same code on Claude or on any OpenAI-compatible model; our live demo runs on Gemini Flash. With no model at all, every feature falls back to deterministic rules, so the app never breaks.
  • MCP server (read-only): a member can give their own AI assistant a key that can read their circles, payments and passport, and nothing else.
  • Bryntum, everywhere time matters: a pasanaku is a schedule. Three Scheduler screens (turn timeline with drag-to-swap, payment schedule, guarantee timeline) and a Calendar that adds up what you'll have by any date, all restyled with Ayni's Andean weaving.
  • One codebase: Expo (Android + web), Node/Express, Postgres with Prisma, in English and Spanish, light and dark. Deployed with Docker on our own server.

Challenges we ran into

  • Making the AI safe by architecture, not by asking nicely. The model never writes an amount (it writes {amount} placeholders that our code fills in, and any digit of its own discards the text). Other members' messages are treated as data, never instructions. We then measured it with a 22-case evaluation, including planted prompt-injection attempts.
  • Money that must never move twice. Double clicks, retries, duplicate webhooks, a PayPal call that times out: every movement is claimed with a conditional update first, and a payout with an unknown outcome is retried only with the same sender_batch_id.
  • A model that fails at the worst moment. While recording our own demo, the free model tier hit its rate limit and a "fixed-rules" answer got cached as if it were the AI's. We caught it, fixed it, and kept the fallback honest and visible in the AI log.
  • Trust without bias. Building a reputation system that uses only payment behavior, and keeps late fees and guarantee use private to the person and the organizer, so nobody is shamed in front of the group.

Accomplishments that we're proud of

  • Real money flow, verified. We ran two complete circles on the PayPal sandbox: 32 real checkouts and 8 pots sent with Payouts, with the PayPal references showing in Ayni's payment history. An end-to-end test checks that money in = money out on every push.
  • 22/22 on our AI evaluation (grounded answers, language, prompt injection, reminders with no invented numbers, form filling).
  • An AI the whole group can audit: what it looked at, what it decided, and whether it came from the model or the fallback rules.
  • A product that feels like home: an identity woven from Andean textiles, and a story that explains itself in one sentence.

What we learned

  • The best way to trust an AI with money is to never give it money: let it read and propose, and let people and rules decide.
  • Idempotency and honesty about unknown states matter more than any feature. "Unclaimed" is not "failed", and "unknown" is not "paid".
  • A tradition that has worked for generations doesn't need to be replaced, only protected. The right amount of technology is the amount that makes people more able to trust each other.

What's next for Ayni

  • Reconcile payouts as well as charges, and group voting on AI-proposed turn orders.
  • Reminders over WhatsApp, where these circles actually live.
  • A what-if planner for organizers ("what if we add two members?").
  • Production needs a regulated partner or PayPal's platform and marketplace products to hold funds for a group; that's the path we'd take.

Today for you, tomorrow for me. No limits, no borders.

Built With

Share this project:

Updates

Submission history