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

О структуре начисления по налогу на добавленную стоимость (Форма № 1-НДС)

ПризнакЗначение
Уровень и охватФедеральный; территориальные агрегаты формы № 1-НДС в CSV, выпуски и их история — в паспорте ФНС
Тип доступаСтраница набора на сайте ФНС со ссылками на файлы; публичного стабильного API для набора не заявлено
Основные форматыCSV
ОператорФНС России
Режим доступаОткрытое скачивание по условиям лицензии на открытые данные на витрине ФНС

Коротко: О структуре начисления по налогу на добавленную стоимость (Форма № 1-НДС) — опубликованные ФНС территориальные агрегаты показателей НДС. Для загрузки каждой версии нужны оба файла из её паспорта: data-*.csv со значениями и structure-*.csv с русскими описаниями и форматами колонок.

Описание​

Карточка относится к каталогу открытых данных ФНС (идентификатор 7707329152-1nds). Официальный паспорт набора — единственная точка, с которой следует начинать новый сбор: он публикует текущие URL и список предыдущих выпусков. Датированный URL — ссылка на конкретный выпуск, а не стабильный URL «latest».

В паспорте, проверенном 2026-07-18, указаны текущий выпуск 20260201, первое опубликование 2017-09-04 и 39 предыдущих ссылок на выпуски. Это не устанавливает периодичность: расписание публикации в проверенном паспорте не раскрыто. В объём карточки не входят внутренние сервисы администрирования, индивидуальные декларации или выписки из реестров.

Оператор​

Федеральная налоговая служба — витрина открытых данных: https://www.nalog.gov.ru/rn77/opendata/

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

Тип доступаURLФормат
Паспорт набора (текущие и исторические файлы)https://www.nalog.gov.ru/opendata/7707329152-1nds/HTML-страница ФНС; выгрузки CSV
Данные проверенного выпуска 20260201https://data.nalog.ru/opendata/7707329152-1nds/data-20260201-structure-20260201.csvCSV, 85 строк данных, 209 полей
Структура проверенного выпуска 20260201https://data.nalog.ru/opendata/7707329152-1nds/structure-20260201.csvCSV, 209 описаний полей
Предыдущий выпуск из паспортаhttps://data.nalog.ru/opendata/7707329152-1nds/data-20260101-structure-20260101.csvCSV, выпуск 20260101 для сравнения
Структура предыдущего выпускаhttps://data.nalog.ru/opendata/7707329152-1nds/structure-20260101.csvCSV, 208 описаний полей
Каталог всех наборов ФНСhttps://www.nalog.gov.ru/rn77/opendata/HTML; CSV «Реестр наборов открытых данных ФНС России»

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

  • Одна строка проверенного выпуска 20260201 — набор показателей формы № 1-НДС для значения GA; русское описание GA в структуре — «Субъект РФ». Это территориальный агрегат, а не запись налогоплательщика или декларация.
  • GA имеет формат text и содержит названия субъектов. В схеме нет подтверждённого машиночитаемого кода субъекта РФ, а также нет ИНН, ОКВЭД или идентификатора отдельной декларации. Поэтому CSV нельзя трактовать как реестр налогоплательщиков и нельзя автоматически соединять с внешними данными по названию региона.
  • GB и G1–G207 имеют опубликованный формат integer, но смысл, единица и временной охват берутся для каждого кода из русской колонки russian description в парном structure-*.csv. Английская колонка вспомогательная.
  • В выпуске 20260201 GA уникален среди 85 строк. Это естественный идентификатор территориальной записи только в этом выпуске, не универсальный код региона. Рекомендуемый технический ключ: (release_version, GA); release_version храните из имени/даты проверенного выпуска, поскольку его нет среди колонок данных.

Файлы, версии и гранулярность​

АртефактНазначениеКак использовать
паспорт набораметаданные, актуальные и исторические URLвсегда читать первым
data-*.csvзначения показателейодин срез опубликованной формы
structure-*.csvконтракт колонокобязательная проверка перед чтением данных

Проверка от 2026-07-18 относится именно к паре файлов data-20260201-structure-20260201.csv и structure-20260201.csv. В ней 85 строк данных и 209 полей; строка объединяет показатели по одному текстовому значению «Субъект РФ». Отдельные организации, декларации и идентификаторы налогоплательщиков не опубликованы: некоторые поля считают число деклараций или налогоплательщиков, но сами эти объекты в CSV отсутствуют.

Дата 20260201 — версия/дата выпуска файла, а не отчётный период всех метрик. Часть полей прямо называет периоды IV квартал 2025 г. — I–III кварталы 2026 г., часть — дату «на 01.01.2027», а для остальных период в опубликованной структуре не раскрыт. Нельзя подменять эти различия одной датой релиза.

Чтобы получить исторический файл, выберите ссылку в поле «Гиперссылки (URL) на предыдущие релизы набора данных» паспорта, затем скачайте структуру того же датированного выпуска. Не конструируйте URL и не принимайте дату в старой ссылке за актуальную: перед следующим сбором снова прочитайте паспорт.

Контракт CSV​

dataset_id: "7707329152-1nds"
official_page: "https://www.nalog.gov.ru/opendata/7707329152-1nds/"
verified_at: "2026-07-18"
release:
data_url: "https://data.nalog.ru/opendata/7707329152-1nds/data-20260201-structure-20260201.csv"
structure_url: "https://data.nalog.ru/opendata/7707329152-1nds/structure-20260201.csv"
data_version: "20260201"
structure_version: "20260201"
data_sha256: "36f86b972f22ddce92f9178501b848d3e643d5e08c656cf0273dd5cc02270545"
structure_sha256: "17e311380364f41ddcf41bd074d52b6a6a48e9a929bec17cc58cea7661d34429"
file_format:
format: "csv"
encoding: "UTF-8"
bom: false
delimiter: ","
quotechar: '"'
header: true
record_newlines: "data: LF; structure: CRLF"
record_grain: "одна территориальная агрегированная запись формы № 1-НДС на текстовое значение GA («Субъект РФ»)"
row_count: 85
field_count: 209
natural_key:
fields: ["release_version", "GA"]
status: "GA уникален только в проверенном выпуске 20260201; release_version — внешнее поле происхождения, не колонка CSV"
time_coverage:
source: "русские описания отдельных полей в structure-20260201.csv"
caveat: "20260201 — дата версии файла; не заменяет периоды и даты, названные в описаниях метрик"
schema_validation:
header_must_match_structure: true
expected_field_order: ["GA","GB","G1","G2","G3","G4","G5","G6","G7","G8","G9","G10","G11","G12","G13","G14","G15","G16","G17","G18","G19","G20","G21","G22","G23","G24","G25","G26","G27","G28","G29","G30","G31","G32","G33","G34","G35","G36","G37","G38","G39","G40","G41","G42","G43","G44","G45","G46","G47","G48","G49","G50","G51","G52","G53","G54","G55","G56","G57","G58","G59","G60","G61","G62","G63","G64","G65","G66","G67","G68","G69","G70","G71","G72","G73","G74","G75","G76","G77","G78","G79","G80","G81","G82","G83","G84","G85","G86","G87","G88","G89","G90","G91","G92","G93","G94","G95","G96","G97","G98","G99","G100","G101","G102","G103","G104","G105","G106","G107","G108","G109","G110","G111","G112","G113","G114","G115","G116","G117","G118","G119","G120","G121","G122","G123","G124","G125","G126","G127","G128","G129","G130","G131","G132","G133","G134","G135","G136","G137","G138","G139","G140","G141","G142","G143","G144","G145","G146","G147","G148","G149","G150","G151","G152","G153","G154","G155","G156","G157","G158","G159","G160","G161","G162","G163","G164","G165","G166","G167","G168","G169","G170","G171","G172","G173","G174","G175","G176","G177","G178","G179","G180","G181","G182","G183","G184","G185","G186","G187","G188","G189","G190","G191","G192","G193","G194","G195","G196","G197","G198","G199","G200","G201","G202","G203","G204","G205","G206","G207"]
units:
monetary: "тыс. рублей — только для полей, где это указано по-русски в структуре"
counts: "единиц — описания различают декларации и налогоплательщиков; G2 прямо назван количеством деклараций"
not_disclosed: ["G187", "G188", "G189", "G190", "G191", "G195"]
caveats:
- "Не использовать split(','): поля заключены в двойные кавычки, а описания структуры содержат запятые."
- "integer не означает общую единицу и не запрещает отрицательные значения."
- "Не суммировать итоги, ставки, вычеты и детализирующие графы без подтверждённой методики."

Файлы в этой паре — UTF-8 без BOM. В data-*.csv первая строка — заголовок, далее 85 записей, переводы строк LF; в structure-*.csv есть заголовок и 209 описаний, переводы строк CRLF. В обоих файлах используются запятая и двойные кавычки; все заголовки и значения проверенного файла данных заключены в кавычки. Стандартный CSV-парсер обязателен: в structure-*.csv русские и английские описания содержат запятые, поэтому split(',') разрушит контракт.

Семантика полей, единицы и время​

Коды GA, GB, G1…G207 — технические коды ФНС, а не самостоятельно заданные имена показателей. Точное назначение берите из соответствующей строки structure-20260201.csv, прежде всего из russian description; не исправляйте и не дополняйте его «по смыслу». В структуре один текстовый код GA и 208 полей integer.

Что указано в русском описании структуры 20260201ПолейКоды
Единица «тыс. рублей»148GB, G1, G3–G5, G7–G9, G11–G13, G15–G17, G19–G21, G23–G25, G27–G29, G31–G34, G36–G39, G41–G43, G45–G47, G49–G51, G53–G55, G57–G59, G61–G62, G64–G65, G67–G68, G70–G71, G73–G74, G76–G77, G79–G80, G82–G83, G85–G86, G88–G89, G91–G92, G94–G95, G97–G98, G100–G101, G103–G104, G106–G107, G109–G110, G112–G113, G115–G116, G118–G119, G121–G122, G124–G125, G127–G128, G130–G131, G133–G134, G136, G138–G151, G155–G164, G167–G169, G172–G186, G196–G201, G205–G207
Единица «единиц» (в описании — число деклараций или налогоплательщиков)54G2, G6, G10, G14, G18, G22, G26, G30, G35, G40, G44, G48, G52, G56, G60, G63, G66, G69, G72, G75, G78, G81, G84, G87, G90, G93, G96, G99, G102, G105, G108, G111, G114, G117, G120, G123, G126, G129, G132, G135, G137, G152–G154, G165–G166, G170–G171, G192–G194, G202–G204
Единица не раскрыта в опубликованной структуре6G187–G191, G195

Следовательно, формат integer нельзя интерпретировать как «тыс. рублей» или как число деклараций без конкретного русского описания. Отрицательные значения также не нужно отбрасывать: в проверенном выпуске обнаружены 55 отрицательных значений в 25 денежных полях (G7, G15, G27, G31, G36, G37, G45, G49, G64, G70, G73, G76, G82, G85, G109, G112, G143, G144, G150, G151, G161, G177, G184, G190, G191). Их наличие подтверждено опубликованным CSV; структура задаёт лишь integer и не раскрывает отдельного правила знака или экономической причины, поэтому загрузчик должен принимать знаковое целое, а интерпретацию не достраивать.

Русское описание прямо указывает отчётные периоды «IV кв. 2025 г. – I-III кв. 2026 г.» для 48 кодов: G1, G4–G5, G8–G9, G12–G13, G16–G17, G20–G21, G24–G25, G28–G29, G33–G34, G38–G39, G42–G43, G46–G47, G50–G51, G55, G58–G59, G65, G68, G71, G74, G77, G80, G83, G86, G89, G92, G95, G98, G101, G104, G107, G110, G113, G119, G131, G134. Для G137, G154, G166, G171, G194 и G204 указано состояние на 01.01.2027. Для остальных 154 числовых полей отчётный период в опубликованной структуре не раскрыт.

Проверка согласованности выпуска 20260201​

  • В structure-20260201.csv после строки заголовка 209 полей; в заголовке data-20260201-structure-20260201.csv тоже 209. Их коды и порядок совпадают полностью: GA, GB, затем G1…G207.
  • Все 85 строк данных содержат по 209 значений. Среди 17 680 значений 208 числовых колонок нет пустых и нечисловых строк; все проходят проверку знакового целого -?\\d+.
  • GA заполнен и уникален во всех 85 строках. Это подтверждает естественный идентификатор записи только для данного релиза, но не подтверждает его как долговременный или машиночитаемый код субъекта.
  • Контрольные суммы и параметры диалекта приведены в разделе «Контракт CSV». При повторной загрузке проверяйте их для зафиксированной версии; для нового выпуска фиксируйте новые значения после чтения паспорта.

Безопасное преобразование wide CSV в long-формат​

Храните технический код, русское описание и формат рядом со значением. Код ниже рассчитан на проверенную пару 20260201, использует штатный модуль csv, отвергает несогласованный заголовок и не преобразует отрицательные значения в ноль. В long-таблицу не включается GA как метрика: он остаётся географическим текстовым измерением.

import csv
import re
from pathlib import Path

DATA = Path("data-20260201-structure-20260201.csv")
STRUCTURE = Path("structure-20260201.csv")
RELEASE_VERSION = "20260201"


def read_csv_utf8(path: Path) -> list[list[str]]:
if path.read_bytes().startswith(b"\xef\xbb\xbf"):
raise ValueError(f"{path}: BOM не соответствует проверенному выпуску")
with path.open("r", encoding="utf-8", newline="") as source:
return list(csv.reader(source, delimiter=",", quotechar='"', strict=True))


structure_rows = read_csv_utf8(STRUCTURE)
structure_header, *structure_rows = structure_rows
if structure_header != ["field name", "english description", "russian description", "format"]:
raise ValueError("Неожиданный заголовок structure CSV")
if len({row[0] for row in structure_rows}) != len(structure_rows):
raise ValueError("Повтор технического кода в структуре")

schema = {
code: {"description_ru": description_ru, "format": field_format}
for code, _description_en, description_ru, field_format in structure_rows
}
expected_codes = list(schema) # порядок именно из structure того же релиза

data_rows = read_csv_utf8(DATA)
data_header, *data_rows = data_rows
if data_header != expected_codes:
raise ValueError("Заголовок data CSV не совпадает со structure того же релиза")
if any(len(row) != len(data_header) for row in data_rows):
raise ValueError("Строка data CSV имеет неверное число полей")

with Path("1nds-20260201-long.csv").open("w", encoding="utf-8", newline="") as target:
writer = csv.DictWriter(
target,
fieldnames=[
"release_version", "GA", "metric_code", "value_integer",
"format", "unit_as_published", "description_ru",
],
)
writer.writeheader()
for row in data_rows:
record = dict(zip(data_header, row, strict=True))
for code in data_header:
if code == "GA":
continue
value = record[code]
field = schema[code]
if field["format"] != "integer" or not re.fullmatch(r"-?\d+", value):
raise ValueError(f"{code}: нарушен формат integer: {value!r}")
description = field["description_ru"]
unit = (
"тыс. рублей" if "тыс" in description.lower()
else "единиц" if (
"(единиц)" in description.lower()
or "Количество деклараций" in description
)
else "не раскрыто в опубликованной структуре"
)
writer.writerow({
"release_version": RELEASE_VERSION,
"GA": record["GA"],
"metric_code": code,
"value_integer": int(value), # отрицательные значения сохраняются
"format": field["format"],
"unit_as_published": unit,
"description_ru": description,
})

Этот long-формат даёт 17 680 строк для выпуска 20260201 (85 × 208). Не агрегируйте его механически: один и тот же экономический смысл может быть одновременно в итоговой и детализирующей графах; показатели по разным ставкам, вычеты и итоги не следует складывать между собой, пока методика ФНС не подтверждает аддитивность. Для межвыпускного анализа сохраняйте отдельную структуру каждого выпуска и сопоставляйте сначала русские описания, а не только технические коды.

Изменение схемы между 20260101 и 20260201​

Для сравнения использованы предыдущие URL из того же паспорта: data-20260101-structure-20260101.csv и парный structure-20260101.csv. В 20260101 — 208 полей и 85 строк, в 20260201 — 209 полей и 85 строк.

Проверка структурыРезультат
ДобавленияДобавлен G207
УдаленияНет
Перестановка общих кодовНет
Изменение формата общих полейНет: GA — text, остальные общие поля — integer
Изменение описанийИзменились русские и английские описания 85 общих кодов

Среди изменений описаний есть сдвиг названных отчётных периодов с IV кв. 2024 г. — I–III кв. 2025 г. на IV кв. 2025 г. — I–III кв. 2026 г., обновление дат «на 01.01.2027» и более существенное переназначение описаний в хвосте G195–G206; новый G207 завершает последовательность. Поэтому перед каждой загрузкой обязательна проверка заголовка на парную структуру: она отловит добавление/удаление/перестановку. Но одной проверки заголовка недостаточно для сохранения смысла — одинаковый код может получить новое официальное описание; храните и сравнивайте russian description у структуры того же выпуска.

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

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

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

  • Условия использования — открытая лицензия ФНС на открытые данные, текст на странице витрины (в т.ч. требования к указанию источника и неискажению метаданных обновления).
  • Это агрегированная территориальная статистика, а не микроданные, декларации или реестр налогоплательщиков.
  • Технические коды, единицы и даты берите из structure-*.csv того же выпуска; не выводите их из имени столбца, типа integer или даты файла.
  • Нельзя безопасно делать соединение с внешним классификатором субъектов только по GA: это текстовое название, а машиночитаемый код в опубликованной структуре отсутствует.
  • Не подменять эту выгрузку другой агрегированной налоговой статистикой ФНС — см. Налоговая статистика ФНС и при необходимости госрегистрация.

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

Команды ниже проверены для зафиксированного выпуска 20260201; перед новым сбором заменяйте URL только после чтения паспорта.

curl -fL 'https://data.nalog.ru/opendata/7707329152-1nds/data-20260201-structure-20260201.csv' \
-o data-20260201-structure-20260201.csv
curl -fL 'https://data.nalog.ru/opendata/7707329152-1nds/structure-20260201.csv' \
-o structure-20260201.csv
shasum -a 256 data-20260201-structure-20260201.csv structure-20260201.csv

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

Не путать с​

  • Налоговая статистика ФНС — прежде всего агрегированные таблицы отчётности по методике ФНС, не обязательно тот же срез и частота, что у машиночитаемого набора 7707329152-1nds.