Частые ошибки валидации EN 16931 и как их исправить (BR-06, BR-CO-10, BR-S-…)
При проверке по EN 16931 структурированный счёт сверяется с определёнными бизнес- и техническими правилами. Если счёт не соответствует требованиям, валидатор указывает код ошибки — например, BR-06, BR-CO-10 или BR-S-09.
Эти коды помогают точно определить, в какой части счёта несоответствие: в данных продавца, в суммах счёта, в разбивке НДС, в округлении или в других структурированных полях.
Как читать коды ошибок валидации
| Группа кодов | Что она обычно значит |
|---|---|
| BR-xx | Базовые правила про обязательные поля счёта |
| BR-CO-xx | Правила взаимного соответствия сумм и данных |
| BR-S-xx | Правила для сделок со стандартной ставкой НДС |
| BR-DEC-xx | Правила про допустимое число знаков после запятой |
| BR-CL-xx | Правила про классификаторы и списки кодов |
BR-06 — в счёте не указано название продавца
Что значит ошибка: в счёте отсутствует название продавца.
Где проблема: в поле Seller name, оно же BT-27, не указано юридическое название продавца.
Почему возникает: в карточке компании в бухгалтерской программе не заполнено юридическое название, либо в XML-файл передаётся только регистрационный номер без названия.
Как исправить: проверьте данные продавца в бухгалтерской программе и убедитесь, что юридическое название заполнено именно в том поле, из которого программа генерирует XML e-счёта.
BR-CO-10 — сумма строк счёта не сходится с указанным итогом строк
Что значит ошибка: сумма нетто строк счёта должна совпадать с указанным в счёте итогом строк без НДС.
Где проблема: суммарная сумма нетто всех строк счёта не сходится с полем "Sum of Invoice line net amount".
Почему возникает: частые причины — расхождения при округлении, неверно рассчитанная сумма строки, пропущенная строка или корректировка, которая видна в системе, но некорректно включена в XML-файл.
Как исправить: сравните сумму нетто каждой строки с общей суммой строк в XML-файле. Особо проверьте скидки, надбавки, количество, цену за единицу и округление.
BR-CO-15 — итог с НДС не сходится с расчётом
Что значит ошибка: итоговая сумма счёта с НДС должна совпадать с суммой без НДС плюс сумма НДС.
Где проблема: поле "Invoice total amount with VAT" не сходится с расчётом "Invoice total amount without VAT" + "Invoice total VAT amount".
Почему возникает: НДС посчитан от неверной базы, в разбивке НДС указана другая сумма, чем в итоге счёта, либо разные поля округлены по-разному.
Как исправить: проверьте три значения: сумму без НДС, сумму НДС и сумму с НДС. Они должны математически сходиться и на уровне XML, а не только визуально в PDF-счёте.
Группа BR-S — ошибки в сделках со стандартной ставкой НДС
Правила BR-S касаются случаев, когда в строке счёта, скидке или надбавке на уровне документа используется стандартная категория НДС.
Что значит ошибка: категория НДС, ставка НДС и разбивка НДС не согласованы между собой.
Частые примеры:
| Код | Что это значит |
|---|---|
| BR-S-01 | Если в счёте есть позиция со стандартной категорией НДС, в разбивке НДС должна быть соответствующая стандартная категория |
| BR-S-05 | Для строки со стандартной категорией НДС ставка НДС должна быть больше нуля |
| BR-S-08 | Облагаемая НДС сумма в разбивке должна сходиться с суммами соответствующих строк, надбавок и скидок |
| BR-S-09 | Сумма НДС должна сходиться с облагаемой НДС суммой, умноженной на ставку НДС |
Почему возникают: у строки указана одна категория НДС, а в разбивке НДС — другая; ставка НДС пустая или некорректная; скидка или надбавка не включена в ту же категорию НДС; сумма НДС округлена иначе, чем предполагают правила валидации.
Как исправить: проверьте, что у каждой строки правильный код категории НДС, ставка НДС и соответствующая запись в разбивке НДС. Если в счёте несколько ставок НДС, каждая ставка должна быть корректно отражена в отдельной записи разбивки НДС.
Группа BR-DEC — слишком много знаков после запятой
Что значит ошибка: в конкретном денежном поле больше знаков после запятой, чем допустимо.
Где проблема: в полях сумм — например, в сумме нетто строки счёта, сумме НДС, итоге без НДС или итоге с НДС.
Почему возникает: система передаёт в XML-файл сумму с тремя и более знаками после запятой, например 121.005, хотя в этом поле допустимы два знака после запятой.
Как исправить: проверьте настройки округления в бухгалтерской программе и убедитесь, что в XML-файл денежные суммы передаются с допустимым числом знаков после запятой.
Главная мысль
Большинство ошибок валидации EN 16931 возникает не потому, что содержание счёта по сути неверно, а потому, что в структурированных данных есть несоответствие между полями.
Частые причины — отсутствующее обязательное поле, неверный код категории НДС, несовпадение между суммами строк и итогами или различное округление.
Валидатор помогает найти конкретное несоответствие: он показывает код ошибки, проблемное поле и объяснение, что нужно исправить в XML-файле или в бухгалтерской программе.
Если ещё не уверены в основах, начните со статьи что такое e-rēķins. Если одни и те же ошибки повторяются в нескольких счетах, причина часто в настройках самой бухгалтерской программы — см. на что обратить внимание при выборе или проверке программы.
Частые вопросы
Что значит ошибка BR-CO-10?
BR-CO-10 значит, что сумма нетто строк счёта не сходится с указанным в счёте итогом строк без НДС. Частые причины — округление, пропущенная строка, некорректная скидка или ошибка при генерации XML.
Что значит ошибка BR-06?
BR-06 значит, что в счёте не указано название продавца (поле BT-27). Нужно проверить, заполнено ли юридическое название продавца в бухгалтерской программе и передаётся ли оно в XML-файл.
Почему счёт не проходит валидацию, хотя суммы выглядят верными?
Причина часто в разнице между тем, что видно в PDF-счёте, и тем, что реально записано в XML-файле. Валидация проверяет именно XML-данные: поля сумм, разбивку НДС, коды категорий, обязательные поля и округление.
Что делать, если одна и та же ошибка повторяется в каждом счёте?
Если ошибка повторяется системно, проблема обычно в настройках бухгалтерской программы или в конфигурации экспорта e-счетов. В этом случае нужно исправлять не каждый счёт по отдельности, а саму программу или логику генерации XML.