Login expired. Please log in again.

Feedback

0/300

Feedback

Submitted successfully

ok

Feedback

Network exception, please try again later

ok

Unfreezing Remaining Funds API

Latest update time:2022.08.04 Release notes

For transactions that do not require funds-distribution, call the API directly to unfreeze all the transaction amount to the sponsor account (original transaction funds settlement account); After the funds-distribution interface is called, and when remaining funds need to be unfrozen, call the API to unfreeze all remaining funds to the sponsor.

Tips:

● The API is in asynchronous processing mode, that is, after receiving the merchant's request, it will be accepted first and then processed asynchronously, and the final funds-distribution result can be obtained through the Funds-distribution Result Query API;

● After the return of this API is successful, the amount of unfrozen funds outbound, together with the non-funds-distribution transaction amount, is subject to the net settlement. The regulations are consistent with the settlement period, starting point and other withdrawal rules in the settlement contract with the merchant;

● The sponsor refers to the merchant who has actually settled the funds and entered the funds into the account via Weixin Pay. It refers to a merchant in the overseas institution mode, and a sub-merchant in the service provider mode.

1. API Intro

Applicable object: Common mode Institutional mode

API rules:https://apihk.mch.weixin.qq.com/v3/global/profit-sharing/orders/unfreeze

Request method:POST


Pathparameter is a path parameter.
Queryparameter needs to be passed in the request URL.
Bodyparameter needs to be passed in the request JSON.

2. Request Parameters

Name Variable Name Type Required Description
Sub-merchant ID sub_mchid string[1, 32] No BodySub-merchant ID allocated by Weixin Pay. It needs to be consistent with the sub-merchant ID in the transaction of Weixin Pay.
Note: Only forInstitutional mode
Example: 1900000109
Weixin Pay transaction ID transaction_id string[1, 32] Yes Body Weixin Pay transaction ID
Example: 4208450740201411110007820472
Merchant order No. out_order_no string[1, 64] Yes Body The order No. in the merchant system, which is unique. It can only include numbers, capital letters and lowercase letters _-.
Note: This order No. is used to identify different requests of funds-distribution commands (including funds-distribution request API/unfreezing remaining funds API) initiated from the merchant side.
If the funds of one transaction is distributed multiple times, change the [merchant order No.] before requesting funds-distribution. Otherwise it will be considered as a repeated request.
Example: P20150806125346
Funds-distribution description description string[1, 80] Yes Body Reason description of funds-distribution, to be reflected in the funds-distribution record
Example: Unfreeze all remaining funds

Request Eample


{
  "description": "Unfreeze all remaining funds",
  "out_order_no": "P20150806125346",
  "sub_mchid": "1900000109",
  "transaction_id": "4208450740201411110007820472"
}

									{
										"stock_id": "PHP",
										"offset": 10,
										"limit": 10,
									}

									{
										"stock_id": ".NET",
										"limit": 10,
									}

									{
										"stock_id": "Python",
										"stock_creator_mchid": "123456",
										"limit": 10,
									}

3. Response Parameters

Name Variable Name Type Required Description
Sub-merchant ID sub_mchid string[1, 32] No Merchant ID allocated by Weixin Pay
Note: Only forInstitutional mode
Example: 1900000109
Weixin Pay order No. transaction_id string[1, 32] Yes Weixin Pay transaction ID
Example: 4208450740201411110007820472
Merchant order No. out_order_no string[1, 64] Yes Merchant order No., same as the request parameter.
Example: P20150806125346
Weixin order ID order_id string[1, 64] Yes Weixin order ID, the unique identifier returned by Weixin system.
Example: 3008450740201411110007820472
Funds-distribution order state state string Yes Funds-distribution order state (see result field in receivers for funds-distribution results of each receiver).
PROCESSING: Funds-distribution is processing,
FINISHED: Funds-distribution is finished,
Example: FINISHED
Receiver list receivers array[1,50] Yes Receiver list
When a merchant initiates a funds-distribution request or a unfreeze the remaining funds request, the same transaction funds can be distributed to multiple receivers (including unfreezing funds to the sponsor). The funds-distribution detail describes each funds-distribution state of each receiver.
Name Variable Name Type Required Description
Distribution currency currency string[3, 3] Yes Distribution currency, same as the request parameter.
Example: CNY
Funds-distribution amount amount int Yes Funds-distribution amount, same as the request parameter.
Example: 100
Funds-distribution description description string[1, 80] Yes Merchant order No., same as the request parameter.
Example: Distribute to merchant 1900000110
Receiver type type string[1, 32] Yes Receiver type, same as the request parameter.
MERCHANT_ID: Merchant ID,
PERSONAL_OPENID: Personal OpenID, converted by merchant APPID
PERSONAL_SUB_OPENID: Personal Sub_OpenID, converted by sub-merchant APPID
Example: MERCHANT_ID
Receiver account account string[1, 64] Yes Receiver account, same as the request parameter.
Example: 1900000109
The result of each funds-distribution detail. result string[1, 32] Yes The result of each funds-distribution detail.
PENDING: Funds to be distributed,
SUCCESS: Funds-distribution succeeded,
CLOSED: Funds-distribution closed,
Example: SUCCESS
Funds-distribution detail fail reason fail_reason string[1, 64] No Funds-distribution detail fail reasons. Set only when funds-distribution detail result is "CLOSED."
NO_RELATION: The funds-distribution relationship has been terminated.
SUB_MERCHANT_FRONEN: The sub-merchant account is frozen,
MCH_CONTRACT_SETTLE_OFF: The merchant settlement contract is in closed state.
MCH_CONTRACT_FROZEN: The merchant settlement contract is frozen,
ACCOUNT_ABNORMAL: The receiver account is abnormal,
RECEIVER_HIGH_RISK: The receiver is at high risk,
RECEIVER_REAL_NAME_NOT_VERIFIED: The receiver has not been real-name verified,
NO_AUTH: The funds-distribution authorization has been canceled,
DEFAULT_ERROR: Default error,
Example: ACCOUNT_ABNORMAL
Funds-distribution detail creation time create_time string[1, 64] Yes Funds-distribution detail creation time follows RFC3339 standard format
Example: 2015-05-20T13:29:35.120+08:00
Funds-distribution detail finish time finish_time string[1, 64] No Funds-distribution detail finish time follows RFC3339 standard format. Set only when the funds-distribution detail result is "SUCCESS" or "CLOSED".
Example: 2015-05-20T13:29:35.120+08:00
Weixin funds-distribution detail ID detail_id string[1, 64] Yes Weixin funds-distribution detail ID is the details ID of each funds-distribution business.
Example: 36011111111111111111111
Receiver type detail_type string[1, 32] Yes The funds-distribution details include two categories of funds: Funds distributed to other receivers and funds unfrozen to sponsor. These two categories can be distinguished by the field. If the detail type is UNFREEZE_TO_SPONSOR, the funds-distribution details will indicate settlement currency, settlement amount and exchange rate and other information.
DISTRIBUTE_TO_OTHERS: Distribute funds to other receivers,
UNFREEZE_TO_SPONSOR: Unfreeze funds to the sponsor outbound,
Example: DISTRIBUTE_TO_OTHERS
Settlement currency settlement_currency string[3, 3] No The field is set only when the detail type is UNFREEZE_TO_SPONSOR.
Example: HKD
Settled amount settlement_amount int No The funds amount is finally settled via exchange rate to the sponsor, using the minimum currency unit.
Example: 110
Exchange rate value rate int No The value is the exchange ratio between the distribution currency and the settlement currency multiplied by the 8th power of 10.
If the distribution currency and settlement currency are both CNY, the exchange ratio is 1 and the exchange rate value is 100,000,000;
If the settlement currency is USD, assuming that the ratio of USD to CNY is 6.5, the exchange rate value is 650,000,000.
Example: 81000000

Return Example


{
    "order_id": "7100000751202203238029563456088",
    "out_order_no": "P20150806125346",
    "receivers": [
      {
        "account": "999952224", # sponsor merchant ID
        "amount": 995,
        "create_time": "2022-03-23T17:59:23+08:00",
        "currency": "CNY",
        "description": "Unfreeze all remaining funds",
        "detail_id": "7200000751202203238029563456171",
        "detail_type": "UNFREEZE_TO_SPONSOR",
        "rate_value": 83640300,
        "result": "PENDING",
        "settlement_amount": 1189,
        "settlement_currency": "HKD",
        "type": "MERCHANT_ID"
      }
    ],
    "state": "PROCESSING",
    "sub_mchid": "1900000109",
    "transaction_id": "4208450740201411110007820472"
  }

{
"code":"SYSTEM_ERROR",
"message":"Parameter error"
}

									{
										"stock_id": ".NET",
										"limit": 10,
									}

									{
										"stock_id": "Python",
										"stock_creator_mchid": "123456",
										"limit": 10,
									}

4. Error Code

Error Codes Error Message Description Solution
400 INVALID_REQUEST The merchant information in the request of funds-distribution is inconsistent with that in the original transaction Carefully check whether the transaction ID is filled in correctly and whether the sub-merchant has been filled in or filled in incorrectly
400 INVALID_REQUEST The transaction does not support funds-distribution Check whether the Weixin Pay transaction ID is filled in incorrectly and confirm that the Funds-distribution Mark API is called successfully before calling the transaction API
403 NO_AUTH The merchant has not signed the overseas funds-distribution product Refer to the product process and access preparation, confirm that the merchant has funds-distribution authorization, and initiate the request again
403 NO_AUTH The merchant has enabled the funds-distribution product and is waiting for it to take effect (Usually takes effect the next day) The funds-distribution function cannot be initiated on the first day. Please initiate the request on the next day
403 NO_AUTH The parent-child relationship of the merchant does not exist. Please use correct sub-merchant ID to initiate the request Please check if the sub-merchant ID (sub_mchid) is filled in correctly
400 INVALID_REQUEST The command (out_order_no) already exists when the merchant unfreezes the remaining funds and the details are not as expected In case of different funds-distribution requests, change the command (out_order_no) before requesting funds-distribution
403 NOTENOUGH The funds amount to be distributed is insufficient at the time of request The current remaining funds amount to be distributed of the transaction can be obtained through [Remaining Funds Amount to be Distributed Query API]
500 SYSYTEMERROR The freeze process of the transaction funds specified by the merchant when initiating funds-distribution request has not been completed. Try again later After the user completes the payment, the fund freezing process for the transaction with funds-distribution will be triggered. It is recommended that the merchant try again after 3~5 mins




    Page Navigation

About  WeChat  Pay

Powered By Tencent & Tenpay Copyright©

2005-2024 Tenpay All Rights Reserved.

Contact Us
Wechat Pay Global

WeChat Pay Global

置顶