📢 Webinár Finančnej správy SR — 9. apríl 2026, 14:00. ePošťák bude prezentovať ako dodávateľ riešení. Pripojte sa →

technické9 min čítania·Aktualizované 8. marca 2026

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

Aktualizované 8. marca 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 rozširuje túto povinnosť aj na B2B faktúry od roku 2027. Slovenská Finančná správa vydala doplňujúce pravidlá (SK CIUS) pre špecifické požiadavky miestnej legislatívy.
🔧š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">SK1234567890</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 SK pravidiel

🇸🇰

Slovenský CIUS — doplňujúce požiadavky

Okrem štandardných požiadaviek Peppol BIS Billing 3.0 Finančná správa SR vydala slovenský CIUS (Core Invoice Usage Specification) s lokálnymi doplneniami. Povinné polia pre SK faktúry:

  • 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
🔍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 SK CIUS 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.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 SK CIUS pravidiel. 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ť faktúru v Peppol BIS Billing 3.0 formáte (POST /invoices/send)
  • ✅ Prijímať faktúry cez webhook (POST na váš endpoint pri každej novej faktúre)
  • ✅ Sledovať stav doručenia (GET /invoices/{id}/status)
  • ✅ Stiahnuť archivované faktúry (GET /invoices/{id}/download)
  • ✅ Validovať faktúru pred odoslaním (POST /invoices/validate)

API používa JSON obálku s base64-enkódovaným XML payload. Autentifikácia prebieha cez API kľúč v hlavičke X-API-Key.

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

POST https://api.epostak.sk/v1/invoices/send
Content-Type: application/json
X-API-Key: your-api-key-here

{
  "recipientPeppolId": "9950:SK9876543210",
  "invoiceFormat": "PEPPOL_BIS_3",
  "invoiceXml": "<base64-encoded XML faktúry>",
  "metadata": {
    "invoiceNumber": "INV-2026-001",
    "issueDate": "2026-02-17",
    "totalAmount": 120.00,
    "currency": "EUR"
  }
}

// Odpoveď (HTTP 202 Accepted):
{
  "invoiceId": "epostak-uuid-12345",
  "status": "QUEUED",
  "estimatedDelivery": "2026-02-17T14:30:00Z"
}
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ý CIUS (Core Invoice Usage Specification) pridáva lokálne požiadavky: povinné IČO a DIČ v slovenskom formáte, špecifické pravidlá pre DPH, povinný IBAN pre B2B faktúry. Faktúra validná podľa SK CIUS je zároveň validná podľa európskeho profilu — opačne to neplatí vždy.
Pre testovanie v sandbox prostredí ePošťáka vám pridelíme testovacie Peppol ID automaticky po registrácii. Pre testovanie s externým Peppol sandbox prostredím (napr. Peppol testnet) môžete použiť ID vo formáte0096:TEST-[vaše-IČO]. Detailný postup je v API dokumentácii.

Súvisiace články

začnite

Aktivujte si Peppol schránku zdarma

Registrácia trvá 1 minútu. Bez viazanosti, bez kreditnej karty.

Registrovať sa