АвтопилотЛабстудия автоматизацииОбсудить задачу
Навигация по базе знаний

База знаний · CRM, 1С и банки

Данные компании по ИНН через DaData в n8n

Как получить данные компании по ИНН через API DaData в n8n. Статус, адрес, руководитель, ОКВЭД, дата регистрации, флаги риска и запись в CRM.

Опубликовано 4 мин чтения

Менеджер вводит ИНН, а сценарий n8n сам заполняет карточку компании в CRM и помечает рискованных контрагентов. Ниже настройка на API DaData.

Что понадобится

  • Аккаунт на dadata.ru и API-ключ из личного кабинета.
  • n8n на своём сервере.
  • CRM с API, например amoCRM или Битрикс24.

Шаг 1. Создать доступ в n8n

Для поиска по ИНН нужен только API-ключ. В n8n откройте Credentials и создайте доступ типа Header Auth:

  • Name: Authorization
  • Value: Token ВАШ_API_КЛЮЧ

Слово Token и пробел перед ключом обязательны.

Шаг 2. Отправить запрос

Узел HTTP Request:

  • Method: POST
  • URL: https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party
  • Authentication: Generic Credential Type → Header Auth → созданный доступ
  • Send Body: JSON
{
  "query": {{ JSON.stringify(String($json.inn)) }},
  "branch_type": "MAIN",
  "count": 1
}

В query можно передать ИНН или ОГРН. branch_type: MAIN оставляет только головную организацию без филиалов. Тот же запрос через curl:

curl -X POST https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ВАШ_API_КЛЮЧ" \
  -d '{"query": "7707083893", "branch_type": "MAIN"}'

Если компания не найдена, массив suggestions придёт пустым. Поставьте после запроса узел If с условием {{ $json.suggestions.length > 0 }}.

Шаг 3. Взять нужные поля

Все данные лежат в suggestions[0].data. В выражениях n8n путь начинается с $json.suggestions[0].data.

Что Поле Тариф
Название с ОПФ name.short_with_opf все
ИНН, КПП, ОГРН inn, kpp, ogrn все
Статус state.status все
Дата регистрации state.registration_date все
Адрес address.value все
Руководитель и должность management.name, management.post все
Основной ОКВЭД okved все
Все ОКВЭД, численность okveds, employee_count «Расширенный», «Максимальный»
Недостоверность сведений и адреса invalid, address.invalidity «Максимальный»
Финансы finance «Максимальный»

Значения статуса:

  • ACTIVE действующая;
  • LIQUIDATING ликвидируется;
  • LIQUIDATED ликвидирована;
  • BANKRUPT банкротство;
  • REORGANIZING присоединяется к другому юрлицу с последующей ликвидацией.

Дата регистрации приходит числом, это Unix-время в миллисекундах. В привычный вид её переводит выражение:

{{ DateTime.fromMillis($json.suggestions[0].data.state.registration_date).toFormat('dd.MM.yyyy') }}

Адрес DaData стандартизует, поэтому он может отличаться от записи в ЕГРЮЛ.

Шаг 4. Посчитать флаги риска

Добавьте узел Code в режиме Run Once for Each Item:

const d = $json.suggestions[0].data;
const flags = [];

if (d.state.status !== 'ACTIVE') flags.push('Статус: ' + d.state.status);

const ageDays = (Date.now() - d.state.registration_date) / 86400000;
if (ageDays < 180) flags.push('Компания моложе 6 месяцев');

if (d.invalid === true) flags.push('Недостоверные сведения в ЕГРЮЛ');
if (d.address && d.address.invalidity) flags.push('Недостоверный адрес');

return { json: { ...$json, flags, risk: flags.length > 0 } };

Порог в 6 месяцев здесь условный, подберите свой. Поля invalid и address.invalidity заполняются только на тарифе «Максимальный». На других тарифах эти проверки просто не сработают.

Шаг 5. Записать данные в CRM

Типовая схема сценария:

  1. CRM сообщает о новой компании через вебхук, либо менеджер присылает ИНН боту.
  2. n8n запрашивает DaData и считает флаги.
  3. n8n обновляет карточку компании в CRM.
  4. Если risk равен true, ответственный получает задачу в CRM.

В amoCRM компания обновляется запросом PATCH /api/v4/companies/{id}. Поля карточки передаются в custom_fields_values по их ID, а метку риска можно поставить через tags_to_add. Как подключить amoCRM, описано в отдельной инструкции.

В Битрикс24 подойдёт метод crm.item.update с entityTypeId: 4 для компаний. Подробнее в статье про Битрикс24 и n8n.

Если уведомляете о рисках в Telegram, отправляйте ID компании и ссылку на карточку. ФИО индивидуального предпринимателя относится к персональным данным, а серверы Telegram находятся за рубежом. Подробнее в статье про 152-ФЗ.

Когда нужен Контур.Фокус или Saby

DaData показывает сведения из реестров. Этого хватает, чтобы заполнить карточку и отсеять ликвидированные и совсем новые компании. Перед крупной предоплатой, отсрочкой платежа или тендером обычно нужна более глубокая проверка.

  • Контур.Фокус. У API есть конструктор из 100 маркеров риска, наблюдение за списками контрагентов с оповещениями об изменениях и данные о задолженности перед ФНС. Условия на странице API.
  • Saby, сервис «Все о компаниях». Тоже проверка контрагентов с API. Условия доступа к API уточните у Saby.

Оба сервиса платные. Связка такая же: n8n отправляет ИНН и записывает результат в CRM.

Сколько стоит

По странице тарифов DaData на дату публикации:

Тариф Цена за год Запросов в день
Бесплатный 0 ₽ 10 000
«Легкий» 14 000 ₽ 50 000
«Расширенный» 28 000 ₽ 100 000
«Максимальный» 56 000 ₽ от 200 000

Дневной лимит общий для всех сервисов подписки. Когда он заканчивается, сервисы отключаются до полуночи. Отдельно действует ограничение 30 запросов в секунду с одного IP-адреса. Проверьте актуальные цены перед покупкой.

Частые ошибки

  • Ошибка авторизации. В заголовке нет слова Token или ключ скопирован с пробелом.
  • Пустой suggestions. Опечатка в ИНН. У компании 10 цифр, у ИП 12.
  • Странная дата регистрации. Число в миллисекундах выведено как есть. Переведите его через DateTime.fromMillis.
  • Поля okveds или invalid пустые. Эти поля не входят в ваш тариф.
  • Ошибки при массовой проверке. Включите в HTTP Request Options → Batching с паузой между пачками.

Частые вопросы

Сколько стоит DaData для поиска по ИНН?

Поиск организации по ИНН есть на всех тарифах, включая бесплатный с лимитом 10 000 запросов в день. Платные тарифы оплачиваются за год и открывают дополнительные поля, например численность сотрудников и финансы.

Хватит ли DaData для проверки контрагента?

DaData даёт сведения из реестров, этого хватает для заполнения карточки и базового фильтра. Суды, долги и маркеры риска показывают платные сервисы, например Контур.Фокус или Saby.

Это персональные данные?

Сведения о юрлицах обычно к ним не относятся. В карточке ИП есть ФИО предпринимателя, с ним работайте по правилам 152-ФЗ.

Готовые модули по теме