---
title: "Fetch payments for a Virtual Account"
method: GET
path: "/virtual_accounts/{id}/payments"
tags: ["Virtual Accounts"]
---

# Fetch payments for a Virtual Account

`GET /virtual_accounts/{id}/payments`

Retrieve all payments received by a virtual account. Returns Payment objects.

## Path parameters

- `id` string, required

## Response `200`

List of payments for the virtual account.

- object
  - `entity` string
  - `count` integer
  - `items` Payment[]
    - `id` string — Unique payment identifier. Prefix: pay_
    - `entity` 'payment'
    - `amount` integer — Payment amount in paise.
    - `currency` string
    - `status` 'created' | 'authorized' | 'captured' | 'refunded' | 'failed' — created: initiated. authorized: bank approved, not yet captured. captured: funds collected. refunded: fully refunded. failed: transaction failed.
    - `order_id` string — Associated order ID (order_*).
    - `invoice_id` string
    - `international` boolean
    - `method` 'card' | 'netbanking' | 'wallet' | 'emi' | 'upi'
    - `amount_refunded` integer — Total refunded amount in paise.
    - `refund_status` 'null' | 'partial' | 'full'
    - `captured` boolean
    - `description` string
    - `card_id` string
    - `card` CardDetails
      - `id` string — Card token identifier (card_*).
      - `entity` string
      - `name` string — Cardholder name.
      - `last4` string — Last 4 digits of the card number.
      - `network` string — Card network. Examples: Visa, MasterCard, RuPay, Amex.
      - `type` string — Card type: credit or debit.
      - `issuer` string — 4-character code of the issuing bank.
      - `emi` boolean — Whether EMI is available on this card.
      - `sub_type` string — Card sub-type (e.g. consumer, corporate).
    - `bank` string — Bank code for netbanking. Example: HDFC.
    - `wallet` string — Wallet name. Examples: paytm, mobikwik.
    - `vpa` string
    - `upi` UpiDetails
      - `payer_account_type` string
      - `vpa` string — Customer UPI VPA (Virtual Payment Address). Example: user@upi.
      - `flow` string — UPI flow used: collect, intent, or in_app.
    - `email` string
    - `contact` string
    - `customer_id` string
    - `token_id` string
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `fee` integer — Razorpay fee charged (paise).
    - `tax` integer — GST on the fee (paise).
    - `error_code` string
    - `error_description` string
    - `error_source` string
    - `error_step` string
    - `error_reason` string
    - `acquirer_data` AcquirerData
      - `rrn` string — Bank RRN (Retrieval Reference Number).
      - `authentication_reference_number` string
      - `bank_transaction_id` string
      - `transaction_id` string
    - `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/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)
