BlogAnton Ignashev

KSeF Is Live in Poland. It's the Best Moment to Add a B2B Portal — One Project Instead of Two

KSeF Is Live in Poland. It's the Best Moment to Add a B2B Portal — One Project Instead of Two

KSeF stopped being a future problem this year. Poland's structured e-invoicing became mandatory in phases through 2026 — February 1st for the largest taxpayers, April 1st for the rest — and if you run a wholesale business, you've either just been through the rollout or you're finishing it under pressure. (For the current regulatory fine print, podatki.gov.pl is the source; this is an implementation article, not legal advice.)

Here's the thing almost nobody tells you while you're knee-deep in invoice schemas: the KSeF project you just paid for quietly completed a third of a B2B portal project. Let me show you why, and why the months right after a KSeF rollout are the cheapest window you'll ever get to modernise how your clients order from you.

What KSeF actually changed inside your company

Strip away the tax law, and KSeF forced four very concrete things to happen:

  1. Your ERP got current. Running KSeF means running a version of enova365, Subiekt or Comarch Optima that the vendor actively maintains. The "we're on a 2019 build and afraid to touch it" era ended, because it had to.
  2. Your ERP talks to external systems now. Invoices flow out to the national system as structured XML. Somebody configured API access, certificates, and network routes to make that happen.
  3. Somebody on your side learned the process. There's now a person — internal or your integrator — who knows where the ERP's integration switches live and has been through testing with real documents.
  4. Your invoice data got clean(er). KSeF's structured format is unforgiving about contractor data and document fields. Most companies did a data cleanup they'd been postponing for years.

Every single one of those four items is also a prerequisite for a B2B portal. That's the whole argument, and it's worth money.

The shared plumbing, concretely

A B2B portal for a wholesaler needs a bidirectional ERP connection: product catalogue, per-client prices, stock levels and order documents flowing between the portal and the ERP. I've written in detail about how that ERP integration works — and in every project, the integration layer is the part with the most unknowns.

Those unknowns are exactly what a KSeF rollout eliminates:

  • Network access — the number one calendar-killer. My portal integrations take 3–5 development days, but 2–3 weeks of calendar time, and the gap is waiting for firewall rules and server access. After KSeF, those routes exist.
  • API modules and licences — for enova365 that's the Soneta WebAPI module; installations that went through a serious KSeF integration often already have the integration infrastructure licensed and running.
  • A tested environment — test databases, a process for trying changes without touching production. KSeF forced this discipline into companies that never had it.
  • A decision-maker who gets it — the hardest thing to build. The owner who just watched structured data flow to the tax office no longer needs convincing that "the ERP can talk to a website".

In effort terms, the integration groundwork is typically 30–40% of a portal project. Paying for it once instead of twice is the discount.

One project instead of two — what it looks like

If you're planning both anyway (and most wholesalers who did KSeF under duress are now looking at their order intake and sighing), the combined sequence looks like this:

  1. KSeF stabilisation — invoices flowing, corrections handled, team no longer panicking. You're probably here already.
  2. Portal on the same connection — the portal reads catalogue, prices and stock through the same integration surface, and writes orders back as ERP documents. The order document then feeds the same invoicing pipeline that KSeF already consumes. One data flow, end to end: client's browser → portal → ERP → KSeF.
  3. Decommission the retyping — orders that used to arrive by phone and email and get typed in by hand now enter as structured documents, the same way your invoices now leave as structured documents. There's a pleasing symmetry to it.

The end state is worth naming: from the moment your client clicks "order" to the moment the e-invoice sits in KSeF, nobody retypes anything.

The honest caveats

  • If your KSeF implementation was a bare-minimum vendor patch and your ERP install is otherwise untouched, the overlap is smaller — you still save on network access and version currency, but budget for API module licences (for enova365, check with your reseller whether Soneta WebAPI is active).
  • If your invoice volume is tiny and your clients are five long-term partners who order by handshake, a portal won't pay for itself regardless of KSeF. This argument is for wholesalers processing dozens of orders a day.
  • Combined doesn't mean simultaneous. Don't start portal work while KSeF corrections are still on fire. Stabilise first; the window doesn't close in a month.

Why now and not next year

Because the discount decays. A year from now, the person who knew the integration details has changed jobs, the test environment has drifted, someone has tightened the firewall back up "for security", and your integrator treats the portal as a fresh discovery project. The institutional knowledge KSeF created is a perishable asset.

You already paid the painful part of the bill. The question is whether you collect the second half of the value.


I build B2B portals for Polish wholesalers on exactly this pattern — fixed price, transparent rates, 2–3 weeks calendar time on an ERP that's already integration-ready. If you've just been through KSeF and want to know what the portal half would look like for your setup, let's talk.

KSeF also opened a second door: every purchase invoice now arrives through one API. I use it to automate the bookkeeping itself — see the accounting AI agents that pull invoices from KSeF and book them as drafts in your ERP.

Let’s talk about your project

Free 30-minute consultation. We’ll figure out if and how I can help.

Book a Free 30-Minute Call

Select a date

August 2026
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Back to Blog

Related Posts

Comarch Optima API: a developer's guide to integrating Optima
Blog

Comarch Optima API: a developer's guide to integrating Optima

The question is usually whether Optima has an API. The answer is that it has five different things by that name, each with a different licence, a different owner, and a different phone number to call when it stops working.

Read more
Which AI agent to build first against enova365
Blog

Which AI agent to build first against enova365

The most valuable agent is almost always the wrong first build. Not because it cannot be built, but because its first honest output arrives in week ten, and nothing holds a room's attention that long. Four questions that screen the candidates, and one number that predicts whether the project lands.

Read more
The enova365 service account — what read-only actually means
Blog

The enova365 service account — what read-only actually means

The integration gets the Administrator account, because scoping the rights would take an afternoon and nobody has the afternoon. Then it turns out the strongest read-only boundary in enova365 is not the permission tree at all. It is the licence.

Read more