API documentation for developers
All requests, parameters and examples you need to connect the CHECKOUT.UZ payment system to your platform.
Introduction
To'lovlarni yaratish, balansni tekshirish va kassa statistikasini boshqarish uchun yagona API tizimi.
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.
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
| Name | Type | Description |
|---|---|---|
| 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). |
Expected response
Your server just needs to respond with HTTP 200. Failed deliveries are not automatically retried yet.
/create_payment
Yangi to'lov xavolasini yaratish (Invoice)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
/status_payment
To'lov holatini ID yoki UUID orqali tekshirish
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
/get_fiscal
Buyurtmaning fiskal chek ma'lumotini olish (order_id orqali)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| order_id | integer | required | Invoice (buyurtma) ID raqami |
Code sample
curl -X POST "https://checkout.uz/api/v1/get_fiscal" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"order_id": 0
}'
Example response
200 OK
Try it out
/pay_via_card
Kartaga to'g'ridan-to'g'ri to'lov - 1-qadam (SMS kod yuborish)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
/confirm_card_payment
Kartaga to'g'ridan-to'g'ri to'lov - 2-qadam (SMS kodni tasdiqlash)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
/get_balance
Kassa balansini barcha valyutalarda olish
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
/get_history
Oxirgi tranzaksiyalar ro'yxati
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
/get_stats
Kassa bo'yicha umumiy statistika
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
/get_payment_methods
Kassada yoqilgan to'lov tizimlari ro'yxati (nomi, kaliti, logotipi)
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"
}
]
}