О API v2
Эта версия пока не объявлена публично (бета). v1 продолжает работать без изменений - v2 просто добавляет новые возможности (возврат, отмена, мониторинг webhook, ограниченные ключи, данные уровня профиля).
https://checkout.uz/api/v2
"Ключ кассы" - API-ключ из настроек кассы (Authorization: Bearer). "Ключ профиля" - отдельный ключ со страницы Профиль, для данных уровня аккаунта.
Ключ сохраняется в вашем браузере и не отправляется нам - используется только для этого запроса.
To'lovlar
Ixtiyoriy expire_time (soniyada) qo'shish mumkin, standart 1 soat. Takroriy so'rovning oldini olish uchun "Idempotency-Key" sarlavhasi (header) qo'shish mumkin - shu kalit bilan 24 soat ichida qayta so'ralsa, yangisi ochilmaydi, eski invoys qaytariladi.
Параметры
amount
(number, Обязательно)
expire_time
(number, Необязательно)
description
(string, Необязательно)
webhook_url
(string, Необязательно)
return_url
(string, Необязательно)
Пример ответа
{
"status": "success",
"idempotent_replay": false,
"payment": {
"_id": 12345,
"_uuid": "78144b2f-95be-4c1a-9c2e-abcdef123456",
"_url": "https://checkout.uz/pay/78144b2f-95be-4c1a-9c2e-abcdef123456",
"_amount": 50000,
"_status": "pending",
"_pay_via": {
"payme": "https://checkout.uz/pay/78144b2f.../payme",
"click": "https://checkout.uz/pay/78144b2f.../click"
},
"_return_url": null,
"_lifteme": {
"_second": 86400,
"_hour": 24
}
}
}
Возможные ошибки
400
amount chegaradan tashqarida YOKI expire_time 60-432000 oralig'ida emas
Javobda qo'shimcha "provider" (qaysi tizim orqali to'langani) va "description" maydonlari bor. id yoki uuid'dan bittasi yetarli.
Параметры
id
(number, Необязательно)
uuid
(string, Необязательно)
Пример ответа
{
"status": "success",
"data": {
"id": 12345,
"amount": 50000,
"description": "Buyurtma #123",
"status": "paid",
"created_at": "2026-09-27 10:00:00",
"paid_at": "2026-09-27 10:05:12",
"provider": "payme"
}
}
Muvaffaqiyatli bo'lsa karta egasiga SMS-kod yuboriladi, javobdagi payment_token 5 daqiqa amal qiladi.
Параметры
order_id
(number, Обязательно)
card_number
(string, Обязательно)
card_expiry
(string, Обязательно)
Пример ответа
{
"status": "success",
"message": "Tasdiqlash kodi yuborildi",
"payment_token": "9f1c2e3a-...-payment"
}
pay_via_card'dan olingan payment_token va SMS kodni yuborib, to'lovni yakunlaydi.
Параметры
payment_token
(string, Обязательно)
sms_code
(string, Обязательно)
Пример ответа
{
"status": "success",
"type": "success"
}
Qaytarish va bekor qilish
Faqat Plum, Payme yoki Click orqali to'langan, hali 22 soat o'tmagan to'lovlar uchun ishlaydi.
Параметры
order_id
(number, Обязательно)
Пример ответа
{
"status": "success",
"order_id": 12345,
"amount": 50000,
"provider": "click"
}
Возможные ошибки
404
To'lov topilmadi yoki allaqachon qaytarilgan
409
22 soatlik oyna o'tib ketgan
502
Provayder qaytarishni rad etdi
Pul hali harakatlanmagan (pending) invoysni bekor qiladi, holatni 'canceled'ga o'zgartiradi.
Параметры
order_id
(number, Обязательно)
Пример ответа
{
"status": "success",
"order_id": 12345,
"order_status": "canceled"
}
Возможные ошибки
404
Invoys topilmadi
409
Invoys 'pending' holatida emas
Hisobot
Valyuta kalitlari katta harfda qaytadi (masalan "UZS").
Параметры не требуются
Пример ответа
{
"status": "success",
"balance": {
"UZS": 125000
}
}
Sana/holat bo'yicha filtrlash va sahifalash qo'shilgan, javobda has_more keyingi sahifa bor-yo'qligini bildiradi.
Параметры
limit
(number, Необязательно)
offset
(number, Необязательно)
status
(string, Необязательно)
pending
paid
canceled
reversed
date_from
(string, Необязательно)
date_to
(string, Необязательно)
Пример ответа
{
"status": "success",
"has_more": true,
"data": [
{
"id": 12345,
"uuid": "78144b2f-95be-4c1a-9c2e-abcdef123456",
"amount": 50000,
"description": "Buyurtma #123",
"status": "paid",
"created_at": "2026-09-27 10:00:00",
"paid_at": "2026-09-27 10:05:12",
"webhook_url": null,
"return_url": null,
"expire_seconds": 3600
}
]
}
Sana oralig'i bo'yicha filtrlash mumkin, javobda by_provider (tizim bo'yicha taqsimot) va unattributed_amount bor.
Параметры
date_from
(string, Необязательно)
date_to
(string, Необязательно)
Пример ответа
{
"status": "success",
"stats": {
"total_orders": 42,
"total_amount": 2500000,
"by_provider": {
"click": {
"count": 15,
"amount": 900000
},
"payme": {
"count": 20,
"amount": 1300000
},
"plum": {
"count": 7,
"amount": 300000
}
},
"unattributed_amount": 0
}
}
Har bir usul uchun min/max summa va fiskal chek qo'llab-quvvatlanishi (fiscal_supported) ko'rsatiladi.
Параметры не требуются
Пример ответа
{
"status": "success",
"data": [
{
"key": "click",
"name": "Click - O'zbekiston",
"logo_light": "https://...click-light.png",
"logo_dark": "https://...click-dark.png",
"min_amount": 1000,
"max_amount": 10000000,
"fiscal_supported": true
},
{
"key": "paynet",
"name": "Paynet - O'zbekiston",
"logo_light": "",
"logo_dark": "",
"min_amount": 1000,
"max_amount": 1000000,
"fiscal_supported": false
}
]
}
Pul yechish
Kassa api_key yoki profil profile_api_key bilan ishlaydi.
Параметры
currency
(string, Необязательно)
Пример ответа
{
"status": "success",
"data": [
{
"id": 1,
"method_name": "Bank karta (O'zbekiston)",
"currency": "UZS",
"min_amount": 40000,
"max_amount": 13000000,
"fee_percent": 7.5,
"fields": [
{
"name": "card_number",
"label": "Karta raqami",
"placeholder": "8600 ..."
},
{
"name": "card_name",
"label": "Karta egasi",
"placeholder": "F.I.Sh"
}
]
}
]
}
Pul yechish so'rovidan oldin karta egasini alohida tekshirish imkonini beradi. Faqat profil kaliti bilan ishlaydi.
Параметры
card_number
(string, Обязательно)
Пример ответа
{
"status": "success",
"name": "ISMOIL KARIMOV"
}
Возможные ошибки
400
card_number kiritilmagan
422
Karta topilmadi yoki identifikatsiya ma'lumotlariga mos kelmadi
Xavfsizlik uchun ikki kalit kerak: profil kaliti (header) va kassaning o'z api_key'i (shop_token, tanada). Balans darhol ayiriladi, so'rov admin tasdig'ini kutadi.
Параметры
shop_id
(number, Обязательно)
method_id
(number, Обязательно)
shop_token
(string, Обязательно)
amount
(number, Обязательно)
currency
(string, Обязательно)
fields
(object, Обязательно)
Пример ответа
{
"status": "success",
"message": "Ariza qabul qilindi",
"withdrawal_id": 546
}
Возможные ошибки
400
Majburiy maydon yo'q yoki miqdor min/max dan tashqarida
403
shop_id bu profilga tegishli emas YOKI shop_token noto'g'ri
404
Usul topilmadi yoki valyuta mos kelmadi
422
Karta egasining ismi identifikatsiya ma'lumotlariga mos kelmadi
429
So'nggi 1 soat ichida xuddi shu summa+valyutada ariza yuborilgan
Faqat kassa api_key'i bilan ishlaydi, natija shu kassaning o'z arizalari bilan cheklanadi.
Параметры
limit
(number, Необязательно)
offset
(number, Необязательно)
status
(string, Необязательно)
Ariza olingan
Tasdiqlandi
Bekor qilindi
date_from
(string, Необязательно)
date_to
(string, Необязательно)
Пример ответа
{
"status": "success",
"has_more": false,
"data": [
{
"id": 546,
"amount": 100000,
"currency": "UZS",
"status": "Ariza olingan",
"method_id": 1,
"fields": {
"card_number": "8600123412345678",
"card_name": "ISMOIL KARIMOV"
},
"created_at": "2026-10-01 10:00:00"
}
]
}
Fiscal chek
Hozircha faqat Payme va Click orqali to'langan invoyslar uchun ishlaydi.
Параметры
order_id
(number, Обязательно)
Пример ответа
{
"status": "success",
"fiscal_url": "https://..."
}
Возможные ошибки
501
Bu to'lov tizimi uchun fiscal chek hali qo'llab-quvvatlanmaydi
Profil (hisob darajasida)
Kassa api_key'i EMAS - Profil sahifasidagi ALOHIDA profile_api_key bilan ishlaydi. Faqat o'qish, moliyaviy amal yo'q.
Параметры не требуются
Пример ответа
{
"status": "success",
"id": 5,
"login": "otabekhde",
"email": "user@example.com",
"email_verified": true
}
Profil kalitiga tegishli barcha kassalarning asosiy ma'lumotini qaytaradi.
Параметры не требуются
Пример ответа
{
"status": "success",
"count": 2,
"shops": [
{
"id": 3,
"shop_name": "CHECKOUT.UZ",
"status": "Faol",
"balance_uzs": 9889
}
]
}
Har bir kassa uchun alohida so'rov yubormasdan, barcha kassalar bo'yicha birlashtirilgan statistikani qaytaradi.
Параметры
date_from
(string, Необязательно)
date_to
(string, Необязательно)
Пример ответа
{
"status": "success",
"stats": {
"total_orders": 1109,
"total_amount": 3727845,
"by_provider": {
"click": {
"count": 114,
"amount": 1122149
},
"payme": {
"count": 99,
"amount": 2014529
}
},
"unattributed_amount": 25000,
"by_shop": [
{
"shop_id": 59,
"shop_name": "LiveSMSBot",
"total_orders": 659,
"total_amount": 3378000
},
{
"shop_id": 3,
"shop_name": "CHECKOUT.UZ",
"total_orders": 376,
"total_amount": 165345
}
]
}
}