# Best practices for BNPL channels

> Alipay+ is planning to add some Mobile Payment Partners (MPPs) with the Buy Now Pay Later (BNPL) feature.

# Definition of the BNPL channels and special requirements

Alipay+ is planning to add some Mobile Payment Providers (MPPs) with the Buy Now Pay Later (BNPL) feature. BNPL is a type of installment loan, which gives a user a certain credit line that is long-term effective and recyclable. The user can use this credit line for transactions. However, MPPs still need to apply real-time risk control to BNPL transactions to reduce risks on the user side and the MPP side, which requires the Acquiring Service Providers (ACQPs) to provide specific information in the API request to Alipay+. The required information is categorized into basic ones and extended ones, and they have a heavy impact on the success of payments.

# Applicable scenario

Currently, the requirements in this document only apply to the Cashier Payment.

# Requirements for the ACQP

Certain parameters are required for the [pay](../api_acq_tile/pay_cashier) API requests. See the following sections for details.

## Basic info parameters

Parameters in the following tables are strongly recommended to be passed in by the ACQPs. The MPP's risk control relies heavily on these parameters. The payment success rate is estimated to rise by 5%~10% if these parameters are provided.

| **Category** | **Parameter** | **Description** |
| --- | --- | --- |
| order.buyer | referenceBuyerId | **OPTIONAL** String(64) The unique ID that is assigned by the merchant to identify a buyer. |
| order.goods | goodsName | **OPTIONAL** String(256) Goods name. |
| order.shipping | shippingAddress | **OPTIONAL** Address Recipient shipping address. See [shippingAddress](#CSaq5) for details. |

#### shippingAddress

| **No.** | **Field** | **Description** |
| --- | --- | --- |
| 1 | region | **REQUIRED** String(2) The two-character [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) country/region code |
| 2 | state | **OPTIONAL** String(8) State, country, or province |
| 3 | city | **OPTIONAL** String(32) City, district, suburb, town, or village |
| 4 | address1 | **OPTIONAL** String(256) Address line 1, such as street, PO Box, or company name. |
| 5 | address2 | **OPTIONAL** String(256) Address line 2 (such as apartment, suite, unit, or building) |
| 6 | zipCode | **OPTIONAL** String(32) ZIP or postal code |

## Extended info parameters

Parameters in the following tables are recommended to be passed in by the ACQPs. The payment success rate is estimated to rise by 5% if these parameters are provided.

| **Category** | **Parameter** | **Description** |
| --- | --- | --- |
| order.goods | referenceGoodsId | **REQUIRED** String(64) The unique ID assigned by the merchant that directly provides services or goods to users to identify goods. |
| order.goods | goodsCategory | **OPTIONAL** String(64) A categorization of the goods type. |
| order.goods | goodsUnitAmount | **REQUIRED** Amount Goods price. See [Amount](#xvDuh) for details. |
| order.goods | goodsQuantity | **REQUIRED** Integer Goods quantity |

#### Amount

| **No.** | **Field** | **Description** |
| --- | --- | --- |
| 1 | currency | **REQUIRED** String (3) The three-character [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. |
| 2 | value | **REQUIRED** Integer (16) The value is in the smallest currency unit (for example, if the value is 100, the amount is $1.00 when currency is USD, or ￥100 when currency is JPY). Value range: 0 - unlimited. |