Съответствие с EN 16931: Проверка на Peppol, Factur-X и ZUGFeRD спрямо официалните правила
Извършихме проверка на фактурите, генерирани от Nordlet, спрямо официалните правила за валидация по EN 16931. Файловете за Peppol и румънската система преминават успешно. Файловете във формат Factur-X нарушават две правила, които са посочени в тази статия.
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), доставчик нерегистриран по ДДС, фактура в 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: ред с 0% ставка не трябва да съдържа основание за освобождаване
Стандартът 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“ (вътреобщностна доставка - intra-Community supply), кодът на държавата на получаване (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 съдържанието.