technické9 min čítania·Aktualizované 22. augusta 2026

Peppol BIS Billing 3.0: technický formát slovenských e-faktúr

Aktualizované 22. augusta 2026: Opravený kód schémy EndpointID z 0196 (Island) na 0245 (slovenský identifikátor podľa Finančnej správy SR). Opravený názov validačného nástroja (VeraPDF nahradený Schematron CLI).

Tento článok je určený vývojárom a IT tímom, ktoré implementujú e-fakturáciu pre svoju firmu alebo klientov. Vysvetlíme, čo presne je formát Peppol BIS Billing 3.0, ako vyzerá XML štruktúra faktúry, aké polia sú povinné podľa slovenských pravidiel a ako faktúry validovať a testovať. Ak hľadáte riešenie bez nutnosti implementovať Peppol priamo, pozrite si sekciu o ePošťák API.

📄formát

Čo je Peppol BIS Billing 3.0

Peppol BIS Billing 3.0 (Business Interoperability Specification) je štandardizovaný formát elektronických faktúr používaný v rámci siete Peppol. Je postavený na štandarde UBL 2.1 (Universal Business Language) — XML formáte spravovanom konzorciom OASIS.

📐

UBL 2.1 — základ formátu

UBL (Universal Business Language) je otvorený XML štandard pre obchodné dokumenty. Peppol BIS Billing 3.0 používa UBL 2.1 ako základný formát a pridáva k nemu špecifické pravidlá a povinné polia pre fakturáciu v rámci EÚ. Faktúry sú teda štandardné XML súbory s presne definovanou schémou.
🌍

Prečo Peppol zvolil UBL 2.1

UBL 2.1 bol zvolený pre svoju rozšírenosť, otvorenú licenciu a bohatú podporu v existujúcich nástrojoch. Oproti proprietárnym formátom (EDI, PDF s dátovými poliami) je UBL strojovo čitateľný, rozšíriteľný a podporovaný v softvérových knižniciach pre takmer všetky programovacie jazyky.
🇪🇺

Mandát EÚ a slovenská implementácia

Smernica EÚ 2014/55/EU vyžaduje, aby verejné obstarávanie prijímalo e-faktúry v štandarde EN 16931, ktorý Peppol BIS Billing 3.0 implementuje. Slovensko zavádza od roku 2027 štruktúrovanú e-faktúru pre zákonom určené tuzemské plnenia podľa § 85o; samotné B2B označenie nestačí. Finančná správa SR zverejňuje implementačné a validačné pokyny pre slovenský režim elektronickej fakturácie.
🔧štruktúra

Štruktúra XML faktúry

Peppol BIS Billing 3.0 faktúra je XML dokument s koreňovým elementom Invoice v namespace UBL. Tu je zjednodušená kostra dokumentu:

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

  <!-- Povinná hlavička -->
  <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>

  <!-- Identifikácia faktúry -->
  <cbc:ID>INV-2026-001</cbc:ID>
  <cbc:IssueDate>2026-02-17</cbc:IssueDate>
  <cbc:DueDate>2026-03-03</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>

  <!-- Predávajúci a kupujúci -->
  <cac:AccountingSupplierParty> ... </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty> ... </cac:AccountingCustomerParty>

  <!-- Platobné podmienky -->
  <cac:PaymentMeans> ... </cac:PaymentMeans>

  <!-- Daňové súhrny -->
  <cac:TaxTotal> ... </cac:TaxTotal>

  <!-- Celkové sumy -->
  <cac:LegalMonetaryTotal> ... </cac:LegalMonetaryTotal>

  <!-- Položky faktúry -->
  <cac:InvoiceLine> ... </cac:InvoiceLine>

</Invoice>
🔑

CustomizationID a ProfileID — povinná hlavička

Každá Peppol BIS Billing 3.0 faktúra musí obsahovať presne tieto dve polia:

  • CustomizationID: identifikuje konkrétny profil (BIS Billing 3.0)
  • ProfileID: identifikuje obchodný proces (fakturácia)

Tieto hodnoty sú fixné — musíte ich použiť presne tak, ako sú definované v špecifikácii. Akákoľvek odchýlka spôsobí zlyhanie validácie.

🏢

Identifikácia predávajúceho a kupujúceho

Pre slovenské faktúry musí identifikácia subjektov obsahovať:

  • IČO — v elemente PartyLegalEntity/CompanyID
  • DIČ / IČ DPH — v elemente PartyTaxScheme/CompanyID
  • Peppol ID — v elemente EndpointID s atribútom schemeID="0245"
  • Adresa — ulica, PSČ, mesto, krajina (ISO 3166-1 alpha-2)

Príklad identifikácie predávajúceho:

<cac:AccountingSupplierParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0245">2020298610</cbc:EndpointID>
    <cac:PartyName>
      <cbc:Name>Moja Firma s.r.o.</cbc:Name>
    </cac:PartyName>
    <cac:PostalAddress>
      <cbc:StreetName>Hlavná 1</cbc:StreetName>
      <cbc:CityName>Bratislava</cbc:CityName>
      <cbc:PostalZone>81101</cbc:PostalZone>
      <cac:Country>
        <cbc:IdentificationCode>SK</cbc:IdentificationCode>
      </cac:Country>
    </cac:PostalAddress>
    <cac:PartyTaxScheme>
      <cbc:CompanyID>SK1234567890</cbc:CompanyID>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:PartyTaxScheme>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Moja Firma s.r.o.</cbc:RegistrationName>
      <cbc:CompanyID>12345678</cbc:CompanyID>
    </cac:PartyLegalEntity>
  </cac:Party>
</cac:AccountingSupplierParty>
📦

Položky faktúry, sumy a DPH

Každá položka faktúry (InvoiceLine) musí obsahovať:

  • ID — poradové číslo riadku
  • InvoicedQuantity — množstvo s jednotkou (napr. unitCode="EA" pre kusy)
  • LineExtensionAmount — suma bez DPH
  • TaxTotal — DPH pre daný riadok
  • Item/Name — popis položky
  • Price/PriceAmount — jednotková cena

Element LegalMonetaryTotal v koreni dokumentu musí obsahovať agregované sumy: LineExtensionAmount, TaxExclusiveAmount, TaxInclusiveAmount a PayableAmount.

✅povinné polia

Povinné polia podľa slovenských pravidiel

🇸🇰

Slovenské požiadavky na údaje

Okrem štandardných požiadaviek Peppol BIS Billing 3.0 treba pri slovenských faktúrach správne uviesť identifikátory a daňové údaje podľa platnej legislatívy a pokynov Finančnej správy SR. Typicky ide o tieto polia:

  • BT-1 — Číslo faktúry (Invoice/ID)
  • BT-2 — Dátum vystavenia (IssueDate)
  • BT-3 — Typ faktúry (InvoiceTypeCode: 380 = faktúra, 381 = dobropis)
  • BT-5 — Mena (DocumentCurrencyCode: EUR)
  • BT-9 — Dátum splatnosti (DueDate)
  • BT-27 — Názov predávajúceho
  • BT-29 — IČO predávajúceho (PartyLegalEntity/CompanyID)
  • BT-31 — IČ DPH predávajúceho (ak platca DPH)
  • BT-46 — IČO kupujúceho
  • BT-49 — Peppol ID kupujúceho (EndpointID)
  • BT-84 — IBAN účtu (PaymentMeans/PayeeFinancialAccount)
  • BT-110 — Základ DPH
  • BT-111 — Sadzba DPH (%)
  • BT-112 — Suma DPH
  • BT-106 — Suma faktúry bez DPH
  • BT-112 — Celková suma s DPH

Ak si chcete pozrieť, kde sa jednotlivé BT a BG polia nachádzajú v dokumente, otvorte si našu interaktívnu mapu UBL XML polí. Po kliknutí na pole v XML sa zvýrazní jeho hodnota v čitateľnej faktúre a naopak.

🔍validácia

Validácia a testovanie

Pred odoslaním faktúry do produkčného prostredia Peppol je nevyhnutné overiť jej správnosť. Validácia prebieha na viacerých úrovniach:

1️⃣

Schéma validácia (XSD)

Prvá úroveň — overenie, či XML dokument spĺňa UBL 2.1 schému. XSD súbory sú dostupné na stránke OASIS a v Peppol repozitároch. Validáciu môžete spustiť lokálne pomocou ľubovoľného XML validátora (napr. xmllint, Saxon alebo IDE pluginy pre VS Code / IntelliJ).
2️⃣

Schematron validácia (business rules)

Druhá úroveň — overenie biznis pravidiel definovaných v Peppol BIS špecifikácii (PEPPOL-EN16931-R*) a v slovenských implementačných pravidlách. Schematron pravidlá sú dostupné v repozitári OpenPEPPOL/peppol-bis-invoice-3 na GitHub. Nástroje: Phive (odporúčaný), Schematron CLI, online validátory.
3️⃣

Online validátory

Pre rýchlu kontrolu bez lokálnej inštalácie:

  • — Peppol Validator ePošťáka — kontrola UBL/XML podľa Peppol BIS Billing 3.0 a EN 16931
  • — peppol.helger.com/en — Phive online validátor (odporúčaný)
  • — ecosio.com/peppol-validator — vizuálny validátor s popisom chýb
  • — Sandbox prostredie ePošťáka — priamo testujete doručenie cez sieť
4️⃣

Sandbox testovanie cez ePošťák

ePošťák poskytuje sandbox prostredie, kde môžete odosielať testovacie faktúry bez toho, aby dorazili skutočným príjemcom. Sandbox validuje faktúry rovnakými pravidlami ako produkcia — vrátane slovenských pravidiel pre povinné údaje. Chyby sú reportované s presným popisom a odkazom na porušené pravidlo.
🚀API integrácia

Integrácia cez ePošťák API

⚡

Peppol bez vlastnej implementácie

Ak nechcete implementovať Peppol infraštruktúru sami (Access Point, certifikáty, 4-corner model), ePošťák poskytuje REST API, cez ktoré môžete:

  • ✅ Odoslať podporovaný dokument cez Enterprise API (POST /api/v1/documents/send)
  • ✅ Čítať prijaté dokumenty a používať webhooky podľa udelených oprávnení
  • ✅ Sledovať životný cyklus cez Enterprise API (GET /api/v1/documents/{id}/status)
  • ✅ Validovať payload podľa aktuálne dokumentovaného kontraktu
  • ✅ Rozlíšiť prijatie požiadavky HTTP 202 od potvrdeného doručenia

Autentifikácia, oprávnenia, povinnosť hlavičky X-Firm-Ida tvar payloadu závisia od zvoleného kontraktu. SAPI a Enterprise API nie sú zameniteľné; overte ich v aktuálnej dokumentácii.

Príklad odoslania faktúry cez ePošťák REST API:

POST https://epostak.sk/api/v1/documents/send
Authorization: Bearer <token>
X-Firm-Id: <uuid-firmy>
Content-Type: application/json

{
  "receiverPeppolId": "0245:2020202020",
  "invoiceNumber": "FV-2026-0001",
  "issueDate": "2026-08-22",
  "currency": "EUR",
  "items": [{ "description": "Služba", "quantity": 1, "unitPrice": 100, "vatRate": 23 }]
}

// HTTP 202 potvrdzuje prijatie na spracovanie, nie doručenie.
// Výsledný stav sledujte cez dokumentovaný Enterprise endpoint:
GET /api/v1/documents/{id}/status
❓FAQ

Časté otázky

Väčšina firiem nemusí implementovať Peppol priamo. Priama implementácia (vlastný Access Point, správa certifikátov, zapojenie do Peppol siete) je nákladná a technicky náročná — má zmysel len pre veľkých hráčov s vysokými objemami a vlastným IT tímom. Pre väčšinu prípadov je oveľa jednoduchšie a lacnejšie použiť ePošťák REST API — vy posielate validné XML, my sa staráme o zvyšok.
Peppol BIS Billing 3.0 je jednotný európsky profil — technicky rovnaký v celej EÚ. Slovenské použitie vyžaduje správne identifikátory a daňové údaje podľa platnej legislatívy a aktuálnych pokynov Finančnej správy SR, najmä IČO, DIČ, DPH údaje a IBAN tam, kde sú relevantné. Faktúra musí zostať validná podľa Peppol BIS Billing 3.0 a EN 16931.
Testovací identifikátor a prostredie musia zodpovedať dokumentácii konkrétneho sandboxu. ePošťák ho poskytne až v rámci testovacieho onboardingu; produkčný identifikátor ani svojvoľne vytvorená hodnota nie sú náhradou. Aktuálny postup a podporovaný formát overte v API dokumentácii alebo u podpory.

Súvisiace články

◆ Zákonná povinnosť sa blíži

Splňte si povinnosť prijímať e-faktúry

Od 1. 1. 2027 musia firmy vedieť prijímať e-faktúry cez Peppol. Aktivujte si schránku zdarma a buďte pripravení skôr, než to začne riešiť každý naraz.

1

Zadajte základné údaje firmy.

2

Prejdite krátkym overením a potvrdením schránky.

3

Po aktivácii môžete prijímať e-faktúry cez Peppol Box.

◆Certifikovaný poskytovateľ FS SR
◆Príjem e-faktúr vo webovom rozhraní do limitu programu Zadarmo (500 prijatých a 5 odoslaných faktúr mesačne)
◆Aktivačný email po potvrdení