Inspiration

I've lived in Nagpur for 20 years, and I buy my groceries from the same general stores this is built for. A typical shop gives udhaar to 20-30 regular customers, up to about ₹3,000-4,000 each. The owner writes it in a copy and phones anyone who hasn't paid for many days. Ledger apps exist, but they haven't reached shops like these: we estimate hardly 1 in 10 owners here use one like Khatabook. And whether it's a copy or an app, the khata is one-sided. Only the owner writes it, so disagreements surface months later as "maine toh diya tha".

What it does

Udhaar Agent is an AI munshi that turns a one-sided copy into a two-sided khata.

  • The owner just speaks. A Hindi or Hinglish voice note becomes an entry with name, amount, and due date.
  • The customer confirms. Each entry and each month's balance goes to them on WhatsApp: "haan sahi hai" or "galat hai". No reply within 24 hours counts as accepted. A dispute reaches the owner the same day, while both remember.
  • Reminders: in the shop's name, on the due date, then at +3 and +7 days.
  • The cash loop: UPI is matched automatically. "Cash de diya" claims are confirmed by the owner in one batch at closing, so cash gets the same proof as UPI.
  • Galla Mic: acts only on lines with jama, udhaar, baaki, or likh lo, and saves no audio.

Accountants call this balance confirmation (Tally's Confirmation Statements). We bring it to the kirana counter in one tap.

How we built it

  • A JavaScript agent core: parser, ledger, reminder ladder, UPI and cash matching, Galla Mic scanner, credit score and consent.
  • An LLM reads Hinglish and Devanagari voice notes, with offline rules as a fallback.
  • A one-shop Node server keeps the khata on disk and runs its own scheduler. It is packaged to run as one Agent37 instance per shop.
  • 31 automated tests.
  • Customer confirmation is being added now.

Challenges we ran into

  • Hinglish is messy: names, number words, Devanagari, and vague dates like "kal".
  • An LLM can't be trusted blindly, so the server checks every answer and falls back to rules.
  • Cash leaves no trail. We made the customer claim it, and the owner confirm it, instead of pushing everyone to UPI.
  • Customers may ignore a confirmation, so silence counts as accepted after 24 hours, and the first message says so.

What we learned

Voice entry, reminders, and even photo reading already exist in other tools. They all stop at the owner. The customer, the other half of every udhaar, is never asked to agree. Closing that gap matters more than the input method.

What's next

  • Customer confirmation on real WhatsApp messages.
  • One Agent37 instance per shop.
  • A photo of the existing copy to load old balances on day one.
  • A real lender connection through an Account Aggregator for the consented credit score.

In the demo, WhatsApp, UPI, and the lender are simulated. Live speech-to-text uses Chrome's speech recognition, which sends audio to Google. We used AI tools to help write the code and produce the demo video and voice-over.

Built With

Share this project:

Updates

Submission history