FakturFlow – E-Invoicing for KSeF
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 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 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 — pure-PHP QR code rendering for the KOD I verification code (no GD/Imagick requirement).
- paragonie/constant_time_encoding and 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 matchingqr-demo/qr-testhost), 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.
