# Продажи в прямом эфире TikTok

> Как выставлять счёт за секунды прямо во время эфира: пуш по номеру телефона, команда /invoice в Telegram-боте, QR на экране, работа с помощником и контроль оплат.

## Коротко

В прямом эфире нет времени: зритель пишет в комментариях «беру», и счёт нужно выставить за несколько секунд. Самый удобный способ — **счёт по номеру телефона** (`kind: "phone"`): покупателю прилетает пуш в приложение Kaspi, сканировать ничего не нужно, из эфира он не выходит. Счёт выставляется с телефона командой **`/invoice` в Telegram-боте** либо помощником из кабинета. QR на экране — запасной вариант, а не основной.

## Порядок работы во время эфира

| Шаг | Кто | Что делает |
|---|---|---|
| 1 | Зритель | Пишет «беру» в комментариях, затем присылает номер в директ |
| 2 | Помощник | Берёт номер и выставляет счёт через `/invoice` |
| 3 | Покупатель | Подтверждает пуш в Kaspi |
| 4 | Бот | Сообщает «оплачено» |
| 5 | Помощник | Отмечает в списке и собирает заказ |

Вы продолжаете вести эфир. Выставление счетов и контроль оплат — на помощнике: одному человеку это в прямом эфире не совместить.

## Какой метод API используется

Если работаете без кода, API не нужен. Внутри схема такая: `POST /api/v1/invoices`, `kind: "phone"`, `customer.phone` в формате `7XXXXXXXXXX`.

Особенности счёта по телефону:

- Сумма — **целые тенге**, тиыны не проходят
- Описание — до **60 символов**
- `customer.phone` обязателен

Для QR-счёта (`kind: "qr"`) номер не нужен, описание — до 100 символов, сумма допускает два знака после запятой. В ответе приходят `qrImageUrl` и `payUrl`.

Если под эфир пишется своя система (например, скрипт разбора комментариев), кладите в `externalOrderId` номер эфира и лота, а в `metadata` — ник в TikTok: потом по этим полям вы поймёте, кому что отправлять.

## Счёт из Telegram-бота

Во время эфира это самый быстрый путь. Бот один раз привязывается к кабинету, дальше — с телефона:

- `/invoice` — выставить счёт
- `/last` — последние счета, кто оплатил
- `/today` — всё за сегодня
- `/cancel` — отменить ошибочный счёт
- `/status` — состояние сервиса
- `/support` — написать в поддержку

Бота можно добавить в групповой чат — тогда вы и помощник видите всё в одном месте. Инструкция: [Telegram-бот](https://api.qut.kz/docs/guide/telegram_bot).

## QR на экране

Иногда покупатель не хочет давать номер или вы продаёте один лот всем по одной цене. Тогда QR на экране уместен, но с двумя ограничениями.

**Первое: окно сканирования — около трёх минут.** Его задаёт Kaspi, точное время видно в поле `expiresAt`. Держать один QR в кадре полчаса не получится — он перестанет работать. Создавайте новый счёт на каждый лот.

**Второе: один QR — один счёт.** Если его отсканируют пять человек, они попадут в один и тот же счёт, и оплатит его кто-то один. Собирать так отдельные заказы невозможно. QR на экране годится только для сценария «одна сумма для всех» — например, вход или лот с фиксированной ценой.

Если на экране нужно показать что-то постоянное (донат, чаевые, оплата произвольной суммой), ставьте не QR, а **ссылку на оплату** вида `qut.kz/p/<slug>`: у неё нет срока жизни, её же можно поставить в шапку профиля.

## Как организовать поток

- **Помощник обязателен.** Вести эфир и выставлять счета одновременно нельзя. Пригласите помощника в кабинет как сотрудника: [Доступ для сотрудника в кабинет](/kb/ru/team-access).
- **Собирайте номера в директе, а не в комментариях.** Номер в комментариях видят все, и он быстро уезжает вверх.
- **Нумеруйте лоты.** Описание «Эфир 12, лот 5» потом сильно упростит сверку.
- **Чистите неоплаченные счета в конце эфира.** Выставили и не оплатили — закройте через `/cancel`. Если открытых счетов накопится много, можно упереться в суточную защиту, она даёт ошибку `tariff_daily_burst`.
- **Выбирайте тариф по объёму эфиров.** Если за один эфир выходит 200-300 счетов, месячные 800 счетов тарифа Старт закончатся сразу: [Какой тариф выбрать](/kb/ru/tariff-choose).
- **Готовьтесь к крупным эфирам.** Если счета начинают массово падать, чаще всего это ограничение частоты на стороне Kaspi — сделайте паузу и повторите.

## Контроль оплат

В эфире нельзя полагаться на слова «я оплатил». Три способа проверки:

1. **Telegram-бот** — `/last` или автоматические уведомления. Самый быстрый.
2. **Список счетов в кабинете** — открыт на экране у помощника, новые оплаты видно сразу.
3. **Вебхук** — если есть своя система: событие `invoice.paid` обычно приходит в течение пяти секунд после подтверждения покупателем.

Если приходит с задержкой, чаще всего дело в вебхуке: [Вебхук не приходит](/kb/ru/webhook-not-arriving). Про скорость подтверждения: [Оплата подтверждается медленно](/kb/ru/slow-payments).

## На что обратить внимание

- **Отрепетируйте в песочнице до эфира.** Прогоните весь порядок ключом `qp_test_…`, оплату имитируйте через `simulate`. Разница режимов: [Чем песочница отличается от боевого режима](/kb/ru/sandbox-vs-live).
- **Если остался включённым тестовый режим**, деньги в эфире не придут. Перед началом проверьте одним настоящим счётом: [Оплата не приходит покупателю](/kb/ru/payment-not-arriving).
- **Не входите в приложение Kaspi Pay с номера кассира** — привязка оборвётся, и счета перестанут выставляться прямо посреди эфира.
- **Бывает поздняя оплата.** Если деньги придут на истёкший счёт, событие придёт с признаком `late: true`. Такому покупателю нужно либо отдать товар, либо вернуть деньги.
- **Деньги приходят напрямую на ваш счёт в Kaspi**: [Когда и куда приходят деньги](/kb/ru/money-arrival).

## Вопросы и ответы

**Разве не удобнее просто показать QR в эфире?** Для отдельных заказов — нет. Один QR — это один счёт, и окно у него около трёх минут. Пуш по номеру намного надёжнее.

**Где взять номер покупателя?** Просите в директе. Это должен быть номер, привязанный к Kaspi, иначе пуш не придёт.

**А если у покупателя нет приложения Kaspi?** Тогда пуш не подойдёт — отправьте QR или ссылку: [У покупателя нет приложения Kaspi](/kb/ru/customer-no-kaspi).

**Могут ли счета выставлять два человека одновременно?** Да. Оба могут заходить в кабинет, либо каждому выдаётся свой API-ключ. При необходимости подключается и второй кассир: [Можно ли подключить несколько кассиров](/kb/ru/two-cashiers).

**Что делать, если выставил неверную сумму?** Отмените счёт через `/cancel` или из кабинета и выставьте новый. Если покупатель уже оплатил — сделайте возврат.
