Nordlet

← Блог

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

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

Nordlet Team · · 3 хв читання

EN 16931 — це європейський стандарт для змісту електронного рахунка-фактури (electronic invoice). Він визначає бізнес-терміни, які містить рахунок (продавець, покупець, рядки, розшифрування ПДВ, підсумки), та бізнес-правила, яким ці терміни повинні відповідати, наприклад, що розшифрування ПДВ в сумі дає загальний підсумок рахунка. Стандарт може бути оформлений у двох форматах 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: внутрішній рахунок, кредит-нота, операція всередині ЄС, експорт, зі зворотним нарахуванням ПДВ (reverse charge), продавець не зареєстрований платником ПДВ, рахунок у доларах США зі знижкою Усі пройшли: 0 помилок, 0 попереджень
Румунський e-Factura (UBL, CIUS-RO) 4: внутрішній рахунок, кредит-нота, операція всередині ЄС, рахунок у доларах США зі знижкою Усі пройшли
Factur-X / ZUGFeRD (CII, профіль EN 16931) 4: внутрішній рахунок, кредит-нота, операція всередині ЄС, рахунок у доларах США зі знижкою Усі 4 не пройшли, по 1 помилці в кожному

Два правила, які порушують файли Factur-X

BR-Z-10: рядок із нульовою ставкою не повинен містити причини звільнення від податку

EN 16931 має окремі категорії ПДВ для ставки 0% („Z“, нульова ставка) та для звільненого від оподаткування постачання („E“, звільнено). Причина зазначається лише для звільненого від оподаткування постачання. Правило BR-Z-10 зазначає, що розшифрування ПДВ в категорії „Z“ не повинно мати коду причини звільнення від податку (BT-121) або тексту причини звільнення (BT-120).

Генератор Factur-X додає текст причини „Taux zéro“ до кожного розшифрування з нульовою ставкою, тому три з чотирьох файлів не проходять перевірку. Він також ігнорує примітку про звільнення від податку, введену для рядка. Генератор Peppol обробляє такий самий рядок коректно: коли рядок із 0% має примітку про звільнення, він записує рядок як звільнений („E“) та використовує примітку як причину.

BR-IC-12: операція всередині ЄС має містити країну постачання

Правило BR-IC-12 зазначає, що коли розшифрування ПДВ має категорію „K“ (внутрішньоспільнотне постачання), код країни постачання (deliver-to, BT-80) не повинен бути порожнім. Країна постачання вказує на те, що товари покинули країну продавця.

Генератор Factur-X не записує країну постачання, тому файл для операцій всередині ЄС не проходить перевірку. Генератор Peppol записує країну покупця як країну постачання для таких операцій.

Чого ця перевірка не охоплює

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