---
title: "Cancel an in-person refund"
method: POST
path: "/voidPendingRefund"
tags: ["Modifications"]
---

# Cancel an in-person refund

`POST /voidPendingRefund`

This endpoint allows you to cancel an unreferenced refund request before it has been completed.

In your call, you can refer to the original refund request either by using the `tenderReference`, or the `pspReference`. We recommend implementing based on the `tenderReference`, as this is generated for both offline and online transactions.

For more information, refer to [Cancel an unreferenced refund](https://docs.adyen.com/point-of-sale/basic-tapi-integration/refund-payment/cancel-unreferenced).

## Request body

- VoidPendingRefundRequest
  - `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
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `mpiData` ThreeDSecureData
    - `authenticationResponse` 'Y' | 'N' | 'U' | 'A' — In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, omit this parameter.
    - `cavv` string, byte — The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).
    - `cavvAlgorithm` string — The CAVV algorithm used. Include this only for 3D Secure 1.
    - `challengeCancel` '01' | '02' | '03' | '04' | '05' | '06' | '07' — Indicator informing the Access Control Server (ACS) and the Directory Server (DS) that the authentication has been cancelled. For possible values, refer to [3D Secure API reference](https://docs.adyen.com/online-payments/3d-secure/api-reference#mpidata).
    - `directoryResponse` 'A' | 'C' | 'D' | 'I' | 'N' | 'R' | 'U' | 'Y' — In 3D Secure 2, this is the `transStatus` from the `ARes`.
    - `dsTransID` string — Supported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.
    - `eci` string — The electronic commerce indicator.
    - `riskScore` string — Risk score calculated by Directory Server (DS). Required for Cartes Bancaires integrations.
    - `threeDSVersion` string — The version of the 3D Secure protocol.
    - `tokenAuthenticationVerificationValue` string, byte — Network token authentication verification value (TAVV). The network token cryptogram.
    - `transStatusReason` string — Provides information on why the `transStatus` field has the specified value. For possible values, refer to [our docs](https://docs.adyen.com/online-payments/3d-secure/api-reference#possible-transstatusreason-values).
    - `xid` string, byte — Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).
  - `originalMerchantReference` string — The original merchant reference to cancel.
  - `originalReference` string — The original pspReference of the payment to modify. This reference is returned in: * authorisation response * authorisation notification
  - `platformChargebackLogic` PlatformChargebackLogic
    - `behavior` 'deductAccordingToSplitRatio' | 'deductFromLiableAccount' | 'deductFromOneBalanceAccount' — The method of handling the chargeback. Possible values: **deductFromLiableAccount**, **deductFromOneBalanceAccount**, **deductAccordingToSplitRatio**.
    - `costAllocationAccount` string — The unique identifier of the balance account to which the chargeback fees are booked. By default, the chargeback fees are booked to your liable balance account.
    - `targetAccount` string — The unique identifier of the balance account against which the disputed amount is booked. Required if `behavior` is **deductFromOneBalanceAccount**.
  - `reference` string — Your reference for the payment modification. This reference is visible in Customer Area and in reports. Maximum length: 80 characters.
  - `splits` Split[] — An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms. For more information, see how to split payments for [platforms](https://docs.adyen.com/platforms/automatic-split-configuration/).
    - `account` string — The unique identifier of the account to which the split amount is booked. Required if `type` is **MarketPlace** or **BalanceAccount**. * [Classic Platforms integration](https://docs.adyen.com/classic-platforms): The [`accountCode`](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccount#request-accountCode) of the account to which the split amount is booked. * [Balance Platform](https://docs.adyen.com/adyen-for-platforms-model): The [`balanceAccountId`](https://docs.adyen.com/api-explorer/balanceplatform/latest/get/balanceAccounts/_id_#path-id) of the account to which the split amount is booked.
    - `amount` SplitAmount
      - `currency` string — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). By default, this is the original payment currency.
      - `value` integer, required — The value of the split amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes).
    - `description` string — Your description for the split item.
    - `reference` string — Your unique reference for the part of the payment booked to the specified `account`. This is required if `type` is **MarketPlace** ([Classic Platforms integration](https://docs.adyen.com/classic-platforms)) or **BalanceAccount** ([Balance Platform](https://docs.adyen.com/adyen-for-platforms-model)). For the other types, we also recommend providing a **unique** reference so you can reconcile the split and the associated payment in the transaction overview and in the reports.
    - `type` 'AcquiringFees' | 'AdyenCommission' | 'AdyenFees' | 'AdyenMarkup' | 'BalanceAccount' | 'Commission' | 'Default' | 'Interchange' | 'MarketPlace' | 'PaymentFee' | 'Remainder' | 'SchemeFee' | 'Surcharge' | 'Tip' | 'TopUp' | 'VAT', required — The part of the payment you want to book to the specified `account`. Possible values for the [Balance Platform](https://docs.adyen.com/adyen-for-platforms-model): * **BalanceAccount**: Books part of the payment (specified in `amount`) to the specified `account`. * Transaction fees types that you can book to the specified `account`: * **AcquiringFees**: The aggregated amount of the interchange and scheme fees. * **PaymentFee**: The aggregated amount of all transaction fees. * **AdyenFees**: The aggregated amount of Adyen's commission and markup fees. * **AdyenCommission**: The transaction fees due to Adyen under [blended rates](https://www.adyen.com/knowledge-hub/interchange-fees-explained). * **AdyenMarkup**: The transaction fees due to Adyen under [Interchange ++ pricing](https://www.adyen.com/knowledge-hub/interchange-fees-explained). * **Interchange**: The fees paid to the issuer for each payment made with the card network. * **SchemeFee**: The fees paid to the card scheme for using their network. * **Commission**: Your platform's commission on the payment (specified in `amount`), booked to your liable balance account. * **Remainder**: The amount left over after a currency conversion, booked to the specified `account`. * **Surcharge**: The payment acceptance fee imposed by the card scheme or debit network provider, paid by your user's customer. * **TopUp**: Allows you and your users to top up balance accounts using direct debit, card payments, or other payment methods. * **VAT**: The value-added tax charged on the payment, booked to your platforms liable balance account. * **Default**: In very specific use cases, allows you to book the specified `amount` to the specified `account`. For more information, contact Adyen support. Possible values for the [Classic Platforms integration](https://docs.adyen.com/classic-platforms): **Commission**, **Default**, **MarketPlace**, **PaymentFee**, **VAT**.
  - `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' | 'Refused' | 'Error', 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

- **2026-02-17** (v68) `a50b3c514a2e` — 2 warning
  - added the new `Error` enum value to the `response` response property for the response status `200`
  - added the new `Refused` enum value to the `response` response property for the response status `200`
- **2025-01-29** (v68) `d6bfb827e6fe` — 1 info
  - added the new `TopUp` enum value to the request property `splits/items/type`
- **2024-10-21** (v68) `fd8bf53fedad` — 1 warning
  - added the new `Authorised` enum value to the `response` response property for the response status `200`
- **2024-03-05** (v68) `57dba03088e8` — 6 info
  - added the new `AcquiringFees` enum value to the request property `splits/items/type`
  - added the new `AdyenCommission` enum value to the request property `splits/items/type`
  - added the new `AdyenFees` enum value to the request property `splits/items/type`
  - added the new `AdyenMarkup` enum value to the request property `splits/items/type`
  - …2 more
- **2023-10-25** (v68) `3acce1fbe240` — 1 info
  - the request property `splits/items/amount` became optional

[Full history](https://skmtc.dev/adyen/apis/paymentservice/changes/voidPendingRefund/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/da43ff6bccdf/schema)
