---
title: "Create transfers from a payment"
method: POST
path: "/payments/{id}/transfers"
tags: ["Transfers"]
---

# Create transfers from a payment

`POST /payments/{id}/transfers`

Split a captured payment to one or more Linked Accounts. Amount is deducted from the payment and transferred to the recipient. INR only, minimum ₹100 per transfer.

## Path parameters

- `id` string, required

## Request body

- object
  - `transfers` object[], required
    - `account` string, required — Linked Account ID (acc_*).
    - `amount` integer, required — Amount in paise. Minimum 10000.
    - `currency` 'INR', required
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `linked_account_notes` string[]
    - `on_hold` boolean
    - `on_hold_until` integer

## Response `200`

Transfers created.

- object
  - `entity` string
  - `count` integer
  - `items` Transfer[]
    - `id` string — Transfer ID. Prefix: trf_
    - `entity` 'transfer'
    - `source` string — Source entity ID (payment ID, order ID, or merchant account ID for direct transfers).
    - `recipient` string — Destination Linked Account ID (acc_*).
    - `amount` integer — Transfer amount in paise. Minimum 10000 (₹100).
    - `currency` 'INR' — Always INR for transfers.
    - `amount_reversed` integer — Total amount reversed so far in paise.
    - `fees` integer — Transfer fee charged in paise.
    - `tax` integer — GST on transfer fee in paise.
    - `transfer_status` 'created' | 'pending' | 'processed' | 'failed' | 'reversed' | 'partially_reversed' — Transfer processing status.
    - `settlement_status` 'pending' | 'on_hold' | 'settled' — Settlement status of the transferred funds in the Linked Account.
    - `on_hold` boolean — If true, settlement of this transfer is on hold.
    - `on_hold_until` integer — Unix timestamp until which settlement is on hold. null means indefinite hold.
    - `recipient_settlement_id` string — Settlement ID (setl_*) in the Linked Account once settled.
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `linked_account_notes` string[] — Keys from notes that will be visible to the Linked Account in their dashboard.
    - `created_at` integer
    - `processed_at` integer — Unix timestamp when the transfer was processed.

## Other responses

- `400` — Bad request. Invalid parameters or missing required fields.
- `401` — Authentication failed. Invalid or missing API key credentials.
- `404` — Resource not found.
- `429` — Rate limit exceeded. Implement exponential backoff with jitter before retrying.

---

[API](https://skmtc.net/curlec/apis/razorpay-api.md) · [All operations](https://skmtc.net/curlec/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/curlec/razorpay-api/versions/824ca9e6faef/schema)
