fl_report1
1.1. Получение данных физлица
Запрос имеет следующий вид:
POST https://data-api.datadev.ru/api/search
При этом авторизация осуществляется посредством заголовка Authorization со значением API-ключа.
Тело запроса:
{
"service":"fl_report1",
"sync":true, (поле, которое делает запрос синхронным, значение false – асинхронным)
"forceUpdate":false, (при значении true принудительно обновляет данные извне, даже если они были в кэше)
"query":{
"mode":"persons",
"data": {
"firstName": Имя,
"lastName": Фамилия,
"middleName": Отчество,
"yearBirth": Год рождения (YYYY),
"monthBirth": Месяц рождения (только цифры, без ведущих нулей),
"dayBirth": День рождения (только цифры, без ведущих нулей),
"passport": Паспорт РФ (серия, номер в формате ХХХХХХХХХХ),
"car": Гос. Номер ТС,
"snils": СНИЛС в формате ХХХХХХХХХХХ,
"inn": ИНН в формате ХХХХХХХХХХХХ,
"telephone": Номер телефона (без учета международного кода +7, +8 и т.д),
"referatFts": Сквозной поиск по параметрам, не входящим в стандартные (описанные выше) Описание см. Пункт 1.1,
"orderBy": Метод сортировки см. Таблицу 1
}
}
Таблица 1. Методы сортировки результатов поиска
Метод: | Описание | Примечание |
---|---|---|
Alphabet | Сортировка по алфавиту | - |
Newness | Сортировка по новизне источника | - |
Relevance | Сортировка по релевантности используется совместно с параметром | используется совместно с параметром referatFts |
Relevance - cортировка по релевантности используется совместно с параметром referatFts
Если параметр не указан, то никакой порядок строк не гарантируется.
Минимальные наборы для поиска в рамках данного API запроса:
Фамилия + Имя
Фамилия + Год рождения
Номер телефона
Гос. Номер ТС
Паспорт РФ
ИНН
СНИЛС
Имя + Отчество + Полная дата рождения
Запрос на сквозной поиск (указана информация в поле \"referatFts\")
Ответ на запрос:
1. Успешное получение данных
{
"_type": "TaskContainer", //Тип ответа
"id": "857516b754bed7aedfb9b86d511e61bbdd0d3f83", //id ответа
"group": "", //группа, если осуществлялся поиск через маппер (см. п. 1.2)
"request":
{"data": {
“Параметры запроса см. выше”
}
"result": [
{
Параметры ответа см. Таблицу 2
}
" status": "ok",
}
2. Ошибка -- недоступен/не отвечает сервис по получению данных
{
"ok": false, Сервис недоступен/не отвечает. Запрос нужно повторить позже
}
Таблица 2. Ответ на запрос получения данных физлица
Имя поля | Значение | Тип | Описание |
---|---|---|---|
id | Системный идентификатор записи | bigint | |
lastName | Фамилия | string/null | |
firstName | Имя | String/null | |
middleName | Отчество | string/null | |
telephone | Номер телефона | string/null | |
car | Гос. Номер ТС | string/null | |
passport | Паспорт РФ | string/null | |
dayBirth | День рождения | int | “0” - день не указан |
monthBirth | Месяц рождения | int | “0” - месяц не указан |
yearBirth | Год рождения | int | “0” - год не указан |
snils | СНИЛС | string/null | |
inn | ИНН | string/null | |
information | Дополнительная информация по ФЛ | list | Имеет внутри себя список значений параметров, имена которых одинаковы в разрезе связанной информационной базы |
Для поля необходимо подгрузить схему имен полей (cм. Пункт 2) | | base | Уникальное имя связанной информационной базы | string | Например, “ГИБДД МОСКВА 2018” | | baseId | Системный идентификатор связанной информационной базы | int | |
1.2. Сквозной поиск с помощью поля \"referatFts\"
Система позволяет осуществлять поиск не только по основным полям для поиска, но и по всей дополнительной информации в записях.
Например:
Поиск по адресам (место жительства/регистрации и т.д.);
Поиск по VIN номеру транспортного средства;
Поиск по электронной почте;
Использование сквозного поиска как усекающего фильтра при поиске по основным полям. Пример: связка имени (основное поле "Имя") и места жительства (поле "Сквозной поиск").
Важно! В поле сквозного поиска по доп. информации в общем случае не нужно вносить основные параметры, для которых представлены классические поля для поиска. Они по-прежнему должны вводиться в соотв. поля ("Имя", "Фамилия", "Отчество" и т.д.).
Пример тела запроса с заполненным полем referatFts:
{
"mode":"persons",
"data":{
"firstName": "",
"lastName": "",
"middleName": "",
"yearBirth": "",
"monthBirth": "",
"dayBirth": "",
"passport": "",
"car": "",
"snils": "",
"inn": "",
"telephone": "",
"referatFts": "москва валовая",
"orderBy": ""
}
}
Пример ответа:
{
"ok": true,
"is_empty": false,
"data": [
{
"id": 1352176302,
"lastName": "ФАМИЛИЯ",
"firstName": "ИМЯ",
"middleName": "ОТЧЕСТВО",
"telephone": null,
"car": null,
"passport": null,
"dayBirth": 7,
"monthBirth": 0,
"yearBirth": 1962,
"snils": null,
"inn": null,
"information": "{\"D\":[\"МОСКВА УЛИЦА УЛ. КВ. 155\\\"\"]}", "base": "ЖИТЕЛИ МОСКВЫ 2011 08",
"baseId": 375
}
1.3. Маппер для поиска конкретных параметров
С помощью маппера можно указывать определенные поля для поиска:
GET https://data-api.datadev.ru/api/search_group/{{search_group.response.body.id}}
?format=csv (может также принимать значение json)
&fields=<наименование полей через запятую>
&service= fl_report1
&status=OK;ERROR (необязательное поле, необходимо для фильтрации результатов выборки)
&cursor= (поле, необходимое для пролистывания данных) // в ответном запросе приходит заголовок X-CURSOR-ITERATION, который содержит число. Это число необходимо подставить в следующий запрос чтобы получить новую порцию данных. Если в заголовке пришел 0, значит следующий запрос можно не отправлять т.к это последняя страница данных.
Authorization: {{test_token}}
Авторизация осуществляется посредством заголовка Authorization со значением API-ключа.
Поле fields заполняется наименованиями полей, необходимых для поиска, через запятую. Например:
&fields=lastName, firstName, telephone
При этом в ответе будут созданы колонки lastName, firstName, telephone, поле "telephone" будет содержать перечисление через точку с запятой номеров из ответа от источника.
Пример ответа:
lastName; firstName; telephone ФАМИЛИЯ; ИМЯ; "9142522487; 9142548236"
2. Запрос на получение схемы дополнительных полей к связанной информационной базе
Запрос имеет следующий вид:
GET https://data-api.datadev.ru/business_api/get_schema?baseid=[id связанной базы из ответа предыдущего запроса]&token=[токен]
Ответ:
{
"baseId": //id базы, к которой делался запрос,
"table": //наименование таблицы,
"fields": [
//наименования полей таблицы
]
}
Примечание: Полученные имена доп. полей соответствуют доп. информации из прошлого API запроса (См. Пункт 1), и теперь могут быть однозначно расшифрованы. А также, учитывая, что схемы для каждой информационной базы не меняются, стоит их кэшировать на клиентской стороне, которая использует данное API.