Назад

API для приёма платежей: как спроектировать интеграцию

API для приёма платежей: как спроектировать интеграцию

Интеграция с платёжным API — не про то, как отправить один запрос. Она про то, что происходит, когда запрос повторился, ответ потерялся, а вебхук пришёл дважды. Собрали правила, которые экономят недели отладки и предотвращают расхождения в деньгах.

Идемпотентность — обязательное требование

Сеть ненадёжна: запрос может уйти, а ответ — потеряться. Если клиентское приложение повторит попытку, без защиты появится второй платёж. Поэтому каждая операция создания платежа должна сопровождаться уникальным ключом идемпотентности.

Ключ генерируется на стороне вашего сервиса и привязывается к заказу. При повторе с тем же ключом система возвращает результат первой операции, а не создаёт новую.

Вебхуки: доверяй, но проверяй

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

  • Проверяйте подпись каждого входящего уведомления
  • Обрабатывайте повторные уведомления без побочных эффектов
  • Учитывайте, что статус может прийти не в хронологическом порядке
  • Отвечайте быстро, тяжёлую работу выносите в фоновую очередь

Состояния платежа в вашей системе

Не копируйте статусы провайдера один в один. Заведите собственную модель состояний, понятную вашей бизнес-логике: создан, ожидает оплаты, оплачен, отклонён, возвращён.

Переходы между состояниями должны быть односторонними там, где это логично: оплаченный заказ не должен вернуться в состояние «ожидает оплаты» из-за запоздавшего уведомления.

Обработка ошибок и повторов

Разделяйте ошибки на временные и постоянные. Таймаут или недоступность сервиса — повод повторить запрос с нарастающей задержкой. Ошибка валидации данных — повод остановиться и записать инцидент: повторы здесь бесполезны.

Ограничивайте число повторов и всегда логируйте итоговый результат. Бесконечные ретраи создают нагрузку и маскируют реальную проблему.

Сверка как обязательный процесс

Даже при идеальной обработке вебхуков часть событий может потеряться. Поэтому нужна регулярная сверка: ежедневно сравнивайте свой реестр операций с реестром провайдера и разбирайте расхождения.

Сверка — это не признак недоверия к системе, а нормальная финансовая практика. Обнаруженное на следующий день расхождение стоит несравнимо дешевле, чем найденное через квартал.

Безопасность и логирование

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

Полезная практика — логировать идентификатор операции и статус, но не тело запроса целиком. Это упрощает разбор инцидентов и снижает риски.

Тестирование нештатных сценариев

Проверяйте не только успешный путь. Смоделируйте потерю ответа, двойной вебхук, отклонённую операцию, частичный возврат и запоздавшее уведомление. Именно эти сценарии вызывают проблемы в продакшене.

Для контроля API-платежей сверяйте статусы операций, уведомления и реестр.

Темы: платёжное API, интеграция платежей, вебхуки платежей, идемпотентность, API эквайринга

Ответы на вопросы

Остались вопросы? Напишите нам!

Финансовый дайджест: сырьевые качели, девелопмент и внешние рынки

" target="_blank" rel="noopener">Написать
Как подключить приём онлайн-платежей?
Оставьте заявку на сайте или свяжитесь с нашим менеджером. Мы подберём условия, поможем с настройкой и подключением платежей.
Можно ли принимать платежи без сайта?
Да, можно сделать telegram-бота под ваш проект. Мы подскажем как его сделать и со всем поможем.
Какие способы оплаты поддерживает KassaGO?
Банковские карты, СБП, QR-коды, платёжные ссылки и криптовалюта.
Можно ли принимать оплату через Telegram?
Да! Принимайте платежи через Telegram-ботов, так же поможем с настройкой и интеграцией.
Какая комиссия за приём платежей?
Ставки начинаются от 1%. Итоговая комиссия зависит от способа оплаты, категории бизнеса и оборота.
Сколько занимает подключение?
После проверки бизнеса и согласования условий можно приступать к интеграции. В среднем около 24 часов.
Читать больше