alipay.commerce.qrcode.create
Call this interface to generate a merchant QR code. For one store ID, up to two merchant QR codes can be created, one with the commission charge and the other not. If you call this interface again after two merchant QR codes being created, the data of an existing merchant QR code are returned.
Request
Service address
Environment | HTTPS request URL |
Production environment | Priority: https://globalmapi.alipay.com/gateway.do |
Test environment |
Note:
If you use POST
method, please specify _input_charset
in the request URL.
For example: https://mapi.alipaydev.com/gateway.do?_input_charset=UTF-8
Request parameters
Parameter | Description |
Basic parameter | |
service String | Interface name
|
partner String(16) | The partner ID that is assigned by Alipay to identify an Alipay account. The partner ID is composed of 16 digits and begins with 2088.
|
_input_charset String | The charset with which the request data are encoded. UTF-8, GBK, and GB2312 are supported.
|
sign_type String | Sign type. RSA, RSA2 and MD5 are supported. Use uppercase.
|
sign String | Sign value
|
timestamp String | The time when the merchant server sends the request. The time is in GMT+8, with a format of yyyy-MM-dd HH:mm:ss.
|
notify_url URL(200) | The URL for receiving asynchronous notifications after the payment is completed.
|
Business parameter | |
biz_type String | Business type that is defined by Alipay, with a value of OVERSEASHOPQRCODE
|
biz_data String(2000) | Business data, which are in the JSON format.
|
biz_data
Parameter | Description |
secondary_merchant_industry String(4) | Business category code of the secondary merchant. For more information about the business category code, see MCC list.
|
secondary_merchant_id String(64) | The unique ID assigned by the partner to identify a secondary merchant. The ID can contain letters, numbers, and underscores.
|
secondary_merchant_name String(64) | Registration legal name of the secondary merchant, shown in the Alipay Wallet and the reconciliation file to identify a secondary merchant.
|
store_id String(64) | The unique ID that is assigned by the partner to identify a store of a merchant, which can contain letters, numbers, and underscores. Note: This field is optional for the taxi business (MCC=4121).
|
store_name String | Store name. Note: This field is optional for the taxi business (MCC=4121).
|
taxi_operation_id String | Taxi operation ID, which is compulsory for the taxi business (MCC=4121).
|
taxi_number String | Taxi number, which is compulsory for the taxi business (MCC=4121).
|
taxi_driver_name String | Taxi driver name, which is compulsory for the taxi business (MCC=4121) and is to be used in the transaction history of Alipay wallet.
|
taxi_driver_mobile String | Mobile number of the taxi driver, which is compulsory for the taxi business. (MCC=4121)
|
trans_currency String | The pricing currency. Use the same value for this parameter and currency parameter. Contact Alipay technical support if you have to use different values. Use upper case.
|
currency String | The settlement currency that the merchant specifies in the contract. Use upper case. For more information about supported currencies, see Supported Currencies.
|
sys_service_provider_id String | System service provider ID. Can't be modified.
|
channel_fee String | Channel fee. For more information, see channel_fee. Note: If this field exists when the QR code is created, this field cannot be deleted when the QR code is modified. This field is in a format of JSON.
|
country_code String | The country code that consists of two letters (alpha-2 code). Refer to ISO 3166-1 for details.
|
address String | The address of the store where the code is created. Use postal address format.
|
passback_parameters String | The response parameters returned to the merchant in a JSON format after the payment succeeds. Merchants can define the parameters. Note: Nested JSON is not supported.
|
notify_mobile String | Phone number of the merchant legal representative.
|
notify_wangwang String | Wangwang name of the merchant legal representative
|
notify_alipay_account String | Alipay account of the merchant legal representative
|
is_show_memo String(10) | Indicates whether the payment page shows the memo field, with a value of true or false. The default value is false.
|
notify_sign_type String(10) | Sign type. RSA, RSA2 and MD5 are supported. Use uppercase.
|
notify_charset String | The charset with which the payment result notification is encoded. The default value is GBK.
|
Sample biz_data
{ "channel_fee":{"type":"FIXED","value":"12"}, "secondary_merchant_industry":"0001", "secondary_merchant_id":"xxx001", "secondary_merchant_name":"xxstore", "store_id":”0001”, "store_name":"xxstore", "trans_currency":"TWD", "currency":"USD", "country_code":"CN", "address":"No.278, Road YinCheng, Shanghai, China", "channel_fee":{"type":"FIXED","value":"10"}, "passback_parameters":{"inner_trade_no":"100000001"}, "notify_mobile":"136XXXXXXXX", "notify_wangwang":"Zibei", "notify_alipay_account":"2088101116251688"}
channel_fee
Parameter | Description |
type String | Channel fee type. The value can be FIXED to indicate the fee is a fixed amount or RATE to indicate the fee is calculated based on a certain percentage.
|
value String | 1. A FIXED channel fee is charged based on the value. For example, {"type":"FIXED", "value":"X"}. If transaction amount*5% is less than X, the channel fee is transaction amount*5%. If transaction amount*5% is equal to or greater than X, the channel fee is fixed at X. The unit of the value is in accordance with the settlement currency. For the numbers of decimal places supported, refer to the Supported currencies. 2. If the channel fee type is RATE, the value range is [0, 0.05]. (In promotion season, the channel fee can be 0.)
|
Sample channel_fee
{ "type":"FIXED", "value":"10"}
Response
Synchronous response
Parameter | Description |
Basic parameter | |
is_success String | Indicates whether the request succeeds or not, with a value of T for success and F for failure. Note: a successful request does not mean the business is accepted and processed successfully.
|
sign_type String | Sign type. RSA, RSA2 and MD5 are supported. Use uppercase.
|
sign String | Sign value
|
error String | Error code that is returned when the request is unsuccessful, to describe the request failure reason. For more information, see the Error Code section in this document.
|
Business parameter | |
qrcode String | QR code
|
qrcode_img_url String | The URL of the QR code image
|
Payment breakdown
Parameter | Description |
ALIPAYACCOUNT String | The amount paid by Alipay account's balance in CNY.
|
MCARD String | The money amount paid by the merchant's prepaid card. The unit is Yuan.
|
MDISCOUNT String | The amount paid by the merchant's voucher in CNY.
|
TMPOINT String | The amount paid by the buyer's point at the merchant in CNY.
|
COUPON String | The amount paid by red package in CNY.
|
POINT String | The amount paid by Ji Fen Bao in CNY.
|
DISCOUNT String | The amount paid by the discount of the account in CNY.
|
BANKCARD String | The amount paid by bank card.
|
MONEYFUND String | The amount paid by Yu'e Bao.
|
BAITIAO String | The money amount paid by BAITIAO. The unit is Yuan.
|
MCOUPON String | The money amount paid by the merchants issued coupons.
|
Payment breakdown message structure
[
{the payment balance type1: amount1},
{the payment balance type2: amount2},
…
]
Sample:
paytools_pay_amount=
[{"MCARD":"7.94"},
{"TMPOINT":"1.69"},
{"BANKCARD":"5.55"}
]
Asynchronous response
Parameter | Description |
Basic parameter | |
notify_time Timestamp | The time when the notification is sent. The time format is yyyy-MM-dd HH:mm:ss.
|
notify_type String | Notification type
|
notify_id String | Notification ID, used by the partner system to verify the notification
|
sign_type String | Sign type. RSA, RSA2 and MD5 are supported. Use uppercase.
|
sign String | Sign value
|
notify_action_type String | Notification action type. The value can be one of the following items:
|
Business parameter | |
out_trade_no String(64) | The unique corresponding PO No. in the order system of the merchant website.But it is created in the alipay system for scan QR code mode.
|
subject String(256) | Brief description of the transaction.This parameter is in the first column of Alipay trade details and is important for account checking. This parameter is transmitted by the corresponding request and needs to be returned with its original value.
|
trade_no String(64) | The serial number of a transaction in the Alipay system
|
trade_status String | Transaction status. See Trade status for details.
|
gmt_create Date | The time when the trade transaction is created. Format: yyyy-MM-dd HH:mm:ss. Use GMT+8.
|
gmt_payment Date | The time when the payment is completed. Format: yyyy-MM-dd HH:mm:ss. Use GMT+8.
|
seller_email String(100) | Alipay account of the seller, with a format of email address or phone number
|
buyer_email String(100) | Buyer's Alipay account, which can be an email address or phone number.
|
seller_id String(30) | The unique Alipay user ID of the seller corresponding to the signed Alipay account. It consists of 16 digits and begins with 2088.
|
buyer_id String(30) | The unique Alipay user ID of the buyer corresponding to the signed Alipay account. It consists of 16 digits and begins with 2088.
|
price Number | Goods price. This parameter is transmitted by the corresponding request and needs to be returned with its original value.
|
quantity Number | The quantity of goods. This parameter is transmitted by the corresponding request and needs to be returned with its original value.
|
total_fee Number | Total amount of a transaction in CNY. It is the corresponding parameter upon request, and will be returned back as it is if the currency is CNY. For a foreign currency, corresponding CNY amount will be calculated based on the exchange rate.
|
trans_amount Number | Total amount of a transaction based on list price. If the list amount is shown as a foreign currency, then it is the foreign list amount.If the list amount is shown in CNY, this parameter will not be returned.
|
forex_total_fee Number | The transaction amount in the settlement currency.
|
currency String(8) | The currency to settle with the merchant. This parameter is transmitted by the corresponding request and needs to be returned with its original value.
|
trans_currency String(8) | Pricing currency for the transaction. This parameter is transmitted by the corresponding request and needs to be returned with its original value.
|
forex_rate String | The exchange rate between the currency given in the payment notify request and CNY
|
trans_forex_rate String | The exchange rate between trans_currency and currency given in the payment notification request
|
body String(400) | Detailed description about the goods. This parameter is transmitted by the corresponding request and needs to be returned with its original value.
|
refund_fee Number | Total refund amount of an order in a refund notification. The unit is Yuan. The currency is CNY.
|
out_biz_no String(64) | Merchant service ID, mainly used as a serial number to return a refund request in a refund notification.
|
paytools_pay_amount String(512) | Payment amount information of all successful payments in various channels.
|
extra_common_param String(256) | This parameter is returned with the value of passback_parameters in the corresponding request. The format is JSON.
|
m_discount_forex_amount Number(9,2) | If coupons/vouchers are used in the transaction, the discount amount redeened in the settlement currency will be returned. Otherwise, no return.
|
Payment breakdown
Parameter | Description |
ALIPAYACCOUNT String | The amount paid in Yuan with the balance in Alipay account.
|
MCARD String | The money amount paid by the merchant's prepaid card. The unit is Yuan.
|
MDISCOUNT String | The amount paid in Yuan with the merchant voucher.
|
TMPOINT String | The amount paid in Yuan with the Tmall points.
|
COUPON String | The amount paid in Yuan with the coupon.
|
POINT String | The amount paid in Yuan with the bonus points.
|
DISCOUNT String | The amount paid in Yuan with the account discounts.
|
BANKCARD> tring | The amount paid in Yuan with the bank card.
|
MONEYFUND String | Indicates the amount paid in Yuan with Yu'e Bao.
|
BAITIAO String | The money amount paid by BAITIAO. The unit is Yuan.
|
MCOUPON String | The money amount paid by the merchants issued coupons. The unit is Yuan.
|
Payment amount information structure:
[
{Type of payment amount 1:payment amount 1}
,
{Type of payment amount 2:payment amount 2}
,
…
]
Sample
paytools_pay_amount=[{"MCARD":"7.94"},{"TMPOINT":"1.69"},{"BANKCARD":"5.55"}]
Error codes
Business errors
Error code | Description |
AE_BARCODE_GENERAL_CODE_FAIL | Failed to generate the barcode |
ILLEGAL_ARGUMENT | Invalid argument |
ILLEGAL_SIGN | Invalid signature |
AE_BARCODE_GENERAL_CODE_FAIL_AND_NOT_RETRY | Creating a QR code is failed. This error code does not support retrial. |
AE_BARCODE_GENERAL_CODE_FAIL_AND_RETRY | Creating a QR code failed. This error code supports retrial. |
QRCODE_HAS_BEEN_EXIST | The QR code already exists. |
System errors
Error code | Description |
ILLEGAL_SIGN | Invalid signature |
ILLEGAL_DYN_MD5_KEY | Invalid dynamic key |
ILLEGAL_ENCRYPT | Invalid encryption |
ILLEGAL_ARGUMENT | Invalid argument |
ILLEGAL_SERVICE | Invalid service name |
ILLEGAL_USER | Invalid user ID |
ILLEGAL_PARTNER | Invalid partner ID |
ILLEGAL_EXTERFACE | Interface configure error |
ILLEGAL_PARTNER_EXTERFACE | The partner ID does not have access privilege. |
ILLEGAL_SECURITY_PROFILE | The key is not available |
ILLEGAL_AGENT | Invalid Agent ID |
ILLEGAL_SIGN_TYPE | Invalid sign type |
ILLEGAL_CHARSET | Illegal character set |
HAS_NO_PRIVILEGE | No priviledge |
INVALID_CHARACTER_SET | Invalid character set. |
Samples
Request
https://intlmapi.alipay.com/gateway.do?service=alipay.commerce.qrcode.create&partner=2088021966388155&_input_charset=UTF-8&sign_type=MD5¬ify_url=https%3A%2F%2Fwww.mikascoffee.com%2Fnotify&biz_type=OVERSEASHOPQRCODE&biz_data=%7B%22secondary_merchant_industry%22%3A%225499%22%2C%22secondary_merchant_id%22%3A%221314520%22%2C%22secondary_merchant_name%22%3A%22Mika's%20coffee%20shop%22%2C%22store_id%22%3A%221993%22%2C%22store_name%22%3A%22Mika's%20coffee%20shop%22%2C%22trans_currency%22%3A%22USD%22%2C%22currency%22%3A%22USD%22%2C%22country_code%22%3A%22US%22%2C%22address%22%3A%223%20Old%20Concord%20Rd%2C%20Burlington%2C%20MA%2001803%E7%BE%8E%E5%9B%BD%22%2C%22notify_sign_type%22%3A%22RSA%22%2C%22notify_charset%22%3A%22UTF-8%22%7D&sign=c7648e6c1036f9b01b2911c231435943
Response
Synchronous response
The returned data of a successful request:
<alipay>
<is_success>T</is_success>
<request>
<param name="partner">208xxxxxxxxxx8155</param>
<param name="service">alipay.commerce.qrcode.create</param>
<param name="_input_charset">UTF-8</param>
<param name="biz_type">OVERSEASHOPQRCODE</param>
<param name="sign">14e4173a362370a06d0f0075498a7cde</param>
<param name="biz_data">
{"secondary_merchant_industry":"5499","secondary_merchant_id":"1314520","secondary_merchant_name":"Mika's coffee shop","store_id":"1993","store_name":"Mika's coffee shop","trans_currency":"USD","currency":"USD","country_code":"US","address":"3 Old Concord Rd, Burlington, MA 01803美国","notify_sign_type":"RSA","notify_charset":"UTF-8"}
</param>
<param name="sign_type">MD5</param>
</request>
<response>
<qrcodeinfo>
<qrcode>https://qr.alipay.com/ocx07305q83kwul5nb8ii2e</qrcode>
<qrcode_img_url>
https://mobilecodec.alipay.com/show.htm?code=ocx07305q83kwul5nb8ii2e
</qrcode_img_url>
</qrcodeinfo>
</response>
<sign>f3f93959ee6905cf480c117c80d555b7</sign>
<sign_type>MD5</sign_type>
</alipay>
The response for a failed request:
<alipay>
<is_success>F</is_success>
<error>ILLEGAL_SIGN</error>
</alipay>
Asynchronous response
https://www.mikascoffee.com/notify
extra_common_param={"qrcode":"https://qr.alipay.com/ocx06147g658p4j362n2hd7"}
currency=USD
trans_currency=USD
trade_no=201xxxxxxxxxxxxxxxxxxxxx2104
subject=Mika's coffee shop
paytools_pay_amount=[{"PCREDIT":"0.07","PCC_PROD_ID":"9102"}]
buyer_email=186****9365
gmt_create=2019-09-11 19:16:50
notify_type=trade_status_sync
quantity=1
forex_rate=7.13210000
out_trade_no=188xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0073
trans_amount=0.01
notify_time=2019-09-11 19:16:55
seller_id=208xxxxxxxxx8155
trade_status=TRADE_SUCCESS
gmt_payment=2019-09-11 19:16:55
total_fee=0.07
seller_email=int***@list.alibaba-inc.com
notify_action_type=payByAccountAction
price=0.07
buyer_id=208xxxxxxxxx6535
notify_id=201xxxxxxxxxxxxxxxxxxxxxxxxxxx7001
sign_type=RSA
sign=$$$