Начало работы

Для работы с любым из предоставляемых сервисов необходимо получить ключ доступа (токен), который представляет собой строку из букв латиницы и цифр длиной 32 символа. Токен должен передаваться в с каждым запросом к API в виде HTTP-заголовка X-Nalogka-Auth-Token или в строке запроса параметром auth_token (этот способ менее предпочтителен, т.к. токен может остаться в логах прокси-серверов).

Как получить ключи доступа к API

Для получения ключей доступа необходимо заполнить заявку на странице https://наложка.рф/integration.

Мы предоставляем два ключа доступа к API (один для работы в тестовом режиме, а второй — боевой). Сохранность тестовых данных не гарантирована. Периодически, в ночное время по MSK, пользовательские тестовые данные очищаются.

Внимание!

Пожалуйста, храните ключи безопасно. Контролируйте круг лиц, имеющих к ним доступ. Создатели сервиса «Наложка» не несут ответственности за вред, причиненный в следствие “утечки” выданных вам ключей.

В случае компрометации ключа необходимо срочно написать email на адрес integration@nalogka.com с объяснением ситуации и просьбой сгенерировать новый ключ.

Отправка запросов и получение ответов

Сервис получает и отдает данные в формате JSON.

Пример запроса:

GET /delivery/cities?filter=name=Улья
Host: delivery.api.nalogka.com
Accept: application/json
X-Nalogka-Auth-Token: wbdryC97s5OczyoySDyFLhJJmLlFJGen

В результате может прийти один из ответов, описанных в документации метода.

Пример заголовков успешного ответа:

HTTP/1.1 200 OK
Server: nginx/1.13.7
Date: Sat, 17 Mar 2018 05:38:08 GMT
Content-Type: application/json
Content-Length: 2356

Ошибка при неуказанном ключе аутентификации:

HTTP/1.1 401 Unauthorized
Server: nginx/1.13.7
Date: Sat, 17 Mar 2018 05:51:50 GMT
Content-Type: application/json
Content-Length: 180

{
   "~type" : "AuthenticationRequiredError",
   "message" : "Необходима авторизация."
}

Ошибка при получении недействительного ключа аутентификации:

HTTP/1.1 403 Forbidden
Server: nginx/1.13.7
Date: Sat, 17 Mar 2018 05:48:15 GMT
Content-Type: application/json
Content-Length: 79

{
   "~type" : "AuthenticationFailureError",
   "message" : "Username could not be found."
}

Работа со списками

В описании ресурсов, возвращающих списки, вы можете видеть перечисление полей данных, по которым допустима фильтрация. В таких запросах фильтр передается параметром запроса filter и содержит список условий, отделенных друг от друга символом ;. Каждое условие состоит из трех элементов (именно в нижеприведенном порядке):

  • имя поля — из списка допустимых для фильтрации,
  • операция — одна из операций сравнения =, !=, >, <, <= или >=,
  • значение — число или строка (в том числе и пустая).

Если в одном из условий будет использовано имя поля, недопустимое для фильтрации, то статус ответа сервера будет 400 с текстом ошибки "Недопустимые параметры фильтрации".

Для операции = особое значение имеет символ *, стоящий в начале или в конце значения. Он говорит о том, что сравнение должно производиться на частичное совпадение (совпадение подстроки). Например, под условие field=val* попадут все данные, у которых значение поля field начинается с "val", а под field=*ue попадут данные, у которых значение field заканчивается на "ue".