Refund
Refund
If you want to refund the order after a successful payment or capture, you need to call the POST Refund
interface.
INFO
EVO Cloud supports full refunds and multiple partial refunds, but the total refund amount cannot exceed the original payment/pre-authorization amount, and the maximum refund period is 365 days.
The main process is as follows:
When you initiate a refund, you will use the
merchantTransInfo.merchantTransID
that you provided when calling thePOST Payment
interface. You need to add this parameter to the URL of thePOST Refund
request so that EVO Cloud can locate the original payment transaction and initiate the refund.CAUTION
If you need to initiate a refund a capture transaction, you should use the
merchantTransInfo.merchantTransID
from thePOST Capture
interface in thePOST Refund
request URL.
Sample Refund Request Payload
curl 'https://hkg-online-uat.everonet.com/g2/v0/payment/acq/10130014/evo.offline.refund/T20240306135818963' \
-H 'Authorization: 52eea64676405d1b1ee60901b08c33beca76df99e1535d435094678728fc00ca' \
-H 'DateTime: 20240306140243+0800' \
-H 'SignType: SHA256' \
-H 'Content-Type: application/json' \
-H 'MsgID: M20240306140243804' \
-d '{
"merchantTransInfo": {
"merchantTransID": "T20240306140243804",
"merchantTransTime": "2024-03-06T14:02:43+08:00"
},
"paymentMethod": {
"type": "card",
"card": {
"posEntryMode":"manual",
"pinFlag":false,
"termReadability":"5",
"cardInfo": {
"cardNumber": "4761739999000213"
}
}
},
"transAmount": {
"currency": "HKD",
"value": "1.00"
}
}'
Check the
refund.status
field in the EVO Cloud response. If the value isSuccess
, the refund was successful; otherwise, you need to checkresult.code
andresult.message
to determine the reason for the transaction failure.If you do not receive a response message from EVO Cloud, you need to call
GET Refund
to query the transaction result. Upon receiving the query response, you also need to review the transaction result using therefund.status
field as in step 2. If the transaction failed, refer torefund.failureCode
andrefund.failureReason
for details on the failure.If you included a
webhook
in yourPOST Refund
request, you can also obtain the transaction result through asynchronous notification. Again, assess the transaction result using therefund.status
field in the same manner as in step 2.