Skip to content

Ikki bosqichli to'lov

Ikki bosqichli to'lov prepare_payment metodida amalga oshiriladi va auto_capture = false parametri yordamida belgilanadi, bu esa so'rov tanasida ko'rsatiladi. Ushbu to'lov jarayonida mijozning mablag'lari bloklanadi (hollanadi) va tranzaksiya summasini tasdiqlash uchun qo'shimcha ravishda set_accept metodini chaqirish talab etiladi. Ikki xil stsenariy bo'lishi mumkin: tasdiqlangan summa yechilgan summaga teng bo'lgan holat yoki tasdiqlangan summa yechilgan summadan kam bo'lgan holat.


Eslatma

Agar tranzaksiya summasi 30 daqiqa ichida tasdiqlanmasa (bekor qilish bo'yicha batafsil ma'lumot uchun «To'lovni bekor qilish» bo'limiga qarang), tranzaksiya avtomatik ravishda bekor qilinadi.

Muhim!

Callback bizning tarafimizdan waiting_user_action yoki capture statusi olinmaguncha yuboriladi.


Ishlash jarayoni

To'liq summa tasdiqlash bo'yicha ish tartibi, Humo/Uzcard (PC)

  1. Mijoz mahsulot/xtizmatni tanladi;
  2. Savatchada "To'lov qilish" tugmasini bosdi;
  3. Hamkor tranzaksiyani prepare_payment usulida boshladi;
  4. Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
  5. Hamkor mijozga to'lov sahifasini ko'rsatadi;
  6. Mijoz bank kartasi ma'lumotlarini to'ldirib yuboradi;
  7. Hamkor pay usulida tranzaksiyani amalga oshiradi;
  8. Bizning BE tasdiqlaydi;
  9. Hamkor verificationInfo usulida to'lov id sini va OTP kodi amal qilish muddatini oladi;
  10. Bizning BE tasdiqlaydi;
  11. Protsessing markazi (PC) mijozga OTP kodi yuboradi;
  12. Mijoz OTP kodni Hamkorga yuboradi;
  13. Hamkor OTP kodni yuborish uchun check_sms_key usulidan foydalanadi;
  14. Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
  15. PC hold qilishni tasdiqlaydi yoki rad etadi;
  16. Biz Hamkorni hold qilishning muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
  17. To'lovni tasdiqlash so'rovini callback orqali yuboramiz;
  18. Hamkor to'liq to'lov summasini tasdiqlaydi, set_accept usulini ishlatadi;
  19. Summa o'zgarmaganiga amin bo'lamiz;
  20. Summani PC ga tasdiqlaymiz;
  21. PC dan tasdiq olamiz;
  22. Summani tasdiqlash bo'yicha javob yuboramiz;
  23. Mijozni Hamkor saytiga qaytarib yuboramiz.

Logotip


Qisman summa tasdiqlash bo'yicha ish tartibi, Humo/Uzcard (PC)

  1. Mijoz mahsulot/xtizmatni tanladi;
  2. Savatchada "To'lov qilish" tugmasini bosdi;
  3. Hamkor tranzaksiyani prepare_payment usulida boshladi;
  4. Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
  5. Hamkor mijozga to'lov sahifasini ko'rsatadi;
  6. Mijoz bank kartasi ma'lumotlarini to'ldirib yuboradi;
  7. Hamkor pay usulida tranzaksiyani amalga oshiradi;
  8. Bizning BE tasdiqlaydi;
  9. Hamkor verificationInfo usulida to'lov id sini va OTP kodi amal qilish muddatini oladi;
  10. Bizning BE tasdiqlaydi;
  11. Protsessing markazi (PC) mijozga OTP kodi yuboradi;
  12. Mijoz OTP kodni Hamkorga yuboradi;
  13. Hamkor OTP kodni yuborish uchun check_sms_key usulidan foydalanadi;
  14. Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
  15. PC hold qilishni tasdiqlaydi yoki rad etadi;
  16. Biz Hamkorni hold qilishning muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
  17. To'lovni tasdiqlash so'rovini callback orqali yuboramiz;
  18. Hamkor to'lovning qisman summasini tasdiqlaydi, set_accept usulini ishlatadi;
  19. Saqlangan mablag' miqdori kamayadi;
  20. Tranzaksiya summasi to'g'irlanadi;
  21. PC dan tasdiq olamiz;
  22. Summani tasdiqlash bo'yicha javob yuboramiz;
  23. PC mijozga qolgan mablag'ni qaytaradi.

Logotip


To'liq summa tasdiqlash bo'yicha ish tartibi, Visa/MC (PC)

  1. Mijoz mahsulot/xtizmatni tanladi;
  2. Savatchada "To'lov qilish" tugmasini bosdi;
  3. Hamkor tranzaksiyani prepare_payment usulida boshladi;
  4. Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
  5. Mijoz Hamkor sahifasida bank kartasi ma'lumotlarini to'ldirib yuboradi;
  6. Hamkor pay usulida tranzaksiyani amalga oshiradi;
  7. Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
  8. PC OTP kodni kiritish uchun havola yuboradi;
  9. Bizning BE tranzaksiyani tasdiqlaydi va ekranlar orqali OTP kodini kiritish uchun havola yuboradi;
  10. Hamkor mijozga OTP kod kiritish sahifasini ko'rsatadi;
  11. PC mijozga OTP kod yuboradi;
  12. Mijoz OTP kodni yuboradi;
  13. PC mablag'ni hold qilishni tasdiqlaydi;
  14. Biz Hamkorni hold qilish muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
  15. To'lovni tasdiqlash so'rovini callback orqali yuboramiz;
  16. Hamkor to'liq summani tasdiqlaydi, set_accept usulini ishlatadi;
  17. Summa o'zgarmaganiga amin bo'lamiz;
  18. Summani PC ga tasdiqlaymiz;
  19. PC dan tasdiq olamiz;
  20. Summani tasdiqlash bo'yicha javob yuboramiz.

Logotip


Qisman summa tasdiqlash bo'yicha ish tartibi, Visa/MC (PC)

  1. Mijoz mahsulot/xtizmatni tanladi;
  2. Savatchada "To'lov qilish" tugmasini bosdi;
  3. Hamkor tranzaksiyani prepare_payment usulida boshladi;
  4. Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
  5. Mijoz Hamkor sahifasida bank kartasi ma'lumotlarini to'ldirib yuboradi;
  6. Hamkor pay usulida tranzaksiyani amalga oshiradi;
  7. Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
  8. PC OTP kodni kiritish uchun havola yuboradi;
  9. Bizning BE tranzaksiyani tasdiqlaydi va ekranlar orqali OTP kodini kiritish uchun havola yuboradi;
  10. Hamkor mijozga OTP kod kiritish sahifasini ko'rsatadi;
  11. PC mijozga OTP kod yuboradi;
  12. Mijoz OTP kodni yuboradi;
  13. PC mablag'ni hold qilishni tasdiqlaydi;
  14. Biz Hamkorni hold qilish muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
  15. To'lovni tasdiqlash so'rovini callback orqali yuboramiz;
  16. Hamkor qisman summani tasdiqlaydi, set_accept usulini ishlatadi;
  17. Saqlangan mablag' miqdori kamayadi;
  18. Tranzaksiya summasi to'g'irlanadi;
  19. PC dan tasdiq olamiz;
  20. Summani tasdiqlash bo'yicha javob yuboramiz;
  21. PC mijozga qolgan mablag'ni qaytaradi.

Logotip


Metodlar

prepare_payment

  • URL: https://secure.octo.uz/prepare_payment
  • Method: POST
  • Content-type: application/json

Test operatsiyalari

Test operatsiyasini o'tkazish uchun prepare_payment usulini ishga tushirish kerak test parametrini so'rov tanasida true qiymati bilan belgilang. Ushbu parametr ixtiyoriy. Agar u ko'rsatilmagan bo'lsa, haqiqiy tranzaksiya yaratiladi.

Sinov operatsiyasini o'tkazish uchun belgilang - test: true

json
{
    "auto_capture": true,
    "test": true, 
    "init_time": "2024-05-02 09:17:00"
}

So‘rov namuna

Muhim!

Bir bosqichli to'lov - auto_capture: true

Ikki bosqichli to'lov - auto_capture: false

json
{
    "octo_shop_id": 123,
    "octo_secret": "537da54b-835a-4968-9864-c2ae02c5902e",
    "shop_transaction_id": "0000_0000_0000_0000_0010",
    "auto_capture": true, 
    "test": false,
    "init_time": "2024-05-02 09:17:00",
    "user_data": {
        "user_id": "Johnny Depp",
        "phone": "998901234567",
        "email": "octo@mail.com"
    },
    "total_sum": 1000.0,
    "currency": "UZS",
    "description": "TEST_PAYMENT",
    "basket": [
        {
            "position_desc": "Йогурт MANON клубничный",
            "count": 2,
            "price": 10.0,
            "spic": "special_information_for_position"
        },
        {
            "position_desc": "Йогурт MANON банановый",
            "count": 1,
            "price": 20.0,
            "spic": "special_information_for_position"
        }
    ],
    "payment_methods": [
        {
            "method": "bank_card"
        },
        {
            "method": "uzcard"
        },
        {
            "method": "humo"
        }
    ],
    "tsp_id": 18,
    "return_url": "https://octo.uz" // (URL har doim to'liq bo'lishi kerak),
    "notify_url": "https://notify-url.uz",
    "language": "uz",
    "ttl": 15
}

So‘rov parametrlari

ParametrTuriMajburiylikTavsif
octo_shop_idIntegerHaDo‘konning noyob identifikatori (do‘konning Shaxsiy kabinetida mavjud).
octo_secretStringHaDo‘konning Shaxsiy kabinetida yaratiladigan shaxsiy maxfiy kalit. Saytning xavfsiz hududida saqlanishi kerak.
shop_transaction_idStringHaDo‘kon tomonidagi tranzaksiya uchun noyob identifikator. Takroriy tranzaksiyalarni oldini olish uchun ishlatiladi.
auto_captureBoolHatrue bo‘lsa, Octo avtomatik ravishda xaridor hisobidan mablag‘ni chiqarishni tasdiqlaydi. false bo‘lsa, qo‘shimcha tasdiq talab etiladi.
testBoolHaTest rejimi to‘lovi yoki yo‘qligini bildiradi.
init_timeDatetimeHaTo‘lov yaratilgan vaqt (yyyy-MM-dd HH:mm:ss formatida).
user_dataObjectYo‘qXaridor haqidagi ma’lumotlar.
user_data.user_idStringHaDo‘kon ma’lumotlar bazasidagi foydalanuvchi identifikatori.
user_data.phoneStringHaXaridor telefon raqami.
user_data.emailStringHaXaridor elektron pochtasi.
total_sumDoubleHaTo‘lovning yakuniy miqdori.
currencyStringHaValyuta: USD, UZS, RUB.
descriptionStringHaMahsulot yoki xizmat tavsifi.
basketArrayHaSavat haqidagi ma’lumotlar.
basket.position_descStringHaPozitsiya nomi.
basket.countIntHaPozitsiya soni.
basket.priceDoubleHaPozitsiya narxi.
basket.spicStringYo‘qPozitsiya haqidagi qo‘shimcha ma’lumotlar.
payment_methodsArrayYo‘qTo‘lov usullari (bank_card, uzcard, humo).
payment_methods.methodStringHaTo‘lov usuli nomi.
tsp_idIntYo‘qSavdo va xizmat ko‘rsatish korxonasi identifikatori.
return_urlStringHaXaridor to‘lov tugagandan so‘ng yo‘naltiriladigan URL. URL noyob identifikatorni o‘z ichiga olishi kerak.
notify_urlStringYo‘qOcto serveri tomonidan yuboriladigan bildirishnomalar uchun URL. Agar belgilangan bo‘lmasa, umumiy URL ishlatiladi.
languageStringHaTo‘lov sahifasi tili (oz - lotincha o‘zbek, uz - kirill o‘zbek, en - ingliz, ru - rus).
ttlIntYo‘qTo‘lov amal qilish muddati (daqiqalarda).

Muvaffaqiyatli javob namuna

json
{
    "error": 0,
    "data": {
        "shop_transaction_id": "c9211e0f-c6ba-4d97-b8be-fb230ef3985b",
        "octo_payment_UUID": "e3f40dc3-4955-412a-853a-2ddd28d3201f",
        "status": "created",
        "octo_pay_url": "https://pay2.octo.uz/pay/e3f40dc3-4955-412a-853a-2ddd28d3201f?language=uz",
        "refunded_sum": 0,
        "total_sum": 1000.0
    },
    "apiMessageForDevelopers": "",
    "shop_transaction_id": "c9211e0f-c6ba-4d97-b8be-fb230ef3985b",
    "octo_payment_UUID": "e3f40dc3-4955-412a-853a-2ddd28d3201f",
    "status": "created",
    "octo_pay_url": "https://pay2.octo.uz/pay/e3f40dc3-4955-412a-853a-2ddd28d3201f?language=uz",
    "refunded_sum": 0,
    "total_sum": 1000.0
}

Muvaffaqiyatli javob parametrlari

ParametrTuriMajburiyligiTavsif
errorintHa (agar error=0 bo'lsa)Xatolik kodi (0 — xatolik yo'q).
dataobjectHa (agar error=0 bo'lsa)To'lov haqidagi ma'lumotlarni o'z ichiga olgan asosiy obyekt.
data.shop_transaction_idstringHa (agar error=0 bo'lsa)Do'kon tomonidan berilgan tranzaksiyaning unikallik identifikatori.
data.octo_payment_UUIDstringHa (agar error=0 bo'lsa)Octo tizimidagi to'lovning unikallik identifikatori.
data.statusstringHa (agar error=0 bo'lsa)To'lov holati.
data.octo_pay_urlstringHa (agar error=0 bo'lsa)Octo tizimida to'lovga o'tish uchun URL.
data.refunded_sumdoubleYo'qQaytarilgan summa (agar qaytim bo'lsa).
data.total_sumdoubleHa (agar error=0 bo'lsa)To'lovning umumiy summasi.
apiMessageForDevelopersstringYo'qAPI tomonidan taqdim etilgan dasturchilar uchun xabar (muvaffaqiyatli holatda bo'sh bo'ladi).
shop_transaction_idstringHa (agar error=0 bo'lsa)data obyektidagi shop_transaction_id ning dublikati.
octo_payment_UUIDstringHa (agar error=0 bo'lsa)data obyektidagi octo_payment_UUID ning dublikati.
statusstringHa (agar error=0 bo'lsa)data obyektidagi status ning dublikati.
octo_pay_urlstringHa (agar error=0 bo'lsa)data obyektidagi octo_pay_url ning dublikati.
refunded_sumdoubleHa (agar error=0 bo'lsa)data obyektidagi refunded_sum ning dublikati.
total_sumdoubleHa (agar error=0 bo'lsa)data obyektidagi total_sum ning dublikati.

Muvaffaqiyatsiz javob namuna

json
{
    "error": 2,
    "errMessage": "Wrong secret",
    "data": null,
    "errorMessage": "Wrong secret",
    "apiMessageForDevelopers": "Maydon errorMessage eskirgan, iltimos, javoblarni unifikatsiyalash uchun errMessage ga o'ting. Shuningdek, kelajakda error va errMessage dan tashqari barcha maydonlar data ichida uzatiladi. Batafsil ma'lumot uchun xizmat texnik yordami bilan bog'laning."
}

Muvaffaqiyatsiz javob namuna

ParametrTuriMajburiyligiTavsif
errorintHaXatolik kodi (0 xatolik yo'qligini bildiradi).
errMessagestringHaXatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa).
dataobjectYo'qTranzaksiyaning asosiy ma'lumotlari (xatolik yuz berganda null bo'lishi mumkin).
errorMessagestringHaXatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa).
apiMessageForDevelopersstringYo'qTexnik xabar (qo'shimcha ma'lumot uchun maydon).

Muhim!

errorMessage maydoni eskirgan, javoblarni unifikatsiya qilish uchun errMessage-ga o'tishni so'raymiz. Iltimos, shuni yodda tutingki, kelajakda error va errMessage-dan tashqari barcha maydonlar data-ga yuboriladi. Agar javoblar tuzilmasi haqida savollaringiz bo‘lsa, Octo texnik yordam xizmatiga murojaat qiling.



pay

  • URL: https://secure.octo.uz/pay/{octo_payment_UUID}
  • Method: POST
  • Content-type: application/json

So'rovnoma

json
{
    "pan": "8600313260861293",       // Operatsiyani amalga oshirish uchun ishlatiladigan mijozning karta raqami.
    "exp": "2602",                  // yyyy-MM (yil/oy) formatidagi kartaning amal qilish muddati.
    "method": "uzcard",             // To'lov usuli. Ruxsat etilgan qiymatlar: bank_card, uzcard, humo
    "cvc2": "",                     // Kartaning CVC2 kodi.
    "cardHolderName": "CardHolder Name", // Karta egasining ismi (kartada ko'rsatilganidek).
    "email": "client@mail.com"      // Foydalanuvchining elektron pochtasi.
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
panstringHaOperatsiyani amalga oshirish uchun mijozning karta raqami.
expstringHaKartaning amal qilish muddati (yyyy-MM formatida).
methodstringHaTo'lov usuli.
cvc2stringHaKartaning CVC2 kodi.
cardHolderNamestringHaKarta egasining ismi (kartada ko'rsatilganidek).
emailstringHaFoydalanuvchining elektron pochtasi.

Muvaffaqiyatli Javob

json
{
    "error": 0,        // Xato kodi: 0 xatolar yo'qligini anglatadi.
    "errMessage": "",  // Xato haqida xabar, agar xato bo'lmasa, bo'sh qoladi.
    "data": {
        "id": 5520,    // Operatsiyaning noyob identifikatori.
        "uuid": "04b7f6dd-4693-4afa-96e9-f42790413de7", // Operatsiyani identifikatsiya etish uchun UUID.
        "merchantId": 242, // Savdogarning identifikatori.
        "initialSum": 1000.00, // Dastlabki to'lov miqdori.
        "totalSum": 1000.00, // Umumiy to'lov miqdori.
        "currency": "UZS", // Valyuta.
        "description": "TEST_PAYMENT", // Operatsiya tavsifi.
        "status": "created", // Operatsiya holati.
        "redirectUrl": "https://pay2.octo.uz/uzcard/sms/04b7f6dd-4693-4afa-96e9-f42790413de7", // To'lov sahifasiga URL.
        "user": {
            "email": "client@mail.com", // Foydalanuvchining elektron pochtasi.
            "phone": "998901234567" // Foydalanuvchining telefon raqami.
        }
    }
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
errorintHaXato kodi (0 – xatolar yo'q).
errMessagestringYo'qXato haqida xabar.
dataobjectHaOperatsiyaning batafsil ma'lumotlarini o'z ichiga oladi.
idintHaOperatsiyaning noyob identifikatori.
uuidstringHaOperatsiyani identifikatsiya qilish uchun UUID.
merchantIdintHaSavdogarning identifikatori.
initialSumdecimalHaDastlabki to'lov miqdori.
totalSumdecimalHaUmumiy to'lov miqdori (o'z ichiga komissiyalarni olishi mumkin).
currencystringHaValyuta (masalan, UZS).
descriptionstringHaOperatsiyaning qisqacha ta'rifi.
statusstringHaOperatsiya holati (masalan, "created").
redirectUrlstringHaTo'lov sahifasiga qayta yo'naltirish uchun URL.
user.emailstringYo'qFoydalanuvchining elektron pochtasi.
user.phonestringYo'qFoydalanuvchining telefon raqami.

Muvaffaqiyatsiz Javob

json
{
    "error": 2,                // Xato kodi.
    "errMessage": "Wrong secret", // Xato haqida xabar.
    "data": null               // Operatsiya haqida ma'lumot yo'q.
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
errorintHaXato kodi.
errMessagestringHaXato haqida xabar.
dataobjectYo'qOperatsiya haqida batafsil ma'lumot.


verificationInfo

  • URL: https://secure.octo.uz/verificationInfo/{octo_payment_UUID}
  • Method: POST
  • Content-type: application/json

So'rovnoma

Muhim!

Faqat octo_payment_UUID jo'natiladi.

Muvaffaqiyatli javob

json
{
  "error": 0,             // Xato kodi: 0 xatolar yo'qligini anglatadi.
  "errMessage": "",      // Xato haqida xabar, agar xato bo'lmasa, bo'sh qoladi.
  "data": {
    "verifyId": 819,      // Verifikatsiya jarayonining noyob identifikatori.
    "phone": "+998** *****33",  // Verifikatsiya bog'langan telefon raqami (xavfsizlik uchun qisman yashiringan).
    "secondsLeft": 221     // Verifikatsiya amal qilish muddati tugashigacha qolgan vaqt (soniyalarda)
  }
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
errorintHaXato kodi: 0 xatolar yo'qligini anglatadi.
errMessagestringYo'qXato haqida xabar, agar xato bo'lmasa, bo'sh qoladi.
dataobjectHaVerifikatsiya jarayonining tafsilotlariga ega ob'ekt.
verifyIdintHaVerifikatsiya jarayonining noyob identifikatori.
phonestringHaVerifikatsiya bog'langan telefon raqami.
secondsLeftintHaVerifikatsiya amal qilish muddati tugashigacha qolgan vaqt (soniyalarda).

Muvaffaqiyatsiz javob

json
{
  "error": 0,             // Xato kodi: 0 xatolar yo'qligini anglatadi.
  "errMessage": "",      // Xato haqida xabar, agar xato bo'lmasa, bo'sh qoladi.
  "data": {
    "verifyId": 819,      // Verifikatsiya jarayonining noyob identifikatori.
    "phone": "+998** *****33",  // Verifikatsiya bog'langan telefon raqami (xavfsizlik uchun qisman yashiringan).
    "secondsLeft": 0       // Verifikatsiya amal qilish muddati tugashigacha qolgan vaqt (soniyalarda). Muvaffaqiyatsiz javob bo'lsa, u 0 qiymati bilan qolaveradi.
  }
}

Muhim!

verificationInfo muvaffaqiyatsiz javobini bersa, siz muvaffaqiyatli javobdagidek javob olasiz, ammo secondsLeft parametrida 0 bo'ladi.

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
errorintHaXato kodi (0 xatolar mavjud emasligini bildiradi).
errMessagestringYo'qXato haqida xabar (xato sodir bo'lganda).
dataobjectHaVerifikatsiya jarayonining tafsilotlariga ega ob'ekt.
verifyIdintHaVerifikatsiya jarayonining noyob identifikatori.
phonestringHaVerifikatsiya bog'langan telefon raqami.
secondsLeftintHaVerifikatsiya amal qilish muddati tugashigacha qolgan vaqt (soniyalarda).

Muhim!

Agar secondsLeft=0 bo‘lsa, demak, tekshirish vaqti tugagan yoki tekshirish jarayoni faol emas. Integratsiya bo‘yicha savollaringiz bo‘lsa, Octo xizmatining texnik qo‘llab-quvvatlashiga murojaat qiling.


check_sms_key

  • URL: https://secure.octo.uz/check_sms_key
  • Method: POST
  • Content-type: application/json

So'rovnoma

json
{
    "smsKey": "317168", // SMS orqali yuborilgan tasdiqlash kodi
    "paymentId": 822, // Noyob to'lov identifikatori
    "verifyId": "{{verifyId}}" // Tekshiruv jarayonining yagona identifikatori (oldingi bosqichdagi qiymat bilan almashtirilgan)
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
smsKeystringHaTranzaktsiyani tasdiqlash uchun SMS-kod yuboriladi.
to'lov identifikatoriintHaNoyob to'lov identifikatori
verifyIdintHaoperatsiyani tasdiqlash uchun ID

Muvaffaqiyatli Javob

json
{
    "error": 0,
    "errMessage": "",
    "data": {
        "id": 5520,
        "uuid": "04b7f6dd-4693-4afa-96e9-f42790413de7",
        "processorKey": "010967385013",
        "merchantId": 242,
        "merchant": null,
        "merchantTransId": "638421f6-dbc0-4875-8ff9-c6ffe3766087",
        "initialSum": 1000.00,
        "totalSum": 1000.00,
        "splittedSum": 1000.00,
        "currency": "UZS",
        "convertSum": null,
        "convertRate": null,
        "convertCurrency": null,
        "selectedMethod": "uzcard",
        "createTime": 1732700367802,
        "expireTime": 1732701267781,
        "peyedTime": 1732700437809,
        "expiredHoldTime": null,
        "merCreateTime": 15420000,
        "description": "TEST_PAYMENT",
        "autoCapture": true,
        "withoutSite": false,
        "isTest": false,
        "refundLocked": false,
        "returnUrl": "octo.uz",
        "redirectUrl": "https://dev-pay.octo.uz/status/04b7f6dd-4693-4afa-96e9-f42790413de7",
        "details": {
            "transType": "SMS",
            "commission": "2.00",
            "cardType": "uzcard"
        },
        "hold": null,
        "payMethods": [
            {
                "only": null,
                "method": "bank_card"
            },
            {
                "only": null,
                "method": "uzcard"
            },
            {
                "only": null,
                "method": "humo"
            }
        ],
        "status": "succeeded",
        "basket": null,
        "user": {
            "email": "client@mail.com",
            "phone": "998901234567",
            "user_id": "Elbek"
        },
        "airline": null,
        "language": "uz",
        "tariffId": 2,
        "fee": 20.0000,
        "transferSum": 980.0000,
        "refundedSum": 0.00,
        "provCode": "uzcard",
        "optionalData": null,
        "forConsideration": false,
        "riskLevel": 0,
        "auditedAt": null,
        "auditorId": null,
        "bankCode": "RB",
        "merchantCardId": null,
        "processingReference": "1732700437604_5520",
        "requestProcessingStatus": null,
        "requestProcessingTryCount": 0,
        "currentStep": null,
        "tag": "ticket",
        "tspId": null,
        "cardInputType": "merchant_site",
        "redirectTimeout": null,
        "merchantStatus": null,
        "fiscalDetails": {
            "fiscalClassifierIds": [18],
            "status": "success",
            "errorCode": "0",
            "message": "accepted",
            "createTime": "1732700438714"
        },
        "showButtonSaveCard": null,
        "test": false
    }
}

Muvaffaqiyatli javob parametrlari

ParametrTurMajburiylikTavsif
errorintHaXato kodi. 0 so'rov muvaffaqiyatli bajarilganligini bildiradi.
errMessagestringYo'qXato haqida xabar. Agar xato bo'lmasa, bo'sh bo'ladi.
dataobjectHaTo'lov haqida batafsil ma'lumotni o'z ichiga oladi.
data.idintHaTo'lovning noyob identifikatori.
data.uuidstringHaTo'lov uchun noyob UUID.
data.processorKeystringHaTranzaksiya ishlov berish tizimining kaliti.
data.merchantIdintHaSavdogarning noyob identifikatori.
data.merchant-HaSavdogar haqidagi ma'lumotlar.
data.merchantTransIdstringHaSavdogar tomonidan taqdim etilgan tranzaksiya identifikatori.
data.initialSumdecimalHaTranzaksiya boshlang'ich summasi.
data.totalSumdecimalHaJami summa (komissiyalarni ham o'z ichiga oladi).
data.splittedSumdecimalHaBir nechta qabul qiluvchilar o'rtasida taqsimlangan summa.
data.currencystringHaTranzaksiya valyutasi (masalan, UZS).
data.convertSumdecimalHaKonvertatsiya qilingan summa (agar mavjud bo'lsa).
data.convertRatedecimalHaKonvertatsiya kursi.
data.convertCurrencystringHaKonvertatsiya qilingan valyuta nomi.
data.selectedMethodstringHaTanlangan to'lov usuli.
data.createTimelongHaTranzaksiya yaratilgan vaqti (Unix timestamp formatida).
data.expireTimelongHaTranzaksiya muddati tugash vaqti (Unix timestamp formatida).
data.peyedTimelongHaTo'lov muvaffaqiyatli amalga oshirilgan vaqt (Unix timestamp).
data.expiredHoldTimelongHaMablag'ni ushlab turish muddati tugash vaqti (agar mavjud bo'lsa).
data.merCreateTimelongHaSavdogar tizimida yaratilgan vaqt.
data.descriptionstringHaTranzaksiya tavsifi.
data.autoCaptureboolHaTo'lov avtomatik tasdiqlanishini bildiradi.
data.returnUrlstringHaTo'lov tugaganidan so'ng qaytish uchun URL.
data.redirectUrlstringHaFoydalanuvchini yo'naltirish uchun URL.
data.detailsobjectHaTo'lov haqida qo'shimcha ma'lumotlar.
data.details.transTypestringHaTranzaksiya turi (masalan, SMS tasdiq).
data.details.commissionstringHaTranzaksiya uchun komissiya.
data.details.cardTypestringHaTo'lov uchun ishlatilgan karta turi (masalan, Uzcard).
data.holdobjectHaMablag'ni ushlab turish haqida ma'lumot (agar mavjud bo'lsa).
data.payMethodsarrayHaMavjud to'lov usullari ro'yxati.
data.payMethods.onlystringHaTo'lov usulining mavjudligi uchun qo'shimcha shartlar.
data.payMethods.methodstringHaTo'lov usuli nomi.
data.statusstringHaTranzaksiya holati (masalan, succeeded).
data.basketList<Object>HaTranzaksiya bilan bog'liq savat ma'lumotlari.
data.userobjectHaFoydalanuvchi haqidagi ma'lumotlar.
data.user.emailstringHaFoydalanuvchi elektron pochta manzili.
data.user.phonestringHaFoydalanuvchi telefon raqami.
data.user.user_idstringHaFoydalanuvchining noyob identifikatori.
data.airlineobjectHaAviakompaniya haqidagi ma'lumotlar (agar mavjud bo'lsa).
data.languagestringHaInterfeys tili (masalan, uz, ru, en).
data.tariffIdintHaTarif identifikatori.
data.feedecimalHaKomissiya summasi.
data.transferSumdecimalHaKomissiya chiqarib tashlangan summa.
data.refundedSumdecimalHaQaytarilgan summa (agar mavjud bo'lsa).
data.provCodestringHaTranzaksiya provayderining kodi.
data.optionalDatastringHaQo'shimcha ma'lumotlar.
data.forConsiderationboolHaTranzaksiya ko'rib chiqilayotganligini bildiradi.
data.riskLevelintHaTranzaksiya xavf darajasi.
data.auditedAtlongHaTranzaksiya tekshirilgan vaqti.
data.auditorIdintHaAuditor identifikatori.
data.bankCodestringHaBank kodi.
data.merchantCardIdstringHaSavdogarning kartasi identifikatori (agar mavjud bo'lsa).
data.processingReferencestringHaTranzaksiya ishlov berish tizimining referensi.
data.requestProcessingStatusstringHaSo'rovni ishlov berish holati.
data.requestProcessingTryCountintHaSo'rovni qayta ishlash urinishlari soni.
data.currentStepstringHaTranzaksiya hozirgi bosqichi.
data.tagstringHaTranzaksiya belgisi.
data.tspIdintHaSavdo-sotiqni qo'llovchi tashkilot identifikatori.
data.cardInputTypestringHaKarta ma'lumotlarini kiritish turi.
data.redirectTimeoutlongHaYo'naltirish uchun ajratilgan vaqt.
data.merchantStatusstringHaSavdogar tizimidagi operatsiya holati.
data.fiscalDetailsobjectHaFiskal ma'lumotlar.
data.fiscalDetails.fiscalClassifierIdsList<int>HaFiskal klassifikator identifikatorlari ro'yxati.
data.fiscalDetails.statusstringHaFiskalizatsiya holati.
data.fiscalDetails.errorCodestringHaFiskalizatsiya xato kodi.
data.fiscalDetails.messagestringHaFiskalizatsiya haqida xabar.
data.fiscalDetails.createTimelongHaFiskal ma'lumotlar yaratilgan vaqt.
data.showButtonSaveCardboolHaKarta saqlash tugmasini ko'rsatish kerakligini bildiradi.
data.testboolHaTranzaksiya test rejimida ekanligini bildiradi.

Muvaffaqiyatsiz Javob

json
{
    "error": 2,                // Xato kodi
    "errMessage": "Wrong secret",  // Xato xabari
    "data": null               // To'lov haqida ma'lumotlar mavjud emas
}

Parametrlar tavsifi

ParametrTurMajburiylikTavsif
errorintHaXato kodi.
errMessagestringHaXato haqida xabar.
dataobjectYo'qTranzaksiya asosiy ma'lumotlari. null bo'lishi mumkin.

set_accept

  • URL: https://secure.octo.uz/set_accept
  • Method: POST
  • Content-type: application/json

Eslatma!

set_accept metodi prepare_payment metodi bilan to‘lov muvaffaqiyatli boshlanganidan keyin chaqirilishi kerak. Integratsiya bo‘yicha savollaringiz bo‘lsa, texnik yordam xizmatiga murojaat qiling.

So'rovnoma

json
{
    "octo_shop_id": "{merchant_id}",
    "octo_secret": "{{merchant_secret}}",
    "octo_payment_UUID": "{{octo_payment_UUID}}",
    "accept_status": "capture", // "cancel"
    "final_amount": 10.00
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
octo_shop_idintHaDo'konning Shaxsiy kabinetida mavjud do'konning noyob identifikatori.
octo_secretstringHaDo'konning maxfiy kaliti.
octo_payment_UUIDstringHaOCTO tizimi tomonidan yaratilgan to'lovning noyob identifikatori.
accept_statusstringHaOperatsiyani tasdiqlash holati: capture yoki cancel.
final_amountdecimalHaTo'lovning yakuniy miqdori.

Muvaffaqiyatli javob

json
{
    "error": 0,
    "data": {
        "shop_transaction_id": "6354c573-040a-490f-8d1f-2bb5c89b6d9d",
        "octo_payment_UUID": "6b6b4477-ab8b-49dc-97eb-638b15b9b3e9",
        "status": "succeeded",
        "octo_pay_url": "https://dev-pay.octo.uz/pay/6b6b4477-ab8b-49dc-97eb-638b15b9b3e9?language=uz",
        "transfer_sum": 980.00,
        "refunded_sum": 0.00,
        "total_sum": 1000.00,
        "payed_time": "2024-12-18 16:15:34"
    },
    "apiMessageForDevelopers": "errorMessage maydoni eskirgan, javoblarni unifikatsiya qilish uchun errMessage-ga o'tishni so'raymiz.",
    "shop_transaction_id": "6354c573-040a-490f-8d1f-2bb5c89b6d9d",
    "octo_payment_UUID": "6b6b4477-ab8b-49dc-97eb-638b15b9b3e9",
    "status": "succeeded",
    "octo_pay_url": "https://dev-pay.octo.uz/pay/6b6b4477-ab8b-49dc-97eb-638b15b9b3e9?language=uz",
    "transfer_sum": 980.00,
    "refunded_sum": 0.00,
    "total_sum": 1000.00,
    "payed_time": "2024-12-18 16:15:34"
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
errorintHaXato kodi. 0 qiymati muvaffaqiyatli so'rovni anglatadi.
dataobjectHaTo'lov haqida batafsil ma'lumotga ega ob'ekt.
data.shop_transaction_idstringHaOperatsiyaning do'kondagi noyob identifikatori.
data.octo_payment_UUIDstringHaTo'lovning Octo tizimidagi noyob identifikatori.
data.statusstringHaTo'lov holati (succeeded, failed, pending).
data.octo_pay_urlstringHaTo'lovga yoki to'lov holatini ko'rish uchun URL.
data.transfer_sumfloatHaChegirmalar hisobga olingan o'tkazilgan pul miqdori.
data.refunded_sumfloatYo'qQaytarilgan pul miqdori. Agar qaytarish bo'lmasa, qiymat 0.
data.total_sumfloatHaDastlab so'ralgan to'lov miqdori.
data.payed_timestringYo'qYYYY-MM-DD HH:MM:SS formatida to'lovni muvaffaqiyatli yakunlash vaqti.
apiMessageForDevelopersstringYo'qAPI holati yoki o'zgarishlar haqida ishlab chiquvchilarga xabar.

Muvaffaqiyatsiz javob

json
{
    "error": 2,
    "errMessage": "Wrong secret",
    "data": null,
    "errorMessage": "Wrong secret",
    "apiMessageForDevelopers": "errorMessage maydoni eskirgan, javoblarni unifikatsiya qilish uchun errMessage-ga o'tishni so'raymiz."
}

Parametrlar tavsifi

ParametrTuriMajburiylikTavsif
errorintHaXato kodi.
errMessagestringHaXato haqida xabar.
dataobjectYo'qOperatsiya haqida asosiy ma'lumot.
errorMessagestringHaXato haqida xabar.
apiMessageForDevelopersstringYo'qIshlab chiquvchilar uchun xabar.

callback

  • URL: https://secure.octo.uz/callback
  • Method: POST
  • Content-type: application/json

Callback tasdiqlash summasi:

json
{
  "octo_secret":"***",
  "octo_payment_UUID":"0800a75f-1f50-4da8-9225-ae43028cbad1",
  "accept_status":"capture",
  "final_amount":437278.66
}
ParametrTuriMajburiyTavsif
octo_secretStringHaDo‘konning shaxsiy maxfiy kaliti, do‘kon kabinetida generatsiya qilinadi. Xavfsiz hududda saqlanishi kerak
octo_payment_UUIDStringHa (error=0
bo‘lsa)
Octo tizimidagi noyob to‘lov identifikatori
accept_statusStringHaTasdiqlash holati, waiting_for_capture holatidagi tranzaksiyalar uchun majburiy
Qiymatlar:
capture – to‘lovni tasdiqlash
cancel – to‘lovni bekor qilish
final_amountDecimalYo‘qTasdiqlangan to‘lov summasi

Callback javob strukturası:

json
{
  "accept_status": "capture",
  "final_amount": 1000.00
}
ParametrTuriMajburiyTavsif
accept_statusStringHaTasdiqlash holati, waiting_for_capture holatidagi tranzaksiyalar uchun majburiy
Qiymatlar:
capture – to‘lovni tasdiqlash
cancel – to‘lovni bekor qilish
final_amountDecimalYo‘qTasdiqlangan to‘lov summasi

Ogohlantirish

Octo do‘konlarning maxfiy kalitlarini ochiq shaklda saqlamaydi va bildirishnomalarni imzolash uchun ishlatmaydi. Shuning uchun, Octo dan kelgan xabarnomaga asoslanib holatni o‘zgartirishdan oldin, joriy holatni qo‘shimcha so‘rov bilan tasdiqlash tavsiya etiladi. Bunday so‘rov do‘konning maxfiy kaliti bilan imzolanadi va shifrlanadi, bu uning haqiqiyligini kafolatlaydi.