Documentation Index
Fetch the complete documentation index at: https://sdk.qfapi.com/llms.txt
Use this file to discover all available pages before exploring further.
To configure your notification URL, please send your endpoint address along with your merchant and store information to
technical.support@qfpay.com.- Payments (
"notify_type": "payment") - Refunds (
"notify_type": "refund")
Overview
When a payment or refund is completed, QFPay will POST a JSON-formatted notification to the merchant-defined callback URL.Notification Rules
- Only successful payments and refunds will trigger a notification.
- Please register your notification endpoint via email to
technical.support@qfpay.com. Our team will configure it for you. - Merchants must validate the notification using the signature verification process below. After successful verification, return:
- HTTP Status Code:
200 OK - Response Body:
SUCCESS
- HTTP Status Code:
- If the expected response is not received, QFPay will retry the callback at the following intervals:
- 2 minutes → 10 minutes → 10 minutes → 60 minutes → 2 hours → 6 hours → 15 hours
- Retry stops after receiving
200 OKandSUCCESS
- One
app_code+client_keypair can only be bound to one notification URL. Agents should use a shared endpoint for sub-merchants. - Method:
POST
Content-Type:application/json
Allowed Ports:80and443only (for security)
Signature Verification
The verification process differs from regular API requests.Steps
- Extract the value from the
X-QF-SIGNheader. - Concatenate the raw request body (JSON string) + your
client_key. - Generate an MD5 hash of this combined string.
- If the hash matches the
X-QF-SIGNvalue, the message is valid. Return200 OKwith bodySUCCESS.
Signature Example
Python
Notification Response Example
Response Field Reference
| Field | Required | Type | Description |
|---|---|---|---|
status | Yes | String | 1 = Payment Successful |
notify_type | Yes | String | payment or refund |
pay_type | Yes | String | QFPay payment code (see Payment Types) |
syssn | Yes | String | QFPay Transaction Number |
out_trade_no | Yes | String | Merchant Order Number |
txamt | Yes | String | Amount in cents. Suggest value > 200 |
txcurrcd | Yes | String | Transaction currency (see Currencies) |
txdtm | Yes | String | Merchant-side transaction time |
sysdtm | Yes | String | System transaction time (used for settlement cutoff) |
paydtm | Yes | String | Payment time |
cancel | Yes | String | Cancellation status (see definitions below) |
respcd | Yes | String | Always 0000 in async notifications |
mchid | No | String | QFPay Merchant ID |
goods_name | No | String | Product name |
goods_info | No | String | Product description |
exchange_rate | No | String | Currency exchange rate |
chnlsn | No | String | Channel transaction number |
chnlsn2 | No | String | Additional channel reference |
cardcd | No | String | Card number |
cash_fee | No | String | Actual paid amount |
cash_fee_type | No | String | Currency of cash_fee |
cash_refund_fee | No | String | Actual refund amount |
cash_refund_fee_type | No | String | Refund currency |
Cancel Field Definitions
| Value | Meaning |
|---|---|
| 0 | Not Cancelled |
| 1 | CPM: Reversed or Refunded |
| 2 | MPM: Cancelled |
| 3 | Refunded |
| 4 | Preauth order completed (Alipay) |
| 5 | Partially Refunded |
Notification IP Addresses
Ensure your server allows POST requests from:13.228.112.11518.138.115.4718.166.202.92

