# Refund

> Discover Antom's refund rules and learn how to initiate a refund for a successful transaction.

Discover Antom's refund rules and learn how to initiate a refund for a successful transaction.

# Refund rules

The following are the relevant refund rules:

-   **Commission fee**: Whether the commission fee is returned or whether there are additional charges for the refund is subject to the contract.
-   **Refund settlement rate**: When the settlement and payment currency are inconsistent, the settlement exchange rate used for refund is the Antom exchange rate on the day of the successful refund.
-   **Refund restriction**: Different payment methods have different restrictions. The following are specific situations:

-   Refund not supported
-   Partial refund not supported
-   Refunds are not supported after a certain time, starting from the time of successful payment.

For details, see [Supported payment methods](https://docs.antom.com/ac/pm/supported_pm.md).

-   **Refund return**: In extreme cases, due to the abnormal status of the buyer's bank account and other reasons, the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API is called and returns a successful refund status, but the buyer is unable to receive the funds successfully. Antom will settle the corresponding funds and notify you through the financial report settlement. You need to decide how to handle the funds.

# Refund methods

After the transaction is paid successfully, you can initiate a refund through the following two ways:

-   [Refund using the refund API](#x62q5): You can initiate a refund for a successfully paid transaction by calling the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API.
-   Refund in [Antom Dashboard](https://dashboard.alipay.com/global-payments/home): For more information about how to issue a refund and view the refund result, see [Refund transactions](https://docs.antom.com/ac/merchant_service/transactions.md#QySzf).

## Workflow

The following figure is the workflow of refund.

![Refund workflow diagram showing the end-to-end process for initiating a refund through the Antom API after a successful payment.](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2025/png/60182146-c210-4ad6-a09a-c210c332cbd0.png)

Figure 1. Workflow of refund

> **Notes**:
>
> -   After calling the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API, the following three situations may be returned:
>
> -   A refund failure is returned in the **refund** response: If the request parameters are incorrect, try to adjust the refund parameters based on the returned error code information and retry. Contact Antom Technical Support for troubleshooting. For details about how to handle each error code, see [Error codes](https://docs.antom.com/ac/ams/ir_online.md).
> -   A successful refund is returned in the **refund** response: The _resultCode_ parameter returns `REFUND_IN_PROCESS`, use the [**inquiryRefund**](https://docs.antom.com/ac/ams/ir_online.md) API to obtain the final refund result, or wait for the refund result notification through [**notifyRefund**](https://docs.antom.com/ac/ams/notify_refund.md).
> -   An unknown exception of refund is returned in the **refund** response: It is usually due to network reasons, and you can try to retry without changing the account.
>
> -   Refund notification: A refund notification will be sent if the refund is successful. In the case of refund failure, there will be no refund notification if the processing is abnormal due to an illegal refund request.

## Integration steps

Start your integration by taking the following steps:

1.  Initiate a refund request
2.  Receive a refund response

### Step 1: Initiate a refund request

The refund process through the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API varies depending on the payment method and may proceed either synchronously or asynchronously:

-   **Synchronous refund**: After calling the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API, the response directly indicates whether the refund was successful or failed. Nevertheless, there is a slight possibility of system exceptions or payment channel processing exceptions, which might result in different responses.
-   **Asynchronous refund**: After calling the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API, a response indicates the refund is being processed. You are then required to periodically check the refund status or wait for a notification that will provide the final refund status.

The following table shows payment methods supported by the synchronous and asynchronous refunds.

| **Synchronous refund** | **Asynchronous refund** |
| --- | --- |
| Digital wallet | All other payment methods default to asynchronous refunds. For a comprehensive list of payment methods, refer to [Supported payment methods](https://docs.antom.com/ac/pm/supported_pm.md). |
| Mastercard and Visa cards through acquirers 2C2P HK and 2C2P SG | All other payment methods default to asynchronous refunds. For a comprehensive list of payment methods, refer to [Supported payment methods](https://docs.antom.com/ac/pm/supported_pm.md). |

Table 1. Payment methods supported by synchronous and asynchronous refund

The following table shows API compatibility with synchronous and asynchronous refund processes.

| **API** | **Synchronous refund** | **Asynchronous refund** |
| --- | --- | --- |
| [**refund**](https://docs.antom.com/ac/ams/refund_online.md) | Supported | Supported |
| [**notifyRefund**](https://docs.antom.com/ac/ams/notify_refund.md) | Not supported | Supported |
| [**inquiryRefund**](https://docs.antom.com/ac/ams/ir_online.md) | Supported | Supported |

Table 2. API capabilities supported by synchronous and asynchronous refund

The following requirements for a refund request must be satisfied when you use the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API. Failure to meet these criteria will result in Antom issuing the respective error codes:

| **Error code** | **Description** |
| --- | --- |
| `ORDER_STATUS_INVALID` | The payment is not successful. |
| `REFUND_WINDOW_EXCEED` | The refund date exceeds the refundable period that is agreed in the contract. |
| `PAYMENT_METHOD_NOT_SUPPORTED` | The payment method does not support canceling or refunding transactions |
| `PARTIAL_REFUND_NOT_SUPPORTED` | A partial refund is not supported for this transaction. |
| `MERCHANT_BALANCE_NOT_ENOUGH` | The merchant balance is insufficient. |

Table 3. Error codes

When initiating a refund through the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API, the key parameters in the request are listed as follows:

| **Parameter** | **Required** | **Description** |
| --- | --- | --- |
| _refundRequestId_ | Yes | The unique identifier that you assign to a payment. |
| _paymentId_ | Yes | The unique identifier that Antom assigns to the original payment to be refunded. |
| _refundAmount_ | Yes | The refund amount must be no less than the minimum refund amount (usually the same as the minimum payment amount) and no greater than the refundable amount of a payment. The currency of the refund amount must be consistent with the currency of the payment amount in the [**pay**](https://docs.antom.com/ac/ams/payment_cashier.md#Requestparameters-paymentAmount-currency) API. |
| _refundNotifyUrl_ | No | The URL for receiving asynchronous refund notifications. |

Table 4. Key parameters of refund requests

### Step 2: Receive a refund response

After you call the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API, Antom synchronously returns the refund result. The _resultStatus_ parameter in the API response indicates the refund status of this payment. The values of _resultStatus_ are explained as follows:

-   `S`: The refund is successful.
-   `F`: The refund failed. When the error codes mentioned in Step 1 are excluded, returning `F` in the response may be an illegal parameter in the request. See the [Error codes](https://docs.antom.com/ac/ams/ir_online.md) of the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API or contact Antom Technical Support for troubleshooting.
-   `U`: The following scenarios may occur:

-   `REFUND_IN_PROCESS`: Indicates that the refund is being processed. You can call the [**inquiryRefund**](https://docs.antom.com/ac/ams/ir_online.md) API to obtain the refund result or wait for the refund result notification.
-   `UNKNOWN_EXCEPTION`/ `REQUEST_TRAFFIC_EXCEED_LIMIT`: Usually caused by Antom system or network issues, you can call the [**refund**](https://docs.antom.com/ac/ams/refund_online.md) API to retry.

-   `ORDER_IS_CLOSED`: Usually returned in the [**inquiryRefund**](https://docs.antom.com/ac/ams/ir_online.md) response, [**refund**](https://docs.antom.com/ac/ams/refund_online.md) recall, and [**notifyRefund**](https://docs.antom.com/ac/ams/notify_refund.md) request. It may be that the refund cannot be processed in Antom for some reason. You can change your account and retry.