Интеграция подсказок ИНН/ОГРН/БИК через 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 раз. Свяжитесь с нами — получите готовое решение с прокси и фронтенд-компонентом. Оценим ваш проект и подготовим предложение.







