Login expired. Please log in again.




Submitted successfully



Network exception, please try again later


WeChat Pay Development and Access Instructions

System Design
Reasonable Query Mechanism
Callback Verification
Closed-loop Transactions
Complete Refund Logic
Precautions for Development
Important Parameters
API Rules
Precautions Before Business Launch
Business Connectivity
Settlement And Reconciliation

Complete refund logic

WeChat Pay provides two refund APIs, it is strongly recommanded that institutions integrate the complete refund logic to avoid any complaints from merchants or consumers.

Business scenario

Each mch_id (an institution's merchant ID or direct-connected merchant ID) has two available fund pools: CNY pool and settlement currency pool. Users of WeChat Cross-Border Pay are mainly Chinese users with a Chinese Mainland ID card, so transaction funds on the "T" day are stored as CNY in the CNY pool.

On the "T+1" day, all funds in the CNY pool will be exchanged to foreign currency funds for settlement and are stored in the settlement currency pool. This operation will be performed every day and is not affected by the total transaction amount on the "T" day. Once the total funds in the settlement currency pool reaches up to 800 USD, WeChat Pay will initiate a payment to the recipient account of the institution or direct-connected merchant.

As refund requires CNY, only funds in the CNY pool can be used for the refund. Therefore, a refund can be initiated only if the institution or direct-connected merchant has new transactions every day.


If a refund request returns with NOT ENOUGH, it means that there’s insufficient balance in the current account. In this case, a retry is recommended after a period of time. The retry interval needs to be determined based on the daily transaction amount and current refund amount.

For the institution, the API will be provided for a sub-merchant after secondary encapsulation, so the retry logic is recommended to be encapsulated on the institution layer. In this case, after the sub-merchant initiates a refund request, the institution will perform retries.

Business scenario

WeChat refund results are synced in an async manner. Here we provide two APIs: Submit Refund API and Query Refund API. The result returned by the Submit Refund API only indicates whether the refund request has been accepted. Since the refund process depends on the paying bank, the final refund result must be confirmed via the Query Refund API.


After a refund request is submitted, the institution/merchant needs to query the refund result in a round-robin manner within a period of time. Refer to the following refund processing rules for details:

If the current order is paid with WeChat Balance or Mini Fund, the refund will be processed within 20 minutes, usually 1 minute.

If the current order is paid using a linked bank card, the refund will be processed within 5 business days. For general banks, the refund can be processed on the same day; while for some local banks, it may take up to 5 business days to process the refund request.

The intuition/merchant is advised to set the period of time for querying the refund result to 1 minute, 20 minutes, 1 hour, 2 hours, and 24 hours, until the fifth business day. Generally, query within 24 hours can cover 99% of refund requests.

Note: For POS terminals and online apps with frontend display, it is advised that the business acceptance result be synced directly to the frontend after a refund is initiated. Especially for offline payment scenarios, it is nearly impossible for users to wait for the final refund result while in store. In this case, it is advised that the users be notified of the acceptance result and have them wait to receive the refund result delivered by WeChat Pay later.

Business scenario

amount, and order amount to ensure that the total refund amount does not exceed the transaction amount. In partial refund scenarios, the institution/merchant is not advised to change the refund order number for a retry when the refund acceptance result is unclear.


WeChat Pay will consider different refund order numbers as different refund requests, resulting in duplicate refund operations for the same transaction. In this case, if an unclear refund result is received, use the original refund order number to try again. DO NOT change the order number.

About  WeChat  Pay

Powered By Tencent & Tenpay Copyright©

2005-2022 Tenpay All Rights Reserved.

Contact Us
Wechat Pay Global

WeChat Pay Global