If you're making unreferenced refunds, you may want to perform some additional checks to ensure that the cardholder is eligible for the refund. In this case, you can set a delay for the refund request to be completed.
This delay will only apply to unreferenced refunds. It is not possible to cancel a referenced refund.
Once this refund delay has been set up for your account, you can make a /voidPendingRefund
call to cancel a refund request before it has been completed.
In your call to the /voidPendingRefund
endpoint, you can refer to the original refund request either by using the tenderReference
, or the pspReference
. We recommend implementing based on the tenderReference
, because this is generated for both offline and online transactions.
If you have not set up delayed POS refund requests, or if the configured refund delay has expired, it is not possible to cancel the refund anymore.
Before you begin
To set up delayed POS refund requests,
- Contact our POS Support Team to set up delayed POS refund requests.
- Set up webhook notifications. The result of the cancel request is provided asynchronously. We inform you whether this is successful with a webhook notification.
- Generate an API key. To cancel unreferenced refunds from a cash register, you need to have an API key.
If you are using cloud-based communications, you can use the existing API key that you use for Terminal API calls.
Cancel with tender reference
-
Make a POST request to the /voidPendingRefund endpoint, specifying:
-
The request header with:
Parameter Required Description content-type
application/json x-api-key
Your API key. -
The request body with:
Parameter Required Description merchantAccount
Your merchant account that was used to process the original refund request. tenderReference
The transaction reference provided by the terminal that processed the refund request. uniqueTerminalId
Unique ID of the terminal that processed the refund request.
{ "merchantAccount" : "YOUR_MERCHANT_ACCOUNT", "tenderReference" : "5Iw8001176969533005", "uniqueTerminalId" : "VX820-123456789" }
-
-
In the
/voidPendingRefund
response, note the following:pspReference
: The PSP reference associated with this/voidPendingRefund
request.
{ "pspReference":"8815450600449645", "response":"[voidPendingRefund-received]" }
Cancel with PSP reference
Alternatively, if you have the pspReference
of the original refund request, you can specify this in your call to the /voidPendingRefund
endpoint:
-
Make a POST request to the /voidPendingRefund endpoint, specifying:
-
The request header with:
Parameter Required Description content-type
application/json x-api-key
Your API key. -
The request body with:
Parameter Required Description merchantAccount
Your merchant account that was used to process the original refund request. originalReference
The pspReference
of the original refund request.
{ "originalReference" : "9914748988390044", "merchantAccount" : "YOUR_MERCHANT_ACCOUNT", }
-
-
In the
/voidPendingRefund
response, note the following:pspReference
: The PSP reference associated with this/voidPendingRefund
request.
{ "pspReference":"8815450600449645", "response":"[voidPendingRefund-received]" }
Notifications
When we have processed your request to cancel the refund, we send you a notification webhook with:
eventCode
: VOID_PENDING_REFUND.success
: Indicates whether the request to cancel the refund was successful.
{
"live":"false",
"notificationItems":[
{
"NotificationRequestItem":{
"amount":{
"currency":"EUR",
"value":1100
},
"eventCode":"VOID_PENDING_REFUND",
"eventDate":"2018-11-28T18:03:50+01:00",
"merchantAccountCode":"YourMerchantAccount",
"merchantReference":"23418657",
"originalReference":"9914748988390044",
"pspReference":"8815434246295240",
"reason":"",
"success":"true"
}
}
]
}