Ответы API
Все ответы представлены в формате JSON.
Формат ответа
В каждом ответе содержится два обязательных ключа:
Ключ | Описание |
---|---|
code | Код ответа (число) |
payload | Контент ответа, либо дополнительная информация об ошибках после обработки запроса (объект, строка или null, в зависимости от запроса и кода ответа) |
Ниже будут приведены примеры успешных и неуспешных ответов.
Успешный ответ
{
"code": 200,
"payload: null
}
Коды ошибочных ответов
Сопровождаются http-кодом состояния 400. Возможные значения:
Код | Описание |
---|---|
900 | Неверный формат трек-номера |
901 | Неверный ID службы доставки |
902 | Трек-номер уже был добавлен ранее |
903 | Невозможно обновить посылку. Вероятно, после прошлого обновления прошло слишком мало времени, либо посылка уже была доставлена. Сопровождается датой следующего возможного обновления в "payload", если обновление возможно |
909 | Невозможно обновить посылку, т.к. в данный момент обновляется максимально допустимое количество посылок. Необходимо дождаться окончания обновления очередной посылки и повторить запрос |
910 | Слишком частые запросы проверки прогресса обновления посылки. Повторите запрос позднее. |
904 | Не удалось автоматически определить службу доставки для переданного трек-номера |
905 | Исчерпан лимит добавления посылок по тарифу за расчетный период |
400 | Другая ошибка в переданных данных. Подробное описание будет передано в "payload" |
Коды ошибок, возможные при http-коде состояния, отличном от 400:
Код | Описание |
---|---|
401 | Неверный ключ API |
403 | Доступ к запрашиваемому ресурсу запрещен |
404 | Запрашиваемый ресурс не найден или URL задан неверно |
422 | Ошибка валидации данных, отправленных POST-запросом |
429 | Превышен лимит количества запросов в секунду. Подробнее в разделе "Запросы" |
500 - 504 | Внутренняя ошибка сервера. Вероятно, на сервере проводятся технические работы, либо это временный сбой. |
Примеры нестандартных неуспешных ответов:
Ошибка валидации данных, отправленных POST-запросом
В "payload" - массив "errors" со списком названий параметров, значения которых были переданы с ошибками, и описанием ошибок в них:
{
"code": 422,
"payload": {
"errors": [
"field1": "Описание ошибки",
"field2": "Еще одно описание ошибки"
]
}
}
Ошибки с кодами 900 - 905
В "payload" - текст с описанием ошибки:
{
"code": 902,
"payload": "Посылка с таким трек-номером была добавлена ранее"
}
Постраничная навигация
В некоторых запросах, в ответах которых возвращается большое количество объектов, результат может разбиваться на страницы. В этом случае в ответе будут переданы дополнительные заголовки с информацией о постраничной навигации:
Заголовок | Описание |
---|---|
X-Pagination-Total-Count | Общее количество объектов в результате на всех страницах |
X-Pagination-Page-Count | Количество страниц |
X-Pagination-Current-Page | Текущая страница (начиная с 1) |
X-Pagination-Per-Page | Количество объектов на страницу |
Link | Список ссылок, позволяющий клиенту пройти все страницы результата |