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)
- Mijoz mahsulot/xtizmatni tanladi;
- Savatchada "To'lov qilish" tugmasini bosdi;
- Hamkor tranzaksiyani
prepare_payment
usulida boshladi; - Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
- Hamkor mijozga to'lov sahifasini ko'rsatadi;
- Mijoz bank kartasi ma'lumotlarini to'ldirib yuboradi;
- Hamkor
pay
usulida tranzaksiyani amalga oshiradi; - Bizning BE tasdiqlaydi;
- Hamkor
verificationInfo
usulida to'lov id sini va OTP kodi amal qilish muddatini oladi; - Bizning BE tasdiqlaydi;
- Protsessing markazi (PC) mijozga OTP kodi yuboradi;
- Mijoz OTP kodni Hamkorga yuboradi;
- Hamkor OTP kodni yuborish uchun
check_sms_key
usulidan foydalanadi; - Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
- PC hold qilishni tasdiqlaydi yoki rad etadi;
- Biz Hamkorni hold qilishning muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
- To'lovni tasdiqlash so'rovini
callback
orqali yuboramiz; - Hamkor to'liq to'lov summasini tasdiqlaydi,
set_accept
usulini ishlatadi; - Summa o'zgarmaganiga amin bo'lamiz;
- Summani PC ga tasdiqlaymiz;
- PC dan tasdiq olamiz;
- Summani tasdiqlash bo'yicha javob yuboramiz;
- Mijozni Hamkor saytiga qaytarib yuboramiz.
Qisman summa tasdiqlash bo'yicha ish tartibi, Humo/Uzcard (PC)
- Mijoz mahsulot/xtizmatni tanladi;
- Savatchada "To'lov qilish" tugmasini bosdi;
- Hamkor tranzaksiyani
prepare_payment
usulida boshladi; - Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
- Hamkor mijozga to'lov sahifasini ko'rsatadi;
- Mijoz bank kartasi ma'lumotlarini to'ldirib yuboradi;
- Hamkor
pay
usulida tranzaksiyani amalga oshiradi; - Bizning BE tasdiqlaydi;
- Hamkor
verificationInfo
usulida to'lov id sini va OTP kodi amal qilish muddatini oladi; - Bizning BE tasdiqlaydi;
- Protsessing markazi (PC) mijozga OTP kodi yuboradi;
- Mijoz OTP kodni Hamkorga yuboradi;
- Hamkor OTP kodni yuborish uchun
check_sms_key
usulidan foydalanadi; - Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
- PC hold qilishni tasdiqlaydi yoki rad etadi;
- Biz Hamkorni hold qilishning muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
- To'lovni tasdiqlash so'rovini
callback
orqali yuboramiz; - Hamkor to'lovning qisman summasini tasdiqlaydi,
set_accept
usulini ishlatadi; - Saqlangan mablag' miqdori kamayadi;
- Tranzaksiya summasi to'g'irlanadi;
- PC dan tasdiq olamiz;
- Summani tasdiqlash bo'yicha javob yuboramiz;
- PC mijozga qolgan mablag'ni qaytaradi.
To'liq summa tasdiqlash bo'yicha ish tartibi, Visa/MC (PC)
- Mijoz mahsulot/xtizmatni tanladi;
- Savatchada "To'lov qilish" tugmasini bosdi;
- Hamkor tranzaksiyani
prepare_payment
usulida boshladi; - Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
- Mijoz Hamkor sahifasida bank kartasi ma'lumotlarini to'ldirib yuboradi;
- Hamkor
pay
usulida tranzaksiyani amalga oshiradi; - Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
- PC OTP kodni kiritish uchun havola yuboradi;
- Bizning BE tranzaksiyani tasdiqlaydi va ekranlar orqali OTP kodini kiritish uchun havola yuboradi;
- Hamkor mijozga OTP kod kiritish sahifasini ko'rsatadi;
- PC mijozga OTP kod yuboradi;
- Mijoz OTP kodni yuboradi;
- PC mablag'ni hold qilishni tasdiqlaydi;
- Biz Hamkorni hold qilish muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
- To'lovni tasdiqlash so'rovini
callback
orqali yuboramiz; - Hamkor to'liq summani tasdiqlaydi,
set_accept
usulini ishlatadi; - Summa o'zgarmaganiga amin bo'lamiz;
- Summani PC ga tasdiqlaymiz;
- PC dan tasdiq olamiz;
- Summani tasdiqlash bo'yicha javob yuboramiz.
Qisman summa tasdiqlash bo'yicha ish tartibi, Visa/MC (PC)
- Mijoz mahsulot/xtizmatni tanladi;
- Savatchada "To'lov qilish" tugmasini bosdi;
- Hamkor tranzaksiyani
prepare_payment
usulida boshladi; - Bizning Back-end (BE) to'lov uchun Front-end (FE) havolasini yuboradi;
- Mijoz Hamkor sahifasida bank kartasi ma'lumotlarini to'ldirib yuboradi;
- Hamkor
pay
usulida tranzaksiyani amalga oshiradi; - Bizning BE mablag'ni hold qilish uchun PC ga so'rov yuboradi;
- PC OTP kodni kiritish uchun havola yuboradi;
- Bizning BE tranzaksiyani tasdiqlaydi va ekranlar orqali OTP kodini kiritish uchun havola yuboradi;
- Hamkor mijozga OTP kod kiritish sahifasini ko'rsatadi;
- PC mijozga OTP kod yuboradi;
- Mijoz OTP kodni yuboradi;
- PC mablag'ni hold qilishni tasdiqlaydi;
- Biz Hamkorni hold qilish muvaffaqiyatli/muvaffaqiyatsizligi haqida xabardor qilamiz;
- To'lovni tasdiqlash so'rovini
callback
orqali yuboramiz; - Hamkor qisman summani tasdiqlaydi,
set_accept
usulini ishlatadi; - Saqlangan mablag' miqdori kamayadi;
- Tranzaksiya summasi to'g'irlanadi;
- PC dan tasdiq olamiz;
- Summani tasdiqlash bo'yicha javob yuboramiz;
- PC mijozga qolgan mablag'ni qaytaradi.
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
{
"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
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
octo_shop_id | Integer | Ha | Do‘konning noyob identifikatori (do‘konning Shaxsiy kabinetida mavjud). |
octo_secret | String | Ha | Do‘konning Shaxsiy kabinetida yaratiladigan shaxsiy maxfiy kalit. Saytning xavfsiz hududida saqlanishi kerak. |
shop_transaction_id | String | Ha | Do‘kon tomonidagi tranzaksiya uchun noyob identifikator. Takroriy tranzaksiyalarni oldini olish uchun ishlatiladi. |
auto_capture | Bool | Ha | true bo‘lsa, Octo avtomatik ravishda xaridor hisobidan mablag‘ni chiqarishni tasdiqlaydi. false bo‘lsa, qo‘shimcha tasdiq talab etiladi. |
test | Bool | Ha | Test rejimi to‘lovi yoki yo‘qligini bildiradi. |
init_time | Datetime | Ha | To‘lov yaratilgan vaqt (yyyy-MM-dd HH:mm:ss formatida). |
user_data | Object | Yo‘q | Xaridor haqidagi ma’lumotlar. |
user_data.user_id | String | Ha | Do‘kon ma’lumotlar bazasidagi foydalanuvchi identifikatori. |
user_data.phone | String | Ha | Xaridor telefon raqami. |
user_data.email | String | Ha | Xaridor elektron pochtasi. |
total_sum | Double | Ha | To‘lovning yakuniy miqdori. |
currency | String | Ha | Valyuta: USD, UZS, RUB. |
description | String | Ha | Mahsulot yoki xizmat tavsifi. |
basket | Array | Ha | Savat haqidagi ma’lumotlar. |
basket.position_desc | String | Ha | Pozitsiya nomi. |
basket.count | Int | Ha | Pozitsiya soni. |
basket.price | Double | Ha | Pozitsiya narxi. |
basket.spic | String | Yo‘q | Pozitsiya haqidagi qo‘shimcha ma’lumotlar. |
payment_methods | Array | Yo‘q | To‘lov usullari (bank_card, uzcard, humo). |
payment_methods.method | String | Ha | To‘lov usuli nomi. |
tsp_id | Int | Yo‘q | Savdo va xizmat ko‘rsatish korxonasi identifikatori. |
return_url | String | Ha | Xaridor to‘lov tugagandan so‘ng yo‘naltiriladigan URL. URL noyob identifikatorni o‘z ichiga olishi kerak. |
notify_url | String | Yo‘q | Octo serveri tomonidan yuboriladigan bildirishnomalar uchun URL. Agar belgilangan bo‘lmasa, umumiy URL ishlatiladi. |
language | String | Ha | To‘lov sahifasi tili (oz - lotincha o‘zbek, uz - kirill o‘zbek, en - ingliz, ru - rus). |
ttl | Int | Yo‘q | To‘lov amal qilish muddati (daqiqalarda). |
Muvaffaqiyatli javob namuna
{
"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
Parametr | Turi | Majburiyligi | Tavsif |
---|---|---|---|
error | int | Ha (agar error=0 bo'lsa) | Xatolik kodi (0 — xatolik yo'q). |
data | object | Ha (agar error=0 bo'lsa) | To'lov haqidagi ma'lumotlarni o'z ichiga olgan asosiy obyekt. |
data.shop_transaction_id | string | Ha (agar error=0 bo'lsa) | Do'kon tomonidan berilgan tranzaksiyaning unikallik identifikatori. |
data.octo_payment_UUID | string | Ha (agar error=0 bo'lsa) | Octo tizimidagi to'lovning unikallik identifikatori. |
data.status | string | Ha (agar error=0 bo'lsa) | To'lov holati. |
data.octo_pay_url | string | Ha (agar error=0 bo'lsa) | Octo tizimida to'lovga o'tish uchun URL. |
data.refunded_sum | double | Yo'q | Qaytarilgan summa (agar qaytim bo'lsa). |
data.total_sum | double | Ha (agar error=0 bo'lsa) | To'lovning umumiy summasi. |
apiMessageForDevelopers | string | Yo'q | API tomonidan taqdim etilgan dasturchilar uchun xabar (muvaffaqiyatli holatda bo'sh bo'ladi). |
shop_transaction_id | string | Ha (agar error=0 bo'lsa) | data obyektidagi shop_transaction_id ning dublikati. |
octo_payment_UUID | string | Ha (agar error=0 bo'lsa) | data obyektidagi octo_payment_UUID ning dublikati. |
status | string | Ha (agar error=0 bo'lsa) | data obyektidagi status ning dublikati. |
octo_pay_url | string | Ha (agar error=0 bo'lsa) | data obyektidagi octo_pay_url ning dublikati. |
refunded_sum | double | Ha (agar error=0 bo'lsa) | data obyektidagi refunded_sum ning dublikati. |
total_sum | double | Ha (agar error=0 bo'lsa) | data obyektidagi total_sum ning dublikati. |
Muvaffaqiyatsiz javob namuna
{
"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
Parametr | Turi | Majburiyligi | Tavsif |
---|---|---|---|
error | int | Ha | Xatolik kodi (0 xatolik yo'qligini bildiradi). |
errMessage | string | Ha | Xatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa). |
data | object | Yo'q | Tranzaksiyaning asosiy ma'lumotlari (xatolik yuz berganda null bo'lishi mumkin). |
errorMessage | string | Ha | Xatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa). |
apiMessageForDevelopers | string | Yo'q | Texnik 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
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
pan | string | Ha | Operatsiyani amalga oshirish uchun mijozning karta raqami. |
exp | string | Ha | Kartaning amal qilish muddati (yyyy-MM formatida). |
method | string | Ha | To'lov usuli. |
cvc2 | string | Ha | Kartaning CVC2 kodi. |
cardHolderName | string | Ha | Karta egasining ismi (kartada ko'rsatilganidek). |
string | Ha | Foydalanuvchining elektron pochtasi. |
Muvaffaqiyatli Javob
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi (0 – xatolar yo'q). |
errMessage | string | Yo'q | Xato haqida xabar. |
data | object | Ha | Operatsiyaning batafsil ma'lumotlarini o'z ichiga oladi. |
id | int | Ha | Operatsiyaning noyob identifikatori. |
uuid | string | Ha | Operatsiyani identifikatsiya qilish uchun UUID. |
merchantId | int | Ha | Savdogarning identifikatori. |
initialSum | decimal | Ha | Dastlabki to'lov miqdori. |
totalSum | decimal | Ha | Umumiy to'lov miqdori (o'z ichiga komissiyalarni olishi mumkin). |
currency | string | Ha | Valyuta (masalan, UZS). |
description | string | Ha | Operatsiyaning qisqacha ta'rifi. |
status | string | Ha | Operatsiya holati (masalan, "created"). |
redirectUrl | string | Ha | To'lov sahifasiga qayta yo'naltirish uchun URL. |
user.email | string | Yo'q | Foydalanuvchining elektron pochtasi. |
user.phone | string | Yo'q | Foydalanuvchining telefon raqami. |
Muvaffaqiyatsiz Javob
{
"error": 2, // Xato kodi.
"errMessage": "Wrong secret", // Xato haqida xabar.
"data": null // Operatsiya haqida ma'lumot yo'q.
}
Parametrlar tavsifi
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi. |
errMessage | string | Ha | Xato haqida xabar. |
data | object | Yo'q | Operatsiya 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
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi: 0 xatolar yo'qligini anglatadi. |
errMessage | string | Yo'q | Xato haqida xabar, agar xato bo'lmasa, bo'sh qoladi. |
data | object | Ha | Verifikatsiya jarayonining tafsilotlariga ega ob'ekt. |
verifyId | int | Ha | Verifikatsiya jarayonining noyob identifikatori. |
phone | string | Ha | Verifikatsiya bog'langan telefon raqami. |
secondsLeft | int | Ha | Verifikatsiya amal qilish muddati tugashigacha qolgan vaqt (soniyalarda). |
Muvaffaqiyatsiz javob
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi (0 xatolar mavjud emasligini bildiradi). |
errMessage | string | Yo'q | Xato haqida xabar (xato sodir bo'lganda). |
data | object | Ha | Verifikatsiya jarayonining tafsilotlariga ega ob'ekt. |
verifyId | int | Ha | Verifikatsiya jarayonining noyob identifikatori. |
phone | string | Ha | Verifikatsiya bog'langan telefon raqami. |
secondsLeft | int | Ha | Verifikatsiya 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
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
smsKey | string | Ha | Tranzaktsiyani tasdiqlash uchun SMS-kod yuboriladi. |
to'lov identifikatori | int | Ha | Noyob to'lov identifikatori |
verifyId | int | Ha | operatsiyani tasdiqlash uchun ID |
Muvaffaqiyatli Javob
{
"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
Parametr | Tur | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi. 0 so'rov muvaffaqiyatli bajarilganligini bildiradi. |
errMessage | string | Yo'q | Xato haqida xabar. Agar xato bo'lmasa, bo'sh bo'ladi. |
data | object | Ha | To'lov haqida batafsil ma'lumotni o'z ichiga oladi. |
data.id | int | Ha | To'lovning noyob identifikatori. |
data.uuid | string | Ha | To'lov uchun noyob UUID. |
data.processorKey | string | Ha | Tranzaksiya ishlov berish tizimining kaliti. |
data.merchantId | int | Ha | Savdogarning noyob identifikatori. |
data.merchant | - | Ha | Savdogar haqidagi ma'lumotlar. |
data.merchantTransId | string | Ha | Savdogar tomonidan taqdim etilgan tranzaksiya identifikatori. |
data.initialSum | decimal | Ha | Tranzaksiya boshlang'ich summasi. |
data.totalSum | decimal | Ha | Jami summa (komissiyalarni ham o'z ichiga oladi). |
data.splittedSum | decimal | Ha | Bir nechta qabul qiluvchilar o'rtasida taqsimlangan summa. |
data.currency | string | Ha | Tranzaksiya valyutasi (masalan, UZS). |
data.convertSum | decimal | Ha | Konvertatsiya qilingan summa (agar mavjud bo'lsa). |
data.convertRate | decimal | Ha | Konvertatsiya kursi. |
data.convertCurrency | string | Ha | Konvertatsiya qilingan valyuta nomi. |
data.selectedMethod | string | Ha | Tanlangan to'lov usuli. |
data.createTime | long | Ha | Tranzaksiya yaratilgan vaqti (Unix timestamp formatida). |
data.expireTime | long | Ha | Tranzaksiya muddati tugash vaqti (Unix timestamp formatida). |
data.peyedTime | long | Ha | To'lov muvaffaqiyatli amalga oshirilgan vaqt (Unix timestamp). |
data.expiredHoldTime | long | Ha | Mablag'ni ushlab turish muddati tugash vaqti (agar mavjud bo'lsa). |
data.merCreateTime | long | Ha | Savdogar tizimida yaratilgan vaqt. |
data.description | string | Ha | Tranzaksiya tavsifi. |
data.autoCapture | bool | Ha | To'lov avtomatik tasdiqlanishini bildiradi. |
data.returnUrl | string | Ha | To'lov tugaganidan so'ng qaytish uchun URL. |
data.redirectUrl | string | Ha | Foydalanuvchini yo'naltirish uchun URL. |
data.details | object | Ha | To'lov haqida qo'shimcha ma'lumotlar. |
data.details.transType | string | Ha | Tranzaksiya turi (masalan, SMS tasdiq). |
data.details.commission | string | Ha | Tranzaksiya uchun komissiya. |
data.details.cardType | string | Ha | To'lov uchun ishlatilgan karta turi (masalan, Uzcard). |
data.hold | object | Ha | Mablag'ni ushlab turish haqida ma'lumot (agar mavjud bo'lsa). |
data.payMethods | array | Ha | Mavjud to'lov usullari ro'yxati. |
data.payMethods.only | string | Ha | To'lov usulining mavjudligi uchun qo'shimcha shartlar. |
data.payMethods.method | string | Ha | To'lov usuli nomi. |
data.status | string | Ha | Tranzaksiya holati (masalan, succeeded ). |
data.basket | List<Object> | Ha | Tranzaksiya bilan bog'liq savat ma'lumotlari. |
data.user | object | Ha | Foydalanuvchi haqidagi ma'lumotlar. |
data.user.email | string | Ha | Foydalanuvchi elektron pochta manzili. |
data.user.phone | string | Ha | Foydalanuvchi telefon raqami. |
data.user.user_id | string | Ha | Foydalanuvchining noyob identifikatori. |
data.airline | object | Ha | Aviakompaniya haqidagi ma'lumotlar (agar mavjud bo'lsa). |
data.language | string | Ha | Interfeys tili (masalan, uz , ru , en ). |
data.tariffId | int | Ha | Tarif identifikatori. |
data.fee | decimal | Ha | Komissiya summasi. |
data.transferSum | decimal | Ha | Komissiya chiqarib tashlangan summa. |
data.refundedSum | decimal | Ha | Qaytarilgan summa (agar mavjud bo'lsa). |
data.provCode | string | Ha | Tranzaksiya provayderining kodi. |
data.optionalData | string | Ha | Qo'shimcha ma'lumotlar. |
data.forConsideration | bool | Ha | Tranzaksiya ko'rib chiqilayotganligini bildiradi. |
data.riskLevel | int | Ha | Tranzaksiya xavf darajasi. |
data.auditedAt | long | Ha | Tranzaksiya tekshirilgan vaqti. |
data.auditorId | int | Ha | Auditor identifikatori. |
data.bankCode | string | Ha | Bank kodi. |
data.merchantCardId | string | Ha | Savdogarning kartasi identifikatori (agar mavjud bo'lsa). |
data.processingReference | string | Ha | Tranzaksiya ishlov berish tizimining referensi. |
data.requestProcessingStatus | string | Ha | So'rovni ishlov berish holati. |
data.requestProcessingTryCount | int | Ha | So'rovni qayta ishlash urinishlari soni. |
data.currentStep | string | Ha | Tranzaksiya hozirgi bosqichi. |
data.tag | string | Ha | Tranzaksiya belgisi. |
data.tspId | int | Ha | Savdo-sotiqni qo'llovchi tashkilot identifikatori. |
data.cardInputType | string | Ha | Karta ma'lumotlarini kiritish turi. |
data.redirectTimeout | long | Ha | Yo'naltirish uchun ajratilgan vaqt. |
data.merchantStatus | string | Ha | Savdogar tizimidagi operatsiya holati. |
data.fiscalDetails | object | Ha | Fiskal ma'lumotlar. |
data.fiscalDetails.fiscalClassifierIds | List<int> | Ha | Fiskal klassifikator identifikatorlari ro'yxati. |
data.fiscalDetails.status | string | Ha | Fiskalizatsiya holati. |
data.fiscalDetails.errorCode | string | Ha | Fiskalizatsiya xato kodi. |
data.fiscalDetails.message | string | Ha | Fiskalizatsiya haqida xabar. |
data.fiscalDetails.createTime | long | Ha | Fiskal ma'lumotlar yaratilgan vaqt. |
data.showButtonSaveCard | bool | Ha | Karta saqlash tugmasini ko'rsatish kerakligini bildiradi. |
data.test | bool | Ha | Tranzaksiya test rejimida ekanligini bildiradi. |
Muvaffaqiyatsiz Javob
{
"error": 2, // Xato kodi
"errMessage": "Wrong secret", // Xato xabari
"data": null // To'lov haqida ma'lumotlar mavjud emas
}
Parametrlar tavsifi
Parametr | Tur | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi. |
errMessage | string | Ha | Xato haqida xabar. |
data | object | Yo'q | Tranzaksiya 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
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
octo_shop_id | int | Ha | Do'konning Shaxsiy kabinetida mavjud do'konning noyob identifikatori. |
octo_secret | string | Ha | Do'konning maxfiy kaliti. |
octo_payment_UUID | string | Ha | OCTO tizimi tomonidan yaratilgan to'lovning noyob identifikatori. |
accept_status | string | Ha | Operatsiyani tasdiqlash holati: capture yoki cancel . |
final_amount | decimal | Ha | To'lovning yakuniy miqdori. |
Muvaffaqiyatli javob
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi. 0 qiymati muvaffaqiyatli so'rovni anglatadi. |
data | object | Ha | To'lov haqida batafsil ma'lumotga ega ob'ekt. |
data.shop_transaction_id | string | Ha | Operatsiyaning do'kondagi noyob identifikatori. |
data.octo_payment_UUID | string | Ha | To'lovning Octo tizimidagi noyob identifikatori. |
data.status | string | Ha | To'lov holati (succeeded , failed , pending ). |
data.octo_pay_url | string | Ha | To'lovga yoki to'lov holatini ko'rish uchun URL. |
data.transfer_sum | float | Ha | Chegirmalar hisobga olingan o'tkazilgan pul miqdori. |
data.refunded_sum | float | Yo'q | Qaytarilgan pul miqdori. Agar qaytarish bo'lmasa, qiymat 0. |
data.total_sum | float | Ha | Dastlab so'ralgan to'lov miqdori. |
data.payed_time | string | Yo'q | YYYY-MM-DD HH:MM:SS formatida to'lovni muvaffaqiyatli yakunlash vaqti. |
apiMessageForDevelopers | string | Yo'q | API holati yoki o'zgarishlar haqida ishlab chiquvchilarga xabar. |
Muvaffaqiyatsiz javob
{
"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
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
error | int | Ha | Xato kodi. |
errMessage | string | Ha | Xato haqida xabar. |
data | object | Yo'q | Operatsiya haqida asosiy ma'lumot. |
errorMessage | string | Ha | Xato haqida xabar. |
apiMessageForDevelopers | string | Yo'q | Ishlab chiquvchilar uchun xabar. |
callback
- URL:
https://secure.octo.uz/callback
- Method:
POST
- Content-type:
application/json
Callback tasdiqlash summasi:
{
"octo_secret":"***",
"octo_payment_UUID":"0800a75f-1f50-4da8-9225-ae43028cbad1",
"accept_status":"capture",
"final_amount":437278.66
}
Parametr | Turi | Majburiy | Tavsif |
---|---|---|---|
octo_secret | String | Ha | Do‘konning shaxsiy maxfiy kaliti, do‘kon kabinetida generatsiya qilinadi. Xavfsiz hududda saqlanishi kerak |
octo_payment_UUID | String | Ha (error=0 bo‘lsa) | Octo tizimidagi noyob to‘lov identifikatori |
accept_status | String | Ha | Tasdiqlash holati, waiting_for_capture holatidagi tranzaksiyalar uchun majburiyQiymatlar: capture – to‘lovni tasdiqlashcancel – to‘lovni bekor qilish |
final_amount | Decimal | Yo‘q | Tasdiqlangan to‘lov summasi |
Callback javob strukturası:
{
"accept_status": "capture",
"final_amount": 1000.00
}
Parametr | Turi | Majburiy | Tavsif |
---|---|---|---|
accept_status | String | Ha | Tasdiqlash holati, waiting_for_capture holatidagi tranzaksiyalar uchun majburiyQiymatlar: capture – to‘lovni tasdiqlashcancel – to‘lovni bekor qilish |
final_amount | Decimal | Yo‘q | Tasdiqlangan 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.