Мы используем обычные коды ответов HTTP для обозначения результата выполнения запроса.
Коды группы 2** указывают на успех. Коды группы 4** указывают на ошибку запроса, который не удался с учетом предоставленной информации (например, обязательный параметр был пропущен, несуществующий идентификатор и др.). Коды группы 5** указывают на ошибки на серверах Пачки (они редки).
200 - ОК | Запрос отработал как положено, без ошибок | |
201 - Created | Запрос отработал успешно, сущность создана | |
301 - Moved Permanently | Запрошенный ресурс был на постоянной основе перемещён в новое месторасположение (такой ответ вы можете получить если выполните запрос по протоколу HTTP, а не по HTTPS) | |
400 - Bad Request | Неприемлемый запрос (часто из-за отсутствия обязательного параметра) | |
401 - Unauthorized | Предоставлен недействительный токен доступа | |
402 - Payment Required | Параметры действительны, но запрос не выполнен | |
403 - Forbidden | Предоставленный токен доступа не имеет разрешений на выполнение запроса | |
404 - Not Found | Запрашиваемый ресурс не существует | |
409 - Conflict | Запрос конфликтует с другим запросом (возможно, из-за использования того же идемпотентного ключа). | |
422 - Unprocessable Entity | С запросом все хорошо, но правила сервиса не позволяют его обработать (например, при попытке создания контакта с уже существующим номером телефона в базе) | |
429 - Too Many Requests | Слишком много запросов слишком быстро попадают в API. | |
500, 502, 503, 504 - Server Errors | Что-то пошло не так на сервере Пачки (это редкость) |
Вместе с кодом группы 4*** вы получите в теле ответа массив
errors
.
В этом массиве вы найдете список ошибок, которые помогут вам разобраться и повторить запрос с уже успешным исходом. Каждая ошибка представлена объектом с набором параметров.
key | string | Ключ параметра, в котором произошла ошибка |
value | string | Значение ключа, которое вызвало ошибку |
message | string | Ошибка текстом, который вы можете вывести пользователю |
code | string | Внутренний код ошибки (коды ошибок представлены в описании каждого метода) |
payload | object | Объект, который предоставляет любую дополнительную информацию (возможные дополнения представлены в описании каждого метода) |