← Все статьи
Telegramвебхукиавтоматизация

Kaspi Pay для Telegram-бота: автоматизация оплаты через webhook за 1 час

Как подключить Kaspi Pay webhook к Telegram-боту через AiPay API: пошаговая инструкция с кодом на Python. Автоматическое подтверждение оплаты без ручной проверки.

Клиент заплатил в 2 ночи. Товар получил утром. Он уже написал в поддержку

Представьте: ваш Telegram-бот продаёт онлайн-курс. Клиент решает купить в 2:17 ночи — в Казахстане это обычная история, особенно у аудитории 25–35 лет. Он переводит деньги через Kaspi, получает сообщение «Оплата получена, ожидайте подтверждения» и ложится спать.

Утром — ни курса, ни доступа. Он пишет в поддержку. Вы просыпаетесь, видите десять непрочитанных, вручную проверяете выписку, отправляете доступ. Клиент уже раздражён. Вы уже устали — и рабочий день ещё не начался.

Это не баг вашего бота. Это архитектурная проблема: Kaspi Pay не даёт публичного webhook API. Нет события «платёж прошёл» — нет автоматики. Каждый платёж требует ручной проверки или самописных костылей вроде парсинга SMS или email-уведомлений.

AiPay закрывает именно этот пробел. Ниже — как это работает и как подключить за один час.


Почему Kaspi Pay и Telegram-бот — сложная пара без middleware

Kaspi — крупнейшая платёжная платформа Казахстана: 14,7 миллиона активных пользователей в месяц, 737 000 активных торговцев, 75% рынка цифровых платежей страны. Игнорировать её невозможно: если ваша аудитория в Казахстане, Kaspi — это не один из вариантов, это основной способ оплаты.

Telegram-боты в Казахстане переживают настоящий бум. Боты для доставки еды, продажи цифровых продуктов, подписок, инфобизнеса — всё это строится на Telegram, потому что аудитория там уже есть, а барьер входа низкий.

Проблема в стыке этих двух инструментов.

Стандартный сценарий Kaspi Pay для бизнеса выглядит так: клиент сканирует QR-код или переводит по номеру телефона, деньги приходят, менеджер видит уведомление в приложении или на почте. Для офлайн-магазина это работает. Для Telegram-бота, который должен реагировать мгновенно — нет.

Kaspi не предоставляет публичный REST API с webhook-событиями для внешних разработчиков. Это означает, что ваш бот не может напрямую подписаться на событие «платёж по счёту #12345 прошёл». Разработчики обходят это по-разному:

  • Ручная проверка выписки (не масштабируется)
  • Парсинг email/SMS-уведомлений от Kaspi (хрупко, ломается при смене формата)
  • Периодический polling через неофициальные методы (нарушает ToS, нестабильно)

Ни один из этих подходов не подходит для продакшена с реальной нагрузкой.


Как AiPay решает задачу: полный поток за 5 шагов

AiPay — это middleware-слой между вашим Telegram-ботом и Kaspi Pay. Он берёт на себя всё взаимодействие с Kaspi и возвращает вашему боту чистые webhook-события.

Поток выглядит так:

  1. Клиент в боте нажимает «Оплатить»
  2. Ваш бот делает POST-запрос к AiPay API с номером телефона клиента и суммой
  3. AiPay создаёт счёт в Kaspi Pay — клиент получает push-уведомление в приложении Kaspi
  4. Клиент нажимает одну кнопку в Kaspi и платит — не выходя из Telegram-сессии
  5. AiPay получает подтверждение от Kaspi и немедленно стреляет webhook на ваш эндпоинт
  6. Ваш бот получает webhook, проверяет HMAC-подпись и выдаёт клиенту то, за что он заплатил

Весь цикл — от нажатия «Оплатить» до получения товара — занимает 20–40 секунд при нормальной скорости клиента. Ночью, в 2 часа, без единого вашего действия.

Дополнительно AiPay автоматически выписывает фискальный чек — это снимает отдельную головную боль для бизнеса, работающего легально в РК.


Пошаговая инструкция по интеграции

Шаг 1. Регистрация и получение API-ключа

Зайдите на aipay.kz, зарегистрируйтесь и активируйте бесплатный 7-дневный пробный период. После регистрации в личном кабинете вы найдёте:

  • API_KEY — для аутентификации запросов
  • WEBHOOK_SECRET — для проверки HMAC-подписи входящих webhook-событий
  • Эндпоинт: https://api.aipay.kz/v1

Шаг 2. Настройка webhook-эндпоинта в вашем боте

Прежде чем делать первый API-запрос, поднимите эндпоинт, который будет принимать события от AiPay. Это может быть любой публично доступный URL — Flask, FastAPI, Express, что угодно.

Минимальные требования к эндпоинту:

  • Принимает POST-запросы
  • Возвращает HTTP 200 в течение 5 секунд
  • Проверяет HMAC-подпись заголовка X-AiPay-Signature

Шаг 3. Создание счёта через API

Когда клиент в боте инициирует оплату, ваш бэкенд делает один POST-запрос:

POST https://api.aipay.kz/v1/invoices

Тело запроса:

{
  "phone": "77001234567",
  "amount": 4900,
  "description": "Курс «Python для начинающих» — доступ на 12 месяцев",
  "external_id": "order_telegram_98765"
}

external_id — ваш внутренний идентификатор заказа. По нему вы будете матчить входящий webhook с конкретным клиентом в вашей базе.

Шаг 4. Обработка webhook-события

AiPay пришлёт POST на ваш эндпоинт в момент изменения статуса счёта. Возможные статусы: paid, expired, error.

Тело события:

{
  "event": "invoice.paid",
  "invoice_id": "inv_abc123",
  "external_id": "order_telegram_98765",
  "amount": 4900,
  "paid_at": "2026-03-27T02:17:43Z"
}

Шаг 5. Проверка подписи и выдача товара

Перед тем как что-то выдавать, обязательно проверьте HMAC-подпись. AiPay подписывает каждый webhook-запрос — это защита от поддельных событий.

Алгоритм: HMAC-SHA256(raw_request_body, WEBHOOK_SECRET)

Подпись передаётся в заголовке X-AiPay-Signature. Если подписи совпадают — обрабатываете событие и выдаёте клиенту доступ.


Пример кода на Python

Ниже — минимальная рабочая реализация на Python с использованием httpx для API-запросов и FastAPI для обработки webhook.

import hmac
import hashlib
import httpx
from fastapi import FastAPI, Request, HTTPException

app = FastAPI()

AIPAY_API_KEY = "your_api_key_here"
WEBHOOK_SECRET = "your_webhook_secret_here"
AIPAY_BASE_URL = "https://api.aipay.kz/v1"


async def create_invoice(phone: str, amount: int, external_id: str) -> dict:
    """Создаём счёт в Kaspi Pay через AiPay API."""
    async with httpx.AsyncClient() as client:
        response = await client.post(
            f"{AIPAY_BASE_URL}/invoices",
            headers={"Authorization": f"Bearer {AIPAY_API_KEY}"},
            json={
                "phone": phone,
                "amount": amount,
                "description": "Оплата через Telegram-бот",
                "external_id": external_id,
            },
        )
        response.raise_for_status()
        return response.json()


@app.post("/webhook/aipay")
async def handle_aipay_webhook(request: Request):
    """Принимаем и верифицируем webhook-событие от AiPay."""
    body = await request.body()
    signature = request.headers.get("X-AiPay-Signature", "")

    # Проверка HMAC-подписи
    expected = hmac.new(
        WEBHOOK_SECRET.encode(),
        body,
        hashlib.sha256
    ).hexdigest()

    if not hmac.compare_digest(expected, signature):
        raise HTTPException(status_code=403, detail="Invalid signature")

    payload = await request.json()

    if payload.get("event") == "invoice.paid":
        external_id = payload["external_id"]
        # Здесь: найти заказ по external_id и выдать товар/доступ
        await fulfill_order(external_id)

    return {"status": "ok"}


async def fulfill_order(external_id: str):
    """Выдача товара клиенту — ваша бизнес-логика."""
    # Отправить сообщение в Telegram, открыть доступ, и т.д.
    pass

Полную документацию API и описание всех параметров смотрите на странице для разработчиков.


Реальные сценарии использования

Цифровые продукты и инфобизнес

Курсы, PDF-гайды, шаблоны, доступ к закрытым каналам — всё, что можно выдать автоматически после оплаты. Это идеальный сценарий для AiPay: бот принимает деньги, webhook подтверждает, бот выдаёт ссылку или открывает доступ. Ноль ручного труда.

Именно так работают боты PulseAI и STIKER.AI — оба уже интегрированы с AiPay и обрабатывают платежи полностью автоматически.

Подписочные модели

Ежемесячные подписки на сервисы, закрытые комьюнити, рассылки. Бот отслеживает дату следующего платежа, напоминает клиенту, принимает оплату и продлевает доступ — всё в рамках одного Telegram-чата.

Доставка еды и локальный бизнес

Боты для заказа еды в Казахстане — отдельная большая история. Клиент формирует заказ прямо в боте, платит через Kaspi одним тапом, кухня получает уведомление. Никакого «позвоните для подтверждения оплаты».

Ночные и выходные заказы

Это отдельное преимущество, которое сложно переоценить. Заказ в 2 ночи в пятницу — не проблема. Webhook приходит немедленно, бот выдаёт товар, клиент доволен. Вы видите это утром в дашборде как уже выполненный заказ.


Попробуйте AiPay бесплатно — 7 дней без ограничений

Если вы строите или уже запустили Telegram-бота с продажами в Казахстане, тестовый период — это час работы вашего разработчика и ноль риска. Подключите, прогоните тестовый платёж, убедитесь что webhook работает. Стоимость после пробного периода — ₸25 000 в месяц за терминал.

Написать нам с вопросами по интеграции →


Часто задаваемые вопросы

Нужно ли клиенту что-то устанавливать или регистрироваться дополнительно?

Нет. Клиент использует то приложение Kaspi, которое у него уже есть. После того как ваш бот создаёт счёт, клиент получает стандартное push-уведомление от Kaspi. Нажимает одну кнопку — платёж прошёл.

Kaspi Pay API — это официальная интеграция?

AiPay работает с Kaspi через официальные партнёрские механизмы. Это не парсинг и не обход систем безопасности — это легальный middleware, который получает события от Kaspi и транслирует их в формате webhook вашему приложению.

Как убедиться, что webhook не поддельный?

AiPay подписывает каждый запрос через HMAC-SHA256 с вашим персональным WEBHOOK_SECRET. Алгоритм проверки показан в примере кода выше. Если подпись не совпадает — запрос нужно отклонить с кодом 403. Это стандартная практика для webhook-безопасности.


Итоги

  • Kaspi Pay — обязательный инструмент для бизнеса в Казахстане, но нативного webhook API у него нет
  • AiPay добавляет этот слой: POST-запрос создаёт счёт, webhook сообщает о результате
  • Интеграция занимает около часа при наличии работающего Telegram-бота
  • Работает для цифровых продуктов, подписок, доставки еды и любого другого бота с монетизацией
  • Автоматическая выдача товара 24/7, включая 2 часа ночи в пятницу
  • Фискальные чеки выписываются автоматически
  • Пробный период 7 дней, затем ₸25 000/месяц за терминал

Если остались вопросы по интеграции или нужна помощь с архитектурой — напишите нам, разберёмся.

Готовы автоматизировать Kaspi Pay?

Подключитесь за 1 час. 7 дней бесплатно.

Попробовать AiPay бесплатно