Skip to content

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:

  1. When you initiate a refund, you will use the merchantTransInfo.merchantTransID that you provided when calling the POST Payment interface. You need to add this parameter to the URL of the POST 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 the POST Capture interface in the POST Refund request URL.

Sample Refund Request Payload
js
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"
    }
}'
  1. Check the refund.status field in the EVO Cloud response. If the value is Success, the refund was successful; otherwise, you need to check result.code and result.message to determine the reason for the transaction failure.

  2. 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 the refund.status field as in step 2. If the transaction failed, refer to refund.failureCode and refund.failureReason for details on the failure.

  3. If you included a webhook in your POST Refund request, you can also obtain the transaction result through asynchronous notification. Again, assess the transaction result using the refund.status field in the same manner as in step 2.