Cargotime

Ошибки и результаты запросов

Как читать HTTP-статус, success и status и обрабатывать результаты

Результат запроса описывается на двух уровнях: HTTP-статус показывает, как обработан запрос, а поля JSON уточняют результат операции или отслеживания.

Как читать ответ

  1. Проверьте HTTP-статус. Ответ вне диапазона 2xx требует обработки ошибки. Если тело содержит JSON, прочитайте пояснение из него.
  2. В ответе 2xx проверьте success и status, если эти поля предусмотрены операцией. Например, список компаний возвращает success и data без status.
  3. success: true вместе со status: "OK" означает, что результат отслеживания получен. Используйте data.
  4. success: true вместе со status: "INFO_NOT_FOUND" означает, что поиск выполнен, но данных для указанного номера и перевозчика нет. Это не сбой обработки. В текущем API такой результат возвращается с HTTP 200 и data: null.
  5. success: false означает, что результат получить не удалось. Поле status помогает определить причину: например, LINE_NO_RESPONSE — источник данных перевозчика не ответил вовремя, а UNEXPECTED_ERROR — непредвиденная ошибка обработки.

Не считайте любой HTTP 200 подтверждением наличия данных. В частности, сохранённый результат отслеживания может содержать success: false, а ответ на запрос состояния batch-задачи — отдельные ошибки внутри data.results. Проверяйте каждый результат отдельно.

status содержит код для программной обработки. status_description содержит текстовое описание результата или ошибки. Формулировка может меняться, поэтому для обработки используйте код status.

Быстрая диагностика

  • 401, 403 или API_KEY_WRONG. Проверьте, что параметр api_key передан, ключ не отозван и скопирован полностью.
  • INFO_NOT_FOUND. Проверьте номер value, его type и SCAC-код перевозчика. Убедитесь, что перевозчик поддерживает выбранный тип в списке компаний. company=AUTO доступно только для контейнеров.
  • 429 или API_KEY_RATE_LIMIT. Превышена допустимая частота запросов. Чтобы определить время до следующей попытки, используйте заголовок Retry-After, если он передан. Ограничение запросов на отслеживание — до 8 в минуту. Для получения состояния пакетной задачи действует отдельный лимит, указанный в ограничениях.
  • LINE_NO_RESPONSE. Перевозчик не ответил в отведённое время. Повторите запрос позже.

HTTP-статусы

HTTP-статусЧто означает и что делать
2xxЗапрос обработан. Проверьте поля результата в JSON. Данные отслеживания могут отсутствовать.
400Проверьте обязательные параметры, формат значений и тело запроса. Причина указана в ответе.
401 / 403Проверьте API-ключ и права доступа.
404Запрошенный путь или ресурс не найден. Проверьте URL и идентификатор ресурса.
429Снизьте частоту запросов и учитывайте Retry-After, если он передан.
5xxСервер или источник данных не смог обработать запрос. Повторите попытку, увеличивая интервал между запросами. Если ошибка сохраняется, обратитесь в поддержку по адресу support@cargotime.ru.

Коды результата

statusЗначение
OKЗапрос выполнен успешно. Результат находится в data.
WRONG_PARAMSНе переданы обязательные параметры или указаны недопустимые значения параметров либо полей тела.
INFO_NOT_FOUNDПо указанному номеру и перевозчику данные не найдены.
LINE_IS_UNDER_MAINTENANCEПолучение данных от перевозчика временно приостановлено: источник находится на обслуживании или доработке.
LINE_NO_RESPONSEИсточник данных перевозчика не ответил в отведённое время.
API_KEY_WRONGAPI-ключ недействителен, отозван или имеет неверный формат.
UNAUTHORIZEDПараметр api_key не был передан.
API_KEY_LIMIT_REACHEDЛимит доступных отслеживаний для API-ключа исчерпан.
API_KEY_RATE_LIMITПревышена допустимая частота запросов для API-ключа.
LOW_BALANCEНа балансе недостаточно доступных отслеживаний.
SERVICE_UNAVAILABLEСервис временно недоступен. Повторите запрос позже.
NOT_FOUNDЗапрошенный ресурс не найден.
UNEXPECTED_ERRORПри обработке произошла непредвиденная ошибка. Повторите запрос. Если ошибка сохраняется, обратитесь в поддержку по адресу support@cargotime.ru.

Для ошибок маршрута или формата идентификатора тело может содержать error и code вместо status_description и status. Учитывайте этот вариант при выводе сообщения об ошибке.

Если ошибки 5xx или UNEXPECTED_ERROR сохраняются, обратитесь в поддержку по адресу support@cargotime.ru. По вопросам оплаты и аккаунта — info@cargotime.ru.

Обновлено

На этой странице