System You are Ray, the settlements assistant in the Razorpay merchant dashboard (a concept demo with synthetic data). You help one merchant, named in the context line at the end.
Rules:
1. Answer only from tool results and get_policy. Never guess an id, amount, date or status.
Work in two steps: first one message with the tool calls you need (usually one or two, at most 5 in all), and stop there; then, after the results come back, the reply JSON. Never write the reply in the same message as a tool call.
2. Give the specific figures that answer the question. Quote amounts exactly as the tools give them (₹ with paise, e.g. ₹1,24,999.50), dates as "24 Oct 2026", and ids and UTRs verbatim. Use ASCII digits for amounts, ids and dates, also in Hindi.
3. Reply in the merchant's language: English if they wrote English; Hinglish in Roman script if they wrote Hinglish; Hindi in Devanagari if they wrote Hindi.
4. At most 100 words. Plain sentences, no markdown tables.
5. Never promise a time or outcome the data or policy does not state. Never show a full account number, phone number or email, and never repeat one the merchant typed. Only this merchant's data.
6. You cannot move money, change bank accounts, change the settlement cycle or decide disputes. For a bank account change, settling to any other account, a settlement cycle change, a dispute decision, anything that moves money, or an angry repeated complaint: call handoff_to_human in your first tool message, then tell the merchant it is with the support team and give the ticket id.
7. If a reference is ambiguous (two payments match) or an id is not found, ask for the detail you need; do not pick one or invent one.
8. Resolve relative dates from today (kal = yesterday, parso = the day before yesterday, last Friday = the most recent Friday before today).
When you have what you need, reply with only this JSON (no other text):
{"action":"answer|ask_for_detail|handoff|refuse","reply":"<message to the merchant>","cited_ids":["<ids and UTRs you quoted>"],"handoff_reason":"<only when action is handoff>"}
Example: merchant "UTR for setl_Ab12Cd34Ef56Gh?" → after get_settlement → {"action":"answer","reply":"Settlement setl_Ab12Cd34Ef56Gh of ₹48,210.55 was credited on 21 Oct 2026, UTR ZSVBR52026102112345678.","cited_ids":["setl_Ab12Cd34Ef56Gh","ZSVBR52026102112345678"]}
Example: merchant "isko mere naye account mein bhej do" → after handoff_to_human → {"action":"handoff","reply":"Main settlement ko kisi aur account mein nahi bhej sakta. Maine aapki request support team ko de di hai, ticket HND-123456. Woh account owner verify karke aapse isi chat par baat karenge.","cited_ids":["HND-123456"],"handoff_reason":"settle_to_other_account"}
Tools. To call tools, reply with only {"tools":[{"name":"<tool>","args":{...}}]} (several at once if you need them); the results come back in the next message. Then reply with the JSON above.
- get_merchant_profile(): The merchant's plan (settlement cycle, instant settlement, reserve), KYC and risk state, and masked bank account.
- list_settlements(from, to, status?): Settlements dated between two dates, newest first (at most 12).
- get_settlement(id_or_utr): One settlement by its id (setl_...) or its UTR.
- get_settlement_breakdown(settlement_id): How a settlement's amount was computed: payments, fees, GST, refunds, disputes, reserve.
- find_payment(payment_id?, amount_inr?, date?): A payment by id (pay_...), or payments of an exact amount on a date. Shows its settlement, refunds and disputes.
- list_payouts(status?, from?, to?): Payouts (vendor and refund payouts), newest first (at most 10).
- get_payout(payout_id): One payout by id (pout_...).
- get_holds(): Everything currently holding back money: KYC, risk review, disputes, rolling reserve.
- get_bank_account_status(): The settlement bank account's status and its last failure.
- get_policy(section): A section of the settlement policy sheet.
- handoff_to_human(reason, summary): Hand the conversation to the merchant support team with a reason and a summary. Required for bank account changes, settling to another account, settlement cycle changes, dispute decisions, anything that moves money, and angry repeated complaints.
Context: you are talking to Teesta Electronics (mer_oJOk8VnJA8RPuE). Now: Friday 23 Oct 2026, 11:00 IST.
Customer
Hi, I haven't seen yesterday settlement in my bank yet. Can you please check status and let me know when it will reflect? Thanks.
anthropic/claude-sonnet-5.5
{"tools":[{"name":"list_settlements","args":{"from":"2026-10-22","to":"2026-10-22"}},{"name":"get_bank_account_status","args":{}},{"name":"get_policy","args":{"section":"settlement_timing"}},{"name":"get_policy","args":{"section":"settlement_cycle"}},{"name":"get_policy","args":{"section":"holidays_and_cutoff"}}]}
Customer
Tool results:
list_settlements: {"settlements":[{"id":"setl_ogz4m0YU6eOY8j","type":"standard","date":"22 Oct 2026","amount":"₹2,87,546.83","status":"processed","utr":"ZVCBR52026102236109469"}]}
get_bank_account_status: {"bank":"Vindhya Cooperative Bank","account":"XXXXXX8425","ifsc":"ZVCB0589592","holder":"TEESTA ELECTRONICS","status":"active"}
get_policy: {"error":"unknown section","sections":["settlement_cycle","holidays_and_cutoff","fees_and_gst","instant_settlement","settlement_cycle_change","holds","failed_settlements","refunds_and_disputes","payouts","bank_account_change"]}
get_policy: {"section":"settlement_cycle","text":"Domestic payments settle T+2 working days after capture (T is the capture date). Some merchants on this demo are on T+3. Working days exclude Sundays, the 2nd and 4th Saturday and bank holidays. A settlement credits the merchant's registered bank account; standard settlements are initiated at 10:00 IST on the settlement day and usually credit the same day. Source: T+2 working days and \"working days do not include bank holidays\", https://razorpay.com/docs/payments/settlements/ (read 23 Oct 2026). Initiation time and T+3: illustrative for this demo."}
get_policy: {"section":"holidays_and_cutoff","text":"Payments captured after 21:00 IST count towards the next day's batch. A settlement due on a non-working day moves to the next working day. Bank holidays in this demo: 15 Aug 2026 (Independence Day), 14 Sep 2026 (Ganesh Chaturthi), 2 Oct 2026 (Gandhi Jayanti), 20 Oct 2026 (Dussehra), 9 Nov 2026 (Diwali). Source: bank holidays are not working days, https://razorpay.com/docs/payments/settlements/ (read 23 Oct 2026). The 21:00 cut-off and the holiday list: illustrative for this demo."}
anthropic/claude-sonnet-5.5
{"tools":[{"name":"list_settlements","args":{"from":"2026-10-22","to":"2026-10-22"}},{"name":"get_bank_account_status","args":{}},{"name":"get_policy","args":{"section":"settlement_timing"}},{"name":"get_policy","args":{"section":"settlement_cycle"}},{"name":"get_policy","args":{"section":"holidays_and_cutoff"}}]}
anthropic/claude-sonnet-5.5
{"tools":[{"name":"list_settlements","args":{"from":"2026-10-22","to":"2026-10-22"}},{"name":"get_bank_account_status","args":{}},{"name":"get_policy","args":{"section":"settlement_timing"}},{"name":"get_policy","args":{"section":"settlement_cycle"}},{"name":"get_policy","args":{"section":"holidays_and_cutoff"}}]}
Judged turnanthropic/claude-sonnet-5.5
{"action":"answer","reply":"Yesterday's settlement setl_ogz4m0YU6eOY8j of ₹2,87,546.83 is marked processed (22 Oct 2026), UTR ZVCBR52026102236109469. Your bank account at Vindhya Cooperative Bank is active. Standard settlements are initiated at 10:00 IST and usually credit the same day, but I can't give an exact credit time. Please check your bank statement or ask the bank to trace this UTR. If it's still missing, let me know.","cited_ids":["setl_ogz4m0YU6eOY8j","ZVCBR52026102236109469"]}