You’re responsible for invoices you don’t fully control

Poland’s KSeF is breaking Stripe-based SaaS billing

If you sell SaaS from Poland and bill through Stripe, KSeF creates a real compliance problem.

The simplest way to reduce KSeF exposure without rebuilding your billing stack is to remove invoice ownership.

With Freemius as your Merchant of Record: 

  • You stop issuing invoices
  • You stop reporting daily to KSeF

The problem KSeF creates for Stripe-based SaaS

KSeF is often described as an end-to-end e-invoicing system. In reality, it only works when the seller:

  • Fully controls invoice creation
  • Handles numbering, dating, and corrections
  • Explicitly reports every change to the tax authority

When you bill through Stripe:

  • Stripe generates invoices based on its own rules
  • Refunds change existing invoices instead of issuing refund notes
  • Invoice finalization follows Stripe payment and settlement logic, not KSeF reporting rules
As a result, Stripe invoices cannot be used directly as legally valid KSeF
invoices. They are payment artifacts, not tax-ready source documents.

To comply with KSeF while keeping Stripe, you would need to:

  • Build a direct integration with the KSeF system
  • Generate invoices using third-party services outside of Stripe
  • Translate Stripe events into the exact XML format required by the government
  • Detect refunds and issue explicit correction documents
  • Report every invoice and correction within the required time window

At this level of detail, refunds stop being a background billing event and become a compliance risk that attracts audit attention.

The 24-hour
reporting conflict

Stripe cannot guarantee invoice finalization within 24 hours.
KSeF requires reporting within 24 hours of invoice issuance.

This creates a hard timing conflict.

In practice:

  • An invoice may be created and reported to KSeF
  • The payment may still be pending, delayed, or even voided
  • Stripe may update or invalidate the invoice after reporting

At that point, the problem is no longer timing.
It is state mismatch.

Once an invoice is reported to KSeF:

  • You cannot silently change it
  • Any change requires a formal correction or cancellation
  • That correction must also be reported to KSeF

If the payment does not clear, you now need:

  • Logic to detect failed or reversed payments
  • Logic to issue a correction or void document
  • Logic to update KSeF with that correction

This is not optional edge-case handling. It becomes a required part of your billing logic.

The rollout is already in progress.
By early 2027, every Polish company must run this flow correctly.

What founders usually try first

Most teams try to extend their existing Stripe setup.

Common approaches include:

  • Middleware to bridge between Stripe data and KSeF XML
  • Manual invoice corrections after refunds
  • Separate billing and accounting systems
  • Entity restructuring to delay compliance

These approaches increase:

  • Engineering effort
  • Operational overhead
  • Ongoing bookkeeping work

They do not remove invoice responsibility.
They only move the work closer to your team.

Your two real
options under KSeF

Stripe cannot meet KSeF requirements without significant custom work, leaving Polish founders with two options:

  • Move the company to another jurisdiction
  • Remove invoice responsibility from the company

Move the company

Some founders choose relocation.

This usually involves:

  • Creating a new legal entity
  • Opening a new Stripe or PayPal account
  • Migrating subscriptions (when possible)
  • Managing a different tax authority

This can work, but it comes with:

  • Legal and operational overhead
  • Customer migration risk
  • Ongoing compliance elsewhere

There is also no guarantee that the next country will not introduce similar requirements.

Merchant of Record

With Freemius as Merchant of Record:

  • Freemius becomes the legal seller
  • Customers buy from Freemius, not your company
  • Freemius issues and reports all customer invoices
  • KSeF no longer applies to your SaaS sales
  • VAT, refunds, and corrections are handled externally
  • You receive one final monthly invoice

From your side:

  • Your product stays the same
  • Your billing logic simplifies
  • Invoice liability leaves your company

This is the point where many founders feel relief.

How this works with your current SaaS

You don’t need to rebuild your billing stack:

  • You can start with new subscriptions
  • Existing Stripe customers can remain unchanged
  • Engineering work is limited
  • Financial tradeoffs are explained upfront

This approach is about reducing risk, not optimizing billing mechanics.

Is this relevant to you?

This applies if:

  • You sell SaaS, apps, or other software
  • You bill through Stripe or PayPal
  • Your company is registered in Poland
  • You want invoice liability off your company

If that sounds like your situation, the next step is simple.

Talk to our founder about selling SaaS from Poland with Freemius

You get a direct review of your setup and a clear answer on next steps.

KSeF Compliance Inquiry