Ответы 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 | Список ссылок, позволяющий клиенту пройти все страницы результата |