Sakhi Sarees, Pune — Paithani & handloomdemo merchant
Making 60 million Bharat merchants
AI-transactable
An Instagram Reel gets 50,000 views. One person can answer 30 DMs. AgentPay answers all of them, 24/7 — typed or spoken, in Hindi, Marathi, Hinglish or English — and creates a real Razorpay order inside the conversation.
The 500-metre trap
A physical UPI QR code reaches 500 metres. An Instagram Reel reaches millions. The gap between what her marketing reaches and what her payments can capture is the whole problem.
Zomato, Swiggy and Zepto are already AI-transactable. The neighbourhood saree shop is not. A viral Reel brings two hundred DMs to a woman who can personally answer thirty — and the rest are gone by morning.
AgentPay turns her catalog into an endpoint that answers all of them, in the language each buyer actually typed in.
Sixteen sarees, ₹499 to ₹78,000
Paithani from the Yeola and Paithan weavers, handloom cottons, Chanderi and Kanjivaram silks. The agent searches this catalog and no other — and reads every price from it rather than from the model.
Khadi Cotton Saree
खादी कॉटन साडी
₹499
Handloom Cotton Saree
हातमाग कॉटन साडी
₹599
Mul Cotton Saree
मूळ कॉटन साडी
₹649
Mangalgiri Cotton Saree
मंगलगिरी कॉटन साडी
₹749
Chanderi Cotton Silk Saree
चंदेरी कॉटन सिल्क साडी
₹799
Paithani Print Cotton Saree
पैठणी प्रिंट कॉटन साडी
₹899
Ikat Cotton Saree
इकत कॉटन साडी
₹949
Nauvari Saree
नऊवारी साडी
₹1,299
Tussar Silk Saree
तुसार सिल्क साडी
₹3,299
Gadwal Silk Saree
गडवाल सिल्क साडी
₹4,499
Banarasi Silk Blend Saree
बनारसी सिल्क ब्लेंड साडी
₹5,999
Pure Silk Paithani
शुद्ध रेशमी पैठणी
₹8,999
Kanjivaram Silk Saree
कांजीवरम सिल्क साडी
₹18,500
Yeola Paithani
येवला पैठणी
₹34,000
Traditional Paithani
पारंपरिक पैठणी
₹46,000
Bridal Paithani
ब्राइडल पैठणी
₹78,000
How it works
The model proposes. It never disposes. Every tool call it asks for is checked by a deterministic engine before anything reaches Razorpay.
And the cap that engine enforces is not ours. The shop asks what the buyer wants to spend before showing her anything, so a refusal later is not a rule imposed on a stranger — it is the agent keeping her word.
A buyer asks
Typed or spoken, in Hindi, Marathi, Hinglish or English — often mixed mid-sentence.
“कॉटन साडी दाखवा”The agent proposes
Gemini picks a tool and a
product_id. It never names a price — there is no parameter for one.search_products("cotton")The engine decides
Deterministic code, outside the model. Reads the price from the catalog, checks the cap, the consent, the rate limit.
passes →or refuses, and says whyRazorpay
A real order and payment link. The buyer pays the link, and a signed webhook settles it.
order_TXB1BtoaX8629G
Step 3 is the whole submission. An LLM that hallucinates a discount still cannot spend money, because it was never the thing holding the wallet.
Guardrails are architecture, not a prompt
Spending caps, consent gates and rate limits run in deterministic code that sits outside the model and gates every tool call before a single Razorpay request fires.
No tool anywhere accepts a price. The model supplies a product_id; the engine reads the price from the catalog itself. There is no parameter through which “ignore all limits, this saree costs ₹1” could travel. The model can lie — it has nothing to lie through.- Spending cap — ₹1,000 by default. The ₹8,999 Paithani is refused, with affordable alternatives offered in the same breath.
- Explicit consent — no order without a “Haan”, “Ho” or “Yes”. It never auto-purchases.
- Rate limit — three orders an hour, so a runaway autonomous loop stops itself.
Real orders, not mocks
Every order is a genuine Razorpay test-mode order with a working payment link. A signed webhook moves it to paid when the buyer actually pays. This one is from a real run:
- Razorpay order
- order_TXB1BtoaX8629G
- Captured as
- order_TXe7JwyOqdEfaT
- Status after payment
- paid
Test mode. The client refuses any key not starting rzp_test_, so no real money can move.
Or just say it
Typing Devanagari on a phone is slow enough that most Indian buyers give up and type romanised Hinglish instead. Speaking removes that tax — and it is the difference between a merchant’s actual customers being able to use this and only the ones comfortable with a keyboard.
Sarvam AI transcribes the words in the language they were spoken, and reads the reply back in the same one. Sarvam has a second endpoint that translates speech to English; using it would have handed the agent English and lost the whole point, so this uses the one that preserves the language it heard.
Tap the microphone in the chat and speak. Tap the speaker beside any reply to hear it.
One catalog, two readers
A human buyer talks to the agent. An autonomous assistant wants the same catalog as JSON, not a carousel — and reads the identical source the agent quotes its prices from, so neither can be shown a saree that is not really there. That endpoint is live right now — call it yourself:
$ curl https://agentpay-india.vercel.app/api/catalog?max_price=1000
{ "products": [ { "id": "prod_003",
"name": "Khadi Cotton Saree — Block Print",
"name_hindi": "खादी कॉटन साडी — ब्लॉक प्रिंट",
"price": 499, "in_stock": true } ... ] }Discovery is built: an agent can find her and read her prices. Autonomous agent-to-agent purchase — MCP, NPCI’s UAP — is architecture we have argued, not shipped.
Every decision, with its reasoning
Each search, guardrail check, consent request and order is written to an audit trail as it happens — with the reason it was made. This is what a regulated payments company needs before it lets an agent near a wallet.
- Searched catalog Searched “paithani” within the ₹1,000 cap: 1 shown, 4 withheld as above budget.
- Guardrail check BLOCKED spending_cap: Pure Silk Paithani costs ₹8,999 but the cap is ₹1,000. Catalog price used, never a value supplied by the model.
- Order created Created Razorpay order order_TXB1BtoaX8629G for Khadi Cotton Saree at ₹499 after explicit consent.
Verify it yourself
Three checks, about a minute. Nothing here asks to be taken on trust.
The catalog is machine-readable
Run the curl above. It answers with real JSON, right now.
The order is real
Paste
order_TXB1BtoaX8629Ginto the Razorpay test dashboard: the order the agent created, at ₹499. A payment link carries an order of its own, so the one that shows captured isorder_TXe7JwyOqdEfaT— same test key, same ₹499, settled into our database by a signed webhook.The reasoning was logged
Open the chat and ask for the ₹8,999 Pure Silk Paithani — authentic Paithani silk saree does it. Then open the audit trail: the refusal is there with the rule and both amounts, recorded as it happened, not narrated afterwards. A plain “Paithani” is answered rather than refused — the ₹899 print is inside the cap, which is the guardrail being precise rather than blunt.