Nordlet

← Блог

Соответствие стандарту EN 16931: проверка Peppol, Factur-X и ZUGFeRD на соответствие официальным правилам

Мы пропустили файлы счетов-фактур, создаваемые Nordlet, через официальные правила валидации EN 16931. Файлы Peppol и румынские файлы проходят проверку. Файлы Factur-X нарушают два правила, и в этой статье они названы по имени.

Nordlet Team · · 4 мин. чтения

EN 16931 — это европейский стандарт для содержания электронного счета-фактуры (electronic invoice). Он определяет реквизиты хозяйственной операции (business terms), которые содержит счет-фактура (продавец, покупатель, позиции, расшифровка НДС, итоговые суммы), и правила учета, которым эти реквизиты должны соответствовать: например, что итоговая сумма НДС по расшифровке сходится с общей суммой счета-фактуры. Стандарт может быть оформлен в двух форматах XML: UBL 2.1 и UN/CEFACT Cross Industry Invoice (CII).

Большинство европейских форматов электронного выставления счетов построены на базе EN 16931:

  • Peppol BIS Billing 3.0 — это стандарт EN 16931 в формате UBL с дополнительными правилами Peppol.
  • Румынский e-Factura (CIUS-RO) — это EN 16931 в формате UBL с дополнительными румынскими правилами.
  • Factur-X (Франция) и ZUGFeRD 2.3 (Германия) содержат EN 16931 в формате CII. В профиле "EN 16931", который формирует Nordlet, оба формата используют одинаковый XML.

Если счет-фактура нарушает какое-либо правило EN 16931, он также нарушает любой формат, созданный на его основе.

Как мы проводили проверку

Европейская комиссия ссылается на правила валидации, публикуемые техническим комитетом CEN по электронному выставлению счетов (CEN/TC 434) на GitHub. Мы использовали самую свежую версию 1.3.17 от 12 октября 2026 года как для UBL, так и для CII. Правила написаны на языке Schematron и скомпилированы в XSLT, а мы запускали их с помощью XSLT-процессора Saxon-HE 12.5.

Файлы счетов-фактур были сгенерированы текущим кодом Nordlet на основе тестовых данных. Продавец — литовская компания; покупатели — литовская компания, немецкая компания и, в случае экспорта через Peppol, американская компания. Тестовые счета-фактуры содержат позицию с НДС 21% и позицию с нулевой ставкой (0%) с примечанием об освобождении от налога.

Результаты

Что формирует Nordlet Проверено файлов Результат
Peppol BIS Billing 3.0 (UBL) 7: внутренний счет-фактура, кредитовое авизо (credit note), продажа внутри ЕС, экспорт, обратное начисление НДС (reverse charge), продавец не зарегистрирован в качестве плательщика НДС, счет-фактура в USD со скидкой Все прошли: 0 ошибок, 0 предупреждений
Румынский e-Factura (UBL, CIUS-RO) 4: внутренний счет-фактура, кредитовое авизо, продажа внутри ЕС, счет-фактура в USD со скидкой Все прошли
Factur-X / ZUGFeRD (CII, профиль EN 16931) 4: внутренний счет-фактура, кредитовое авизо, продажа внутри ЕС, счет-фактура в USD со скидкой Все 4 не прошли, по 1 ошибке в каждом

Два правила, которые нарушают файлы Factur-X

BR-Z-10: позиция с нулевой ставкой не должна содержать причину освобождения от налога

В стандарте EN 16931 предусмотрены разные категории НДС для ставки 0% («Z», zero rated) и для необлагаемых поставок («E», exempt). Причина указывается только для освобожденных от налога поставок. Правило BR-Z-10 гласит, что расшифровка НДС по категории «Z» не должна содержать код причины освобождения от налога (BT-121) или текст причины освобождения от налога (BT-120).

Генератор Factur-X записывает текст причины «Taux zéro» для каждой расшифровки с нулевой ставкой, поэтому три из четырех файлов не проходят проверку. Он также игнорирует примечание об освобождении от налога, указанное для конкретной позиции. Генератор Peppol обрабатывает ту же позицию корректно: когда строка с нулевой ставкой имеет примечание об освобождении, он записывает ее как освобожденную от налога («E») и использует примечание в качестве причины.

BR-IC-12: продажа внутри ЕС должна содержать страну доставки

Правило BR-IC-12 гласит, что если в расшифровке НДС указана категория «K» (поставка внутри сообщества — intra-Community supply), код страны пункта назначения (BT-80) не должен быть пустым. Страна доставки подтверждает, что товары покинули страну продавца.

Генератор Factur-X не записывает страну доставки, поэтому файл по сделке внутри ЕС не проходит проверку. Генератор Peppol в таких случаях указывает страну покупателя в качестве страны доставки.

Что не охватывает данная проверка

  • Схема XML. Мы проверяли только правила ведения учета (business rules), а не схемы UBL и CII (XSD).
  • Поля, которые не заполняет Nordlet. Правила для реквизитов, отсутствующих в файлах, не запускались. Примеры: начисления на уровне документа, предоплаченные суммы, период выставления счета и ссылки на заказы на поставку.
  • Национальные правила поверх EN 16931. Мы не проверяли правила французской реформы электронного выставления счетов или немецкие правила XRechnung. Правила, специфичные для Peppol, проверяются отдельным скриптом Nordlet, который использует наборы правил OpenPeppol.
  • PDF-составляющая Factur-X. Счет-фактура Factur-X представляет собой файл PDF/A-3 с прикрепленным к нему XML. Проверка охватывает исключительно XML.

FAQ

Что такое EN 16931?

Это европейский стандарт на уровне ЕС, определяющий структуру данных и бизнес-логику электронных счетов-фактур. Он гарантирует, что счета-фактуры совместимы во всех европейских юрисдикциях и отвечают местным налоговым требованиям.

Почему файлы Factur-X выдают ошибки валидации в отличие от Peppol?

Генератор Factur-X в Nordlet по умолчанию проставляет текст причины для позиций с нулевой ставкой и опускает страну доставки для операций внутри ЕС, что противоречит строгим требованиям валидатора CEN/TC 434 по правилам BR-Z-10 и BR-IC-12.

Влияют ли эти ошибки на официальное принятие счетов-фактур налоговыми органами?

Да, строгие валидаторы налоговых органов, использующие официальные правила CEN Schematron, отклонят такие файлы Factur-X при попытке их загрузки или автоматической обработки.