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 Coastline Journeys (mer_Yb7Q6PWugCqocv). Now: Friday 23 Oct 2026, 11:00 IST.
Customer
कृपया बताइए कि भुगतान pay_pw7ZcCx2dDZiNA राशि ₹५०,५०५.९० सेटलमेंट setl_ty8f8FC4x7ImIM में शामिल है या नहीं।
anthropic/claude-sonnet-5.5
{"tools":[{"name":"find_payment","args":{"payment_id":"pay_pw7ZcCx2dDZiNA"}},{"name":"get_settlement","args":{"id_or_utr":"setl_ty8f8FC4x7ImIM"}}]}
Customer
Tool results:
find_payment: {"id":"pay_pw7ZcCx2dDZiNA","amount":"₹50,505.90","method":"upi","captured_at":"13 Oct 2026, 19:22 IST","fee":"₹1,010.12","gst_on_fee":"₹181.82","status":"captured","settlement":{"id":"setl_OWHpTJBEvLS1Jb","type":"standard","date":"15 Oct 2026","status":"processed","amount":"₹1,33,332.26","utr":"ZSVBR52026101564331615"}}
get_settlement: {"id":"setl_ty8f8FC4x7ImIM","type":"standard","date":"16 Oct 2026","amount":"₹1,05,376.20","status":"processed","utr":"ZSVBR52026101664331616","credited_at":"16 Oct 2026, 15:51 IST","payments":6,"payments_captured":"14 Oct 2026","bank_account":"XXXXXX9130"}
Judged turnanthropic/claude-sonnet-5.5
{"action":"answer","reply":"नहीं, भुगतान pay_pw7ZcCx2dDZiNA (₹50,505.90) सेटलमेंट setl_ty8f8FC4x7ImIM में शामिल नहीं है। यह 15 Oct 2026 के सेटलमेंट setl_OWHpTJBEvLS1Jb (₹1,33,332.26) में शामिल है, जो processed है, UTR ZSVBR52026101564331615। setl_ty8f8FC4x7ImIM 16 Oct 2026 का सेटलमेंट है, ₹1,05,376.20।","cited_ids":["pay_pw7ZcCx2dDZiNA","setl_ty8f8FC4x7ImIM","setl_OWHpTJBEvLS1Jb","ZSVBR52026101564331615"]}