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

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

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

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 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 сценария.

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

Полные API-примеры вынесены в отдельный технический материал: Платёжные ссылки через POST /payments/link.

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

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

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

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

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

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

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

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

Kaspi Guide описывает ручной сценарий удаленной оплаты так: кассир или руководитель выбирает удаленную оплату, вводит номер клиента и сумму, затем отправляет счет. Источник: Как выставить счет на оплату удаленно?

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

Полная реализация вынесена в отдельную статью: Приём удалённых платежей через POST /payments.

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

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

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

В Kaspi Pay есть ручной сценарий Ссылка для оплаты: ссылку можно скопировать и отправить покупателю или разместить на сайте/в социальных сетях. Kaspi описывает такие сценарии в справке по ссылкам для оплаты: Как сгенерировать ссылку для оплаты?

В 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

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

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

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

Технический разбор webhook-модели вынесен отдельно: Вебхуки: как xpayment уведомляет ваш сервер о платежах.

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

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

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

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

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

Не хранить merchant_order_id

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

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

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

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

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

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

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