Telegram

Telegram botda toʻlov qabul qilish: serverda nima qoladi

Bot pulni oʻzi olmaydi: u hisobni koʻrsatadi, qolgan hamma qaror serverda qabul qilinadi. Telegram botda toʻlov qabul qilish uchun qanday maʼlumot saqlanadi, Telegram qayerda 10 soniya beradi, takroriy toʻlov qayerdan chiqadi va chekni kim yozadi.

Toʻlov yoʻli sxemasi: bot hisob yuboradi, xaridor toʻlaydi, server pre_checkout_query soʻroviga oʻn soniya ichida javob beradi, keyin successful_payment kelib buyurtma va chek yoziladi
Mundarija

Telegram botda toʻlov qabul qilish menyuga yana bitta tugma qoʻshish emas. Bot pulni oʻzi olmaydi. U hisobni koʻrsatadi, xaridor kartasini kiritadi, keyin esa pul haqidagi har bir qaror sizning serveringizga qaytadi: qaysi buyurtma toʻlangan deb belgilanadi, tasdiq ikki marta kelsa nima boʻladi, chekni kim chiqaradi.

Yoʻl ikkita, ikkalasida ham ogʻirlik shu tomonda qoladi. Quyida oʻsha ish nimadan iborat: qanday maʼlumot saqlanadi, Telegram qayerda atigi oʻn soniya beradi, bitta buyurtmaga ikkita toʻlov qanday tushib qoladi va pul kelgandan keyin chek bilan nima qilinadi.

Telegram botda toʻlov qabul qilishning ikkita yoʻli

Birinchi yoʻl — Telegramning oʻz hisobi. Botga toʻlov provayderi BotFather orqali ulanadi, u yerda token beriladi, bot esa shu token bilan sendInvoice metodi orqali chatga hisob yuboradi. Xaridor toʻlovni Telegram oynasidan chiqmay bajaradi.

Bu yoʻlda ikkita raqamli tuzoq bor, ikkalasi ham kod ichida yashiringan. Birinchisi: summa valyutaning eng kichik birligida uzatiladi, soʻm uchun bu tiyin, yaʼni 50 000 soʻm hisobda 5 000 000 boʻlib turadi. Ikkinchisi: chegaralar suzib yuradi. Telegramning valyutalar roʻyxatida 07.09.2026 holatiga soʻm uchun eng kichik summa 1 298 089 tiyin, eng kattasi 12 980 894 361 tiyin deb turibdi. Bu chegaralar taxminan bir dollardan oʻn ming dollargacha boʻlgan oraliqqa moslangan va kurs bilan birga siljiydi, shuning uchun ularni kodga qotirib yozib boʻlmaydi.

Ikkinchi yoʻl mahalliy toʻlov xizmatining sahifasi orqali oʻtadi. Hisob provayder tomonida yaratiladi, bot chatga havolali tugma yuboradi, keyin provayderning tizimi sizning serveringizga murojaat qiladi va undan oʻz formatida javob kutadi. Bu almashinuv bot uchun ham, sayt uchun ham bir xil kechadi: xizmat serveringizni qanday chaqirishi alohida yozilgan.

Qaysi provayderlar BotFatherʼdagi roʻyxatda turishini Telegram hal qiladi va roʻyxat vaqt oʻtishi bilan oʻzgaradi. Shuning uchun ssenariyni chizishdan oldin oʻz botingiz sozlamalaridagi shu roʻyxatni ochib koʻrish kerak. Bizda ulangan toʻlov tizimlari 35 dan ortiq va ular orasida bir xili yoʻq: har birining oʻz protokoli, oʻz javob formati va oʻz chekka holatlari bor.

Serverda qanday maʼlumot saqlanadi

Bot suhbatning qayerda toʻxtaganini eslab yuradi. Pul qoʻshilganda boshqa xotira kerak boʻladi, bu xotira esa botga emas, buyurtmaga bogʻlanadi.

Hisob yuborilganda Telegram payload maydonini beradi: 1–128 bayt, xaridorga koʻrinmaydi, hujjatda uning vazifasi ichki jarayonlaringiz uchun deb yozilgan. Aynan shu yerga oʻz buyurtma raqamingiz qoʻyiladi. Oʻrniga narx yoki tovar nomi yozilsa, tasdiq kelganda uni nimaga bogʻlashni bilib boʻlmaydi: xabar qaytganda oʻzi bilan faqat shu maydonni olib keladi.

Ikkinchi saqlanadigan narsa — buyurtma holati. Biz yuritayotgan toʻlov tizimida qoida qatʼiy: bazadagi holat pulning haqiqiy harakatidan oldinga oʻtmaydi. «Toʻlandi» degan belgi tasdiq kelgandan va tekshirilgandan keyin qoʻyiladi, hisob yuborilgan paytda emas. Shundan ikkinchi qoida chiqadi: har bir yangi urinish yangi qator boʻladi, eski qator qayta ishlatilmaydi. Muvaffaqiyatsiz qatorlar bazada qolib ketadi va bir kuni aynan ular kerak boʻladi.

Sxemada bot xotirasi va buyurtmaga bogʻlanadigan yozuv yonma-yon turadi: payload maydoni 1–128 bayt, buyurtma holati pulning haqiqiy harakatidan oldinga oʻtmasligi va har bir yangi urinish uchun yangi qator ochilishi
Yozuv shu bilan tugamaydi: toʻlov oʻtgandan keyin unga ikkita identifikator va har bir holat oʻzgarishi yoziladigan jurnal qoʻshiladi.

Oʻn soniya: bot javob bermasa, toʻlov bekor qilinadi

Xaridor toʻlov maʼlumotlarini kiritib oxirgi tugmani bosganda, Bot API sizning serveringizga pre_checkout_query soʻrovini yuboradi. Bot Payments API hujjati bu yerda aniq: javob 10 soniya ichida qaytmasa, tranzaksiya bekor qilinadi.

Bu bosqich rasmiyatchilik emas. Shu oʻn soniya ichida tovar hali bormi, narx oʻzgarmadimi va bu buyurtma allaqachon toʻlanmaganmi degan savollarga javob berish kerak. Qoldiq boshqa tizimda yotsa va u soʻrovga oʻn ikki soniyada javob bersa, toʻlov aynan shu joyda oʻladi, xaridor esa nima boʻlganini tushunmaydi.

Vaqt chizigʻi: pre_checkout_query kelgandan keyin oʻn soniyalik oynada uchta savol turadi, tovar bormi, narx oʻzgarmadimi va buyurtma allaqachon toʻlanmaganmi, chegaradan keyin esa qizil maydon, tranzaksiya bekor qilinadi
Bu chegarani Telegram belgilaydi. Mahalliy toʻlov xizmati yoʻlida esa protokol ham, javob formati ham oʻsha xizmatning oʻziniki.

Rad javobi ham matn bilan yuboriladi va Telegram uni foydalanuvchiga koʻrsatadi. «Kechirasiz, oxirgi dona hozirgina sotildi» degan qator bilan «xatolik yuz berdi» degan qator orasidagi farq shu joyda paydo boʻladi.

Koʻpincha aynan shu talab qoldiq va narx qayerda yotishini hal qiladi: bot oʻz bazasida nusxa saqlab, uni jadval boʻyicha yangilaydimi yoki har safar hisob tizimidan soʻraydimi. Ikkala yoʻl bir xil turmaydi, buni ssenariy chizilayotganda hal qilish kerak.

Bitta buyurtma, ikkita toʻlov

Hisob xabari boshqa chatga uzatilsa, undagi toʻlash tugmasi ishlab turaveradi va uni bir necha kishi bosishi mumkin. Buni start_parameter boshqaradi: hisobni faqat oʻz chatida toʻlanadigan qilib ham, uzatilgan nusxalarida ham toʻlanadigan qilib yuborish mumkin. Hujjatda yonida ogohlantirish turadi: takroriy toʻlovni faqat buyurtmani rostdan ham bajara oladigan bot qabul qilishi kerak.

Ikkinchi manba takroriy xabar boʻladi. Aloqa uzilsa, tasdiq ikkinchi marta kelishi mumkin. Uni ikkinchi marta bajaradigan kod tashqaridan sogʻlom koʻrinadi: buyurtma yana bir bor rasmiylashtiriladi, qoldiq yana bir bor kamayadi. Qoʻlda sinovdan u har doim oʻtadi, chunki qoʻlda hech kim bitta tasdiqni ikki marta yubormaydi.

Uchinchisi — summa. U tashqaridan keladi va oʻzingizdagi raqamga solishtirilishi kerak. Biz yuritayotgan tizimda qaror shunday yozilgan: valyuta mos kelmasa, toʻlov rad etiladi va administratorga xabar ketadi, kam pul kelganda ham shunday boʻladi, ortiqcha kelsa esa oʻtkaziladi, chunki ortigʻi uchun toʻlov xizmati javob beradi. Bu bizning qarorimiz, umumiy qoida emas, lekin bunday qarorni kimdir qabul qilishi shart.

Toʻrtinchisi kelmay qolgan tasdiq. Kartadan pul ketgan, buyurtma esa hamon kutish holatida qoladi, xaridor esa yozib soʻraydi. Bu yerda kutish yordam bermaydi: server provayderdan «bu toʻlov nima boʻldi» deb belgilangan oraliqda oʻzi soʻrab turishi kerak, bunday jarayon esa birinchi versiyadayoq turadi.

Toʻrtta ustun: uzatilgan hisob, takroriy tasdiq, mos kelmagan summa va kelmay qolgan tasdiq, har birining tagida nima boʻlishi yozilgan, toʻrtinchi ustun esa punktir bilan chizilgan
Toʻrt manbaning uchtasi serverda hal qilinadi, toʻrtinchisi esa umuman kelmaydi.

Toʻlov mahsulotingizning chetidagi tugma emas, oʻzagi boʻlsa, hajm butunlay boshqacha: obuna, taqsimot, qaytarish va kunlik solishtirish qoʻshiladi. Bunday ish pul yoʻlini boshdan-oxir quradigan jamoani talab qiladi.

Pul keldi. Endi chek

Toʻlovdan keyin darrov keyingi savol turadi, lekin uni oldindan odatda hech kim bermaydi: bu sotuvga fiskal chek kerakmi va uni kim chiqaradi.

Birinchi ajratish oddiy. Chek jismoniy shaxsga sotuvda kerak boʻladi. Yuridik shaxsga sotuv hisob-faktura bilan rasmiylashtiriladi va unga chek chiqarilmaydi. Yaʼni bot xaridorning kim ekanini bilishi va bu ikki yoʻlni ajratishi kerak, hammasini bitta yoʻldan haydash emas.

Ikkinchi xabar yengillik keltiradi. Fiskal operator bilan alohida almashinuv qurish shart emas: pulni qabul qiladigan toʻlov tashkilotlari chek bilan ishlash uchun tayyor API tayyorlab qoʻygan, ulanish oʻsha yerga boradi. Fiskal kontur pulni qabul qiladigan tomonda qoladi.

Sizda esa oʻz ishingiz qoladi. Katalogdagi har bir pozitsiya boʻyicha IKPU kodi uzatiladi, chekdagi soliq stavkasi esa shu kodga bogʻliq. Buni dasturchi emas, siz buxgalteringiz bilan birga bajarasiz, va pozitsiyalar yuzlab boʻlsa, bu bir kechalik ish emas. Toʻlov shakli ham alohida maydon: u kanaldan kelib chiqmaydi, uni uzatish kerak.

Soliq organi oldida chek uchun javobgarlik sotuvchida, yaʼni sizda qoladi, chekni vositachi shakllantirgan boʻlsa ham. Yetkazib berishda naqd pul olinadigan boʻlsa, chekni kim chiqarishi kuryerga bogʻliq: marketpleys kuryerida ilova yoki kassa apparati bor, pochta kuryeri esa faqat yetkazadi va bunday buyurtmalar odatda oldindan onlayn toʻlanadi. Chekni oldindan yozib qoʻyishning oʻz narxi bor: xaridor tovarni eshik oldida koʻradi va rad etishi mumkin, chek esa allaqachon chiqarilgan boʻladi.

Ssenariyingiz shu darajaga yetgan boʻlsa, uni yozib yuboring: botni bizga topshirmoqchi boʻlsangiz, baholashdan oldin toʻlov qismini alohida koʻrib chiqamiz.

Qaytarish, nizo va saqlab qolinadigan maʼlumot

Qaytarish botning ichida hal boʻlmaydi. Telegramning oʻz qaytarish metodi faqat Stars uchun ishlaydi: hujjatdagi RefundedPayment obʼyektida valyuta doim XTR deb turibdi, 07.09.2026 holatiga. Karta bilan toʻlangan pul provayder orqali qaytariladi, yaʼni bot tashqarisida. Buni kimdir qoʻlda bajaradi va qayd etib qoʻyadi.

Nizo bundan qattiqroq. Bot API hujjatida toʻgʻridan-toʻgʻri yozilgan: xaridor provayder bilan chargeback boshlasa, pul balansingizdan yechib olinishi mumkin va bu Telegram nazoratidan tashqarida. Xaridlar boʻyicha nizolarga bot egasi javob beradi.

Telegramning oʻz talablari ham bor, ular esa tavsiya emas: bot /terms va /support buyruqlariga javob berishi, foydalanuvchiga Telegram qoʻllab-quvvatlash xizmati bu xaridlarda yordam bera olmasligini aytishi, server esa zaxira nusxalar bilan ishlashi kerak. Botni boshqaradigan akkauntda ikki bosqichli tasdiqlash yoqilgan boʻlishi tavsiya qilinadi.

Saqlanadigan maʼlumotga kelsak, chek xabari bilan bitta emas, ikkita identifikator keladi: telegram_payment_charge_id va provider_payment_charge_id. Ular turli suhbatlar uchun kerak boʻladi, biri Telegram bilan, ikkinchisi provayder bilan, va keyinroq ularni tiklab boʻlmaydi. Yoniga har bir holat oʻzgarishi yoziladigan jurnal qoʻyiladi.

Jurnal birinchi versiyada nega kerak: farq oʻzidan-oʻzi koʻrinmaydi, uni faqat qatorma-qator solishtirish topadi. Biz tahlil qilgan toʻlov tizimida nomuvofiqliklar uzoq vaqt sezilmay turgan, chunki ularni qidiradigan jarayon yoʻq edi. Solishtiruv qanday qurilgani alohida ishda koʻrsatilgan.

Uchta savol, ish hajmi shulardan koʻrinadi

  1. Toʻlangan buyurtma qayerda yoziladi: botning oʻz bazasidami yoki hisob tizimidami? Javob «hozircha hech qayerda» boʻlsa, avval buyurtmalar hisobi quriladi, toʻlov undan keyin keladi.
  2. Katalogda IKPU kodlari bormi va ularni kim qoʻyadi? Bu savolni dasturchi hal qilmaydi, lekin javobsiz qolsa, ish chek bosqichida toʻxtaydi.
  3. Pul yechilgan, tasdiq kelmagan. Buni kim, qancha vaqtda va qayerdan koʻradi?

Uchala javob tayyor boʻlsa, hajm darrov koʻrinadi va baho taxmin boʻlmaydi. Javoblarni yozib yuboring va bot qaysi toʻlov xizmati bilan gaplashishini ayting: qaysi yoʻl sizga qulayroq tushishini va serverda nima qurish kerakligini aytamiz. Bot hali yoʻq boʻlsa, avval botning hajmi nimadan yigʻilishini koʻrib chiqing, pul qismi shu hajm ustiga qoʻshiladi.

Sattarov Bunyod

DigiCore asoschisi, Toshkent

14 yildan koʻproq vaqtdan beri toʻlov tizimlari, onlayn doʻkonlar va kompaniyalarning ichki tizimlarini yaratamiz. 35 dan ortiq turli toʻlov tizimini ulaganmiz va Markaziy bank litsenziyasi ostida ishlaydigan toʻlov tashkilotini noldan yigʻganmiz. Oʻz qoʻlimiz bilan qilgan ishimiz haqida yozamiz.

Muallif haqida

Chat oynasidagi mijoz savoli strelka boʻylab kompaniya materiallariga, undan til modeliga va tayyor javobga oʻtadi; pastda «bilmayman, operatorga uzataman» tarmogʻi

Telegram

AI chatbot nima: savol qanday qilib javobga aylanadi

AI chatbot erkin yozilgan savolni tushunadi, lekin kompaniyangizni bilmaydi: javob siz bergan materiallardan olinadi. Bitta savolning yoʻli, «bilmayman» qoidasi, oʻ harfining besh yozilishi va Telegramdagi uchta chegara.

10 daqiqa oʻqish

Yangi mahsulot gʻoyasi bormi yoki mavjudini rivojlantirish kerakmi?

Vazifangiz haqida gapiring. Biz uni oʻrganib, texnik va iqtisodiy jihatdan asosli yechim taklif qilamiz.

Ish kuni davomida javob beramiz · Telegram @sbunyod