Protocol lab26. jún 20269 min čítania

Ako napojiť svoj ERP systém do siete Peppol bez bolesti hlavyalebo akejkoľvek znalosti UBL

Písali ste nám to v mailoch: najväčší problém nie je Peppol ako sieť, ale starý ERP, exporty, mapovanie polí a UBL 2.1 XML. A úprimne, myslíme si, že toto by nemala byť vaša bolesť hlavy. Peppol starosti máte nechať na nás.

Bez UBL projektuPreview-only demoReálny mapper engine
connector.mapper.previewreal backend
inputlegacy-export.xml
enginebuildConnectorMapperPreview()
nextrepairActions[0].patch.replaceLine
Čitateľný výstup namiesto XML projektu

Mapper povie čo našiel, čo chýba a kde presne má vývojár opraviť vstup, aby faktúra prešla do Peppolu.

ERP export
XML, CSV, JSON, TXT
Mapper preview
found / missing / confidence
repairActions
riadok, pole, patch
templateKey API
ďalšie faktúry už cez endpoint
Live repair lab

Drag & drop mapper napojený na backend

Toto nie je mock. Komponent volá /api/public/connector-mapper-demo a route používa rovnaký mapper engine ako Connector Studio. Verejná ukážka neposiela doklady a neukladá template-y.

Skúste najprv predvyplnené XML. Je v ňom jeden zlý closing tag, presne ten typ chyby, ktorý staré ERP exporty občas vyrobia.

Čo vieme prečítať

Po analýze tu uvidíte číslo dokladu, odberateľa alebo položky.

Čo ešte chýba

Zatiaľ neevidujeme chýbajúce polia.

Prečo sme to spravili

ERP export má byť vstup, nie projekt na tri mesiace

ePošťák bol od začiatku developer-first produkt. Nie preto, že radi kreslíme API diagramy, ale preto, že reálne integrácie nevznikajú v peknom formulári. Vznikajú v starom ERP, v CSV exporte s divnými názvami stĺpcov, v XML, ktoré je skoro dobré, alebo v PDF faktúre, ktorú niekto používa už desať rokov.

Preto sme do integrátorského portálu pridali nástroj, ktorý interne voláme Integracny co-pilot. Je súčasťou ePošťák Connector funkcionality. Drag & dropnete súbor, ktorý vie váš ERP vypluť: XML, CSV, JSON, TXT, PDF alebo obrázok. Co-pilot skúsi prečítať všetko, čo bezpečne vie, a potom nepovie len “chyba”. Povie: toto som našiel, toto chýba, toto treba potvrdiť, a takto to doplníte.

Ako to funguje

Najprv preview, potom templateKey, až potom preflight

  1. 1. Pošlete vzorku exportu. Stačí jeden reálny výstup z ERP. V portáli cez drag & drop, v API cez sourceText alebo sourceJson.
  2. 2. Mapper vráti preview. Odpoveď obsahuje copilot.found, copilot.missing, repairActions a návrh Connector Autopilot payloadu.
  3. 3. Opravíte iba to, čo treba. Ak je chyba na konkrétnom riadku, ukážeme riadok. Ak chýba Peppol ID, ukážeme pole a odporúčaný formát, napríklad 0245:<DIČ>.
  4. 4. Uložíte mapping profil. Keď vzorka prejde, uloží sa templateKey. Ďalšie faktúry z rovnakého ERP už voláte cez API.
Produkčný snippet

Takto to zavolá váš backend

Produkčný endpoint je autentifikovaný integrátorským tokenom. To je zámer: preview síce vie bežať bezpečne, ale uloženie template, stage a send už patria pod konkrétnu integrátorskú firmu a jej sandbox alebo produkčné oprávnenia.

TypeScript
const response = await fetch("https://epostak.sk/api/v1/connector/mapper", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk_int_live_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    templateKey: "pohoda-csv-v1",
    customerRef: "cust_123",
    sourceType: "csv",
    sourceText: erpExport,
    execute: "preview"
  })
});

const { preview, launchChecklist } = await response.json();

if (preview.repairActions.length) {
  // Ukážte používateľovi presný ďalší krok:
  // riadok, pole, návrh hodnoty alebo patch.
  console.log(preview.repairActions[0]);
}
Prečo demo nie je mock

Článková ukážka volá rovnaký parser

Verejný blog nemôže ukladať vaše template-y ani púšťať OCR nad cudzími faktúrami bez prihlásenia. Ukážka vyššie však nie je mock: posiela vstup na backend route, ktorá volá rovnaký buildConnectorMapperPreview engine ako integrátorský portál. Rozdiel je iba v tom, že demo je preview-only.

server preview
// Verejné demo v tomto článku nie je mock.
// Route volá rovnaký backend mapper engine ako Connector Studio.
import { buildConnectorMapperPreview } from "@/lib/connector/mapper";

const preview = buildConnectorMapperPreview({
  sourceType: "xml",
  sourceText,
  customerRef: "blog-demo"
});
Čo dostanete v odpovedi

Nie iba error, ale ďalší krok

found

Hodnoty, ktoré sme vedeli prečítať: číslo dokladu, odberateľ, položky, mena alebo raw UBL.

missing

Povinné polia, ktoré ešte chýbajú pred preflightom alebo stage krokom.

repairActions

Konkrétne opravy: cieľ editácie, riadok, návrh hodnoty, potvrdenie alebo patch.

Prístup

Ako sa dostať do integrátorského rozhrania

Ak máte ERP, účtovný systém alebo interný fakturačný nástroj a chcete ho napojiť na Peppol bez vlastnej UBL implementácie, napíšte nám na info@epostak.sk. Pošleme vám prístup do integrátorského portálu a sandbox prostredia. Na stránke epostak.sk/connector nájdete aj tlačidlo požiadať o prístup.

A ešte jedna ľudská poznámka na záver: ďakujeme za maily, kde nám posielate reálne exporty a divné edge cases. Presne z nich tento nástroj vzniká. Nie z workshopovej prezentácie, ale z faktúr, ktoré sa v skutočnom ERP naozaj objavia.

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í