# QR, deeplink или удаленная оплата по телефону

Разбираем варианты онлайн-платежей Kaspi Pay через xpayment: QR, deeplink, платежная ссылка и удаленный счет по номеру телефона.

В xpayment есть два практических способа встроить онлайн-платежи Kaspi Pay в IT-продукт: создать QR/deeplink через платежную ссылку или отправить удаленный платеж по номеру телефона клиента. Оба сценария полезны, но решают разные UX-задачи.

[xpayment.kz](https://xpayment.kz/) дает API-слой: ваш продукт создает платеж, xpayment связывает его с Kaspi Pay, а затем отправляет webhook, когда статус меняется. Эта статья нужна не для копирования API-примеров, а для выбора правильного пользовательского пути.

## Короткий ответ

| Ситуация | Что выбрать | Почему |
|---|---|---|
| Покупатель на desktop или ноутбуке | QR | Ему удобно отсканировать QR телефоном |
| Покупатель уже на смартфоне | Deeplink или кнопка оплаты | Сканировать QR с того же телефона неудобно |
| Вы знаете Kaspi-номер клиента | Удаленная оплата по телефону | Клиент получает запрос на оплату в Kaspi |
| CRM выставляет счет постоянному клиенту | Удаленная оплата по телефону | Менеджер или система уже знает номер клиента |
| Telegram-бот продает цифровой товар | Deeplink или телефонный платеж | Зависит от того, собрал ли бот телефон |
| n8n автоматизирует счета | Оба варианта | Link подходит для сообщений, phone payment - для CRM-клиентов |

## Что говорит публичный Kaspi Pay

На странице [Kaspi Pay](https://kaspi.kz/kaspipay) Kaspi описывает несколько способов приема оплаты: мобильный POS с QR для каждой покупки, QR на кассе, удаленную оплату и ссылку для оплаты.

Для IT-интеграции через xpayment эти способы превращаются в две API-модели:

1. **QR/deeplink/payment link:** вы создаете ссылку или QR для конкретной суммы.
2. **Remote phone payment:** вы отправляете запрос на оплату по номеру телефона покупателя.

## Вариант 1. QR и deeplink через payment link

Используйте поток payment link, когда клиент **сам открывает оплату**. Это правильный выбор для checkout, бота, лендинга, сообщения или любого self-service сценария.

Внутри одного и того же потока вы можете дать пользователю два варианта входа:

- показать **QR**, если он смотрит на desktop или другой экран;
- дать **deeplink / кнопку**, если он уже находится на смартфоне.

Полные API-примеры вынесены в отдельный технический материал: [Платёжные ссылки через POST /payments/link](https://xpayment.kz/blog/payment-link).

## Где QR работает лучше

QR хорошо подходит, когда покупатель видит заказ на большом экране:

- интернет-магазин на desktop;
- касса на планшете;
- админка менеджера;
- self-service экран;
- счет на странице оплаты.

Покупатель сканирует QR телефоном, открывает Kaspi и подтверждает платеж.

## Где deeplink работает лучше

Deeplink лучше, когда покупатель уже находится на телефоне:

- мобильная версия сайта;
- Telegram-бот;
- WhatsApp-сообщение;
- SMS;
- мобильное приложение;
- n8n workflow, который отправляет ссылку клиенту.

Если пользователь открывает заказ на смартфоне, просить его сканировать QR с того же экрана бессмысленно. В таком сценарии нужна кнопка или ссылка.

## Вариант 2. Удаленная оплата по номеру телефона

Используйте поток удаленной оплаты, когда ваш продукт **уже знает номер телефона клиента**. Тогда система или менеджер может не ждать, пока клиент сам откроет checkout, а отправить счет прямо в Kaspi Pay.

Kaspi Guide описывает ручной сценарий удаленной оплаты так: кассир или руководитель выбирает удаленную оплату, вводит номер клиента и сумму, затем отправляет счет. Источник: [Как выставить счет на оплату удаленно?](https://guide.kaspi.kz/partner/ru/kaspipay/remote/q1863)

Через xpayment эта логика становится API-вызовом: вместо ручного ввода в приложении ваш backend или n8n workflow отправляет запрос автоматически.

Полная реализация вынесена в отдельную статью: [Приём удалённых платежей через POST /payments](https://xpayment.kz/blog/direct-payment).

## Где remote phone payment работает лучше

Оплата по телефону подходит, когда номер уже есть в системе:

- CRM выставляет счет постоянному клиенту;
- доставка знает финальную сумму после сборки заказа;
- бот получил номер телефона в диалоге;
- сервис выставляет счет за подписку;
- менеджер создает заказ в админке;
- n8n запускает автоматический счет после заполнения формы.

## Платежная ссылка из Kaspi Pay как контекст

В Kaspi Pay есть ручной сценарий `Ссылка для оплаты`: ссылку можно скопировать и отправить покупателю или разместить на сайте/в социальных сетях. Kaspi описывает такие сценарии в справке по ссылкам для оплаты: [Как сгенерировать ссылку для оплаты?](https://guide.kaspi.kz/partner/ru/kaspipay/remote/q2019)

В xpayment похожая продуктовая идея используется в API-сценарии `POST /v1/payments/link`: система создает ссылку программно, привязывает ее к вашему `merchant_order_id`, а результат платежа возвращает через webhook.

## Как выбрать: практическая матрица

| Продукт | Лучший способ | Почему |
|---|---|---|
| Online shop checkout на desktop | QR/payment link | Покупатель сканирует экран телефоном |
| Mobile checkout | Deeplink | Покупатель уже на телефоне |
| Telegram-бот без номера телефона | Deeplink | Бот отправляет кнопку оплаты |
| Telegram-бот с номером телефона | Phone payment | Можно отправить запрос в Kaspi |
| CRM для менеджеров | Phone payment | Номер клиента обычно уже есть |
| Доставка с финальной суммой | Phone payment | Сумма может появиться после сборки заказа |
| SaaS подписка | Phone payment или link | Зависит от того, есть ли номер клиента |
| n8n workflow | Оба | HTTP Request node может вызвать любой endpoint |

## Как не перепутать выбор сценария с технической реализацией

Удобное правило такое:

- **QR и deeplink** выбираются как пользовательский путь и обычно реализуются через payment link;
- **phone payment** выбирается как бизнес-процесс и обычно реализуется через прямой платежный запрос;
- **финальный статус** в любом случае подтверждается через webhook.

Нельзя менять заказ на `оплачен` сразу после создания платежа. Создание платежа означает только то, что клиенту показан или отправлен способ оплаты. Завершение подтверждает webhook `payment.completed`.

Технический разбор webhook-модели вынесен отдельно: [Вебхуки: как xpayment уведомляет ваш сервер о платежах](https://xpayment.kz/blog/webhooks).

## Частые ошибки

### Показывать QR мобильному пользователю

Если checkout открыт на смартфоне, лучше показывать кнопку оплаты, а не QR.

### Использовать phone payment без согласия на номер

Если вы отправляете запрос по номеру телефона, пользователь должен понимать, зачем он оставляет номер и что получит запрос на оплату.

### Не хранить `merchant_order_id`

Без внутреннего ID заказа сложнее связать платеж, webhook и заказ в вашей системе.

### Не использовать idempotency

Если backend повторит запрос из-за таймаута, можно случайно создать дубль. Для phone payment используйте `X-Idempotency-Key`.

### Полагаться на скриншоты оплаты

Скриншот не подтверждает платеж. Подтверждение - это webhook или проверка статуса через API.

## Полезные ссылки

- [xpayment.kz](https://xpayment.kz/) - платформа для интеграции онлайн-платежей.
- [Документация xpayment API](https://xpayment.kz/docs) - REST API, webhook и примеры.
- [Kaspi Pay](https://kaspi.kz/kaspipay) - публичная страница способов приема оплаты.
- [Kaspi Guide: удаленная оплата](https://guide.kaspi.kz/partner/ru/kaspipay/remote/q1863)
- [Kaspi Guide: ссылка для оплаты](https://guide.kaspi.kz/partner/ru/kaspipay/remote/q2019)

## Куда идти дальше

- Для общего маршрута запуска: [Пошаговый onboarding-гид](https://xpayment.kz/blog/onboarding)
- Для безопасной модели доступа через кассира: [Как создать виртуального кассира xpayment и получить API](https://xpayment.kz/blog/xpayment-virtual-cashier-api)
- Для технической реализации payment link: [Платёжные ссылки через POST /payments/link](https://xpayment.kz/blog/payment-link)
- Для технической реализации phone payment: [Приём удалённых платежей через POST /payments](https://xpayment.kz/blog/direct-payment)

## Читайте также
- [Платёжные ссылки](https://xpayment.kz/blog/payment-link)
- [Удалённые платежи](https://xpayment.kz/blog/direct-payment)
- [Виртуальный кассир xpayment](https://xpayment.kz/blog/xpayment-virtual-cashier-api)

---

Источник: https://xpayment.kz/blog/kaspi-pay-payment-options
