---
title: "Fetch bank transfer details for a payment"
method: GET
path: "/payments/{id}/bank_transfer"
tags: ["Virtual Accounts"]
---

# Fetch bank transfer details for a payment

`GET /payments/{id}/bank_transfer`

Retrieve the BankTransfer entity associated with a payment received via a Virtual Account. Contains the UTR number, payer bank account details, and transfer mode.

## Path parameters

- `id` string, required

## Response `200`

Bank transfer details.

- BankTransfer — A payment received into a Virtual Account via bank transfer (NEFT/RTGS/IMPS/UPI). Created automatically when a payer sends funds to the virtual account. Prefix: bt_
  - `id` string — Bank transfer ID. Prefix: bt_
  - `entity` 'bank_transfer'
  - `payment_id` string — Razorpay payment ID generated for this bank transfer (pay_*).
  - `mode` 'NEFT' | 'RTGS' | 'IMPS' | 'UPI' — Transfer mode used by the payer.
  - `amount` integer — Amount received in paise.
  - `payer_bank_account` object — Payer's bank account details.
    - `id` string
    - `entity` 'bank_account'
    - `ifsc` string
    - `bank_name` string
    - `name` string — Account holder name.
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `account_number` string
  - `bank_reference` string — UTR (Unique Transaction Reference) number from the bank.
  - `virtual_account_id` string — Virtual account that received this transfer (va_*).
  - `virtual_account` VirtualAccount — A virtual bank account or VPA that accepts NEFT/RTGS/IMPS/UPI payments (Smart Collect). Each payment creates a BankTransfer entity. Auto-closes after 90 days of inactivity. Prefix: va_
    - `id` string — Virtual account ID. Prefix: va_
    - `name` string — Display name of the virtual account.
    - `entity` 'virtual_account'
    - `description` string — Purpose or description of the virtual account.
    - `amount_expected` integer — Expected payment amount in paise. 0 means any amount is accepted.
    - `amount_paid` integer — Total amount received so far in paise.
    - `status` 'active' | 'closed' — active = accepting payments; closed = no longer accepting payments.
    - `receivers` object[] — Payment receivers assigned to this virtual account. Can include bank_account (ba_*) and/or vpa (vpa_*) receivers.
      - `id` string — Receiver ID. Prefix: ba_ for bank account, vpa_ for VPA.
      - `entity` 'bank_account' | 'vpa'
      - `ifsc` string — IFSC code (bank accounts only).
      - `bank_name` string — Bank name (bank accounts only).
      - `name` string — Account holder name (bank accounts) or VPA address (VPAs).
      - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
      - `account_number` string — Virtual account number (bank accounts only).
      - `username` string — UPI username part of the VPA (VPAs only).
      - `handle` string — UPI handle (e.g., razorpay) (VPAs only).
      - `flow` 'upi_qr' — Flow type for VPA receivers.
    - `close_by` integer — Unix timestamp by which the account will auto-close. Maximum value: 2147483647.
    - `closed_at` integer — Unix timestamp when the account was closed.
    - `customer_id` string — Customer ID linked to this virtual account (cust_*).
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `created_at` integer

## Other responses

- `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/versions/824ca9e6faef/schema)
