Skip to content

KSeF integration

Das KSeF-Modul sendet elektronische Rechnungen an das Nationale E-Rechnungssystem (Finanzministerium). Die Rechnungen werden im Hintergrund versendet, mit automatischen Wiederholungen bei Fehlern.

Das Nationale E-Rechnungssystem (KSeF) ist eine Plattform des Finanzministeriums zum Ausstellen, Speichern und Empfangen strukturierter Rechnungen im XML-Format. Das Plugin stellt Werkzeuge zur Integration von WooCommerce mit KSeF bereit - es erzeugt Rechnungen im erforderlichen XML-Format und übermittelt sie an das System.

Gehen Sie zu WooCommerce > Einstellungen > Polski > PRO-Module > KSeF.

EinstellungBeschreibung
KSeF-Integration aktivierenAktiviert das Modul
UmgebungTest (Sandbox) oder Produktion
API-Schlüssel (Token)Im KSeF-Portal generiertes Autorisierungstoken
USt-IdNr. des Ausstellers (NIP)Mit dem KSeF-Konto verknüpfte USt-IdNr.

KSeF stellt eine Testumgebung (Sandbox) zur Überprüfung der Integration bereit. Die Testumgebung:

  • erfordert keinen echten Autorisierungsschlüssel
  • akzeptiert Rechnungen im selben Format wie die Produktionsumgebung
  • übermittelt keine Daten an das Finanzamt
  • wird für erste Integrationstests empfohlen

Wechseln Sie nach erfolgreicher Überprüfung in der Testumgebung zur Produktionsumgebung und geben Sie den richtigen API-Schlüssel ein.

  1. Melden Sie sich im KSeF-Portal an: https://ksef.mf.gov.pl/
  2. Navigieren Sie zum Bereich der Token-Verwaltung
  3. Generieren Sie ein neues Token mit Berechtigungen zur Rechnungsausstellung
  4. Kopieren Sie das Token und fügen Sie es in die Plugin-Einstellungen ein

Nach dem Aktivieren der Option Automatische Übermittlung an KSeF sendet das Plugin die Rechnung automatisch an KSeF, sobald sich ihr Status auf “Ausgestellt” ändert. Die Übermittlung erfolgt asynchron über den Action Scheduler.

Im Bestellbereich enthält die Meta-Box “Rechnungen” eine Schaltfläche An KSeF senden. Ein Klick darauf fügt eine Übermittlungsaufgabe zur Warteschlange des Action Scheduler hinzu.

Das Plugin verwendet den Action Scheduler (in WooCommerce integriert) für die asynchrone Rechnungsübermittlung. Das bedeutet:

  • die Übermittlung blockiert die Bestellabwicklung nicht
  • die Rechnungen werden in einer Warteschlange nacheinander gesendet
  • bei einer großen Anzahl von Rechnungen verarbeitet das System sie schrittweise

Das Plugin erzeugt Rechnungen im XML-Format gemäß dem KSeF-Schema (FA(2)). Das XML-Dokument enthält:

  • Kopfzeile mit Datum und Rechnungstyp
  • Verkäuferdaten (USt-IdNr., Name, Adresse)
  • Käuferdaten (USt-IdNr., Name, Adresse)
  • Rechnungspositionen (Name, Menge, Nettopreis, USt-Satz, Wert)
  • Zusammenfassung mit Aufschlüsselung nach USt-Sätzen
  • Zahlungsinformationen

Das XML wird vor der Übermittlung validiert. Wenn die Validierung Fehler feststellt, wird die Rechnung nicht gesendet, und im Protokoll erscheint eine ausführliche Meldung.

Nach der Übermittlung einer Rechnung an KSeF verfolgt das Plugin ihren Status:

StatusBeschreibung
QueuedRechnung zur Übermittlungswarteschlange hinzugefügt
SubmittedRechnung an KSeF übermittelt, wartet auf Verarbeitung
AcceptedRechnung von KSeF akzeptiert, KSeF-Nummer zugewiesen
RejectedRechnung abgelehnt - prüfen Sie die Fehlermeldung
ErrorKommunikationsfehler mit der KSeF-API

Nachdem eine Rechnung akzeptiert wurde, speichert das Plugin die KSeF-Referenznummer in den Rechnungsmetadaten. Diese Nummer ist im Bestellbereich und auf dem PDF-Ausdruck sichtbar.

Das Plugin prüft automatisch den Status übermittelter Rechnungen. Nach der Übermittlung einer Rechnung an KSeF fragt das Plugin die API alle paar Minuten nach dem Status ab (über den Action Scheduler), bis es eine Antwort “Accepted” oder “Rejected” erhält.

Im Falle eines Kommunikationsfehlers mit der KSeF-API wendet das Plugin einen exponentiellen Backoff-Mechanismus an:

VersuchVerzögerung
1. Wiederholung5 Minuten
2. Wiederholung25 Minuten
3. Wiederholung125 Minuten

Nach drei fehlgeschlagenen Versuchen erhält die Rechnung den Status “Error” und erfordert einen manuellen Eingriff. Der Administrator erhält eine E-Mail-Benachrichtigung über die fehlgeschlagene Übermittlung.

Typische Fehlerursachen:

  • ungültiges oder abgelaufenes API-Token
  • XML-Validierungsfehler (z. B. fehlende Käuferdaten)
  • vorübergehende Nichtverfügbarkeit der KSeF-API
  • Nichtübereinstimmung zwischen der USt-IdNr. des Ausstellers und dem Token

Aktion, die vor der Übermittlung einer Rechnung an KSeF ausgelöst wird.

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

Beispiel:

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);

Aktion, die nach der Prüfung eines Rechnungsstatus in KSeF ausgelöst wird.

/**
* @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);

Beispiel:

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);

Das Plugin protokolliert alle KSeF-Vorgänge im WooCommerce-Protokoll. Gehen Sie zu WooCommerce > Status > Protokolle und wählen Sie die Quelle polski-pro-ksef.

Protokollierte Ereignisse:

  • Rechnungsübermittlung (Anfrage/Antwort)
  • Statusprüfung
  • XML-Validierungsfehler
  • API-Kommunikationsfehler
  • Übermittlungswiederholungen

In den Einstellungen des KSeF-Moduls steht eine Schaltfläche Verbindung testen zur Verfügung. Sie sendet eine Testanfrage an die KSeF-API und überprüft:

  • Gültigkeit des Tokens
  • Konnektivität mit dem KSeF-Server
  • Übereinstimmung der USt-IdNr. mit dem Token
  1. Prüfen Sie die Fehlermeldung im WooCommerce-Protokoll
  2. Häufigste Ursachen: fehlende USt-IdNr. des Käufers, ungültiger USt-Satz, unvollständige Adressdaten
  3. Korrigieren Sie die Daten und übermitteln Sie erneut
  1. Stellen Sie sicher, dass das Token nicht abgelaufen ist
  2. Prüfen Sie, ob das Token über Berechtigungen zur Rechnungsausstellung verfügt
  3. Überprüfen Sie, ob die USt-IdNr. in den Plugin-Einstellungen mit derjenigen übereinstimmt, die mit dem Token verknüpft ist

Action Scheduler verarbeitet die Warteschlange nicht

Section titled “Action Scheduler verarbeitet die Warteschlange nicht”
  1. Prüfen Sie, ob WP-Cron ordnungsgemäß funktioniert
  2. Gehen Sie zu Werkzeuge > Scheduled Actions und prüfen Sie den Status der Warteschlange
  3. Überprüfen Sie, ob keine hängengebliebenen Aufgaben vorliegen
Diese Seite dient ausschließlich Informationszwecken und stellt keine Rechtsberatung dar. Konsultieren Sie vor der Umsetzung einen Anwalt. Polski for WooCommerce ist Open-Source-Software (GPLv2), die ohne Gewährleistung bereitgestellt wird.