Nordlet

← Blog

EN 16931 Uyumluluğu: Peppol, Factur-X ve ZUGFeRD Resmi Kurallara Göre İncelendi

Nordlet tarafından üretilen fatura dosyalarını resmi EN 16931 doğrulama kurallarından geçirdik. Peppol ve Romanya dosyaları başarılı olurken, Factur-X dosyaları iki kuralı ihlal ediyor. Bu makalede bu kuralları ele alıyoruz.

Nordlet Team · · 3 dk okuma

EN 16931, elektronik fatura içeriğine yönelik Avrupa standardıdır. Bir faturanın içermesi gereken ticari terimleri (satıcı, alıcı, kalemler, KDV dağılımı, toplamlar) ve bu terimlerin sağlaması gereken ticari kuralları (örneğin KDV dağılımının fatura toplamına eşit olması gerektiği gibi) tanımlar. Standart, iki XML formatında yazılabilir: UBL 2.1 ve UN/CEFACT Cross Industry Invoice (CII).

Avrupa'daki elektronik fatura (e-invoicing) formatlarının çoğu EN 16931 üzerine kuruludur:

  • Peppol BIS Billing 3.0, ek Peppol kuralları içeren UBL formatındaki EN 16931 standardıdır.
  • Romanya e-Factura (CIUS-RO), ek Romanya kuralları içeren UBL formatındaki EN 16931 standardıdır.
  • Factur-X (Fransa) ve ZUGFeRD 2.3 (Almanya), CII formatında EN 16931 taşır. Nordlet'in yazdığı "EN 16931" profilinde her iki format da aynı XML'i kullanır.

Bir fatura EN 16931 kuralını ihlal ederse, üzerine inşa edilen her formatı da ihlal etmiş olur.

İncelemeyi nasıl yaptık?

Avrupa Komisyonu, elektronik faturalandırma için CEN teknik komitesi (CEN/TC 434) tarafından GitHub üzerinde yayınlanan doğrulama kurallarına atıfta bulunur. Hem UBL hem de CII için en son sürüm olan 12 Ekim 2026 tarihli 1.3.17 sürümünü kullandık. Kurallar Schematron dilinde yazılmış ve XSLT'ye derlenmiştir; bunları Saxon-HE 12.5 XSLT motoru ile çalıştırdık.

Fatura dosyaları, örnek veriler kullanılarak Nordlet'in mevcut kodu ile üretilmiştir. Satıcı Litvanyalı bir şirkettir; alıcılar ise Litvanyalı bir şirket, Alman bir şirket ve Peppol dışa aktarım (export) senaryosu için ABD'li bir şirkettir. Örnek faturalarda %21 KDV kalemi ve muafiyet açıklaması içeren %0'lık bir kalem bulunmaktadır.

Sonuçlar

Nordlet'in yazdığı format İncelenen dosyalar Sonuç
Peppol BIS Billing 3.0 (UBL) 7 dosya: yurtiçi fatura, alacak dekontu, AB içi satış, dışa aktarım, tevkifatlı satış, KDV mükellefi olmayan satıcı, indirimli USD cinsinden fatura Tümü başarılı: 0 hata, 0 uyarı
Romanya e-Factura (UBL, CIUS-RO) 4 dosya: yurtiçi fatura, alacak dekontu, AB içi satış, indirimli USD cinsinden fatura Tümü başarılı
Factur-X / ZUGFeRD (CII, EN 16931 profili) 4 dosya: yurtiçi fatura, alacak dekontu, AB içi satış, indirimli USD cinsinden fatura 4'ü de başarısız, her birinde 1 hata

Factur-X dosyalarının ihlal ettiği iki kural

BR-Z-10: sıfır oranlı bir kalem muafiyet nedeni içermemelidir

EN 16931 standardında %0 oran ("Z", zero rated) ve muaf teslimat ("E", exempt) için ayrı KDV kategorileri bulunur. Yalnızca muaf teslimatlar bir neden belirtir. BR-Z-10 kuralı, "Z" kategorisindeki bir KDV dağılımının muafiyet nedeni koduna (BT-121) veya muafiyet nedeni metnine (BT-120) sahip olmaması gerektiğini belirtir.

Factur-X oluşturucu (builder), sıfır oranlı her KDV dağılımına "Taux zéro" açıklamasını yazdığı için dört dosyadan üçü başarısız olmaktadır. Ayrıca kaleme girilen muafiyet notunu da göz ardı etmektedir. Peppol oluşturucusu aynı kalemi doğru şekilde işler: %0'lık bir kalemin muafiyet notu olduğunda, kalemi muaf ("E") olarak yazar ve notu neden olarak kullanır.

BR-IC-12: AB içi bir satış teslimat ülkesini belirtmelidir

BR-IC-12 kuralı, KDV dağılımı "K" kategorisinde (Birlik içi teslimat - intra-Community supply) olduğunda, teslimat yeri ülke kodunun (BT-80) boş olmaması gerektiğini belirtir. Teslimat ülkesi, malların satıcının ülkesinden çıktığını gösterir.

Factur-X oluşturucu teslimat ülkesi yazmadığı için AB içi satış dosyası başarısız olmaktadır. Peppol oluşturucusu ise bu satışlar için alıcının ülkesini teslimat ülkesi olarak kaydeder.

Bu kontrolün kapsamadığı alanlar

  • XML şeması. Yalnızca ticari kuralları kontrol ettik, UBL ve CII şema (XSD) kontrollerini çalıştırmadık.
  • Nordlet'in yazmadığı alanlar. Dosyalarda bulunmayan terimlere ilişkin kurallar çalıştırılmadı. Örnek olarak belge düzeyindeki masraflar, ön ödeme tutarları, faturalama dönemi ve satın alma siparişi referansları verilebilir.
  • EN 16931 üzerindeki ulusal kurallar. Fransa'nın elektronik faturalandırma reformu kurallarını veya Almanya'nın XRechnung kurallarını kontrol etmedik. Peppol'e özgü kurallar, OpenPeppol kural setlerini kullanan ayrı bir Nordlet betiği tarafından denetlenmektedir.
  • Factur-X'in PDF kısmı. Factur-X faturası, XML'in iliştirildiği bir PDF/A-3 dosyasıdır. Bu kontrol yalnızca XML kısmını kapsamaktadır.