Refund in-store payments
This document describes how the refund for Alipay In-store Payment works.
Scope
The information in this document applies to Alipay In-store Payment products and AlipayHK in-store payment products, which includes the following ones:
- Barcode Payment
- Merchant QR Code Payment
- Transaction QR Code Payment
- Third-party Merchant QR Code Payment
- AlipayHK - Barcode
- AlipayHK - Merchant QR Code
- AlipayHK - Transaction QR Code
Overview
The following table describes the key information of in-store payment refunds.
Refund type | Asynchronous refund | Asynchronous refund | Synchronous refund |
Refund method | Global Merchant Portal | API ( | API ( |
How is refund result returned | Displayed in the Global Merchant Portal transaction list | Returned by the API sync response or asynchronous notification. See Asynchronous refund for details. | Returned by the API synchronous response |
Synchronous response exists | No | Yes. If the request succeeds, sync response returns the request acceptance result. However, if the request fails, the refund fails, and sync response returns the failure result. | Yes. Synchronous response returns the both the request acceptance result and the refund result. |
Asynchronous notification exists | No | Yes, but only if the refund succeeds. | No |
Alipay retries the refund | Yes. If the refund is requested within the T day, the refund is processed after the request. If the refund is requested after the T day, the refund is processed during the request day 23:00 to next day 5:00 (GTM+8). If merchant funds are insufficient, Alipay retries the refund during 23:00 to next day 5:00 (GTM+8) for 180 days. If the funds are still insufficient after 180 days, the refund fails. | No. To retry a refund, merchant must send a new request. |
Table 1. Key information for in-store payment refund
How to issue a refund
You can issue a refund by using the refund API for in-store payment (alipay.acquire.overseas.spot.refund)or by using Global Merchant Portal. Only transactions that are successfully paid can be refunded and the refund must be requested within the valid refund period.
- API can be used to request either a synchronous refund or an asynchronous refund.
- Global Merchant Portal can only issue asynchronous refund.
Synchronous refund
Use the refund interface alipay.acquire.overseas.spot.refund to issue a synchronous refund. In the request, the value of is_sync
must be Y
. For more information about the API, see spot_refund.
After receiving the request, Alipay processes the refund and then returns the refund result to the merchant by using a synchronous response.
- If errors exist in the request, the refund fails.
- If the request is successfully accepted, Alipay process the refund, and
- If the merchant funds are sufficient for the refund, the refund succeeds.
- If the merchant funds are insufficient for the refund, the refund fails. Merchant can retry the refund by sending a new request.
Sample request
https://intlmapi.alipay.com/gateway.do?service=alipay.acquire.overseas.spot.refund&partner=2088021966388155&_input_charset=UTF-8&sign_type=MD5¬ify_url=https%3A%2F%2Fwww.test.com¤cy=USD&partner_trans_id=Refund_Test_002&partner_refund_id=Refund_Test_002-1&refund_amount=0.01&refund_reason=%E4%B9%B0%E5%AE%B6%E4%B8%BB%E5%8A%A8%E8%A6%81%E6%B1%82%E9%80%80%E6%AC%BE&is_sync=Y&sign=6f6855584cc15426615468c01ed15638
Sample response
The refund succeeds:
<alipay>
<is_success>T</is_success>
<request>
<param name="_input_charset">UTF-8</param>
<param name="sign">6f6855584cc15426615468c01ed15638</param>
<param name="notify_url">https://www.test.com</param>
<param name="is_sync">Y</param>
<param name="partner_trans_id">Refund_Test_002</param>
<param name="partner">2088021966388155</param>
<param name="service">alipay.acquire.overseas.spot.refund</param>
<param name="refund_amount">0.01</param>
<param name="currency">USD</param>
<param name="refund_reason">Buyer's demand</param>
<param name="sign_type">MD5</param>
<param name="partner_refund_id">Refund_Test_002-1</param>
</request>
<response>
<alipay>
<alipay_trans_id>2020021222001461121418728041</alipay_trans_id>
<currency>USD</currency>
<exchange_rate>6.97251950</exchange_rate>
<partner_refund_id>Refund_Test_002-1</partner_refund_id>
<partner_trans_id>Refund_Test_002</partner_trans_id>
<refund_amount>0.01</refund_amount>
<refund_amount_cny>0.07</refund_amount_cny>
<result_code>SUCCESS</result_code>
</alipay>
</response>
<sign>f9f6daefcd7fbf56fb930c7f75d8bb22</sign>
<sign_type>MD5</sign_type>
</alipay>
The refund fails:
<alipay>
<is_success>T</is_success>
<request>
<param name="_input_charset">UTF-8</param>
<param name="sign">7a1f0f739abd76ba0215693be0c608c2</param>
<param name="notify_url">https://www.test.com</param>
<param name="is_sync">Y</param>
<param name="partner_trans_id">Refund_Test_002</param>
<param name="partner">2088021966388155</param>
<param name="service">alipay.acquire.overseas.spot.refund</param>
<param name="refund_amount">0.01</param>
<param name="currency">USD</param>
<param name="refund_reason">Buyer's demand</param>
<param name="sign_type">MD5</param>
<param name="partner_refund_id">Refund_Test_002-5</param>
</request>
<response>
<alipay>
<error>REQUEST_AMOUNT_EXCEED</error>
<result_code>FAILED</result_code>
</alipay>
</response>
<sign>4fbff80e997dfee35ce7204e9d189fe1</sign>
<sign_type>MD5</sign_type>
</alipay>
Asynchronous refund
You can issue an asynchronous refund by using either the refund API or by using Global Merchant Portal.
API
Use the refund interface alipay.acquire.overseas.spot.refund to issue an asynchronous refund. In the request, is_sync
can be empty, or the value of is_sync
must be N
. For more information about the API, see spot_refund.
After the request is sent, Alipay processes the refund and then notifies the merchant of the refund result according to following scenarios:
- If the errors exist in the request, the refund fails. Alipay returns the result by using a synchronous response.
- If the request is successfully accepted, Alipay first returns the request result to the merchant by using a synchronous response, and notifies the refund result by using an asynchronous notification according to the following scenarios:
- If the refund is requested within the T day and merchant funds are sufficient for the refund, the refund will be completed in a short period of time.
- If the merchant funds are sufficient for the refund, but the refund is requested after T day, Alipay processes the refund during the request day 23:00 to next day 5:00 (GTM+8).
- If the merchant funds are insufficient for the refund, Alipay retries the refund during 23:00 to next day 5:00 (GTM+8) for 180 days.
- If the funds become sufficient, Alipay processes the refund and sends the refund result to the merchant by using an asynchronous notification.
- If the merchant funds are still insufficient after the 180 days, the refund fails. No notification is sent in this case.
Sample request
https://intlmapi.alipay.com/gateway.do?service=alipay.acquire.overseas.spot.refund&partner=2088021966388155&_input_charset=UTF-8&sign_type=MD5¬ify_url=https%3A%2F%2Fwww.test.com¤cy=USD&partner_trans_id=Refund_Test_002&partner_refund_id=Refund_Test_002-3&refund_amount=0.01&refund_reason=%E4%B9%B0%E5%AE%B6%E4%B8%BB%E5%8A%A8%E8%A6%81%E6%B1%82%E9%80%80%E6%AC%BE&sign=ce038bbcf351bdd5c9594d4f677856c4
Sample response
The refund request is accepted by Alipay and a synchronous response is returned:
<alipay>
<is_success>T</is_success>
<request>
<param name="partner_trans_id">Refund_Test_002</param>
<param name="partner">2088021966388155</param>
<param name="service">alipay.acquire.overseas.spot.refund</param>
<param name="_input_charset">UTF-8</param>
<param name="sign">ce038bbcf351bdd5c9594d4f677856c4</param>
<param name="refund_amount">0.01</param>
<param name="currency">USD</param>
<param name="refund_reason">Buyer's demand</param>
<param name="notify_url">https://www.test.com</param>
<param name="sign_type">MD5</param>
<param name="partner_refund_id">Refund_Test_002-3</param>
</request>
<response>
<alipay>
<alipay_trans_id>2020021222001461121418728041</alipay_trans_id>
<currency>USD</currency>
<exchange_rate>6.97251950</exchange_rate>
<partner_refund_id>Refund_Test_002-3</partner_refund_id>
<partner_trans_id>Refund_Test_002</partner_trans_id>
<refund_amount>0.01</refund_amount>
<refund_amount_cny>0.07</refund_amount_cny>
<result_code>SUCCESS</result_code>
</alipay>
</response>
<sign>2cf81e241f141802dd137636f3b7e1d3</sign>
<sign_type>MD5</sign_type>
</alipay>
The refund fails, and a synchronous response is returned:
<alipay>
<is_success>T</is_success>
<request>
<param name="partner_trans_id">Refund_Test_002</param>
<param name="partner">2088021966388155</param>
<param name="service">alipay.acquire.overseas.spot.refund</param>
<param name="_input_charset">UTF-8</param>
<param name="sign">05457b79c8749f8ea3f0ac5a1c169e0f</param>
<param name="refund_amount">0.02</param>
<param name="currency">USD</param>
<param name="refund_reason">Buyer's demand</param>
<param name="notify_url">https://www.test.com</param>
<param name="sign_type">MD5</param>
<param name="partner_refund_id">Refund_Test_002-4</param>
</request>
<response>
<alipay>
<error>REQUEST_AMOUNT_EXCEED</error>
<result_code>FAILED</result_code>
</alipay>
</response>
<sign>4fbff80e997dfee35ce7204e9d189fe1</sign>
<sign_type>MD5</sign_type>
</alipay>
The refund succeeds, and an asynchronous notification is sent:
https://www.mikascoffee.com/notify
trans_refund_fee=0.01
notify_type=refund_status_sync
return_amount=0.01
notify_time=2019-09-11 19:24:30
out_trade_no=out_trade_no_20190904_163949
refund_status=REFUND_SUCCESS
sign=$$$
out_return_no=partner_refund_id_20190904_160211
currency=USD
sign_type=MD5
notify_id=201xxxxxxxxxxxxxxxxxxxxxxxxxxx3785
Global Merchant Portal
You can issue an asynchronous refund by using Alipay Global Merchant Portal. See the following steps for details:
- Log into Alipay Global Site with your merchant account.
- Go to Business Center -- My Transaction.
- Find the specific transaction and click Refund. You can search the transaction with the transaction ID, or filter transactions by using the transaction time.
- Enter the refund information and your payment password to issue the refund.
- Click 确定 (Confirm) to confirm the refund.
You can then wait for the refund to be processed by Alipay. To obtain the refund result, you must find the specific transaction in Global Merchant Portal, or use the reconciliation service.