Razorpay's Official MCP Server.
10K+
45 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
Razorpay's Official MCP Server.
| Attribute | Details |
|---|---|
| Docker Image | mcp/razorpay |
| Author | razorpay |
| Repository | https://github.com/razorpay/razorpay-mcp-server |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/razorpay/razorpay-mcp-server/blob/7950d51d118ca164c32b7cf0cfaa14f34f24849f/Dockerfile |
| Commit | 7950d51d118ca164c32b7cf0cfaa14f34f24849f |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/razorpay --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
capture_payment | Use this tool to capture a previously authorized payment. |
close_qr_code | Close a QR Code that's no longer needed |
create_instant_settlement | Create an instant settlement to get funds transferred to your bank account |
create_order | Create a new order in Razorpay. |
create_payment_link | Create a new standard payment link in Razorpay with a specified amount |
create_qr_code | Create a new QR code in Razorpay that can be used to accept UPI payments |
create_refund | Use this tool to create a normal refund for a payment. |
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. |
detect_stack | Detect the technology stack of a project based on file information. |
fetch_all_instant_settlements | Fetch all instant settlements with optional filtering, pagination, and payout details |
fetch_all_orders | Fetch all orders with optional filtering and pagination |
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. |
fetch_all_payments | Fetch all payments with optional filtering and pagination |
fetch_all_payouts | Fetch all payouts for a bank account number |
fetch_all_qr_codes | Fetch all QR codes with optional filtering and pagination |
fetch_all_refunds | Use this tool to retrieve details of all refunds. |
fetch_all_settlements | Fetch all settlements with optional filtering and pagination |
fetch_instant_settlement_with_id | Fetch details of a specific instant settlement using its ID |
fetch_multiple_refunds_for_payment | Use this tool to retrieve multiple refunds for a payment. |
fetch_order | Fetch an order's details using its ID |
fetch_order_payments | Fetch all payments made for a specific order in Razorpay |
fetch_payment | Use this tool to retrieve the details of a specific payment using its id. |
fetch_payment_card_details | Use this tool to retrieve the details of the card used to make a payment. |
fetch_payment_link | Fetch payment link details using it's ID. |
fetch_payments_for_qr_code | Fetch all payments made on a QR code |
fetch_payout_with_id | Fetch a payout's details using its ID |
fetch_qr_code | Fetch a QR code's details using it's ID |
fetch_qr_codes_by_customer_id | Fetch all QR codes for a specific customer |
fetch_qr_codes_by_payment_id | Fetch all QR codes for a specific payment |
fetch_refund | Use this tool to retrieve the details of a specific refund using its id. |
fetch_settlement_recon_details | Fetch settlement reconciliation report for a specific time period |
fetch_settlement_with_id | Fetch details of a specific settlement using its ID |
fetch_specific_refund_for_payment | Use this tool to retrieve details of a specific refund made for a payment. |
fetch_tokens | Get all saved payment methods (cards, UPI) for a customer. |
initiate_payment | Initiate a payment using the S2S JSON v1 flow. |
integrate_razorpay_checkout | Complete Razorpay Standard Checkout integration. |
payment_link_notify | Send or resend notification for a payment link via SMS or email. |
payment_link_upi_create | Create a new UPI payment link in Razorpay with a specified amount and additional options. |
resend_otp | Resend OTP to the customer's registered mobile number if the previous OTP was not received or has expired. |
revoke_token | Revoke a saved payment method (token) for a customer. |
submit_otp | Verify and submit the OTP received by the customer to complete the payment authentication process. |
update_order | Use this tool to update the notes for a specific order. |
update_payment | Use this tool to update the notes field of a payment. |
update_payment_link | Update any existing standard or UPI payment link with new details such as reference ID, expiry date, or notes. |
update_refund | Use this tool to update the notes for a specific refund. |
capture_paymentUse this tool to capture a previously authorized payment. Only payments with 'authorized' status can be captured
| Parameters | Type | Description |
|---|---|---|
amount | number | The amount to be captured in paise. For INR: 100 paise = ₹1. Should be equal to the authorized amount |
currency | string | ISO code of the currency in which the payment was made (e.g., INR) |
payment_id | string | Unique identifier of the payment to be captured. Should start with 'pay_' |
This tool may perform destructive updates.
close_qr_codeClose a QR Code that's no longer needed
| Parameters | Type | Description |
|---|---|---|
qr_code_id | string | Unique identifier of the QR Code to be closedThe QR code id should start with 'qr_' |
This tool may perform destructive updates.
create_instant_settlementCreate an instant settlement to get funds transferred to your bank account
| Parameters | Type | Description |
|---|---|---|
amount | number | The amount you want to get settled instantly in paise (smallest currency sub-unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500 |
description | stringoptional | Custom note for the instant settlement. |
notes | objectoptional | Key-value pairs for additional information. Max 15 pairs, 256 chars each |
settle_full_balance | booleanoptional | If true, Razorpay will settle the maximum amount possible and ignore amount parameter |
This tool may perform destructive updates.
create_orderCreate 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"}}
| Parameters | Type | Description |
|---|---|---|
amount | number | Payment amount in paise (smallest currency sub-unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500 |
currency | string | ISO code for the currency (e.g., INR, USD, SGD) |
customer_id | stringoptional | Customer 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_amount | numberoptional | Minimum amount in paise for first partial payment (only if partial_payment is true). For INR: 100 paise = ₹1 |
method | stringoptional | Payment 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. |
notes | objectoptional | Key-value pairs for additional information (max 15 pairs, 256 chars each) |
partial_payment | booleanoptional | Whether the customer can make partial payments |
receipt | stringoptional | Receipt number for internal reference (max 40 chars, must be unique) |
token | objectoptional | Token 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"} |
transfers | arrayoptional | Array 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.
create_payment_linkCreate a new standard payment link in Razorpay with a specified amount
| Parameters | Type | Description |
|---|---|---|
amount | number | Amount to be paid using the link in paise (smallest currency unit). For INR: 100 paise = ₹1. Example: for ₹300, use 30000 |
currency | string | Three-letter ISO code for the currency (e.g., INR) |
accept_partial | booleanoptional | Indicates whether customers can make partial payments using the Payment Link. Default: false |
callback_method | stringoptional | HTTP method for callback redirection. Must be 'get' if callback_url is set. |
callback_url | stringoptional | If specified, adds a redirect URL to the Payment Link. Customer will be redirected here after payment. |
customer_contact | stringoptional | Contact number of the customer. |
customer_email | stringoptional | Email address of the customer. |
customer_name | stringoptional | Name of the customer. |
description | stringoptional | A brief description of the Payment Link explaining the intent of the payment. |
expire_by | numberoptional | Timestamp, in Unix, when the Payment Link will expire. By default, a Payment Link will be valid for six months. |
first_min_partial_amount | numberoptional | Minimum amount in paise that must be paid by the customer as the first partial payment. For INR: 100 paise = ₹1. Default value is 100. |
notes | objectoptional | Key-value pairs that can be used to store additional information. Maximum 15 pairs, each value limited to 256 characters. |
notify_email | booleanoptional | Send email notifications for the Payment Link. |
notify_sms | booleanoptional | Send SMS notifications for the Payment Link. |
reference_id | stringoptional | Reference number tagged to a Payment Link. Must be unique for each Payment Link. Max 40 characters. |
reminder_enable | booleanoptional | Enable payment reminders for the Payment Link. |
This tool may perform destructive updates.
create_qr_codeCreate a new QR code in Razorpay that can be used to accept UPI payments
| Parameters | Type | Description |
|---|---|---|
type | string | The type of the QR Code. Currently only supports 'upi_qr' |
usage | string | Whether QR should accept single or multiple payments. Possible values: 'single_use', 'multiple_use' |
close_by | numberoptional | Unix timestamp at which QR Code should be automatically closed (min 2 mins after current time) |
customer_id | stringoptional | The unique identifier of the customer to link with the QR Code |
description | stringoptional | A brief description about the QR Code |
fixed_amount | booleanoptional | Whether QR should accept only specific amount (true) or any amount (false) |
name | stringoptional | Label to identify the QR Code (e.g., 'Store Front Display') |
notes | objectoptional | Key-value pairs for additional information (max 15 pairs, 256 chars each) |
payment_amount | numberoptional | The specific amount allowed for transaction in smallest currency unit |
This tool may perform destructive updates.
create_refundUse 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
| Parameters | Type | Description |
|---|---|---|
amount | number | Payment amount in paise (smallest currency unit). For INR: 100 paise = ₹1. Example: for ₹295, use 29500 |
payment_id | string | Unique identifier of the payment which needs to be refunded. ID should have a pay_ prefix. |
notes | objectoptional | Key-value pairs used to store additional information. A maximum of 15 key-value pairs can be included. |
receipt | stringoptional | A unique identifier provided by you for your internal reference. |
speed | stringoptional | The 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.
create_registration_linkCreate a registration link (auth link) for subscription registration in Razorpay to set up recurring payments via card, emandate, NACH, or UPI.
| Parameters | Type | Description |
|---|---|---|
amount | number | Amount in the smallest currency unit (e.g., paise for INR). |
currency | string | Three-letter ISO currency code (e.g., INR, MYR). |
description | string | Brief description of the registration link. |
subscription_registration | object | Subscription 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). |
type | string | Type of registration link. Use 'link'. |
customer_contact | stringoptional | Contact number of the customer. |
customer_email | stringoptional | Email address of the customer. |
customer_name | stringoptional | Name of the customer. |
email_notify | booleanoptional | Send email notification. Default: true |
expire_by | numberoptional | Unix timestamp when the registration link expires. |
notes | objectoptional | Key-value pairs for additional info. Max 15 pairs, each up to 256 characters. |
receipt | stringoptional | Unique receipt identifier provided by the merchant. |
sms_notify | booleanoptional | Send SMS notification. Default: true |
This tool may perform destructive updates.
detect_stackDetect 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.
| Parameters | Type | Description |
|---|---|---|
files | array | List of file paths in the project |
cargoToml | stringoptional | Contents of Cargo.toml if it exists (Rust) |
composerJson | stringoptional | Contents of composer.json if it exists (PHP) |
csproj | stringoptional | Contents of .csproj if it exists (.NET) |
gemfile | stringoptional | Contents of Gemfile if it exists (Ruby) |
goMod | stringoptional | Contents of go.mod if it exists (Go) |
packageJson | objectoptional | Contents of package.json if it exists (Node.js) |
pomXml | stringoptional | Contents of pom.xml if it exists (Java/Maven) |
pubspecYaml | stringoptional | Contents of pubspec.yaml if it exists (Flutter) |
requirementsTxt | stringoptional | Contents of requirements.txt if it exists (Python) |
This tool is read-only. It does not modify its environment.
fetch_all_instant_settlementsFetch all instant settlements with optional filtering, pagination, and payout details
| Parameters | Type | Description |
|---|---|---|
count | numberoptional | Number of instant settlement records to fetch (default: 10, max: 100) |
expand | arrayoptional | Pass this if you want to fetch payout details as part of the response for all instant settlements. Supported values: ondemand_payouts |
from | numberoptional | Unix timestamp (in seconds) from when instant settlements are to be fetched |
skip | numberoptional | Number of instant settlement records to skip (default: 0) |
to | numberoptional | Unix timestamp (in seconds) up till when instant settlements are to be fetched |
This tool is read-only. It does not modify its environment.
fetch_all_ordersFetch all orders with optional filtering and pagination
| Parameters | Type | Description |
|---|---|---|
authorized | numberoptional | Filter orders based on payment authorization status. Values: 0 (orders with unauthorized payments), 1 (orders with authorized payments) |
count | numberoptional | Number of orders to be fetched (default: 10, max: 100) |
expand | arrayoptional | Used to retrieve additional information. Supported values: payments, payments.card, transfers, virtual_account |
from | numberoptional | Timestamp (in Unix format) from when the orders should be fetched |
receipt | stringoptional | Filter orders that contain the provided value for receipt |
skip | numberoptional | Number of orders to be skipped (default: 0) |
to | numberoptional | Timestamp (in Unix format) up till when orders are to be fetched |
This tool is read-only. It does not modify its environment.
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.
| Parameters | Type | Description |
|---|---|---|
payment_id | stringoptional | Optional: Filter by payment ID associated with payment links |
reference_id | stringoptional | Optional: Filter by reference ID used when creating payment links |
upi_link | numberoptional | Optional: 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.
fetch_all_paymentsFetch all payments with optional filtering and pagination
| Parameters | Type | Description |
|---|---|---|
count | numberoptional | Number of payments to fetch (default: 10, max: 100) |
from | numberoptional | Unix timestamp (in seconds) from when payments are to be fetched |
skip | numberoptional | Number of payments to skip (default: 0) |
to | numberoptional | Unix timestamp (in seconds) up till when payments are to be fetched |
This tool is read-only. It does not modify its environment.
fetch_all_payoutsFetch all payouts for a bank account number
| Parameters | Type | Description |
|---|---|---|
account_number | string | The account from which the payouts were done.For example, 7878780080316316 |
count | numberoptional | Number 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 |
skip | numberoptional | Numbers 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.
fetch_all_qr_codesFetch all QR codes with optional filtering and pagination
| Parameters | Type | Description |
|---|---|---|
count | numberoptional | Number of QR Codes to be retrieved (default: 10, max: 100) |
from | numberoptional | Unix timestamp, in seconds, from when QR Codes are to be retrieved |
skip | numberoptional | Number of QR Codes to be skipped (default: 0) |
to | numberoptional | Unix timestamp, in seconds, till when QR Codes are to be retrieved |
This tool is read-only. It does not modify its environment.
fetch_all_refundsUse this tool to retrieve details of all refunds. By default, only the last 10 refunds are returned.
| Parameters | Type | Description |
|---|---|---|
count | numberoptional | The number of refunds to fetch. You can fetch a maximum of 100 refunds |
from | numberoptional | Unix timestamp at which the refunds were created |
skip | numberoptional | The number of refunds to be skipped |
to | numberoptional | Unix timestamp till which the refunds were created |
This tool is read-only. It does not modify its environment.
fetch_all_settlementsFetch all settlements with optional filtering and pagination
| Parameters | Type | Description |
|---|---|---|
count | numberoptional | Number of settlement records to fetch (default: 10, max: 100) |
from | numberoptional | Unix timestamp (in seconds) from when settlements are to be fetched |
skip | numberoptional | Number of settlement records to skip (default: 0) |
to | numberoptional | Unix timestamp (in seconds) up till when settlements are to be fetched |
This tool is read-only. It does not modify its environment.
fetch_instant_settlement_with_idFetch details of a specific instant settlement using its ID
| Parameters | Type | Description |
|---|---|---|
settlement_id | string | The ID of the instant settlement to fetch. ID starts with 'setlod_' |
This tool is read-only. It does not modify its environment.
fetch_multiple_refunds_for_paymentUse this tool to retrieve multiple refunds for a payment. By default, only the last 10 refunds are returned.
| Parameters | Type | Description |
|---|---|---|
payment_id | string | Unique identifier of the payment for which refunds are to be retrieved. ID should have a pay_ prefix. |
count | numberoptional | The number of refunds to fetch for the payment. |
from | numberoptional | Unix timestamp at which the refunds were created. |
skip | numberoptional | The number of refunds to be skipped for the payment. |
to | numberoptional | Unix timestamp till which the refunds were created. |
This tool is read-only. It does not modify its environment.
fetch_orderFetch an order's details using its ID
| Parameters | Type | Description |
|---|---|---|
order_id | string | Unique identifier of the order to be retrieved |
This tool is read-only. It does not modify its environment.
fetch_order_paymentsFetch all payments made for a specific order in Razorpay
| Parameters | Type | Description |
|---|---|---|
order_id | string | Unique 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.
fetch_paymentUse this tool to retrieve the details of a specific payment using its id. Amount returned is in paisa
| Parameters | Type | Description |
|---|---|---|
payment_id | string | payment_id is unique identifier of the payment to be retrieved. |
This tool is read-only. It does not modify its environment.
fetch_payment_card_detailsUse this tool to retrieve the details of the card used to make a payment. Only works for payments made using a card.
| Parameters | Type | Description |
|---|---|---|
payment_id | string | Unique 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.
fetch_payment_linkFetch 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)
| Parameters | Type | Description |
|---|---|---|
payment_link_id | string | ID of the payment link to be fetched(ID should have a plink_ prefix). |
This tool is read-only. It does not modify its environment.
fetch_payments_for_qr_codeFetch all payments made on a QR code
| Parameters | Type | Description |
|---|---|---|
qr_code_id | string | The unique identifier of the QR Code to fetch payments forThe QR code id should start with 'qr_' |
count | numberoptional | Number of payments to be fetched (default: 10, max: 100) |
from | numberoptional | Unix timestamp, in seconds, from when payments are to be retrieved |
skip | numberoptional | Number of records to be skipped while fetching the payments |
to | numberoptional | Unix timestamp, in seconds, till when payments are to be fetched |
This tool is read-only. It does not modify its environment.
fetch_payout_with_idFetch a payout's details using its ID
| Parameters | Type | Description |
|---|---|---|
payout_id | string | The unique identifier of the payout. For example, 'pout_00000000000001' |
This tool is read-only. It does not modify its environment.
fetch_qr_codeFetch a QR code's details using it's ID
| Parameters | Type | Description |
|---|---|---|
qr_code_id | string | Unique 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.
fetch_qr_codes_by_customer_idFetch all QR codes for a specific customer
| Parameters | Type | Description |
|---|---|---|
customer_id | string | The unique identifier of the customer |
This tool is read-only. It does not modify its environment.
fetch_qr_codes_by_payment_idFetch all QR codes for a specific payment
| Parameters | Type | Description |
|---|---|---|
payment_id | string | The unique identifier of the paymentThe payment id always should start with 'pay_' |
This tool is read-only. It does not modify its environment.
fetch_refundUse this tool to retrieve the details of a specific refund using its id.
| Parameters | Type | Description |
|---|---|---|
refund_id | string | Unique 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.
fetch_settlement_recon_detailsFetch settlement reconciliation report for a specific time period
| Parameters | Type | Description |
|---|---|---|
month | number | Month for which the settlement report is requested (MM format) |
year | number | Year for which the settlement report is requested (YYYY format) |
count | numberoptional | Optional: Number of records to fetch (default: 10, max: 100) |
day | numberoptional | Optional: Day for which the settlement report is requested (DD format) |
skip | numberoptional | Optional: Number of records to skip for pagination |
This tool is read-only. It does not modify its environment.
fetch_settlement_with_idFetch details of a specific settlement using its ID
| Parameters | Type | Description |
|---|---|---|
settlement_id | string | The ID of the settlement to fetch.ID starts with the 'setl_' |
This tool is read-only. It does not modify its environment.
fetch_specific_refund_for_paymentUse this tool to retrieve details of a specific refund made for a payment.
| Parameters | Type | Description |
|---|---|---|
payment_id | string | Unique identifier of the payment for which the refund has been made. ID should have a pay_ prefix. |
refund_id | string | Unique identifier of the refund to be retrieved. ID should have a rfnd_ prefix. |
This tool is read-only. It does not modify its environment.
fetch_tokensGet 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.
| Parameters | Type | Description |
|---|---|---|
contact | stringoptional | Contact 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_id | stringoptional | Razorpay 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.
initiate_paymentInitiate 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.
| Parameters | Type | Description |
|---|---|---|
amount | number | Payment amount in paise (smallest currency sub-unit). For INR: 100 paise = ₹1. Example: for ₹100, use 10000 |
order_id | string | Order ID for which the payment is being initiated. Must start with 'order_' |
contact | stringoptional | Customer's phone number |
currency | stringoptional | Currency code for the payment. Default is 'INR' |
customer_id | stringoptional | Customer ID for the payment. Must start with 'cust_' |
email | stringoptional | Customer's email address (optional) |
force_terminal_id | stringoptional | Terminal ID to be passed in case of single block multiple debit order. |
recurring | booleanoptional | Set this to true for recurring payments like single block multiple debit. |
save | booleanoptional | Whether to save the payment method for future use |
token | stringoptional | Token ID of the saved payment method. Must start with 'token_' |
upi_intent | booleanoptional | Enable 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. |
vpa | stringoptional | Virtual 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.
integrate_razorpay_checkoutComplete 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.
| Parameters | Type | Description |
|---|---|---|
backendFramework | string | Backend 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 |
frontendFramework | string | Frontend framework: vanilla, react, nextjs, vue, angular, svelte, or native (for mobile apps) |
language | string | Programming 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.
payment_link_notifySend or resend notification for a payment link via SMS or email.
| Parameters | Type | Description |
|---|---|---|
medium | string | Medium through which to send the notification. Must be either 'sms' or 'email'. |
payment_link_id | string | ID of the payment link for which to send notification (ID should have a plink_ prefix). |
This tool may perform destructive updates.
payment_link_upi_createCreate a new UPI payment link in Razorpay with a specified amount and additional options.
| Parameters | Type | Description |
|---|---|---|
amount | number | Amount 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 |
currency | string | Three-letter ISO code for the currency (e.g., INR). UPI links are only supported in INR |
accept_partial | booleanoptional | Indicates whether customers can make partial payments using the Payment Link. Default: false |
callback_method | stringoptional | HTTP method for callback redirection. Must be 'get' if callback_url is set. |
callback_url | stringoptional | If specified, adds a redirect URL to the Payment Link. Customer will be redirected here after payment. |
customer_contact | stringoptional | Contact number of the customer. |
customer_email | stringoptional | Email address of the customer. |
customer_name | stringoptional | Name of the customer. |
description | stringoptional | A brief description of the Payment Link explaining the intent of the payment. |
expire_by | numberoptional | Timestamp, in Unix, when the Payment Link will expire. By default, a Payment Link will be valid for six months. |
first_min_partial_amount | numberoptional | Minimum amount in paise that must be paid by the customer as the first partial payment. For INR: 100 paise = ₹1. Default value is 100. |
notes | objectoptional | Key-value pairs that can be used to store additional information. Maximum 15 pairs, each value limited to 256 characters. |
notify_email | booleanoptional | Send email notifications for the Payment Link. |
notify_sms | booleanoptional | Send SMS notifications for the Payment Link. |
reference_id | stringoptional | Reference number tagged to a Payment Link. Must be unique for each Payment Link. Max 40 characters. |
reminder_enable | booleanoptional | Enable payment reminders for the Payment Link. |
This tool may perform destructive updates.
resend_otpResend OTP to the customer's registered mobile number if the previous OTP was not received or has expired.
| Parameters | Type | Description |
|---|---|---|
payment_id | string | Unique identifier of the payment for which OTP needs to be generated. Must start with 'pay_' |
This tool may perform destructive updates.
revoke_tokenRevoke 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.
| Parameters | Type | Description |
|---|---|---|
customer_id | string | Customer ID for which the token should be revoked. Must start with 'cust_' followed by alphanumeric characters. Example: 'cust_xxx' |
token_id | string | Token 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.
submit_otpVerify and submit the OTP received by the customer to complete the payment authentication process.
| Parameters | Type | Description |
|---|---|---|
otp_string | string | OTP string received from the user |
payment_id | string | Unique identifier of the payment for which OTP needs to be submitted. Must start with 'pay_' |
This tool may perform destructive updates.
update_orderUse this tool to update the notes for a specific order. Only the notes field can be modified.
| Parameters | Type | Description |
|---|---|---|
notes | object | Key-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_id | string | Unique identifier of the order which needs to be updated. ID should have an order_ prefix. |
This tool may perform destructive updates.
update_paymentUse this tool to update the notes field of a payment. Notes are key-value pairs that can be used to store additional information.
| Parameters | Type | Description |
|---|---|---|
notes | object | Key-value pairs that can be used to store additional information about the payment. Values must be strings or integers. |
payment_id | string | Unique identifier of the payment to be updated. Must start with 'pay_' |
This tool may perform destructive updates.
update_payment_linkUpdate any existing standard or UPI payment link with new details such as reference ID, expiry date, or notes.
| Parameters | Type | Description |
|---|---|---|
payment_link_id | string | ID of the payment link to update (ID should have a plink_ prefix). |
accept_partial | booleanoptional | Allow customers to make partial payments. Not allowed with UPI payment links. |
expire_by | numberoptional | Timestamp, in Unix format, when the payment link should expire. |
notes | objectoptional | Key-value pairs for additional information. Maximum 15 pairs, each value limited to 256 characters. |
reference_id | stringoptional | Adds a unique reference number to the payment link. |
reminder_enable | booleanoptional | Enable or disable reminders for the payment link. |
This tool may perform destructive updates.
update_refundUse this tool to update the notes for a specific refund. Only the notes field can be modified.
| Parameters | Type | Description |
|---|---|---|
notes | object | Key-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_id | string | Unique identifier of the refund which needs to be updated. ID should have a rfnd_ prefix. |
This tool may perform destructive updates.
{
"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"
}
}
}
}