get_payment_options

Fetch the live payment options for the current Instamart cart. Renders a payment picker (UPI apps + scan-QR, plus Cash when available) that auto-detects the user's device. Call this when the user is ready to pay.

Fetch the live payment options for the current Instamart cart — the source of truth for what the user can pay with. A single call fetches BOTH device surfaces (mobile UPI apps + desktop scan-QR) and merges them into one payment picker widget that auto-detects the user's device. You do NOT need to ask the user which device they're on. If UPI isn't available for this cart, only Cash is offered.

See get_payment_options in actionComing soon

Example

const result = await client.callTool({
  name: "get_payment_options",
  arguments: {},
});

Parameters

ParameterTypeRequiredDescription

This tool takes no parameters — cart context is resolved server-side. get_cart does NOT return the UPI payment methods, so this is the only source of them for Instamart.

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"
}

The data payload carries the picker model:

{
  "success": true,
  "data": {
    "platforms": {
      "mobile": { "methods": [ { "id": "com.google.android.apps.nbu.paisa.user", "label": "Google Pay" } ] },
      "desktop": { "methods": [ { "id": "PayWithQR", "label": "Scan QR to pay" } ] }
    },
    "cod": { "paymentMethod": "Cash", "label": "Cash on Delivery" },
    "allMethods": [ /* flat list across surfaces, for text rendering */ ]
  },
  "message": "human-readable list of payment options"
}
  • platforms.mobile.methods[] — UPI apps (intent). Each method id MUST be echoed byte-for-byte into checkout's intentApp argument.
  • platforms.desktop.methods[] — desktop scan-QR. Set generateUPIQR=true on checkout (no intentApp).
  • platforms is omitted when UPI isn't available for this cart; only Cash is then offered via allMethods.

On failure:

{
  "success": false,
  "error": { "message": "description of what went wrong" }
}

See Error codes for the full catalogue.

Details

FieldValue
Nameget_payment_options
MCP ServerInstamart
EndpointPOST mcp.swiggy.com/im
StagePayment
Behaviourread-only

Agent guidance

How Swiggy agents and orchestration logic use this tool. Surface these expectations in your prompts or tool-selection policies.

WHEN TO CALL:

  • ALWAYS call this when the user is ready to pay — it renders the picker widget. For Instamart, get_cart does NOT return the UPI payment methods, so this is the ONLY way to obtain them.
  • When the user explicitly asks "what payment options are available?", wants UPI, or mentions GPay, PhonePe, Paytm, etc.

HANDOFF TO CHECKOUT: The user picks a method in the widget. Pass their choice straight into checkout:

  • UPI app → intentApp = the selected method id, byte-for-byte.
  • Desktop scan-QR → generateUPIQR=true (no intentApp).
  • Cash → the Cash method from cod / allMethods.

NPCI compliance: UPI Collect and saved VPAs are not surfaced. Do not attempt to collect a VPA from the user.

Next in this journey →

Continue with checkout to place the order with the selected payment method.