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.

Jums nereikia rašyti XML

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:

Antraštės informacijaSąskaitos numeris, datos, valiuta ir PEPPOL identifikatoriai
Pardavėjas (Tiekėjas)Jūsų įmonės pavadinimas, adresas, PVM kodas, PEPPOL ID
Pirkėjas (Klientas)Kliento įmonės detalės ir PEPPOL ID
Mokėjimo informacijaBanko sąskaita, mokėjimo metodas, mokėjimo sąlygos
Mokesčių santraukaPVM suskirstymas pagal kategoriją ir tarifą
SumosEilučių suma, mokesčių suma ir mokėtina suma
EilutėsKiekvienas produktas/paslauga su kiekiu, kaina ir PVM

Pagrindinių elementų paaiškinimas

Štai svarbiausios UBL sąskaitos dalys ir ką jos talpina:

PEPPOL identifikatoriai
<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.

Sąskaitos detalės
<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.

Pardavėjo informacija
<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.

Sąskaitos eilutė
<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ŠalisAprašymas
0191EstijaPVM kodas (EE + 9 skaičiai)
0192EstijaVerslo registro kodas (8 skaičiai)
0193LatvijaPVM kodas (LV + 11 skaičių)
0200LietuvaPVM kodas (LT + 9-12 skaičių)
9915AustrijaPVM kodas
9930ItalijaPVM kodas

Mokėjimo metodų kodai

30Banko pervedimas (dažniausias)
58SEPA kredito pervedimas
49Tiesioginis nuskaitymas
48Kredito kortelė

Kaip veikia validavimas

Prieš sąskaitą galima išsiųsti per PEPPOL, ji turi praeiti kelis validavimo patikrinimus:

XML schema (XSD)Automatiškai

Tikrina, ar XML struktūra yra teisinga — visi reikalingi elementai yra ir tinkamai įdėti, naudojami teisingi duomenų tipai.

Schematron taisyklėsAutomatiškai

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.

PEPPOL kodų sąrašaiAutomatiškai

Patikrina, ar visi kodai (valiuta, šalis, vienetas, PVM kategorija) yra iš oficialių PEPPOL patvirtintų sąrašų.

Skaičiavimo patikrinimasAutomatiškai

Patvirtina, kad eilutės sumos teisingai sumuojasi, PVM apskaičiuotas teisingai, o galutinė mokėtina suma yra tiksli.

Validavimas aiDoks

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
<?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>