---
title: "Cancel an authorisation using your reference"
method: POST
path: "/technicalCancel"
tags: ["Modifications"]
---

# Cancel an authorisation using your reference

`POST /technicalCancel`

## Request

- Base URL: `https://pal-test.adyen.com/pal/servlet/Payment/v51`
- URL: `https://pal-test.adyen.com/pal/servlet/Payment/v51/technicalCancel`
- Auth: one of:
  - HTTP basic
  - API key in header `X-API-Key`

This endpoint allows you to cancel a payment if you do not have the PSP reference of the original payment request available.

In your call, refer to the original payment by using the `reference` that you specified in your payment request.

For more information, see [Technical cancel](https://docs.adyen.com/online-payments/classic-integrations/modify-payments/cancel#technical-cancel). 

> This endpoint is [inactive](https://docs.adyen.com/online-payments/upgrade-your-integration#checkout-api-lifecycle) and is no longer supported for new integrations.
> * If you are building a new integration, use the Checkout API [`/cancels`](https://docs.adyen.com/api-explorer/Checkout/latest/post/cancels) endpoint instead.
> * If you have an existing integration using this endpoint, reach out to your Adyen contact and [migrate to the Checkout API](https://docs.adyen.com/online-payments/upgrade-your-integration/migrate-to-checkout-api).

> The Checkout API enables your [online payments](https://docs.adyen.com/online-payments) integration to accept all supported payment methods, use the latest features, and access more benefits.

## Request body

- TechnicalCancelRequest
  - `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.
    - `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.
    - `threeDSVersion` string: The version of the 3D Secure protocol.
    - `xid` string, byte: Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).
  - `originalMerchantReference` string, required: The original merchant reference to cancel.
  - `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** (v51) `384b6a469631`: 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** (v51) `bd2d73cfb99a`: 1 info
  - added the new `TopUp` enum value to the request property `splits/items/type`
- **2024-10-21** (v51) `6fbdb969f16a`: 1 warning
  - added the new `Authorised` enum value to the `response` response property for the response status `200`
- **2024-03-05** (v51) `aed9d7475d07`: 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** (v51) `71f26b946800`: 1 info
  - the request property `splits/items/amount` became optional

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

---

[API](https://skmtc.dev/adyen/apis/paymentservice.md) - [All operations](https://skmtc.dev/adyen/apis/paymentservice/llms.txt) - [OpenAPI document](https://skmtc.dev/adyen/apis/paymentservice/revisions/d04f8c1492a1?raw)
