In Kazakhstan, 14.5 million Telegram users represent 80% of the population. Businesses like Skidki.Live and Tenge Bank already receive 30% of orders through bots.
Telegram bots allow for the automation of orders, support, and payments, reducing costs by 40-60%. In 2026, with the growth of Telegram Mini Apps and payments, this is a key tool for e-commerce and services in Almaty and Astana. The guide will show step-by-step integration with Node.js, CloudPayments, and deployment on VPS for 5000 tenge/month.
Business Context and Prerequisites for Telegram Bots in Kazakhstan
In Kazakhstan, Telegram covers 80% of internet users—14.5 million active accounts as of 2026. Services like Skidki.Live monitor prices in 500+ stores and send 1 million notifications monthly via bots. Tenge Bank processes 25% of corporate payments through Telegram Business.
For businesses, this means a 70% reduction in call center load and a 45% increase in order conversion. Almaty pizzerias receive 35% of orders through bots, Astana beauty salons—60% of appointments. Alashed IT (it.alashed.kz) develops such solutions for 50+ clients in KZ, integrating with 1C and Kaspi.
Prerequisites:
-
Node.js 20+ and npm
-
VPS from 5000 tenge/month (Hetzner, Timeweb)
-
CloudPayments account (2.5% fee for KZ)
-
Telegram account with access to BotFather
| Parameter | Value |
|---|---|
| Telegram users KZ | 14.5 million |
| Average order value via bot | 12,000 tenge |
| Support cost reduction | 70% |
Create a bot via @BotFather:
/sendmessage @BotFather /newbot
Name: PizzaBotKZ
Username: pizzabot_kz_bot
Get the token: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
BotFather Setup and Bot Authentication
BotFather is the official Telegram tool for creating bots. Send /newbot, specify the name and username. Get the API token—the key for all requests.
Node.js Authentication Example:
const TelegramBot = require('node-telegram-bot-api');
const token = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11';
const bot = new TelegramBot(token, {polling: true});
bot.on('message', (msg) => {
const chatId = msg.chat.id;
bot.sendMessage(chatId, 'Hello from Kazakhstan!');
});
HTTP Request to Telegram API:
GET /bot<TOKEN>/getMe HTTP/1.1
Host: api.telegram.org
Response:
{
"ok": true,
"result": {
"id": 123456789,
"is_bot": true,
"first_name": "PizzaBotKZ",
"username": "pizzabot_kz_bot"
}
}
Set commands via /setcommands:
/setcommands
menu - Main menu
pizza - Pizza catalog
order - Place an order
support - Support
For Kazakhstan businesses, set inline mode for search: /setinline. Test on 1000 users—limit 30 messages/sec.
Webhook vs Long Polling: Method Selection with Code Examples
Long Polling is suitable for VPS with a constant connection (5000 tenge/month). Webhook is for serverless (Railway from 0 tenge).
Comparison:
| Method | Pros | Cons | When to Use |
|---|---|---|---|
| Long Polling | Simple setup, no HTTPS | High CPU load | Low traffic <1000 users/day |
| Webhook | Scalability, low cost | Requires HTTPS/SSL | Business >5000 users, e-commerce |
Long Polling Code:
const bot = new TelegramBot(token, {polling: true});
bot.on('callback_query', (query) => {
bot.answerCallbackQuery(query.id);
});
Webhook Setup:
# Install SSL certificate
certbot certonly --standalone -d yourdomain.kz
# Set up webhook
curl -X POST "https://api.telegram.org/bot$TOKEN/setWebhook?url=https://yourdomain.kz/webhook"
Webhook Handler:
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook', (req, res) => {
bot.processUpdate(req.body);
res.sendStatus(200);
});
app.listen(443);
For Tenge Bank, webhook handles 10k payments/hour without delays.
Handling Updates: message, callback_query, inline_query
Telegram sends updates: message (text), callback_query (buttons), inline_query (search).
Full Handler:
bot.on('message', (msg) => {
if (msg.text === '/start') {
bot.sendMessage(msg.chat.id, 'Choose:', {
reply_markup: {
keyboard: [['Pizza', 'Drinks'], ['Cart']],
resize_keyboard: true
}
});
}
});
bot.on('callback_query', (query) => {
const data = query.data;
if (data === 'pizza_1') {
bot.editMessageText('Margherita - 2500 tenge', {
chat_id: query.message.chat.id,
message_id: query.message.message_id,
reply_markup: {
inline_keyboard: [[{text: 'Add to Cart', callback_data: 'add_pizza'}]]
}
});
}
bot.answerCallbackQuery(query.id);
});
bot.onInlineQuery((query) => {
bot.answerInlineQuery(query.id, [
{type: 'article', id: '1', title: 'Margherita Pizza', input_message_content: {message_text: 'Order: Margherita 2500tg'}}
]);
});
Example Request from Telegram:
{
"update_id": 123,
"callback_query": {
"id": "456",
"data": "pizza_1",
"message": {"chat": {"id": 789}}
}
}
Keyboards: reply and inline with callback data
Reply keyboard—permanent under the message. Inline—in the message with callback_data up to 64 bytes.
Reply Keyboard:
bot.sendMessage(chatId, 'Menu:', {
reply_markup: {
keyboard: [
[{text:'Catalog'}, {text:'Cart'}],
[{text:'Support'}]
],
resize_keyboard: true,
one_time_keyboard: false
}
});
Inline Keyboard with Payment:
bot.sendMessage(chatId, 'Total: 5000 tenge', {
reply_markup: {
inline_keyboard: [[
{text: 'Pay with Kaspi', callback_data: 'pay_kaspi'},
{text: 'CloudPayments', callback_data: 'pay_cloud'}
]]
}
});
For Almaty pizzerias: 5 menu buttons increase orders by 28%. Limit: 100 buttons max.
Telegram Payments: CloudPayments Integration for Kazakhstan
Telegram Payments with CloudPayments (2.5% commission). Requires pre_checkout_query.
1. Connect the provider:
In @BotFather: /mybots → Payments → CloudPayments (public_token).
2. Send Invoice:
bot.sendInvoice(chatId, 'Margherita Pizza', 'Classic pizza', 'pizza_001', '7807000000123', 'KZT', [{label: 'Pizza', amount: 2500 * 100}]);
3. Pre-checkout handler:
bot.on('pre_checkout_query', (query) => {
bot.answerPreCheckoutQuery(query.id, true);
});
bot.on('successful_payment', (msg) => {
// Save order in 1C
bot.sendMessage(msg.chat.id, `Order №${orderId} paid!`);
});
Example Response:
{
"successful_payment": {
"currency": "KZT",
"total_amount": 250000,
"telegram_payment_charge_id": "12345"
}
}
In KZ: 65% of payments via Kaspi QR, but CloudPayments accepts cards from all banks.
Deployment and Real Cases for Kazakhstan Business
Deploy on VPS Hetzner (3000 tenge/month, 2 vCPU):
npm install
pm install -g pm2
pm start
pm2 startup
pm2 save
Serverless on Railway:
railway login
railway add
railway up
Cases KZ:
-
Food Delivery (Domino's Almaty): bot handles 1200 orders/day, integration with Glovo API.
-
Beauty Salons (Astana): 3000 procedures/month, reminders reduce no-shows by 40%.
-
Tenge Bank: credit status, 50k requests/day.
-
Skidki.Live: discount notifications in 200 stores.
Mini Apps: for catalogs >50 items.
bot.sendMessage(chatId, 'Catalog', {
reply_markup: {
inline_keyboard: [[{text: 'Open Mini App', web_app: {url: 'https://yourapp.kz'}}]]
}
});
Common Errors and Solutions
Error 429 Too Many Requests—exceeded limit of 30 msg/sec. Solution: add a queue with p-limit.
Error 400 Bad Request: chat not found—incorrect chat_id. Solution: validate msg.chat.id > 0.
Webhook 404/SSL Error—incorrect URL or certificate. Solution:
curl "https://api.telegram.org/bot$TOKEN/getWebhookInfo"
# Remove: deleteWebhook
certbot renew
Pre-checkout_query timeout—no response in 10 sec. Solution: setTimeout(() => bot.answerPreCheckoutQuery(query.id, true), 500).
Inline query not working—mode not enabled. Solution: /setinline in BotFather.
PM2 not starting—port is busy. Solution: pm2 delete all && pm2 start ecosystem.config.js.
Log with: winston for 7 days, rotation 10MB. Monitor with UptimeRobot for free.
Что это значит для Казахстана
In Kazakhstan, Telegram is the main channel: 80% of Almaty residents and 75% of Astana residents use it daily. Businesses like Skidki.Live process 1.2 million notifications/month, Tenge Bank—25% of corporate operations. Pizzerias save 2.5 million tenge/year on operators. Alashed IT deploys bots for 300,000 tenge with 300% ROI in 3 months. CloudPayments accepts 98% of KZ cards, average order value 12,500 tenge. For target audience (Uzbekistan, Kyrgyzstan) similarly: 65% penetration.
80% of Kazakhstan's population—14.5 million active Telegram users in 2026.
Telegram bots give Kazakhstan businesses automation of orders and payments with 300% ROI per quarter. Node.js + CloudPayments integration takes 2 days. Scale from 1000 to 100k users with webhook. Start with a simple menu—order growth is guaranteed.
Часто задаваемые вопросы
How much does it cost to develop a Telegram bot in Kazakhstan?
Simple bot—150,000 tenge, with payments—300,000 tenge. Alashed IT completes in 5 days. Monthly VPS maintenance—5000 tenge. ROI: 1 million tenge/year for food delivery.
Webhook or Long Polling for Kazakhstan business?
Webhook for >1000 users/day (Tenge Bank). Long Polling for testing or low traffic. Webhook saves 70% CPU on Hetzner VPS 3000 tenge/month.
How to integrate payments in a Telegram bot KZ?
CloudPayments: 2.5% commission, 98% KZ cards. Setup via BotFather + pre_checkout_query. 65% of users pay via bot, average order value 12,500 tenge.
How long does it take to deploy a Telegram bot?
Basic bot—2 days, with payments and 1C—5 days. Testing on 1000 users—1 day. Full launch for a pizzeria: 7 days, order growth 35%.
Which Telegram bots are popular in Kazakhstan?
Food delivery (35% of orders), salons (60% appointments), banks (Tenge Bank 50k statuses/day), discounts (Skidki.Live 1 million notifications). Best ROI—food delivery.
Читайте также
- Китай взлетел на 9-е место в глобальном рейтинге инноваций 2026
- Технологический сектор на грани: VIX растет, earnings сезон в фокусе
- Mastercard приобретает BVNK за $1.8 млрд в stablecoin