Nordlet

← Blogi

EN 16931 -vaatimustenmukaisuus: Peppol, Factur-X ja ZUGFeRD virallisia sääntöjä vasten testattuna

Ajoimme Nordletin tuottamat laskutiedostot virallisten EN 16931 -validointisääntöjen läpi. Peppol- ja romanialaiset tiedostot läpäisevät testin. Factur-X-tiedostot rikkovat kaksi sääntöä, ja tässä artikkelissa ne nimetään.

Nordlet Team · · 3 min lukuaika

EN 16931 on eurooppalainen standardi sähköisen laskun sisällölle. Se määrittelee liiketiedot, joita lasku kantaa (myyjä, ostaja, rivit, alv-erittely, loppusummat), sekä liiketoimintasäännöt, joita näiden tietojen on täytettävä, kuten sen, että alv-erittely täsmää laskun loppusumman kanssa. Standardi voidaan kirjoittaa kahdessa XML-formaatissa: UBL 2.1 ja UN/CEFACT Cross Industry Invoice (CII).

Useimmat eurooppalaiset verkkolaskumuodot rakentuvat EN 16931 -standardin varaan:

  • Peppol BIS Billing 3.0 on EN 16931 UBL-muodossa täydennettynä ylimääräisillä Peppol-säännöillä.
  • Romanian e-Factura (CIUS-RO) on EN 16931 UBL-muodossa täydennettynä romanialaisilla lisäsäännöillä.
  • Factur-X (Ranska) ja ZUGFeRD 2.3 (Saksa) sisältävät EN 16931 -standardin CII-muodossa. "EN 16931" -profiilissa, jota Nordlet käyttää, nämä kaksi formaattia käyttävät samaa XML:ää.

Jos lasku rikkoo EN 16931 -sääntöä, se rikkoo myös kaikkia sen päälle rakennettuja formaatteja.

Miten teimme tarkistuksen

Euroopan komissio viittaa GitHubissa julkaistuihin sähköisen laskutuksen CEN-teknisen komitean (CEN/TC 434) validointisääntöihin. Käytimme uusinta julkaisua, versiota 1.3.17 (12. lokakuuta 2026), sekä UBL:lle että CII:lle. Säännöt on kirjoitettu Schematronilla ja koottu XSLT:ksi, ja ajoimme ne Saxon-HE 12.5 -XSLT-moottorilla.

Laskutiedostot tuotettiin Nordletin nykyisellä koodilla esimerkkidatasta. Myyjä on liettualainen yritys; ostajina ovat liettualainen yritys, saksalainen yritys ja Peppol-vientitapauksessa yhdysvaltalainen yritys. Esimerkkilaskuissa on 21 prosentin alv-rivi sekä 0 prosentin rivi vapautusmerkinnällä.

Tulokset

Mitä Nordlet kirjoittaa Tarkistetut tiedostot Tulos
Peppol BIS Billing 3.0 (UBL) 7: kotimainen lasku, hyvityslasku, EU-sisämyynti, vienti, käännetty verovelvollisuus, myyjä ei alv-velvollinen, lasku USD-valuutassa alennuksella Kaikki läpäisevät: 0 virhettä, 0 varoitusta
Romanian e-Factura (UBL, CIUS-RO) 4: kotimainen lasku, hyvityslasku, EU-sisämyynti, lasku USD-valuutassa alennuksella Kaikki läpäisevät
Factur-X / ZUGFeRD (CII, profiili EN 16931) 4: kotimainen lasku, hyvityslasku, EU-sisämyynti, lasku USD-valuutassa alennuksella Kaikki 4 hylätään, kussakin 1 virhe

Kaksi sääntöä, jotka Factur-X-tiedostot rikkovat

BR-Z-10: nollakantaisella rivillä ei saa olla vapautusperustetta

EN 16931 -standardissa on omat alv-kategoriat 0 prosentin verokannalle ("Z", zero rated) ja verosta vapautetulle myynnille ("E", exempt). Vain verosta vapautetulle myynnille ilmoitetaan peruste. Sääntö BR-Z-10 määrää, että "Z"-kategorian alv-erittelyssä ei saa olla vapautusperusteen koodia (BT-121) tai vapautusperusteen tekstiä (BT-120).

Factur-X-generaattori kirjoittaa tekstin "Taux zéro" jokaiseen nollakantaiseen erittelyyn, minkä vuoksi kolme neljästä tiedostosta hylätään. Se myös jättää huomiotta riville syötetyn vapautusmerkinnän. Peppol-generaattori käsittelee saman rivin oikein: kun 0 prosentin rivillä on vapautusmerkintä, se kirjoittaa rivin verosta vapautettuna ("E") ja käyttää merkintää perusteena.

BR-IC-12: EU-sisämyynnissä on oltava toimitusmaa

Sääntö BR-IC-12 määrää, että kun alv-erittelyn kategoria on "K" (yhteisömyynti), toimitusmaan maakoodi (BT-80) ei saa olla tyhjä. Toimitusmaa osoittaa, että tavarat ovat poistuneet myyjän maasta.

Factur-X-generaattori ei kirjaa toimitusmaata, minkä vuoksi EU-sisämyynnin tiedosto hylätään. Peppol-generaattori kirjaa näissä myynneissä ostajan maan toimitusmaaksi.

Mitä tämä tarkistus ei kata

  • XML-skeemaa. Ajoimme vain liiketoimintasäännöt, emä UBL- ja CII-skeeman (XSD) tarkistuksia.
  • Kenttiä, joita Nordlet ei kirjoita. Säännöt, jotka koskevat tiedostoista puuttuvia tietoja, eivät olleet ajossa mukana. Esimerkkejä näistä ovat laskutason lisämaksut, ennakkomaksut, laskutusjakso ja ostotilausviitteet.
  • EN 16931 -standardia täydentäviä kansallisia sääntöjä. Emme tarkistaneet Ranskan verkkolaskuuudistuksen sääntöjä tai Saksan XRechnung-sääntöjä. Peppol-kohtaiset säännöt tarkistetaan erillisellä Nordletin skriptillä, joka käyttää OpenPeppol-sääntöjoukkoja.
  • Factur-X-tiedoston PDF-osaa. Factur-X-lasku on PDF/A-3-tiedosto, johon XML on liitetty. Tämä tarkistus koskee vain XML-osuutta.

FAQ

Miksi Factur-X-tiedostoni hylätään, vaikka käytän virallista CII-profiilia?

Nordletin käyttämä Factur-X-profiili noudattaa EN 16931 -standardin CII-toteutusta, mutta generaattori lisää nollakantaisiin riveihin virheellisesti vapautusperusteen vastoin sääntöä BR-Z-10 ja jättää EU-sisämyynnistä pois toimitusmaan vastoin sääntöä BR-IC-12. Nämä poikkeamat johtuvat generaattorin sisäisestä logiikasta tiettyjen verokantojen käsittelyssä.

Miten voin korjata nämä validointivirheet?

Kunnes päivitämme Factur-X-generointia, voit kiertää ongelman käyttämällä Peppol BIS Billing 3.0 -formaattia silloin, kun tiukka standardinmukaisuus on ensiarvoisen tärkeää, sillä Peppol-tiedostot läpäisevät tarkistuksen virheettä.

Vaikuttavatko nämä virheet muihin kuin ranskalaisiin laskuihin?

Säännöt BR-Z-10 ja BR-IC-12 kuuluvat CEN/TC 434 -standardin ytimeen, joten ne koskevat kaikkia EN 16931 -standardin mukaisia CII-tiedostoja riippumatta siitä, mihin maahan lasku lähetetään.