> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Razorpay

The Razorpay connector lets your AI agent act in each user's Razorpay account. Each user connects their own Razorpay API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 83 tools.

**Authentication:** API Keys
**Categories:** Accounting & Finance
**Tools:** 83: 42 read, 38 write, 3 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=RAZORPAY)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Razorpay connection

   In **AgentKit > Connections**, create a Razorpay connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'razorpay_get_customer',
  toolInput: {
    customer_id: '<customer_id>',
  },
  connector: 'razorpay',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="razorpay_get_customer",
    tool_input={
        "customer_id": "<customer_id>",
    },
    connection_name="razorpay",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `razorpay_get_customer`

Get Customer · Read-only

Retrieve one customer by ID.
Returns the customer with name, email, contact, gstin and notes.
Use list_customers to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`string`, required): ID of the customer. Example: cust_1Aa00000000001.

Example input: `{"customer_id":"<customer_id>"}`

### `razorpay_get_dispute`

Get Dispute · Read-only

Retrieve one dispute by ID.
Returns the dispute with status, phase, amount, reason_code, respond_by and evidence.
Use list_disputes to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dispute_id` (`string`, required): ID of the dispute. Example: disp_AHfqOvkldwsbqt.

Example input: `{"dispute_id":"<dispute_id>"}`

### `razorpay_get_instant_settlement`

Get Instant Settlement · Read-only

Retrieve one instant (on-demand) settlement by ID.
Returns the settlement with amount_requested, amount_settled, fees, tax, status and payouts.
Use list_instant_settlements to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `instant_settlement_id` (`string`, required): ID of the instant settlement. Example: setlod_FNj7g2YS5J67Rz.

Example input: `{"instant_settlement_id":"<instant_settlement_id>"}`

### `razorpay_get_invoice`

Get Invoice · Read-only

Retrieve one invoice by ID.
Returns the invoice with status, amount, amount_paid, line_items, customer_details and short_url.
Use list_invoices to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`string`, required): ID of the invoice. Example: inv_DAweOiQ7amIUVd.

Example input: `{"invoice_id":"<invoice_id>"}`

### `razorpay_get_item`

Get Item · Read-only

Retrieve one item by ID.
Returns the item with name, description, amount, currency and active flag.
Use list_items to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): ID of the item. Example: item_7Oxp8NPBEuBAFH.

Example input: `{"item_id":"<item_id>"}`

### `razorpay_get_order`

Get Order · Read-only

Retrieve one order by its ID.
Returns the order with amount, amount_paid, amount_due, currency, receipt, status, attempts and notes.
Use list_orders to find the ID. Use list_order_payments to see the payments made against the order.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `order_id` (`string`, required): ID of the order. Example: order_DaaS6LOUAASb7Y.

Example input: `{"order_id":"<order_id>"}`

### `razorpay_get_payment`

Get Payment · Read-only

Retrieve one payment by its ID.
Returns the payment with amount, currency, status, method, order_id, amount_refunded, fee, tax and error details.
Use list_payments to find the ID. Use get_payment_card for masked card details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_id` (`string`, required): ID of the payment. Example: pay_DG4ZdRK8ZnXC3k.

Example input: `{"payment_id":"<payment_id>"}`

### `razorpay_get_payment_card`

Get Payment Card Details · Read-only

Retrieve the masked card details used for a card payment.
Returns the card id, name, last4, network, type, issuer, international and emi flags.
Use this after get_payment shows method card.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_id` (`string`, required): ID of the payment. Example: pay_DG4ZdRK8ZnXC3k.

Example input: `{"payment_id":"<payment_id>"}`

### `razorpay_get_payment_link`

Get Payment Link · Read-only

Retrieve one payment link by ID.
Returns the link with status, amount, amount_paid, short_url, payments and customer.
Use list_payment_links to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_link_id` (`string`, required): ID of the payment link. Example: plink_FL5HCrWEO112OW.

Example input: `{"payment_link_id":"<payment_link_id>"}`

### `razorpay_get_payment_refund`

Get Payment Refund · Read-only

Retrieve one refund that belongs to a specific payment.
Returns the refund with amount, status, speed_processed and notes.
Use this when you know both IDs. Use get_refund when you only have the refund ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_id` (`string`, required): ID of the payment. Example: pay_29QQoUBi66xm2f.
- `refund_id` (`string`, required): ID of the refund. Example: rfnd_AABBdHIieexn5c.

Example input: `{"payment_id":"<payment_id>","refund_id":"<refund_id>"}`

### `razorpay_get_plan`

Get Plan · Read-only

Retrieve one billing plan by ID.
Returns the plan with period, interval and item details.
Use list_plans to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `plan_id` (`string`, required): ID of the plan. Example: plan_00000000000001.

Example input: `{"plan_id":"<plan_id>"}`

### `razorpay_get_qr_code`

Get QR Code · Read-only

Retrieve one QR code by ID.
Returns the QR code with status, usage, image_url, payments_count_received and payments_amount_received.
Use list_qr_codes to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `qr_code_id` (`string`, required): ID of the QR code. Example: qr_HMsVL8HOpbMcjU.

Example input: `{"qr_code_id":"<qr_code_id>"}`

### `razorpay_get_refund`

Get Refund · Read-only

Retrieve one refund by its ID.
Returns the refund with amount, currency, payment_id, status, speed_processed and notes.
Use list_refunds to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `refund_id` (`string`, required): ID of the refund. Example: rfnd_DfjjhJC6eDvUAi.

Example input: `{"refund_id":"<refund_id>"}`

### `razorpay_get_settlement`

Get Settlement · Read-only

Retrieve one settlement by ID.
Returns the settlement with amount, status, fees, tax, utr and created_at.
Use list_settlements to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `settlement_id` (`string`, required): ID of the settlement. Example: setl_DGlQ1Rj8os78Ec.

Example input: `{"settlement_id":"<settlement_id>"}`

### `razorpay_get_settlement_recon`

Get Settlement Reconciliation Report · Read-only

Retrieve the transaction-level reconciliation report for settlements in a month or on a day.
Returns a collection of entries with entity_id, type, amount, fee, tax, settlement_id and settled_at.
Use this to match payments and refunds to bank credits.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `month` (`integer`, required): Month the settlement was received, 1 to 12. Example: 6.
- `year` (`integer`, required): Year the settlement was received, in YYYY format. Example: 2022.
- `count` (`integer`, optional): Number of entries to return, 1 to 1000.
- `day` (`integer`, optional): Day of the month the settlement was received. Leave empty for the whole month. Example: 11.
- `skip` (`integer`, optional): Number of entries to skip. Use with count to paginate.

Example input: `{"month":6,"year":2022}`

### `razorpay_get_subscription`

Get Subscription · Read-only

Retrieve one subscription by ID.
Returns the subscription with status, plan_id, paid_count, remaining_count and current period.
Use list_subscriptions to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_get_subscription_addon`

Get Add-on · Read-only

Retrieve one subscription add-on by ID.
Returns the add-on with item, quantity, subscription_id and invoice_id.
Use list_subscription_addons to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `addon_id` (`string`, required): ID of the add-on. Example: ao_00000000000001.

Example input: `{"addon_id":"<addon_id>"}`

### `razorpay_get_subscription_pending_update`

Get Subscription Pending Update · Read-only

Retrieve the update scheduled to apply at the end of the current cycle.
Returns the subscription as it will look after the change.
Use cancel_subscription_pending_update to drop the scheduled change.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_get_transfer`

Get Transfer · Read-only

Retrieve one Route transfer by ID.
Returns the transfer with source, recipient, amount, amount_reversed, on_hold and settlement_status.
Use list_payment_transfers to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `transfer_id` (`string`, required): ID of the transfer. Example: trf_E9uQZ1rwK8gWfu.

Example input: `{"transfer_id":"<transfer_id>"}`

### `razorpay_get_virtual_account`

Get Virtual Account · Read-only

Retrieve one virtual account by ID.
Returns the virtual account with status, receivers, amount_expected and amount_paid.
Use list_virtual_accounts to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `virtual_account_id` (`string`, required): ID of the virtual account. Example: va_Di5gbNptcWV8fQ.

Example input: `{"virtual_account_id":"<virtual_account_id>"}`

### `razorpay_list_customers`

List Customers · Read-only

List customers on the account.
Returns a collection of customers with id, name, email, contact and notes.
Use get_customer when you already have the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of customers to return. Default 10, maximum 100. Combine with skip to paginate.
- `skip` (`integer`, optional): Number of customers to skip before returning results. Default 0. Combine with count to paginate.

Example input: `{}`

### `razorpay_list_disputes`

List Disputes · Read-only

List payment disputes (chargebacks) raised against your payments.
Returns a collection of disputes with id, payment_id, amount, status, phase, reason_code and respond_by.
Use get_dispute for one dispute. Disputes in the open status need action before respond_by.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of disputes to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only disputes created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of disputes to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only disputes created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_instant_settlements`

List Instant Settlements · Read-only

List instant (on-demand) settlements requested on the account.
Returns a collection with id, amount_requested, amount_settled, fees, tax and status.
Use get_instant_settlement for one request.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `razorpay_list_invoices`

List Invoices · Read-only

List invoices, optionally filtered by customer, payment or receipt.
Returns a collection of invoices with id, status, amount, customer_id and short_url.
Use list_subscription_invoices for invoices of one subscription. Use get_invoice for one invoice.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`string`, optional): Return only invoices issued to this customer. Example: cust_1Aa00000000001.
- `payment_id` (`string`, optional): Return only the invoice paid by this payment. Example: pay_DG4ZdRK8ZnXC3k.
- `receipt` (`string`, optional): Return only invoices with this receipt number. Example: Receipt No. 1.

Example input: `{}`

### `razorpay_list_items`

List Items · Read-only

List items, optionally only active or inactive ones.
Returns a collection of items with id, name, amount, currency and active flag.
Use get_item for one item.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `active` (`integer`, optional): Filter by status. Use 1 for active items and 0 for inactive items. One of: `0`, `1`.
- `count` (`integer`, optional): Number of items to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only items created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of items to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only items created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_order_payments`

List Order Payments · Read-only

List every payment attempt made against one order.
Returns a collection of payments with id, amount, status, method and error details.
Use this to see failed and successful attempts for an order. Use get_payment for one payment's full details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `order_id` (`string`, required): ID of the order. Example: order_DaaS6LOUAASb7Y.

Example input: `{"order_id":"<order_id>"}`

### `razorpay_list_orders`

List Orders · Read-only

List orders on the account, optionally filtered by receipt, authorization state or creation time.
Returns a collection of orders with count and items.
Use this to browse orders. Use get_order when you already have the order id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `authorized` (`integer`, optional): Filter by payment authorization. Use 1 for orders with authorized payments and 0 for orders without. One of: `0`, `1`.
- `count` (`integer`, optional): Number of orders to return. Default 10, maximum 100. Combine with skip to paginate.
- `expand` (`array`, optional): Extra data to embed in each order. Allowed values: payments, payments.card, transfers, virtual_account. Example: ["payments"].
- `from` (`integer`, optional): Unix timestamp in seconds. Only orders created at or after this time are returned. Example: 1700000000.
- `receipt` (`string`, optional): Return only orders whose receipt matches this value. Example: receipt#1.
- `skip` (`integer`, optional): Number of orders to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only orders created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_payment_links`

List Payment Links · Read-only

List payment links, optionally filtered by payment or reference ID.
Returns a collection of payment links with id, short_url, amount and status.
Use get_payment_link for one link.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_id` (`string`, optional): Return only the link that received this payment. Example: pay_DG4ZdRK8ZnXC3k.
- `reference_id` (`string`, optional): Return only the link with this reference ID. Example: ORD-1001.

Example input: `{}`

### `razorpay_list_payment_refunds`

List Payment Refunds · Read-only

List all refunds made against one payment.
Returns a collection of refunds with id, amount, status and created_at.
Use this to see how much of a payment has been refunded. Use list_refunds for all payments.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_id` (`string`, required): ID of the payment. Example: pay_29QQoUBi66xm2f.
- `count` (`integer`, optional): Number of refunds to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only refunds created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of refunds to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only refunds created at or before this time are returned. Example: 1710000000.

Example input: `{"payment_id":"<payment_id>"}`

### `razorpay_list_payment_transfers`

List Payment Transfers · Read-only

List the transfers made from one payment.
Returns a collection of transfers with id, recipient, amount and settlement status.
Use get_transfer for one transfer.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_id` (`string`, required): ID of the payment. Example: pay_E9up5H3Zd8hMSP.

Example input: `{"payment_id":"<payment_id>"}`

### `razorpay_list_payments`

List Payments · Read-only

List payments on the account, optionally within a time range.
Returns a collection of payments with id, amount, status, method, order_id and customer details.
Use this to browse payments. Use get_payment for one payment, or list_order_payments for one order.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of payments to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only payments created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of payments to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only payments created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_plans`

List Plans · Read-only

List billing plans.
Returns a collection of plans with id, period, interval and item.
Use get_plan for one plan.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of plans to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only plans created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of plans to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only plans created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_qr_code_payments`

List QR Code Payments · Read-only

List payments received on one QR code.
Returns a collection of payments with id, amount, status and method.
Use get_payment for one payment's full details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `qr_code_id` (`string`, required): ID of the QR code. Example: qr_HMsVL8HOpbMcjU.
- `count` (`integer`, optional): Number of payments to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only payments created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of payments to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only payments created at or before this time are returned. Example: 1710000000.

Example input: `{"qr_code_id":"<qr_code_id>"}`

### `razorpay_list_qr_codes`

List QR Codes · Read-only

List QR codes, optionally for one customer or payment.
Returns a collection of QR codes with id, usage, status and payments_amount_received.
Use get_qr_code for one QR code.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of QR codes to return. Default 10, maximum 100. Combine with skip to paginate.
- `customer_id` (`string`, optional): Return only QR codes for this customer. Example: cust_HKsR5se84c5LTO.
- `from` (`integer`, optional): Unix timestamp in seconds. Only QR codes created at or after this time are returned. Example: 1700000000.
- `payment_id` (`string`, optional): Return only the QR code that received this payment. Example: pay_Di5iqCqA1WEHq6.
- `skip` (`integer`, optional): Number of QR codes to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only QR codes created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_refunds`

List Refunds · Read-only

List refunds across all payments, optionally within a time range.
Returns a collection of refunds with id, amount, payment_id, status and notes.
Use this for an account-wide view. Use list_payment_refunds for one payment.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of refunds to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only refunds created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of refunds to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only refunds created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_settlements`

List Settlements · Read-only

List settlements paid out to your bank account.
Returns a collection of settlements with id, amount, status, fees, tax and utr.
Use get_settlement for one settlement or get_settlement_recon for transaction-level detail.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of settlements to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only settlements created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of settlements to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only settlements created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_subscription_addons`

List Add-ons · Read-only

List add-ons across subscriptions.
Returns a collection of add-ons with id, item, quantity and subscription_id.
Use get_subscription_addon for one add-on.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of add-ons to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only add-ons created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of add-ons to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only add-ons created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_subscription_invoices`

List Subscription Invoices · Read-only

List the invoices generated for one subscription.
Returns a collection of invoices with id, status, amount and billing period.
Use list_invoices for invoices across all customers.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription whose invoices to list. Example: sub_00000000000001.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_list_subscriptions`

List Subscriptions · Read-only

List subscriptions, optionally for one plan.
Returns a collection of subscriptions with id, status, plan_id and paid_count.
Use get_subscription for one subscription.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of subscriptions to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only subscriptions created at or after this time are returned. Example: 1700000000.
- `plan_id` (`string`, optional): Return only subscriptions on this plan. Example: plan_00000000000001.
- `skip` (`integer`, optional): Number of subscriptions to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only subscriptions created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_list_transfer_reversals`

List Transfer Reversals · Read-only

List the reversals made against one transfer.
Returns a collection of reversals with id, amount and created_at.
Use reverse_transfer to create a reversal.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `transfer_id` (`string`, required): ID of the transfer. Example: trf_E9uQZ1rwK8gWfu.

Example input: `{"transfer_id":"<transfer_id>"}`

### `razorpay_list_virtual_account_payments`

List Virtual Account Payments · Read-only

List payments received on one virtual account.
Returns a collection of payments with id, amount, status and method.
Use get_payment for one payment's full details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `virtual_account_id` (`string`, required): ID of the virtual account. Example: va_Di5gbNptcWV8fQ.
- `count` (`integer`, optional): Number of payments to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only payments created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of payments to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only payments created at or before this time are returned. Example: 1710000000.

Example input: `{"virtual_account_id":"<virtual_account_id>"}`

### `razorpay_list_virtual_accounts`

List Virtual Accounts · Read-only

List virtual accounts (customer identifiers).
Returns a collection with id, status, receivers and amount_paid.
Use get_virtual_account for one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `count` (`integer`, optional): Number of virtual accounts to return. Default 10, maximum 100. Combine with skip to paginate.
- `from` (`integer`, optional): Unix timestamp in seconds. Only virtual accounts created at or after this time are returned. Example: 1700000000.
- `skip` (`integer`, optional): Number of virtual accounts to skip before returning results. Default 0. Combine with count to paginate.
- `to` (`integer`, optional): Unix timestamp in seconds. Only virtual accounts created at or before this time are returned. Example: 1710000000.

Example input: `{}`

### `razorpay_accept_dispute`

Accept Dispute · Write

Accept a dispute, which gives up the disputed amount to the customer.
Returns the dispute with status lost.
This cannot be undone. Use contest_dispute to fight the dispute instead.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `dispute_id` (`string`, required): ID of the dispute to accept. Example: disp_AHfqOvkldwsbqt.

Example input: `{"dispute_id":"<dispute_id>"}`

### `razorpay_add_virtual_account_receiver`

Add Virtual Account Receiver · Write

Add another receiver type (bank account or UPI ID) to an existing virtual account.
Returns the virtual account with its updated receivers.
Use create_virtual_account to start a new one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `types` (`array`, required): Receiver types to add. Allowed values: bank_account, vpa. Example: ["vpa"].
- `virtual_account_id` (`string`, required): ID of the virtual account. Example: va_Di5gbNptcWV8fQ.
- `vpa` (`object`, optional): UPI ID settings, used only when types includes vpa. Set descriptor to a custom label. Example: {"descriptor": "gaurikumari"}.

Example input: `{"types":["vpa"],"virtual_account_id":"<virtual_account_id>"}`

### `razorpay_cancel_invoice`

Cancel Invoice · Write

Cancel an issued invoice so it can no longer be paid.
Returns the invoice with status cancelled.
Use delete_invoice instead for a draft you never issued.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): ID of the invoice. Example: inv_DAweOiQ7amIUVd.

Example input: `{"invoice_id":"<invoice_id>"}`

### `razorpay_cancel_payment_link`

Cancel Payment Link · Write

Cancel a payment link so it can no longer be paid.
Returns the link with status cancelled.
Cancelled links cannot be reactivated.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `payment_link_id` (`string`, required): ID of the payment link. Example: plink_FL5HCrWEO112OW.

Example input: `{"payment_link_id":"<payment_link_id>"}`

### `razorpay_cancel_subscription`

Cancel Subscription · Write

Cancel a subscription now or at the end of the current billing cycle.
Returns the subscription with its new status.
Use pause_subscription instead if you may want to resume later.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.
- `cancel_at_cycle_end` (`boolean`, optional): true cancels at the end of the current billing cycle; false (default) cancels immediately.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_cancel_subscription_pending_update`

Cancel Subscription Pending Update · Write

Cancel an update that was scheduled for the end of the current cycle.
Returns the subscription with its current state.
Use this after update_subscription with schedule_change_at set to cycle_end.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_capture_payment`

Capture Payment · Write

Capture an authorized payment so the money is collected from the customer.
Returns the captured payment with status captured.
Use this only for payments in the authorized state when automatic capture is off. The amount must equal the authorized amount.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`integer`, required): Amount to capture in the smallest currency unit. It must equal the authorized payment amount. Example: 5000 for Rs 50.00.
- `currency` (`string`, required): Three-letter ISO 4217 currency code of the payment. Example: INR.
- `payment_id` (`string`, required): ID of the payment. Example: pay_29QQoUBi66xm2f.

Example input: `{"amount":5000,"currency":"<currency>","payment_id":"<payment_id>"}`

### `razorpay_close_qr_code`

Close QR Code · Write

Close a QR code so it stops accepting payments.
Returns the QR code with status closed.
Closed QR codes cannot be reopened.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `qr_code_id` (`string`, required): ID of the QR code. Example: qr_HMsVL8HOpbMcjU.

Example input: `{"qr_code_id":"<qr_code_id>"}`

### `razorpay_close_virtual_account`

Close Virtual Account · Write

Close a virtual account so it stops receiving payments.
Returns the virtual account with status closed.
Closed virtual accounts cannot be reopened.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `virtual_account_id` (`string`, required): ID of the virtual account. Example: va_Di5gbNptcWV8fQ.

Example input: `{"virtual_account_id":"<virtual_account_id>"}`

### `razorpay_contest_dispute`

Contest Dispute · Write

Contest a dispute by submitting a summary and evidence document IDs.
Returns the dispute with status under_review.
Documents must already be uploaded to Razorpay. Leave amount empty to contest the full amount. Set action to submit to send it. Use accept_dispute to concede.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dispute_id` (`string`, required): ID of the dispute to contest. Example: disp_AHfqOvkldwsbqt.
- `access_activity_log` (`array`, optional): IDs of uploaded documents that serve as server logs showing the customer accessed or downloaded the digital product. Example: ["doc_EFtmUsbwpXwBH9"].
- `action` (`string`, optional): draft (default) saves the evidence without submitting it. submit sends the contest to Razorpay and needs at least one document ID across the evidence fields. One of: `draft`, `submit`.
- `amount` (`integer`, optional): Amount being contested in the smallest currency unit. Leave empty to contest the full dispute amount.
- `billing_proof` (`array`, optional): IDs of uploaded documents that serve as proof of order confirmation, such as a receipt. Example: ["doc_EFtmUsbwpXwBH9"].
- `cancellation_proof` (`array`, optional): IDs of uploaded documents that serve as proof the product or service was cancelled. Example: ["doc_EFtmUsbwpXwBH9"].
- `customer_communication` (`array`, optional): IDs of uploaded documents that serve as written communication from the customer confirming receipt or satisfaction. Example: ["doc_EFtmUsbwpXwBH9"].
- `explanation_letter` (`array`, optional): IDs of uploaded documents that serve as a letter explaining facts relevant to the dispute. Example: ["doc_EFtmUsbwpXwBH9"].
- `others` (`array`, optional): Extra evidence of custom types. Each entry has a type label and a list of document_ids. Example: [{"type": "receipt_signed_by_customer", "document_ids": ["doc_EFtmUsbwpXwBH9"]}].
- `proof_of_service` (`array`, optional): IDs of uploaded documents that serve as proof the service was provided. Example: ["doc_EFtmUsbwpXwBH9"].
- `refund_cancellation_policy` (`array`, optional): IDs of uploaded documents that serve as your refund and cancellation policy as shown to the customer. Example: ["doc_EFtmUsbwpXwBH9"].
- `refund_confirmation` (`array`, optional): IDs of uploaded documents that serve as proof a refund was given to the customer. Example: ["doc_EFtmUsbwpXwBH9"].
- `shipping_proof` (`array`, optional): IDs of uploaded documents that serve as proof the product was shipped to the customer's address. Example: ["doc_EFtmUsbwpXwBH9"].
- `summary` (`string`, optional): Your explanation for contesting, up to 1000 characters. Example: Product was delivered on 12 June and signed for.
- `term_and_conditions` (`array`, optional): IDs of uploaded documents that serve as your sales terms and conditions as shown to the customer. Example: ["doc_EFtmUsbwpXwBH9"].

Example input: `{"dispute_id":"<dispute_id>"}`

### `razorpay_create_customer`

Create Customer · Write

Create a customer record to attach to invoices, subscriptions, QR codes and virtual accounts.
Returns the customer with id, name, email, contact, gstin and notes.
Use update_customer to change an existing customer.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contact` (`string`, optional): Customer phone number with country code, up to 15 characters. Example: +919876543210.
- `email` (`string`, optional): Customer email address, up to 64 characters. Example: gaurav.kumar@example.com.
- `fail_existing` (`string`, optional): Behavior when a customer with the same details exists. Use 1 (default) to return an error, or 0 to return the existing customer instead. One of: `0`, `1`.
- `gstin` (`string`, optional): Customer GST number if available. Example: 29XAbbA4369J1PA.
- `name` (`string`, optional): Customer name, 3 to 50 characters. Example: Gaurav Kumar.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.

Example input: `{}`

### `razorpay_create_invoice`

Create Invoice · Write

Create an invoice for a customer, optionally as a draft.
Returns the invoice with id, status, amount, short_url, line items and customer details.
Use issue_invoice to send a draft. Pass either customer_id or customer.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `line_items` (`array`, required): Lines billed on the invoice, up to 50. Each line either references an existing item with item_id, or gives a name and amount in the smallest currency unit, with optional description, currency and quantity. Example: [{"name": "Consulting", "amount": 30000, "currency": "INR", "quantity": 2}].
- `currency` (`string`, optional): ISO 4217 currency of the invoice. Required for international payments. Example: INR.
- `customer` (`object`, optional): Customer details to bill, used when you do not pass customer_id. Include name, plus optional email, contact, billing_address and shipping_address (each address has line1, line2, city, zipcode, state, country). Example: {"name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", "contact": "+919876543210"}.
- `customer_id` (`string`, optional): ID of an existing customer from create_customer. Use this or customer. Example: cust_1Aa00000000001.
- `description` (`string`, optional): Short description shown on the invoice. Example: Monthly retainer.
- `draft` (`string`, optional): Set to 1 to create the invoice as a draft that can be edited and issued later. Leave empty to issue immediately. One of: `1`.
- `email_notify` (`boolean`, optional): true (default) lets Razorpay send the email notification; false means you handle it.
- `expire_by` (`integer`, optional): Unix timestamp at which the invoice expires. Example: 1893456000.
- `notes` (`object`, optional): Custom notes for the invoice, as key-value pairs (for example {"po_number": "PO-77"}) or as a plain text string of up to 2048 characters. The Razorpay page types this field as a string while its other pages show key-value notes, so both are accepted.
- `partial_payment` (`boolean`, optional): true lets the customer pay in parts; false (default) requires full payment.
- `sms_notify` (`boolean`, optional): true (default) lets Razorpay send the SMS notification; false means you handle it.

Example input: `{"line_items":[{"name":"Consulting","amount":30000,"currency":"INR","quantity":2}]}`

### `razorpay_create_item`

Create Item · Write

Create a reusable item (product or service with a price) that can be added to invoices.
Returns the item with id, name, description, amount, currency and active flag.
Use this before create_invoice when you bill the same line often.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`integer`, required): Price in the smallest currency unit. For INR, 69900 means Rs 699.00.
- `currency` (`string`, required): Three-letter ISO 4217 currency code. Example: INR.
- `name` (`string`, required): Name of the item. Example: Annual Plan.
- `description` (`string`, optional): Short description of the item. Example: Yearly subscription fee.

Example input: `{"amount":5000,"currency":"<currency>","name":"<name>"}`

### `razorpay_create_order`

Create Order · Write

Create a Razorpay order for a payment amount before checkout.
Returns the order with id, amount, amount_due, currency, receipt, status and notes.
Use this first in a payment flow, then pass the order id to checkout. Use list_orders or get_order to look orders up.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`integer`, required): Amount to charge in the smallest currency unit. For INR, 29900 means Rs 299.00. The minimum for INR is 100.
- `currency` (`string`, required): Three-letter ISO 4217 currency code for the order. Example: INR.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.
- `receipt` (`string`, optional): Your own receipt or reference number for the order. Maximum 40 characters and unique per order. Example: receipt#1.

Example input: `{"amount":5000,"currency":"<currency>"}`

### `razorpay_create_payment_link`

Create Payment Link · Write

Create a shareable payment link for a fixed amount, standard or UPI.
Returns the link with id, short_url, amount, status and reference_id.
Set upi_link to true for a UPI-only link. Use send_payment_link_notification to deliver it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`integer`, required): Amount to collect in the smallest currency unit. For INR, 30000 means Rs 300.00.
- `accept_partial` (`boolean`, optional): true lets the customer pay in parts; false (default) requires the full amount. Not allowed for UPI links.
- `callback_method` (`string`, optional): Must be get when callback_url is set. One of: `get`.
- `callback_url` (`string`, optional): URL the customer is redirected to after paying. Requires callback_method. Example: https://example.com/thanks.
- `currency` (`string`, optional): Three-letter ISO 4217 currency code. Defaults to INR. Example: INR.
- `customer` (`object`, optional): Customer details with optional name, email and contact. Example: {"name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", "contact": "+919876543210"}.
- `description` (`string`, optional): Short description of what the link is for, up to 2048 characters. Example: Payment for order 1001.
- `expire_by` (`integer`, optional): Unix timestamp at which the link expires. At most six months after creation. Example: 1893456000.
- `first_min_partial_amount` (`integer`, optional): Minimum first partial payment in the smallest currency unit. Use only with accept_partial set to true. Example: 10000.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.
- `notify` (`object`, optional): Who sends notifications. Set sms and email to true to let Razorpay notify the customer. Example: {"sms": true, "email": true}.
- `reference_id` (`string`, optional): Your unique reference for this link, up to 40 characters. Example: ORD-1001.
- `reminder_enable` (`boolean`, optional): true sends automatic payment reminders for the link; false disables them.
- `upi_link` (`boolean`, optional): Set true to create a UPI Payment Link. If false or empty, a standard link is created.

Example input: `{"amount":5000}`

### `razorpay_create_plan`

Create Plan · Write

Create a billing plan that subscriptions are attached to.
Returns the plan with id, period, interval and item details.
Create a plan first, then use create_subscription with its id.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `interval` (`integer`, required): Number of periods between charges. For a plan billed every 2 months, period is monthly and interval is 2. Daily plans need at least 7.
- `item` (`object`, required): What the plan charges. Needs name, amount in the smallest currency unit and currency, plus an optional description. Example: {"name": "Pro Plan", "amount": 69900, "currency": "INR", "description": "Pro monthly"}.
- `period` (`string`, required): Billing period unit. Combined with interval it sets the frequency. Allowed values: daily, weekly, monthly, quarterly, yearly. One of: `daily`, `weekly`, `monthly`, `quarterly`, `yearly`.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.

Example input: `{"interval":1,"item":{"name":"Pro Plan","amount":69900,"currency":"INR","description":"Pro monthly"},"period":"daily"}`

### `razorpay_create_qr_code`

Create QR Code · Write

Create a UPI QR code that customers scan to pay.
Returns the QR code with id, image_url, usage, fixed_amount and status.
This feature must be enabled on your account. Single-use codes need fixed_amount true.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `type` (`string`, required): QR code type. Only upi_qr is supported. One of: `upi_qr`.
- `usage` (`string`, required): single_use accepts one payment then closes. multiple_use (default) accepts many payments. One of: `single_use`, `multiple_use`.
- `close_by` (`integer`, optional): Unix timestamp at which a single-use QR code closes automatically, 2 minutes to 2 hours from now. Example: 1893456000.
- `customer_id` (`string`, optional): ID of the customer the QR code is for. Example: cust_HKsR5se84c5LTO.
- `description` (`string`, optional): Short description of the QR code. Example: Front desk collections.
- `fixed_amount` (`boolean`, optional): true accepts only payment_amount; false (default) accepts any amount. Must be true for single_use.
- `name` (`string`, optional): Label to identify the QR code. Example: Store Front Display.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.
- `payment_amount` (`integer`, optional): The exact amount in the smallest currency unit. Required when fixed_amount is true. Example: 50000 for Rs 500.00.

Example input: `{"type":"upi_qr","usage":"single_use"}`

### `razorpay_create_refund`

Create Refund · Write

Refund all or part of a captured payment.
Returns the refund with id, amount, status, speed_requested and speed_processed.
Use this to return money to the customer. Omit amount for a full refund. Set speed to optimum for an instant refund when available.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `payment_id` (`string`, required): ID of the captured payment to refund. Example: pay_29QQoUBi66xm2f.
- `amount` (`integer`, optional): Amount to refund in the smallest currency unit. Required for a partial refund. Leave empty to refund the full payment. Example: 50000 for Rs 500.00.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.
- `receipt` (`string`, optional): Your own unique reference for this refund. Example: Receipt No. 31.
- `speed` (`string`, optional): Refund speed. normal (default) takes 5-7 working days. optimum refunds instantly when possible and otherwise falls back to normal. One of: `normal`, `optimum`.

Example input: `{"payment_id":"<payment_id>"}`

### `razorpay_create_subscription`

Create Subscription · Write

Create a subscription for a plan and get a link where the customer authorizes it.
Returns the subscription with id, status, short_url, plan_id and charge counts.
Create the plan first with create_plan. Share short_url so the customer can pay the first charge.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `plan_id` (`string`, required): ID of the plan to subscribe to. Example: plan_00000000000001.
- `total_count` (`integer`, required): Number of billing cycles to charge. A one-year plan billed every two months has 6.
- `addons` (`array`, optional): Upfront charges collected with the first payment. Each entry has an item with name, amount in the smallest currency unit and currency. Example: [{"item": {"name": "Setup fee", "amount": 30000, "currency": "INR"}}].
- `customer_notify` (`boolean`, optional): true (default) lets Razorpay notify the customer; false means you do.
- `expire_by` (`integer`, optional): Unix timestamp until which the customer can authorize. Example: 1893456000.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.
- `offer_id` (`string`, optional): ID of a Dashboard offer to apply. Example: offer_JHD834hjbxzhd38d.
- `quantity` (`integer`, optional): Number of units charged per invoice. Defaults to 1.
- `start_at` (`integer`, optional): Unix timestamp when the subscription starts. If empty, it starts right after the authorization payment. Example: 1893456000.

Example input: `{"plan_id":"<plan_id>","total_count":1}`

### `razorpay_create_subscription_addon`

Create Subscription Add-on · Write

Add a one-time charge to the next invoice of a subscription.
Returns the add-on with id, item, quantity and subscription_id.
Add-ons work only on subscriptions authorized with a card, not UPI.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `item` (`object`, required): The charge to add: name, amount in the smallest currency unit, currency and an optional description. Example: {"name": "Extra storage", "amount": 30000, "currency": "INR"}.
- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.
- `quantity` (`integer`, optional): Number of units to charge. Defaults to 1. Example: 2.

Example input: `{"item":{"name":"Extra storage","amount":30000,"currency":"INR"},"subscription_id":"<subscription_id>"}`

### `razorpay_create_transfer_from_payment`

Create Transfer From Payment · Write

Split a captured payment by transferring part of it to one or more linked accounts.
Returns the created transfers with id, recipient, amount, status and on_hold.
Requires Route to be enabled. Use list_payment_transfers to see existing transfers.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `payment_id` (`string`, required): ID of the captured payment to split. Example: pay_E9up5H3Zd8hMSP.
- `transfers` (`array`, required): Transfers to create. Each has account (linked account ID), amount in the smallest currency unit and currency (INR only), with optional notes, linked_account_notes, on_hold and on_hold_until. Example: [{"account": "acc_CPRsN1LkFccllA", "amount": 10000, "currency": "INR"}].

Example input: `{"payment_id":"<payment_id>","transfers":[{"account":"acc_CPRsN1LkFccllA","amount":10000,"currency":"INR"}]}`

### `razorpay_create_virtual_account`

Create Virtual Account · Write

Create a Smart Collect customer identifier: a virtual bank account or UPI ID that receives payments.
Returns the virtual account with id, status and receivers (account number, IFSC, VPA address).
This feature must be enabled on your account.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `receivers` (`object`, required): Which receivers to create. Set types to a list of bank_account and/or vpa, with optional vpa.descriptor or bank_account.descriptor labels. Example: {"types": ["bank_account", "vpa"]}.
- `close_by` (`integer`, optional): Unix timestamp at which the virtual account closes automatically. Example: 1893456000.
- `customer_id` (`string`, optional): ID of the customer to tag this virtual account to. Example: cust_HKsR5se84c5LTO.
- `description` (`string`, optional): Short description of the virtual account. Example: Collections for Gaurav Kumar.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.

Example input: `{"receivers":{"types":["bank_account","vpa"]}}`

### `razorpay_issue_invoice`

Issue Invoice · Write

Issue a draft invoice so it is sent to the customer and can be paid.
Returns the invoice with status issued.
Use this on invoices created with draft set to 1.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): ID of the draft invoice. Example: inv_DAweOiQ7amIUVd.

Example input: `{"invoice_id":"<invoice_id>"}`

### `razorpay_pause_subscription`

Pause Subscription · Write

Pause an active subscription so no further charges are made.
Returns the subscription with status paused.
Use resume_subscription to start charging again.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.
- `pause_at` (`string`, optional): Use now to pause immediately. One of: `now`.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_resume_subscription`

Resume Subscription · Write

Resume a paused subscription.
Returns the subscription with status active.
Use this only on subscriptions paused with pause_subscription.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `subscription_id` (`string`, required): ID of the paused subscription. Example: sub_00000000000001.
- `resume_at` (`string`, optional): Use now to resume immediately. One of: `now`.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_reverse_transfer`

Reverse Transfer · Write

Pull money back from a linked account for a transfer, fully or in part.
Returns the reversal with id, amount and transfer_id.
Omit amount to reverse the whole transfer.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `transfer_id` (`string`, required): ID of the transfer to reverse. Example: trf_E9uQZ1rwK8gWfu.
- `amount` (`integer`, optional): Amount to reverse in the smallest currency unit. Leave empty to reverse the full transfer amount.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.

Example input: `{"transfer_id":"<transfer_id>"}`

### `razorpay_send_invoice_notification`

Resend Invoice Notification · Write

Send or resend the invoice link to the customer by SMS or email.
Returns a success flag.
Use this to remind a customer about an issued invoice.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): ID of the issued invoice. Example: inv_DAweOiQ7amIUVd.
- `medium` (`string`, required): Channel used to resend the link. Allowed values: sms, email. One of: `sms`, `email`.

Example input: `{"invoice_id":"<invoice_id>","medium":"sms"}`

### `razorpay_send_payment_link_notification`

Resend Payment Link · Write

Send or resend a payment link to the customer by SMS or email.
Returns a success flag.
Use this to remind a customer who has not paid yet.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `medium` (`string`, required): Channel used to resend the link. Allowed values: sms, email. One of: `sms`, `email`.
- `payment_link_id` (`string`, required): ID of the payment link. Example: plink_FL5HCrWEO112OW.

Example input: `{"medium":"sms","payment_link_id":"<payment_link_id>"}`

### `razorpay_update_customer`

Update Customer · Write

Update the name, email or phone number of an existing customer.
Returns the updated customer.
Use create_customer for a new customer.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`string`, required): ID of the customer. Example: cust_1Aa00000000001.
- `contact` (`string`, optional): New phone number with country code, up to 15 characters. Example: +919876543210.
- `email` (`string`, optional): New email address, up to 64 characters. Example: gaurav.kumar@example.com.
- `name` (`string`, optional): New customer name, 3 to 50 characters. Example: Gaurav Kumar.

Example input: `{"customer_id":"<customer_id>"}`

### `razorpay_update_invoice`

Update Invoice · Write

Update a draft invoice before it is issued.
Returns the updated invoice.
Only draft invoices can be edited. Use create_invoice for a new invoice.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`string`, required): ID of the invoice. Example: inv_DAweOiQ7amIUVd.
- `currency` (`string`, optional): ISO 4217 currency of the invoice. Example: INR.
- `customer` (`object`, optional): Customer details to bill, used when you do not pass customer_id. Include name, plus optional email, contact, billing_address and shipping_address (each address has line1, line2, city, zipcode, state, country). Example: {"name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", "contact": "+919876543210"}.
- `customer_id` (`string`, optional): ID of an existing customer to bill instead. Example: cust_1Aa00000000001.
- `description` (`string`, optional): New description shown on the invoice. Example: Monthly retainer.
- `email_notify` (`boolean`, optional): true lets Razorpay send the email notification; false means you handle it.
- `expire_by` (`integer`, optional): New expiry as a Unix timestamp. Example: 1893456000.
- `line_items` (`array`, optional): Lines billed on the invoice, up to 50. Each line either references an existing item with item_id, or gives a name and amount in the smallest currency unit, with optional description, currency and quantity. Example: [{"name": "Consulting", "amount": 30000, "currency": "INR", "quantity": 2}].
- `partial_payment` (`boolean`, optional): true lets the customer pay in parts; false requires full payment.
- `sms_notify` (`boolean`, optional): true lets Razorpay send the SMS notification; false means you handle it.

Example input: `{"invoice_id":"<invoice_id>"}`

### `razorpay_update_item`

Update Item · Write

Update the name, description, price, currency or active status of an item.
Returns the updated item.
Set active to false to retire an item without deleting it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): ID of the item. Example: item_7Oxp8NPBEuBAFH.
- `active` (`boolean`, optional): Set true to activate the item or false to deactivate it.
- `amount` (`integer`, optional): New price in the smallest currency unit. Example: 79900.
- `currency` (`string`, optional): New three-letter ISO 4217 currency code. Example: INR.
- `description` (`string`, optional): New item description. Example: Yearly subscription fee.
- `name` (`string`, optional): New item name. Example: Annual Plan.

Example input: `{"item_id":"<item_id>"}`

### `razorpay_update_order`

Update Order Notes · Write

Replace the notes on an existing order.
Returns the updated order.
Use this only to change notes; amount and currency cannot be changed after creation.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `notes` (`object`, required): New key-value notes for the order, up to 15 pairs with values up to 256 characters each. Example: {"key1": "value3"}.
- `order_id` (`string`, required): ID of the order. Example: order_DaaS6LOUAASb7Y.

Example input: `{"notes":{"key1":"value3"},"order_id":"<order_id>"}`

### `razorpay_update_payment`

Update Payment Notes · Write

Replace the notes on an existing payment.
Returns the updated payment.
Use this to tag a payment with your own reference data; no other field can be changed.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `notes` (`object`, required): New key-value notes for the payment. Example: {"reference": "INV-42"}.
- `payment_id` (`string`, required): ID of the payment. Example: pay_KbCVlLqUbb3VhA.

Example input: `{"notes":{"reference":"INV-42"},"payment_id":"<payment_id>"}`

### `razorpay_update_payment_link`

Update Payment Link · Write

Update the partial-payment setting, reference ID, expiry or notes of a payment link.
Returns the updated link.
Only links that are not yet paid or cancelled can be changed.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `payment_link_id` (`string`, required): ID of the payment link. Example: plink_FL5HCrWEO112OW.
- `accept_partial` (`boolean`, optional): true lets customers pay in parts; false requires the full amount. Not allowed for UPI links.
- `expire_by` (`integer`, optional): New expiry as a Unix timestamp. Example: 1893456000.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.
- `reference_id` (`string`, optional): New unique reference for the link. Example: ORD-1002.

Example input: `{"payment_link_id":"<payment_link_id>"}`

### `razorpay_update_refund`

Update Refund Notes · Write

Replace the notes on an existing refund.
Returns the updated refund.
Use this only to change notes; amount and speed cannot be changed.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `notes` (`object`, required): New key-value notes for the refund. Example: {"reason": "damaged item"}.
- `refund_id` (`string`, required): ID of the refund. Example: rfnd_DfjjhJC6eDvUAi.

Example input: `{"notes":{"reason":"damaged item"},"refund_id":"<refund_id>"}`

### `razorpay_update_subscription`

Update Subscription · Write

Change the plan, quantity, offer or schedule of an active subscription.
Returns the updated subscription.
Set schedule_change_at to cycle_end to apply the change at the end of the current cycle.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `subscription_id` (`string`, required): ID of the subscription. Example: sub_00000000000001.
- `customer_notify` (`boolean`, optional): true (default) lets Razorpay notify the customer; false means you do.
- `offer_id` (`string`, optional): ID of a Dashboard offer to link. Example: offer_JHD834hjbxzhd38d.
- `plan_id` (`string`, optional): ID of the new plan. Example: plan_00000000000002.
- `quantity` (`integer`, optional): New number of units per invoice. Example: 5.
- `remaining_count` (`integer`, optional): Overrides the number of billing cycles still to charge. Example: 5.
- `schedule_change_at` (`string`, optional): When to apply the change: now (default) or cycle_end. One of: `now`, `cycle_end`.
- `start_at` (`integer`, optional): New start time as a Unix timestamp. Example: 1893456000.

Example input: `{"subscription_id":"<subscription_id>"}`

### `razorpay_update_transfer_settlement_hold`

Update Transfer Settlement Hold · Write

Put a transfer's settlement on hold or release it.
Returns the updated transfer with on_hold and on_hold_until.
The linked account's settlement schedule still applies after release.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `on_hold` (`boolean`, required): true puts the settlement on hold; false releases it.
- `transfer_id` (`string`, required): ID of the transfer. Example: trf_E9uQZ1rwK8gWfu.
- `on_hold_until` (`integer`, optional): Unix timestamp until which the hold lasts. Leave empty to hold indefinitely. Example: 1893456000.

Example input: `{"on_hold":true,"transfer_id":"<transfer_id>"}`

### `razorpay_update_virtual_account`

Update Virtual Account · Write

Change the auto-close time, description or notes of a virtual account.
Returns the updated virtual account.
close_by must be at least 15 minutes from now.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `virtual_account_id` (`string`, required): ID of the virtual account. Example: va_Di5gbNptcWV8fQ.
- `close_by` (`integer`, optional): New auto-close time as a Unix timestamp, at least 15 minutes from now and at most 2147483647.
- `description` (`string`, optional): New description. Example: Collections for Gaurav Kumar.
- `notes` (`object`, optional): Key-value pairs for your own reference, up to 15 pairs with values up to 256 characters each. Example: {"order_ref": "A-1001"}.

Example input: `{"virtual_account_id":"<virtual_account_id>"}`

### `razorpay_delete_invoice`

Delete Invoice · Destructive

Permanently delete a draft invoice.
Returns an empty object on success.
Only drafts can be deleted. Use cancel_invoice for issued invoices.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`string`, required): ID of the draft invoice to delete. Example: inv_DAweOiQ7amIUVd.

Example input: `{"invoice_id":"<invoice_id>"}`

### `razorpay_delete_item`

Delete Item · Destructive

Permanently delete an item.
Returns an empty object on success.
Use update_item with active false instead if you only want to retire the item.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): ID of the item to delete. Example: item_7Oxp8NPBEuBAFH.

Example input: `{"item_id":"<item_id>"}`

### `razorpay_delete_subscription_addon`

Delete Add-on · Destructive

Delete a subscription add-on that has not been invoiced yet.
Returns an empty object on success.
An add-on already linked to an invoice cannot be deleted.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `addon_id` (`string`, required): ID of the add-on to delete. Example: ao_00000000000001.

Example input: `{"addon_id":"<addon_id>"}`

## Related

Other Accounting & Finance connectors ([all 37](/agentkit/connectors/?category=accounting-finance)):

- [QuickBooks](/agentkit/connectors/quickbooks/): Scalekit connector, OAuth, 117 tools
- [Xero](/agentkit/connectors/xero/): Scalekit connector, OAuth, 94 tools
- [Stripe](/agentkit/connectors/stripe/): Scalekit connector, Access token, 178 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
