Перейти к содержанию

Обработка ошибок и таймаутов

Раздел описывает, как обрабатывать ответы 5xx, таймауты и обрывы соединения в методах выплаты на карту, выплаты СБП и подтверждения выплаты.

Создание выплаты

Относится к методам выплаты на карту и выплаты СБП.

Не создавайте выплату заново с новым transaction

  • Ответ 5xx, таймаут или обрыв соединения не означают, что выплата не создана: запрос мог дойти до KVELL, и выплата уже могла быть создана и отправлена в Сбер. Повторное создание выплаты с новым номером transaction приведёт к двойной выплате.
  • Данные ошибки, таймауты и обрывы соединения возможны из-за сетевых проблем, технических сбоев сервера или ПО.
  • В случае повторного возникновения данной проблемы рекомендуется обратиться в службу поддержки.

Порядок действий:

  1. Оставить транзакцию в обработке и не переводить её на своей стороне в конечный статус.
  2. Запросить статус транзакции по своему номеру transaction.
  3. Если вернулась ошибка 20009 («Заказ не найден») — выплата не создана, запрос создания можно повторить с тем же номером transaction.
  4. Если транзакция найдена — ориентироваться на её status: processing — операция ещё не завершена, completed / canceled — итог зафиксирован.
  5. Если повторный запрос создания выплаты вернул ошибку 20007 («Транзакция совершалась прежде») — выплата уже создана, новую создавать не нужно, дальше работать по статусу транзакции.

Подтверждение выплаты

Относится к методу подтверждения выплаты.

Метод безопасно вызывать повторно

Метод не создаёт новых операций: он запрашивает актуальный статус ранее созданной выплаты в Сбер и обновляет заказ в KVELL. Поэтому при ответе 5xx, таймауте или обрыве соединения запрос можно повторить с теми же transaction и session_id — к двойной выплате это не приведёт.

Порядок действий:

  1. Оставить транзакцию в обработке и не переводить её на своей стороне в конечный статус.
  2. Повторить запрос подтверждения с теми же параметрами.
  3. Если ошибка повторяется — запросить статус транзакции по номеру transaction.
  4. Пока статус processing, операция не завершена: либо пользователь ещё не подтвердил её в Сбер, либо статус ещё не обновлён — вызвать подтверждение позже.
  5. Статусы completed и canceled конечные, повторное подтверждение для них не требуется.