---
canonical_url: "https://docs.composio.dev/toolkits/cashfree_payments_mcp"
markdown_url: "https://docs.composio.dev/toolkits/cashfree_payments_mcp.md"
product: "platform"
version: null
last_updated: null
---

# Cashfree MCP

Cashfree Payments MCP lets authorized agents manage payment links, orders, refunds, payment simulation, settlements, reconciliation reports, and related merchant payment workflows.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 38
- **Triggers:** 0
- **Slug:** `CASHFREE_PAYMENTS_MCP`
- **Version:** 20261002_00

## Tools

### Cancel payment link

**Slug:** `CASHFREE_PAYMENTS_MCP_CANCEL_PAYMENT_LINK`

USE WHEN: The user wants to cancel/deactivate an existing payment link so no further payments can be made.
Cancel a payment link. Only links in ACTIVE status can be cancelled.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `link_id` | string | Yes | The payment link ID for which you want to view the details. |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Create order

**Slug:** `CASHFREE_PAYMENTS_MCP_CREATE_ORDER`

USE WHEN: The user wants to create a payment order to accept a payment. Requires amount, currency, and customer details.
Create a new payment order. Returns order_id and payment_session_id needed to collect payment.
NEXT: Call get_order(order_id) to verify the order was created and retrieve the payment session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | Yes | Request body to create an order at cashfree |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Create payment link

**Slug:** `CASHFREE_PAYMENTS_MCP_CREATE_PAYMENT_LINK`

USE WHEN: The user wants to create a shareable payment link to collect money from customers.
Create a new payment link with an amount, purpose, and customer details. Returns the link URL.
NEXT: Call fetch_payment_link_details(link_id) to verify the link was created and check its status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | Yes | Request paramenters for link creation |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Create refund

**Slug:** `CASHFREE_PAYMENTS_MCP_CREATE_REFUND`

USE WHEN: The user wants to initiate a refund for a payment.
Create a refund against an order. Requires order_id and refund details in the body.
NEXT: Call get_refund(order_id, refund_id) to track the refund status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | Yes | create refund request object |
| `order_id` | string | Yes | The id which uniquely identifies your order |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Download report

**Slug:** `CASHFREE_PAYMENTS_MCP_DOWNLOAD_REPORT`

USE WHEN: A report has reached DONE status and the user wants the download URL.
Download a completed report.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reportId` | string | Yes | Report identifier (must reference a DONE report) |

### Fetch payment link details

**Slug:** `CASHFREE_PAYMENTS_MCP_FETCH_PAYMENT_LINK_DETAILS`

USE WHEN: The user wants to check the status or details of an existing payment link.
Fetch all details and status of a payment link by its link_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `link_id` | string | Yes | The payment link ID for which you want to view the details. |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Fetch simulation

**Slug:** `CASHFREE_PAYMENTS_MCP_FETCH_SIMULATION`

USE WHEN: The user wants to check the result of a simulated payment.
Fetch simulated payment details by simulation_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `simulation_id` | string | Yes | Provide the SimulationId for which the details have to be fetched. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Generate recon report

**Slug:** `CASHFREE_PAYMENTS_MCP_GENERATE_RECON_REPORT`

USE WHEN: The user wants to generate a settlement reconciliation report.
Generate a settlement reconciliation report asynchronously.
NEXT: Call get_report_status(reportId) to poll until the report is DONE, then download_report(reportId).

DATE RANGE LIMIT: startDate and endDate must be supplied together and be either a
custom range of 31 days or less, or exactly one full financial year — April 1 to
March 31 of any financial year that has already begun (the current one may also be
requested as April 1 to today). There is no limit on how far back the range starts,
but a custom range must not extend into the future. Anything else is rejected with
HTTP 400 — split wider custom periods into 31-day chunks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pg` | string | No | Comma-separated gateway names (required for Flowwise Recon) |
| `tenant` | string | No | Tenant identifier |
| `endDate` | string | No | End of date range (YYYY-MM-DD HH:MM:SS). At most 31 days after startDate, unless the pair is a full financial year (April 1 to March 31). |
| `fileName` | string | No | Report file name |
| `paymentId` | string | No | Settlement/payment ID (for adjustment reports) |
| `startDate` | string | No | Start of date range (YYYY-MM-DD HH:MM:SS). Required with endDate. Use April 1 for a full financial year. |
| `reportType` | string | Yes | Recon report type (settlement_recon_v2, flow_wise_recon_report, offline_settlement_recon) |
| `fileExtension` | string | No | File format (CSV or XLSX) |
| `offerDataHeader` | string | No | Include offer/promotion data columns |
| `paymentFormData` | string | No | Include payment form data columns |
| `paymentLinkData` | string | No | Include payment link data columns |
| `vbaTransferData` | string | No | Include VBA transfer data columns |

### Generate summary report

**Slug:** `CASHFREE_PAYMENTS_MCP_GENERATE_SUMMARY_REPORT`

USE WHEN: The user wants to generate a transaction summary, settlement, refund, or ledger report.
Generate a summary/download report asynchronously.
NEXT: Call get_report_status(reportId) to poll until the report is DONE, then download_report(reportId).

DATE RANGE LIMIT: every date pair (startDate/endDate, bbpsStartDate/bbpsEndDate,
subscriptionStartDate/subscriptionEndDate) must be either a custom range of 31 days
or less, or exactly one full financial year — April 1 to March 31 of any financial
year that has already begun (the current one may also be requested as April 1 to
today). There is no limit on how far back a range starts, but a custom range must
not extend into the future. Anything else is rejected with HTTP 400 — split wider
custom periods into 31-day chunks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key` | string | No | Key for custom report types |
| `status` | string | No | Filter by transaction status |
| `tenant` | string | No | Tenant identifier |
| `endDate` | string | Yes | End date (YYYY-MM-DD HH:MM:SS). At most 31 days after startDate, unless the pair is a full financial year (April 1 to March 31). |
| `offerId` | string | No | Offer ID filter |
| `cfFormId` | string | No | Cashfree form ID |
| `fileName` | string | No | Report file name |
| `orderIds` | string | No | Comma-separated order IDs |
| `vendorId` | string | No | Internal vendor ID |
| `noCostEmi` | string | No | Include no-cost EMI data |
| `startDate` | string | Yes | Start date (YYYY-MM-DD HH:MM:SS). Use April 1 for a full financial year. |
| `subStatus` | string | No | Filter by sub-status |
| `reportType` | string | Yes | Report type to generate |
| `templateId` | string | No | Template ID for custom report templates |
| `bbpsEndDate` | string | No | BBPS end date (YYYY-MM-DD). Same range limit as startDate/endDate. |
| `softPosFlag` | string | No | Generate softPOS-specific report |
| `paymentLinks` | string | No | Filter for payment link transactions |
| `settlementId` | string | No | Settlement/payout ID |
| `bbpsStartDate` | string | No | BBPS start date (YYYY-MM-DD). Required with bbpsEndDate. |
| `fileExtension` | string | No | File format (CSV or XLSX) |
| `paymentStatus` | string | No | Filter by payment status |
| `merchantRouteId` | string | No | Filter by merchant route ID |
| `offerDataHeader` | string | No | Include offer data columns |
| `paymentFormData` | string | No | Include payment form data columns |
| `paymentLinkData` | string | No | Include payment link data columns |
| `vbaTransferData` | string | No | Include VBA transfer data columns |
| `subscriptionEndDate` | string | No | Subscription end date (YYYY-MM-DD). Same range limit as startDate/endDate. |
| `subscriptionStartDate` | string | No | Subscription start date (YYYY-MM-DD). Required with subscriptionEndDate. |
| `merchantOrderDataHeader` | string | No | Include merchant order data columns |

### Get instant settlement rates

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_INSTANT_SETTLEMENT_RATES`

USE WHEN: The user asks about the charge rate for instant/on-demand settlements.
Get instant/on-demand settlement charge rates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |

### Get merchant free trial credits

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_MERCHANT_FREE_TRIAL_CREDITS`

USE WHEN: The user asks about free trial credits for on-demand settlements.
Get merchant free trial credits for on-demand settlements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |
| `productType` | string | No | Product type. Use OD_SETTLEMENT for on-demand settlement credits |
| `freeTrialRequest` | string | No | Whether this is a free trial context check |

### Get next settlement date

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_NEXT_SETTLEMENT_DATE`

USE WHEN: The user asks when the next settlement will happen or about settlement schedule.
Get the merchant's next settlement date and holiday information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier. Pass `op` for offline/POS merchants. |

### Get on demand charges

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ON_DEMAND_CHARGES`

USE WHEN: The user wants to preview charges/fees for an on-demand settlement withdrawal.
Calculate exact charges for a specific on-demand withdrawal amount.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |
| `productType` | string | No | Product type (optional) |
| `requestedAmount` | number | Yes | Withdrawal amount to preview charges for (in INR) |
| `freeTrialRequest` | boolean | Yes | Whether this is a free trial withdrawal |

### Get on demand daily limit

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ON_DEMAND_DAILY_LIMIT`

USE WHEN: The user asks about on-demand settlement withdrawal limits.
Get on-demand settlement maximum daily limit.
NEXT: Call get_on_demand_eligible_funds() to see the actual withdrawable amount.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |

### Get on demand eligible funds

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ON_DEMAND_ELIGIBLE_FUNDS`

USE WHEN: The user wants to know how much money can be withdrawn via on-demand settlement.
Get eligible funds for on-demand settlement withdrawal.
NEXT: Call get_on_demand_charges(requestedAmount, freeTrialRequest=false) to preview fees before withdrawal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |
| `productType` | string | No | Product type to check eligibility for |
| `freeTrialRequest` | string | No | Whether this is a free trial eligibility check |

### Get on demand settlement activation status

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ON_DEMAND_SETTLEMENT_ACTIVATION_STATUS`

USE WHEN: The user asks if on-demand/instant settlements are available or activated.
Get on-demand settlement activation status.
NEXT: If activated, call get_on_demand_eligible_funds() to check available balance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |

### Get order

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ORDER`

USE WHEN: The user wants to check the status of an order or retrieve its payment session details.
Fetch order details using the order_id.
NEXT: Call get_payments_for_an_order(order_id) to see all payment attempts against this order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | The id which uniquely identifies your order |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Get order extended

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ORDER_EXTENDED`

USE WHEN: The user needs extended order information including address, cart items, offers, and customer details.
Fetch extended order data using the Cashfree order_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | The id which uniquely identifies your order |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Get orders for a payment link

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_ORDERS_FOR_A_PAYMENT_LINK`

USE WHEN: The user wants to see all orders created against a specific payment link.
View all order details for a payment link.
NEXT: Call get_order(order_id) or get_payments_for_an_order(order_id) for specific order details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Mention What is status of orders you want to fetch, default is PAID. Possible value: ALL, PAID |
| `link_id` | string | Yes | The payment link ID for which you want to view the details. |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Get payment by

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_PAYMENT_BY_ID`

USE WHEN: The user wants to view details of a specific payment attempt on an order.
Get payment details by order_id and cf_payment_id.
NEXT: To refund this payment, call create_refund(order_id, body={refund_amount, refund_id}).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | The id which uniquely identifies your order |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `cf_payment_id` | string | Yes | The Cashfree payment or transaction ID. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Get payment modes

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_PAYMENT_MODES`

USE WHEN: The user wants to filter transactions by payment method but you need the numeric code. Also useful to show what payment methods are available.
Retrieve the merchant's available payment method codes.
NEXT: Use the returned code in search_transactions(paymentCode=<code>) to filter by payment method.

Returns:
    Mapping of payment method display names to numeric codes

### Get payments for an order

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_PAYMENTS_FOR_AN_ORDER`

USE WHEN: The user wants to see all payment attempts made against a specific order.
View all payment details for an order.
NEXT: Call get_payment_by_id(order_id, cf_payment_id) to view details of a specific payment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | The id which uniquely identifies your order |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Get refund

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_REFUND`

USE WHEN: The user wants to check the status of a specific refund.
Fetch a specific refund by order_id and refund_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | The id which uniquely identifies your order |
| `refund_id` | string | Yes | Refund Id of the refund you want to fetch. |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |

### Get report status

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_REPORT_STATUS`

USE WHEN: You need to check if a report is ready for download. Poll this after generate_recon_report or generate_summary_report.
Get report status and details (polling endpoint).
NEXT: If status is DONE, call download_report(reportId). If REQUESTED or IN_PROGRESS, poll again.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reportId` | string | Yes | Unique report identifier (from _id in generate response) |

### Get settlement recon routes

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_SETTLEMENT_RECON_ROUTES`

USE WHEN: The user wants to generate a Flowwise Recon report and you need the gateway route names.
Get settlement recon gateway routes.
NEXT: Use route names in generate_recon_report(reportType='flow_wise_recon_report', pg=<route_name>).

Returns:
    Array of gateway route objects

### Get standard settlement details

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_STANDARD_SETTLEMENT_DETAILS`

USE WHEN: The user wants to track where settlement money is in the banking pipeline.
Get real-time transfer timeline for specific settlements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |
| `settlementIds` | string | Yes | Comma-separated settlement IDs to track |

### Get tool guide

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_TOOL_GUIDE`

USE WHEN: You are about to perform a multi-step task and need to know which tools to call and in what order.
CALL THIS FIRST before starting any complex task. Returns the recommended tool chain for a user's intent.

Describe the user's goal in natural language.
Examples:
  - "search for failed transactions in the last 7 days"
  - "generate a settlement reconciliation report"
  - "create a payment order for 500 INR"
  - "check the status of a refund"
  - "verify a PAN number"
NEXT: Follow the returned step-by-step tool chain to complete the task.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `intent` | string | Yes | Natural language description of what the user wants to do. |

### Get transaction details

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_TRANSACTION_DETAILS`

USE WHEN: The user wants to see the full details of a specific transaction including timeline, settlement, and gateway response.
View the complete lifecycle of a single transaction.

Returns timeline events, order details, customer details, settlement info,
gateway response, and optionally EMI and OCC charge breakdowns.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `txId` | integer | Yes | The internal transaction reference ID (refId from search response) |
| `tenant` | string | No | Optional tenant identifier for multi-tenant deployments |
| `txTime` | string | Yes | Transaction timestamp in YYYY-MM-DD HH:MM:SS format |
| `redemptionStatus` | string | No | Optional filter for offer/coupon redemption status |

### Get unsettled amount

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_UNSETTLED_AMOUNT`

USE WHEN: The user asks about unsettled balance, money held by Cashfree, or pending settlements.
Get the total unsettled amount held by Cashfree.
NEXT: Call get_on_demand_eligible_funds() to check how much can be withdrawn immediately, or search_standard_settlements() for history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier. Pass `op` for offline/POS merchants. |

### Get vendor settlement details

**Slug:** `CASHFREE_PAYMENTS_MCP_GET_VENDOR_SETTLEMENT_DETAILS`

USE WHEN: The user wants to track where vendor settlement money is in the banking pipeline.
Get real-time transfer timeline for specific vendor (Easy Split) settlements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tenant` | string | No | Tenant identifier |
| `settlementIds` | string | Yes | Comma-separated vendor settlement/payout IDs to track |

### List reports

**Slug:** `CASHFREE_PAYMENTS_MCP_LIST_REPORTS`

USE WHEN: The user wants to see previously generated reports or check if a report exists.
List all previously generated reports for this merchant.
NEXT: Call download_report(reportId) to get the download URL for a completed report.

DATE RANGE LIMIT: startDate and endDate must be supplied together, span 31 days
or less, fall within the last 2 years, and not extend into the future. Wider
requests are rejected with HTTP 400 — split them into 31-day chunks. Unlike the
generate_* tools, there is no financial-year option here.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key` | string | No | Key for custom report types |
| `pageNo` | string | No | Zero-indexed page number |
| `endDate` | string | No | End of date range (YYYY-MM-DD HH:MM:SS). At most 31 days after startDate. |
| `pageSize` | string | No | Records per page (default 10) |
| `accountId` | string | No | Account identifier for multi-account merchants |
| `startDate` | string | No | Start of date range (YYYY-MM-DD HH:MM:SS). Required with endDate. |
| `reportType` | string | No | Filter by report type |
| `customReports` | string | No | Optional list of custom-report filters, each an object with "type" and "key". Pass them as structured objects — this tool handles JSON/URL encoding for you. Example: [{"type": "SETTLEMENT", "key": "abc"}, {"type": "TXN", "key": "xyz"}] |

### Search on demand settlements

**Slug:** `CASHFREE_PAYMENTS_MCP_SEARCH_ON_DEMAND_SETTLEMENTS`

USE WHEN: The user wants to search past on-demand/instant withdrawal settlements.
Search on-demand (instant withdrawal) settlements.

DATE RANGE LIMIT: startDate and endDate must be supplied together, span 31 days
or less, fall within the last 2 years, and not extend into the future. Wider
requests are rejected with HTTP 400 — split them into 31-day chunks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `utr` | string | No | Search by UTR |
| `pageNo` | string | No | Zero-indexed page number |
| `tenant` | string | No | Tenant identifier |
| `endDate` | string | No | End of date range (YYYY-MM-DD). At most 31 days after startDate. |
| `pageSize` | string | No | Records per page |
| `startDate` | string | No | Start of date range (YYYY-MM-DD). Required with endDate. |
| `settlementId` | string | No | Search by specific on-demand settlement ID |
| `settlementStatus` | string | No | Filter by status (SUCCESS, FAILED, PENDING) |

### Search orders

**Slug:** `CASHFREE_PAYMENTS_MCP_SEARCH_ORDERS`

Search for orders with filters OR fetch a specific order by ID

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pageNo` | string | No | Zero-indexed page number (0 for first page) |
| `tenant` | string | No | Tenant identifier for multi-tenant deployments |
| `endDate` | string | No | End of date range (YYYY-MM-DD HH:MM:SS). At most 31 days after startDate. |
| `orderId` | string | No | Merchant-assigned order ID |
| `pageSize` | string | No | Number of records per page (max 100) |
| `cfOrderId` | string | No | Cashfree-generated order ID |
| `orderType` | string | No | Order type (PRODUCT, POS, PG, CFID, SBC, API) |
| `startDate` | string | No | Start of date range (YYYY-MM-DD HH:MM:SS). Required with endDate. |
| `orderSource` | string | No | Integration type/order source (OCC, softpos, etc.) |
| `orderStatus` | string | No | Order status (PAID, ACTIVE, EXPIRED) |
| `customerName` | string | No | Customer name |
| `customerEmail` | string | No | Customer email address |
| `customerPhone` | string | No | Customer phone number |
| `endOrderAmount` | string | No | Maximum order amount |
| `startOrderAmount` | string | No | Minimum order amount |
| `isDownloadRequest` | string | No | Set to true for CSV export mode (ignores pagination) |

### Search product docs

**Slug:** `CASHFREE_PAYMENTS_MCP_SEARCH_PRODUCT_DOCS`

USE WHEN: The user asks about Cashfree Developer Documentation product features, API usage, integration guides, or how something works.
Searches Cashfree Developer Documentation product documentation and returns matching help articles with titles, content, and links.
NEXT: Use the returned content to answer the user's question directly.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes |  |

### Search standard settlements

**Slug:** `CASHFREE_PAYMENTS_MCP_SEARCH_STANDARD_SETTLEMENTS`

USE WHEN: The user wants to search settlement history, check settlement status, or find a specific settlement by UTR.
Search standard (scheduled) settlements with filtering and pagination.
NEXT: Call get_standard_settlement_details(settlementIds=<id>) to track a specific settlement through the banking pipeline.

DATE RANGE LIMIT: startDate and endDate must be supplied together, span 31 days
or less, fall within the last 2 years, and not extend into the future. Wider
requests are rejected with HTTP 400 — split them into 31-day chunks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `utr` | string | No | Search by UTR (bank-assigned reference number) |
| `pageNo` | string | No | Zero-indexed page number |
| `tenant` | string | No | Tenant identifier |
| `endDate` | string | No | End of date range (YYYY-MM-DD). At most 31 days after startDate. |
| `pageSize` | string | No | Records per page (max 100) |
| `orderDesc` | string | No | When true, newest settlements first |
| `startDate` | string | No | Start of date range (YYYY-MM-DD). Required with endDate. |
| `settlementId` | string | No | Search by specific settlement ID |
| `settlementType` | string | No | Filter by type (NORMAL, ON_DEMAND, INSTANT) |
| `settlementStatus` | string | No | Filter by status (SUCCESS, FAILED, PENDING, CANCELLED) |
| `includeSkipSettlements` | string | No | When true, includes SKIPPED settlements |

### Search transactions

**Slug:** `CASHFREE_PAYMENTS_MCP_SEARCH_TRANSACTIONS`

USE WHEN: The user wants to find, search, filter, or list payment transactions.
Search for payment transactions matching the given filters. This is the primary discovery endpoint.
NEXT: Call get_transaction_details(txId=<refId>, txTime=<txTime>) to view a specific transaction's full lifecycle.

DATE RANGE LIMIT: startDate and endDate must be supplied together, span 31 days
or less, fall within the last 2 years, and not extend into the future. Wider
requests are rejected with HTTP 400 — split them into 31-day chunks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `arn` | string | No | Acquirer Reference Number |
| `rrn` | string | No | Bank-assigned RRN (Retrieval Reference Number) |
| `utr` | string | No | Unique Transaction Reference |
| `psps` | string | No | Payment Service Provider |
| `pageNo` | string | No | Zero-indexed page number |
| `pgUsed` | string | No | Payment gateway identifier |
| `tenant` | string | No | Tenant identifier |
| `txTime` | string | No | Transaction timestamp (YYYY-MM-DD HH:MM:SS) |
| `cfTxnId` | string | No | Cashfree internal transaction ID |
| `endDate` | string | No | End of date range (YYYY-MM-DD HH:MM:SS). At most 31 days after startDate. |
| `eventId` | string | No | Event identifier |
| `geTxnId` | string | No | Cursor for backward pagination (set to first row's refId - 1) |
| `leTxnId` | string | No | Cursor for forward pagination (set to last row's refId) |
| `orderId` | string | No | Merchant-assigned order ID |
| `bankName` | string | No | Bank name for net banking transactions |
| `pageSize` | string | No | Number of records per page (request pageSize+1 for pagination check) |
| `payoutId` | string | No | Payout identifier |
| `refundId` | string | No | Merchant-facing refund identifier |
| `txStatus` | string | No | Transaction status (SUCCESS, PENDING, CANCELLED, etc.) |
| `agentName` | string | No | EPOS agent name |
| `cfOrderId` | string | No | Cashfree-generated order ID |
| `eposTxnId` | string | No | EPOS transaction reference ID |
| `eventType` | string | No | Event type |
| `platforms` | string | No | Originating platform/channel |
| `startDate` | string | No | Start of date range (YYYY-MM-DD HH:MM:SS). Required with endDate. |
| `cfRefundId` | string | No | Cashfree-generated refund ID |
| `isCaptured` | string | No | Capture status (1 for captured, 0 for not captured) |
| `isRefunded` | string | No | Whether transaction has been refunded (true/false) |
| `searchTerm` | string | No | Free-text search term |
| `terminalId` | string | No | EPOS terminal identifier |
| `agentMobile` | string | No | EPOS agent mobile number |
| `endTxAmount` | string | No | Maximum transaction amount |
| `paymentCode` | string | No | Numeric payment method code |
| `paymentMode` | string | No | Payment method category (CREDIT_CARD, UPI, NET_BANKING, etc.) |
| `payoutStatus` | string | No | Payout status |
| `refundStatus` | string | No | Refund status |
| `customerBanks` | string | No | Customer's bank (issuing bank) |
| `customerEmail` | string | No | Customer email address |
| `customerPhone` | string | No | Customer phone (merchant-supplied) |
| `startTxAmount` | string | No | Minimum transaction amount |
| `transactionId` | string | No | Cashfree transaction ID |
| `adjustmentType` | string | No | Settlement adjustment type |
| `endOrderAmount` | string | No | Maximum order amount |
| `eposPaymentMode` | string | No | EPOS-specific payment mode |
| `cfCustomersPhone` | string | No | Cashfree-verified customer phone |
| `settlementStatus` | string | No | Settlement status (SETTLED, NOT_SETTLED, ON_HOLD) |
| `startOrderAmount` | string | No | Minimum order amount |
| `isDownloadRequest` | string | No | Set to true for CSV export mode (ignores pagination) |
| `customerReferenceId` | string | No | Merchant-defined customer reference ID |
| `paymentVerification` | string | No | Payment verification status |
| `paymentMethodAnalytics` | string | No | Analytics-oriented payment method |
| `paymentMethodAnalyticsTypes` | string | No | Sub-type qualifier for paymentMethodAnalytics |

### Search vendor settlements

**Slug:** `CASHFREE_PAYMENTS_MCP_SEARCH_VENDOR_SETTLEMENTS`

USE WHEN: The user wants to search vendor split (Easy Split) settlement payouts.
Search vendor split settlement payouts (Easy Split only).
NEXT: Call get_vendor_settlement_details(settlementIds=<id>) to track vendor payouts.

DATE RANGE LIMIT: startDate and endDate must be supplied together, span 31 days
or less, fall within the last 2 years, and not extend into the future. Wider
requests are rejected with HTTP 400 — split them into 31-day chunks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `utr` | string | No | Search by UTR for the vendor payout |
| `pageNo` | string | No | Zero-indexed page number |
| `status` | string | No | Filter by status (SUCCESS, FAILED, PENDING, REVERSED, CREATED) |
| `tenant` | string | No | Tenant identifier |
| `endDate` | string | No | End of date range (YYYY-MM-DD). At most 31 days after startDate. |
| `pageSize` | string | No | Records per page |
| `payoutId` | string | No | Search by specific payout/settlement ID |
| `startDate` | string | No | Start of date range (YYYY-MM-DD). Required with endDate. |
| `payoutTypes` | string | No | Filter by payout type(s) |
| `merchantVendorId` | string | No | Filter by specific vendor ID |

### Simulate payment

**Slug:** `CASHFREE_PAYMENTS_MCP_SIMULATE_PAYMENT`

USE WHEN: The user wants to test/simulate a payment in sandbox mode.
Simulate a payment for testing. Create an order first using create_order.
NEXT: Call fetch_simulation(simulation_id) to check the simulation result.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | Yes | simulate payment request object |
| `x_request_id` | string | No | Request ID for the API call. It can be used to resolve technical issues. Include this in your tech-related queries to Cashfree. |
| `x_api_version` | string | No | API version to be used. Format is in YYYY-MM-DD |
| `x_idempotency_key` | string | No | An idempotency key is a unique identifier in your API call. If the request fails or times out, you can retry it with the same key to prevent duplicate actions.  |
