---
title: "List transfers"
method: GET
path: "/transfers"
tags: ["Transfers"]
---

# List transfers

`GET /transfers`

Retrieve a paginated list of transfers. Filter by recipient_settlement_id to fetch transfers included in a specific settlement. Use expand[]=recipient_settlement to include settlement details.

## Query parameters

- `from` integer
- `to` integer
- `count` integer
- `skip` integer
- `recipient_settlement_id` string
- `expand[]` 'recipient_settlement'

## Response `200`

List of transfers.

- 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

- `401` — Authentication failed. Invalid or missing API key credentials.
- `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)
