Перейти к основному содержимому

Сервис «Прозрачный бизнес» ФНС (pb.nalog.ru)

ПризнакЗначение
Уровень и охватФедеральная витрина по юридическим лицам и ИП; отдельные инструменты для сравнения отраслевых показателей
Тип доступаПубличный веб-интерфейс; внутренние JSON/XHR-запросы работают только как часть интерфейса и не являются публичным API
Основные форматыHTML; JSON в ответах внутренних запросов браузера
ОператорФНС России
Режим доступаОткрытый просмотр; при интенсивных запросах интерфейс запрашивает CAPTCHA и сообщает о лимите

Коротко: «Прозрачный бизнес» — официальный интерфейс ФНС для точечной проверки контрагента по ИНН, ОГРН/ОГРНИП, названию или ФИО. Он показывает сводную карточку организации либо ИП, а также даёт калькулятор налоговой нагрузки и узкоспециализированные отраслевые показатели. Это удобный слой ручной проверки и исследования одного субъекта, но не замена файловых наборов открытых данных ФНС, выписки ЕГРЮЛ/ЕГРИП или ГИР БО.

Качество и верификация​

ИзмерениеЗначение для этой карточки
Дата проверки (last_verified)2026-07-19: проверены HTML-страницы, формы, встроенный JavaScript и однократный поиск по ИНН через интерфейсный поток.
Полнота (data_completeness)Частичная: карточка агрегирует только сведения, разрешённые к показу и доступные для конкретного субъекта; состав блоков различается для ЮЛ и ИП. Это не полная копия ЕГРЮЛ/ЕГРИП, ГИР БО или каталога открытых данных.
Машиночитаемость (machine_readability)HTML для пользователей. Внутренние JSON-ответы существуют, но требуют временных идентификаторов, подвержены CAPTCHA и лимиту, поэтому не годятся как стабильный канал интеграции.
Юридическая значимость (legal_significance)Официальная витрина ФНС. Для юридически значимой выписки и первичных файлов следует обращаться к соответствующему сервису или набору.
Задержка обновления (update_lag)Не задана единым циклом: интерфейс показывает разные срезы по реестровым, годовым и ежемесячным сведениям. Дату/период нужно читать у конкретного блока.
Глубина архива (archive_depth)Не гарантирована интерфейсом: отдельные блоки имеют периоды и детализацию, но полного стабильного архива карточек нет.
Лицензия (license_or_terms)Явная машиночитаемая лицензия для повторного использования карточек на витрине не указана; условия и паспорта проверяйте для каждого внешнего набора ФНС.

Описание​

Витрина объединяет поиск по реестровым и публикационным признакам, карточки субъектов, сравнение выбранных организаций, калькулятор и отдельный раздел отраслевых показателей. Карточка создаётся для просмотра, а не как постоянная запись: адрес company.html?token=… содержит временный интерфейсный токен, а не ИНН и не публичный идентификатор записи.

В объём этой страницы не входят личные кабинеты налогоплательщика, АИС «Налог-3» и сторонние агрегаторы. Также не следует считать частью самой витрины сервисы, на которые ведёт её меню: они работают на service.nalog.ru, egrul.nalog.ru, lkul.nalog.ru, lkip2.nalog.ru и других доменах.

Оператор​

Федеральная налоговая служба — оператор и публикатор витрины: https://pb.nalog.ru/

Инвентаризация разделов и точек доступа​

РазделURLЧто пользователь получаетФормат и автоматизация
Главная и поискhttps://pb.nalog.ru/Общий поиск, поиск ЮЛ, ИП, руководителей/участников, дисквалифицированных лиц, адресов, ограничений участия и поданных регистрационных документов; расширенные фильтры для ЮЛ и ИП.HTML; результаты подгружаются внутренним JSON-потоком. Поля и поток нестабильны, есть CAPTCHA/лимит.
Страница результатовhttps://pb.nalog.ru/search.htmlРезультаты выбранного режима, пагинация, переход к карточке и печатной версии; список может содержать ссылки в ЕГРЮЛ/ЕГРИП, РСМП и ГИР БО.HTML + внутренний JSON. Временный token из результата не является ключом для хранения или массовой загрузки.
Карточка субъектаСоздаётся из поиска: https://pb.nalog.ru/company.html?token=…Сводные реквизиты, статусы, ОКВЭД, МСП, руководители/учредители и, для ЮЛ при наличии, опубликованные налоговые и финансовые показатели.HTML, данные собираются внутренним JSON-запросом. Адрес с токеном эфемерен и не образует стабильную ссылку на ИНН.
Сравнениеhttps://pb.nalog.ru/compare.htmlСравнение добавленных пользователем карточек; интерфейс указывает лимит до 100 выбранных субъектов.HTML/UI; не самостоятельный набор и не канал выгрузки.
Калькулятор налоговой нагрузкиhttps://pb.nalog.ru/calculator.htmlСреднеотраслевые ориентиры и расчёт введённых пользователем фактических показателей для организаций на общем режиме.HTML + внутренний JSON. Не API; результат зависит от введённых параметров и выбранного периода.
Отраслевые нормативные показателиhttps://pb.nalog.ru/indicator.htmlНа момент проверки — участники отрасли «Клининг и техническая эксплуатация» (ОКВЭД 81.1/81.2), давшие согласие на раскрытие; фактическая и нормативная совокупная фискальная нагрузка.HTML + внутренний JSON; ежемесячный расчёт заявлен интерфейсом, но фиксированный публичный файл не опубликован.
«Открытые данные»https://pb.nalog.ru/od.htmlИнформационный экран: сообщает, что наборы по п. 1.1 ст. 102 НК РФ доступны в каталоге ФНС.HTML со ссылкой на внешний https://www.nalog.gov.ru/opendata/. В самой странице нет CSV/XML/XLSX-файлов и нет каталога файлов.
«Сервисы оценки ЮЛ и ИП»https://pb.nalog.ru/grade.htmlОписание двухэтапной оценки, ссылка на приказ ФНС и переходы в личные кабинеты ЮЛ/ИП; отдельная внешняя проверка выписки ведёт на service.nalog.ru/scoring/.HTML-страница со ссылками. Открытых результатов оценки и публичного API на ней нет.
Прочие пункты менюВнешние адреса service.nalog.ru, npd.nalog.ru, m4d.nalog.gov.ru, nalog.gov.ruРеестр обеспечительных мер, проверка статуса НПД, проверка КЭП, субсидиарная ответственность, проверка арбитражного управляющего, копии учредительных документов и др.Это другие сервисы ФНС, а не данные pb.nalog.ru. Для них нужны отдельные карточки и собственные правила доступа.

Страницы «О сервисе», «Вопросы и ответы» и «Обратная связь» помогают пользоваться витриной, но самостоятельных наборов данных не содержат.

Объекты данных и показатели​

Результат поиска и ключи связки​

Внутренний ответ общего поиска группирует результаты по типу: ul (ЮЛ), ip (ИП), upr (руководители), uchr (учредители), addr (адреса), rdl (дисквалифицированные лица), ogrfl/ogrul (ограничения участия), docul/docip (поданные документы). У групп, содержащих строки, интерфейс использует контейнер вида {"data": [...], "rowCount": number, "page": number, "pageSize": number, "hasMore": boolean}.

Поле результата ЮЛ / ИПТип в ответе интерфейсаСмысл, источник и ограничения
innстрока из цифрИНН — основной ключ склейки с карточкой, ГИР БО, ЕИС и наборами ФНС. Не переводите в число: ведущие нули и контрольная длина должны сохраняться.
ogrnстрока из цифрДля ЮЛ — ОГРН, для ИП — ОГРНИП; второй ключ проверки идентичности.
namec, namepстрока, возможна пустотаСокращённое и полное наименование ЮЛ либо ФИО ИП. Это поисковое представление, не надёжный ключ.
dtogrnстрока даты ДД.ММ.ГГГГ, возможна пустотаДата присвоения ОГРН/ОГРНИП из регистрационных сведений.
sulst_ex, sulst_name_exкод и строка, возможны пустотыСостояние ЮЛ; sulst_ex — интерфейсный код, sulst_name_ex — отображаемое наименование. Не используйте код без словаря сайта.
pr_sipstстроковый флаг "0"/"1", возможна пустотаСостояние ИП: интерфейс отображает «действующий» или «деятельность прекращена».
regionnameстрока, возможна пустотаРегион в поисковом результате ЮЛ; у ИП в кратком результате может не показываться.
okved2main, okved2mainnameстрока, возможна пустотаОсновной ОКВЭД и его наименование; ключ отраслевой классификации.
invalid, predoстроковый/числовой флаг, возможна пустотаПризнак недостоверности сведений и признак участия в ЭДО в представлении интерфейса. Это статусы, не количественные показатели.
tokenвременная строкаТолько сессионный указатель для перехода к карточке. Не ключ склейки, не добавляйте в базу и не публикуйте как ссылку.

Ключи предметной связки: ИНН — предпочтительный ключ между витриной, ЕИС, XML ЕИС, ГИР БО и наборами ФНС; ОГРН/ОГРНИП — контроль идентичности; ОКВЭД — отраслевой разрез. КБК в карточках pb.nalog.ru не является полем связи.

Карточка юридического лица​

Поля ниже — фактически используемые шаблоном карточки имена/блоки на дату проверки. Они появляются условно: отсутствие поля означает «сведения отсутствуют», «нет обязанности» или что блок не применим; это не числовой ноль.

Блок и поляТип, единицыПроисхождение и типичные пустоты
Наименование и регистрация: НаимЮЛПолн, НаимЮЛСокр, ИНН, ОГРН, ДатаОГРН, ДатаЗаписи, ДатаПостУч, КППСтроки; даты в интерфейсном JSON обычно ГГГГ-ММ-ДД; идентификаторы — строки цифрРегистрационные сведения ЕГРЮЛ. Сокращённое наименование, КПП и отдельные даты могут отсутствовать; каноническая выписка — в ЕГРЮЛ/ЕГРИП.
Налоговые органы и статус: КодНО, НаимНО, КодРО, НаимРО, sulst_ex, sulst_name_ex, invalidКоды/строки, флагЕГРЮЛ и представление ФНС. Код статуса не документирован как внешний справочник; для автоматизации сохраняйте текст и дату получения.
Адрес: АдресРФ, составные Индекс, НаимРегион, ТипУлица, НаимУлица, Дом; возможный массив СвНедАдресЮЛСтроки; массив объектов с текстом дополнительного статусаРеестровые сведения ЕГРЮЛ. Полный адрес и признаки недостоверности могут меняться; не нормализуйте адрес как уникальный ключ.
Деятельность: КодОКВЭД, НаимОКВЭД, ТипОКВЭД; массивы okved2dolyaex и okved2ex с okved2nameСтроки; ОКВЭД — кодОсновной и дополнительные виды деятельности из реестрового контура. Интерфейс различает «отчётный» и «заявительный» ОКВЭД; полные массивы раскрываются по действию пользователя.
Капитал: СумКап, НаимВидКапЧисло/денежная сумма в рублях, строка вида капиталаРеестровые сведения. Блок применим не ко всем организационно-правовым формам и может не отображаться.
МСП и ЭДО: rsmpcategory, rsmpdate, ссылка rsmppdf; predoКод категории, дата, URL; флагРеестр МСП и признак, используемый витриной для статуса ЭДО. Для машиночитаемого среза МСП используйте отдельный набор, а не PDF/карточку.
Руководители: массив masruk (name, inn, position, cnt, invalid, token)Строки, число ЮЛ; token временныйРеестровые сведения. Персональные данные и число связанных ЮЛ раскрываются в доступном объёме; token не хранить.
Учредители/участники: массив masuchr (name, inn, cnt, invalid, token)Строки, число ЮЛ; token временныйРеестровые сведения. Доля участия в этом шаблоне не является гарантированным полем; за полной выпиской — к ЕГРЮЛ.
Адресные связи: массив masaddress (massinn, massnamec/massnamep, token)Строки; token временныйДругие ЮЛ по адресу в представлении витрины. Может быть пустым; это не самостоятельный реестр массовых адресов.
Долг для взыскания и отчётность: pr_zd, pr_otch, pr_otch_zd_dateФлаги и датаКарточка показывает «имеет/не имеет задолженность свыше 1 000 руб., направленную приставу» и «представляет/не представляет налоговую отчётность более года». Это статус на показанную дату, не размер задолженности.
Специальные режимы: taxmode_yearcode, taxmode_periodcode, hastaxmode, флаги ausn, envd, eshn, spr, usnГод/период, логические флагиПубликуемый налоговый срез ФНС. Нулевой/отсутствующий флаг не должен автоматически читаться как «общий режим»: карточка может показывать отсутствие сведений или неприменимость.
Недоимка и пени: arrear_yearcode, arrear_periodcode, totalarrearsum; подробный массив arrearГод/период; сумма в рубляхПоказатель «суммы недоимки и задолженности по пеням и штрафам». Стабильная массовая версия описана в наборе 7707329152-debtam; в карточке значение/детализация могут отсутствовать.
Налоговые правонарушения: offense_yearcode, offensesum; подробный массив offenseГод; сумма штрафов в рубляхПубликуемый срез ФНС. Не равен общей задолженности и не означает, что все нарушения организации раскрыты; используйте набор 7707329152-taxoffence.
Среднесписочная численность: sschr_yearcode, sschr; подробный массив sschrГод; число человекПубликуемый показатель численности. Может быть пустым; единица — человек, не штатные единицы. Первичный файловый набор — 7707329152-sshr2019.
Уплаченные налоги и сборы: taxpay_yearcode, taxpaysum; подробный массив taxpayГод; сумма в рубляхПубликуемый годовой срез. Не путать с начислениями, задолженностью или бюджетными поступлениями; для файлов и методики — 7707329152-paytax.
Доходы и расходы: form1_yearcode, поля дохода/расхода в блоке form1, возможная ссылка bourlГод; денежные суммы в рублях; URLВитрина показывает свод «доход/расход» по данным бухгалтерской отчётности. Детализацию форм и официальный доступ берите из ГИР БО; файловый срез — 7707329152-revexp. У части ЮЛ может быть «нет обязанности» либо нет сведений.

Карточка индивидуального предпринимателя​

ИП использует иной шаблон (type: 2). Общие с ЮЛ смысловые поля — идентификатор, статус, налоговый орган, ОКВЭД, МСП, участие в ЭДО и специальные режимы; наименования полей отличаются.

Блок и поляТип, единицыОтличие от ЮЛ и пустоты
ФИО и идентификаторы: Фамилия, Имя, Отчество, ИННФЛ, ОГРНИП, ДатаОГРНИП, ДатаПостУчСтроки; даты; ИНН/ОГРНИП — строки цифрВместо названия ЮЛ и ОГРН. Отчество и отдельные даты могут отсутствовать.
Гражданство, статус, учёт: ВидГражд, НаимСтатусСокр, НаимСтатус, ДатаСтатус, КодНО/НаимНО, КодРО/НаимРОСтроки, коды, датаСтатус ИП и регистрация по месту жительства; не переносите в модель поля ЮЛ (КПП, уставный капитал, учредители).
Деятельность: КодОКВЭД, НаимОКВЭД, ТипОКВЭД, okved2dolyaex, okved2exСтроки/массивыТе же два представления ОКВЭД, что в карточке ЮЛ; коды — ключ для отраслевых срезов.
МСП и режим: rsmpcategory, rsmpdate, hastaxmode, ausn, eshn, psn, npd, usn, taxmode_yearcode, taxmode_periodcodeКод, дата, флагиДля ИП интерфейс перечисляет АУСН, ЕСХН, ПСН, НПД и УСН. Отсутствие значения не доказывает неприменение режима без указанного периода.

В текущем шаблоне ИП нет блоков учредителей/уставного капитала, сводных доходов и расходов бухгалтерской отчётности, уплаченных налогов, задолженности/пеней, правонарушений и среднесписочной численности, которые показываются условно для ЮЛ. Не подставляйте в эти пропуски нули.

Отраслевые нормативные показатели​

Это не универсальный классификатор отраслей. На дату проверки страница фиксирует единственную отрасль «Клининг и техническая эксплуатация», с кодом фильтра 81.1; описание охватывает основные заявленные ОКВЭД 81.1 и/или 81.2 и только лиц, давших специальное согласие на раскрытие. Интерфейс заявляет ежемесячный расчёт.

Поле записиТип, единицаСмысл, источник и пустоты
name, innстрока; ИНН — строки цифрНаименование/ФИО и ключ участника. Связка с карточкой — по ИНН.
industry, region, okvedстрокаОтрасль, субъект РФ и ОКВЭД. По состоянию страницы отрасль фиксирована; регион/ОКВЭД могут быть пусты в ответе.
rsmp, snстрокаКатегория МСП с доходом не более 500 млн руб. и режим налогообложения в представлении сервиса.
year, quarterчисло; квартал необязателенПериод записи: если quarter отсутствует, интерфейс показывает только год.
dohodчисло, рублиСумма дохода за период. Ноль выводится как «отсутствуют доходы», поэтому нельзя делить на него и интерпретировать как пропуск.
fsfnчисло, %Фактическая совокупная фискальная нагрузка. При нулевом доходе интерфейс вместо значения показывает текст.
nsfnчисло, %Нормативная совокупная фискальная нагрузка, уменьшенная на 20%.
osfnчисло, процентные пунктыОтклонение фактической нагрузки от нормативной, уменьшенной на 20%; может быть отрицательным, положительным или пустым.

Интерфейс описывает методику: совокупная фискальная нагрузка — отношение исчисленных налогов и взносов к доходам за квартал/год; состав налогов и источники дохода различаются для общего режима и УСН. Нормативные показатели приведены в письме ФНС, на которое ссылается сама страница. Это ориентир риск-анализа, а не доказательство нарушения.

Калькулятор налоговой нагрузки​

Калькулятор предназначен для организаций на общем режиме налогообложения. Вводимые деньги — в тысячах рублей, а не в рублях. Периоды, доступные на странице при проверке: 2022–2024.

Вход / выходПоля и типМетодика и ограничения
Параметры ориентираPERIOD (год), OKVED (код ОКВЭД), REGION (код/выбор региона), SCL (масштаб деятельности, необязателен)Первые три обязательны. Справочники кодов подгружаются интерфейсом и не задокументированы как внешний API.
Фактический вводCALC_DOH, CALC_FACT, CALC_PRIB, CALC_NDS, CALC_NDPI, CALC_NDFL, CALC_SV — числа, тыс. руб.Доход; общая сумма уплаченных налогов, сборов и взносов; в том числе налог на прибыль, НДС, НДПИ/акцизы, НДФЛ и страховые взносы. Не передавайте форматированные строки с пробелами без проверки интерфейса.
Среднеотраслевой ответfisk, snr_ndpi, snr, nr_prib, nr_nds, ndfl, sv, rent — числа, %; srzp — число, руб./месяцФискальная нагрузка, совокупная с/без НДПИ и акцизов, нагрузки по видам, рентабельность продаж и средняя зарплата. Пустое значение выводится пустым или **; не заменяйте его нулём.
Фактический ответ и отклонениеFACT_FISK, FACT_SNR_NDPI, FACT_SNR, FACT_NR_PRIB, FACT_NR_NDS, FACT_NDFL, FACT_SV — %; соответствующие DIV_* — п.п.Сравнение ввода с ориентиром. Интерфейс указывает формулу фискальной нагрузки: сумма уплаченных налогов, сборов и страховых взносов без дивидендов / доходы за год × 100%.

Связь с каталогом открытых данных ФНС​

Страница /od.html прямо перенаправляет читателя к внешнему каталогу https://www.nalog.gov.ru/opendata/ и не публикует на своём домене ни файлы, ни паспорт набора, ни URL загрузки. Карточка субъекта может показывать сведения из наборов, но не заменяет их.

Блок карточки pb.nalog.ruВнешний набор / карточка wikiКлюч и различие
Специальные режимы7707329152-snrИНН и период; карточка показывает результат для одного субъекта, набор — файловый срез.
Недоимка, пени и штрафы7707329152-debtamИНН и год/период; сумма в карточке не заменяет файл и его паспорт.
Налоговые правонарушения7707329152-taxoffenceИНН и год; самостоятельный показатель, не часть долга.
Среднесписочная численность7707329152-sshr2019ИНН и год; единица измерения — человек.
Уплаченные налоги и сборы7707329152-paytaxИНН и год; не смешивать с начислением или недоимкой.
Доходы и расходы7707329152-revexp и ГИР БОИНН/ОГРН и год; ГИР БО нужен для форм и более полного бухгалтерского контекста.

Машиночитаемые форматы и каналы доступа​

  • HTML — основной поддерживаемый канал. Он подходит для интерактивного поиска одного субъекта и ручной проверки отображаемой даты/периода.
  • Внутренний JSON/XHR — только техническая деталь интерфейса. Формы сайта на дату проверки отправляли запросы к search-proc.json, company-proc.json, calculator-proc.json?c=search и indicator-proc.json. Это адреса, извлечённые из HTML/JavaScript сайта, а не опубликованная спецификация: они могут измениться без предупреждения, требуют временные id/token и могут вернуть CAPTCHA либо pbRateLimit.
  • Внешние файлы — не на pb.nalog.ru. /od.html не отдаёт CSV/XML/XLSX; за массовыми данными переходите в каталог открытых данных ФНС и к конкретным карточкам наборов.
  • Внешние сервисы — отдельные системы. Ссылки в меню на service.nalog.ru, ЕГРЮЛ, личные кабинеты и НПД не делают их эндпоинтами pb.nalog.ru.

Ограничения автоматизации: CAPTCHA, заявленный интерфейсом лимит частоты, асинхронная подготовка результата, временные токены, отсутствие опубликованных схем полей/версии API, изменение HTML и клиентского JavaScript. Не запускайте параллельный или непрерывный опрос и не обходите защитные механизмы.

Периодичность обновления​

Единой периодичности нет. Сайт показывает период у конкретного блока: часть сведений из открытых данных отмечена как ежемесячная или годовая, отраслевые показатели интерфейс называет ежемесячно рассчитываемыми, а реестровые реквизиты обновляются по обработке регистрационных данных. Для повторяемого ряда берите периодичность из паспорта соответствующего набора, а не по дате открытия карточки.

Ограничения и особенности​

  • Карточка — снимок представления ФНС, а не доказательство юридического статуса на дату сделки. Для официальной выписки используйте ЕГРЮЛ/ЕГРИП.
  • «Сведения отсутствуют», «нет обязанности», пустое поле и числовой ноль — разные состояния. Сохраняйте их раздельно вместе с годом/периодом и датой извлечения.
  • token и id из внутренних ответов краткоживущие; не используйте их в качестве ссылки, первичного ключа или идентификатора сущности.
  • Карточка не покрывает все организации одинаково: часть налоговых, финансовых и регистрационных блоков зависит от типа субъекта, периода и доступности публикации.
  • Отклонение от отраслевого ориентира и результат калькулятора — аналитический сигнал, но не подтверждение нарушения и не готовое решение для контроля.

Примеры доступа​

1. Получить карточку через веб-интерфейс — рекомендуемый путь​

  1. Откройте https://pb.nalog.ru/.
  2. Выберите «Организации» либо «Индивидуальный предприниматель (ИП)».
  3. Введите ИНН, ОГРН/ОГРНИП или допустимый текстовый запрос и откройте строку результата.
  4. Зафиксируйте ИНН, ОГРН/ОГРНИП, дату/период каждого показателя и факт отсутствия/наличия блока; не сохраняйте token из URL карточки.

Это единственный канал, который сервис явно предоставляет пользователю для просмотра карточки.

2. Однократный внутренний запрос поиска — шаблон, проверьте на актуальной версии сайта​

Ниже приведён не публичный API, а минимальный технический пример потока, который использовала страница search.html при проверке 2026-07-19. Он запрашивает один ИНН, ждёт асинхронный результат и прекращает работу при ошибке. CAPTCHA или pbRateLimit — нормальный результат защиты; не обходите их и вернитесь к браузеру.

pb_inn='7707329152' # пример: ИНН ФНС России; замените на один разрешённый запрос

pb_request=$(curl --compressed --silent --show-error --location \
--referer 'https://pb.nalog.ru/search.html' \
--data-urlencode 'mode=search-ul' \
--data-urlencode "queryUl=$pb_inn" \
--data-urlencode 'page=1' \
--data-urlencode 'pageSize=10' \
'https://pb.nalog.ru/search-proc.json')

pb_request_id=$(printf '%s' "$pb_request" | node -e '
let text = ""; process.stdin.on("data", c => text += c).on("end", () => {
const value = JSON.parse(text);
if (!value.id || value.captchaRequired) process.exit(2);
process.stdout.write(value.id);
});
') || { printf '%s\n' 'Сайт запросил CAPTCHA или изменил ответ; продолжайте в браузере.' >&2; exit 1; }

for pb_attempt in $(seq 1 20); do
pb_result=$(curl --compressed --silent --show-error --location \
--referer 'https://pb.nalog.ru/search.html' \
--data-urlencode "id=$pb_request_id" \
--data-urlencode 'method=get-response' \
'https://pb.nalog.ru/search-proc.json')
[ "$pb_result" = 'null' ] || break
sleep 2
done

printf '%s\n' "$pb_result"

Ожидаемая форма успешного ответа для ЮЛ — объект ul с data (массив строк) и rowCount; для ИП — ip. В ответе нет стабильной схемы и версии, поэтому перед обработкой валидируйте типы и наличие ключей.

3. Проверить и нормализовать ответ внутреннего поиска​

Этот пример работает с JSON, уже сохранённым из предыдущего однократного запроса в pb-search-result.json; он не обращается к сайту и не предполагает несуществующих полей.

// node normalize-pb-search.mjs < pb-search-result.json
let text = '';
for await (const chunk of process.stdin) text += chunk;

const payload = JSON.parse(text);
const group = payload.ul ?? payload.ip;
if (!group || !Array.isArray(group.data)) {
throw new Error('Ожидался результат ul или ip с массивом data');
}

for (const row of group.data) {
const inn = String(row.inn ?? '');
const ogrnOrOgrnip = String(row.ogrn ?? '');
if (!/^\d{10}(\d{2})?$/.test(inn) || !/^\d{13}(\d{2})?$/.test(ogrnOrOgrnip)) {
throw new Error(`Неверный идентификатор в строке поиска: ${JSON.stringify(row)}`);
}

console.log(JSON.stringify({
inn,
ogrn_or_ogrnip: ogrnOrOgrnip,
name: row.namec || row.namep || null,
status: row.sulst_name_ex ?? (row.pr_sipst === '0' ? 'Действующий ИП' : null),
okved: row.okved2main ?? null,
source: 'pb.nalog.ru internal search response',
}));
}

Поле token намеренно не переносится в результат: оно временное. Проверка длины ИНН/ОГРН/ОГРНИП позволяет отбросить ошибочный или изменившийся ответ прежде, чем делать склейку.

4. Склейка с внешними наборами по ИНН/ОГРН — псевдокод​

В pb.nalog.ru нет экспортируемого файла карточек, поэтому массовую основу берут из внешнего набора, а витрину используют для точечной верификации. Ниже <…> обозначают конкретные названия колонок выбранной выгрузки, которые нужно привести к общему псевдониму inn при чтении её схемы.

WITH contracts AS (
SELECT regexp_replace(<ИНН_поставщика_из_ЕИС>, '[^0-9]', '', 'g') AS inn, *
FROM <таблица_контрактов_ЕИС>
),
financials AS (
SELECT regexp_replace(<ИНН_из_ГИР_БО>, '[^0-9]', '', 'g') AS inn, *
FROM <таблица_ГИР_БО>
),
registry AS (
SELECT regexp_replace(<ИНН_из_ЕГРЮЛ_ЕГРИП>, '[^0-9]', '', 'g') AS inn, *
FROM <реестровая_выгрузка>
)
SELECT c.*, f.*, r.*
FROM contracts AS c
LEFT JOIN financials AS f USING (inn)
LEFT JOIN registry AS r USING (inn);

После склейки проверяйте ОГРН/ОГРНИП и дату среза. Данные ЕИС отвечают за контракт, ГИР БО — за бухгалтерские формы, а ЕГРЮЛ/ЕГРИП — за реестровую идентичность; pb.nalog.ru не подменяет ни один из этих источников.

5. Скачивание открытых данных​

Для /od.html рабочего curl/wget примера нет, потому что эта страница не публикует файл и не даёт URL загрузки — она ведёт во внешний каталог ФНС. Не подменяйте отсутствующий пример выдуманным URL: выберите нужный набор в каталоге открытых данных ФНС, затем используйте проверенный URL и схему именно его паспорта.

Связанные страницы wiki​

  • Каталог открытых данных ФНС — файловые наборы 7707329152-*, на которые ссылаются отдельные блоки карточки.
  • ГИР БО (bo.nalog.gov.ru) — первичный публичный вход к бухгалтерским формам; углубляет свод доходов и расходов из витрины.
  • ЕГРЮЛ и ЕГРИП — канонические регистрационные сведения и выписки по ИНН/ОГРН/ОГРНИП.
  • Сведения о закупках и контрактах (ЕИС) — типичный источник ИНН поставщика для последующей точечной проверки на pb.nalog.ru.
  • XML-выгрузки ЕИС — машиночитаемый контур контрактов, который безопаснее использовать для массовой склейки.
  • ФНС России — оператор витрины, открытых данных и реестровых публичных сервисов.

Не путать с​

  • Открытые данные ФНС — каталог файлов и паспортов наборов, а не интерактивная карточка субъекта; /od.html лишь ведёт к этому каталогу.
  • ЕГРЮЛ/ЕГРИП — реестровый сервис и выписки, а не агрегированное представление показателей «Прозрачного бизнеса».
  • ГИР БО — источник бухгалтерской отчётности и форм; pb.nalog.ru показывает только сокращённый блок доходов/расходов, если он доступен.
  • Налоговая статистика ФНС — агрегаты по формам и территориям, не построчные карточки налогоплательщиков.

Сводка для машинной обработки​

primary_url: "https://pb.nalog.ru/"
sections:
search:
url: "https://pb.nalog.ru/"
format: "html + internal json"
stable: false
note: "CAPTCHA, rate limit, temporary id/token; no public API contract"
calculator:
url: "https://pb.nalog.ru/calculator.html"
format: "html + internal json"
stable: false
note: "organizations on the general taxation regime; user input is in thousand rubles"
indicator:
url: "https://pb.nalog.ru/indicator.html"
format: "html + internal json"
stable: false
note: "currently cleaning and technical operation, OKVED 81.1/81.2, consent-based disclosure"
opendata:
url: "https://pb.nalog.ru/od.html"
format: "html link to external catalog"
stable: true
note: "does not publish data files on pb.nalog.ru"
grade:
url: "https://pb.nalog.ru/grade.html"
format: "html links"
stable: true
note: "assessment results are accessed through external personal-account services"
formats: [html, json]
join_keys: [inn, ogrn, ogrnip, okved]
update_cadence: "varies by block; registry updates, annual/monthly open-data slices; no single calendar"
machine_access:
public_api: false
internal_json: true
internal_json_contract: false
html_parsing: true
downloadable_files_on_pb_nalog_ru: false
known_limits:
- "CAPTCHA and rate limiting are part of the interface flow"
- "company token and asynchronous request id are temporary and must not be stored as identifiers"
- "empty, absent, no-obligation, and numeric zero are different states"
- "card composition differs for legal entities and individual entrepreneurs"
- "mass data should come from the external FNS open-data catalog or specialised systems"

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

В: Можно ли считать search-proc.json или company-proc.json API ФНС?
О: Нет. Это внутренние адреса, которые использовал веб-интерфейс на дату проверки. Для них нет опубликованной схемы, версии или обещания совместимости; CAPTCHA, лимит и временные токены прямо исключают использование как устойчивого массового API.

В: Если в карточке нет блока долга или доходов, это ноль?
О: Нет. Это может означать отсутствие сведений, другой период, неприменимость блока или отсутствие обязанности. Сохраняйте исходный статус интерфейса и проверяйте файловый набор/ГИР БО по конкретной задаче.

В: Какой ключ использовать для связи с закупками?
О: Нормализованный ИНН, с проверкой ОГРН/ОГРНИП и даты среза. Наименование и временный token для такой связи не подходят.