---
title: "Refund a captured payment"
method: POST
path: "/refund"
tags: ["Modifications"]
---

# Refund a captured payment

`POST /refund`

Refunds a payment that has previously been captured, returning a unique reference for this request. Refunding can be done on the full captured amount or a partial amount. Multiple (partial) refunds will be accepted as long as their sum doesn't exceed the captured amount. Payments which have been authorised, but not captured, cannot be refunded, use the /cancel method instead.

Some payment methods/gateways do not support partial/multiple refunds.
A margin above the captured limit can be configured to cover shipping/handling costs.

For more information, refer to [Refund](https://docs.adyen.com/online-payments/classic-integrations/modify-payments/refund).

> This endpoint is part of our [classic API integration](https://docs.adyen.com/online-payments/classic-integrations/api-integration-ecommerce). If using a [newer integration](https://docs.adyen.com/online-payments), use the [`/payments/{paymentPspReference}/refunds`](https://docs.adyen.com/api-explorer/#/CheckoutService/payments/{paymentPspReference}/refunds) endpoint under Checkout API instead.

## Request body

- RefundRequest
  - `additionalData` object — This field contains additional data, which may be required for a particular modification request. The additionalData object consists of entries, each of which includes the key and value.
  - `merchantAccount` string, required — The merchant account that is used to process the payment.
  - `modificationAmount` Amount, required
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes).
    - `value` integer, required — The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `originalReference` string, required — The original pspReference of the payment to modify. This reference is returned in: * authorisation response * authorisation notification
  - `reference` string — Your reference for the payment modification. This reference is visible in Customer Area and in reports. Maximum length: 80 characters.
  - `tenderReference` string — The transaction reference provided by the PED. For point-of-sale integrations only.
  - `uniqueTerminalId` string — Unique terminal ID for the PED that originally processed the request. For point-of-sale integrations only.

## Response `200`

OK - the request has succeeded.

- ModificationResult
  - `additionalData` object — This field contains additional data, which may be returned in a particular modification response.
  - `pspReference` string, required — Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request.
  - `response` '[capture-received]' | '[cancel-received]' | '[refund-received]' | '[cancelOrRefund-received]' | '[adjustAuthorisation-received]' | '[donation-received]' | '[technical-cancel-received]' | '[voidPendingRefund-received]' | 'Authorised', required — Indicates if the modification request has been received for processing.

## Other responses

- `400` — Bad Request - a problem reading or understanding the request.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

## Changes

- **2024-10-21** (v25) `27588197cceb` — 1 warning
  - added the new `Authorised` enum value to the `response` response property for the response status `200`
- **2023-02-24** (v25) `6522ce018f70` — 8 breaking
  - the request's body type changed from no type to `object`
  - the `modificationAmount` request property type changed from no type to `object`
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `object` for status `400`
  - …4 more
- **2022-12-05** (v25) `da6633eb75e1` — 8 breaking, 3 info
  - the request's body type changed from `object` to no type
  - the `modificationAmount` request property type changed from `object` to no type
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `object` to no type for status `400`
  - …7 more

[Change history](https://skmtc.dev/adyen/apis/paymentservice/changes/refund/post.md)

---

[API](https://skmtc.dev/adyen/apis/paymentservice.md) · [All operations](https://skmtc.dev/adyen/apis/paymentservice/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adyen/paymentservice/revisions/bcb66073cb4d/schema)
