Cashfree Payments MCP logo

Integrate Cashfree Payments MCP with your AI CRM

Manage the merchant money lifecycle through Cashfree Payments, including payment collection, payouts, subscriptions, settlements, refunds, and identity verification.

Explore Triggers and Actions

Activate workflow

USE WHEN: A workflow has been tested via test_and_register_workflow() and is ready to go live. Activate a workflow, enabling its trigger (event-based or scheduled). Archives any previously active trigger and promotes the current DRAFT to the active version. This is the final step in the build flow — the workflow will start running on real events after activation. Always call test_and_register_workflow() first. Activation will fail with 400 if no tested/registered version exists or if the DRAFT fails validation.

ActionTry it

Build and save workflow

USE WHEN: You have gathered all workflow configuration from tool calls and the user, and need to construct and save the DSL. This is EASIER than manually building the nested WorkflowUiDsl JSON for update_workflow(). Constructs a complete workflow DSL from simplified flat inputs and saves it as the current draft. Internally builds the trigger node, action node, end node, edges, _meta blocks, and executionInfo mirroring — all the structural details that are hard to get right manually. NEXT: Call test_and_register_workflow(workflow_id, input_data=<sample_payload>) to test, then activate_workflow(workflow_id).

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

Create workflow

USE WHEN: The user wants to create a new workflow/automation. This is always the first step. Create a new workflow and return its ID. This call only sets the name and description. Use update_workflow() or build_and_save_workflow() to save the full DSL. NEXT: Call search_workflow_templates(query) and list_trigger_events() in parallel to start building.

ActionTry it

Download report

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

ActionTry it

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.

ActionTry it

Fetch simulation

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

ActionTry it

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.

ActionTry it

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.

ActionTry it

Get connection setup link

USE WHEN: The merchant needs to add a new connection/credential for an app (Gmail, Slack, etc.) and none exists. Return the Relay dashboard link where the user can add a new connection. Credentials cannot be created through the AI assistant. Direct the user to the Relay dashboard where they can securely set up connections for Gmail, Slack, Google Sheets, WhatsApp, and other supported integrations. Call this whenever the user needs to add a new connection before building a workflow. Returns: A message with the direct link to the Connections page.

ActionTry it

Get credential

USE WHEN: You need to verify a specific credential's metadata or status. Fetch metadata for a specific credential by ID. Credential values are not returned for security. Use this to verify a connection exists and check its status before referencing it in a workflow.

ActionTry it

Get data fetcher template

USE WHEN: The user picked a data fetcher template and you need its configuration detail. Get the full configuration detail for a specific data fetcher template. NEXT: Call test_data_fetcher(input_template, time_range) to validate the fetch returns expected data. Returns lookback configuration: time window units, default values, and whether the template supports a custom time range. Call test_data_fetcher() afterwards to validate the fetch returns expected data before saving the workflow.

ActionTry it

Get execution details

USE WHEN: The user wants to debug a specific workflow execution — see per-node inputs, outputs, and errors. Get per-node input, output, and status for a specific execution run. Use this to debug a failed execution — it shows exactly what each node received and returned.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

Get node action schema

USE WHEN: The user has chosen an action and you need the full input field schema to configure it. Get the required fields and input structure for a specific node action. NEXT: For fields with dynamic/dropdown options, call get_node_field_options(). Then use values in build_and_save_workflow() or update_workflow(). Call this after list_node_actions() once the user has chosen an action. The schema is required before configuring the node in the workflow DSL or calling test_action_node().

ActionTry it

Get node field options

USE WHEN: You need to populate dropdown or dynamic field values for a node action (e.g., Slack channels, Gmail labels, spreadsheet names). Get the selectable options for a node field — either fetched live from an external API (dynamic) or from a fixed list (dropdown). NEXT: Use the resolved options to populate the corresponding field in the workflow DSL. Use this when configuring a workflow node and you need to populate a field's available choices (for example, listing Slack channels, Gmail labels, or Google Sheet names). Determine option_type from the field's type in get_node_action_schema() output: DYNAMIC field → "dynamic", DROPDOWN field → "dropdown". Mixing them causes a 400. For chained fields (e.g. sheetId depends on spreadsheetId), populate input_data.input with the already-selected upstream values before calling this tool.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

Get payment by

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}).

ActionTry it

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

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

Get trigger event

USE WHEN: The user has picked a trigger event and you need its configurable fields and conditions. Get full detail for a specific trigger event. NEXT: Call get_trigger_sample_payload(event_id) to get the sample payload for testing and field injection. Returns configurable fields, condition attributes, and the data shape the trigger produces. Call this after the user picks an event from list_trigger_events() to understand what conditions can be set.

ActionTry it

Get trigger sample payload

USE WHEN: You need the sample payload for a trigger event — used for test execution and to show injectable fields. Get a sample payload for a trigger event. NEXT: Save this payload — use as input_data for test_and_register_workflow() and to show available ${node_id.output.<path>} variables. Save the result for two purposes: (a) as input_data for test_and_register_workflow() to simulate a real trigger. (b) to show the user which fields can be injected into action node inputs via ${node_id.output.<path>} syntax.

ActionTry it

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.

ActionTry it

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.

ActionTry it

Get workflow

USE WHEN: You need to view or edit a specific workflow's details and DSL. Fetch a single workflow by ID. NEXT: To edit, call update_workflow(). To pause/resume, call toggle_workflow_status().

ActionTry it

Get workflow template

USE WHEN: The user picked a template from search_workflow_templates results and you need the full DSL. Retrieve the full workflow definition for a template by its ID. NEXT: Call create_workflow(display_name) to create a new workflow. Use the template DSL as structural reference — substitute real values from list_credentials(), list_trigger_events(), etc.

ActionTry it

List catalog nodes

USE WHEN: The user hasn't specified which app/integration to use and you need to show available options. List all available integrations in the node catalog. NEXT: Call list_node_actions(node_name) for the chosen node, and list_credentials(node_name=<name>) to check connections. Returns the full catalog of nodes — name, version, auth type, description, and supported actions summary. Use this to discover what integrations are available before building a workflow. Once you know the node name, call list_node_actions() for action details and use the auth type to know what get_connection_setup_link() needs. Returns: Full node catalog with metadata for all available nodes.

ActionTry it

List credentials

USE WHEN: You need to check if a connection/credential exists for an app before building a workflow. List all credentials (connections) for the merchant. NEXT: If no suitable credential exists, call get_connection_setup_link() to direct the user to add one. Credentials represent connections to external apps (Gmail, Slack, Google Sheets, etc.). Call this before building a workflow to check whether a required connection already exists. If none exists, call get_connection_setup_link() to direct the user to add one.

ActionTry it

List data fetcher templates

USE WHEN: Building a schedule-based workflow and you need to show available data source options. List all available data fetcher templates for schedule-based workflows. NEXT: Call get_data_fetcher_template(template_id) to get the full detail for the user's chosen template. The DataFetcher node is automatically inserted after a schedule-based trigger. It pulls data (e.g. failed transactions, settlement reports) at the scheduled interval and passes it downstream to action nodes. Call this first to show options, ask the user which template to use, then call get_data_fetcher_template(template_id) to get the full detail and lookback config. Returns: List of all available templates (e.g. "Failed Transactions", "Settlement Report").

ActionTry it

List node actions

USE WHEN: You know which integration node to use and need to discover its available actions. List all actions available for a catalog node. NEXT: Call get_node_action_schema(node_name, action_name) to get the full input schema for the chosen action. Call this first to discover what a node supports (e.g. "send_message", "create_row"). Then call get_node_action_schema() with the chosen action to get its full input schema.

ActionTry it

List recent executions

USE WHEN: The user wants to see recent workflow runs across all workflows. List recent executions across all workflows. NEXT: Call get_execution_details(execution_id) to debug a specific run.

ActionTry it

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.

ActionTry it

List trigger events

USE WHEN: You need to show the user what trigger events are available at the start of workflow creation. List all trigger categories and their events. NEXT: Present events by display_name. After user picks one, call get_trigger_event(event_id) and get_trigger_sample_payload(event_id). Returns all available trigger events grouped by category (Payment, Refund, Dispute, Schedule). Call this first to discover available triggers, then present events by display_name and ask the user to pick one. Use the event_id of their choice for get_trigger_event() and get_trigger_sample_payload(). Never ask the user to supply an event_id directly. Returns: Trigger categories with their events.

ActionTry it

List workflow executions

USE WHEN: The user wants to see execution history for a specific workflow. List execution history for a specific workflow. NEXT: Call get_execution_details(execution_id) to see per-node details for a specific run.

ActionTry it

List workflow versions

USE WHEN: The user wants to see the version history of a workflow. List all versions of a workflow with pagination. NEXT: Call get_workflow(workflow_id, version=<version_number>) to view a specific version.

ActionTry it

List workflows

USE WHEN: The user wants to see all their workflows or find a specific workflow by status. List all workflows for the merchant with optional status filter and pagination. NEXT: Call get_workflow(workflow_id) to view a specific workflow's full details.

ActionTry it

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.

ActionTry it

Search orders

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

ActionTry it

Search product docs

USE WHEN: The user asks about Cashfree Payments Developer Documentation product features, API usage, integration guides, or how something works. Searches Cashfree Payments 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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

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.

ActionTry it

Search workflow templates

USE WHEN: The user wants to find a pre-built workflow template. Also call at the start of any workflow creation task. Search pre-built workflow templates using a natural language description. Describe what the workflow should do — mention the trigger event and the action node. NEXT: Call get_workflow_template(template_id) to retrieve the full DSL for the template the user picks. Examples: - "payment success gmail email" - "send slack when payment fails" - "daily schedule google sheets log"

ActionTry it

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.

ActionTry it

Test action node

USE WHEN: You want to validate an action node's connection and field values before saving the workflow. Test a specific action node in isolation with provided auth and input. Call this immediately after configuring each new node in a workflow to validate the connection and field values before saving. Use list_catalog_nodes() to understand what auth type the node requires, and get_node_action_schema(node_name, action_name) to get the full input schema before populating input_data.

ActionTry it

Test and register workflow

USE WHEN: A workflow DSL has been saved via update_workflow() or build_and_save_workflow() and needs testing before activation. Run a test execution of the current draft and record the outcome before activation. NEXT: Call activate_workflow(workflow_id) to promote the tested draft to live. Always call this after update_workflow() and before activate_workflow(). Use the sample payload from get_trigger_sample_payload(event_id=...) as input_data to simulate a real trigger event.

ActionTry it

Test data fetcher

USE WHEN: You want to validate what data a data fetcher template would return before saving the workflow. Run a test fetch to validate what data a template would return at runtime. NEXT: Proceed to update_workflow() or build_and_save_workflow() to save the workflow. Call this after configuring a DataFetcher node (selecting a template and time range) to validate that the data source returns expected results before saving the workflow. The response becomes sample data available to downstream action nodes via the DataSelector (e.g. {{dataFetcher.transactions}}).

ActionTry it

Toggle workflow status

USE WHEN: The user wants to pause a running workflow or resume a paused one. Toggle a workflow between PAUSED and ACTIVE states. Calling this on an ACTIVE workflow pauses it. Calling it on a PAUSED workflow resumes it. The workflow must have been activated at least once (via activate_workflow()) before this toggle is available.

ActionTry it

Update workflow

USE WHEN: You have a complete workflow DSL and need to save it to the draft. Prefer build_and_save_workflow() for simpler construction. Save the workflow node/edge graph to the current draft version. NEXT: Call test_and_register_workflow(workflow_id) to test the saved draft before activation. The full typed schema is exposed by FastMCP. Key rules: - TriggerNode.data.id = event_id from list_trigger_events() (e.g. "event_payment_success_001") - ActionNode.data.id = "{nodeName}-{actionName}" (e.g. "gmail-send_email") - ActionNode.data.parameters must include all action fields + connection (int credential ID from list_credentials()) + _meta block. - ActionNode.executionInfo.config must mirror data.parameters WITHOUT the _meta block. - ActionNode.executionInfo.auth.connectionId = same int credential ID (null for auth-free). - EndNode is always the last node; both node.id and data.id are "end". - Variable injection in any string field: ${nodeId.output.<path>} Path mirrors keys inside input_data from get_trigger_sample_payload(). - Always call search_workflow_templates() first — use any matching template as a structural reference and substitute real values from list_credentials().

ActionTry it

How the Cashfree Payments MCP integration works

The Cashfree Payments MCP integration connects your Dench AI CRM directly to Cashfree Payments MCP, so agents can read and act on your Cashfree Payments MCP data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.

66 actions are available for agents to invoke on your behalf. Every call runs through Cashfree Payments MCP's own authorization, scoped to the account you connect.

Set up Cashfree Payments MCP in Dench

  1. 1

    Sign in to your Dench workspace and open Integrations.

  2. 2

    Find Cashfree Payments MCP and click Connect — you'll authorize access through Cashfree Payments MCP's own sign-in flow. No API keys or code required.

  3. 3

    Ask an agent to use Cashfree Payments MCP in chat, or call it from an automation.

  4. 4

    Manage or disconnect the connection any time from workspace settings.

Frequently asked questions

How does the Cashfree Payments MCP integration work with Dench?

The Dench Cashfree Payments MCP integration connects your AI CRM to Cashfree Payments MCP, so AI agents can work with your Cashfree Payments MCP data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.

What actions can AI agents perform with Cashfree Payments MCP via Dench?

The Cashfree Payments MCP integration currently exposes 66 actions, including Activate workflow, Build and save workflow, Cancel payment link, Create order, Create payment link, and Create refund. Agents invoke them on your behalf from chat or from automations.

Do I need to write code to connect Cashfree Payments MCP to Dench?

No. You connect Cashfree Payments MCP from your Dench workspace using Cashfree Payments MCP's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.

Is the Cashfree Payments MCP integration secure?

Connections are authorized through Cashfree Payments MCP's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Cashfree Payments MCP connection from your workspace settings at any time.

Cashfree Payments MCP | Dench AI CRM