Split Payment yaratish
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_foundofd_commitent_or_subcommission_not_active— chek pozitsiyasining komitenti (TIN) yoki subkomissiyasi (PINFL) faol OFD shartnomasiga ega emas.data:itemIndex,tin,pinfl. Xato kodlari.
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