get_payment_options
Fetch the live payment methods currently available for the cart. Use this when the user is ready to pay or asks which payment options are available.
See get_payment_options in actionComing soon
Usage notes
- Call when the user is ready to pay, asks what payment methods are available, or mentions UPI apps such as GPay, PhonePe, or Paytm.
- Use only the methods returned by this tool; do not invent or assume a payment method that was not returned.
- For Instamart, call this when payment is needed; do not assume the cart response contains the full live UPI payment list.
- After the user picks a method, hand off to the domain place-order tool:
checkoutfor Instamart,place_food_orderfor Food, orbook_tablefor Dineout. - For UPI app payment, pass
paymentMethod="UPI"and copy the selected methodidintointentApp. For scan-QR, passpaymentMethod="UPI"andgenerateUPIQR=true.
Example
const result = await client.callTool({
name: "get_payment_options",
arguments: {
addressId: "addr_01HXYZ",
},
});Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
addressId | string | no | Food only: pass the same addressId you used for get_food_cart. It is echoed back so the payment picker can place the order directly. Recommended for Food UPI. |
Session credentials (user identity, access token) are supplied automatically by the authenticated MCP session - you do not pass them in the tool call. See Authenticate.
Response
All Swiggy MCP tools return:
{
"success": true,
"data": { /* tool-specific payload */ },
"message": "optional human-readable message"
}
On failure:
{
"success": false,
"error": { "message": "description of what went wrong" }
}
See Error codes for the full catalogue.
Output schema
data: PaymentOptionsView
type PaymentOptionsView = {
platforms?: {
mobile?: { groupName: string; methods: PaymentMethod[] };
desktop?: { groupName: string; methods: PaymentMethod[] };
};
allMethods: PaymentMethod[];
paymentAmount?: string | null;
placeOrderToolName: "book_table";
}
type PaymentMethod = {
id: string;
groupName?: string;
displayName?: string;
kind?: "intent" | "qr";
iconUrl?: string;
enabled?: boolean;
}
This schema documents the structured payload returned by get_payment_options. Optional fields can vary by user state, cart state, and live Swiggy availability.
Schema notes
- Use only the methods returned in
allMethods; do not invent or assume a payment method that was not returned. platforms.mobile.methods: UPI app options. If the user selects one, passpaymentMethod="UPI"and copy the selected methodidintointentAppexactly.platforms.desktop.methods: scan-QR options. If the user selects scan-QR, passpaymentMethod="UPI"andgenerateUPIQR=true.- Dineout reservations are paid by UPI (or are free); there is no Cash on delivery option.
- NPCI compliance: do not ask the user for a UPI ID or VPA. Use only the returned UPI app or scan-QR options.
allMethods: live payment choices or selected payment fields for this cart/order. Offer only returned methods. Pass the payment group name inpaymentMethod(e.g."UPI") and, for a UPI app, the selected appidinintentApp— never put an app id inpaymentMethod.- Fields marked optional may be omitted depending on user state, cart/order state, and live Swiggy availability.
- Use returned identifiers and enum values exactly as provided; do not invent fallback IDs, status values, payment methods, or timestamps.
Details
| Field | Value |
|---|---|
| Name | get_payment_options |
| MCP Server | Dineout |
| Endpoint | POST mcp.swiggy.com/dineout |
| Stage | Payment |
| Behaviour | read-only |
Next in this journey →
Continue with book_table.
