Factur-X i ZUGFeRD: standard hybrydowej faktury PDF
Factur-X (Francja/Niemcy) i ZUGFeRD osadzają ustrukturyzowaną fakturę XML wewnątrz pliku PDF/A-3. Wyjaśniamy, jak działa standard i jak odczytywać te hybrydowe faktury.
Czym jest faktura hybrydowa?
Faktura Factur-X lub ZUGFeRD to plik PDF zawierający dwie rzeczy jednocześnie: czytelny dla człowieka PDF (widoczna faktura) oraz czytelny maszynowo plik XML osadzony jako załącznik (dane strukturyzowane). Oba współistnieją w jednym pliku PDF/A-3.
Ten podwójny format to najlepsze z obu światów: ludzie czytają PDF, oprogramowanie księgowe automatycznie przetwarza XML. Jest to obowiązkowy format e-fakturowania we Francji (od 2026 roku) i szeroko stosowany w Niemczech i Belgii.
Format został znormalizowany przez FNFE-MPE (Francja) i FeRD (Niemcy) i jest obecnie oficjalnym formatem e-fakturowania dla transakcji B2G i B2B w obu krajach.
Norma EN 16931
Osadzony XML jest zgodny z europejską normą EN 16931 (semantyczny model danych dla faktur elektronicznych). Factur-X i ZUGFeRD są implementacjami tej normy — używają tej samej struktury danych, z niewielkimi różnicami w nazewnictwie.
Istnieje kilka profili zgodności, od najprostszego (MINIMUM, tylko 6 pól) po najbardziej kompletny (EXTENDED, wszystkie pola opcjonalne). Większość firm korzysta z profilu EN 16931 lub COMFORT.
Zgodność między Factur-X 1.0 a ZUGFeRD 2.0+ oznacza, że jedna implementacja może obsługiwać oba rynki — co obniża koszty rozwoju i umożliwia bezproblemowe fakturowanie transgraniczne.
Kluczowe pola w osadzonym XML
- ExchangedDocument / ID — Numer faktury — unikalny identyfikator dokumentu.
- SellerTradeParty / Name — Nazwa i numer VAT sprzedawcy (obowiązkowe dla zgodności podatkowej).
- SpecifiedTradeSettlement / GrandTotalAmount — Łączna kwota brutto — musi odpowiadać PDF.
- ApplicableTradeTax — Podział VAT: stawka, podstawa opodatkowania i kwota podatku dla każdej stawki VAT.
- BuyerTradeParty / Name — Nazwa prawna nabywcy i numer VAT — wymagane do odliczenia podatku po stronie nabywcy.
- InvoiceReferencedDocument — Odniesienie do oryginalnej faktury (w przypadku faktur korygujących) lub numer zamówienia.
- SpecifiedTradePaymentTerms — Termin płatności, warunki rabatu i warunki kar.
- SpecifiedTradeAllowanceCharge — Rabaty i dopłaty zastosowane do faktury — wyszczególnione według typu i kwoty.
Factur-X vs ZUGFeRD: jaka jest różnica?
Factur-X to standard francusko-niemiecki, promowany jako Factur-X we Francji i ZUGFeRD w Niemczech. Od ZUGFeRD 2.0 (2019) oba są technicznie identyczne i w pełni interoperacyjne.
Jedyna rzeczywista różnica to branding i lokalna adopcja: francuskie podmioty publiczne i platformy (jak Chorus Pro) używają nazwy Factur-X, natomiast niemieckie systemy fakturowania odwołują się do ZUGFeRD. Osadzony schemat XML (CII — Cross Industry Invoice) jest ten sam.
Dla programistów oznacza to, że potrzebny jest tylko jeden parser XML do obsługi obu formatów. ValidateFin obsługuje obie nazwy transparentnie.
Porównanie profili Factur-X / ZUGFeRD
Standard definiuje kilka profili zgodności, od minimalnego do w pełni szczegółowego:
| Profil | Pola | Pozycje | Zastosowanie |
|---|---|---|---|
| MINIMUM | ~6 pól | Nie | Archiwizacja — PDF jest źródłem danych |
| BASIC WL | ~20 pól | Nie | Proste faktury bez szczegółów pozycji |
| BASIC | ~30 pól | Tak | Standardowe faktury z pozycjami |
| EN 16931 (COMFORT) | ~60 pól | Tak | Pełna zgodność z UE — zalecany |
| EXTENDED | ~100+ pól | Tak | Rozszerzenia branżowe |
| XRECHNUNG | ~60 pól | Tak | Niemiecki sektor publiczny (B2G) |
Większość firm powinna celować w profil EN 16931 (COMFORT), ponieważ zapewnia pełną zgodność z normą europejską, pozostając jednocześnie łatwym w obsłudze.
Jak utworzyć fakturę Factur-X
Tworzenie faktury Factur-X obejmuje trzy kroki: wygenerowanie XML CII, osadzenie go w kontenerze PDF/A-3 i walidację wyniku. Oto przebieg pracy:
- Wygeneruj XML CII — Utwórz plik XML zgodny ze schematem EN 16931, zawierający wszystkie wymagane pola dla docelowego profilu.
- Utwórz kontener PDF/A-3 — Plik PDF musi być zgodny z PDF/A-3 (ISO 19005-3), który pozwala na osadzanie dowolnych plików jako załączników.
- Osadź XML jako załącznik — Dołącz plik XML (o nazwie factur-x.xml lub zugferd-invoice.xml) z AFRelationship ustawionym na 'Alternative'.
- Dodaj metadane XMP — Dołącz metadane XMP Factur-X w katalogu PDF, aby zadeklarować profil i poziom zgodności.
- Zwaliduj wynik — Użyj walidatora Factur-X, aby zweryfikować zgodność z PDF/A-3, poprawność schematu XML i zgodność z profilem.
Narzędzie Factur-X ValidateFin może wyodrębnić i zweryfikować XML z dowolnego istniejącego pliku PDF Factur-X lub ZUGFeRD.
Typowe błędy walidacji Factur-X
Oto najczęstsze problemy wykrywane podczas walidacji faktur Factur-X/ZUGFeRD:
Brak załącznika XML
PDF nie zawiera osadzonego pliku XML lub plik ma nieprawidłową nazwę (musi to być factur-x.xml lub zugferd-invoice.xml).
Niezgodność z PDF/A-3
PDF nie jest prawidłowym plikiem PDF/A-3 — częsty problem przy generowaniu plików PDF standardowymi bibliotekami, które nie obsługują formatu archiwalnego.
Niezgodność profilu
XML deklaruje profil (np. EN 16931), ale brakuje wymaganych pól dla tego poziomu profilu.
Niespójność sumy VAT
Suma poszczególnych kwot VAT nie odpowiada zadeklarowanej łącznej kwocie VAT. Różnice zaokrągleń powyżej 1 centa wywołują ten błąd.
Brak metadanych XMP
Katalog PDF nie zawiera wymaganych metadanych XMP Factur-X deklarujących profil i wersję.
Wyodrębnij i zweryfikuj faktury Factur-X
Nasza przeglądarka Factur-X / ZUGFeRD wyodrębnia osadzony XML z faktury PDF i wyświetla wszystkie dane rozliczeniowe — sprzedawca, nabywca, kwoty, linie VAT i linie faktury. 100% lokalne, bez przesyłania danych.
Otwórz Przeglądarkę Factur-XCzęsto zadawane pytania
Jaka jest różnica między Factur-X a ZUGFeRD?
Factur-X i ZUGFeRD to w zasadzie ten sam format — faktura hybrydowa osadzająca ustrukturyzowany XML wewnątrz pliku PDF/A-3. Factur-X to branding francuski/europejski, a ZUGFeRD to branding niemiecki. Od ZUGFeRD 2.0 oba są w pełni kompatybilne i zgodne z EN 16931.
Jakie są profile Factur-X/ZUGFeRD?
Istnieje 6 profili: MINIMUM (podstawowa identyfikacja), BASIC WL (bez pozycji), BASIC (z pozycjami), EN 16931/COMFORT (pełna zgodność), EXTENDED (dodatkowe pola) i XRECHNUNG (sektor publiczny w Niemczech). Wyższe profile umożliwiają bardziej zautomatyzowane przetwarzanie.
Jak mogę wyodrębnić dane XML z pliku PDF Factur-X?
Przeglądarka Factur-X ValidateFin automatycznie wyodrębnia osadzony XML z dowolnego pliku PDF Factur-X lub ZUGFeRD. Prześlij plik PDF — narzędzie odczytuje osadzony załącznik, parsuje XML i wyświetla wszystkie ustrukturyzowane dane faktury. Wszystko działa lokalnie w przeglądarce.
Czy Factur-X jest obowiązkowy we Francji?
Tak. Od 2026 roku wszystkie faktury B2B we Francji muszą być wystawiane w formacie elektronicznym, przy czym Factur-X jest jednym z trzech akceptowanych formatów obok UBL i CII. Fakturowanie B2G przez Chorus Pro wymaga formatów ustrukturyzowanych już teraz.
Czy mogę używać Factur-X do fakturowania międzynarodowego?
Tak. Factur-X/ZUGFeRD jest oparty na europejskiej normie EN 16931 i jest akceptowany w całej UE. Profil EN 16931 COMFORT zapewnia kompatybilność z większością europejskich wymogów e-fakturowania.
Jakie narzędzia mogą generować faktury Factur-X?
Większość nowoczesnych systemów ERP i oprogramowania księgowego (SAP, Sage, DATEV, Cegid) obsługuje eksport Factur-X/ZUGFeRD. Dostępne są również biblioteki open source, takie jak Mustang (Java) i Factur-X (Python), do niestandardowych implementacji.
Jak wybrać odpowiedni profil?
Dla większości transakcji B2B zalecany jest EN 16931 (COMFORT). Dla francuskiego B2G przez Chorus Pro wystarczyć może MINIMUM lub BASIC. Dla niemieckiego sektora publicznego (B2G) wymagany jest XRECHNUNG. Sprawdź wymagania partnera handlowego.
Jaka jest różnica między Factur-X a UBL?
Factur-X osadza XML CII (Cross Industry Invoice) wewnątrz pliku PDF. UBL to samodzielny format XML bez opakowania PDF. Factur-X jest preferowany, gdy ważna jest czytelność dla człowieka (PDF), natomiast UBL jest używany do czystej wymiany maszyna-maszyna (np. Peppol).
Czy mogę przekonwertować fakturę UBL na Factur-X?
Tak, ale wymaga to mapowania pól UBL na pola CII i wygenerowania opakowania PDF/A-3. Zawartość semantyczna jest podobna, ponieważ oba implementują EN 16931, ale schematy XML się różnią. Specjalistyczne narzędzia obsługują tę konwersję.
Jak Chorus Pro obsługuje faktury Factur-X?
Chorus Pro, francuska rządowa platforma fakturowania, akceptuje Factur-X jako jeden z obsługiwanych formatów. Wyodrębnia dane XML do automatycznego przetwarzania, jednocześnie archiwizując PDF dla celów prawnych. Profil MINIMUM to minimalne wymaganie.