> Источник: https://apipay.kz/guides/apipay-dlya-telegram-bota-biznes · Обновлено: 2026-07-06 · apipay.kz
> ApiPay — независимый сервис приёма платежей поверх вашего Kaspi Pay.

# Как продавать через Telegram-бота с оплатой Kaspi?

**TL;DR.** ApiPay подходит для Telegram- и WhatsApp-ботов, продающих цифровые товары, доступы, курсы и услуги. Схема простая: пользователь оставляет боту свой номер Kaspi → ваш бот выставляет счёт через API → пользователю приходит push в приложении Kaspi → оплатил → вам прилетает вебхук → бот выдаёт доступ. Деньги идут сразу на ваш Kaspi-счёт: ApiPay — независимый сервис поверх вашего Kaspi Pay, посредником в деньгах не выступает и берёт фиксированную подписку, не процент. Полный код интеграции (aiogram, grammY) — в статье [«Как принимать оплату Kaspi в Telegram-боте»](/guides/kaspi-oplata-v-telegram-bote).

Нет своего сервера под ботом — вебхуки можно принимать сценарием [n8n](/n8n-integration), без кода.

## Компоненты ApiPay для бота

Боту достаточно нескольких методов [Kaspi API](/kaspi-api); основной инструмент — [счёт по номеру](/invoice-by-phone):

| Компонент | Зачем боту |
|---|---|
| Счёт по номеру (`POST /invoices`) | Основной инструмент: пользователь дал номер — получил push; счёт живёт 24 часа |
| Вебхук (подпись `X-Webhook-Signature`) | Триггер выдачи товара |
| Идемпотентность (`external_order_id_idempotency`) | Защита от двойного счёта при ретраях вашего бота (повтор → 409) |
| 2 API-ключа + 2 вебхука | Мульти-бренд: два бота на одной организации без второго аккаунта |
| Песочница | Отладка всего флоу без реальных денег |
| Кабинет apipay.kz | Ручные возвраты и контроль счетов, пока бот в разработке |

## Пошаговый сетап

1. **Зарегистрируйтесь на apipay.kz** (вход по WhatsApp-OTP на ваш личный номер).
2. **Отладьте флоу бота в песочнице** по документации apipay.kz/docs: счёт → симуляция оплаты → вебхук → выдача. Код — в [a15](/guides/kaspi-oplata-v-telegram-bote).
3. **Подключите номер кассира** (отдельная SIM, требования — [здесь](/guides/trebovaniya-k-nomeru-kassira)).
4. **Настройте вебхук и проверку подписи** — [инструкция](/guides/nastroyka-webhookov-apipay). Выдавайте товар только по вебхуку `paid`, а не по факту создания счёта.
5. **Добавьте защиту от спама неоплаченных счетов** на своей стороне (см. грабли ниже).
6. **Включите рабочий режим** и выберите тариф по объёму счетов ([Тарифы и комиссия](/guides/tarify-i-komissiya-apipay)).

## Грабли именно ботов

- **Тарификация — за выставленный счёт, не за оплаченный.** Если бот даёт любому пользователю жать «Купить» без ограничений, неоплаченные счета съедят дневной лимит тарифа — как он считается и что происходит при превышении, разобрано в статье [Лимит счетов по тарифу](/guides/limit-schetov-po-tarifu). Добавьте защиту от спама на своей стороне: например, не давать одному пользователю выставить более 3 неоплаченных счетов — проверяйте количество висящих счетов пользователя перед созданием нового.
- **Мульти-бренд ≠ второй аккаунт.** Два бота под одним ИП — это просто 2 API-ключа и 2 вебхука в настройках одной организации; создавать дополнительных кассиров для второго бота не требуется. В уведомлении о счёте покупатель видит **номер вашего кассира**. Что Kaspi показывает рядом — не в нашем контроле; если для второго бренда важна подпись у покупателя, проверьте её тестовым счётом до того, как закладывать вторую SIM.
- **Скорость вебхука.** Не обещайте пользователю «доступ мгновенно после оплаты» жёстким таймером: доставка статуса обычно занимает секунды, в отдельных случаях — до 10 минут. Правильный UX — «пришлём доступ сообщением, как только Kaspi подтвердит оплату».
- **Дубли при ретраях бота.** Если ваш код повторяет запрос при таймауте — передавайте `external_order_id_idempotency`: повторный POST с тем же ключом получит 409 вместо второго живого счёта.

## Частые вопросы

**Пользователь должен выходить из Telegram, чтобы оплатить?**
Он получает push в приложении Kaspi и оплачивает в один тап. В бота возвращается сам; бот узнаёт об оплате по вебхуку и присылает товар сообщением.

**Что если пользователь не оплатил счёт?**
Счёт по номеру живёт 24 часа, потом истекает. Неоплаченные счета учитываются в дневном лимите тарифа — поэтому ограничивайте создание счетов на пользователя.

**Можно принимать и в Telegram-боте, и в WhatsApp-боте одновременно?**
Да, это тот же API: два бота на разных платформах — 2 ключа и 2 вебхука в одной организации.

**Сколько это стоит?**
Фиксированный тариф по количеству создаваемых счетов в день, без процента с оборота — [Тарифы и комиссия](/guides/tarify-i-komissiya-apipay).

**Возвраты бот может делать сам?**
Да, через API (`POST /invoices/{id}/refund`) либо вручную из кабинета. Возврат уходит с вашего Kaspi-счёта, поэтому на счёте должно хватать денег, а результат приходит вебхуком `invoice.refunded`, а не в ответе на запрос. Окно возврата и причины отказов — [Возвраты Kaspi через API](/guides/vozvraty-kaspi-cherez-api).

---

ApiPay — независимый сервис и не аффилирован с АО «Kaspi Bank». Kaspi и Kaspi Pay — товарные знаки их правообладателя.
База знаний: https://apipay.kz/guides
