CHECKOUT.UZ API
Go to v2

API documentation for developers

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

Base URL https://checkout.uz/api/v1
View as llm.txt Ready-made plugins

Authentication

Every request must include your API key in the Authorization header as a Bearer token. You can get your API key from the cash desk settings. If IP Whitelist is enabled, the request must be sent from an allowed IP address only.

Header
Authorization: Bearer YOUR_API_KEY

Your key is stored only in your browser; the request is sent directly to the selected server.

Webhooks

When a payment is successfully confirmed, the system sends the data below via a POST request to your webhook URL. Two URLs can be used: the general "Webhook URL" in your shop settings, and/or the URL passed as the webhook_url parameter when calling /create_payment - if both are configured, the data is sent to each one separately.

Payload sent

{
    "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
}

Fields

webhook_type (string)
Webhook format version.
status (string)
Always "success" (means the delivery succeeded, not the payment status).
event (string)
Event type. Currently only "payment_confirmed".
payment_system (string)
Payment system key (e.g. click, payme, plum).
shop_id (integer)
Shop identifier.
data.order_id (integer)
The invoice ID for this payment (matches _id in the /create_payment response).
data.amount (number)
Payment amount.
data.currency (string)
Currency. Currently always "UZS".
data.status (string)
Always "paid".
data.provider_details (object)
Raw data from the payment provider - shape varies by provider.
data.perform_time (integer)
When the payment was completed (milliseconds, Unix timestamp).
timestamp (integer)
When the webhook was sent (seconds, Unix timestamp).

Your server just needs to respond with HTTP 200. Failed deliveries are not automatically retried yet.

Payment Operations

Parameters

amount (number, required)
To'lov summasi (so'mda). Minimal: 1000, maksimal: 10 000 000.
description (string, optional)
Ixtiyoriy. Buyurtma haqida qisqacha izoh, to'lov sahifasida mijozga ko'rsatiladi.
webhook_url (string, optional)
Ixtiyoriy. To'lov tasdiqlangach, natija shu manzilga ham yuboriladi (kassaning umumiy webhook manziliga qo'shimcha ravishda).
return_url (string, optional)
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.

Code sample

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"
}'

Example response

{
    "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
        }
    }
}
Try it out


                                                    
                                                    
Response
The result will appear here

Parameters

id (integer, optional)
Invoice ID raqami
uuid (string, optional)
To'lovning UUID kodi

Code sample

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": ""
}'

Example response

{
    "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"
    }
}
Try it out


                                                    
                                                    
Response
The result will appear here

Payments

Parameters

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

Code sample

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"
}'

Example response

{
    "status": "success",
    "message": "Tasdiqlash kodi hamyoningiz ulangan telefonga yuborildi.",
    "payment_token": "2Q85LemHnysZBQWSgubRX6hL7h8ZfuaXKP-ma2CNZlZVyBtCPwlGsMZTGUfiJWWdQmzVSB5a3Wfeuu..."
}
Try it out


                                                    
                                                    
Response
The result will appear here

Parameters

payment_token (string, required)
pay_via_card javobidan olingan token (5 daqiqa amal qiladi).
sms_code (string, required)
Kartaga bog'langan telefonga kelgan tasdiqlash kodi (odatda 6 xonali).

Code sample

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"
}'

Example response

{
    "status": "success",
    "type": "success"
}
Try it out


                                                    
                                                    
Response
The result will appear here

Merchant Info

This request does not require a body.

Code sample

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

Example response

{
    "status": "success",
    "balance": {
        "uzs": 2500000,
        "usd": 120,
        "ton": 15.5
    }
}
Try it out

This request does not require a body.



                                                    
                                                    
Response
The result will appear here

Parameters

limit (integer, optional)
Ixtiyoriy. Qaytariladigan tranzaksiyalar soni.

Code sample

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

Example response

{
    "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"
        }
    ]
}
Try it out


                                                    
                                                    
Response
The result will appear here

This request does not require a body.

Code sample

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

Example response

{
    "status": "success",
    "stats": {
        "total_orders": 450,
        "total_amount": 12500000.5
    }
}
Try it out

This request does not require a body.



                                                    
                                                    
Response
The result will appear here

This request does not require a body.

Code sample

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

Example response

{
    "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"
        }
    ]
}
Try it out

This request does not require a body.



                                                    
                                                    
Response
The result will appear here