Callback системы в P2P платежах 2026: Как настроить уведомления, обрабатывать статусы и не потерять транзакции

Callback системы в P2P платежах 2026: Как настроить уведомления, обрабатывать статусы и не потерять транзакции

Callback системы в P2P платежах 2026: Как настроить уведомления и не потерять ни одну транзакцию

В любой платежной системе есть компонент, о котором вспоминают только когда что-то ломается. Это callback-уведомления. Они работают в фоне, незаметно для пользователя. Но если они настроены неправильно, бизнес теряет заказы, клиенты не получают товары, а служба поддержки захлебывается от жалоб.

Callback — это POST-запрос, который платежная система отправляет на сервер магазина при изменении статуса сделки или выплаты. Внутри — JSON с ID сделки, статусом и суммой. Сервер магазина должен принять этот запрос, обработать и вернуть HTTP 200.

Казалось бы, простая задача. На практике неправильная обработка колбэков — причина номер один проблем в платежных интеграциях.

Как устроены callback-уведомления в P2P платформах

Когда статус сделки меняется, P2P платформа отправляет POST-запрос на URL, который магазин указал при создании сделки или в настройках своего аккаунта. Тело запроса:

  • id — уникальный идентификатор сделки в системе P2P платформы.
  • external_id — идентификатор заказа в системе магазина (передан при создании сделки).
  • status — общий статус: success, fail, pending.
  • sub_status — детальный статус, показывающий точное состояние сделки.
  • amount — сумма в минимальных единицах валюты.
  • currency — код валюты.
  • payment_gateway — код платежного метода.

Самое важное поле — sub_status. Именно по нему магазин определяет, что делать дальше.

Полная карта подстатусов и действий

pending — сделка создана, система ищет реквизиты. Действие магазина: отобразить индикатор загрузки, ничего не делать с заказом.

waiting_for_payment — реквизиты найдены и предоставлены клиенту. Действие магазина: показать клиенту реквизиты для перевода, запустить таймер обратного отсчета.

successfully_paid — платеж поступил на счет трейдера. Действие магазина: немедленно подтвердить заказ, запустить сборку или доставку, уведомить клиента. Это самый важный статус.

fully_completed — сделка полностью завершена. Действие магазина: финальная синхронизация статуса, никаких дополнительных действий не требуется.

expired — срок резервирования истек, клиент не перевел деньги. Действие магазина: отменить заказ, предложить клиенту новый способ оплаты.

cancelled — сделка отменена магазином или системой. Действие магазина: отменить заказ, вернуть товар в резерв.

dispute — открыт спор по сделке. Действие магазина: приостановить выполнение заказа, подготовить документы для разбирательства.

Пять правил надежной обработки колбэков

Правило 1: Возвращайте HTTP 200 как можно быстрее.

Не делайте внутри обработчика колбэка тяжелых операций — обновления базы данных, отправки писем, интеграции с CRM. Верните 200 сразу, а всю обработку запустите асинхронно через очередь задач (RabbitMQ, Redis Queue, Sidekiq). Если сервер магазина не вернет 200 в течение нескольких секунд, P2P платформа начнет повторные отправки.

Правило 2: Реализуйте дедупликацию.

P2P платформа может отправить один колбэк несколько раз, если предыдущий ответ не был получен. Если не проверять уникальность, можно дважды подтвердить один заказ. Храните ID обработанных уведомлений в базе и проверяйте перед каждой обработкой.

Правило 3: Логируйте все.

Каждый полученный колбэк должен быть записан в лог с полным телом запроса, временем получения и результатом обработки. Это спасет, когда через полгода клиент скажет, что не получил заказ, и нужно будет восстанавливать хронологию.

Правило 4: Проверяйте источник.

Колбэки должны приходить только с определенных IP-адресов P2P платформы. Настройте проверку в коде или firewall, чтобы отсеивать поддельные уведомления.

Правило 5: Обрабатывайте все подстатусы.

Если система обрабатывает только successfully_paid и игнорирует expired, cancelled и dispute, это приведет к проблемам. Клиент не перевел деньги, заказ висит в статусе ожидания, а через неделю клиент требует возврат.

Callback для выплат

У выплат своя система статусов. После создания выплата проходит через:

  • pending — выплата создана, ожидает обработки.
  • waiting_for_trader — трейдер найден, ожидает подтверждения.
  • processing_by_trader — выплата обрабатывается трейдером.
  • processing_by_administrator — выплата проверяется администратором (при превышении лимитов).
  • fully_completed — выплата выполнена, получатель получил деньги.
  • cancelled — выплата отменена.

Каждое изменение статуса выплаты также сопровождается callback-уведомлением на URL, указанный при создании выплаты.

Приоритет callback_url

URL для уведомлений можно задать двумя способами: в настройках мерчанта в админке (глобальный URL для всех сделок) или передать параметр callback_url при создании конкретной сделки через API. Callback_url из запроса имеет приоритет над URL из админки.

Это позволяет гибко настраивать обработку для разных типов сделок. Например, для обычных заказов — один эндпоинт, для премиальных заказов с ручной проверкой — другой.

Что делать, если колбэк не пришел

Даже при идеальной настройке иногда случается, что колбэк не доходит. Может быть временный сбой у провайдера, проблемы с сетью или ошибка в обработке.

В этом случае магазин должен иметь запасной механизм. Самый простой — периодическая проверка статуса сделки через GET /api/merchant/order. Если колбэк не пришел в течение 5 минут после ожидаемого времени, запускается проверка статуса через API.

Для критических операций (оплата дорогих товаров) можно настроить повторные проверки каждые 30 секунд до получения подтверждения.

Заключение

Callback-уведомления — это нервная система платежной интеграции. Правильная настройка обеспечивает своевременное подтверждение заказов, корректное управление статусами и защиту от спорных ситуаций. Быстрый HTTP 200, дедупликация, логирование, проверка источника и обработка всех подстатусов — пять правил, которые превращают платежную интеграцию из источника проблем в надежно работающий механизм.

P2P платформы, такие как PayShark, предоставляют полную документацию по callback-уведомлениям с примерами запросов и описанием всех статусов. Время на настройку — несколько часов, а окупается она отсутствием потерянных заказов и недовольных клиентов.