Обработка ошибок и таймаутов
Раздел описывает, как обрабатывать ответы 5xx, таймауты и обрывы соединения в методах
выплаты на карту, выплаты СБП и
подтверждения выплаты.
Создание выплаты
Относится к методам выплаты на карту и выплаты СБП.
Не создавайте выплату заново с новым transaction
- Ответ
5xx, таймаут или обрыв соединения не означают, что выплата не создана: запрос мог дойти до KVELL, и выплата уже могла быть создана и отправлена в Сбер. Повторное создание выплаты с новым номеромtransactionприведёт к двойной выплате. - Данные ошибки, таймауты и обрывы соединения возможны из-за сетевых проблем, технических сбоев сервера или ПО.
- В случае повторного возникновения данной проблемы рекомендуется обратиться в службу поддержки.
Порядок действий:
- Оставить транзакцию в обработке и не переводить её на своей стороне в конечный статус.
- Запросить статус транзакции по своему номеру
transaction. - Если вернулась ошибка
20009(«Заказ не найден») — выплата не создана, запрос создания можно повторить с тем же номеромtransaction. - Если транзакция найдена — ориентироваться на её
status:processing— операция ещё не завершена,completed/canceled— итог зафиксирован. - Если повторный запрос создания выплаты вернул ошибку
20007(«Транзакция совершалась прежде») — выплата уже создана, новую создавать не нужно, дальше работать по статусу транзакции.
Подтверждение выплаты
Относится к методу подтверждения выплаты.
Метод безопасно вызывать повторно
Метод не создаёт новых операций: он запрашивает актуальный статус ранее созданной выплаты в Сбер и обновляет заказ
в KVELL. Поэтому при ответе 5xx, таймауте или обрыве соединения запрос можно повторить с теми же transaction и
session_id — к двойной выплате это не приведёт.
Порядок действий:
- Оставить транзакцию в обработке и не переводить её на своей стороне в конечный статус.
- Повторить запрос подтверждения с теми же параметрами.
- Если ошибка повторяется — запросить статус транзакции по номеру
transaction. - Пока статус
processing, операция не завершена: либо пользователь ещё не подтвердил её в Сбер, либо статус ещё не обновлён — вызвать подтверждение позже. - Статусы
completedиcanceledконечные, повторное подтверждение для них не требуется.