Dasturchilar uchun API hujjatlari

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/v1

Avtorizatsiya

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 M2U3ODY0MDQ4MDJjOThlNzhjOTg

Webhook

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
}
NomiTuriTavsif
webhook_typestringWebhook formatining versiyasi.
statusstringHar doim "success".
eventstringHodisa turi: "payment_confirmed".
payment_systemstringTo'lov tizimi kaliti: "card" yoki "phone".
shop_idstringKassa identifikatori.
data.order_idstringTo'lovga tegishli invoys ID (create_payment javobidagi _id bilan bir xil).
data.amountnumberHaqiqatda to'langan summa (so'mda). Tanlab to'lovda tanlangan xizmatlar yig'indisi.
data.currencystringValyuta: "UZS".
data.statusstringHar doim "paid".
data.provider_detailsobjectTo'lov tizimidan kelgan xom ma'lumot.
data.perform_timeintegerTo'lov vaqti (millisekundlarda).
timestampintegerWebhook 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.

POST/create_payment

Yangi to'lov havolasini yaratish

NomiTuriMajburiyTavsif
amountnumberixtiyoriyTo'lov summasi (so'mda). Minimal: 1000, maksimal: 10 000 000. items yuborilsa, summa avtomatik hisoblanadi.
itemsarrayixtiyoriyTanlab to'lov rejimi: xizmatlar ro'yxati [{ name, amount }]. Mijoz sahifada istaganini belgilab to'laydi. amount berilganda ham items ustunlik qiladi.
descriptionstringixtiyoriyIxtiyoriy. Buyurtma haqida qisqacha izoh, to'lov sahifasida mijozga ko'rsatiladi.
webhook_urlstringixtiyoriyIxtiyoriy. To'lov tasdiqlangach, natija shu manzilga ham yuboriladi.
return_urlstringixtiyoriyIxtiyoriy. 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.

Sinab ko'rishPOST /api/v1/create_payment
Authorization: Bearer M2U3ODY0MDQ4...

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=..."
  }
}
POST/status_payment

To'lov holatini ID orqali tekshirish

NomiTuriMajburiyTavsif
idstringixtiyoriyInvoice ID raqami (create_payment javobidagi _id).
uuidstringixtiyoriyTo'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"
  }
}
Sinab ko'rishPOST /api/v1/status_payment
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi
POST/pay_via_card

Kartaga to'g'ridan-to'g'ri to'lov โ€” 1-qadam (SMS kod yuborish)

NomiTuriMajburiyTavsif
order_idstringmajburiycreate_payment javobidagi _id (to'lanishi kerak bo'lgan invoys ID'si).
card_numberstringmajburiyKarta raqami (16 xonali).
card_expirystringmajburiyKartaning 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-..."
}
Sinab ko'rishPOST /api/v1/pay_via_card
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi
POST/confirm_card_payment

Kartaga to'g'ridan-to'g'ri to'lov โ€” 2-qadam (SMS kodni tasdiqlash)

NomiTuriMajburiyTavsif
payment_tokenstringmajburiypay_via_card javobidan olingan token (5 daqiqa amal qiladi).
sms_codestringmajburiyKartaga 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"
}
Sinab ko'rishPOST /api/v1/confirm_card_payment
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi
POST/get_balance

Kassa 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
  }
}
Sinab ko'rishPOST /api/v1/get_balance
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi
POST/get_history

Oxirgi tranzaksiyalar ro'yxati

NomiTuriMajburiyTavsif
limitintegerixtiyoriyIxtiyoriy. 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
    }
  ]
}
Sinab ko'rishPOST /api/v1/get_history
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi
POST/get_stats

Kassa 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
  }
}
Sinab ko'rishPOST /api/v1/get_stats
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi
POST/get_payment_methods

To'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
    }
  ]
}
Sinab ko'rishPOST /api/v1/get_payment_methods
Authorization: Bearer M2U3ODY0MDQ4...

Javob

Natija shu yerda ko'rinadi