Skip to content
GESEL.IO
Guides
Start a project↗PL←Home
Home/Guides/Integrations and automation

Integrations and automation

KSeF integration for your own sales system in Poland: what to plan

Updated: 2026-08-13·7 min read·GESEL.IO editorial team

Part of the guide: System Integration for Business: What to Do When It Breaks

In short

KSeF is Poland's national e-invoicing system and it creates two duties: receiving invoices has covered every taxpayer receiving invoices since 1 February 2026, and issuing started in stages — 1 February 2026 for the largest, 1 April 2026 for the rest. In your own system, design three things: sending, receiving linked back to the order, and the offline24 mode.

On this page

  1. When does KSeF apply to your company, and what is still ahead
  2. Three places where KSeF touches your sales system
  3. Design the offline24 mode up front, not as an exception
  4. Your own API integration, accounting software, or an intermediary provider
  5. What to scope in a KSeF integration project for your own system
1 Feb 2026

From 1 February 2026 every taxpayer in Poland that receives invoices must be able to receive them through KSeF — whether or not the company was already required to issue structured invoices.

If your company invoices in Poland, KSeF integration for your own sales system is in practice two separate obligations that are easy to confuse: sending the invoices you issue, and receiving the ones that come to you. KSeF — the National e-Invoice System (Krajowy System e-Faktur) run by Poland’s Ministry of Finance — is the state platform that structured invoices pass through in both directions. Receiving invoices from KSeF has covered every taxpayer receiving invoices since 1 February 2026. Issuing started in stages: from 1 February 2026 for taxpayers whose sales including tax exceeded PLN 200 million in 2024, and from 1 April 2026 for the remaining taxpayers required to issue structured invoices. This article is information, not legal or tax advice — confirm the scope of your own obligations with your accountant or tax adviser.

When does KSeF apply to your company, and what is still ahead

This is Polish national law, not an EU-wide rule: it binds taxpayers issuing and receiving invoices in Poland. Splitting the two duties apart is the most common misunderstanding — readiness to receive was required earlier than the duty to issue for most companies. A company with no duty to issue in February 2026 still had to be able to pull a purchase invoice out of the system.

Several deadlines are still open. Below is exactly what expires and when.

Date What it covers
1 February 2026 Duty to receive invoices from KSeF for every taxpayer receiving invoices, plus the duty to issue for taxpayers whose sales including tax exceeded PLN 200 million in 2024
1 April 2026 Duty to issue for the remaining taxpayers required to issue structured invoices
31 December 2026 End of the transitional provision allowing invoices outside KSeF where monthly sales documented by invoices stay under PLN 10,000 gross; end of the carve-out for cash-register receipts carrying a tax ID up to PLN 450 treated as simplified invoices
1 January 2027 From this date, penalties for irregularities in issuing invoices in KSeF are to be enforced

The legal bases indicated by the Ministry of Finance are the act of 5 August 2025 introducing the phased timetable, the regulation of 12 December 2025 on the use of KSeF (Dz. U. 2025 item 1815), and the regulation of 7 December 2025 on exclusions (Dz. U. 2025 item 1742).

Three places where KSeF touches your sales system

KSeF hooks into a custom system at three points: the moment a sales document comes into existence, the flow of purchase invoices, and document archiving and numbering. If sales are created in a shop, a B2B portal, a booking system or a field app, that is where you have to name the specific event after which the invoice should travel to KSeF.

Issuing. Pick one event in the process: order approval, goods release, service completion, or payment posting. That event becomes the send trigger. If an invoice can come into existence three different ways in your system, the integration will have three paths and three sets of errors to handle.

Receiving. Purchase invoices pulled from KSeF arrive as a stream of documents with no context — no reference to your purchase order and no indication of who ordered. Design a matching rule: by supplier tax ID, amount, date and the order number carried in the invoice body, with a manual queue for whatever is left. This is the classic problem of system integration inside a company, where you have to decide up front which system is the source of truth for each piece of information.

Archiving and the KSeF number. Every document that passes through the system gets a number assigned by KSeF. Store it next to the invoice in your own database and surface it where people actually need it: on the order record, on the warehouse document, in the customer service panel, and in the export to accounting. Without that, every “we never got the invoice” complaint turns into a manual search.

Design the offline24 mode up front, not as an exception

The offline24 mode is the situation where an invoice is created without a connection to KSeF and must be sent to the system by the next business day at the latest. If you own a sales system, this is not an edge case but a normal operating state — it affects anyone issuing documents in the field, at trade fairs, in a warehouse with poor coverage, or during a link outage.

From a project point of view that means four things to build: a queue of documents waiting to be sent, automatic retries with a growing interval, a visible invoice status (“sent”, “pending”, “rejected”), and an alert for a named person when a document still has not gone through. The retry mechanism itself is cheaper than reconstructing after the fact which invoices never arrived.

✗"We'll hook up KSeF in December — the transitional rule runs to the end of the year anyway."
✓"We test the issuing and receiving flow on the test environment with several months to spare, so permission and document-structure errors surface before production."

Your own API integration, accounting software, or an intermediary provider

There is no single right answer — the choice depends on where the invoice really comes into existence and how many documents pass through the company each month. The criteria below help you rule out options that cannot work in your process.

Route When it makes sense What to watch for
Your own KSeF API integration The invoice is created in your system, high document volume, real-time statuses needed Maintenance sits with your team: documentation changes, permissions, error handling
Accounting software with KSeF support Accounting issues the invoices anyway, sales are batched Data has to reach the package automatically, otherwise you are back to retyping
Intermediary provider You want one integration point and no KSeF handling of your own Dependency on the provider, the billing model, who answers for a failed send

The same build-or-buy question returns for every other flow in the company, where the line runs between a ready-made automation platform and a custom integration.

There are four decision criteria: where the sales document is created, how many invoices a month go through the company, whether you need the invoice status back inside your own system, and who maintains this after go-live. If what you actually want is an answer to “what will it cost”, start with how many issuing paths your system has — the same mechanism drives mobile app development cost and every other build priced by scope.

What to scope in a KSeF integration project for your own system

The scope covers five areas that quotes tend to skip and that later generate the most work: environments, permissions, errors, logs, and the process owner.

  • Environments. KSeF provides a test and a pre-production (Demo) environment alongside production. Plan testing on both before you move traffic — including correction invoices and the unusual cases in your own sales.
  • Permissions and authentication. Establish who authenticates with what, and who grants permissions inside the company. Take the technical detail of authentication and the invoice schema structure from the current Ministry of Finance documentation, not from articles online — this layer changes most often.
  • Error and retry handling. A rejected document needs a defined path: who gets notified, where the reason is visible, and what a re-send after a fix looks like.
  • Logs and replayability. Record what was sent and when, with what result and what KSeF number. Without that, every audit and every complaint becomes an investigation.
  • Process owner. Name one person on your side who owns KSeF day to day. An integration with no owner quietly stops working.

Before you order changes from the vendor of your existing system, ask a few questions that immediately show how much work stays on your side. The same set later feeds the document you use to write a software project brief.

Question template for your system vendor

"In our version of the system, does a sales invoice go to KSeF automatically once the document is approved, or through an export to accounting software? Is the offline24 mode supported, with a queue and retries? Does the KSeF number come back to the order record and the warehouse document? On which environment can we test the full flow before switching to production?"

The answers settle whether configuration is enough or you need a separate integration layer — and along the way they tidy up the rest of the data exchange between systems in your company, because an invoice is rarely the only document circulating between the shop, the warehouse and accounting. Stock is usually the flow worth settling next, since one stock figure shared by the shop and the ERP rests on the same source-of-truth rule as the KSeF number. If you would rather work this out with someone from outside, describe your document flow and get in touch with us — that is enough to start the conversation with specifics instead of guesswork.

Knowledge base

Wiring KSeF into your own sales system?

Tell us how invoices are created in your process — we come back with an integration scope, the risks, and what can ship in stages.

Contact us↗

Checklist

  • ✓

    Confirm with your accountant when your company must issue structured invoices and when it only has to receive them.

  • ✓

    Point at the exact moment a sales invoice comes into existence in your system — that is where the send to KSeF hooks in.

  • ✓

    Design how a purchase invoice pulled from KSeF gets matched to a purchase order and a warehouse document.

  • ✓

    Plan the offline24 mode: a send queue, automatic retries and delivery to KSeF by the next business day at the latest.

  • ✓

    Store the KSeF number next to the document in your own system and show it in the customer service panel.

  • ✓

    Test the whole flow on the test or pre-production (Demo) environment before you switch to production.

  • ✓

    Name one person who owns the process: who reacts when an invoice fails and who reads the error logs.

Frequently asked questions

When do I have to issue invoices in KSeF, and when only receive them?
These are two different dates under Polish law. The duty to receive invoices from KSeF has applied to every taxpayer receiving invoices since 1 February 2026. The duty to issue started in stages: from 1 February 2026 for taxpayers whose sales including tax exceeded PLN 200 million in 2024, and from 1 April 2026 for the remaining taxpayers required to issue structured invoices.
Do I need to integrate with the KSeF API, or is accounting software enough?
Accounting software is enough if your sales invoices genuinely come into existence there rather than in your own system. If the sales document is born in a shop, a B2B portal or a field app, you need a route that carries it into KSeF without anyone retyping it — your own integration, an intermediary provider, or an automatic hand-off to the accounting package.
What do I do if there is no connection to KSeF when the invoice is issued?
That is what the offline24 mode is for. The invoice is issued outside the system and then sent to KSeF by the next business day at the latest. From your own system's point of view that means a queue of documents waiting to be sent, automatic retries, and an alert for a human when a document still has not gone through.
Does my online shop have to issue invoices through KSeF?
If your company falls under the duty to issue structured invoices in Poland, that duty also covers invoices created in your online shop — it attaches to the taxpayer, not to a particular program. So the real question is not whether, but which way an invoice from the shop reaches KSeF: directly, through accounting software, or through an intermediary provider.
What about invoices up to PLN 10,000 a month?
Until 31 December 2026 a Polish transitional provision allows invoices to be issued outside KSeF if the total monthly value of sales documented by invoices does not exceed PLN 10,000 gross. After that the carve-out expires, so it is not a permanent exemption — only a window of time to get the system ready.

Sources and methodology

These links lead to primary sources and the rules we use to prepare and update our material.

  • Ministerstwo Finansów — Krajowy System e-Faktur↗accessed: 2026-08-14
  • GESEL.IO editorial policy↗

Read next

  • System Integration for Business: What to Do When It Breaks

    System integration for business without guesswork: an entity matrix, one source of truth, webhooks, queues, and a plan for the day the other side stops answering.

  • Mobile App Development Cost: How to Break a Quote Into Parts

    What drives mobile app development cost? Instead of ranges, here is the method: roles, rates, hours, line items hidden in a quote, and the costs that start after launch.

  • How to write a software project brief: template and filled-in example

    How to write a software project brief: the eleven sections, a filled-in example you can copy, evaluation criteria, and whether to state your budget.

GESEL.IO
Guides
Editorial policyPrivacy policyTerms of useSupport

GESEL.IO sp. z o.o., ul. Jagiellońska 5/22, 58-100 Świdnica, Poland

District Court for Wrocław-Fabryczna in Wrocław, 9th Commercial Division of the National Court Register, KRS 0001258062, NIP 8842841661, REGON 545371616, share capital: PLN 5,000.00.

© 2026 GESEL.IO sp. z o.o.