# Razorpay

> Razorpay through One

- Skill: `withoneai/razorpay` (Agent Skill)
- Install (CLI): `npx skillmds@latest add withoneai/razorpay`
- Raw SKILL.md: https://api.skillmd.com/api/skills/withoneai/razorpay/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: withoneai (https://skillmd.com/u/withoneai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/withoneai/razorpay

---


# Razorpay through One

Razorpay is a payments and banking platform. Accept payments (cards, UPI, netbanking, wallets, EMI), manage orders, customers, refunds, disputes, subscriptions, payment links, QR codes, and invoices; settle funds; create virtual accounts; and run RazorpayX banking (contacts, fund accounts, payouts, payout links, transactions, account validation) — all via one REST API with Basic Auth.

One exposes Razorpay through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.

## How to run an action

1. Find the action in the table below, or call `search_one_platform_actions` with platform `razorpay` if it is not listed.
2. Call `get_one_action_knowledge` with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
3. Call `execute_one_action` with parameters copied from that knowledge.

Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.

## Before you start

Call `list_one_integrations` once and confirm Razorpay is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.

Each connection carries an `access` field. If it reports `{"policy": "methods", "methods": ["GET"]}` the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.

## Before a write

Creates, updates, deletes and sends land on a real Razorpay account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.

## Actions

### Subscriptions

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch a Subscription | GET | `/v1/subscriptions/{{id}}` | `conn_mod_def::GLtbBBhCHVA::z6cvNC8KQFKit6p0s8CcOQ` |
| List Subscriptions | GET | `/v1/subscriptions` | `conn_mod_def::GLtbBKWBARg::RQC7HtLdSiWd_RviSXgxDQ` |
| Retrieve Scheduled Changes for a Subscription | GET | `/v1/subscriptions/{{id}}/retrieve_scheduled_changes` | `conn_mod_def::GLtbBC6SwtA::wSbeDp_3S26e4BLukAGY1g` |
| Cancel a Subscription | POST | `/v1/subscriptions/{{id}}/cancel` | `conn_mod_def::GLtbA5J_TSg::JOo18c6KSmS5ZSKXvGtDKw` |
| Cancel Scheduled Changes for a Subscription | POST | `/v1/subscriptions/{{id}}/cancel_scheduled_changes` | `conn_mod_def::GLtbBBNiV6A::d0eYkfq-RSq84Q6mMg-_wg` |
| Create Subscription | POST | `/v1/subscriptions` | `conn_mod_def::GLtbBCP_m5A::ktgk6XzMSCOjONyA79IogQ` |
| Delete an Offer from a Subscription | DELETE | `/v1/subscriptions/{{subId}}/{{offerId}}` | `conn_mod_def::GLtbBBZoe1A::F3ps0q1vQXWNp3H2W-AGXA` |
| Pause a Subscription | POST | `/v1/subscriptions/{{id}}/pause` | `conn_mod_def::GLtbBJ6yloA::4icgVgIMScutO_MhN8KMog` |
| Resume a Subscription | POST | `/v1/subscriptions/{{id}}/resume` | `conn_mod_def::GLtbBKMe1fg::_ukmTdfRTUKMju00F3xflg` |
| Update a Subscription | PATCH | `/v1/subscriptions/{{id}}` | `conn_mod_def::GLtbBI6c1fg::BhZuZ1bNSdqbe2dXkamqHQ` |

### Invoices

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch Invoice | GET | `/v1/invoices/{{id}}` | `conn_mod_def::GLta-zZ3tMg::XEeELgAVTT2XGdw07KyzNg` |
| List Invoices | GET | `/v1/invoices` | `conn_mod_def::GLta-3uYwhg::I37pDsZiR7a-iwDeBh8KVQ` |
| Cancel an Invoice | POST | `/v1/invoices/{{id}}/cancel` | `conn_mod_def::GLta-em2jlg::51wmhpehSXmjMAVfHUeKzw` |
| Create Invoice | POST | `/v1/invoices` | `conn_mod_def::GLta-fwENbA::8W0FMcDwT2-xqK3fyETA-w` |
| Delete a Draft Invoice | DELETE | `/v1/invoices/{{id}}` | `conn_mod_def::GLta-ez676A::uA9pmjktTV-TLOUcjCnsLQ` |
| Issue an Invoice | POST | `/v1/invoices/{{id}}/issue` | `conn_mod_def::GLta-ysyoqg::mf_YsQ1nTMCHCTZEA1Am0A` |
| Notify an Invoice by Medium | POST | `/v1/invoices/{{id}}/notify_by/{{medium}}` | `conn_mod_def::GLta-y2UaDg::eteLyqEIREW5b7jgiEMbXg` |
| Update an Invoice | PATCH | `/v1/invoices/{{id}}` | `conn_mod_def::GLta-yvkwFA::bnUD0MPtTHSYptFzCRTwng` |

### Payments

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch All Payments | GET | `/v1/payments` | `conn_mod_def::GLta_9QyiIg::5RxaxK9DQUaBmZEMg9DZqw` |
| Fetch Payment by ID | GET | `/v1/payments/{{id}}` | `conn_mod_def::GLta_8OUToA::cx25GVq2TzG8mVgkOWwA4Q` |
| Fetch Payments for a QR Code | GET | `/v1/payments/qr_codes/{{id}}/payments` | `conn_mod_def::GLtbAaR9wXg::qhI_ZmMESSm1uFQwyCsRdA` |
| Fetch Payments for an Order | GET | `/v1/orders/{{id}}/payments` | `conn_mod_def::GLta_eoU1lg::e60xjSojRaeL0QBiJpx8UQ` |
| Capture Payment | POST | `/v1/payments/{{id}}/capture` | `conn_mod_def::GLta_9k3biA::oQLo64vjS-6dQrEHEkLmEw` |
| Create Transfers from a Payment | POST | `/v1/payments/{{id}}/transfers` | `conn_mod_def::GLtbBR7iCGg::wGrf4NyHQTCZWPkrFJZnCQ` |
| Refund a Payment | POST | `/v1/payments/{{id}}/refund` | `conn_mod_def::GLtbAynNsjg::vhfWea9AQ-yEyhjv1L5euA` |
| Update a Payment | PATCH | `/v1/payments/{{id}}` | `conn_mod_def::GLtbATA_xoA::TDRGJgMCQ92FG0MV5-bOxQ` |

### VirtualAccounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch a Virtual Account | GET | `/v1/virtual_accounts/{{id}}` | `conn_mod_def::GLtbBj8zhuA::R8Km7kVDQ4CHLApfqL-nbw` |
| List Virtual Accounts | GET | `/v1/virtual_accounts` | `conn_mod_def::GLtbBrPp-bA::AJ7jzh-ORlGzyNomnPhy-g` |
| Add Allowed Payer to a Virtual Account | POST | `/v1/virtual_accounts/{{vaId}}/allowed_payers` | `conn_mod_def::GLtbBc-Vz8g::LBFuBmR2QpKnjeG_CWjV1Q` |
| Add VPA Receiver to a Virtual Account | POST | `/v1/virtual_accounts/{{id}}/receivers` | `conn_mod_def::GLtbBcsJu-A::bJf5KSlWSAynSdQpsou20A` |
| Close a Virtual Account | POST | `/v1/virtual_accounts/{{id}}/close` | `conn_mod_def::GLtbBcMQLyg::GRiaEz-FSgOQLyD_SdPQgA` |
| Create a Virtual Account | POST | `/v1/virtual_accounts` | `conn_mod_def::GLtbBjhi1kA::92TDlWQ1S2KHVlEj43qipA` |
| Delete an Allowed Payer for a Virtual Account | DELETE | `/v1/virtual_accounts/{{vaId}}/allowed_payers/{{id}}` | `conn_mod_def::GLtbBj5RsmA::mj302-s5Qq6boATvAnEX3Q` |
| Update a Virtual Account | PATCH | `/v1/virtual_accounts/{{id}}` | `conn_mod_def::GLtbBqdG8bg::B-w-zqVeQve2Sa2t0Wuy0A` |

### PaymentLinks

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch All Payment Links | GET | `/v1/payment_links` | `conn_mod_def::GLta_2t28ug::LPym7AzSQuawXkm4twKHmg` |
| Fetch Payment Link by ID | GET | `/v1/payment_links/{{id}}` | `conn_mod_def::GLta_1qw9TA::pur5eTXRTWGt12ZDHakIVQ` |
| Cancel a Payment Link | POST | `/v1/payment_links/{{id}}/cancel` | `conn_mod_def::GLta_1ShrEg::m2cGzLsyQEOeh7jcfbgIGA` |
| Create Payment Links | POST | `/v1/payment_links` | `conn_mod_def::GLta_1qvN-A::hncjA0m4Qf-aDXoRyLCJfw` |
| Notify by Medium for a Payment Link | POST | `/v1/payment_links/{{id}}/notify_by/{{medium}}` | `conn_mod_def::GLtbAMz1wsg::Q1AQw1dNThuYk90hHpF8pw` |
| Update a Payment Link | PATCH | `/v1/payment_links/{{id}}` | `conn_mod_def::GLta_8AX3ag::wGJitoZmTiOfdRN53MacOQ` |

### Transfers

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch Transfer | GET | `/v1/transfers/{{id}}` | `conn_mod_def::GLtbBW4CaTg::ojvRPDqOQQS_8KtA18NLcw` |
| Fetch Transfers for a Payment | GET | `/v1/payments/{{id}}/transfers` | `conn_mod_def::GLtbBROVvqA::3xVrqIhBSK2NdZhGsM231Q` |
| List Transfers | GET | `/v1/transfers` | `conn_mod_def::GLtbBRIxIag::pKBEX8s9SUyaGlarFw6XPA` |
| Create Direct Transfer | POST | `/v1/transfers` | `conn_mod_def::GLtbBKBpsKg::qjX03KbrRPm3q_cqBMm-Lg` |
| Modify Settlement Hold on a Transfer | PATCH | `/v1/transfers/{{id}}` | `conn_mod_def::GLtbBc_dzXg::RwLhJSFYSQGqexGv1FkGOA` |
| Reverse a Transfer | POST | `/v1/transfers/{{id}}/reversals` | `conn_mod_def::GLtbBcbK-PA::q-WIaO9CSFenTQDkxdcyhQ` |

### Items

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch an Item | GET | `/v1/items/{{id}}` | `conn_mod_def::GLta_C5HLLA::7Ku1TGffT0eqGwZciaUQ3Q` |
| List Items | GET | `/v1/items` | `conn_mod_def::GLta-9jIp3g::lcP-IE0kRVeUP97GgT2jPQ` |
| Create Item Using Razorpay v1 | POST | `/v1/items` | `conn_mod_def::GLta-9kYnDg::zuKUIlQsT4Gnv0AF3ia_ew` |
| Delete an Item | DELETE | `/v1/items/{{id}}` | `conn_mod_def::GLta-9eLwng::STKooD0SQ7KLOv04C5zdqw` |
| Update Item | PATCH | `/v1/items/{{id}}` | `conn_mod_def::GLta-9qmLZA::Upa_2K6TS4iDmj-gMlJWJQ` |

### Payouts

| Action | Method | Path | Action id |
|---|---|---|---|
| List Payouts | GET | `/v1/payouts` | `conn_mod_def::GLtbCTPTPHA::FmNN2FK4TG6jJgYvWjh85A` |
| Approve a Payout | POST | `/v1/payouts/{{payoutId}}/approve` | `conn_mod_def::GLtbCHaR8Og::JJ3KoZjPSVmmgEPn1kIhhw` |
| Cancel a Payout | POST | `/v1/payouts/{{payoutId}}/cancel` | `conn_mod_def::GLtbCLaOgrA::WAbKMHj6TiaLNHF39mYNew` |
| Create Payout | POST | `/v1/payouts` | `conn_mod_def::GLtbCRwkyCg::A10zkRtSRES2g3aR2IyC5Q` |
| Reject a Payout | POST | `/v1/payouts/{{payoutId}}/reject` | `conn_mod_def::GLtbCRnKmAA::JpqWlrnDQ2i_07fX9UCNYw` |

### Customers

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch All Customers | GET | `/v1/customers` | `conn_mod_def::GLta-DWXzAg::pJ_qHd8dTHCUtCiuYDYciQ` |
| Fetch Customer by ID | GET | `/v1/customers/{{id}}` | `conn_mod_def::GLta-J0gNPA::6YYdpynDRGOcvwH4t0m9Vg` |
| Create Customer | POST | `/v1/customers` | `conn_mod_def::GLta-DgFBzA::IKyyfaRdSyuAdtVgFs8__g` |
| Update a Customer | PUT | `/v1/customers/{{id}}` | `conn_mod_def::GLta-J2B6Kg::CfR9TOSrQmOtGA3Aq9WWbg` |

### Disputes

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch a Dispute by ID | GET | `/v1/disputes/{{id}}` | `conn_mod_def::GLta-X-1-YA::WfDd9CciSKap6SBIkd4dDA` |
| Fetch All Disputes | GET | `/v1/disputes` | `conn_mod_def::GLta-SVO2OA::m8MUKp2MQ3KpPEKJWRPH0w` |
| Accept Using Disputes | POST | `/v1/disputes/{{id}}/accept` | `conn_mod_def::GLta-Kg6BNg::giWINZGITO6PWD4VQbejiQ` |
| Contest a Dispute | PATCH | `/v1/disputes/{{id}}/contest` | `conn_mod_def::GLta-J3b83A::uD80YT9yTHyQXhb-8U5LGQ` |

### Settlements

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch All Instant Settlements | GET | `/v1/settlements/ondemand` | `conn_mod_def::GLta-sxPEgg::WjrUllWISj6jJq1-foksvQ` |
| Fetch All Settlements | GET | `/v1/settlements` | `conn_mod_def::GLtbA7CqmTg::woTqKAHkTY6gp72qoa3WWg` |
| Fetch Settlement by ID | GET | `/v1/settlements/{{id}}` | `conn_mod_def::GLtbA5KDSLA::I7EiD6NNQD6w2-PDOAibtA` |
| Create Instant Settlement | POST | `/v1/settlements/ondemand` | `conn_mod_def::GLta-ZXvWfg::QCSmgWFCSfmG0KT7p3Y-qw` |

### Orders

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch Order by ID | GET | `/v1/orders/{{id}}` | `conn_mod_def::GLta_Y9mFcg::nIjtKcF5T-imB_tMHrLKgg` |
| List Orders | GET | `/v1/orders` | `conn_mod_def::GLta_SdpGSA::Oct-0O-tRxmdrNYdloGy4Q` |
| Create Order | POST | `/v1/orders` | `conn_mod_def::GLta_RvI5uA::IRBTHZlaR6Kk7NJyzeIjFA` |
| Update an Order | PATCH | `/v1/orders/{{id}}` | `conn_mod_def::GLta_Y1647A::ItzPwKM6S6Go86OzcGmYNw` |

### Contacts

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch a Contact | GET | `/v1/contacts/{{contactId}}` | `conn_mod_def::GLtbBxcHdvg::Vy2awJWtRem6UkPR_txDcA` |
| List Contacts | GET | `/v1/contacts` | `conn_mod_def::GLtbBzhVreg::WRM-Fsc0Su-4yhVcsYpT0A` |
| Create Contact Using Contacts | POST | `/v1/contacts` | `conn_mod_def::GLtbBxihbDA::d88-0Hx8R4SC7QVU4Gg_Tw` |
| Update a Contact | PATCH | `/v1/contacts/{{contactId}}` | `conn_mod_def::GLtbBzXfvEg::-dtonScuSuarYh1RbMc3DQ` |

### FundAccounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch a Fund Account | GET | `/v1/fund_accounts/{{fundAccountId}}` | `conn_mod_def::GLtbB-pos0A::-Cwxm6caRWe5PYbRbBljPQ` |
| List Fund Accounts | GET | `/v1/fund_accounts` | `conn_mod_def::GLtbCBWETIg::L5qZldjCSLCjr30LVVYgbA` |
| Activate or Deactivate Fund Account | PATCH | `/v1/fund_accounts/{{fundAccountId}}` | `conn_mod_def::GLtbB6vNU3A::tojJ9ehuQ-CeN6wOAMRPLQ` |
| Create Fund Account | POST | `/v1/fund_accounts` | `conn_mod_def::GLtbB_BC0sg::TDLP6VoBTR6eBiCnTD26YQ` |

### Bills

| Action | Method | Path | Action id |
|---|---|---|---|
| Create a Bill | POST | `/v1/bills` | `conn_mod_def::GLta-C3Z7Kg::4HXY68VvTy65HIHe_wPvcg` |
| Delete a Bill | DELETE | `/v1/bills/{{billId}}` | `conn_mod_def::GLta-BNU5Hg::B3AgqvwDR0yRw6a4QQkt3A` |
| Update a Bill | PATCH | `/v1/bills/{{billId}}` | `conn_mod_def::GLta-CenJdA::YFW-iD63TbGdZIZDN4kJ_Q` |

### Documents

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch Document Info | GET | `/v1/documents/{{id}}` | `conn_mod_def::GLta-YH2Efg::URwtF5yFRRmV_uFVWAUGzg` |
| Fetch Document Content | POST | `/v1/documents/{{id}}/content` | `conn_mod_def::GLta-XdD0cg::jKvrE0OBRXOHS9K_T1ID9A` |
| Upload Document | POST | `/v1/documents` | `conn_mod_def::GLta-ZBgRWA::Mve-GnFjRCuhi0FHefAUww` |

### LinkedAccounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch a Linked Account | GET | `/v1/v2/accounts/{{accountId}}` | `conn_mod_def::GLta_KL9TXg::mBEfsO3KTRy2idy7AFmKgw` |
| Create a Linked Account | POST | `/v1/v2/accounts` | `conn_mod_def::GLta_I4KtUA::EwbgltzFQ8ujQW0mYDPsuQ` |
| Update a Linked Account | PATCH | `/v1/v2/accounts/{{accountId}}` | `conn_mod_def::GLta_RwvcOA::T-1vCex5RKuTHQfH6hxWIw` |

### Stakeholders

| Action | Method | Path | Action id |
|---|---|---|---|
| Fetch All Stakeholders for an Account | GET | `/v1/v2/accounts/{{accountId}}/stakeholders` | `conn_mod_def::GLta_k0JU4g::uCaVdZvrQdmiDcHhOWcAdQ` |

2 more Stakeholders actions are available through search.

This lists 90 of 136 actions. For anything not here, call `search_one_platform_actions` with platform `razorpay`. The full catalog is at https://www.withone.ai/knowledge/razorpay.

## When a call fails

The error comes from Razorpay, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.

Full catalog: https://www.withone.ai/knowledge/razorpay

Integration knowledge by One (withone.ai), licensed under [One-Knowledge-1.0](https://www.withone.ai/licenses/knowledge). Attribution must be preserved in derivative works.

