---
title: "Get payment refunds"
method: GET
path: "/v3/payments/{id}/refunds"
tags: ["Payments"]
---

# Get payment refunds

`GET /v3/payments/{id}/refunds`

## Request

- Base URL: `https://api.truelayer-sandbox.com`
- URL: `https://api.truelayer-sandbox.com/v3/payments/{id}/refunds`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://auth.truelayer.com/connect/token` scopes: `payments`
  - OAuth 2
    - Client credentials
    - Token URL: `https://auth.truelayer.com/connect/token` scopes: `payments:refund`

Returns all refunds of a payment.

## Path parameters

- `id` string, required: Unique ID for the Payment

## Response `200`

Refunds of the payment

- GetPaymentRefunds
  - `items` PaymentRefund[], required
    - union
      - PaymentRefundPending: The refund has been created against TrueLayer's API but it has not yet been authorized and sent to the payment scheme for execution.
        - `id` string, required: Unique ID for the refund
        - `amount_in_minor` integer, required: A 'cent' value representing the amount, e.g. 100 == 1GBP
        - `currency` 'GBP' | 'EUR', required
        - `reference` string, required
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
        - `status` 'pending', required
        - `created_at` string, datetime, required: The date and time the refund was created
      - PaymentRefundAuthorized: The refund has been authorized (i.e. there are enough funds) and it has been submitted to the payment scheme for execution.
        - `id` string, required: Unique ID for the refund
        - `amount_in_minor` integer, required: A 'cent' value representing the amount, e.g. 100 == 1GBP
        - `currency` 'GBP' | 'EUR', required
        - `reference` string, required
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
        - `status` 'authorized', required
        - `created_at` string, datetime, required: The date and time the refund was created
      - PaymentRefundExecuted: The refund was executed - the funds have left your merchant account.
        - `id` string, required: Unique ID for the refund
        - `amount_in_minor` integer, required: A 'cent' value representing the amount, e.g. 100 == 1GBP
        - `currency` 'GBP' | 'EUR', required
        - `reference` string, required
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
        - `status` 'executed', required
        - `created_at` string, datetime, required: The date and time the refund was created
        - `executed_at` string, datetime, required: The date and time the refund transitioned to `executed`
      - PaymentRefundFailed: The refund failed - the funds have not left your merchant account.
        - `id` string, required: Unique ID for the refund
        - `amount_in_minor` integer, required: A 'cent' value representing the amount, e.g. 100 == 1GBP
        - `currency` 'GBP' | 'EUR', required
        - `reference` string, required
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
        - `status` 'failed', required
        - `created_at` string, datetime, required: The date and time the refund was created
        - `executed_at` string, datetime: The date and time the refund transitioned to `executed`
        - `failed_at` string, datetime, required: The date and time the refund transitioned to `failed`
        - `failure_reason` string, required: The reason the outbound payment failed. Example values to expect: - `insufficient_funds` - `scheme_error` - `server_error` - `blocked` - `returned` - `account_not_valid`: the bank accounts associated with the given AIS consent are not valid. Note that this error is only relevant for `user_determined` beneficiaries. - `expired`: the user did not authorize the payout within the required timeframe. This error applies only to `user_determined` beneficiaries. - `verification_name_mismatch`: the name provided as part of a payout verification does not match the one available on the connected bank account - `verification_transaction_not_found`: the transaction details provided as part of a payout verification are not found within the associated bank account's transactions - `invalid_iban`: the beneficiary IBAN is invalid - `invalid_scan`: the beneficiary SCAN is invalid - `reversed`: the payment was reversed after settling - `unknown`: the failure could not be classified into a more specific reason Clients should handle unexpected values gracefully as a unknown failure.

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Payment ID Not Found
- `500`: Unknown Error

---

[API](https://skmtc.dev/truelayer/apis/payments-api-v3.md) - [All operations](https://skmtc.dev/truelayer/apis/payments-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/truelayer/apis/payments-api-v3/revisions/a7c585fc9b84?raw)
