Razorpay

Razorpay

Razorpay's Official MCP Server.

10K+

45 Tools

Packaged by
Requires Configuration
Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

Use cases

About

Razorpay MCP Server

Razorpay's Official MCP Server.

What is an MCP Server?

MCP Info

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/razorpay/razorpay-mcp-server/blob/7950d51d118ca164c32b7cf0cfaa14f34f24849f/Dockerfile
Commit7950d51d118ca164c32b7cf0cfaa14f34f24849f
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/razorpay --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMIT License

Available Tools (45)

Tools provided by this ServerShort Description
capture_paymentUse this tool to capture a previously authorized payment.
close_qr_codeClose a QR Code that's no longer needed
create_instant_settlementCreate an instant settlement to get funds transferred to your bank account
create_orderCreate a new order in Razorpay.
create_payment_linkCreate a new standard payment link in Razorpay with a specified amount
create_qr_codeCreate a new QR code in Razorpay that can be used to accept UPI payments
create_refundUse this tool to create a normal refund for a payment.
create_registration_linkCreate a registration link (auth link) for subscription registration in Razorpay to set up recurring payments via card, emandate, NACH, or UPI.
detect_stackDetect the technology stack of a project based on file information.
fetch_all_instant_settlementsFetch all instant settlements with optional filtering, pagination, and payout details
fetch_all_ordersFetch all orders with optional filtering and pagination
fetch_all_payment_linksFetch all payment links with optional filtering by payment ID or reference ID.You can specify the upi_link parameter to filter by link type.
fetch_all_paymentsFetch all payments with optional filtering and pagination
fetch_all_payoutsFetch all payouts for a bank account number
fetch_all_qr_codesFetch all QR codes with optional filtering and pagination
fetch_all_refundsUse this tool to retrieve details of all refunds.
fetch_all_settlementsFetch all settlements with optional filtering and pagination
fetch_instant_settlement_with_idFetch details of a specific instant settlement using its ID
fetch_multiple_refunds_for_paymentUse this tool to retrieve multiple refunds for a payment.
fetch_orderFetch an order's details using its ID
fetch_order_paymentsFetch all payments made for a specific order in Razorpay
fetch_paymentUse this tool to retrieve the details of a specific payment using its id.
fetch_payment_card_detailsUse this tool to retrieve the details of the card used to make a payment.
fetch_payment_linkFetch payment link details using it's ID.
fetch_payments_for_qr_codeFetch all payments made on a QR code
fetch_payout_with_idFetch a payout's details using its ID
fetch_qr_codeFetch a QR code's details using it's ID
fetch_qr_codes_by_customer_idFetch all QR codes for a specific customer
fetch_qr_codes_by_payment_idFetch all QR codes for a specific payment
fetch_refundUse this tool to retrieve the details of a specific refund using its id.
fetch_settlement_recon_detailsFetch settlement reconciliation report for a specific time period
fetch_settlement_with_idFetch details of a specific settlement using its ID
fetch_specific_refund_for_paymentUse this tool to retrieve details of a specific refund made for a payment.
fetch_tokensGet all saved payment methods (cards, UPI) for a customer.
initiate_paymentInitiate a payment using the S2S JSON v1 flow.
integrate_razorpay_checkoutComplete Razorpay Standard Checkout integration.
payment_link_notifySend or resend notification for a payment link via SMS or email.
payment_link_upi_createCreate a new UPI payment link in Razorpay with a specified amount and additional options.
resend_otpResend OTP to the customer's registered mobile number if the previous OTP was not received or has expired.
revoke_tokenRevoke a saved payment method (token) for a customer.
submit_otpVerify and submit the OTP received by the customer to complete the payment authentication process.
update_orderUse this tool to update the notes for a specific order.
update_paymentUse this tool to update the notes field of a payment.
update_payment_linkUpdate any existing standard or UPI payment link with new details such as reference ID, expiry date, or notes.
update_refundUse this tool to update the notes for a specific refund.

Tools Details

Tool: capture_payment

Use this tool to capture a previously authorized payment. Only payments with 'authorized' status can be captured

ParametersTypeDescription
amountnumberThe amount to be captured in paise. For INR: 100 paise = ₹1. Should be equal to the authorized amount
currencystringISO code of the currency in which the payment was made (e.g., INR)
payment_idstringUnique identifier of the payment to be captured. Should start with 'pay_'

This tool may perform destructive updates.


Tool: close_qr_code

Close a QR Code that's no longer needed

ParametersTypeDescription
qr_code_idstringUnique identifier of the QR Code to be closedThe QR code id should start with 'qr_'

This tool may perform destructive updates.


Tool: create_instant_settlement

Create an instant settlement to get funds transferred to your bank account

ParametersTypeDescription
amountnumberThe amount you want to get settled instantly in paise (smallest currency sub-unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500
descriptionstringoptionalCustom note for the instant settlement.
notesobjectoptionalKey-value pairs for additional information. Max 15 pairs, 256 chars each
settle_full_balancebooleanoptionalIf true, Razorpay will settle the maximum amount possible and ignore amount parameter

This tool may perform destructive updates.


Tool: create_order

Create a new order in Razorpay. Supports both regular orders and mandate orders.

For REGULAR ORDERS: Provide amount, currency, and optional receipt/notes.

For MANDATE ORDERS (recurring payments): You MUST provide ALL of these fields: amount, currency, method='upi', customer_id (starts with 'cust_'), and token object.

The token object is required for mandate orders and must contain: max_amount (positive number in paise - For INR: 100 paise = ₹1), frequency (as_presented/monthly/one_time/yearly/weekly/daily), type='single_block_multiple_debit', and optionally expire_at (defaults to today+60days).

IMPORTANT: When token.type is 'single_block_multiple_debit', the method MUST be 'upi'.

Example mandate order payload: {"amount": 100, "currency": "INR", "method": "upi", "customer_id": "cust_abc123", "token": {"max_amount": 100, "frequency": "as_presented", "type": "single_block_multiple_debit"}, "receipt": "Receipt No. 1", "notes": {"key": "value"}}

ParametersTypeDescription
amountnumberPayment amount in paise (smallest currency sub-unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500
currencystringISO code for the currency (e.g., INR, USD, SGD)
customer_idstringoptionalCustomer ID for mandate orders. REQUIRED for mandate orders. Must start with 'cust_' followed by alphanumeric characters. Example: 'cust_xxx'. This identifies the customer for recurring payments.
first_payment_min_amountnumberoptionalMinimum amount in paise for first partial payment (only if partial_payment is true). For INR: 100 paise = ₹1
methodstringoptionalPayment method for mandate orders. REQUIRED for mandate orders. Must be 'upi' when using token.type='single_block_multiple_debit'. This field is used only for mandate/recurring payment orders.
notesobjectoptionalKey-value pairs for additional information (max 15 pairs, 256 chars each)
partial_paymentbooleanoptionalWhether the customer can make partial payments
receiptstringoptionalReceipt number for internal reference (max 40 chars, must be unique)
tokenobjectoptionalToken object for mandate orders. REQUIRED for mandate orders. Must contain: max_amount (positive number in paise, maximum debit amount - For INR: 100 paise = ₹1), frequency (as_presented/monthly/one_time/yearly/weekly/daily), type='single_block_multiple_debit' (only supported type), and optionally expire_at (Unix timestamp, defaults to today+60days). Example: {"max_amount": 100, "frequency": "as_presented", "type": "single_block_multiple_debit"}
transfersarrayoptionalArray of transfer objects for distributing payment amounts among multiple linked accounts. Each transfer object should contain: account (linked account ID), amount (in currency subunits), currency (ISO code), and optional fields like notes, linked_account_notes, on_hold, on_hold_until

This tool may perform destructive updates.


Tool: create_payment_link

Create a new standard payment link in Razorpay with a specified amount

ParametersTypeDescription
amountnumberAmount to be paid using the link in paise (smallest currency unit). For INR: 100 paise = ₹1. Example: for ₹300, use 30000
currencystringThree-letter ISO code for the currency (e.g., INR)
accept_partialbooleanoptionalIndicates whether customers can make partial payments using the Payment Link. Default: false
callback_methodstringoptionalHTTP method for callback redirection. Must be 'get' if callback_url is set.
callback_urlstringoptionalIf specified, adds a redirect URL to the Payment Link. Customer will be redirected here after payment.
customer_contactstringoptionalContact number of the customer.
customer_emailstringoptionalEmail address of the customer.
customer_namestringoptionalName of the customer.
descriptionstringoptionalA brief description of the Payment Link explaining the intent of the payment.
expire_bynumberoptionalTimestamp, in Unix, when the Payment Link will expire. By default, a Payment Link will be valid for six months.
first_min_partial_amountnumberoptionalMinimum amount in paise that must be paid by the customer as the first partial payment. For INR: 100 paise = ₹1. Default value is 100.
notesobjectoptionalKey-value pairs that can be used to store additional information. Maximum 15 pairs, each value limited to 256 characters.
notify_emailbooleanoptionalSend email notifications for the Payment Link.
notify_smsbooleanoptionalSend SMS notifications for the Payment Link.
reference_idstringoptionalReference number tagged to a Payment Link. Must be unique for each Payment Link. Max 40 characters.
reminder_enablebooleanoptionalEnable payment reminders for the Payment Link.

This tool may perform destructive updates.


Tool: create_qr_code

Create a new QR code in Razorpay that can be used to accept UPI payments

ParametersTypeDescription
typestringThe type of the QR Code. Currently only supports 'upi_qr'
usagestringWhether QR should accept single or multiple payments. Possible values: 'single_use', 'multiple_use'
close_bynumberoptionalUnix timestamp at which QR Code should be automatically closed (min 2 mins after current time)
customer_idstringoptionalThe unique identifier of the customer to link with the QR Code
descriptionstringoptionalA brief description about the QR Code
fixed_amountbooleanoptionalWhether QR should accept only specific amount (true) or any amount (false)
namestringoptionalLabel to identify the QR Code (e.g., 'Store Front Display')
notesobjectoptionalKey-value pairs for additional information (max 15 pairs, 256 chars each)
payment_amountnumberoptionalThe specific amount allowed for transaction in smallest currency unit

This tool may perform destructive updates.


Tool: create_refund

Use this tool to create a normal refund for a payment. Amount should be in paise (smallest currency unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500

ParametersTypeDescription
amountnumberPayment amount in paise (smallest currency unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500
payment_idstringUnique identifier of the payment which needs to be refunded. ID should have a pay_ prefix.
notesobjectoptionalKey-value pairs used to store additional information. A maximum of 15 key-value pairs can be included.
receiptstringoptionalA unique identifier provided by you for your internal reference.
speedstringoptionalThe speed at which the refund is to be processed. Default is 'normal'. For instant refunds, speed is set as 'optimum'.

This tool may perform destructive updates.


Tool: create_registration_link

Create a registration link (auth link) for subscription registration in Razorpay to set up recurring payments via card, emandate, NACH, or UPI.

ParametersTypeDescription
amountnumberAmount in the smallest currency unit (e.g., paise for INR).
currencystringThree-letter ISO currency code (e.g., INR, MYR).
descriptionstringBrief description of the registration link.
subscription_registrationobjectSubscription registration details. Must include 'method' (card, emandate, nach, upi). May include 'max_amount', 'expire_at' (Unix timestamp), and 'frequency' (as_presented, monthly, weekly, yearly, daily).
typestringType of registration link. Use 'link'.
customer_contactstringoptionalContact number of the customer.
customer_emailstringoptionalEmail address of the customer.
customer_namestringoptionalName of the customer.
email_notifybooleanoptionalSend email notification. Default: true
expire_bynumberoptionalUnix timestamp when the registration link expires.
notesobjectoptionalKey-value pairs for additional info. Max 15 pairs, each up to 256 characters.
receiptstringoptionalUnique receipt identifier provided by the merchant.
sms_notifybooleanoptionalSend SMS notification. Default: true

This tool may perform destructive updates.


Tool: detect_stack

Detect the technology stack of a project based on file information. Returns language, framework, frontend framework, and package manager. IMPORTANT: Always call this tool FIRST before calling integrate_razorpay_checkout. Before calling this tool, you MUST: 1) List the project's files and pass them in the 'files' parameter, 2) Read the relevant dependency file (package.json for Node.js, requirements.txt for Python, go.mod for Go, pubspec.yaml for Flutter, Cargo.toml for Rust, pom.xml for Java, etc.) and pass its contents in the corresponding parameter. Then pass the detected language, framework, and frontend to integrate_razorpay_checkout.

ParametersTypeDescription
filesarrayList of file paths in the project
cargoTomlstringoptionalContents of Cargo.toml if it exists (Rust)
composerJsonstringoptionalContents of composer.json if it exists (PHP)
csprojstringoptionalContents of .csproj if it exists (.NET)
gemfilestringoptionalContents of Gemfile if it exists (Ruby)
goModstringoptionalContents of go.mod if it exists (Go)
packageJsonobjectoptionalContents of package.json if it exists (Node.js)
pomXmlstringoptionalContents of pom.xml if it exists (Java/Maven)
pubspecYamlstringoptionalContents of pubspec.yaml if it exists (Flutter)
requirementsTxtstringoptionalContents of requirements.txt if it exists (Python)

This tool is read-only. It does not modify its environment.


Tool: fetch_all_instant_settlements

Fetch all instant settlements with optional filtering, pagination, and payout details

ParametersTypeDescription
countnumberoptionalNumber of instant settlement records to fetch (default: 10, max: 100)
expandarrayoptionalPass this if you want to fetch payout details as part of the response for all instant settlements. Supported values: ondemand_payouts
fromnumberoptionalUnix timestamp (in seconds) from when instant settlements are to be fetched
skipnumberoptionalNumber of instant settlement records to skip (default: 0)
tonumberoptionalUnix timestamp (in seconds) up till when instant settlements are to be fetched

This tool is read-only. It does not modify its environment.


Tool: fetch_all_orders

Fetch all orders with optional filtering and pagination

ParametersTypeDescription
authorizednumberoptionalFilter orders based on payment authorization status. Values: 0 (orders with unauthorized payments), 1 (orders with authorized payments)
countnumberoptionalNumber of orders to be fetched (default: 10, max: 100)
expandarrayoptionalUsed to retrieve additional information. Supported values: payments, payments.card, transfers, virtual_account
fromnumberoptionalTimestamp (in Unix format) from when the orders should be fetched
receiptstringoptionalFilter orders that contain the provided value for receipt
skipnumberoptionalNumber of orders to be skipped (default: 0)
tonumberoptionalTimestamp (in Unix format) up till when orders are to be fetched

This tool is read-only. It does not modify its environment.


Tool: fetch_all_payment_links

Fetch all payment links with optional filtering by payment ID or reference ID.You can specify the upi_link parameter to filter by link type.

ParametersTypeDescription
payment_idstringoptionalOptional: Filter by payment ID associated with payment links
reference_idstringoptionalOptional: Filter by reference ID used when creating payment links
upi_linknumberoptionalOptional: Filter only upi links. Value should be 1 if you want only upi links, 0 for only standard linksIf not provided, all types of links will be returned

This tool is read-only. It does not modify its environment.


Tool: fetch_all_payments

Fetch all payments with optional filtering and pagination

ParametersTypeDescription
countnumberoptionalNumber of payments to fetch (default: 10, max: 100)
fromnumberoptionalUnix timestamp (in seconds) from when payments are to be fetched
skipnumberoptionalNumber of payments to skip (default: 0)
tonumberoptionalUnix timestamp (in seconds) up till when payments are to be fetched

This tool is read-only. It does not modify its environment.


Tool: fetch_all_payouts

Fetch all payouts for a bank account number

ParametersTypeDescription
account_numberstringThe account from which the payouts were done.For example, 7878780080316316
countnumberoptionalNumber of payouts to be fetched. Default value is 10.Maximum value is 100. This can be used for pagination,in combination with the skip parameter
skipnumberoptionalNumbers of payouts to be skipped. Default value is 0.This can be used for pagination, in combination with count

This tool is read-only. It does not modify its environment.


Tool: fetch_all_qr_codes

Fetch all QR codes with optional filtering and pagination

ParametersTypeDescription
countnumberoptionalNumber of QR Codes to be retrieved (default: 10, max: 100)
fromnumberoptionalUnix timestamp, in seconds, from when QR Codes are to be retrieved
skipnumberoptionalNumber of QR Codes to be skipped (default: 0)
tonumberoptionalUnix timestamp, in seconds, till when QR Codes are to be retrieved

This tool is read-only. It does not modify its environment.


Tool: fetch_all_refunds

Use this tool to retrieve details of all refunds. By default, only the last 10 refunds are returned.

ParametersTypeDescription
countnumberoptionalThe number of refunds to fetch. You can fetch a maximum of 100 refunds
fromnumberoptionalUnix timestamp at which the refunds were created
skipnumberoptionalThe number of refunds to be skipped
tonumberoptionalUnix timestamp till which the refunds were created

This tool is read-only. It does not modify its environment.


Tool: fetch_all_settlements

Fetch all settlements with optional filtering and pagination

ParametersTypeDescription
countnumberoptionalNumber of settlement records to fetch (default: 10, max: 100)
fromnumberoptionalUnix timestamp (in seconds) from when settlements are to be fetched
skipnumberoptionalNumber of settlement records to skip (default: 0)
tonumberoptionalUnix timestamp (in seconds) up till when settlements are to be fetched

This tool is read-only. It does not modify its environment.


Tool: fetch_instant_settlement_with_id

Fetch details of a specific instant settlement using its ID

ParametersTypeDescription
settlement_idstringThe ID of the instant settlement to fetch. ID starts with 'setlod_'

This tool is read-only. It does not modify its environment.


Tool: fetch_multiple_refunds_for_payment

Use this tool to retrieve multiple refunds for a payment. By default, only the last 10 refunds are returned.

ParametersTypeDescription
payment_idstringUnique identifier of the payment for which refunds are to be retrieved. ID should have a pay_ prefix.
countnumberoptionalThe number of refunds to fetch for the payment.
fromnumberoptionalUnix timestamp at which the refunds were created.
skipnumberoptionalThe number of refunds to be skipped for the payment.
tonumberoptionalUnix timestamp till which the refunds were created.

This tool is read-only. It does not modify its environment.


Tool: fetch_order

Fetch an order's details using its ID

ParametersTypeDescription
order_idstringUnique identifier of the order to be retrieved

This tool is read-only. It does not modify its environment.


Tool: fetch_order_payments

Fetch all payments made for a specific order in Razorpay

ParametersTypeDescription
order_idstringUnique identifier of the order for which payments should be retrieved. Order id should start with order_

This tool is read-only. It does not modify its environment.


Tool: fetch_payment

Use this tool to retrieve the details of a specific payment using its id. Amount returned is in paisa

ParametersTypeDescription
payment_idstringpayment_id is unique identifier of the payment to be retrieved.

This tool is read-only. It does not modify its environment.


Tool: fetch_payment_card_details

Use this tool to retrieve the details of the card used to make a payment. Only works for payments made using a card.

ParametersTypeDescription
payment_idstringUnique identifier of the payment for which you want to retrieve card details. Must start with 'pay_'

This tool is read-only. It does not modify its environment.


Tool: fetch_payment_link

Fetch payment link details using it's ID. Response contains the basic details like amount, status etc. The link could be of any type(standard or UPI)

ParametersTypeDescription
payment_link_idstringID of the payment link to be fetched(ID should have a plink_ prefix).

This tool is read-only. It does not modify its environment.


Tool: fetch_payments_for_qr_code

Fetch all payments made on a QR code

ParametersTypeDescription
qr_code_idstringThe unique identifier of the QR Code to fetch payments forThe QR code id should start with 'qr_'
countnumberoptionalNumber of payments to be fetched (default: 10, max: 100)
fromnumberoptionalUnix timestamp, in seconds, from when payments are to be retrieved
skipnumberoptionalNumber of records to be skipped while fetching the payments
tonumberoptionalUnix timestamp, in seconds, till when payments are to be fetched

This tool is read-only. It does not modify its environment.


Tool: fetch_payout_with_id

Fetch a payout's details using its ID

ParametersTypeDescription
payout_idstringThe unique identifier of the payout. For example, 'pout_00000000000001'

This tool is read-only. It does not modify its environment.


Tool: fetch_qr_code

Fetch a QR code's details using it's ID

ParametersTypeDescription
qr_code_idstringUnique identifier of the QR Code to be retrievedThe QR code id should start with 'qr_'

This tool is read-only. It does not modify its environment.


Tool: fetch_qr_codes_by_customer_id

Fetch all QR codes for a specific customer

ParametersTypeDescription
customer_idstringThe unique identifier of the customer

This tool is read-only. It does not modify its environment.


Tool: fetch_qr_codes_by_payment_id

Fetch all QR codes for a specific payment

ParametersTypeDescription
payment_idstringThe unique identifier of the paymentThe payment id always should start with 'pay_'

This tool is read-only. It does not modify its environment.


Tool: fetch_refund

Use this tool to retrieve the details of a specific refund using its id.

ParametersTypeDescription
refund_idstringUnique identifier of the refund which is to be retrieved. ID should have a rfnd_ prefix.

This tool is read-only. It does not modify its environment.


Tool: fetch_settlement_recon_details

Fetch settlement reconciliation report for a specific time period

ParametersTypeDescription
monthnumberMonth for which the settlement report is requested (MM format)
yearnumberYear for which the settlement report is requested (YYYY format)
countnumberoptionalOptional: Number of records to fetch (default: 10, max: 100)
daynumberoptionalOptional: Day for which the settlement report is requested (DD format)
skipnumberoptionalOptional: Number of records to skip for pagination

This tool is read-only. It does not modify its environment.


Tool: fetch_settlement_with_id

Fetch details of a specific settlement using its ID

ParametersTypeDescription
settlement_idstringThe ID of the settlement to fetch.ID starts with the 'setl_'

This tool is read-only. It does not modify its environment.


Tool: fetch_specific_refund_for_payment

Use this tool to retrieve details of a specific refund made for a payment.

ParametersTypeDescription
payment_idstringUnique identifier of the payment for which the refund has been made. ID should have a pay_ prefix.
refund_idstringUnique identifier of the refund to be retrieved. ID should have a rfnd_ prefix.

This tool is read-only. It does not modify its environment.


Tool: fetch_tokens

Get all saved payment methods (cards, UPI) for a customer. Accepts either a customer_id (preferred) or a contact number. When customer_id is provided it is used directly to fetch tokens; otherwise the contact number is used to find or create the customer first. Returns saved payment tokens including credit/debit cards, UPI IDs, digital wallets, and other tokenized payment instruments.

ParametersTypeDescription
contactstringoptionalContact number of the customer to fetch all saved payment methods for. For example, 9876543210 or +919876543210. Used only when customer_id is not provided.
customer_idstringoptionalRazorpay customer ID to fetch saved payment methods for. Must start with 'cust_' followed by alphanumeric characters. Example: 'cust_xxx'. When provided, this takes priority over the contact parameter.

This tool may perform destructive updates.


Tool: initiate_payment

Initiate a payment using the S2S JSON v1 flow. Required parameters: amount and order_id. For saved payment methods, provide token. For UPI collect flow, provide 'vpa' parameter which automatically sets UPI with flow='collect' and expiry_time='6'. For UPI intent flow, set 'upi_intent=true' parameter which automatically sets UPI with flow='intent' and API returns UPI URL. Supports additional parameters like customer_id, email, contact, save, and recurring. Returns payment details including next action steps if required.

ParametersTypeDescription
amountnumberPayment amount in paise (smallest currency sub-unit). For INR: 100 paise = ₹1. Example: for ₹100, use 10000
order_idstringOrder ID for which the payment is being initiated. Must start with 'order_'
contactstringoptionalCustomer's phone number
currencystringoptionalCurrency code for the payment. Default is 'INR'
customer_idstringoptionalCustomer ID for the payment. Must start with 'cust_'
emailstringoptionalCustomer's email address (optional)
force_terminal_idstringoptionalTerminal ID to be passed in case of single block multiple debit order.
recurringbooleanoptionalSet this to true for recurring payments like single block multiple debit.
savebooleanoptionalWhether to save the payment method for future use
tokenstringoptionalToken ID of the saved payment method. Must start with 'token_'
upi_intentbooleanoptionalEnable UPI intent flow. When set to true, automatically sets method='upi' and UPI parameters with flow='intent'. The API will return a UPI URL in the response.
vpastringoptionalVirtual Payment Address (VPA) for UPI payment. When provided, automatically sets method='upi' and UPI parameters with flow='collect' and expiry_time='6' (e.g., '9876543210@ptsbi')

This tool may perform destructive updates.


Tool: integrate_razorpay_checkout

Complete Razorpay Standard Checkout integration. Returns ALL code needed - backend routes, frontend integration, and payment verification. IMPORTANT: Before calling this tool, ALWAYS call detect_stack first to determine the project's language, backendFramework, and frontendFramework. Do NOT ask the user for these values. The AI should apply ALL returned files and modifications without asking the user for additional steps.

ParametersTypeDescription
backendFrameworkstringBackend framework: express, fastify, koa, nextjs, nuxt, django, flask, fastapi, gin, echo, fiber, spring, spring-boot, laravel, rails, actix, aspnet, react-native, flutter, android, ios, cordova, ionic, or capacitor
frontendFrameworkstringFrontend framework: vanilla, react, nextjs, vue, angular, svelte, or native (for mobile apps)
languagestringProgramming language: javascript, typescript, python, go, java, php, ruby, rust, csharp, dart, swift, or kotlin

This tool is read-only. It does not modify its environment.


Tool: payment_link_notify

Send or resend notification for a payment link via SMS or email.

ParametersTypeDescription
mediumstringMedium through which to send the notification. Must be either 'sms' or 'email'.
payment_link_idstringID of the payment link for which to send notification (ID should have a plink_ prefix).

This tool may perform destructive updates.


Tool: payment_link_upi_create

Create a new UPI payment link in Razorpay with a specified amount and additional options.

ParametersTypeDescription
amountnumberAmount to be paid using the link in paise (smallest currency unit). For INR: 100 paise = ₹1. Example: for ₹300, use 30000. Only accepted currency is INR
currencystringThree-letter ISO code for the currency (e.g., INR). UPI links are only supported in INR
accept_partialbooleanoptionalIndicates whether customers can make partial payments using the Payment Link. Default: false
callback_methodstringoptionalHTTP method for callback redirection. Must be 'get' if callback_url is set.
callback_urlstringoptionalIf specified, adds a redirect URL to the Payment Link. Customer will be redirected here after payment.
customer_contactstringoptionalContact number of the customer.
customer_emailstringoptionalEmail address of the customer.
customer_namestringoptionalName of the customer.
descriptionstringoptionalA brief description of the Payment Link explaining the intent of the payment.
expire_bynumberoptionalTimestamp, in Unix, when the Payment Link will expire. By default, a Payment Link will be valid for six months.
first_min_partial_amountnumberoptionalMinimum amount in paise that must be paid by the customer as the first partial payment. For INR: 100 paise = ₹1. Default value is 100.
notesobjectoptionalKey-value pairs that can be used to store additional information. Maximum 15 pairs, each value limited to 256 characters.
notify_emailbooleanoptionalSend email notifications for the Payment Link.
notify_smsbooleanoptionalSend SMS notifications for the Payment Link.
reference_idstringoptionalReference number tagged to a Payment Link. Must be unique for each Payment Link. Max 40 characters.
reminder_enablebooleanoptionalEnable payment reminders for the Payment Link.

This tool may perform destructive updates.


Tool: resend_otp

Resend OTP to the customer's registered mobile number if the previous OTP was not received or has expired.

ParametersTypeDescription
payment_idstringUnique identifier of the payment for which OTP needs to be generated. Must start with 'pay_'

This tool may perform destructive updates.


Tool: revoke_token

Revoke a saved payment method (token) for a customer. This tool revokes the specified token associated with the given customer ID. Once revoked, the token cannot be used for future payments.

ParametersTypeDescription
customer_idstringCustomer ID for which the token should be revoked. Must start with 'cust_' followed by alphanumeric characters. Example: 'cust_xxx'
token_idstringToken ID of the saved payment method to be revoked. Must start with 'token_' followed by alphanumeric characters. Example: 'token_xxx'

This tool may perform destructive updates.


Tool: submit_otp

Verify and submit the OTP received by the customer to complete the payment authentication process.

ParametersTypeDescription
otp_stringstringOTP string received from the user
payment_idstringUnique identifier of the payment for which OTP needs to be submitted. Must start with 'pay_'

This tool may perform destructive updates.


Tool: update_order

Use this tool to update the notes for a specific order. Only the notes field can be modified.

ParametersTypeDescription
notesobjectKey-value pairs used to store additional information about the order. A maximum of 15 key-value pairs can be included, with each value not exceeding 256 characters.
order_idstringUnique identifier of the order which needs to be updated. ID should have an order_ prefix.

This tool may perform destructive updates.


Tool: update_payment

Use this tool to update the notes field of a payment. Notes are key-value pairs that can be used to store additional information.

ParametersTypeDescription
notesobjectKey-value pairs that can be used to store additional information about the payment. Values must be strings or integers.
payment_idstringUnique identifier of the payment to be updated. Must start with 'pay_'

This tool may perform destructive updates.


Tool: update_payment_link

Update any existing standard or UPI payment link with new details such as reference ID, expiry date, or notes.

ParametersTypeDescription
payment_link_idstringID of the payment link to update (ID should have a plink_ prefix).
accept_partialbooleanoptionalAllow customers to make partial payments. Not allowed with UPI payment links.
expire_bynumberoptionalTimestamp, in Unix format, when the payment link should expire.
notesobjectoptionalKey-value pairs for additional information. Maximum 15 pairs, each value limited to 256 characters.
reference_idstringoptionalAdds a unique reference number to the payment link.
reminder_enablebooleanoptionalEnable or disable reminders for the payment link.

This tool may perform destructive updates.


Tool: update_refund

Use this tool to update the notes for a specific refund. Only the notes field can be modified.

ParametersTypeDescription
notesobjectKey-value pairs used to store additional information. A maximum of 15 key-value pairs can be included, with each value not exceeding 256 characters.
refund_idstringUnique identifier of the refund which needs to be updated. ID should have a rfnd_ prefix.

This tool may perform destructive updates.


Use this MCP Server

{
  "mcpServers": {
    "razorpay": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "RAZORPAY_KEY_ID",
        "-e",
        "RAZORPAY_KEY_SECRET",
        "mcp/razorpay"
      ],
      "env": {
        "RAZORPAY_KEY_ID": "your_razorpay_key_id",
        "RAZORPAY_KEY_SECRET": "your_razorpay_key_secret"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Related servers