Title: FakturFlow – E-Invoicing for KSeF
Author: SYMONOV
Published: <strong>July 11, 2026</strong>
Last modified: July 11, 2026

---

Search plugins

![](https://ps.w.org/fakturflow-ksef/assets/banner-772x250.png?rev=3603719)

![](https://ps.w.org/fakturflow-ksef/assets/icon-256x256.png?rev=3603719)

# FakturFlow – E-Invoicing for KSeF

 By [SYMONOV](https://profiles.wordpress.org/simmotorlp/)

[Download](https://downloads.wordpress.org/plugin/fakturflow-ksef.0.2.3.zip)

 * [Details](https://wordpress.org/plugins/fakturflow-ksef/#description)
 * [Reviews](https://wordpress.org/plugins/fakturflow-ksef/#reviews)
 *  [Installation](https://wordpress.org/plugins/fakturflow-ksef/#installation)
 * [Development](https://wordpress.org/plugins/fakturflow-ksef/#developers)

 [Support](https://wordpress.org/support/plugin/fakturflow-ksef/)

## Description

**KSeF (Krajowy System e-Faktur), Poland’s national structured e-invoicing system,
became mandatory for large taxpayers on 1 February 2026 and for micro, small and
medium businesses on 1 April 2026. Penalties for not issuing structured invoices
apply from 1 January 2027 — the same date the last wave (smallest taxpayers, under
10,000 zł/month invoiced turnover) joins the mandate.** If you sell B2B through 
WooCommerce and issue invoices to businesses, you need KSeF now.

FakturFlow is a standalone plugin: it talks directly to the official Ministry of
Finance API 2.0. No external accounting system, no intermediary, no per-invoice 
fees. Generate, validate and submit a FA(3) structured invoice straight from the
order screen — one click per step.

Wtyczka łączy Twój sklep WooCommerce bezpośrednio z KSeF przez oficjalne API 2.0
Ministerstwa Finansów — pełny polski opis i tłumaczenie interfejsu (pl_PL) są dołączone
do wtyczki.

#### Features

 * Generate FA(3) structured invoice XML from any WooCommerce order.
 * Validate against the official Ministry of Finance schema before sending.
 * Submit to KSeF (test, demo and production environments) using the official API
   2.0.
 * Track submission status and download the UPO (Urzędowe Poświadczenie Odbioru —
   official proof of receipt).
 * KOD I verification QR code, generated per the official Ministry of Finance specification.
 * NIP field at checkout (classic _and_ block checkout) with checksum validation—
   orders with a NIP are detected as B2B automatically.
 * Correction invoices (faktury korygujące) from refunds — every refund gets its
   own KOR document referencing the original invoice by KSeF number; generate, send
   and download its UPO from the order screen.
 * KSeF token stored encrypted at rest, never logged.
 * HPOS (custom order tables) and checkout-blocks compatible.
 * Full Polish (pl_PL) translation included.

#### Why FakturFlow?

 * **Direct connection, no middlemen.** Most KSeF options for WooCommerce route 
   your invoices through an external accounting SaaS or a vendor’s cloud. FakturFlow
   talks straight to the Ministry of Finance API — your invoice data never touches
   a third-party server.
 * **Free means free.** No invoice limits, no per-invoice fees, no monthly subscription
   for the core flow. Accounting SaaS plans start around 100-360 zl/year and meter
   your invoices; here the full manual flow costs nothing, forever.
 * **One plugin, not a plugin + paid add-on.** You don’t need a separate invoicing
   plugin as a base — KSeF is not a bolt-on here, it’s what this plugin is built
   around: FA(3) with local XSD validation, UPO, the KOD I verification QR, and 
   corrections.
 * **Built for modern WooCommerce.** HPOS, checkout blocks, a checksum-validated
   NIP field in both checkout variants.
 * **Private by design.** Encrypted token storage, zero telemetry — the only server
   your store talks to is the Ministry’s.

#### Who it’s for

Any WooCommerce store that invoices Polish businesses and must comply with the KSeF
mandate — without a SaaS subscription, without per-invoice fees, and without needing
a separate accounting package. Consumer (B2C) orders are not required to go through
KSeF and flow through the normal checkout untouched.

#### FakturFlow Pro (separate add-on)

When invoice volume grows, [FakturFlow Pro](https://fakturflow.com/) automates the
whole flow: automatic submission when an order is paid (with retries and backoff),
automatic correction invoices from refunds, an offline24 mode that keeps issuing
invoices when KSeF is unreachable and delivers them within the statutory deadline,
and a compliance dashboard with a full audit log and CSV export. This Free plugin
always covers manual generate/validate/send, corrections, UPO, the NIP field and
the QR code — no functionality is ever removed to push the paid tier.

#### Third-party libraries

This plugin ships the following open-source runtime libraries, all MIT-licensed (
GPL-compatible):

 * [phpseclib/phpseclib](https://phpseclib.com/) 3.x — RSA-OAEP-SHA256, required
   for the KSeF session-key handshake (PHP’s own openssl extension cannot do OAEP
   with SHA-256).
 * [chillerlan/php-qrcode](https://github.com/chillerlan/php-qrcode) — pure-PHP 
   QR code rendering for the KOD I verification code (no GD/Imagick requirement).
 * [paragonie/constant_time_encoding](https://github.com/paragonie/constant_time_encoding)
   and [paragonie/random_compat](https://github.com/paragonie/random_compat) — dependencies
   of the above.

### External services

This plugin connects to KSeF (Krajowy System e-Faktur), the official structured 
e-invoicing API of the Polish Ministry of Finance. It is required for the plugin’s
core purpose: submitting structured invoices, checking their status and downloading
UPO confirmations.

 * What is sent: invoice data derived from the WooCommerce order (seller NIP/name,
   buyer NIP/name and address, line items, amounts, VAT), and your KSeF authentication
   token during session handshake. Data is sent only when you explicitly generate/
   send an invoice or refresh its status from the order screen (or when a Pro add-
   on triggers the same documented actions).
 * Where it is sent, depending on the environment chosen in settings: `https://api.
   ksef.mf.gov.pl` (production), `https://api-demo.ksef.mf.gov.pl` (demo), `https://
   api-test.ksef.mf.gov.pl` (test).
 * The KOD I verification QR code embeds a public verification link pointing to `
   https://qr.ksef.mf.gov.pl` (or the matching `qr-demo`/`qr-test` host), per the
   official verification-code specification. The link is only opened when someone
   scans the QR code.
 * Service provider: Ministry of Finance of the Republic of Poland. Service information:
   https://www.podatki.gov.pl/ksef/ — privacy/data-processing information: https://
   ksef.mf.gov.pl/

No other external service is contacted. The plugin sends no telemetry.

## Screenshots

[⌊Settings screen — environment, seller NIP/name and KSeF token (WooCommerce > KSeF
Invoices).⌉⌊Settings screen — environment, seller NIP/name and KSeF token (WooCommerce
> KSeF Invoices).⌉[

Settings screen — environment, seller NIP/name and KSeF token (WooCommerce > KSeF
Invoices).

[⌊Order edit screen metabox — generate/send/refresh actions, status and the KOD 
I verification QR code.⌉⌊Order edit screen metabox — generate/send/refresh actions,
status and the KOD I verification QR code.⌉[

Order edit screen metabox — generate/send/refresh actions, status and the KOD I 
verification QR code.

[⌊Checkout NIP field — block checkout.⌉⌊Checkout NIP field — block checkout.⌉[

Checkout NIP field — block checkout.

[⌊Orders list — the "KSeF" status column.⌉⌊Orders list — the "KSeF" status column
.⌉[

Orders list — the “KSeF” status column.

## Installation

 1. Install and activate the plugin (WooCommerce must be installed and active).
 2. Go to **WooCommerce  KSeF Invoices**.
 3. Choose the environment — start with **Test**.
 4. Enter your seller NIP and seller name.
 5. Log into the KSeF web application (https://ksef.mf.gov.pl/) with your Trusted Profile
    or qualified certificate and generate a token with **InvoiceWrite** and **InvoiceRead**
    permissions. Paste it into the settings — it is stored encrypted.
 6. Use **Test connection** to confirm your hosting allows outgoing HTTPS to KSeF.
 7. Open a B2B order (one with a buyer NIP), generate and validate the FA(3) invoice,
    send it to KSeF and download the UPO. Once a full test cycle works, switch the 
    environment to **Production**.

## FAQ

### Does the plugin work without an accounting system?

Yes. It talks directly to the official KSeF API 2.0 of the Ministry of Finance —
no intermediary and no per-invoice fees. You generate, validate and submit FA(3)
invoices from the WooCommerce order screen.

### What about consumer (B2C) orders?

Only orders with a buyer NIP (tax ID) are routed to KSeF. Consumer orders keep the
regular WooCommerce checkout flow — KSeF stays optional for them.

### Does it work with HPOS and the block checkout?

Yes. The plugin is fully compatible with High-Performance Order Storage (custom 
order tables) and with the Checkout block — the NIP field is registered through 
the Additional Checkout Fields API and behaves identically in both checkout variants.

### Where do I get a KSeF token?

Log into the KSeF web application (https://ksef.mf.gov.pl/) with your Trusted Profile(
Profil Zaufany) or qualified certificate, go to permissions management, and generate
a token with **InvoiceWrite** and **InvoiceRead** permissions. Paste it into the
plugin settings (WooCommerce  KSeF Invoices) — it is stored encrypted.

### Does the plugin send data to third parties?

No. Invoice data is sent only to the official Ministry of Finance API (test, demo
or production environment, as chosen in your settings). The one exception is the
verification link encoded in the KOD I QR code itself — when scanned it points to
the Ministry of Finance’s public invoice-verification lookup, per the official verification-
code specification. See the “External services” section below for the exact endpoints.

### Does uninstalling the plugin delete my issued invoices?

No. Generated invoice and UPO XML files (under `wp-content/uploads/ksef-invoices/`)
are legal/tax records and are **not** deleted on uninstall — only the plugin’s own
settings (environment, seller data, token) are removed. If you also want the stored
files gone, remove them manually after archiving/exporting them.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“FakturFlow – E-Invoicing for KSeF” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ SYMONOV ](https://profiles.wordpress.org/simmotorlp/)

[Translate “FakturFlow – E-Invoicing for KSeF” into your language.](https://translate.wordpress.org/projects/wp-plugins/fakturflow-ksef)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/fakturflow-ksef/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/fakturflow-ksef/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/fakturflow-ksef/)
by [RSS](https://plugins.trac.wordpress.org/log/fakturflow-ksef/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.2.3

 * New: a short FakturFlow Pro section on the settings page and a “Go Pro” link 
   on the plugins list (both hidden automatically when the Pro add-on is active).

#### 0.2.2

 * Renamed again to resolve a follow-up wp.org review finding: “WooCommerce” is 
   not permitted in the plugin name or slug at all, so it’s dropped from both. New
   slug: `fakturflow-ksef`.

#### 0.2.1

 * Renamed to resolve a wp.org review trademark/slug finding (new slug: `fakturflow-
   ksef-and-woocommerce`). Upgraded chillerlan/php-qrcode to 6.0.1 and hardened 
   the KOD I QR output with `wp_kses()`.

#### 0.2.0

 * Initial release: FA(3) generation with offline schema validation, direct KSeF
   API 2.0 submission with UPO download, order metabox and status column, checkout
   NIP field (classic + blocks), KOD I verification QR, correction invoices (faktury
   korygujące) from refunds, encrypted token storage.

## Meta

 *  Version **0.2.3**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.1**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [faktura](https://wordpress.org/plugins/tags/faktura/)[invoice](https://wordpress.org/plugins/tags/invoice/)
   [ksef](https://wordpress.org/plugins/tags/ksef/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/fakturflow-ksef/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/fakturflow-ksef/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/fakturflow-ksef/reviews/)

## Contributors

 *   [ SYMONOV ](https://profiles.wordpress.org/simmotorlp/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/fakturflow-ksef/)