Разделы документации
Документация / Справочник
Ошибки и лимиты
Формат ошибок, коды ответов, лимиты запросов
Формат ошибки
Ошибки приходят единым форматом. Поле message - строка или массив строк: при ошибках валидации перечисляются сразу все проблемы тела запроса.
{
"statusCode": 400,
"message": [
"Минимальная сумма - 100 копеек (1 рубль)"
],
"error": "Bad Request"
}Коды ответов
| Код | Когда возникает |
|---|---|
| 400 | Тело запроса не прошло валидацию. Причины - в message (массив строк, перечислены все проблемы сразу). |
| 401 | Заголовок X-Api-Key отсутствует, ключ неверный или магазин не активен. |
| 404 | Платёж не найден или принадлежит другому магазину. |
| 409 | Конфликт: платёж с таким orderId уже существует, способ оплаты недоступен магазину, либо отмена невозможна - покупатель уже начал оплату. |
| 429 | Превышен лимит запросов - повторите позже, лучше с паузой. |
| 5xx | Внутренняя ошибка. Результат операции неизвестен - не повторяйте запрос вслепую, сначала проверьте статус (см. ниже). |
Сетевые сбои: не создавайте дубли
Если при создании платежа вы получили 5xx или вовсе не дождались ответа, результат неизвестен: платёж мог и создаться, и нет. Правильный порядок:
- запросите платёж по своему orderId;
- если 404 - платежа нет, создавайте заново с тем же orderId;
- если платёж нашёлся - используйте его payUrl, ничего создавать не нужно.
Страховка встроена в API: повторное создание с тем же orderId вернёт 409, так что задвоить платёж не получится даже по ошибке.
Лимиты
До 600 запросов в минуту на каждый метод API; лимит считается по вашему API-ключу. Исключение - GET /v1/balance: у него свой лимит, 60 запросов в минуту. При превышении - 429, окно восстанавливается в течение минуты.
Не опрашивайте статусы платежей в цикле: результат надёжнее и быстрее приходит вебхуком. Поллинг оставьте как страховку.
Не нашли ответ
Напишите нам на support@tabpay.org или в телеграм @tabpaysupport - поможем с интеграцией.