UBL 2.1 XML formatas
Techninis formatas už PEPPOL sąskaitų. Suprasite, kaip jūsų sąskaitos duomenys yra struktūruoti mašinos su mašina komunikacijai.
Kas yra UBL?
UBL (Universal Business Language) yra tarptautinis standartas verslo dokumentų, tokių kaip sąskaitos, struktūravimui. Galvokite apie tai kaip apie tikslų šabloną, kuris tiksliai pasako kompiuteriams, kur rasti kiekvieną informacijos dalį — sąskaitos numerį, sumas, PVM, pardavėjo detales ir taip toliau.
Kai kuriate sąskaitą aiDoks, mes automatiškai konvertuojame jūsų duomenis į šį UBL XML formatą. Tai užtikrina, kad bet kuri sistema, gaunanti jūsų sąskaitą, gali ją teisingai skaityti, nepriklausomai nuo naudojamos programinės įrangos.
aiDoks automatiškai sukuria tobulą UBL XML iš jūsų ievados. Šis puslapis skirtas tiems, kurie nori suprasti, kas vyksta užkulisiuose, arba turi dirbti su pradiniais failais.
Sąskaitos struktūra trumpai
Kiekviena PEPPOL sąskaita turi šias pagrindines sekcijas šia tvarka:
Pagrindinių elementų paaiškinimas
Štai svarbiausios UBL sąskaitos dalys ir ką jos talpina:
<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>Šie identifikatoriai praneša gaunantiems sistemoms, kad tai PEPPOL BIS 3.0 atitinkanti sąskaita. Jie visada vienodi standartinėms sąskaitoms — aiDoks juos prideda automatiškai.
<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>Jūsų sąskaitos numeris, išdavimo data, terminas, tipas (380 = standartinė sąskaita) ir valiuta. Datos turi būti YYYY-MM-DD formato.
<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>Jūsų įmonės detalės. EndpointID su schemeID yra jūsų PEPPOL dalyvio identifikatorius — taip tinklas žino, kur pristatyti atsakymus.
<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>Kiekviena prekė, už kurią išrašote sąskaitą. Apima eilutės numerį, kiekį (su vieneto kodu, pvz., HUR valandoms), eilutės sumą, prekės aprašymą ir vieneto kainą. Galite turėti kelis InvoiceLine elementus.
Dažni kodų nuoroda
PEPPOL dalyvio ID schemos
| Schemos ID | Šalis | Aprašymas |
|---|---|---|
0191 | Estija | PVM kodas (EE + 9 skaičiai) |
0192 | Estija | Verslo registro kodas (8 skaičiai) |
0193 | Latvija | PVM kodas (LV + 11 skaičių) |
0200 | Lietuva | PVM kodas (LT + 9-12 skaičių) |
9915 | Austrija | PVM kodas |
9930 | Italija | PVM kodas |
Mokėjimo metodų kodai
30Banko pervedimas (dažniausias)58SEPA kredito pervedimas49Tiesioginis nuskaitymas48Kredito kortelėKaip veikia validavimas
Prieš sąskaitą galima išsiųsti per PEPPOL, ji turi praeiti kelis validavimo patikrinimus:
Tikrina, ar XML struktūra yra teisinga — visi reikalingi elementai yra ir tinkamai įdėti, naudojami teisingi duomenų tipai.
Validuoja verslo taisykles — pavyzdžiui, kad PVM sumos atitinka apskaičiuotas vertes, reikalingi laukai užpildyti pagal kontekstą, o kodų vertės yra galiojančios.
Patikrina, ar visi kodai (valiuta, šalis, vienetas, PVM kategorija) yra iš oficialių PEPPOL patvirtintų sąrašų.
Patvirtina, kad eilutės sumos teisingai sumuojasi, PVM apskaičiuotas teisingai, o galutinė mokėtina suma yra tiksli.
aiDoks paleidžia visus šiuos validavimus prieš siunčiant. Jei yra klaidų, pamatysite konkrečius pranešimus, paaiškinančius, ką reikia ištaisyti — paprastai trūkstamas laukas arba neteisinga vertė.
Pavyzdinis sąskaitos failas
Norite pamatyti pilną pavyzdį? Štai minimali galiojanti PEPPOL sąskaita:
<?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>