- Bosh sahifa
- Blog
- Saytga Click, Payme va Uzum ulash: O'zbekistonda onlayn to'lov qabul qilish bo'yicha qo'llanma
Saytga Click, Payme va Uzum ulash: O'zbekistonda onlayn to'lov qabul qilish bo'yicha qo'llanma
Saytga Click, Payme va Uzum ulash: hujjatlar, to'lov jarayoni, pulni qaytarish, MXIK kodli fiskal chek, sinov va onlayn to'lovdagi ko'p uchraydigan xatolar.

Saytga yoki internet do'konga to'lov tizimini ulash smetada ko'pincha bitta qator bo'lib ko'rinadi: "Click va Payme integratsiyasi". Amalda to'lov tugmasi — ishning eng kichik qismi. Undan oldin shartnoma va hujjatlar turadi, undan keyin esa to'lovni serverda tekshirish, buyurtma holatlari, pulni qaytarish, MXIK kodli fiskal chek va kunlik solishtirish keladi. Bu qo'llanma dasturchi uchun emas, biznes egasi uchun: saytga Click, Payme yoki Uzum to'lov tizimini ulashdan oldin nimani tayyorlash kerak, onlayn to'lov qabul qilish jarayoni qanday kechadi, pul yoki buyurtma qayerda "yo'qolib" qolishi mumkin va ishga tushirishdan oldin nimani sinab ko'rish kerak. Provayderlar haqidagi ma'lumotlar ularning rasmiy hujjatlaridan olingan, lekin shartlar o'zgarib turadi: qaror qilishdan oldin ularni provayderning o'zi bilan tekshiring.
O'zbekistonda onlayn to'lov qabul qilish qanday ishlaydi
Kompaniya karta protsessingiga to'g'ridan-to'g'ri ulanmaydi. U to'lov provayderiga — Payme Business, Click yoki Uzum Checkout'ga — ulanadi va provayderning o'zi yoki uning hamkor banki bilan shartnoma tuzadi. Mijoz karta ma'lumotlarini provayderning sahifasida yoki ilovasida kiritadi va to'lovni o'sha yerda tasdiqlaydi, pul esa kompaniyaning hisob-kitob raqamiga tushadi. Provayder sahifasi orqali to'langanda saytingiz karta raqamini ko'rmaydi ham, saqlamaydi ham: uning vazifasi — buyurtma yaratish, mijozni provayderga yuborish va natijani to'g'ri qabul qilish.
Provayderlar o'z hujjatlarida qaysi kartalarni ko'rsatgan:
- Payme Business — istalgan bankning UZCARD Online va HUMO kartalari hamda Payme CARD.
- Click — Uzcard va Humo (to'lov tugmasi hujjatlarida karta turi sifatida).
- Uzum Checkout — Visa, Mastercard, Uzcard va Humo.
Uchalasidan Visa va Mastercard faqat Uzum Checkout hujjatlarida ko'rsatilgan. Bu kartalar orqali, jumladan xorijdan to'lov qabul qilish siz uchun muhim bo'lsa, buni shartnomadan oldin provayder bilan aniqlang.
Saytga Click, Payme yoki Uzum ulashdan oldin nima tayyor bo'lishi kerak
Integratsiyaning texnik qismi odatda hujjatlarni kutib turadi, aksincha emas. Quyidagilarni dasturchi ishni boshlashidan oldin hal qiling:
- Yuridik shaxs yoki yakka tartibdagi tadbirkor (YaTT). Click hujjatlarida to'lov qabul qiluvchi yuridik shaxs yoki YaTT bo'lishi kerakligi yozilgan.
- Hisob-kitob raqami. Payme Business shartlariga ko'ra tushum tashkilotning hisob raqamiga kelishi kerak. Soliq organining 2021-yilgi tushuntirishi ham shunday: pul shaxsiy kartaga emas, korxonaning hisob raqamiga tushadi.
- Merchant shartnomasi. Click uchun — Click'ga ulangan banklardan biri bilan to'lov qabul qilish shartnomasi. Payme Business uchun — Didox orqali elektron raqamli imzo (ERI) bilan onlayn yoki ofisga borib. Uzum uchun — Uzum Bank menejeri orqali.
- Provayder so'raydigan hujjatlar to'plami. Click ro'yxatida, masalan, davlat ro'yxatidan o'tganlik guvohnomasi, zarur bo'lsa litsenziya, rahbarni tayinlash haqidagi buyruq, ustav va domen bo'yicha shartnoma bor; ro'yxat bankka qarab biroz farq qilishi mumkin. Boshqa provayderlarning ro'yxatini ariza berayotganda so'rang.
- Ishlab turgan sayt. Ommaviy oferta, yetkazib berish va pulni qaytarish shartlari hamda aloqa ma'lumotlari saytda ochiq turishi kerak.
- Har bir mahsulot uchun MXIK, qadoq kodi va QQS stavkasi. Ularni buxgalteringiz bilan kelishib oling va mahsulot katalogiga kiriting.
- Kirish ma'lumotlari kompaniya nomida. Shaxsiy kabinet, merchant ID, maxfiy kalitlar va ERI dasturchi yoki frilanserga emas, kompaniyaga tegishli bo'lsin. Ijrochiga faqat ish uchun kerakli kirish huquqini bering.
Komissiya va boshqa amaldagi shartlarni provayder va bankingizdan so'rang. Provayderga ulanish uning o'z jadvali bo'yicha o'tadi va dasturchi buni tezlashtira olmaydi, shuning uchun arizani loyiha boshidayoq topshiring. To'lov provayderi haqida birorta savol bermagan ijrochi — ogohlantiruvchi belgi; bu haqda veb-ishlab chiqish kompaniyasini tanlash bo'yicha qo'llanmada yozganmiz.
Payme, Click va Uzum integratsiyasi qanday ishlaydi
Jarayon uchala provayderda bir xil, farq asosan kim kimga so'rov yuborishida:
- Buyurtma yaratiladi. Sayt buyurtmani bazaga yozadi, unga noyob raqam beradi va summani serverda hisoblaydi.
- Mijoz provayder sahifasiga o'tadi. Click'da bu to'lov havolasi: unda
merchant_id,service_id, buyurtma raqami (transaction_param), summa va ixtiyoriy qaytish manzili (return_url) bo'ladi. Payme'da — to'lov formasi (checkout), Uzum Checkout'da — to'lov sahifasi. - Provayder serveringizga murojaat qiladi. Payme Merchant API'da Payme serveringizga
HTTPS orqali JSON-RPC 2.0 so'rovlarini yuboradi (CheckPerformTransaction,
CreateTransaction, PerformTransaction va boshqalar), serveringiz esa javob beradi.
Click SHOP API'da Click siz bergan manzillarga ikki so'rov yuboradi: Prepare va
Complete. Har birida
SECRET_KEYasosida tuzilgan MD5 imzo bo'ladi. Uzum Checkout'da tartib boshqacha: to'lovni serveringiz REST API orqali o'zi ro'yxatdan o'tkazadi va to'lov sahifasi havolasini oladi, natija haqida Uzum callback (webhook) yuboradi, holatni esa API orqali ham so'rash mumkin. - Server tekshiradi. Imzo yoki avtorizatsiya to'g'rimi, bunday buyurtma bormi, u hali to'lanmaganmi, summa buyurtmadagi summaga to'liq mos keladimi.
- Buyurtma holati yangilanadi. Faqat shu tekshiruvlardan keyin buyurtma to'langan deb belgilanadi, ombor va menejerga xabar boradi.
- Mijoz saytga qaytadi va buyurtmasining holatini ko'radi.
Bu jarayonda ikki qoida ayniqsa muhim.
Brauzer orqali qaytish — to'lov isboti emas. Mijozning "To'lov qabul qilindi" sahifasiga kelgani faqat u shu sahifani ochganini bildiradi. Bu manzilni qo'lda ochish mumkin, mijoz esa to'lovdan keyin sahifani yoki ilovani yopib qo'yishi mumkin.
Takroriy xabar bir marta qayta ishlanadi. Tarmoq uzilishi yoki serveringiz kech javob bergani sababli bir xil xabar ikki marta kelishi mumkin. Ikkinchi xabar buyurtmani qayta "to'landi" qilmasligi, ombordagi qoldiqni ikki marta kamaytirmasligi va mijozga ikkinchi SMS yubormasligi kerak. Dasturchilar buni idempotentlik deydi; bu talabni texnik topshiriqda alohida yozing.
Mobil ilovada ham mantiq o'sha: ilova to'lovni boshlaydi, natijani server tasdiqlaydi. Batafsil — mobil ilova yaratish bo'yicha qo'llanmamizda.
Buyurtma holatlari, kutish muddati va pulni qaytarish
Mijoz karta ma'lumotlarini kiritib, SMS-kodni kutguncha vaqt o'tadi. Shu oraliqda buyurtma bilan nima bo'lishini oldindan hal qiling.
Tovarni band qiling va buyurtmani tahrirlashni bloklang. Payme'ning hozirgi hujjatlariga ko'ra, tranzaksiya yaratilganidan 12 soat o'tib, vaqt tugagani uchun bekor qilinadi. Hujjat shu muddatgacha buyurtmani band qilib turishni, uni o'zgartirishga yo'l qo'ymaslikni va "to'lov kutilmoqda" holatida ko'rsatishni tavsiya qiladi. Click ham onlayn do'konlardan tovarni Prepare bosqichidayoq band qilishni so'raydi. To'lov boshlangandan keyin mijoz savatga tovar qo'shsa, saytdagi summa provayderdagi summaga mos kelmay qoladi.
Provayder holatlarini o'z holatlaringizga bog'lang. Provayderning tranzaksiya holatlari bor, buyurtmaning esa o'zinikilari: masalan, "yangi", "to'lov kutilmoqda", "to'langan", "vaqti o'tib bekor qilingan", "qaytarilgan". Qaysi provayder xabari buyurtmani qaysi holatga o'tkazishini jadvalda yozib qo'ying, aks holda har bir nostandart holat qo'lda tekshiriladi.
Pulni qaytarish har bir provayderda o'zgacha:
- Payme Business — pul xaridorga merchant kabineti orqali qaytariladi, lekin faqat CancelTransaction metodi amalga oshirilgan bo'lsa. Bu metod yaratilgan tranzaksiyani ham, yakunlanganini ham bekor qiladi.
- Click — to'lov Merchant API'dagi bekor qilish (reversal) metodi orqali qaytariladi. Hozirgi hujjatlarga ko'ra, buning uchun to'lov muvaffaqiyatli yakunlangan, onlayn karta bilan qilingan va joriy hisobot oyiga tegishli bo'lishi kerak (o'tgan oy to'lovini faqat joriy oyning birinchi kunida bekor qilish mumkin), UZCARD esa bekor qilishni rad etishi mumkin. Complete bosqichida pul yechilgandan keyin tovar yoki xizmatni berib bo'lmasa, Click hujjatlariga ko'ra Complete'ga muvaffaqiyatli javob qaytarib, so'ng to'lovni shu metod bilan bekor qilish kerak.
- Uzum Checkout — to'liq va qisman qaytarish qo'llab-quvvatlanadi.
To'lovdan keyin buyurtmani bajarib bo'lmasa, pulni kartadan-kartaga o'tkazma bilan emas, provayder orqali qaytaring. Aks holda tushum, qaytarilgan summa va chek bir-biriga bog'lanmay qoladi. Har kuni provayder hisobotini saytdagi buyurtmalar bilan solishtiring: provayderda o'tgan, lekin saytda "to'lanmagan" bo'lib qolgan har bir to'lov — mijozning qo'ng'irog'i va qo'lda tuzatish demak.
Fiskal chek va MXIK kodlari
2022-yil 1-yanvardan boshlab nazorat-kassa mashinalari va virtual kassalar chekni MXIK'siz (ruschada IKPU) bera olmaydi. MXIK — 17 xonali kod, u tasnif.soliq.uz saytida topiladi. Soliq organining 2021-yilgi tushuntirishiga ko'ra, mijoz Click yoki Payme orqali to'lagani chek berish majburiyatini bekor qilmaydi. Elektron tijoratda chek ma'lumotlarini virtual kassa orqali fiskal ma'lumotlar operatoriga yuborish mumkin.
Uchala provayderning API'si chek uchun tovar ma'lumotlarini uzata oladi:
- Payme — CheckPerformTransaction javobida
detailobyektini qaytarish mumkin. Unda har bir tovarning nomi, tiyindagi narxi, soni, MXIK kodi, qadoq kodi (package_code) va QQS foizi (vat_percent) bo'ladi. To'lov yoki bekor qilishdan keyin Payme SetFiscalData metodi orqali fiskal ma'lumotlar operatoridan olingan chek ma'lumotlarini, jumladan chekning QR-kod havolasini yuboradi. - Click — fiskallashtirish API'si to'lovdagi tovarlarni qabul qiladi: nomi, MXIK kodi, qadoq kodi, narxi, miqdori, QQS summasi va foizi hamda STIR yoki JShShIR ko'rsatilgan komissiya ma'lumotlari. Chekni boshqa joyda fiskallashtirgan bo'lsangiz, o'sha chekning QR havolasini yuborish mumkin.
- Uzum Checkout — bir bosqichli to'lovlar uchun avtomatik fiskallashtirish. U dastlab o'chirilgan bo'ladi va Uzum Bank menejeri orqali yoqiladi; buning uchun savatdagi har bir tovarning MXIK kodi, qadoq kodi va QQS stavkasi kerak. Avtofiskallashtirish yoqilmagan bo'lsa, chek ma'lumotlarini o'zingiz yuborasiz, buning uchun Uzum Bank'da alohida fiskallashtirish API'si bor.
Hal qiluvchi savol texnik emas: chekni kim chiqaradi — provayderning o'zimi yoki sizning virtual kassangizmi — va pul qaytarilganda qaytarish cheki qanday chiqadi. Buni ishlab chiqish boshlanishidan oldin buxgalteringiz bilan hal qiling. Provayder chekni fiskallashtirsa ham, bu barcha fiskal majburiyatlaringizni yopib qo'ymaydi: amaldagi qoidalardan qaysilari sizga tegishli ekanini buxgalteringiz aytib beradi.
Internet do'konga qaysi to'lov tizimini ulash kerak
Hujjatlarga ko'ra asosiy farqlar:
| Jihat | Payme Business | Click | Uzum Checkout |
|---|---|---|---|
| Integratsiya modeli | Payme serveringizga so'rov yuboradi (Merchant API, JSON-RPC) | Click serveringizga Prepare va Complete yuboradi (SHOP API) | Serveringiz REST API orqali to'lovni yaratadi, natija callback bilan keladi |
| Hujjatlarda ko'rsatilgan kartalar | UZCARD Online, HUMO, Payme CARD | Uzcard, Humo | Visa, Mastercard, Uzcard, Humo |
| Sinov muhiti | Sandbox (test.paycom.uz) va alohida TEST_KEY | Prepare va Complete'ni sinash uchun Playground; to'lov sahifasi — kichik real to'lov bilan | Test muhiti va test kartalar |
| Pulni qaytarish | Kabinet orqali, CancelTransaction amalga oshirilgan bo'lsa | Merchant API orqali bekor qilish, hujjatdagi muddat shartlari bilan | To'liq va qisman qaytarish |
| Fiskallashtirish | detail obyekti (MXIK, qadoq kodi, QQS) va SetFiscalData | Fiskallashtirish API'si yoki tayyor chekning QR havolasi | Bir bosqichli to'lovlar uchun avtofiskallashtirish, menejer orqali yoqiladi |
| Telegram bot | BotFather'da to'lov provayderi sifatida, test va live rejim | BotFather'da to'lov provayderi sifatida, test va live rejim | Checkout hujjatlarida alohida bo'lim yo'q; menejer bilan aniqlang |
Bitta provayder yetadimi yoki bir nechtasi kerakmi — umumiy javob yo'q, lekin uchta amaliy qoida bor:
- Mijozlaringiz haqiqatan foydalanadigan provayderlarni ulang. Buni sotuv bo'limingiz biladi.
- Bitta ichki to'lov qatlamini quring. Savat va buyurtma mantig'i provayderni bilmasligi kerak: u faqat "to'lov yaratildi", "to'landi", "bekor qilindi" kabi ichki hodisalarni ko'radi. Shunda yangi provayder qo'shish checkout jarayoniga tegmaydi, faqat yangi provayder moduli yoziladi.
- Har bir qo'shimcha provayder — qo'shimcha solishtirish ishi. Alohida kabinet, alohida hisobot, alohida qaytarish tartibi va alohida chek sxemasi.
Telegram bot orqali sotsangiz, to'lov boshqa yo'ldan o'tadi: Payme ham, Click ham BotFather'dagi Payments bo'limi orqali Telegram'ning bot to'lovlariga ulanadi. Batafsil — biznes uchun Telegram bot haqidagi maqolamizda.
Ishga tushirishdan oldin sinov
Har bir provayderning sinov imkoniyati boshqacha:
- Payme — test.paycom.uz manzilidagi sandbox. Payme ikki kalit beradi: kabinet kaliti va sandbox uchun TEST_KEY.
- Uzum — test muhiti va test kartalar.
- Click — hujjatlarda Prepare va Complete so'rovlarini serveringizga yuborib ko'rish uchun Playground (sandbox) va Postman to'plami bor. To'lov sahifasining o'zini esa kichik summali real to'lov bilan nazorat ostida tekshirib, so'ng uni qaytaring.
Quyidagi holatlarning har birini kamida bir marta o'tkazing:
- muvaffaqiyatli to'lov;
- noto'g'ri summa;
- mavjud bo'lmagan buyurtma raqami;
- bir xil xabarning takror kelishi;
- muddati o'tib bekor qilingan tranzaksiya;
- to'lovdan keyin bekor qilish;
- qisman qaytarish (provayder qo'llab-quvvatlasa);
- chek yaratilgani va buyurtmaga bog'langani;
- provayder xabar yuborayotgan paytda serveringiz ishlamay turgani;
- telefonda saytga qaytish: brauzerdan, provayder ilovasidan va "orqaga" tugmasi bilan.
Sinov natijasini dasturchi emas, buyurtmalar bilan ishlaydigan xodimingiz admin panel va hisobotda o'z ko'zi bilan tekshirib qabul qilsin.
Ko'p uchraydigan xatolar
- Muvaffaqiyat sahifasiga ishonish. Buyurtma brauzer qaytgani uchun to'langan deb belgilanadi.
- Imzoni tekshirmaslik. Click so'rovidagi MD5 imzo yoki Payme so'rovining Authorization sarlavhasidagi login va kalit tekshirilmasa, istalgan kishi serveringizga "to'landi" degan so'rov yuborishi mumkin.
- Maxfiy kalitlar frontend yoki mobil ilova kodida. Kalit faqat serverda saqlanadi;
Click hujjatlarida ham
secret_keyxavfsizligi uchun yetkazib beruvchi javob berishi yozilgan. - Summa birliklarini adashtirish. Payme summani tiyinda yuboradi, Click SHOP API — so'mda, Click fiskallashtirish API'si esa tiyinda qabul qiladi; Uzum Checkout'da ham summa tiyinda beriladi. Bir joyda adashish summani yuz barobar o'zgartiradi.
- Tovarni band qilmaslik. Ikki mijoz omborda qolgan oxirgi tovar uchun to'laydi.
- To'lov boshlangandan keyin buyurtmani tahrirlash mumkinligi.
- MXIK yo'q yoki noto'g'ri. Chek chiqmaydi yoki noto'g'ri ma'lumot bilan chiqadi.
- Merchant ma'lumotlari frilanser akkauntida. Hamkorlik tugashi bilan kabinetga kirish ham yo'qoladi.
- Kunlik solishtirish yo'q. Xatolar oy oxirida, buxgalteriya hisobotida chiqadi.
- To'lovlar buxgalteriya yoki 1C'ga yetib bormaydi va menejer ularni qo'lda ko'chiradi. Yechim — sayt va CRM'ni 1C bilan integratsiya qilish haqidagi maqolada.
BITS Technology qanday yordam beradi
Mahalliy va xalqaro to'lov tizimlari bilan integratsiya — sayt yaratish va mobil ilovalar bo'yicha ishimizning bir qismi. Merchant shartnomasini kompaniyangiz tuzadi, kirish ma'lumotlari ham sizda qoladi. Ulanish provayder jadvali bo'yicha o'tadi, shuning uchun arizani erta topshiring. To'lov haqidagi xabarlar serverda tekshiriladi va buyurtmalar bilan solishtiriladi. To'lovlarni 1C'ga uzatish — alohida tizimlar integratsiyasi ishi. Boshqa yo'nalishlarimiz yechimlar sahifasida keltirilgan. Loyihangiz haqida biz bilan bog'laning: tanishuv suhbatidan keyin taklif yuboramiz.


