Peppol XML kļūdas: 12 iemesli, kāpēc validācija neiziet (un kā salabot)
Tu esi paveicis visu smago darbu. Pakalpojums sniegts, rēķins izrakstīts, XML fails ģenerēts. Tu to augšupielādē valsts E-adresē vai nosūti lielajam klientam un... BAM! Ekrāns iedegas sarkanā krāsā.
Kļūda: [BR-CO-10]-Sum of Invoice line net amount must equal Tax Exclusive Amount. Kļūda: [BR-O-02]-An Invoice shall contain the Seller postal address.
Sirds noiet papēžos. Ko tas nozīmē? Vai man jāsauc programmētājs? Vai es nesaņemšu naudu?
Nomierinies. Peppol XML validācija ir kā stingrs apsargs naktsklubā – viņš nelaiž iekšā, ja kurpes nav tīras vai kaklasaite šķība. Bet, atšķirībā no cilvēka, sistēma ir 100% loģiska. Ja Tu zini noteikumus, Tu vari tos izpildīt.
Šajā rakstā mēs iztulkosim "robotu valodu" cilvēku valodā. Mēs apskatīsim 12 visbiežāk sastopamās Peppol XML kļūdas, kas liedz rēķinam nokļūt pie klienta, un parādīsim precīzus soļus, kā tās salabot.
Apnicis cīnīties ar kļūdām manuāli? Sāc bez maksas un izmēģini sistēmu, kas novērš kļūdas pirms tās rodas: https://www.erekini.eu
Kā strādā validācija (cilvēcīgi)
Lai saprastu kļūdas, jāsaprot process. Eiropas standarts EN16931 ir noteikumu kopums, kas nosaka, kādam jābūt e-rēķinam.
Kad Tu ģenerē XML eksportu, fails netiek vienkārši nosūtīts. Tas iziet cauri "Validācijas dzinējam" (Validation Engine). Šis dzinējs pārbauda divas lietas:
- Sintakse (Formāts): Vai fails vispār ir XML? Vai visas iekavas ir aizvērtas? (Lielākoties par to atbild Tava rēķinu programma).
- Biznesa noteikumi (Schematron): Vai saturs ir loģisks?
- Piemērs: Ja PVN likme ir 21% un summa ir 100 EUR, tad nodoklim jābūt 21 EUR. Ja failā rakstīts 21.05 EUR, validācija neiziet.
- Piemērs: Ja pircējs ir no Latvijas, vai viņam ir LV reģistrācijas numurs?
Ja validācija neiziet, rēķins tiek uzskatīts par nepiegādātu. Klients to pat neredz. Tāpēc kļūdu labošana ir kritiska.
Top 12 kļūdas (ar “kā izlabot” katrai)
Mēs esam apkopojuši biežākās problēmas, ar kurām saskaras uzņēmēji, mēģinot sagatavot e-rēķina XML.
1. Kļūda: "Address is not structured"
Simptoms: Paziņojums, ka trūkst ielas nosaukuma, pilsētas vai pasta indeksa. Iemesls: PDF rēķinos mēs esam pieraduši rakstīt adresi vienā garā rindā: "Brīvības 1, Rīga, LV-1010". Peppol standartā katrai detaļai ir savs plauktiņš (<cbc:StreetName>, <cbc:CityName>). Ja visa adrese ielikta vienā laukā, sistēma to nevar nolasīt.
- Kā salabot: Ieej klienta vai sava uzņēmuma profilā un sadali adresi pa laukiem: Iela atsevišķi, Mājas Nr. atsevišķi, Pilsēta atsevišķi, Indekss atsevišķi.
Vairāk par datu sagatavošanu: https://www.erekini.eu/app/blog/peppol-xml-dati-uznemumam.
2. Kļūda: "Invalid VAT ID format"
Simptoms: Kļūda par "Party Tax Scheme". Iemesls: Ievadīts PVN numurs bez valsts koda vai ar atstarpēm.
- Slikti: 40003000000 vai LV 40003000000
- Labi: LV40003000000
- Kā salabot: Pārliecinies, ka PVN numura laukā nav atstarpju un obligāti ir divu burtu valsts kods (piem., LV).
3. Kļūda: "VAT category code mismatch" (S vs Z)
Simptoms: "Tax category code S implies standard rate". Iemesls: Tu rēķinā norādīji 21% likmi, bet XML kodā (vai iestatījumos) ir izvēlēts kods "Z" (Zero) vai otrādi.
- Kā salabot:
- Ja 21%: Lieto kodu S (Standard).
- Ja 0% (Eksports): Lieto kodu Z (Zero rated).
- Ja Nav PVN (Mazais uzņēmums): Lieto kodu O (Outside scope).
- Ja Reversais (Būvniecība): Lieto kodu AE. erekini.eu sistēma šos kodus piešķir automātiski, ja izvēlies pareizo likmi nolaižamajā izvēlnē.
4. Kļūda: Matemātiskā neprecizitāte (Rounding error)
Simptoms: "Sum of line amounts does not equal total amount". Iemesls: Klasiska problēma. * Rinda 1: 10.004 EUR -> noapaļojas uz 10.00 * Rinda 2: 10.004 EUR -> noapaļojas uz 10.00 * Kopā: 20.008 -> noapaļojas uz 20.01 (atkarībā no loģikas). Peppol prasa, lai rindu summa precīzi sakristu ar kopsummu līdz centam.
- Kā salabot: Pārbaudi cenas un daudzumus. Izmanto sistēmu, kas veic aprēķinus saskaņā ar XML noapaļošanas noteikumiem (uz leju/augšu uz tuvāko 2. zīmi aiz komata).
5. Kļūda: Trūkst Mērvienības koda (Unit Code)
Simptoms: Kļūda pie "Invoiced Quantity". Iemesls: Ierakstīts "kaste" vai "paka", bet sistēma gaida ISO kodu.
- Kā salabot: Vienmēr izvēlies mērvienību no klasifikatora.
- Gabali -> C62 vai H87
- Stundas -> HUR
- Kilogrami -> KGM
6. Kļūda: "Payment Means missing IBAN"
Simptoms: Rēķins ir derīgs, bet nav norādīts, kur maksāt. Iemesls: XML failā trūkst <cac:PayeeFinancialAccount>. Lai gan PDFā bankas konts var būt rakstīts piezīmēs, XML tas ir obligāts strukturēts lauks.
- Kā salabot: Pārliecinies, ka uzņēmuma iestatījumos ir ievadīts IBAN un tas ir piesaistīts konkrētajam rēķinam.
7. Kļūda: "Endpoint ID scheme missing"
Simptoms: Sistēma nesaprot, kas ir pircējs. Iemesls: Peppol tīklā uzņēmumus identificē pēc "Endpoint ID". Latvijā tas parasti ir reģistrācijas numurs, bet tam priekšā vajag shēmas kodu 0208.
- Kā salabot: Ģenerējot XML erekini.eu, pārliecinies, ka pircējam ir ievadīts pareizs Reģ. Nr. Sistēma automātiski pieliks 0208: prefiksu.
8. Kļūda: Datuma formāts
Simptoms: "Invalid date format". Iemesls: Mēģināts nosūtīt "05.01.2026".
- Kā salabot: XML standartā vienīgais pieļaujamais formāts ir YYYY-MM-DD (2026-01-05).
9. Kļūda: "Invoice Line Net Amount must be positive"
Simptoms: Negatīva rinda rēķinā. Iemesls: Tu gribēji iedot atlaidi un ierakstīji rindu "-10 EUR". Lai gan dažas sistēmas to pieļauj, stingrā validācija var pieprasīt, lai atlaides tiktu noformētas kā atsevišķs "Allowance" elements, nevis negatīva cena.
- Kā salabot: Izmanto sistēmas "Atlaides" funkciju, nevis mīnusa zīmi pie cenas, vai pārbaudi, vai konkrētais profils atļauj negatīvas rindas.
10. Kļūda: "Missing Order Reference"
Simptoms: "Buyer requires Order Reference". Iemesls: Tehniski rēķins ir pareizs, bet Tavs klients (pircējs) ir iestatījis noteikumu, ka nepieņems rēķinus bez Pasūtījuma numura. Tas bieži notiek valsts iepirkumos.
- Kā salabot: Rēķina ievades formā atrodi lauku "Pasūtījuma Nr." (Purchase Order / Reference) un ievadi numuru, ko Tev iedeva klients.
11. Kļūda: "Seller name is empty"
Simptoms: Trūkst pārdevēja nosaukuma. Iemesls: Ja esi pašnodarbinātais, dažreiz lauks "Uzņēmuma nosaukums" tiek atstāts tukšs.
- Kā salabot: Arī pašnodarbinātajiem XML failā laukā <cac:PartyName> jābūt vērtībai. Ieraksti savu Vārdu, Uzvārdu.
12. Kļūda: Sajauktas valūtas
Simptoms: "CurrencyID does not match". Iemesls: Rēķina kopsumma ir EUR, bet kādā rindā vai nodokļu aprēķinā "ieslīdējusi" cita valūta.
- Kā salabot: Peppol XML parasti paredz vienu valūtu visam dokumentam. Pārliecinies, ka viss ir EUR.
Vairāk par to, kā pareizi ģenerēt failu no nulles: https://www.erekini.eu/app/blog/peppol-xml-en16931-ka-generate.



