## Документация API проверка СНИЛС ### Проверка данных СНИЛС Для проверки соответствия данных человека его СНИЛС используйте следующий запрос: ``` https://service.api-assist.com/parser/pfr_api/?key=ВАШ_КЛЮЧ_ДОСТУПА&firstName=ИМЯ&lastName=ФАМИЛИЯ&dob=ДАТА_РОЖДЕНИЯ&snils=НОМЕР_СНИЛС ``` **Параметры запроса:** - **key** — ключ доступа к сервису (обязательный). - **firstName** — имя владельца СНИЛС (обязательный). - **lastName** — фамилия владельца СНИЛС (обязательный). - **dob** — дата рождения в формате YYYY-MM-DD (обязательный). - **snils** — номер СНИЛС, 11 цифр без разделителей (обязательный). - **patronymic** — отчество владельца СНИЛС (необязательный). **Пример запроса:** ``` https://service.api-assist.com/parser/pfr_api/?key=ВАШ_КЛЮЧ_ДОСТУПА&firstName=Иван&lastName=Иванов&dob=1980-01-01&snils=12798441905 ``` **Пример ответа на запрос:** Ответ на запрос возвращается в формате JSON. Пример ответа: ```json { "success": 1, // Флаг успешности выполнения запроса. При получении 0 сделайте повторный запрос сразу же или через несколько минут. "found": 0, // Найден ли СНИЛС с переданными входными данными. 1 - все данные соответствуют, 0 - есть несоответствия "messages": [ // Массив справочных сообщений, помогающий понять, где допущена ошибка в случае, если информация не найдена "Указанная фамилия не соответствует данным СНИЛС.", "Указанное имя не соответствует данным СНИЛС.", "Указаннная дата рождения не соответствует данным СНИЛС." ] } ``` **Пример успешного ответа (все данные совпадают):** ```json { "success": 1, "found": 1, "messages": [] } ``` --- ### Интерпретация ответа и обработка ошибок **Общие рекомендации:** - Если поле `success` заполнено и `success = 1` — перед вами успешный ответ, с которым можно работать. Только такие запросы учитываются в статистике и расходуют оплаченный лимит. - Иначе, если поле `error` заполнено — запрос требует вашего внимания. Текст ошибки рекомендуется сохранить или отправить для дальнейшего анализа. - Иначе, если поле `error` не заполнено — это ошибка, связанная со стабильностью источника. В таком случае мы рекомендуем игнорировать ответ и повторить запрос. В данном разделе описаны возможные коды ответов сервиса и их значения. Каждый код ответа сопровождается пояснением и примером JSON-ответа. #### 1. Код ответа - 200 - Поле `success = 1` - удалось получить информацию от источника. Такие и только такие запросы можно запускать в дальнейшую обработку. - Поле `success = 0` - не удалось получить информацию от источника. Запрос не будет учтен в статистике. Необходимо повторить запрос. #### 2. Код ответа - 403 Выдается сервисом в случае невозможности обработки запроса из-за ограничения доступа: закончилась подписка, превышен лимит и так далее. Причины ошибок отражены в поле `error` ответа. Ниже приведен список возможных ошибок с их описанием и кодами: - **Invalid access key** `error_code = 40301` Указанный ключ доступа недействителен или отсутствует. - **The subscription period has expired** `error_code = 40302` Доступ к сервису истек, требуется продление. - **Invalid IP** `error_code = 40303` Запрос выполнен с IP-адреса, который не разрешён для доступа. - **Day limit of requests exceeded** `error_code = 40304` Достигнут оплаченный лимит запросов на день. - **Month limit of requests exceeded** `error_code = 40305` Достигнут оплаченный лимит запросов на месяц. **Пример ответа:** ```json { "error": "Invalid access key", "error_code": 40301 } ``` #### 3. Код ответа - 400 Выдается сервисом в случае невозможности обработки запроса из-за ошибки валидации запроса, неверного или отсутствующего значения какого-либо поля. Поле `error_code` всегда равно `40001`, подробности доступны в поле `error`. **Пример ответа:** ```json { "error": "firstName is required", "error_code": 40001 } ``` **Возможные ошибки валидации:** - `firstName is required` — не указано имя - `lastName is required` — не указана фамилия - `dob is required` — не указана дата рождения - `snils is required` — не указан СНИЛС **Особые случаи:** При указании невалидного СНИЛС (неверная контрольная сумма или неверный формат) сервис возвращает код ответа 200 с `success = 1` и `found = 0`, а в массиве `messages` будет содержаться сообщение `"Неверно указан СНИЛС"`. **Пример ответа при невалидном СНИЛС:** ```json { "success": 1, "found": 0, "messages": [ "Неверно указан СНИЛС" ] } ```