Blog

KSeF in Transport and Freight Forwarding: How to Prepare Your Company?

KSeF, Poland's National e-Invoice System, is mandatory from 2026 and is being introduced in stages: first the largest taxpayers, then the rest, with a later date for the smallest businesses. Check the exact date for your company on the Ministry of Finance KSeF website or with your accountant.

For transport and freight forwarding companies, KSeF is more than a new way of sending invoices. It changes how a sales invoice reaches the client, how invoices from carriers are received and how accounting matches them to orders. In this article we explain what KSeF is, what exactly it changes in a forwarder's daily work, walk through typical situations and give a list of steps to prepare your company.

What is KSeF?

KSeF (Krajowy System e-Faktur) is the Polish Ministry of Finance platform through which invoices between Polish businesses pass. A KSeF invoice is a structured invoice: an XML file following a schema defined by the ministry, not a PDF or a scan. Once the invoice is accepted, the system assigns it a KSeF identification number.

The buyer no longer receives the invoice by email but downloads it from KSeF, usually automatically through their own software. The date of receipt is the day the KSeF number is assigned, which ends disputes about when an invoice arrived.

What KSeF changes in a transport and forwarding company

Sales invoice
Before KSeF: a PDF by email or paper by post. With KSeF: a structured invoice sent to the system, which the client downloads.
Date of receipt
Before KSeF: when the client opened the email or got the letter. With KSeF: the day the KSeF number is assigned.
Carrier invoices
Before KSeF: the inbox and envelopes. With KSeF: invoices from Polish carriers are downloaded from the system.
Data errors
Before KSeF: found during bookkeeping. With KSeF: an invoice with a structural error is not accepted, so data has to be checked before sending.
CMR and documents
No change: transport documents still travel separately and have to be linked to the order and the invoice.

A forwarder is in a special position, because on every order it sits on both sides: it invoices the client and receives an invoice from the carrier. With dozens of orders a month, that means dozens of invoices in each direction to issue, download and match.

KSeF in practice: examples from a forwarder's day

An invoice for a Polish client

A transport from Łódź to Gdańsk is complete and the driver has uploaded a photo of the CMR. The forwarder closes the order and the software creates the invoice from the order data: buyer, route, client reference, amount. Before sending, the system checks the data, then sends the invoice to KSeF and shows the status on the order: sent, accepted or rejected. The client downloads the invoice in their own software. If the invoice is rejected, the forwarder sees it straight away, not a week later when the client asks where the invoice is.

A cost invoice from a carrier

A Polish carrier issues an invoice in KSeF. The forwarder downloads it and has to link it to the order. This is where discrepancies usually appear. For example, the order said EUR 1,250 and the carrier added EUR 150 for waiting time at unloading. When the cost invoice and the order sit in the same software, the difference is visible at once and can be cleared up before payment, not after the month is closed.

A foreign client or carrier

A foreign carrier with no seat or fixed establishment in Poland does not issue invoices in KSeF. Its invoices still arrive by email, so a forwarder has two streams of cost invoices: from KSeF and from outside it. Invoices for foreign clients are, as a rule, also created in KSeF, but they reach the recipient in an agreed way, for example as a PDF. Confirm the details for your own counterparties with your accountant.

An invoice in euro

In international transport, rates are often in euro. A KSeF invoice can be issued in a foreign currency, but the VAT amount is shown in zloty, converted at the rate set by the regulations, usually the average NBP rate from the last working day before the tax point. Software that fetches the rate and converts the VAT on its own saves the forwarder from checking rate tables by hand and lowers the risk of an error that sends the invoice back for correction.

A corrective invoice

A client disputes an invoice because the transport had one drop fewer. The corrective invoice also goes through KSeF and should refer to the original invoice. Software that keeps the invoice on the order lets you issue the correction with full context instead of searching the archive for the number.

The rules also provide modes for a KSeF outage or no internet access. An invoice issued in such a mode has to be sent to KSeF afterwards. It is worth deciding who in the company keeps track of that.

How to prepare a transport company for KSeF: step by step

Even if your company already issues invoices in KSeF, it is worth going through this list again. In many transport companies the rollout started with sales invoices, while receiving carrier cost invoices and matching them to orders is still done by hand.

  1. 1Check whether your invoicing program, TMS or freight forwarding software sends and receives invoices in KSeF, and see it live, not in a brochure.
  2. 2Set up permissions in KSeF: who in the company and which system can issue and download invoices on its behalf.
  3. 3Clean up counterparty data: tax IDs, names, addresses. An error in the buyer's details is the most common cause of invoice problems.
  4. 4Review numbering and invoice templates, including EUR invoices and invoices for foreign clients.
  5. 5Define the process for cost invoices: who downloads them from KSeF, who matches them to orders and who resolves differences.
  6. 6Review payment terms in carrier orders if the term runs from receipt of the invoice and documents.
  7. 7Train forwarders and accounting, and treat the first weeks as a period of closer status checks.

The most common problems with transport invoices in KSeF

  • Outdated buyer data in the contact database, copied from an email once and never checked against the register
  • An invoice issued in a separate program with no link to the order, which makes it hard to find and correct later
  • Cost invoices downloaded from KSeF but not matched to orders, so rate differences only surface at payment
  • Nobody in charge of checking statuses and dealing with rejected invoices
  • Assuming every cost invoice will arrive through KSeF, even though foreign carriers still send theirs by email

What to look for in transport invoicing software with KSeF

  • The invoice is created from order data, without retyping
  • Data validation before sending to KSeF
  • Invoice status visible on the order: sent, accepted, rejected
  • Receiving cost invoices from KSeF in the same system as the orders
  • Support for EUR invoices and invoices for foreign counterparties
  • Carrier settlements, payments and offsets
  • Export to the accounting program or ERP, e.g. Comarch Optima

How KSeF works in Sokar Logistics

In Sokar Logistics invoicing is part of the order. You close the order, and Sokar prepares the invoice, checks it and sends it to KSeF. You see the status next to the order. You receive carrier invoices from KSeF in the same system, and you handle carrier settlements, payments and offsets in the accounting module. Data goes to your accounting program, for example through the export to Comarch Optima. You do not need a separate KSeF tool.

  • An invoice from the order in one click after delivery
  • Data validation before sending to KSeF
  • Live statuses: sent, accepted, rejected
  • Sending and receiving invoices in KSeF
  • Carrier cost settlements, payments and offsets
  • The driver uploads the CMR through a link and it lands on the order

See how Sokar brings orders, invoices and KSeF together in one system

Discover Sokar Logistics

Want to see an invoice sent from an order to KSeF?

Book a Sokar Logistics demo