Uzuntulov to'lov tizimini ulash
Uzuntulov to'lov tizimini o'z platformangizga ulash uchun kerak bo'lgan barcha so'rovlar, parametrlar va misollar shu yerda.
Asosiy manzil
https://www.uzun.uz/api/v1Avtorizatsiya
Har bir so'rov Authorization sarlavhasida Bearer token ko'rinishida API kalitini o'z ichiga olishi kerak. API kalit @UzunTulovBot orqali olinadi (botda "๐ Yangi kassa" yoki "๐ Token").
Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTgWebhook
To'lov muvaffaqiyatli tasdiqlanganda, tizim quyidagi ma'lumotni POST so'rovi orqali sizning webhook manzilingizga yuboradi. Kassa sozlamalaridagi umumiy Webhook URL va/yoki create_payment chaqirilganda webhook_url parametri orqali ko'rsatilgan manzil โ ikkalasi ham sozlangan bo'lsa, ikkalasiga alohida yuboriladi.
Yuboriladigan ma'lumot (payload)
{
"webhook_type": "version_1_1",
"status": "success",
"event": "payment_confirmed",
"payment_system": "card",
"shop_id": "cmsee07a90000jo043w61cwa3",
"data": {
"order_id": "cmsee0dl80002jo049fmsskj8",
"amount": 5000,
"currency": "UZS",
"status": "paid",
"provider_details": {
"method": "card",
"card": "****9012"
},
"perform_time": 1784393083895
},
"timestamp": 1784393083
}| Nomi | Turi | Tavsif |
|---|---|---|
| webhook_type | string | Webhook formatining versiyasi. |
| status | string | Har doim "success". |
| event | string | Hodisa turi: "payment_confirmed". |
| payment_system | string | To'lov tizimi kaliti: "card" yoki "phone". |
| shop_id | string | Kassa identifikatori. |
| data.order_id | string | To'lovga tegishli invoys ID (create_payment javobidagi _id bilan bir xil). |
| data.amount | number | Haqiqatda to'langan summa (so'mda). Tanlab to'lovda tanlangan xizmatlar yig'indisi. |
| data.currency | string | Valyuta: "UZS". |
| data.status | string | Har doim "paid". |
| data.provider_details | object | To'lov tizimidan kelgan xom ma'lumot. |
| data.perform_time | integer | To'lov vaqti (millisekundlarda). |
| timestamp | integer | Webhook yuborilgan vaqt (sekundlarda). |
Kutilayotgan javob: serveringiz HTTP 200 kod bilan javob qaytarishi kifoya. Imzo tekshiruvi uchun X-Uzuntulov-Signature sarlavhasi (HMAC-SHA256, kalit: API token) yuboriladi.
/create_paymentYangi to'lov havolasini yaratish
| Nomi | Turi | Majburiy | Tavsif |
|---|---|---|---|
| amount | number | ixtiyoriy | To'lov summasi (so'mda). Minimal: 1000, maksimal: 10 000 000. items yuborilsa, summa avtomatik hisoblanadi. |
| items | array | ixtiyoriy | Tanlab to'lov rejimi: xizmatlar ro'yxati [{ name, amount }]. Mijoz sahifada istaganini belgilab to'laydi. amount berilganda ham items ustunlik qiladi. |
| description | string | ixtiyoriy | Ixtiyoriy. Buyurtma haqida qisqacha izoh, to'lov sahifasida mijozga ko'rsatiladi. |
| webhook_url | string | ixtiyoriy | Ixtiyoriy. To'lov tasdiqlangach, natija shu manzilga ham yuboriladi. |
| return_url | string | ixtiyoriy | Ixtiyoriy. To'lov yakunlangach mijoz avtomatik shu manzilga qaytariladi. |
curl -X POST "https://www.uzun.uz/api/v1/create_payment" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"
-d '{
"amount": 50000,
"description": "Buyurtma #12345",
"webhook_url": "https://mysite.uz/webhooks/uzuntulov",
"return_url": "https://mysite.uz/order-received/12345"
}'Javob namunasi
{
"status": "success",
"payment": {
"_id": "cmsee0dl80002jo049fmsskj8",
"_uuid": "cmsee0dl80002jo049fmsskj8",
"_url": "https://www.uzun.uz/merchant/pay?token=cmsee0dl80002jo049fmsskj8",
"_amount": 50000,
"_status": "pending",
"_pay_via": {
"phone": "https://www.uzun.uz/merchant/pay?token=cmsee0dl80002jo049fmsskj8&via=phone",
"card": "https://www.uzun.uz/merchant/pay?token=cmsee0dl80002jo049fmsskj8&via=card"
},
"_return_url": "https://mysite.uz/order-received/12345",
"_lifteme": {
"_second": 3600,
"_hour": 1
},
"_webhook_url": "https://mysite.uz/webhooks/uzuntulov",
"_tezcheck_url": "https://tezcheck.uz/merchant/pay?token=..."
}
}Real to'lov (tezcheck.uz)
Kassada tezcheck.uz API kaliti sozlangan bo'lsa, javobda _tezcheck_url qaytadi โ mijoz shu sahifada Click, Payme, Uzcard/Humo yoki Xazna orqali to'laydi. To'lov faqat tezcheck.uz real tasdiqlaganda paid bo'ladi. To'lov yakunida _url sahifasi avtomatik yangilanadi, tekshirish uchun /status_payment yoki /api/pay/[id]/check ishlatiladi.
Javob
Natija shu yerda ko'rinadi
Tanlab to'lov (items)
items yuborilsa, mijoz to'lov sahifasida xizmatlar ro'yxatini ko'radi va istaganlarini belgilab to'laydi. Webhook, status_payment va get_history javoblaridagi amount โ haqiqatda to'lanadigan summa bo'ladi. Real to'lov rejimida invoice /api/pay/{id}/pay orqali tanlovdan so'ng yaratiladi (javobda pay_url).
curl -X POST "https://www.uzun.uz/api/v1/create_payment" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"
-d '{
"items": [
{ "name": "Instagram post narxi", "amount": 30000 },
{ "name": "Telegram reklama", "amount": 50000 },
{ "name": "YouTube video montaj", "amount": 20000 }
],
"description": "Buyurtma #12345",
"webhook_url": "https://mysite.uz/webhooks/uzuntulov",
"return_url": "https://mysite.uz/order-received/12345"
}'Javob namunasi
{
"status": "success",
"payment": {
"_id": "cmsee0dl80002jo049fmsskj8",
"_uuid": "cmsee0dl80002jo049fmsskj8",
"_url": "https://www.uzun.uz/merchant/pay?token=cmsee0dl80002jo049fmsskj8",
"_amount": 100000,
"_status": "pending",
"_items": [
{ "name": "Instagram post narxi", "amount": 30000 },
{ "name": "Telegram reklama", "amount": 50000 },
{ "name": "YouTube video montaj", "amount": 20000 }
],
"_pay_via": {
"phone": "https://www.uzun.uz/merchant/pay?token=cmsee0dl80002jo049fmsskj8&via=phone",
"card": "https://www.uzun.uz/merchant/pay?token=cmsee0dl80002jo049fmsskj8&via=card"
},
"_return_url": null,
"_lifteme": { "_second": 3600, "_hour": 1 },
"_webhook_url": "https://mysite.uz/webhooks/uzuntulov",
"_tezcheck_url": "https://tezcheck.uz/merchant/pay?token=..."
}
}/status_paymentTo'lov holatini ID orqali tekshirish
| Nomi | Turi | Majburiy | Tavsif |
|---|---|---|---|
| id | string | ixtiyoriy | Invoice ID raqami (create_payment javobidagi _id). |
| uuid | string | ixtiyoriy | To'lovning UUID kodi. |
curl -X POST "https://www.uzun.uz/api/v1/status_payment" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"
-d '{
"id": "cmsee0dl80002jo049fmsskj8"
}'Javob namunasi
{
"status": "success",
"data": {
"id": "cmsee0dl80002jo049fmsskj8",
"amount": 100000,
"paid_amount": 80000,
"status": "paid",
"created_at": "2026-08-04 14:30:00",
"paid_at": "2026-08-04 14:35:22"
}
}Javob
Natija shu yerda ko'rinadi
/pay_via_cardKartaga to'g'ridan-to'g'ri to'lov โ 1-qadam (SMS kod yuborish)
| Nomi | Turi | Majburiy | Tavsif |
|---|---|---|---|
| order_id | string | majburiy | create_payment javobidagi _id (to'lanishi kerak bo'lgan invoys ID'si). |
| card_number | string | majburiy | Karta raqami (16 xonali). |
| card_expiry | string | majburiy | Kartaning amal qilish muddati, MM/YY formatida. |
curl -X POST "https://www.uzun.uz/api/v1/pay_via_card" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"
-d '{
"order_id": "cmsee0dl80002jo049fmsskj8",
"card_number": "8600123456789012",
"card_expiry": "12/28"
}'Javob namunasi
{
"status": "success",
"message": "Tasdiqlash kodi hamyoningiz ulangan telefonga yuborildi.",
"payment_token": "2Q85LemHnysZBQWSgubRX6hL7h8ZfuaXKP-..."
}Javob
Natija shu yerda ko'rinadi
/confirm_card_paymentKartaga to'g'ridan-to'g'ri to'lov โ 2-qadam (SMS kodni tasdiqlash)
| Nomi | Turi | Majburiy | Tavsif |
|---|---|---|---|
| payment_token | string | majburiy | pay_via_card javobidan olingan token (5 daqiqa amal qiladi). |
| sms_code | string | majburiy | Kartaga bog'langan telefonga kelgan tasdiqlash kodi (odatda 6 xonali). |
curl -X POST "https://www.uzun.uz/api/v1/confirm_card_payment" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"
-d '{
"payment_token": "2Q85LemHnysZBQWSgubRX6hL7h8ZfuaXKP-...",
"sms_code": "123456"
}'Javob namunasi
{
"status": "success",
"type": "success"
}Javob
Natija shu yerda ko'rinadi
/get_balanceKassa balansini olish
Ushbu so'rov tana (body) talab qilmaydi.
curl -X POST "https://www.uzun.uz/api/v1/get_balance" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"Javob namunasi
{
"status": "success",
"balance": {
"uzs": 2500000,
"usd": 0,
"ton": 0
}
}Javob
Natija shu yerda ko'rinadi
/get_historyOxirgi tranzaksiyalar ro'yxati
| Nomi | Turi | Majburiy | Tavsif |
|---|---|---|---|
| limit | integer | ixtiyoriy | Ixtiyoriy. Qaytariladigan tranzaksiyalar soni (maksimal 100). |
curl -X POST "https://www.uzun.uz/api/v1/get_history" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"
-d '{
"limit": 10
}'Javob namunasi
{
"status": "success",
"data": [
{
"id": "cmsee0dl80002jo049fmsskj8",
"amount": 50000,
"status": "paid",
"created_at": "2026-08-04 14:30:00",
"paid_at": "2026-08-04 14:35:22"
},
{
"id": "cmsee0dm00003jo04jqk2sab",
"amount": 120000,
"status": "pending",
"created_at": "2026-08-04 13:22:11",
"paid_at": null
}
]
}Javob
Natija shu yerda ko'rinadi
/get_statsKassa bo'yicha umumiy statistika
Ushbu so'rov tana (body) talab qilmaydi.
curl -X POST "https://www.uzun.uz/api/v1/get_stats" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"Javob namunasi
{
"status": "success",
"stats": {
"total_orders": 450,
"total_amount": 12500000
}
}Javob
Natija shu yerda ko'rinadi
/get_payment_methodsTo'lov tizimlari ro'yxati
Ushbu so'rov tana (body) talab qilmaydi.
curl -X POST "https://www.uzun.uz/api/v1/get_payment_methods" \
-H "Authorization: Bearer M2U3ODY0MDQ4MDJjOThlNzhjOTg" \
-H "Content-Type: application/json"Javob namunasi
{
"status": "success",
"data": [
{
"key": "phone",
"name": "Telefon raqami orqali to'lov",
"logo_light": null,
"logo_dark": null
},
{
"key": "card",
"name": "Karta orqali to'lov",
"logo_light": null,
"logo_dark": null
}
]
}Javob
Natija shu yerda ko'rinadi