CHECKOUT.UZ API
Перейти к v2

Документация API для разработчиков

To'lovlarni yaratish, balansni tekshirish va kassa statistikasini boshqarish uchun yagona API tizimi.

Базовый адрес https://checkout.uz/api/v1
Смотреть как llm.txt Готовые плагины

Авторизация

Каждый запрос должен содержать API-ключ в заголовке Authorization в формате Bearer token. Ключ API можно получить в настройках кассы. Если включён IP Whitelist, запрос должен отправляться только с разрешённого IP-адреса.

Header
Authorization: Bearer YOUR_API_KEY

Ваш ключ сохраняется только в браузере, запрос отправляется напрямую на выбранный сервер.

Webhook

Когда платёж успешно подтверждён, система отправляет POST-запрос с указанными ниже данными на ваш webhook-адрес. Может использоваться два адреса: общий "Webhook URL" в настройках кассы и/или адрес, указанный в параметре webhook_url при вызове /create_payment — если настроены оба, данные отправляются на каждый отдельно.

Отправляемые данные (payload)

{
    "webhook_type": "version_1_1",
    "status": "success",
    "event": "payment_confirmed",
    "payment_system": "click",
    "shop_id": 3,
    "data": {
        "order_id": 45180,
        "amount": 5000,
        "currency": "UZS",
        "status": "paid",
        "provider_details": {
            "...": "provayderga xos xom (raw) maydonlar"
        },
        "perform_time": 1784393083895
    },
    "timestamp": 1784393083
}

Поля

webhook_type (string)
Версия формата webhook.
status (string)
Всегда "success" (означает успешную отправку, а не статус платежа).
event (string)
Тип события. Пока только "payment_confirmed".
payment_system (string)
Ключ платёжной системы (например click, payme, plum).
shop_id (integer)
Идентификатор кассы.
data.order_id (integer)
ID инвойса, связанного с платежом (совпадает с _id в ответе /create_payment).
data.amount (number)
Сумма платежа.
data.currency (string)
Валюта. Пока всегда "UZS".
data.status (string)
Всегда "paid".
data.provider_details (object)
Необработанные (raw) данные от платёжной системы - структура зависит от системы.
data.perform_time (integer)
Время выполнения платежа (в миллисекундах, Unix timestamp).
timestamp (integer)
Время отправки webhook (в секундах, Unix timestamp).

Вашему серверу достаточно ответить кодом HTTP 200. Повторная отправка при неудаче пока не реализована.

Payment Operations

Параметры

amount (number, обязательно)
To'lov summasi (so'mda). Minimal: 1000, maksimal: 10 000 000.
description (string, необязательно)
Ixtiyoriy. Buyurtma haqida qisqacha izoh, to'lov sahifasida mijozga ko'rsatiladi.
webhook_url (string, необязательно)
Ixtiyoriy. To'lov tasdiqlangach, natija shu manzilga ham yuboriladi (kassaning umumiy webhook manziliga qo'shimcha ravishda).
return_url (string, необязательно)
Ixtiyoriy. To'lov muvaffaqiyatli yakunlangach, mijoz avtomatik shu manzilga qaytariladi (masalan, do'koningizning "buyurtma qabul qilindi" sahifasi). Ko'rsatilmasa, mijoz checkout.uz'ning o'z "to'landi" sahifasida qoladi.

Пример кода

curl -X POST "https://checkout.uz/api/v1/create_payment" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 50000,
    "description": "Buyurtma #12345",
    "webhook_url": "https://mysite.uz/webhooks/checkout",
    "return_url": "https://mysite.uz/order-received/12345"
}'

Пример ответа

{
    "status": "success",
    "payment": {
        "_id": 152,
        "_uuid": "550e8400-e29b-41d4-a716-446655440000",
        "_url": "https://checkout.uz/pay/550e8400-e29b-41d4-a716-446655440000",
        "_amount": 50000,
        "_status": "pending",
        "_pay_via": {
            "click": "https://checkout.uz/pay/550e8400-e29b-41d4-a716-446655440000/click",
            "payme": "https://checkout.uz/pay/550e8400-e29b-41d4-a716-446655440000/payme"
        },
        "_return_url": "https://mysite.uz/order-received/12345",
        "_lifteme": {
            "_second": 3600,
            "_hour": 1
        }
    }
}
Попробовать


                                                    
                                                    
Ответ
Результат появится здесь

Параметры

id (integer, необязательно)
Invoice ID raqami
uuid (string, необязательно)
To'lovning UUID kodi

Пример кода

curl -X POST "https://checkout.uz/api/v1/status_payment" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 0,
    "uuid": ""
}'

Пример ответа

{
    "status": "success",
    "data": {
        "id": 152,
        "amount": 50000,
        "status": "paid",
        "created_at": "2026-01-31 10:00:00",
        "paid_at": "2026-01-31 10:05:22"
    }
}
Попробовать


                                                    
                                                    
Ответ
Результат появится здесь

Payments

Параметры

order_id (integer, обязательно)
create_payment javobidagi payment._id (to'lanishi kerak bo'lgan invoys ID'si).
card_number (string, обязательно)
Karta raqami (16 xonali, bo'sh joysiz yoki bo'sh joy bilan - ikkalasi ham qabul qilinadi).
card_expiry (string, обязательно)
Kartaning amal qilish muddati, OY/YIL (MM/YY) formatida.

Пример кода

curl -X POST "https://checkout.uz/api/v1/pay_via_card" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "order_id": 12345,
    "card_number": "8600123456789012",
    "card_expiry": "12/28"
}'

Пример ответа

{
    "status": "success",
    "message": "Tasdiqlash kodi hamyoningiz ulangan telefonga yuborildi.",
    "payment_token": "2Q85LemHnysZBQWSgubRX6hL7h8ZfuaXKP-ma2CNZlZVyBtCPwlGsMZTGUfiJWWdQmzVSB5a3Wfeuu..."
}
Попробовать


                                                    
                                                    
Ответ
Результат появится здесь

Параметры

payment_token (string, обязательно)
pay_via_card javobidan olingan token (5 daqiqa amal qiladi).
sms_code (string, обязательно)
Kartaga bog'langan telefonga kelgan tasdiqlash kodi (odatda 6 xonali).

Пример кода

curl -X POST "https://checkout.uz/api/v1/confirm_card_payment" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_token": "2Q85LemHnysZBQWSgubRX6hL7h8ZfuaXKP-ma2CNZlZVyBtCPwlGsMZTGUfiJWWdQmzVSB5a3Wfeuu...",
    "sms_code": "123456"
}'

Пример ответа

{
    "status": "success",
    "type": "success"
}
Попробовать


                                                    
                                                    
Ответ
Результат появится здесь

Merchant Info

Этот запрос не требует тела (body).

Пример кода

curl -X POST "https://checkout.uz/api/v1/get_balance" \
  -H "Authorization: Bearer YOUR_API_KEY"

Пример ответа

{
    "status": "success",
    "balance": {
        "uzs": 2500000,
        "usd": 120,
        "ton": 15.5
    }
}
Попробовать

Этот запрос не требует тела (body).



                                                    
                                                    
Ответ
Результат появится здесь

Параметры

limit (integer, необязательно)
Ixtiyoriy. Qaytariladigan tranzaksiyalar soni.

Пример кода

curl -X POST "https://checkout.uz/api/v1/get_history" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 10
}'

Пример ответа

{
    "status": "success",
    "data": [
        {
            "id": 152,
            "amount": 50000,
            "status": "paid",
            "created_at": "2026-01-31 10:00:00",
            "paid_at": "2026-01-31 10:05:22"
        },
        {
            "id": 151,
            "amount": 120000,
            "status": "paid",
            "created_at": "2026-01-30 18:22:11",
            "paid_at": "2026-01-30 18:23:40"
        }
    ]
}
Попробовать


                                                    
                                                    
Ответ
Результат появится здесь

Этот запрос не требует тела (body).

Пример кода

curl -X POST "https://checkout.uz/api/v1/get_stats" \
  -H "Authorization: Bearer YOUR_API_KEY"

Пример ответа

{
    "status": "success",
    "stats": {
        "total_orders": 450,
        "total_amount": 12500000.5
    }
}
Попробовать

Этот запрос не требует тела (body).



                                                    
                                                    
Ответ
Результат появится здесь

Этот запрос не требует тела (body).

Пример кода

curl -X POST "https://checkout.uz/api/v1/get_payment_methods" \
  -H "Authorization: Bearer YOUR_API_KEY"

Пример ответа

{
    "status": "success",
    "data": [
        {
            "key": "click",
            "name": "Click - O'zbekiston",
            "logo_light": "https://example.com/click-light.png",
            "logo_dark": "https://example.com/click-dark.png"
        },
        {
            "key": "payme",
            "name": "Payme - O'zbekiston",
            "logo_light": "https://example.com/payme-light.png",
            "logo_dark": "https://example.com/payme-dark.png"
        }
    ]
}
Попробовать

Этот запрос не требует тела (body).



                                                    
                                                    
Ответ
Результат появится здесь