{"title":"Cancel an unreferenced refund","category":"default","creationDate":1759145820,"content":"<p>If you are making <a href=\"\/point-of-sale\/basic-tapi-integration\/refund-payment\/unreferenced\">unreferenced refunds<\/a>, you may want to check that the cardholder is eligible for the refund. In this case, you can <a href=\"\/point-of-sale\/basic-tapi-integration\/refund-payment\/unreferenced#enable-unreferenced-refunds\">set a delay<\/a> for the refund. This gives you time to check before you make a <code>\/voidPendingRefund<\/code> request to cancel a refund before it is completed. Note that this is not a Terminal API request.<\/p>\n<p>In your request to the <code>\/voidPendingRefund<\/code> endpoint, you can refer to the original refund request using the <code>tenderReference<\/code>, or the <code>pspReference<\/code>. We recommend implementing based on the <code>tenderReference<\/code>, because this is generated for both offline and online in-person transactions.<\/p>\n<h2>Requirements<\/h2>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">Adyen in-person payments using integrated or <a href=\"\/point-of-sale\/standalone\">standalone<\/a> payment terminals, or with a <a href=\"\/point-of-sale\/ipp-mobile\/\">Mobile solution<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"\/development-resources\/api-credentials\">API credentials<\/a><\/td>\n<td style=\"text-align: left;\">An <a href=\"\/development-resources\/api-credentials#generate-api-key\">API key<\/a> to cancel unreferenced refunds from a POS app. If you are using <a href=\"\/point-of-sale\/design-your-integration\/choose-your-architecture#cloud-communications\">cloud-based communications<\/a>, you can use the existing API key that you use for Terminal API requests.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/development-resources\/webhooks\">Webhooks<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Set up <a href=\"#webhooks\">standard webhooks<\/a> to be informed about the outcome of the cancellation of a refund.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">Take into account the following limitations: <ul><li markdown=\"1\">The refund delay only applies to <a href=\"\/point-of-sale\/basic-tapi-integration\/refund-payment\/unreferenced\">unreferenced refunds<\/a>. It is not possible to cancel a <a href=\"\/point-of-sale\/basic-tapi-integration\/refund-payment\/referenced\">referenced refund<\/a>.<\/li><li markdown=\"1\">If you have not set up delayed POS refunds, or if the configured refund delay has expired, it is not possible to cancel the refund anymore.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to set up delayed POS refund requests.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"cancel-with-tender-reference\">Cancel with tender reference<\/h2>\n<ol>\n<li>\n<p>Make a POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/voidPendingRefund\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/voidPendingRefund<\/a> request, specifying:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>merchantAccount<\/code><\/td>\n<td style=\"text-align: left;\">Your merchant account that was used to process the original refund request.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>tenderReference<\/code><\/td>\n<td style=\"text-align: left;\">The transaction reference provided by the terminal that processed the refund request.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>uniqueTerminalId<\/code><\/td>\n<td style=\"text-align: left;\">Unique ID of the terminal that processed the refund request.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><code class=\"language-curl\">curl -X POST \\\n    https:\/\/pal-test.adyen.com\/pal\/servlet\/Payment\/v68\/voidPendingRefund \\\n    -H 'content-type: application\/json' \\\n    -H 'x-api-key: YOUR_API_KEY' \\\n    -d '{\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"tenderReference\":\"5Iw8001176969533005\",\"uniqueTerminalId\":\"VX820-123456789\"}'<\/code><\/pre>\n<\/li>\n<li>\n<p>In the <code>\/voidPendingRefund<\/code> response, note the following:<\/p>\n<ul>\n<li><code>pspReference<\/code>: The PSP reference for this <code>\/voidPendingRefund<\/code> request.<\/li>\n<\/ul>\n<pre><code class=\"language-json\">{\n    \"pspReference\":\"NC6HT9CRT65ZGN82\",\n    \"response\":\"[voidPendingRefund-received]\"\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<h2 id=\"cancel-with-psp-reference\">Cancel with PSP reference<\/h2>\n<p>Alternatively, if you have the <code>pspReference<\/code> of the original refund request, you can specify this in your <code>\/voidPendingRefund<\/code> request:<\/p>\n<ol>\n<li>\n<p>Make a POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/voidPendingRefund\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/voidPendingRefund<\/a> request, specifying:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>merchantAccount<\/code><\/td>\n<td style=\"text-align: left;\">Your merchant account that was used to process the original refund request.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>originalReference<\/code><\/td>\n<td style=\"text-align: left;\">The <code>pspReference<\/code> of the original refund request.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><code class=\"language-curl\">curl -X POST \\\n     https:\/\/pal-test.adyen.com\/pal\/servlet\/Payment\/v68\/voidPendingRefund \\\n     -H 'content-type: application\/json' \\\n     -H 'x-api-key: YOUR_API_KEY' \\\n     -d '{\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"originalReference\":\"9914748988390044\"}'<\/code><\/pre>\n<\/li>\n<li>\n<p>In the <code>\/voidPendingRefund<\/code> response, note the following:<\/p>\n<ul>\n<li><code>pspReference<\/code>: The PSP reference for this <code>\/voidPendingRefund<\/code> request.<\/li>\n<\/ul>\n<pre><code class=\"language-json\">{\n    \"pspReference\":\"KHQC5N7G84BLNK43\",\n    \"response\":\"[voidPendingRefund-received]\"\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<h2>Webhooks<\/h2>\n<p>After we process your request to cancel the refund, we send you a <a href=\"\/development-resources\/webhooks\">webhook<\/a> with:<\/p>\n<ul>\n<li><code>eventCode<\/code>: <span translate=\"no\"><strong>VOID_PENDING_REFUND<\/strong><\/span>.<\/li>\n<li><code>success<\/code>: Indicates if the request to cancel the refund was successful.<\/li>\n<\/ul>\n<pre><code class=\"language-json\">{\n   \"live\":\"false\",\n   \"notificationItems\":[\n      {\n         \"NotificationRequestItem\":{\n            \"amount\":{\n               \"currency\":\"EUR\",\n               \"value\":1100\n            },\n            \"eventCode\":\"VOID_PENDING_REFUND\",\n            \"eventDate\":\"2022-11-28T18:03:50+01:00\",\n            \"merchantAccountCode\":\"ADYEN_MERCHANT_ACCOUNT\",\n            \"merchantReference\":\"YOUR_REFERENCE\",\n            \"originalReference\":\"ZC4R4RBFJGXXGN82\",\n            \"pspReference\":\"KHQC5N7G84BLNK43\",\n            \"reason\":\"\",\n            \"success\":\"true\"\n         }\n      }\n   ]\n}<\/code><\/pre>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/basic-tapi-integration\/refund-payment\/unreferenced\"\n                        target=\"_self\"\n                        >\n                    Unreferenced refunds\n                <\/a><\/li><li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/voidPendingRefund\"\n                        target=\"_blank\"\n                         class=\"external\">\n                    \/voidPendingRefund\n                <\/a><\/li><li><a href=\"\/development-resources\/webhooks\"\n                        target=\"_self\"\n                        >\n                    Webhooks\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration\/refund-payment\/cancel-unreferenced","articleFields":{"description":"Learn how to cancel an unreferenced refund request before it is completed.","id":"31493921","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"29-09-2025 13:37","feedback_component":true,"filters_component":false,"decision_tree":"[]","page_id":"302a8d11-ad00-4940-89f0-bdb607ce9f63"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration\/refund-payment\/cancel-unreferenced","title":"Cancel an unreferenced refund","content":"If you are making unreferenced refunds, you may want to check that the cardholder is eligible for the refund. In this case, you can set a delay for the refund. This gives you time to check before you make a \/voidPendingRefund request to cancel a refund before it is completed. Note that this is not a Terminal API request.\nIn your request to the \/voidPendingRefund endpoint, you can refer to the original refund request using the tenderReference, or the pspReference. We recommend implementing based on the tenderReference, because this is generated for both offline and online in-person transactions.\nRequirements\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nAdyen in-person payments using integrated or standalone payment terminals, or with a Mobile solution.\n\n\nAPI credentials\nAn API key to cancel unreferenced refunds from a POS app. If you are using cloud-based communications, you can use the existing API key that you use for Terminal API requests.\n\n\nWebhooks\nSet up standard webhooks to be informed about the outcome of the cancellation of a refund.\n\n\nLimitations\nTake into account the following limitations: The refund delay only applies to unreferenced refunds. It is not possible to cancel a referenced refund.If you have not set up delayed POS refunds, or if the configured refund delay has expired, it is not possible to cancel the refund anymore.\n\n\nSetup steps\nBefore you begin, contact our Support Team to set up delayed POS refund requests.\n\n\n\nCancel with tender reference\n\n\nMake a POST \/voidPendingRefund request, specifying:\n\n\n\nParameter\nDescription\n\n\n\n\nmerchantAccount\nYour merchant account that was used to process the original refund request.\n\n\ntenderReference\nThe transaction reference provided by the terminal that processed the refund request.\n\n\nuniqueTerminalId\nUnique ID of the terminal that processed the refund request.\n\n\n\ncurl -X POST \\\n    https:\/\/pal-test.adyen.com\/pal\/servlet\/Payment\/v68\/voidPendingRefund \\\n    -H 'content-type: application\/json' \\\n    -H 'x-api-key: YOUR_API_KEY' \\\n    -d '{\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"tenderReference\":\"5Iw8001176969533005\",\"uniqueTerminalId\":\"VX820-123456789\"}'\n\n\nIn the \/voidPendingRefund response, note the following:\n\npspReference: The PSP reference for this \/voidPendingRefund request.\n\n{\n    \"pspReference\":\"NC6HT9CRT65ZGN82\",\n    \"response\":\"[voidPendingRefund-received]\"\n}\n\n\nCancel with PSP reference\nAlternatively, if you have the pspReference of the original refund request, you can specify this in your \/voidPendingRefund request:\n\n\nMake a POST \/voidPendingRefund request, specifying:\n\n\n\nParameter\nDescription\n\n\n\n\nmerchantAccount\nYour merchant account that was used to process the original refund request.\n\n\noriginalReference\nThe pspReference of the original refund request.\n\n\n\ncurl -X POST \\\n     https:\/\/pal-test.adyen.com\/pal\/servlet\/Payment\/v68\/voidPendingRefund \\\n     -H 'content-type: application\/json' \\\n     -H 'x-api-key: YOUR_API_KEY' \\\n     -d '{\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"originalReference\":\"9914748988390044\"}'\n\n\nIn the \/voidPendingRefund response, note the following:\n\npspReference: The PSP reference for this \/voidPendingRefund request.\n\n{\n    \"pspReference\":\"KHQC5N7G84BLNK43\",\n    \"response\":\"[voidPendingRefund-received]\"\n}\n\n\nWebhooks\nAfter we process your request to cancel the refund, we send you a webhook with:\n\neventCode: VOID_PENDING_REFUND.\nsuccess: Indicates if the request to cancel the refund was successful.\n\n{\n   \"live\":\"false\",\n   \"notificationItems\":[\n      {\n         \"NotificationRequestItem\":{\n            \"amount\":{\n               \"currency\":\"EUR\",\n               \"value\":1100\n            },\n            \"eventCode\":\"VOID_PENDING_REFUND\",\n            \"eventDate\":\"2022-11-28T18:03:50+01:00\",\n            \"merchantAccountCode\":\"ADYEN_MERCHANT_ACCOUNT\",\n            \"merchantReference\":\"YOUR_REFERENCE\",\n            \"originalReference\":\"ZC4R4RBFJGXXGN82\",\n            \"pspReference\":\"KHQC5N7G84BLNK43\",\n            \"reason\":\"\",\n            \"success\":\"true\"\n         }\n      }\n   ]\n}\nSee also\n\n\n                    Unreferenced refunds\n                \n                    \/voidPendingRefund\n                \n                    Webhooks\n                \n","type":"page","locale":"en","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Implement the payment flow","lvl3":"Refund a payment","lvl4":"Cancel an unreferenced refund"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration","lvl3":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration\/refund-payment","lvl4":"\/point-of-sale\/basic-tapi-integration\/refund-payment\/cancel-unreferenced"},"levels":5,"category":"In-person payments","category_color":"green","tags":["Cancel","unreferenced","refund"]}}
