---
title: "Fetch a specific refund for a payment"
method: GET
path: "/payments/{payment_id}/refunds/{refund_id}"
tags: ["Refunds"]
---

# Fetch a specific refund for a payment

`GET /payments/{payment_id}/refunds/{refund_id}`

Retrieve a specific refund by its ID scoped to a particular payment.

## Path parameters

- `payment_id` string, required
- `refund_id` string, required

## Response `200`

Refund details.

- Refund
  - `id` string — Unique refund identifier. Prefix: rfnd_
  - `entity` 'refund'
  - `amount` integer — Refund amount in paise.
  - `currency` string
  - `payment_id` string — The original payment ID (pay_*).
  - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
  - `receipt` string — Your internal reference identifier.
  - `acquirer_data` object — Bank reference numbers for tracking: RRN (UPI/netbanking), ARN (cards), UTR (NEFT/RTGS).
    - `arn` string
    - `rrn` string
    - `utr` string
  - `created_at` integer
  - `batch_id` string — Set if refund was part of a batch upload.
  - `status` 'pending' | 'processed' | 'failed' — pending: being processed. processed: credited to customer. failed: refund failed.
  - `speed_requested` 'normal' | 'optimum' — normal: 5-7 business days. optimum: instant if available, falls back to normal.
  - `speed_processed` 'instant' | 'normal' — Actual processing mode used.

## 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/revisions/824ca9e6faef/schema)
