UBL 2.1 XML formāts

Tehniskais formāts aiz PEPPOL rēķiniem. Saprotiet, kā jūsu rēķina dati ir strukturēti mašīnu savstarpējai komunikācijai.

Kas ir UBL?

UBL (Universal Business Language) ir starptautisks standarts biznesa dokumentu, piemēram, rēķinu, strukturēšanai. Domājiet par to kā par precīzu veidni, kas pasaka datoriem precīzi, kur atrast katru informācijas daļu — rēķina numuru, summas, PVN, pārdevēja detaļas un tā tālāk.

Kad jūs veidojat rēķinu aiDoks, mēs automātiski konvertējam jūsu datus šajā UBL XML formātā. Tas nodrošina, ka jebkura sistēma, kas saņem jūsu rēķinu, var to pareizi nolasīt, neatkarīgi no izmantotās programmatūras.

Jums nav jāraksta XML

aiDoks automātiski ģenerē perfektu UBL XML no jūsu ievades. Šī lapa ir tiem, kas vēlas saprast, kas notiek aizkulisēs, vai tiem, kas strādā ar nepilnīgiem failiem.

Rēķina struktūra īsumā

Katrs PEPPOL rēķins satur šīs galvenās sadaļas šādā secībā:

Galvenes informācijaRēķina numurs, datumi, valūta un PEPPOL identifikatori
Pārdevējs (Piegādātājs)Jūsu uzņēmuma nosaukums, adrese, PVN numurs, PEPPOL ID
Pircējs (Klients)Klienta uzņēmuma detaļas un PEPPOL ID
Maksājuma informācijaBankas konts, maksājuma metode, maksājuma noteikumi
Nodokļu kopsavilkumsPVN sadalījums pēc kategorijas un likmes
KopsummasPozīciju kopsumma, nodokļu kopsumma un maksājamā summa
PozīcijasKatrs produkts/pakalpojums ar daudzumu, cenu un PVN

Galveno elementu skaidrojums

Lūk, vissvarīgākās UBL rēķina daļas un kas tās satur:

PEPPOL identifikatori
<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 identifikatori paziņo saņemošajām sistēmām, ka šis ir PEPPOL BIS 3.0 atbilstošs rēķins. Tie ir vienmēr vienādi standarta rēķiniem — aiDoks tos pievieno automātiski.

Rēķina detaļas
<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ūsu rēķina numurs, izsniegšanas datums, termiņš, tips (380 = standarta rēķins) un valūta. Datumiem jābūt YYYY-MM-DD formātā.

Pārdevēja informācija
<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ūsu uzņēmuma detaļas. EndpointID ar schemeID ir jūsu PEPPOL dalībnieka identifikators — tā tīkls zina, kur piegādāt atbildes.

Rēķina pozīcija
<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>

Katra prece, par ko jūs izrakstāt rēķinu. Ietver pozīcijas numuru, daudzumu (ar vienības kodu, piemēram, HUR stundām), pozīcijas kopsummu, preces aprakstu un vienības cenu. Var būt vairāki InvoiceLine elementi.

Bieži kodu atsauce

PEPPOL dalībnieka ID shēmas

Shēmas IDValstsApraksts
0191IgaunijaPVN numurs (EE + 9 cipari)
0192IgaunijaBiznesa reģistra kods (8 cipari)
0193LatvijaPVN numurs (LV + 11 cipari)
0200LietuvaPVN numurs (LT + 9-12 cipari)
9915AustrijaPVN numurs
9930ItālijaPVN numurs

Maksājuma metodes kodi

30Bankas pārskaitījums (visbiežākais)
58SEPA kredīta pārskaitījums
49Tiešā debeta
48Kredītkarte

Kā darbojas validācija

Pirms rēķinu var nosūtīt caur PEPPOL, tam jāizietur vairākas validācijas pārbaudes:

XML shēma (XSD)Automātiski

Pārbauda, vai XML struktūra ir pareiza — visi nepieciešamie elementi ir klātesoši, pareizi ligzdoti un izmanto pareizos datu tipus.

Schematron noteikumiAutomātiski

Validē biznesa noteikumus — piemēram, ka PVN summas atbilst aprēķinātajām vērtībām, nepieciešamie lauki ir aizpildīti pamatojoties uz kontekstu, un kodu vērtības ir derīgas.

PEPPOL kodu sarakstiAutomātiski

Pārbauda, vai visi kodi (valūta, valsts, vienība, PVN kategorija) ir no oficiālajiem PEPPOL apstiprinātajiem sarakstiem.

Aprēķinu pārbaudeAutomātiski

Apstiprina, ka pozīciju kopsummas saskaitās pareizi, PVN tiek aprēķināts pareizi un galīgā maksājamā summa ir precīza.

Validācija aiDoks

aiDoks palaiž visas šīs validācijas pirms nosūtīšanas. Ja ir kļūdas, jūs redzēsiet konkrētus ziņojumus, kas izskaidro, kas jālabo — parasti trūkstošs lauks vai nepareiza vērtība.

Parauga rēķina fails

Vai vēlaties redzēt pilnu piemēru? Lūk, minimāls derīgs PEPPOL rēķins:

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>