Preskočiť na obsah

Integrácia s KSeF

Modul KSeF odosiela elektronické faktúry do Krajowego Systemu e-Faktur (poľské Ministerstvo financií). Faktúry sa odosielajú na pozadí, s automatickým opakovaním pri chybách.

KSeF je platforma poľského Ministerstva financií na spracovanie faktúr vo formáte XML. Plugin generuje faktúry v požadovanom formáte a odosiela ich do KSeF.

Prejdite na WooCommerce > Nastavenia > Polski > Moduly PRO > KSeF.

NastaveniePopis
Zapnúť integráciu KSeFAktivuje modul
ProstredieTestovacie (sandbox) alebo Produkčné
API kľúč (token)Autorizačný token vygenerovaný v portáli KSeF
NIP vystavovateľaNIP priradený ku kontu KSeF

KSeF má testovacie prostredie (sandbox) na overenie integrácie. Sandbox:

  • nevyžaduje skutočný autorizačný kľúč
  • prijíma faktúry v rovnakom formáte ako produkčné prostredie
  • neodosiela údaje na daňový úrad
  • odporúča sa pre prvé testy integrácie

Po úspešných testoch prepnite na produkčné prostredie a zadajte správny API kľúč.

  1. Prihláste sa do portálu KSeF: https://ksef.mf.gov.pl/
  2. Prejdite do sekcie správy tokenov
  3. Vygenerujte nový token s oprávneniami na vystavovanie faktúr
  4. Skopírujte token a vložte ho do nastavení pluginu

Zapnite Automatické odosielanie do KSeF, aby plugin odoslal faktúru do KSeF po zmene stavu na “Vystavená”. Odosielanie funguje na pozadí cez Action Scheduler.

V meta boxe “Faktúry” kliknite na Odoslať do KSeF. Úloha sa zaradí do fronty Action Scheduler.

Plugin používa Action Scheduler (zabudovaný vo WooCommerce) na odosielanie na pozadí:

  • odosielanie neblokuje spracovanie objednávky
  • faktúry sa odosielajú postupne
  • veľké množstvá faktúr sa spracúvajú postupne

Plugin generuje faktúru vo formáte XML kompatibilnom so schémou KSeF (FA(2)). XML dokument obsahuje:

  • hlavičku s dátumom a typom faktúry
  • údaje predajcu (NIP, názov, adresa)
  • údaje odberateľa (NIP, názov, adresa)
  • položky faktúry (názov, množstvo, cena netto, sadzba VAT, hodnota)
  • súhrn s rozdelením podľa sadzieb VAT
  • informácie o platbe

XML sa pred odoslaním validuje. Pri chybách validácie sa faktúra neodošle a v logu sa objaví správa.

Po odoslaní faktúry do KSeF plugin sleduje jej stav:

StavPopis
QueuedFaktúra pridaná do fronty na odoslanie
SubmittedFaktúra odoslaná do KSeF, čaká na spracovanie
AcceptedFaktúra prijatá KSeF, pridelené číslo KSeF
RejectedFaktúra zamietnutá - skontrolujte chybovú správu
ErrorChyba komunikácie s API KSeF

Po prijatí plugin uloží číslo KSeF. Je viditeľné v paneli objednávky a na PDF.

Plugin automaticky kontroluje stav odoslaných faktúr každých niekoľko minút (cez Action Scheduler), kým nedostane odpoveď “Accepted” alebo “Rejected”.

Pri chybách API plugin opakuje pokusy s narastajúcim oneskorením (exponential backoff):

PokusOneskorenie
1. opakovanie5 minút
2. opakovanie25 minút
3. opakovanie125 minút

Po troch neúspešných pokusoch dostane faktúra stav “Error”. Administrátor dostane e-mail o neúspešnom odoslaní.

Typické príčiny chýb:

  • nesprávny alebo expirovaný API token
  • chyby validácie XML (napr. chýbajúce údaje odberateľa)
  • dočasná nedostupnosť API KSeF
  • nezhoda NIP vystavovateľa s tokenom

Akcia volaná pred odoslaním faktúry do KSeF.

/**
* @param int $invoice_id ID faktury
* @param string $xml Wygenerowany XML faktury
*/
do_action('polski_pro_ksef_submit', int $invoice_id, string $xml);

Príklad:

add_action('polski_pro_ksef_submit', function (int $invoice_id, string $xml): void {
// Zapisanie kopii XML przed wysyłką
$upload_dir = wp_upload_dir();
$xml_path = $upload_dir['basedir'] . '/polski-pro/ksef-xml/';
if (! is_dir($xml_path)) {
wp_mkdir_p($xml_path);
}
file_put_contents(
$xml_path . "invoice-{$invoice_id}.xml",
$xml
);
}, 10, 2);

Akcia volaná po skontrolovaní stavu faktúry v KSeF.

/**
* @param int $invoice_id ID faktury
* @param string $status Nowy status (accepted, rejected, error)
* @param string $ksef_number Numer referencyjny KSeF (tylko dla accepted)
*/
do_action('polski_pro_ksef_check_status', int $invoice_id, string $status, string $ksef_number);

Príklad:

add_action('polski_pro_ksef_check_status', function (int $invoice_id, string $status, string $ksef_number): void {
if ($status === 'accepted') {
// Powiadomienie zewnętrznego systemu o zaakceptowaniu faktury
wp_remote_post('https://erp.example.com/api/ksef-update', [
'body' => wp_json_encode([
'invoice_id' => $invoice_id,
'ksef_number' => $ksef_number,
]),
'headers' => ['Content-Type' => 'application/json'],
]);
}
}, 10, 3);

Všetky operácie KSeF sú v logu WooCommerce. Prejdite na WooCommerce > Stav > Logy a vyberte polski-pro-ksef.

Logované udalosti:

  • odoslanie faktúry (request/response)
  • kontrola stavu
  • chyby validácie XML
  • chyby komunikácie s API
  • opakovania odosielania

Kliknite na Otestovať pripojenie v nastaveniach KSeF. Test overuje:

  • správnosť tokenu
  • konektivitu so serverom KSeF
  • zhodu NIP s tokenom
  1. Skontrolujte chybovú správu v logu WooCommerce
  2. Najčastejšie príčiny: chýbajúci NIP odberateľa, nesprávna sadzba VAT, neúplné adresné údaje
  3. Opravte údaje a odošlite znova
  1. Uistite sa, že token neexpiroval
  2. Skontrolujte, či má token oprávnenia na vystavovanie faktúr
  3. Overte zhodu NIP v nastaveniach pluginu s NIP priradeným k tokenu
  1. Skontrolujte, či WP-Cron funguje správne
  2. Prejdite na Nástroje > Scheduled Actions a skontrolujte stav fronty
  3. Overte, či nie sú zablokované úlohy
Táto stránka má výlučne informačný charakter a nepredstavuje právne poradenstvo. Pred nasadením sa poraďte s právnikom. Polski for WooCommerce je open source softvér (GPLv2) poskytovaný bez záruky.