Skip to content

Split Payment yaratish ​

Endpoint details ​

Method: POST
URL: BASE_URL/merchant/splitPayment/
Header:

http
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: recipientId qiymatini xizmat ko‘rsatuvchi provayderdan (Paylov) oling.

Request body

FieldTypeRequiredDescription
transactionIdstringYesTranzaksiyaning noyob identifikatori
recipientsarrayYesTranzaksiyani qabul qiladigan qabul qiluvchilar ro‘yxati
recipients[].recipientIdstringYesQabul qiluvchining noyob identifikatori
recipients[].amountnumberYesQabul qiluvchiga ajratilgan summa
recipients[].itemsarrayNoQabul qiluvchi bilan bog‘liq mahsulotlar ro‘yxati
recipients[].items[].titlestringYesMahsulot nomi yoki sarlavhasi
recipients[].items[].pricenumberYesChegirmadan oldingi mahsulot narxi
recipients[].items[].discountnumberYesMahsulotga qo‘llangan chegirma
recipients[].items[].countnumberYesMahsulot soni
recipients[].items[].codestringYesMahsulotni aniqlovchi noyob kod
recipients[].items[].vat_percentnumberYesMahsulotga tegishli QQS foizi
recipients[].items[].package_codestringYesQadoq turini ifodalovchi kod
recipients[].items[].pinflstringNoSoliq to‘lovchining PINFL ma’lumoti
resendOFDbooleanNoMa’lumotni fiskal tizimga qayta yuborish kerakligini bildiruvchi flag

Request example

json
{
  "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:

json
{
  "result": {
    "transactionId": "<transaction_id>"
  }
}

💡 Note: Agar request body ichida items yuborilsa, 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’ni resendOFD: true bilan qayta yuborishingiz kerak.

Error codes ​

  • permission_denied
  • transaction_not_found
  • split_already_done
  • invalid_amount
  • recipient_not_found
  • ofd_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:

json
{
  "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