---
title: "Modify settlement hold on a transfer"
method: PATCH
path: "/transfers/{id}"
tags: ["Transfers"]
---

# Modify settlement hold on a transfer

`PATCH /transfers/{id}`

Put a transfer's settlement on hold or release an existing hold. Use on_hold=true to hold settlement, on_hold=false to release. on_hold_until sets a future timestamp for automatic hold release.

## Path parameters

- `id` string, required

## Request body

- object
  - `on_hold` boolean — true to hold settlement; false to release.
  - `on_hold_until` integer — Unix timestamp for automatic hold release. null = hold indefinitely until manually released.

## Response `200`

Transfer settlement hold updated.

- Transfer — A fund transfer from a merchant or captured payment to a Linked Account (Route). Minimum amount is ₹100 (10000 paise). INR only. Prefix: trf_
  - `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/razorpay/apis/razorpay-api.md) · [All operations](https://skmtc.net/razorpay/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/razorpay/razorpay-api/revisions/824ca9e6faef/schema)
