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 Payment 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.merchantTransIDthat you provided when calling thePOST Paymentinterface. You need to add this parameter to the URL of thePOST Refundrequest so that EVO Payment 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.merchantTransIDfrom thePOST Captureinterface in thePOST Refundrequest 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.statusfield in the EVO Payment response. If the value isSuccess, the refund was successful; otherwise, you need to checkresult.codeandresult.messageto determine the reason for the transaction failure.If you do not receive a response message from EVO Payment, you need to call
GET Refundto query the transaction result. Upon receiving the query response, you also need to review the transaction result using therefund.statusfield as in step 2. If the transaction failed, refer torefund.failureCodeandrefund.failureReasonfor details on the failure.If you included a
webhookin yourPOST Refundrequest, you can also obtain the transaction result through asynchronous notification. Again, assess the transaction result using therefund.statusfield in the same manner as in step 2.

