Title: Ksefshop Invoices for WooCommerce
Author: Ksefshop
Published: <strong>October 26, 2026</strong>
Last modified: October 26, 2026

---

Search plugins

![](https://ps.w.org/ksefshop-invoices/assets/banner-772x250.png?rev=3766115)

![](https://ps.w.org/ksefshop-invoices/assets/icon-256x256.png?rev=3766115)

# Ksefshop Invoices for WooCommerce

 By [Ksefshop](https://profiles.wordpress.org/ksefshop/)

[Download](https://downloads.wordpress.org/plugin/ksefshop-invoices.0.1.1.zip)

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

 [Support](https://wordpress.org/support/plugin/ksefshop-invoices/)

## Description

From 2026 VAT invoices to Polish companies have to be issued in KSeF (Krajowy System
e-Faktur), the National e-Invoice System of the Polish Ministry of Finance. Ksefshop
Invoices for WooCommerce connects your shop to the Ksefshop invoicing service (ksefshop.
pl), which builds the structured FA(3) invoice, sends it to KSeF with your own KSeF
certificate or token and returns the KSeF number and a PDF.

Not affiliated with the Polish Ministry of Finance or WooCommerce/Automattic.

**What the plugin does**

 * Adds an “I want a VAT invoice” checkbox and a NIP field to checkout, with NIP
   checksum validation. Works with the classic checkout and the block checkout (
   WooCommerce 8.9+). Can also read a NIP collected by another plugin (enter its
   order meta key).
 * When an order with a NIP is paid, sends it to the service in the background (
   Action Scheduler, bundled with WooCommerce). The service issues the FA(3) invoice
   in KSeF and returns the invoice number, KSeF number and PDF.
 * Turns refunds into correction invoices (faktura korygujaca) that refer to the
   original KSeF number.
 * Shows status, invoice number, KSeF number and a PDF link (with the KSeF verification
   QR code) in a box on the order screen, with “Refresh status” and “Send again”
   buttons.
 * Shows the PDF link to the buyer on their order page.
 * Retries automatically when your server or the service is briefly unavailable.
   A retry never creates a second invoice (idempotency keys).
 * Compatible with HPOS (custom order tables). Works on small shared hosting: the
   KSeF work (FA(3) XML, KSeF sessions, encryption, status polling, PDF rendering)
   runs on the service, not on your server.

Orders without a NIP are never sent: B2C receipts stay in your shop.

**Free and paid plans**

The plugin is free (GPLv2 or later) and every feature of the plugin works for every
user; nothing in the plugin is locked, time-limited or unlocked by a licence key.
The plugin has no upgrade prompts.

Invoices are issued by the Ksefshop service, which needs an account on the service:

 * Free plan: 5 invoices per month, no payment details needed.
 * Paid plans: 29, 59 or 99 PLN per month (net) for more invoices per month. Paid
   plans are bought and billed on the service website (payments handled by Paddle),
   never inside WordPress.

The monthly limit is applied by the service, not by the plugin: over the limit, 
orders wait and keep their place in the invoice numbering until the next month or
a plan change. Current plans and prices: https://ksefshop.pl/#cennik

**Test mode**

A test API key (sk_test_…) sends invoices to the official KSeF test environment 
only. They have no legal effect, so you can try the whole flow before going live
with a live key (sk_live_…).

### External services

This plugin is a client of the **Ksefshop** invoicing service operated by LLC Lytvynov
Production (https://ksefshop.pl). Ksefshop is an independent service, not affiliated
with the Polish Ministry of Finance. The service is required: it is what issues 
the invoices in KSeF. The plugin cannot issue invoices without it.

The plugin connects to the service only after an administrator has entered the API
URL and the secret API key on the WooCommerce > Ksefshop Invoices settings page.
Nothing is sent before that. Requests go to the API URL you entered (normally https://
app.ksefshop.pl).

What is sent and when:

 * When an order that has a buyer NIP is paid (payment complete, or the order is
   set to Processing or Completed), and when you press “Send again” on the order:
   order number and dates, status, currency, buyer NIP and company name, billing
   name, address and email, ordered items (name, SKU, quantity, prices, taxes), 
   shipping and fee lines, tax rates and the payment method name. Orders without
   a NIP are not sent.
 * When such an order is refunded: the refund (date, amount, reason, refunded items,
   shipping and fees) together with the order data above.
 * When the invoice status is checked (automatically after sending, or with “Refresh
   status”): the invoice ID only.
 * When you press “Test connection”: no order data.

Every request goes to the API URL you entered (https://app.ksefshop.pl, over HTTPS)
with your secret API key (Authorization: Bearer) and a User-Agent header with the
plugin version and your site address. The buyer’s IP address, browser user agent,
phone number and customer account ID are not sent.

The service then sends the invoice to KSeF, the system of the Polish Ministry of
Finance (https://ksef.podatki.gov.pl), using your KSeF certificate or token, stores
the invoice for the period required by tax law and may email the PDF to the buyer.
The PDF link shown to you and to the buyer points to the service.

 * Terms of service: https://ksefshop.pl/regulamin-sprzedaz/ (English: https://ksefshop.
   pl/en/terms-direct/)
 * Privacy policy: https://ksefshop.pl/polityka-prywatnosci/ (English: https://ksefshop.
   pl/en/privacy/)
 * Refund policy: https://ksefshop.pl/zwroty/ (English: https://ksefshop.pl/en/refunds/)
 * Contact: kontakt@ksefshop.pl

The plugin adds a suggested paragraph about this data transfer to Settings > Privacy(
privacy policy guide).

## Installation

 1. Install and activate the plugin. WooCommerce must be installed and active.
 2. Get an API key for the Ksefshop service (see https://ksefshop.pl, or write to kontakt@
    ksefshop.pl). On the service, enter your company data and connect your KSeF certificate
    or token, or start with a test key.
 3. In WordPress go to WooCommerce > Ksefshop Invoices, enter the API URL (https://
    app.ksefshop.pl) and the API key, save, and press “Test connection”.
 4. Make sure your WooCommerce taxes use Polish VAT rates (23%, 8%, 5% or 0%).
 5. Place a test order with a NIP, mark it as paid and watch the KSeF invoice box on
    the order screen.

## FAQ

### Is the plugin free?

Yes. The plugin is free and has no locked features. The Ksefshop service has a free
plan with 5 invoices per month and paid plans (29, 59 or 99 PLN per month) for more
invoices, billed on the service website.

### Do I need an account on an external service?

Yes. The invoices are built and sent to KSeF by the Ksefshop service, so you need
an account and an API key there. See the “External services” section for what is
sent and when.

### Who operates the service?

LLC Lytvynov Production. Contact: kontakt@ksefshop.pl.

### Does every buyer have to give a NIP?

No. Only buyers who want a VAT invoice for their company tick the checkbox and enter
a NIP. Orders without a NIP are not sent anywhere.

### I already collect the NIP with another plugin.

Turn off “NIP at checkout” in the settings and enter the order meta key that the
other plugin uses (for example _billing_nip). The NIP will be read from there.

### Where is my KSeF certificate or token stored?

On the service, encrypted (AES-256-GCM). It is never stored in WordPress.

### Which currencies are supported?

PLN and the currencies of the NBP table A. For invoices in a foreign currency the
VAT amount is converted to PLN at the NBP rate of the day before payment.

### What happens when the service or my server is down?

The order waits in the Action Scheduler queue and is retried automatically (from
1 minute up to 12 hours). Idempotency keys make sure a retry never creates a second
invoice.

### What if KSeF rejects an invoice?

The order box shows the error returned by KSeF. Fix the cause (for example a wrong
VAT rate) and press “Send again”.

### Can I test without issuing real invoices?

Yes. Use a test key (sk_test_…): invoices go to the official KSeF test environment
and have no legal effect.

### Is the plugin translated into Polish?

The plugin is written in English and translated into Polish through translate.wordpress.
org.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Ksefshop Invoices for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Ksefshop ](https://profiles.wordpress.org/ksefshop/)

[Translate “Ksefshop Invoices for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/ksefshop-invoices)

### Interested in development?

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

## Changelog

#### 0.1.1

 * An order that already has a KSeF invoice is never sent again when its status 
   changes (for example on-hold to processing, or refunded back to completed). The
   plugin only refreshes the invoice status.
 * “Send again” is hidden once the order has an invoice.
 * Polish translation included in the plugin (used until the translate.wordpress.
   org language pack is ready).
 * If an order is edited after its invoice was issued, the plugin links the existing
   invoice and adds an order note asking to record the difference as a refund (correction).

#### 0.1.0

 * First version: NIP field (classic and block checkout), sending paid orders and
   refunds, status, KSeF number and PDF on the order.

## Meta

 *  Version **0.1.1**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [e-faktura](https://wordpress.org/plugins/tags/e-faktura/)[invoice](https://wordpress.org/plugins/tags/invoice/)
   [ksef](https://wordpress.org/plugins/tags/ksef/)[nip](https://wordpress.org/plugins/tags/nip/)
 *  [Advanced View](https://wordpress.org/plugins/ksefshop-invoices/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

 *   [ Ksefshop ](https://profiles.wordpress.org/ksefshop/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ksefshop-invoices/)