CHECKOUT.UZ API v2
Back to v1 docs

About API v2

This version is not publicly announced yet (beta). v1 keeps working unchanged - v2 simply adds new capabilities (refunds, cancellation, webhook monitoring, scoped keys, account-level data).

Base URL https://checkout.uz/api/v2

"Shop key" is the API key from your shop settings (Authorization: Bearer). "Profile key" is a separate key from the Profile page, for account-level data.

The key stays in your browser and is never sent to us - it's used only for this request.

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.

Parameters

amount (number, Required)
To'lov summasi (so'mda). Minimal 1000, maksimal 10 000 000.
expire_time (number, Optional)
Invoys qancha sekunddan keyin avtomatik bekor bo'lishi. Berilmasa - 3600 (1 soat). Minimal 60, maksimal 432000 (5 kun).
description (string, Optional)
Buyurtma haqida qisqacha izoh.
webhook_url (string, Optional)
Shu invoys uchun qo'shimcha webhook manzili - to'lov tasdiqlanganda, muddati tuganda yoki bekor qilinganda xabar yuboriladi.
return_url (string, Optional)
To'lovdan keyin mijoz qaytariladigan manzil.

Example response

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

Error cases

400 amount chegaradan tashqarida YOKI expire_time 60-432000 oralig'ida emas
Try it out


                                                    

                                                    
                                                

Javobda qo'shimcha "provider" (qaysi tizim orqali to'langani) va "description" maydonlari bor. id yoki uuid'dan bittasi yetarli.

Parameters

id (number, Optional)
Invoys ID (create_payment javobidagi payment._id). uuid berilmasa shart.
uuid (string, Optional)
Invoys UUID (pay_token, payment._uuid). id berilmasa shart.

Example response

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


                                                    

                                                    
                                                

Muvaffaqiyatli bo'lsa karta egasiga SMS-kod yuboriladi, javobdagi payment_token 5 daqiqa amal qiladi.

Parameters

order_id (number, Required)
Invoys ID.
card_number (string, Required)
Karta raqami (16 xonali).
card_expiry (string, Required)
Kartaning amal qilish muddati, MM/YY formatida (masalan 12/28).

Example response

{
    "status": "success",
    "message": "Tasdiqlash kodi yuborildi",
    "payment_token": "9f1c2e3a-...-payment"
}
Try it out


                                                    

                                                    
                                                

pay_via_card'dan olingan payment_token va SMS kodni yuborib, to'lovni yakunlaydi.

Parameters

payment_token (string, Required)
pay_via_card javobidagi payment_token (5 daqiqa amal qiladi).
sms_code (string, Required)
Karta egasiga SMS orqali kelgan tasdiqlash kodi.

Example response

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


                                                    

                                                    
                                                

Qaytarish va bekor qilish

Faqat Plum, Payme yoki Click orqali to'langan, hali 22 soat o'tmagan to'lovlar uchun ishlaydi.

Parameters

order_id (number, Required)
Qaytarilishi kerak bo'lgan invoys ID.

Example response

{
    "status": "success",
    "order_id": 12345,
    "amount": 50000,
    "provider": "click"
}

Error cases

404 To'lov topilmadi yoki allaqachon qaytarilgan
409 22 soatlik oyna o'tib ketgan
502 Provayder qaytarishni rad etdi
Try it out


                                                    

                                                    
                                                

Pul hali harakatlanmagan (pending) invoysni bekor qiladi, holatni 'canceled'ga o'zgartiradi.

Parameters

order_id (number, Required)
Bekor qilinishi kerak bo'lgan invoys ID.

Example response

{
    "status": "success",
    "order_id": 12345,
    "order_status": "canceled"
}

Error cases

404 Invoys topilmadi
409 Invoys 'pending' holatida emas
Try it out


                                                    

                                                    
                                                

Hisobot

Valyuta kalitlari katta harfda qaytadi (masalan "UZS").

No parameters required

Example response

{
    "status": "success",
    "balance": {
        "UZS": 125000
    }
}
Try it out


                                                    

                                                    
                                                

Sana/holat bo'yicha filtrlash va sahifalash qo'shilgan, javobda has_more keyingi sahifa bor-yo'qligini bildiradi.

Parameters

limit (number, Optional)
Nechta yozuv qaytarilishi (standart 10, maksimal 200).
offset (number, Optional)
Nechta yozuvdan boshlab qaytarilishi (sahifalash uchun, standart 0).
status (string, Optional)
Faqat shu holatdagi invoyslar.
pending paid canceled reversed
date_from (string, Optional)
Shu sanadan (YYYY-MM-DD yoki YYYY-MM-DD HH:mm:ss) keyin yaratilganlar.
date_to (string, Optional)
Shu sanagacha yaratilganlar.

Example response

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


                                                    

                                                    
                                                

Sana oralig'i bo'yicha filtrlash mumkin, javobda by_provider (tizim bo'yicha taqsimot) va unattributed_amount bor.

Parameters

date_from (string, Optional)
Shu sanadan (YYYY-MM-DD yoki YYYY-MM-DD HH:mm:ss) keyin yaratilganlar.
date_to (string, Optional)
Shu sanagacha yaratilganlar.

Example response

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


                                                    

                                                    
                                                

Har bir usul uchun min/max summa va fiskal chek qo'llab-quvvatlanishi (fiscal_supported) ko'rsatiladi.

No parameters required

Example response

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


                                                    

                                                    
                                                

Fiscal chek

Hozircha faqat Payme va Click orqali to'langan invoyslar uchun ishlaydi.

Parameters

order_id (number, Required)
Invoys ID.

Example response

{
    "status": "success",
    "fiscal_url": "https://..."
}

Error cases

501 Bu to'lov tizimi uchun fiscal chek hali qo'llab-quvvatlanmaydi
Try it out


                                                    

                                                    
                                                

Profil (hisob darajasida)

Kassa api_key'i EMAS - Profil sahifasidagi ALOHIDA profile_api_key bilan ishlaydi. Faqat o'qish, moliyaviy amal yo'q.

No parameters required

Example response

{
    "status": "success",
    "id": 5,
    "login": "otabekhde",
    "email": "user@example.com",
    "email_verified": true
}
Try it out


                                                    

                                                    
                                                

Profil kalitiga tegishli barcha kassalarning asosiy ma'lumotini qaytaradi.

No parameters required

Example response

{
    "status": "success",
    "count": 2,
    "shops": [
        {
            "id": 3,
            "shop_name": "CHECKOUT.UZ",
            "status": "Faol",
            "balance_uzs": 9889
        }
    ]
}
Try it out


                                                    

                                                    
                                                

Har bir kassa uchun alohida so'rov yubormasdan, barcha kassalar bo'yicha birlashtirilgan statistikani qaytaradi.

Parameters

date_from (string, Optional)
Shu sanadan (YYYY-MM-DD yoki YYYY-MM-DD HH:mm:ss) keyin yaratilganlar.
date_to (string, Optional)
Shu sanagacha yaratilganlar.

Example response

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