| partnerUid |
|
|
String |
Merchant-side user ID |
M |
Expect merchant side UID |
| partnerOrderId |
|
|
String |
Merchant-side payment order ID (Idempotent Key). |
M |
Idempotent Key.
The unique payment serial number generated by the merchant for this specific transaction.
⚠️ CRITICAL FOR OPERATIONS:
This ID must be explicitly visible and searchable within your Customer Service (CS) and Order Management System (OMS).
It will serve as the primary reference number for cross-platform reconciliation, troubleshooting, and handling customer complaints.
Please DO NOT use hidden backend IDs or database primary keys, as this will cause severe friction and high communication costs during CS escalations. |
| partnerOrderAmount |
|
|
Long |
Order amount |
M |
The actual payment amount after applying all merchant discounts.
Calculation: The raw amount must be multiplied by 100. (Do NOT pass floating-point/decimal numbers).
Currency & Unit: Must correspond to the Mexican Peso (MXN). The required unit is centavos (the minimum currency unit).
Example: For an order value of 99.99 MXN, the value transmitted must be 9999. |
| currency |
|
|
String |
Currency |
M |
Mexico MXN |
| extendInfo |
|
|
Object |
Extended information |
M |
|
|
deviceInfo |
|
|
|
M |
|
|
|
deviceId |
String |
Device ID |
C |
The device identifier used for fraud prevention and credit risk assessment.
- If
operateSource = APP: Mandatory. Must pass the real native hardware identifier (e.g., IDFA/IDFV for iOS, or Android ID/OAID for Android).
- If
operateSource = WEB/WAP: Optional.
|
|
|
androidId |
String |
android deviceid |
O |
Used for Android device identification. |
|
|
iosId |
String |
ios deviceid |
O |
idfa/idfv
Used for IOS device identification. |
|
|
gps |
String |
latitude and longitude coordinates |
O |
The real-time geographic coordinates of the end-user at checkout. |
|
|
ip |
String |
Public IP |
M |
The public IP address of the end-user at checkout, crucial for anti-fraud regional validation.
Business Logic:
- If operateSource = APP: The current public IP address of the consumer's mobile device.
- If operateSource = WEB/WAP: The current public IP address of the consumer's computer/browser.
CRITICAL:
Do NOT pass your backend server's IP or internal LAN IPs (e.g., 127.0.0.1, 192.168.x.x), as this will cause immediate anti-fraud rejection. |
|
|
operateSource |
String |
Operation source (web page/APP) |
M |
The channel or platform context where the end-user initiates the transaction.
Format & Rules: Must match one of the following exact enumeration values:
- WAP: Mobile browser environment (e.g., user opens Shein via Safari or Chrome on a mobile phone without downloading the native app).
- WEB: Desktop or PC browser environment.
- APP: Native mobile application client. |
|
|
lang |
String |
Language |
O |
Enumeration value:
en-US
es-MX
If not passed or if the passed value is invalid, defaults to es-MX. |
|
userInfo |
|
Object |
User information |
M |
|
|
|
partnerEmail |
String |
Merchant-side user email |
C |
Normally, this field is optional.
This field will be mandatory only when your company:- can't provide the partnerPhone due to your platform design, and
- get the approval from DiDi BNPL support team to remove the partnerPhone in the Create Payment Order API.
|
|
|
partnerPhone |
String |
User mobile phone number |
M |
This is a mandatory field. The field information should be:
1. Best scenario: The phone number from the user last login: The Best one and the easiest one that you can provide.
2. Alternative option: The phone number entered by the user when changing their linked phone.
3. Bottom option: The phone number originally provided during user registration: If this phone number was changed, please updated the new one for DiDi.
This phone number is one of the most important field for the BNPL transaction. And this field is mandatory.
P.S. If your company can't provide this field to DiDi due to some specific reason, please help to contact the DiDi BNPL support team to explain the reason. |
|
|
phoneCountryCode |
String |
User mobile phone number country code |
M |
The same rules as field "partnerPhone". |
|
|
regTime |
String |
User registration time |
C |
The timestamp when the end-user registered their account on the merchant's platform.
Format: ISO 8601 yyyy-MM-dd'T'HH:mm:ss.SSSXXX. Timezone offset is strictly mandatory.
Example: 2025-12-08T01:11:33.000-06:00
Rules:
This field is Mandatory if newUserFlag is absent.
This field is Optional if newUserFlag is present. |
|
|
newUserFlag |
String |
New user or not |
C |
The flag indicating whether the end-user is a newly registered user on the merchant's platform within the last 30 days.
Format & Rules: Enumeration string value:
- 1: New user (registered within the last 30 days).
- 0: Existing user (registered more than 30 days ago).
Rules:
This field is Mandatory if regTime is absent.
This field is Optional if regTime is present. |
|
|
nickName |
String |
User nickname |
O |
|
|
|
userLevel |
String |
User rating |
O |
The comprehensive user classification or loyalty tier on the merchant's platform.
Free-text string representing the merchant's internal user tiering system.
Example: VIP_LEVEL_3 or PLATINUM_MEMBER or HIGH_CREDIT_SCORE or others. |
|
|
smeTag |
Boolean |
Small business label |
O |
Enumeration values: true / false / null
true-the enterprise is a small or micro enterprise.
false-the enterprise is not a small or micro enterprise.
null-no data is available. |
|
|
lastSuccInstrument |
String |
Last successful payment method |
O |
The payment instrument used by the user (on the merchant platform) during their last successful transaction. |
|
fees |
|
List<Object> |
Expense item |
O |
A detailed list of additional order expenses (e.g., shipping, taxes) used for itemized breakdown display and auditing. |
|
|
type |
String |
Type |
O |
The specific category classification of the fee item, currently restricted to the enumeration value POSTAGE-POSTAGE (Shipping/Delivery fee).
Enum:
POSTAGE-POSTAGE |
|
|
amount |
Long |
Amount of money |
O |
The exact financial value of the fee item, represented as a long integer in the currency's smallest unit (e.g., centavos for MXN). |
|
additionalRiskData |
|
String |
additional risk data |
O |
Additional risk data |
|
marketingFlag |
|
String |
Marketing Flag |
O |
The flag indicating whether marketing promotions, discounts, or campaigns are applied to this transaction.
1 - Marketing
0 - Not marketing |
| items |
|
|
List<Object> |
Goods information |
O |
If there are multiple quantities of the same SKU, only the quantity needs to be changed. |
|
categoryId |
|
String |
Unique identifier for the goods catalog |
O |
|
|
categoryName |
|
String |
Goods catalog name |
O |
|
|
skuId |
|
String |
Unique identifier for goods SKU |
O |
|
|
skuName |
|
String |
Goods SKU name |
M |
goods SKU name |
|
goodsName |
|
String |
User-visible display field |
O |
goods Name |
|
unitPrice |
|
Long |
Actual unit price (after discount) |
O |
The amount unit is cents. For example, if it's 99.99 pesos, the value here should be 9999.It must be transmitted if it exists. |
|
skuCurrency |
|
String |
Currency |
O |
ISO 4217 standard-Mexico MXN |
|
quantity |
|
Integer |
Number |
O |
|
|
pictureUrl |
|
String |
Goods picture URL |
O |
|
|
shippingAddress |
|
String |
Receiving address |
O |
To the street address |
|
shippingAddress2 |
|
String |
Receiving address |
O |
To unit address |
|
shippingPostcode |
|
String |
Receipt zip code |
O |
|
|
shippingPhoneNumber |
|
String |
Receiving mobile phone number |
O |
|
|
shippingPhoneCountryCode |
|
String |
Receiving mobile phone number country code |
O |
52 |
|
seller |
|
Object |
Seller information |
O |
|
|
|
sellerId |
String |
Unique seller ID |
C |
The unique identifier of the actual seller or sub-merchant/store conducting the transaction.
- Platform-model Merchants (e.g., Marketplaces): Strictly mandatory (M) to track individual sub-stores.
- Direct-to-Consumer (DTC) / Direct-sale Merchants: Optional (O). |
|
|
sellerName |
String |
Seller name |
O |
|
|
|
sellerRegTime |
String |
Seller registration time |
O |
Pattern: yyyy-MM-dd'T'HH:mm:ss.SSSXXX e.g., '2025-12-08T01:11:33.000-06:00' Timezone offset is mandatory. |
|
|
mccCode |
String |
Merchant Category Code |
C |
merchant business type.
- Platform-model Merchants (e.g., Marketplaces): Strictly mandatory (M) to track individual sub-stores.
- Direct-to-Consumer (DTC) / Direct-sale Merchants: Optional (O). |
|
type |
|
String |
Goods type |
O |
Enumeration value:
PHYSICAL_GOOD
VIRTUAL_GOOD |
| metadata |
|
|
String |
Metadata information |
O |
DiDi Paga Después will provide this information via the query and order callback
JSON format |