Интеграция подсказок ИНН/ОГРН/БИК через DaData на сайте
Ошибка ввода ИНН — одна из частых проблем на формах регистрации юрлиц. Клиент случайно переставляет цифры, и заявка уходит с неверными реквизитами. DaData решает это мгновенно: автодополнение по части ИНН или названию организации. Наш опыт — 80+ интеграций, от интернет-магазинов до банковских личных кабинетов. Экономия времени заполнения формы — 80%, снижение ошибок ввода — 95%.
Возьмём типичный кейс: интернет-магазин со сложной формой регистрации контрагента. Вручную заполнять 12 полей — 3-5 минут, а с автодополнением — 30 секунд. DaData под капотом делает один запрос к ЕГРЮЛ и возвращает чистый JSON. Никакого парсинга XML ФНС.
DaData — де-факто стандарт для автоподстановки реквизитов организаций на российских сайтах. Сервис умеет по неполному ИНН или названию организации вернуть список компаний с полными реквизитами: ИНН, ОГРН, КПП, юрадрес, ФИО директора, статус (действующая/ликвидирована). Аналогично для банков — по БИК возвращает наименование банка, корсчёт, адрес.
Что такое DaData и какие данные он возвращает?
DaData — это сервис подсказок (аналог Google Places, но для российских реквизитов). Он обращается к данным ЕГРЮЛ/ЕГРИП и ЦБ РФ в реальном времени. В ответе JSON: для юрлиц — inn, kpp, ogrn, name, address, management, state; для банков — bic, correspondent_account, name. Все поля уже разобраны — не нужно парсить XML ФНС. Согласно документации DaData, бесплатный тариф позволяет выполнять до 10 000 запросов в день.
Как получить токен и начать?
Регистрация на dadata.ru, раздел «Личный кабинет» → «API-ключи». Два ключа: Token (для запросов) и Secret (для стандартизации). Для подсказок хватает только Token. Бесплатный тариф: 10 000 запросов в день. Для большинства форм этого достаточно.
Как DaData сравнивается с альтернативами?
DaData в 5 раз быстрее прямого запроса к ФНС и поддерживает автодополнение по части запроса. Прямой запрос к сервису ФНС возвращает XML, который нужно парсить — медленно и ненадёжно. DaData выдаёт готовый JSON.
| Критерий | DaData | Прямой запрос к ФНС |
|---|---|---|
| Скорость ответа | ~300 мс | ~1.5 с |
| Автодополнение по части запроса | Да | Нет |
| Формат ответа | JSON (готовый) | XML (требуется парсинг) |
| Лимит бесплатно | 10 000 запросов/день | 1 000 запросов/день |
| Поиск по названию | Да | Только по ИНН/ОГРН |
Подсказки по организациям и поиск по ИНН
Эндпоинт: POST https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party. Пример на Laravel, совмещающий подсказку и поиск по точному ИНН:
$response = Http::withHeaders([ 'Authorization' => 'Token ' . config('services.dadata.token'), 'Content-Type' => 'application/json', ])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party', [ 'query' => $query, 'count' => 5, 'status' => ['ACTIVE'], ]); $suggestions = $response->json('suggestions', []); // Поиск по точному ИНН $response = Http::withHeaders([...])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', [ 'query' => '7736207543', ]); $party = $response->json('suggestions.0.data'); Ответ для одной организации:
{ "value": "ООО \"ЯНДЕКС\"", "unrestricted_value": "ООО \"ЯНДЕКС\"", "data": { "inn": "7736207543", "kpp": "770401001", "ogrn": "1027700229193", "name": { "full_with_opf": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"ЯНДЕКС\"" }, "management": { "name": "ВОЛОЖ АРКАДИЙ ЮРЬЕВИЧ", "post": "ГЕНЕРАЛЬНЫЙ ДИРЕКТОР" }, "address": { "value": "г Москва, ул Льва Толстого, д 16" }, "state": { "status": "ACTIVE" } } } При выборе компании из списка форма автозаполняется: ИНН, КПП, ОГРН, юрадрес, ФИО директора — всё из одного ответа.
Подсказки по банкам (БИК)
Эндпоинт аналогичный: /suggest/bank или /findById/bank. Пример:
$response = Http::withHeaders([ 'Authorization' => 'Token ' . config('services.dadata.token'), 'Content-Type' => 'application/json', ])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/bank', [ 'query' => '044525225', ]); $bank = $response->json('suggestions.0.data'); // $bank['bic'] => '044525225' // $bank['correspondent_account'] => '30101810400000000225' // $bank['name']['payment'] => 'Сбербанк' Как безопасно интегрировать DaData без раскрытия токена?
Если вы не хотите раскрывать токен клиентам, используйте бэкенд-прокси. Мы реализуем контроллер-обёртку с кешированием, который принимает запросы от фронта и перенаправляет их в DaData. Ваш токен остаётся на сервере.
Детали реализации прокси-контроллера на Laravel
Контроллер принимает POST-запрос от фронта, валидирует тип подсказки (party/bank), делает запрос к DaData с серверным токеном и возвращает результат. Опционально кеширует ответы в Redis на 24 часа.
Фронтенд без бэкенд-прокси
DaData поддерживает прямые запросы из браузера. Для этого в настройках кабинета нужно добавить домен в список разрешённых источников. Тогда запрос идёт напрямую из JS:
import { DaDataSuggestions } from 'react-dadata'; import 'react-dadata/dist/react-dadata.css'; <DaDataSuggestions token="ВАШ_ТОКЕН" type="party" onChange={(suggestion) => { setInn(suggestion?.data?.inn ?? ''); setKpp(suggestion?.data?.kpp ?? ''); setOgrn(suggestion?.data?.ogrn ?? ''); }} /> Библиотека react-dadata — готовый компонент для React. Аналоги есть для Vue и ванильного JS.
Кеширование для экономии лимита
Подсказки по ИНН имеет смысл кешировать — данные организации меняются редко. Простой вариант на Laravel:
$data = Cache::remember("party_{$inn}", now()->addHours(24), function () use ($inn) { return $this->fetchFromDadata($inn); }); Кеш снижает расход лимита и ускоряет повторные запросы. Срок хранения 24 часа — разумный компромисс.
Типовой сценарий внедрения
Форма регистрации юрлица на сайте: поле «ИНН или название компании» с подсказками DaData. При выборе из списка остальные поля (КПП, ОГРН, адрес, директор) заполняются автоматически. Это убирает ошибки ввода и сокращает время заполнения формы с 3–5 минут до 30 секунд.
Что входит в работу
- Анализ формы и определение типов подсказок (юрлица, банки, адреса).
- Проектирование архитектуры: нужен ли прокси-контроллер, кеширование.
- Реализация бэкенд-прокси и фронтенд-компонента (React/Vue/ванильный JS).
- Тестирование граничных случаев: ИП, ООО, ликвидированные организации, некорректные ИНН.
- Деплой и интеграция с вашей системой.
- Документация по использованию (комментарии в коде, README).
- Обучение команды (30-минутный онлайн-созвон).
- Пост-релизная поддержка в течение 2 недель.
Процесс интеграции и сроки
| Этап | Длительность |
|---|---|
| Аналитика | 1–2 часа |
| Проектирование | 1–2 часа |
| Реализация | 4–8 часов |
| Тестирование | 2–4 часа |
| Деплой | 1–2 часа |
Базовая интеграция занимает 2–4 часа. Сложные проекты с дополнительным кешированием — до 2 дней.
Закажите интеграцию DaData на ваш сайт — сократите время заполнения форм в 5 раз. Свяжитесь с нами — получите готовое решение с прокси и фронтенд-компонентом. Оценим ваш проект и подготовим предложение.







