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

ГИР БО — публичная бухгалтерская (финансовая) отчётность организаций (bo.nalog.gov.ru)

ПризнакЗначение
Уровень и охватФедеральный; обязательные экземпляры бухгалтерской (финансовой) отчётности экономических субъектов, которые ФНС включает в ГИР БО
Тип доступаHTML-витрина, недокументированный JSON-backend фронтенда и PDF-комплекты; массовый файл «все организации» не заявлен
Основные форматыHTML, JSON, PDF; XML/XBRL как публичная выдача не подтверждены
ОператорФНС России
Режим доступаОткрыт просмотр опубликованных сведений; подача отчётности и подписанный ЭДО-контур в эту карточку не входят

Коротко: по ИНН, ОГРН или названию можно программно получить JSON-строку поиска, внутренний organizationId, периоды и нормализованные показатели форм БО, а по organizationId и detailId — PDF-комплект. Для склейки с закупками, субсидиями и ЕГРЮЛ сохраняйте исходные строковые ИНН и ОГРН, дату публикации и номер корректировки.

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

ИзмерениеЗначение для этой карточки
Дата проверки (last_verified)2026-07-19. Проверены ответ поиска ФНС, сохранённый 13.07.2026, ответ списка БО той же организации и официальный статический bundle фронтенда от 09.03.2026. Прямое TCP-соединение из рабочего контура с bo.nalog.gov.ru:443 19.07.2026 не установилось; поэтому зафиксированные HTTP-заголовки и тела ниже получены из сохранённых ответов исходного сервера, а не выданы за новый live-запуск.
Полнота (data_completeness)Частичная: ресурс не охватывает освобождённые категории и сведения с ограниченным доступом; на карточку организации попадает только опубликованная отчётность.
Машиночитаемость (machine_readability)JSON возвращает поиск и показатели форм без документированного публичного API; PDF доступен отдельным URL. Стабильный публичный XML/XBRL download не подтверждён.
Юридическая значимость (legal_significance)Официальный ресурс ФНС. Публичная JSON-проекция удобна для анализа, но не заменяет юридически значимый экземпляр/проверку подписи.
Задержка обновления (update_lag)Событийная: отчётность представляют не позднее трёх месяцев после окончания периода; в проверенном годовом примере за 2025 год actualBfoDate=2026-03-16, publishedCorrectionDate=2026-03-17. Это пример, а не универсальный SLA публикации.
Глубина архива (archive_depth)В проверочных карточках наблюдались PDF за отдельные периоды 2019–2025; единый горизонт, полнота по одной организации и непрерывность архива порталом не опубликованы.
Лицензия (license_or_terms)Явные условия повторного использования именно для ГИР БО в проверенном контуре не найдены; перед массовым сбором проверьте актуальные условия сайта ФНС.

Описание​

ГИР БО формируется ФНС из представленных экономическими субъектами обязательных экземпляров бухгалтерской (финансовой) отчётности. Публичная страница поиска ведёт на карточку вида organizations-card/<organizationId>; данные карточки не вшиты в HTML, а подгружаются JSON-запросами.

Для практического конвейера это даёт такой путь: ИНН → поиск → organizationId → список БО и корректировок → balance/financialResult → CSV. PDF нужен для визуальной сверки и для реквизитов формы; для извлечения ключевых строк 0710001 и 0710002 PDF парсить не требуется, потому что те же строки уже присутствуют в JSON.

В объём карточки не входят личные кабинеты, ЭДО и внутренние АИС ФНС. Также не следует считать JSON-backend документированным открытым API: он является техническим интерфейсом публичного фронтенда и может измениться без версии или предупреждения.

Оператор​

Федеральная налоговая служба формирует и ведёт ресурс; публичный вход — https://bo.nalog.gov.ru/.

Нормативная причина публикации — ст. 18 Федерального закона № 402-ФЗ «О бухгалтерском учёте». Для рядов в старых формах важен приказ Минфина № 66н с изменениями приказа № 57н; для отчётности начиная с 2025 года сверяйте применимую редакцию ФСБУ 4/2023 (приказ Минфина № 157н), а не переносите название или набор строк старого бланка автоматически. ПБУ 4/99 — исторический ориентир для интерпретации старых периодов. Ст. 102 ГК РФ относится к раскрытию отчётности хозяйственных обществ, но не отменяет исключений и ограничений доступа в ГИР БО.

URL и точки доступа​

Параметры и ответы в таблице ниже извлечены из официального bundle main.08983597.js (сохранённая версия 09.03.2026) и из ответа самого сервиса 13.07.2026. Метод GET указан только там, где он виден в bundle или подтверждён ответом. В URL нет пути /organization/<ИНН>/<ОГРН>: публичная карточка использует внутренний числовой organizationId.

Тип доступаURLМетод и форматЧто подтверждено
Главная / поискhttps://bo.nalog.gov.ru/GET, HTMLHTML-оболочка приложения; карта маршрутов содержит /search и /organizations-card/:id.
Быстрый поискhttps://bo.nalog.gov.ru/advanced-search/organizations/search?query=<строка>&page=0&size=20GET, JSONПодтверждённый запрос: query=5256038700&page=0&size=20; page нулевой, size — размер страницы. Ответ: application/json, content[], pageable, totalElements. Не используйте непроверенные pageSize или нумерацию с 1.
Подсказки поискаhttps://bo.nalog.gov.ru/advanced-search/organizations/autocomplete?query=<строка>GET, JSONВызов присутствует в bundle; тело ответа отдельно не фиксировалось.
Расширенный поискhttps://bo.nalog.gov.ru/advanced-search/organizations?<параметры>GET, JSONФронтенд передаёт name, address, inn, ogrn, okopf, okved, period, bfoPeriodType, knd, gainSumFrom, gainSumTo, published, notPublished, page и другие фильтры интерфейса. Комбинация фильтров не была отдельно прогнана, поэтому это не контракт для промышленной интеграции.
Карточка организацииhttps://bo.nalog.gov.ru/organizations-card/<organizationId>GET, HTMLНапример, https://bo.nalog.gov.ru/organizations-card/2515478; данные карточки загружаются отдельными JSON-запросами.
Наборы отчётности организацииhttps://bo.nalog.gov.ru/nbo/organizations/<organizationId>/bfo/GET, JSON UTF-8Подтверждён ответ для 2515478: массив периодов, идентификатор БО и вложенные typeCorrections[].correction с объектами форм.
PDF-комплект формhttps://bo.nalog.gov.ru/download/bfo/pdf/<organizationId>?period=<ГГГГ>&detailId=<correction.id>GET, PDFВызов формирует фронтенд. Проверенный файл: .../download/bfo/pdf/10006829?period=2024&detailId=52322596 — 200 application/pdf, 1 287 079 байт, имя 0710096_3121007253_2024_000_20250724_594c305a-a3da-49ff-ba38-ca79684050e9.PDF.
Аудиторское заключениеhttps://bo.nalog.gov.ru/download/audit/<correction.id>GET, файлВызов виден в bundle. Для подтверждённой корректировки 54356540 JSON содержит PDF-метаданные (size=1 519 749, исходное имя NO_BUHAZ_...pdf), но сам URL из текущего рабочего контура не скачивался.
Поясненияhttps://bo.nalog.gov.ru/download/clarification/<correction.id>GET, файлВызов виден в bundle. В том же JSON есть fileMetadata пояснений (size=14 306 964, исходное имя NO_BUHPZ_...pdf); ответ этого download URL отдельно не проверялся.

Не добавляйте в скрипт неподтверждённые параметры из старых примеров, в частности kpp, region, priznakusn и dateform: в проверенной версии frontend-поиска их в URL-контракте нет. КПП приходит на уровне organizationInfo комплекта БО, а регион — как текстовое поле записи быстрого поиска.

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

Запись быстрого поиска​

Единица ответа — организация; внутренний id нужен только для следующего обращения к порталу. В контрольном ответе на ИНН 5256038700 значение inn содержало HTML-подсветку: "<strong>5256038700</strong>". Перед проверкой длины и джойном удалите HTML-теги и сохраните исходный ответ для аудита.

Поле / JSON-pathТипОбязательность в проверенном ответеОписаниеКлюч связки
content[].idцелоедаВнутренний organizationId портала; ведёт к /organizations-card/<id> и /nbo/organizations/<id>/bfo/нет, только ключ API
content[].innстрокадаИНН; может содержать <strong> вокруг совпавшей частида: ИНН после очистки HTML
content[].ogrnстрокадаОГРН организациида: ОГРН
content[].shortNameстрокадаКраткое наименованиенет
content[].statusCode, statusDateстрока, ISO-датадаСтатус (ACTIVE в проверенной записи) и дата статусанет
content[].index, region, city, settlement, street, house, building, officeстроки / nullусловноЧасти адреса; region — текст, не код субъекта РФнет
content[].okved2строкаусловноОсновной ОКВЭД 2, например 20.59.5; не заменяет справочник ОКВЭД из ЕГРЮЛнет
content[].okopf, okato, okpo, okfsчисло или nullусловноКлассификационные/статистические реквизиты, часть значений может отсутствоватьнет
content[].bfo.periodстрока ГГГГусловноПоследний период БО, видимый в поисковой выдаченет
content[].bfo.actualBfoDate, actualCorrectionDateISO-датаусловноДата представленной БО и дата актуальной корректировкинет
content[].bfo.gainSumчислоусловноВыручка из актуальной БО; единицу и период сверяйте с деталями формынет
content[].bfo.kndстрокаусловноКНД комплекта, например 0710099нет
content[].bfo.bfoPeriodTypes[]массив целыхусловноТипы периода; в примере [12] для годового периоданет

Период БО, корректировка и формы​

/nbo/organizations/<id>/bfo/ возвращает не объект forms[] и не downloadUrl, а массив периодов. Внутри каждого периода формы находятся в typeCorrections[].correction; URL PDF строится из organizationId, period и correction.id.

Поле / JSON-pathТипОбязательность в проверенном периодеОписаниеКлюч связки
[].idцелоедаИдентификатор комплекта БО за период (bfoId)нет
[].periodстрока ГГГГдаОтчётный годчасть ключа периода
[].organizationInfo.innстрока (10)даИНН юридического лица в комплекте БОда: ИНН
[].organizationInfo.kppстрока (9)да в примереКПП на уровне комплекта; не используйте его вместо ИНН при межсистемном соединениинет
[].organizationInfo.okpo, okopf, okfsстрока / объектусловноРеквизиты организации и расшифровки классификаторовнет
[].actualBfoDate, publishedCorrectionDateISO-датадаДата БО и дата публикации актуальной корректировкичасть происхождения
[].actualCorrectionNumber, publishedCorrectionNumberцелоедаНомер корректировкичасть происхождения
[].typeCorrections[].typeцелоедаКод типа периода; в проверенной годовой записи — 12часть ключа периода
[].typeCorrections[].correction.idцелоедаdetailId для PDF и идентификатор вложенных формтехнический ключ
...correction.periodTypeцелоедаТип периода внутри корректировкинет
...correction.balanceобъект / nullусловноБухгалтерский баланс, okud="0710001"нет
...correction.financialResultобъект / nullусловноОтчёт о финансовых результатах, okud="0710002"нет
...correction.capitalChangeобъект / nullусловноОтчёт об изменениях капитала, okud="0710004"нет
...correction.fundsMovementобъект / nullусловноОтчёт о движении денежных средств, okud="0710005"нет
...correction.targetedFundsUsingобъект / nullусловноОтчёт о целевом использовании средств, okud="0710003"; в проверенной записи отсутствовалнет
...correction.auditReport, clarificationобъект / nullусловноАудиторское заключение / пояснения; метаданные включают размер и оригинальное имя файланет

Для повторяемого набора строк храните как минимум (inn_clean, ogrn, period, periodType, correction.id, publishedCorrectionNumber, publishedCorrectionDate). organizationId и bfoId пригодны для повторного запроса, но не являются межведомственными идентификаторами.

Известные пробелы​

  • В публичном JSON нет надёжного кодированного региона: поле region в поиске текстовое, а в organizationInfo проверенной БО региона отдельным полем нет. Восстанавливайте адрес/субъект через ЕГРЮЛ/ЕГРИП по ИНН или ОГРН; не джойните по названию региона.
  • ОКВЭД в поисковой выдаче может быть null, а в organizationInfo проверенного периода — отсутствовать. Для отраслевой панели первичен актуальный срез ЕГРЮЛ, а не повторное использование старого значения БО.
  • История статусов организации и реорганизаций не является историей отчётности. Храните каждый период и корректировку отдельно и сверяйте юридическую преемственность в ЕГРЮЛ.
  • Единый реестр МСП дополняет ИНН признаком МСП, но не является источником строк БО и не гарантирует поле региона без проверки паспорта своей версии.

Структура файла​

На дату проверки не подтверждён публичный XBRL/XML-файл, который можно получить по найденной организации и положить в ET.iterparse. XML-формат относится к представлению отчётности в ФНС, однако из публичного фронтенда подтверждены JSON и PDF. Поэтому ниже — реальный контракт ответа, а не выдуманная XBRL-таксономия или XML-дерево.

GET /advanced-search/organizations/search
└── content[]
├── id, inn, ogrn, shortName, statusCode, okved2, ...
└── bfo { period, knd, gainSum, bfoPeriodTypes[], ... }

GET /nbo/organizations/<organizationId>/bfo/
└── period[]
├── organizationInfo { inn, kpp, okopf, okfs, okpo, ... }
└── typeCorrections[]
└── correction
├── id, periodType, datePresent, correctionVersion
├── balance { okud: "0710001", current1100, previous1100, ... }
├── financialResult { okud: "0710002", current2110, previous2110, ... }
├── capitalChange / fundsMovement / targetedFundsUsing
└── auditReport / clarification { fileMetadata { size, originalName, ... } }

Контрольная запись, сокращённая из официального ответа 13.07.2026 (ИНН и названия сохранены, потому что это публичная карточка организации):

{
"period": "2025",
"organizationInfo": {
"inn": "5256038700",
"kpp": "526201001",
"okpo": "57184037"
},
"typeCorrections": [{
"type": 12,
"correction": {
"id": 54356540,
"periodType": 12,
"balance": {
"okud": "0710001",
"current1100": 3905648.0,
"current1200": 10784618,
"current1600": 14690266
},
"financialResult": {
"okud": "0710002",
"current2110": 6390649.0,
"current2400": 45194.0
}
}
}]
}

Не приписывайте этому JSON версию XML/XSD, кодировку исходного XML, namespace или контрольную сумму: портал их в подтверждённой публичной выдаче не раскрыл. Если появится проверенный файл «исходные файлы», сначала зафиксируйте его Content-Type, имя, SHA-256, упаковку и фактический корень XML, затем добавьте отдельный XML-конвейер.

Семантика полей и показатели​

Имена current<код>, previous<код> и beforePrevious<код> — значения одной строки формы на текущую, предыдущую и (когда есть) предшествующую дату/период. Не превращайте null в ноль: null в JSON означает, что строка не представлена в данной форме или не раскрыта. В проверенном bundle фронтенд отдельно переключает отображение рядов для периодов с 2025 года, поэтому состав строк и их названия надо версионировать по отчётному периоду.

JSON-суффикс / строкаСмысл в формеКак использовать
1100Итого внеоборотных активовЧасть активов на отчётную дату; не складывайте с 1200, если уже используете 1600.
1200Итого оборотных активовЧасть активов на отчётную дату.
1300Итого капитал и резервыСобственный капитал, а не выручка или денежный поток.
1400Итого долгосрочных обязательствОбязательства с долгосрочным горизонтом в форме.
1500Итого краткосрочных обязательствОбязательства с краткосрочным горизонтом в форме.
1600Баланс — активКонтрольный итог актива; в проверенной записи равен 1700.
1700Баланс — пассивКонтрольный итог пассива; сверка равенства с 1600 — техническая, не аудиторская проверка.
2110ВыручкаДля годового periodType=12 — за отчётный год; для промежуточного — за соответствующий накопленный период.
2120Себестоимость продажДля валовой прибыли сопоставляется с 2110 по одному периоду и одной корректировке.
2100, 2200Валовая прибыль (убыток); прибыль (убыток) от продажПромежуточные результаты; не путать с чистой прибылью.
2300, 2410, 2400Прибыль (убыток) до налогообложения; налог на прибыль; чистая прибыль (убыток)2400 — итог после налогообложения и прочих влияний; не выводите его как налоговую базу.

В стандартном бланке единица показателей задаётся в заголовочной части (часто код ОКЕИ 384 — тысячи рублей), но в подтверждённом JSON отдельного поля единицы нет. JSON-числа и gainSum используйте как значения в единице конкретной формы, а единицу подтверждайте PDF-комплектом или исходным документом; не домножайте автоматически на 1 000 без этой проверки. Валюта отдельным полем в JSON также не найдена.

Тип периода хранится числом: frontend использует 3, 6, 9, 12 для квартального, полугодового, девятимесячного и годового горизонта соответственно. В контрольной записи period="2025" и periodType=12; это годовая БО за 2025 год. Для временного ряда ключа одного period недостаточно: включайте periodType, иначе годовой и промежуточный срезы одного года смешаются.

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

Обновление происходит по представлению и обработке отчётности, а не как регулярный ежемесячный релиз. По разъяснениям ФНС обязательный экземпляр подают не позднее трёх месяцев после окончания отчётного периода; исправления и аудиторский отчёт могут появиться позднее. Для загрузчика это означает повторное чтение карточек после окончания срока подачи и ведение истории correction.id/дат публикации, а не перезапись единственной строки «за год».

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

  • Витрина предназначена для поиска и просмотра отдельных организаций. Подтверждённого URL одного полного файла ГИР БО или документированного массового API нет.
  • Из рабочего контура 19.07.2026 TCP-подключение к bo.nalog.gov.ru:443 не завершилось за 20–30 секунд; это наблюдение среды проверки, а не доказательство rate-limit сайта. CAPTCHA, 429 и специальные HTTP rate-limit-заголовки в доступных ответах не подтверждены. Планировщик должен иметь малую параллельность, backoff и журналировать HTTP-статус вместо обхода ограничений.
  • ФНС прямо указывает среди освобождённых от представления в ГИР БО организации бюджетной сферы, Банк России, религиозные организации, отчитывающихся в Банк России, организации с гостайной и случаи, установленные Правительством РФ; последняя отчётность реорганизуемого или ликвидируемого юрлица также не представляется. Перед выводом об отсутствии организации проверяйте актуальный перечень на странице «О ресурсе БФО» ФНС и применимую редакцию 402-ФЗ.
  • Ограничение доступа к сведениям и отсутствие строки в поиске — не равнозначны отсутствию бухгалтерской отчётности у организации.

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

Контрольный HTTP-запрос​

Ниже приведён прямой live-запрос, соответствующий подтверждённому контракту. Команда не переименовывает page в pageSize и не подставляет несуществующий downloadUrl:

curl -sS -D search.headers \
-H 'Accept: application/json' \
-A 'Mozilla/5.0' \
'https://bo.nalog.gov.ru/advanced-search/organizations/search?query=5256038700&page=0&size=20' \
-o search.json
jq '.content[0] | {id, inn, ogrn, shortName, bfo}' search.json

Контракт и результат подтверждены сохранённым ответом исходного сервиса от 13.07.2026 (его URL и параметры совпадают с командой): HTTP 200, Content-Type: application/json, передача chunked; в content[0] получены id=2515478, inn="<strong>5256038700</strong>", ogrn="1025202263327", bfo.period="2025", pageable.pageNumber=0, pageable.pageSize=20. Повторный live-запуск именно из рабочего контура 19.07.2026 не удался на TCP-этапе, поэтому перед промышленным запуском повторите эту команду из своей сети и сохраните свежие заголовки.

Проверенный PDF-ответ другого публичного примера показывает реальный формат скачивания: URL https://bo.nalog.gov.ru/download/bfo/pdf/10006829?period=2024&detailId=52322596 вернул 200 application/pdf, 1 287 079 байт, PDF 1.5 на 3 страницах, SHA-256 b8ad99f146586d6d0cd3763b82f4dad2b8a6e1f8fe6d7a963bf4fa4e45ff4fe3. Это контроль конкретного исторического файла, а не контрольная сумма всех PDF ресурса.

Минимальный Python-конвейер​

Код ниже повторяет подтверждённую структуру HTTP-ответов и формирует CSV из JSON, а не из PDF. Значения строки вывода получены разбором контрольного ответа, приведённого выше. Вызовы к live-хосту из среды редактора не выполнялись из-за сетевого тайм-аута; поэтому HTTP-часть должна быть перепроверена перед запуском, а вот пути JSON и выборка полей проверены на фактических ответах ФНС.

from __future__ import annotations

import csv
import re
from pathlib import Path

import requests

BASE = "https://bo.nalog.gov.ru"
HEADERS = {"Accept": "application/json", "User-Agent": "Mozilla/5.0"}


def get_json(session: requests.Session, path: str, **params):
response = session.get(f"{BASE}{path}", params=params, timeout=30)
response.raise_for_status()
if "application/json" not in response.headers.get("Content-Type", ""):
raise RuntimeError(f"expected JSON, got {response.headers.get('Content-Type')!r}")
return response.json()


def plain_inn(value: str) -> str:
"""Поиск ФНС может вернуть <strong>...</strong> вокруг совпадения."""
return re.sub(r"<[^>]+>", "", value or "")


inn = "5256038700"
with requests.Session() as session:
session.headers.update(HEADERS)
found = get_json(
session,
"/advanced-search/organizations/search",
query=inn,
page=0, # нулевая страница
size=20,
)
item = next(x for x in found["content"] if plain_inn(x["inn"]) == inn)
organization_id = item["id"]

periods = get_json(session, f"/nbo/organizations/{organization_id}/bfo/")
period = next(x for x in periods if x["period"] == "2025")
annual = next(x for x in period["typeCorrections"] if x["type"] == 12)
correction = annual["correction"]
balance = correction["balance"]
result = correction["financialResult"]

pdf_url = (
f"{BASE}/download/bfo/pdf/{organization_id}"
f"?period={period['period']}&detailId={correction['id']}"
)
with Path("girbo-key-metrics.csv").open("w", newline="", encoding="utf-8") as out:
writer = csv.DictWriter(
out,
fieldnames=[
"inn", "ogrn", "organization_id", "period", "period_type",
"detail_id", "published_correction_date", "current1100", "current1200",
"current1300", "current1400", "current1500", "current1600", "current1700",
"current2110", "current2120", "current2200", "current2300", "current2400",
"pdf_url",
],
)
writer.writeheader()
writer.writerow({
"inn": plain_inn(item["inn"]),
"ogrn": item["ogrn"],
"organization_id": organization_id,
"period": period["period"],
"period_type": correction["periodType"],
"detail_id": correction["id"],
"published_correction_date": period.get("publishedCorrectionDate"),
**{key: balance.get(key) for key in (
"current1100", "current1200", "current1300", "current1400",
"current1500", "current1600", "current1700",
)},
**{key: result.get(key) for key in (
"current2110", "current2120", "current2200", "current2300", "current2400",
)},
"pdf_url": pdf_url,
})
print(out.name)

Фактическая строка контрольного ответа (поля сокращены для ширины):

girbo-key-metrics.csv
5256038700,1025202263327,2515478,2025,12,54356540,2026-03-17,
3905648.0,10784618,1448961.0,5267577.0,7973728.0,14690266,14690266,
6390649.0,3925141.0,801536.0,90701.0,45194.0

Если потребуется исходный XML, не заменяйте его догадкой об XBRL. В bundle есть кнопка «исходные файлы», которая вызывает GET /download/original/<correction.id>?isCb=false, но формат, упаковка, ответ и наличие XML у этой кнопки в публичном контуре не были подтверждены. Следующий фрагмент — псевдокод, не проверено; применять его можно только после фиксации реального ZIP/XML и его SHA-256:

# НЕ ПРОВЕРЕНО: возможно, endpoint вернёт не ZIP и не XML.
# archive = session.get(f"{BASE}/download/original/{correction['id']}",
# params={"isCb": "false"}, timeout=60)
# archive.raise_for_status()
# ... определить Content-Type и упаковку; лишь затем XML ET.iterparse(...)

Склейка с закупками и субсидиями​

Ниже только обозначение ключей — псевдокод, не проверено как имена колонок конкретных файлов. Для каждого выпуска ЕИС и реестра соглашений проверьте фактический паспорт/JSON-схему.

bo.inn_clean → zakupki.supplier_inn # [ЕИС: закупки](/data-sources/federal/procurement)
bo.inn_clean → subsidy.recipient_inn # [реестр соглашений](/data-sources/federal/subsidy)
bo.inn_clean → egrul.inn # статус, адрес, ОКВЭД на дату среза
bo.inn_clean → rsmp.inn # только признак/категория МСП после проверки версии набора

После джойна сверяйте также ogrn, дату среза и статус в ЕГРЮЛ. Не соединяйте строки БО с закупкой по наименованию, КПП или текстовому региону, если есть ИНН.

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

Не путать с​

  • Налоговая статистика ФНС — агрегированные формы налоговой статистики, а не финансовые строки отдельной организации.
  • Открытые данные bus.gov.ru — публичные сведения и отчётность учреждений; это не заменитель ГИР БО для обычного юридического лица.
  • e-disclosure.ru — раскрытие эмитентов и ценных бумаг; пересекается с ГИР БО лишь для части организаций и имеет другой состав документов.

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

primary_url: "https://bo.nalog.gov.ru/"
verified_at: "2026-07-19"
data_source_kind: "mixed"
formats: ["html", "json", "pdf"]
search_endpoint: "https://bo.nalog.gov.ru/advanced-search/organizations/search"
search_method: "GET"
search_parameters:
query: "строка поиска: ИНН, ОГРН или наименование"
page: "zero-based integer; confirmed 0"
size: "integer; confirmed 20"
search_record_path: "$.content[*]"
organization_id_path: "$.content[*].id"
bfo_endpoint_template: "https://bo.nalog.gov.ru/nbo/organizations/{organizationId}/bfo/"
bfo_record_path: "$[*].typeCorrections[*].correction"
pdf_endpoint_template: "https://bo.nalog.gov.ru/download/bfo/pdf/{organizationId}?period={period}&detailId={correctionId}"
join_keys: ["inn", "ogrn"]
time_key: ["period", "periodType", "correction.id", "publishedCorrectionDate"]
form_taxonomy: "Не подтверждена как публичная XBRL/XML-таксономия; API содержит нормализованные JSON-поля current<код>/previous<код>."
update_cadence: "по мере представления и обработки отчётности; не выровнено по календарю"
automation_caveat: "JSON backend недокументирован; перед промышленным запуском повторно проверить live-ответы и условия сайта"

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

В: Можно ли получить все строки баланса без OCR или парсинга PDF?

О: Да, для проверенного случая объекты balance и financialResult в JSON уже содержат current<код>, previous<код> и beforePrevious<код>. PDF всё равно нужен для визуальной и единичной юридической сверки единицы измерения, подписи и состава комплекта.

В: Есть ли у ГИР БО документированный API или дамп всех организаций?

О: На дату проверки не подтверждены ни публичная спецификация API, ни единый полный файл. Точки JSON — технические вызовы веб-фронтенда, поэтому скрипт должен фиксировать версию контракта, обрабатывать ошибки и повторно проверяться после обновления сайта.

В: Как связать БО с поставщиком из закупки?

О: Нормализуйте content[].inn (удалите HTML-подсветку), соедините с ИНН участника конкретной выгрузки ЕИС и подтвердите ОГРН/статус через ЕГРЮЛ. Один organizationId ГИР БО за пределами портала не используйте.

В: Почему организация не находится в ГИР БО, хотя есть в ЕГРЮЛ?

О: ЕГРЮЛ фиксирует регистрацию, а ГИР БО — опубликованные обязательные экземпляры. Возможны исключение из круга представления, ограничение доступа, отсутствие ещё не обработанной отчётности или иной правовой статус; это не доказательство прекращения организации.

В: Чем это отличается от bus.gov.ru и e-disclosure.ru?

О: bus.gov.ru относится к учреждениям и бюджетному учёту, а e-disclosure.ru — к раскрытию эмитентов. ГИР БО — ресурс ФНС с бухгалтерской отчётностью представивших её экономических субъектов; совпадение организации в двух витринах не делает наборы взаимозаменяемыми.