eFaktúra
Recept na odosielanie a príjem eFaktúr cez sieť Peppol z vášho fakturačného systému — bez toho, aby ste sa museli stať certifikovaným poskytovateľom prístupového bodu (digitálnym poštárom) Peppol. Ktoré endpointy volať, v akom poradí a čo zatiaľ API nepokrýva.
Čo tento scenár rieši
Váš systém faktúry vystavuje ďalej po svojom a do KROSu ich zapisuje cez API s príznakom eFaktúry. KROS sa postará o napojenie na sieť Peppol — formát Peppol BIS Billing 3.0, doručenie odberateľovi aj sledovanie stavu. O zmene stavu vás upozorní webhook a stav si prečítate priamo z faktúry. Opačným smerom prichádzajú do KROSu eFaktúry od vašich dodávateľov a váš systém si ich aj s prílohami prečíta cez API.
Tok dát
POST /api/invoices s isEInvoice: true; KROS faktúru odošle do siete Peppol (zatiaľ z aplikácie KROS, odoslanie cez API pripravujeme); stav odoslania príde na váš webhook a podrobnosti v objekte eInvoice vráti GET /api/invoices/{id}. Prijaté eFaktúry prichádzajú zo siete Peppol do KROSu a váš systém ich číta cez GET /api/expenses.Odosielanie eFaktúr
-
Autorizácia
Samostatný fakturačný systém mimo KROS aplikácie použije Integration Consent. Ak beží vnútri KROS aplikácie ako doplnok, získa token cez Token Broker.
-
Zápis faktúry ako eFaktúry
Faktúru pošlite cez POST
/api/invoices, prípadne dávkovo cez POST/api/invoices/batch, s vlastnosťouisEInvoice: true. Odberateľ musí mať vyplnené DIČ (partner.taxId) a firma v KROSe musí mať eFaktúru zapnutú — inak príznak nastaviť nejde. -
Potvrdenie spracovania
API odpovie
202 Accepteds poľomrequestId— to znamená len prijaté, nie spracované. Výsledok zápisu príde na váš webhook. -
Odoslanie odberateľovi
Samotné odoslanie eFaktúry do siete Peppol (alebo e-mailom) zatiaľ spúšťa používateľ v aplikácii KROS. Odoslanie cez API pripravujeme.
-
Sledovanie stavu v sieti Peppol
Pri vytvorení eFaktúry aj pri každej jej zmene — vrátane zmeny stavu v sieti Peppol — pošle KROS webhook. Webhook nesie hlavičku dokladu (
id, číslo, rad); samotný stav si potom prečítate cez GET/api/invoices/{id}v objekteeInvoice:isEInvoice— či je faktúra označená na odoslanie ako eFaktúra,status— stav v sieti Peppol, prázdny, kým faktúra neodišla,sentAt— kedy faktúra odišla do siete Peppol (UTC),peppolId— identifikátor eFaktúry v sieti Peppol,errorMessage— prečo eFaktúra neprešla validáciou,xmlLink— odkaz na odoslané XML vo formáte Peppol BIS 3.0.
Zoznam GET
/api/invoicesvraciaeInvoicetiež, alepeppolIdaerrorMessagesú v ňom vždy prázdne — tie nájdete len v detaile. -
XML eFaktúry
Ak potrebujete samotný XML dokument eFaktúry — napríklad na archiváciu vo vašom systéme — stiahnete ho cez GET
/api/invoices/{id}/reports/einvoiceBis3. Rovnakú adresu nájdete veInvoice.xmlLink; kým eFaktúra neodíde do siete Peppol, je odkaz prázdny.
Príjem eFaktúr
-
Načítanie prijatých dokladov
Prijaté eFaktúry čítate cez GET
/api/expenses. Endpoint vracia všetky druhy výdavkov, preto ak vás zaujímajú len faktúry, filtrujte parametromDocumentType— napríkladDocumentType=10pre prijaté faktúry. Pri pravidelnej synchronizácii pridajteLastModifiedTimestamp, aby ste stiahli len to, čo sa od posledného behu zmenilo. -
Prílohy
Ak má doklad
hasAttachments: true, zoznam príloh získate cez GET/api/attachments/expenses/{documentId}a obsah každej z nich cez GET/api/attachments/expenses/{documentId}/{attachmentId}/content.
Odporúčané endpointy
| Metóda | Cesta | Prečo |
|---|---|---|
| POST | /api/invoices |
Zapíše faktúru; s isEInvoice: true ako eFaktúru. |
| POST | /api/invoices/batch |
To isté dávkovo, maximálne 100 faktúr v jednej požiadavke. |
| GET | /api/invoices/{id} |
Vráti detail faktúry; objekt eInvoice nesie stav v sieti Peppol, peppolId, errorMessage a xmlLink. |
| GET | /api/invoices |
Vráti zoznam faktúr aj so stavom eFaktúry — bez peppolId a errorMessage. |
| GET | /api/invoices/{id}/reports/einvoiceBis3 |
Stiahne odoslanú eFaktúru ako XML vo formáte Peppol BIS Billing 3.0. |
| GET | /api/expenses |
Vráti prijaté doklady vrátane eFaktúr; s DocumentType len zvolený druh. |
| GET | /api/attachments/expenses/{documentId} |
Vráti zoznam príloh prijatého dokladu. |
| GET | /api/attachments/expenses/{documentId}/{attachmentId}/content |
Stiahne obsah jednej prílohy. |
Na čo si dať pozor
isEInvoice posielajte pri každej úprave
POST /api/invoices faktúru vytvára aj aktualizuje. Pri úprave existujúcej faktúry treba isEInvoice: true poslať vždy znova — vynechaná hodnota sa považuje za false a príznak eFaktúry z faktúry zmizne.
Odberateľ musí mať DIČ
Príznak eFaktúry sa dá nastaviť len vtedy, keď má partner na faktúre vyplnené DIČ (taxId) a firma má v KROSe eFaktúru zapnutú. Ak jedna z podmienok chýba, faktúra sa ako eFaktúra nezapíše — výsledok si overte vo webhooku.
Odoslaná eFaktúra je zamknutá
Faktúru, ktorá už odišla ako eFaktúra, už prepísať nemožno. Opakovaný POST na ňu skončí problémom v notifikácii namiesto prepisu — pozri Čo API umožňuje.
Stavy eFaktúry v sieti Peppol
Pole eInvoice.status nadobúda tieto hodnoty:
pending— eFaktúra čaká na odoslanie,sent— odišla do siete Peppol,confirmed— doručenie je potvrdené,validationFailed— neprešla validáciou; dôvod je verrorMessage(len v detaile faktúry), faktúru opravte a odošlite znova,sendingFailed— odoslanie do siete Peppol zlyhalo,deliveryFailed— sieť Peppol eFaktúru príjemcovi nedoručila.
Kým nie je stav sent alebo confirmed, nepovažujte eFaktúru za odoslanú. Staršie pole sentStatus stav eFaktúry tiež odráža, no pre novú integráciu čítajte eInvoice.status.
Pripravujeme
Pripravujeme
Nasledujúce funkcie ešte nie sú v API dostupné. Nestavajte na nich návrh integrácie, kým ich tu neoznačíme ako hotové.
- Odoslanie eFaktúry cez API. Dnes eFaktúru cez API vytvoríte, ale odoslať ju odberateľovi — do siete Peppol aj e-mailom — treba v aplikácii KROS. Pracujeme na tom, aby sa dalo odoslanie spustiť priamo z vášho systému.
- Vlastné prílohy k faktúre. K faktúre aj eFaktúre bude možné pripojiť vlastný vizuál v PDF alebo ďalšie prílohy, napríklad súpis prác či dodací list. Takto pridané prílohy sa prenesú cez sieť Peppol až k vášmu odberateľovi.
Ak od eFaktúry v API potrebujete niečo ďalšie, napíšte nám na integracie@kros.sk — konkrétne požiadavky od integrátorov zohľadníme pri návrhu.