Split Payment
Split Payment va Split Payment Status
Split payment API
Endpoint details
Method:
POST
URL: BASE_URL/merchant/splitPayment/
Header:
Authorization: Bearer <ACCESS_TOKEN>Description:
Bitta tranzaksiya summasini bir nechta qabul qiluvchilar orasida taqsimlaydi. Har bir qabul qiluvchi ko‘rsatilgan summa bo‘yicha alohida sub-tranzaksiyani oladi. Jarayon muvaffaqiyatli yakunlansa, tranzaksiya split qilingan deb belgilanadi.
💡 Note:
recipientIdqiymatini xizmat ko‘rsatuvchi provayderdan (Paylov) oling.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
transactionId | string | Yes | Tranzaksiyaning noyob identifikatori |
recipients | array | Yes | Tranzaksiyani qabul qiladigan qabul qiluvchilar ro‘yxati |
recipients[].recipientId | string | Yes | Qabul qiluvchining noyob identifikatori |
recipients[].amount | number | Yes | Qabul qiluvchiga ajratilgan summa |
recipients[].items | array | No | Qabul qiluvchi bilan bog‘liq mahsulotlar ro‘yxati |
recipients[].items[].title | string | Yes | Mahsulot nomi yoki sarlavhasi |
recipients[].items[].price | number | Yes | Chegirmadan oldingi mahsulot narxi |
recipients[].items[].discount | number | Yes | Mahsulotga qo‘llangan chegirma |
recipients[].items[].count | number | Yes | Mahsulot soni |
recipients[].items[].code | string | Yes | Mahsulotni aniqlovchi noyob kod |
recipients[].items[].vat_percent | number | Yes | Mahsulotga tegishli QQS foizi |
recipients[].items[].package_code | string | Yes | Qadoq turini ifodalovchi kod |
recipients[].items[].pinfl | string | No | Soliq to‘lovchining PINFL ma’lumoti |
resendOFD | boolean | No | Ma’lumotni fiskal tizimga qayta yuborish kerakligini bildiruvchi flag |
Request example
{
"transactionId": "9b3bd7be-9327-4608-b886-4353e49df05f",
"recipients": [
{
"recipientId": "string",
"amount": 100,
"items": [
{
"title": "string",
"price": 0,
"discount": 0,
"count": 0,
"code": "string",
"vat_percent": 0,
"package_code": "string",
"tin": "string",
"pinfl": "string"
}
]
},
{
"recipientId": "abda5234-16aq-4896-90a2-b095ff557654",
"amount": 100
}
],
"resendOFD": false
}Response
Muvaffaqiyatli bajarilganda quyidagi javob qaytadi:
{
"result": {
"transactionId": "<transaction_id>"
}
}💡 Note: Agar request body ichida
itemsyuborilsa, tranzaksiya fiskal ma’lumot yaratish uchun OFD’ga yuboriladi. Tranzaksiya OFD’ga asinxron tarzda yuboriladi, ya’ni javobni kutib turmaydi. Yuqori yuklama sababli OFD tomonda kechikish bo‘lishi mumkin. To‘lov split qilingandan keyin status’ni alohida metod orqali tekshirishingiz mumkin. Agar response ichida OFD ma’lumoti bo‘lmasa, split payment request’niresendOFD: truebilan qayta yuborishingiz kerak.
Error codes
permission_deniedtransaction_not_foundsplit_already_doneinvalid_amountrecipient_not_found
Example for recipient_not_found:
{
"error": {
"code": "recipient_not_found",
"message": "One or more recipients not found.",
"data": {
"notFoundRecipientIds": [
"<recipient_id>"
]
}
}
}Implementation Notes
- Permission Check: Merchant’da split payment uchun ruxsat borligini tekshiradi
- Validation:
- Tranzaksiya mavjudligini va avval split qilinmaganini tekshiradi
- Qabul qiluvchilar summasi yig‘indisi tranzaksiya summasiga tengligini tekshiradi
- Qabul qiluvchi merchantlar mavjudligini tekshiradi
Split payment status API
Endpoint details
Method:
GET
URL: BASE_URL/merchant/splitPayment/status/?transactionId=your_transaction_id
Header:
Authorization: Bearer <ACCESS_TOKEN>Description:
Split qilingan tranzaksiya bo‘yicha barcha sub-tranzaksiyalar statusini qaytaradi.
| Parameter | Type | Description | Required |
|---|---|---|---|
transactionId | string | Asosiy tranzaksiya identifikatori | Yes |
Response example
Muvaffaqiyatli bajarilganda:
{
"result": [
{
"recipientId": "ccda5111-66a0-4896-90a2-b095ff558129",
"amount": 100,
"status": "paid",
"createdAt": "2025-01-06 17:17:17"
},
{
"recipientId": "ffddb832-4bd2-410c-a1d9-26dv9fefb111",
"amount": 100,
"status": "paid",
"createdAt": "2025-01-06 17:17:17"
}
]
}Error codes
permission_deniedtransaction_not_foundsplit_not_found
Implementation notes
- Permission check: Merchant’da split payment uchun ruxsat borligini tekshiring
- Transaction validation: Asosiy tranzaksiya mavjudligini va shu merchantga tegishli ekanini tekshiring
- Status mapping:
paidcancelledcheck