Skip to content

inFakt integration

Invoices from inFakt for orders from every channel, in one place: OpenLinker

When the buyer pays, OpenLinker issues the invoice in inFakt, with their tax ID (NIP) if they gave one, and inFakt sends it to Poland’s national e-invoicing system (KSeF). You see the invoice, its status and its KSeF number on the order, whether it came from your shop or a marketplace. You turn the automation on with one setting.

To get started you need:an inFakt account with sending to KSeF turned onan API key from your inFakt settings

  • 0 zł licence
  • No fee per order
  • You install it yourself, or we do it for you
Order
paid
marketplacesyour shop
paid order →↓
OpenLinker
handles the order, issues the invoice
invoice details →↓
←↑ KSeF number, status
inFakt
sends it to KSeF
invoice →↓
←↑ KSeF number
KSeF
assigns the number

In short. OpenLinker is open-source order management software with a 0 zł licence that issues invoices in inFakt for orders from shops and marketplaces. When you turn on issuing after payment, the invoice is created on its own, with the buyer’s tax ID if they gave one. inFakt sends it to KSeF, and you see the status and KSeF number on the order.

Sound familiar?

You type every order in a second time

The order in one window, inFakt in another. You copy over the company, tax ID, items and delivery. At a hundred orders a day that’s hours, and none of it sells anything.

“Where’s my invoice?”

A customer asks, and you can’t say off the top of your head whether the invoice already has a KSeF number or is stuck on an error. You log in to inFakt, search, reply. And again for every question.

A customer returns one mug out of three

The corrective invoice has to start from the invoice as it was issued. If someone changed the order in the meantime, you hunt for the original items by hand.

Tuesday: 120 paid orders and 120 invoices, not one retyped

  1. 07:55A café pays on a marketplace for three mugs and gives its tax ID. A moment later there’s a company invoice in inFakt, and its KSeF number is on the order in OpenLinker.
  2. 10:40The café asks where the invoice is. You answer straight away: the status and KSeF number are on the order, and you email the invoice with one click.
  3. 16:30End of the day: 120 orders, 120 invoices. You fix the one KSeF rejected in inFakt and send it again, without a second number.
Invoices for orders, Tuesday 3.11 120 Example
ChannelBuyerInvoiceKSeF
AllegroKawiarnia Pod Lipą sp. z o.o.FV 245/11/2026accepted
ShopAnna K.FV 262/11/2026accepted
ERLIPiotr N.FV 281/11/2026accepted
AllegroEwa L.FV 327/11/2026rejected, needs fixing
Accepted 117, waiting for KSeF 2, needs fixing 1. 120 in total.
FV 245/11/2026 Accepted in KSeF
BuyerKawiarnia Pod Lipą sp. z o.o., NIP 111-111-11-11
Amount159,99 zł gross
KSeF number1234563218-20261103-4A7C2E91B05D-11

120 invoices a day without retyping. Your work: one fix.

What OpenLinker does for you

  • Paid orderThe invoice is created in inFakt, and inFakt sends it to KSeF straight away. If the buyer gave a tax ID, the invoice is made out to their company.
  • Reply from KSeFYou see the status and KSeF number on the order, so you can answer the customer without logging in to inFakt.
  • Rejected invoiceYou correct the details in inFakt and send it again. It’s still the same invoice, with no gap in the numbering.
  • Part of an order returnedThe corrective invoice is based on the invoice as it was issued, and gets its own KSeF number.

Coming soonThe invoice will also land on the marketplace order by itself, so the buyer finds it where they bought.

Technical details
When the invoice is created
By hand from the order, or automatically: after payment or after shipping. It starts set to by hand.
Documents
VAT invoice and corrective invoice
Sending to KSeF
Done by inFakt, straight after the invoice is issued
KSeF number on the order
Straight away once you turn on notifications from inFakt. Without them, OpenLinker checks the status every 30 minutes.
On the invoice
The order’s currency (inFakt does the conversion), delivery as a separate line, payment by cash or by transfer to the account set up in inFakt
One order
One invoice, even after a retry or a dropped connection

Your rules run on their own

The document is created on its own after the order is paid or shipped, and rules decide which one and where. For example:

How automations work in OpenLinker
Example rule
When
An order is paid
Only if
the buyer gave a tax ID
Then
  1. Issue an invoice in inFakt

The KSeF number you see on the order

This number is assigned by KSeF, not by inFakt and not by OpenLinker. OpenLinker builds the invoice from the order, inFakt sends it to KSeF, and KSeF sends back the number: 35 characters in four parts. You see it on the order, so you can answer the buyer without logging in to a second panel.

The KSeF number, part by partExample
1234563218-20261103-4A7C2E91B05D-11
1234563218The seller’s tax ID, so yours. 10 digits, not the buyer’s tax ID.
20261103The day KSeF accepted the invoice (YYYYMMDD).
4A7C2E91B05D12 characters assigned by KSeF.
11A checksum. It helps catch a typo when someone copies the number by hand.
  1. 1 February 2026
    KSeF becomes mandatory for companies whose sales in 2024 exceeded 200 million zł.
  2. 1 April 2026
    KSeF becomes mandatory for all other companies.
  3. until 31 December 2026
    Invoices outside KSeF are still allowed while their gross total doesn’t exceed 10,000 zł a month.
  4. 1 January 2027
    From this day the law provides for penalties. On 20 October 2026 the government adopted a draft that moves them to 31 December 2027. It’s a draft, not law in force. Postponing the penalties doesn’t lift the duty to issue invoices in KSeF.

As of 28 October 2026. Sources: ksef.podatki.gov.pl, gov.pl/web/finanse. This is not legal or tax advice.

You don’t have to take our word for it

You can check each of these yourself before you connect anything.

  • An invoice won’t be created twiceOne order, one invoice, even if the connection drops halfway through. You resend a rejected invoice without creating a second one.See the inFakt integration code
  • Try the demoSign up for the demo and look through orders, shipments and documents on sample data before you connect your shop.Try the demo
  • The code is openYou or your implementation team can review the inFakt integration before you run anything.See the integration code
  • Nobody can take the licence away from youApache 2.0 can’t be revoked, and no feature sits behind a subscription. Any developer can keep building on the code.Licence

What you’ll pay each month

You pay nothing for the OpenLinker licence, however much you sell. You pay for the server, and its price grows with your traffic, not with each order.

Orders a monthRoughly per dayServer, estimatedLicence
up to 1,000about 30about 150 zł / month0 zł
up to 5,000about 150about 300 zł / month0 zł
up to 10,000about 300about 1,000 zł / month0 zł
up to 25,000about 800about 2,000 zł / month0 zł

The server figures are estimates from OpenLinker’s pricing. Add backups on top.

Bills that stay as they are

  • inFakt subscriptionyour current plan, unchanged
  • Sending to KSeFfree, it’s the Ministry of Finance’s system
  • OpenLinker’s fee per invoice0 zł, however many invoices you issue

Who sets it up

Yourself

Who sets it up
You or your implementation team. One command and the setup wizard are all it takes.
Who looks after it day to day
You
What you pay
The server from the table above
Installation guide

With an implementation partner

Who sets it up
An implementation agency of your choice
Who looks after it day to day
The partner, backed by us under an SLA
What you pay
The server and the partner’s service, at the partner’s prices
Ask about a partner

With us

Who sets it up
Us
Who looks after it day to day
Us
What you pay
The server and maintenance, priced individually
Ask for a quote

No agency? We’ll set it up with you and help you move over from your current system.

All integrations run on the same server, so adding another one doesn’t mean another subscription.

Who helps you

From setup to API changes, at every stage you know who is looking after it.

  1. At the start

    Getting set up

    Who: You, a partner or us

    You get a setup wizard and a step-by-step guide. If you’d rather not do it yourself, an implementation partner or we will set it up. We’ll set it up for you

  2. When something stops working

    Support under an SLA

    Who: Us

    You can report an outage that stops your sales at any time, weekends included. We take technical questions on working days from 9:00 to 17:00 and reply on the next working day. SLA levels

  3. When inFakt or KSeF changes something

    Updates

    Who: Us

    We adapt the integration to API changes, and the fix ships in the next OpenLinker release. You install it yourself, or a partner or we do it for you.

Your installation belongs to you: it runs on your server, your orders and customer data sit in your database, and the code is open under the Apache 2.0 licence.

How to get started

  1. In inFakt, turn on sending to KSeF and generate an API key.
  2. In OpenLinker, add an inFakt connection and click Test connection.
  3. Set inFakt as your main invoicing software and choose when invoices should be created.

Can’t see the API key in inFakt? Ask inFakt whether your plan includes it.

Rather not do it yourself? We’ll set it up for you. Step-by-step guide.

Questions about the inFakt integration

Does OpenLinker send the invoice to KSeF itself?

No, inFakt sends it, the same software you already issue invoices in. OpenLinker builds the invoice from the order, and KSeF assigns the number.

How does OpenLinker know the buyer wants a company invoice?

From the order. Allegro and ERLI pass on the tax ID when the buyer asks for a VAT invoice, PrestaShop when they enter it in their address, and WooCommerce when the shop has a tax ID plugin. An invoice issued automatically carries that tax ID.

I already issue invoices from another tool. How do I switch without two invoices in KSeF?

Channel by channel. You turn off invoices for a channel in the old tool, and only then turn them on here. OpenLinker will only ever issue one document per order anyway.

inFakt or straight to KSeF?

If you keep your invoices in inFakt, stay with it. Numbering, payments and bookkeeping stay there, and inFakt sends to KSeF for you. The direct KSeF integration is for companies without invoicing software.

Can the invoice be in euros?

Yes. The invoice is in the order’s currency, and inFakt does the conversion. You need that currency turned on in inFakt.

OpenLinker at a glance

What it is
Open-source order management and e-commerce integration software
Licence
Apache 2.0, 0 zł
Fee per order
None
Where it runs
On your own server, or set up by us or an agency

See what a Tuesday looks like without retyping invoices

Sign up for the demo and see an order with an invoice from inFakt: its KSeF status, its number and a corrective invoice.

No agency? Join our design partner programme and we’ll set it up together.

Code for this integration: libs/integrations/infakt on GitHub