UBL 2.1 XML formaat
PEPPOL arvete tehniline formaat. Mõistke, kuidas teie arve andmed on struktureeritud masinatevaheliseks suhtluseks.
Mis on UBL?
UBL (Universal Business Language) on rahvusvaheline standard äridokumentide nagu arvete struktureerimiseks. Mõelge sellest kui täpsest mallist, mis ütleb arvutitele täpselt, kust leida iga teabe — arve number, summad, KM, müüja andmed jne.
Kui loote aiDoksis arve, teisendame teie andmed automaatselt sellesse UBL XML formaati. See tagab, et iga süsteem, mis teie arve saab, suudab seda õigesti lugeda, olenemata kasutatavast tarkvarast.
aiDoks loob teie sisendist automaatselt täiusliku UBL XML-i. See lehekülg on neile, kes soovivad mõista, mis toimub kulisside taga, või peavad töötama toorfailidega.
Arve struktuur ülevaatlikult
Iga PEPPOL arve sisaldab neid põhisektsioone selles järjekorras:
Põhielementide selgitus
Siin on UBL arve kõige olulisemad osad ja mida need sisaldavad:
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>Need identifikaatorid ütlevad vastuvõtvatele süsteemidele, et see on PEPPOL BIS 3.0 vastav arve. Need on alati samad standardarvete jaoks — aiDoks lisab need automaatselt.
<cbc:ID>INV-2025-001</cbc:ID>
<cbc:IssueDate>2025-01-29</cbc:IssueDate>
<cbc:DueDate>2025-02-28</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>Teie arve number, väljaandmise kuupäev, tähtaeg, tüüp (380 = standardarve) ja valuuta. Kuupäevad peavad olema YYYY-MM-DD formaadis.
<cac:AccountingSupplierParty> <cac:Party> <cbc:EndpointID schemeID="0191">EE123456789</cbc:EndpointID> <cac:PartyName> <cbc:Name>Your Company OÜ</cbc:Name> </cac:PartyName> <!-- Address, VAT number, registration... --> </cac:Party>
</cac:AccountingSupplierParty>Teie ettevõtte andmed. EndpointID koos schemeID-ga on teie PEPPOL osaleja identifikaator — nii teab võrk, kuhu vastused saata.
<cac:InvoiceLine> <cbc:ID>1</cbc:ID> <cbc:InvoicedQuantity unitCode="HUR">40</cbc:InvoicedQuantity> <cbc:LineExtensionAmount currencyID="EUR">3000.00</cbc:LineExtensionAmount> <cac:Item> <cbc:Name>Web Development Services</cbc:Name> </cac:Item> <cac:Price> <cbc:PriceAmount currencyID="EUR">75.00</cbc:PriceAmount> </cac:Price>
</cac:InvoiceLine>Iga ese, mille eest arveldate. Sisaldab rea numbrit, kogust (koos ühikukoodiga nagu HUR tundide jaoks), rea kogusummat, kauba kirjeldust ja ühikuhinda. Võib olla mitu InvoiceLine elementi.
Levinud koodide viide
PEPPOL osaleja ID skeemid
| Skeemi ID | Riik | Kirjeldus |
|---|---|---|
0191 | Eesti | KM number (EE + 9 numbrit) |
0192 | Eesti | Äriregistri kood (8 numbrit) |
0193 | Läti | KM number (LV + 11 numbrit) |
0200 | Leedu | KM number (LT + 9-12 numbrit) |
9915 | Austria | KM number |
9930 | Itaalia | KM number |
Maksemeetodi koodid
30Pangaülekanne (kõige levinum)58SEPA krediidiülekanne49Otsedebiteerimine48KrediitkaartKuidas valideerimine töötab
Enne kui arvet saab PEPPOLi kaudu saata, peab see läbima mitu valideerimiskontrolli:
Kontrollib, kas XML struktuur on õige — kõik vajalikud elemendid on olemas, korralikult pesastatud ja kasutavad õigeid andmetüüpe.
Valideerib äriloogika reegleid — näiteks et KM summad vastavad arvutatud väärtustele, vajalikud väljad on täidetud konteksti alusel ja koodi väärtused on kehtivad.
Veendub, et kõik koodid (valuuta, riik, ühik, KM kategooria) on ametlikest PEPPOL heaks kiidetud loenditest.
Kinnitab, et rea kogusummad liidetakse õigesti, KM arvutatakse korralikult ja lõplik makstav summa on täpne.
aiDoks käivitab kõik need valideerimised enne saatmist. Kui on vigu, näete konkreetseid teateid, mis selgitavad, mida tuleb parandada — tavaliselt puuduv väli või vale väärtus.
Näide arve fail
Tahad näha täielikku näidet? Siin on minimaalne kehtiv PEPPOL arve:
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>INV-2025-001</cbc:ID>
<cbc:IssueDate>2025-01-29</cbc:IssueDate>
<cbc:DueDate>2025-02-28</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0191">EE123456789</cbc:EndpointID>
<cac:PartyName><cbc:Name>Seller Company OÜ</cbc:Name></cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Main Street 1</cbc:StreetName>
<cbc:CityName>Tallinn</cbc:CityName>
<cbc:PostalZone>10001</cbc:PostalZone>
<cac:Country><cbc:IdentificationCode>EE</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>EE123456789</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Seller Company OÜ</cbc:RegistrationName>
<cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0192">87654321</cbc:EndpointID>
<cac:PartyName><cbc:Name>Buyer Company AS</cbc:Name></cac:PartyName>
<cac:PostalAddress>
<cbc:CityName>Tallinn</cbc:CityName>
<cac:Country><cbc:IdentificationCode>EE</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Buyer Company AS</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">220.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">220.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>22</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">1220.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">1220.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Consulting Services</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>22</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>