How to link a KSeF invoice with JPK_V7, ZUS and ryczałt?
Sending an invoice to KSeF is only the first step of your monthly routine. The invoice must be correctly recorded in your VAT registers with its KSeF number, and then reported in JPK_V7M, ryczałt tax and ZUS. Follow this practical guide for a sole trader to see how the systems interact.

Last updated: 10 October 2026
Sending an invoice to KSeF closes one step, not the month. The same invoice then has to land in your VAT records, in the JPK_V7M file and in your ryczałt (flat-rate tax) base, while ZUS contributions run alongside. Since 2026 the link between a KSeF invoice and JPK_V7 is direct: the number KSeF assigns goes into your VAT records, and the tax office can match it against what it sees in the system.
Instead of a list of slogans, I'll walk through one concrete example: a programmer running a sole proprietorship (JDG), one month, every step in order.
Example: October 2026 for a programmer on a JDG
Assumptions (as of October 2026):
JDG, active VAT payer, monthly VAT settlement (JPK_V7M),
ryczałt (flat-rate tax on recorded revenue) at 12% (software services),
full ZUS with voluntary sickness insurance, no employees,
one sales invoice and one purchase invoice in October.
Document Net VAT 23% Gross Sale: software development services (15.10.2026) PLN 15,000.00 PLN 3,450.00 PLN 18,450.00 Purchase: work monitor (received via KSeF) PLN 2,000.00 PLN 460.00 PLN 2,460.00
Step 1. Issue the invoice and send it to KSeF
You send the invoice in the FA(3) structure. KSeF validates it, assigns a KSeF number and returns a UPO (urzędowe poświadczenie odbioru, the official receipt). Only from that moment does the invoice formally exist in the system and become available to the buyer.
From a developer's point of view: the UPO is an XML document signed by the Ministry of Finance. It isn't a pretty confirmation to print. It is proof that, and when, the system accepted the invoice. Your software should store it next to the invoice, not just flash a green message.
Step 2. The purchase invoice arrives on its own
Since 1 February 2026 all VAT payers receive invoices through KSeF. The monitor invoice therefore already has its KSeF number. Your job is to decide whether, and in which period, you deduct the VAT.
A ryczałt caveat: you deduct the VAT on this invoice (PLN 460), but the purchase itself does not reduce your revenue. Ryczałt ignores costs, so the monitor won't lower your income tax. This trips up many people moving over from the tax scale or the flat 19% rate.
Step 3. VAT records with the KSeF number in JPK
This is where the new JPK_V7M(3) structure, mandatory for periods from February 2026, changes things. Every entry in the sales and purchase records has a KSeF field, where you enter the KSeF number or one of three markers:
Marker When KSeF number the invoice was sent to KSeF and has a number before the JPK is filed OFF an invoice issued during a KSeF outage, still without a number on the filing date BFK an invoice issued outside KSeF (e.g. by a micro-business with monthly sales up to PLN 10,000 gross, which doesn't have to use KSeF until the end of 2026) DI a document other than a KSeF invoice (e.g. an internal document), or an offline-mode invoice that hasn't received a number yet
In our example both rows get a KSeF number. If an invoice goes into the records as OFF or DI and the number is assigned later, you'll need a JPK correction with the number filled in.
Why this matters technically: the KSeF number is the key the tax office can use to match your JPK against KSeF data. Copying it by hand from a PDF invites typos. Software should take the number straight from the KSeF response and write it into the register without your involvement.
Step 4. JPK_V7M: records and declaration
The records produce the JPK_V7M file. For our example the declaration part looks like this:
output VAT: PLN 3,450.00,
input VAT to deduct: PLN 460.00,
VAT payable: PLN 2,990.00.
The file must validate against the XSD schema (here JPK_V7M(3)). A structural error means the Ministry of Finance gateway rejects the file. A substantive error passes validation but may lead to a request from the tax office.
Once the file is accepted you receive a second UPO, this time for the JPK. It is your proof of filing on time. Keep it as carefully as the KSeF UPO.
Step 5. Ryczałt for October
The ryczałt base is the PLN 15,000 revenue (net, excluding VAT). From revenue you may deduct paid social contributions and 50% of the paid health contribution. The tax is 12% of the reduced amount, rounded.
On ryczałt the health contribution depends on your annual revenue bracket, so the software has to know year-to-date revenue, not just the current month.
Step 6. ZUS contributions
On full ZUS in 2026 the contribution base is PLN 5,652.00 (60% of the projected average wage of PLN 9,420). Social contributions including the Labour Fund and voluntary sickness insurance come to PLN 1,926.76 a month, or PLN 1,788.29 without sickness insurance. The health contribution comes on top.
If you run a JDG without employees, contributions for a given month are due by the 20th of the following month. Once a year, in the April filing (by 20 May), you submit the annual health-contribution reconciliation.
JPK_V7M, ryczałt and ZUS deadlines in one calendar
For the October 2026 period:
Deadline What Proof ongoing (October) sending invoices to KSeF KSeF UPO, KSeF number 20 November 2026 ZUS contributions for October transfer to your NRS account 20 November 2026 ryczałt for October transfer to your tax micro-account 25 November 2026 JPK_V7M for October + VAT payment of PLN 2,990 JPK UPO
One invoice, four deadlines, three different proofs. That's why "I issued the invoice" is only the start of the month.
What happens when the links come apart
JPK error. If the tax office finds an error that prevents transaction verification, it asks you to correct it. You have 14 days to correct or explain. After that, the head of the tax office may impose a PLN 500 penalty per error listed in the request (art. 109(3h) of the VAT Act).
KSeF. Until the end of 2026 the Ministry of Finance doesn't penalise KSeF-related errors. From 1 January 2027 art. 106ni of the VAT Act applies, providing among other things for a penalty of up to 100% of the VAT on an invoice issued outside KSeF despite the obligation.
ZUS. A late payment means default interest on the arrears.
Note that the penalty-free KSeF period doesn't exempt you from the new JPK structure. KSeF numbers or OFF/BFK/DI markers have been required in VAT records since the February 2026 settlement.
What to check when choosing software (any brand)
Does the KSeF number reach the VAT register automatically, without retyping?
Does it store both UPOs: from KSeF and from the JPK filing?
Does it handle OFF, BFK and DI markers and the JPK correction once a number is assigned?
Does it compute ryczałt on year-to-date revenue, with contributions deducted?
Does it remind you about the 20th and 25th of the month?
Does it pull purchase invoices from KSeF instead of making you enter them by hand?
If your current tool only handles the invoice, you close the rest yourself or with your accountant. That's fine, as long as you know where the automation stops.
How we approach it at Biurko
The example in this article is exactly the month that runs in one place in Biurko: the invoice goes to KSeF in FA(3) with a UPO, the KSeF number is saved in the VAT register, the registers produce a JPK_V7M or JPK_V7K sent to the Ministry of Finance gateway with a UPO, the ryczałt records compute the tax, and ZUS contributions have their own deadline calendar. The KSeF connection works through a permission you grant yourself and can revoke at any time in the KSeF portal. We develop Biurko in short cycles and describe every change in a public changelog.
If you're switching invoicing software before 1 January 2027, you can try Biurko on the FREE plan: no card required, with unlimited sending to KSeF.
Summary
A KSeF invoice and JPK_V7 are now one chain: the KSeF number from the invoice goes into the records, the records build JPK_V7M, and ryczałt and ZUS run alongside with a deadline on the 20th. Your key control documents are two different UPOs: from KSeF and from the JPK filing. For your individual situation, it's worth consulting a tax adviser or accountant.
FAQ
Do I have to enter the KSeF number in JPK? Yes. From the February 2026 settlement, in the JPK_V7M(3) and JPK_V7K(3) structures every entry in the sales and purchase records has a KSeF field. You enter the invoice's KSeF number there, or the OFF, BFK or DI marker when there is no number. This also applies to businesses that don't issue invoices in KSeF yet.
What's the difference between the KSeF UPO and the JPK UPO? The KSeF UPO confirms that the system accepted a specific invoice and assigned it a number. The JPK UPO confirms that you filed the JPK_V7, meaning your VAT records and declaration for the period. They are two separate XML documents signed by the Ministry of Finance. Keep both, because each proves something different.
When is JPK_V7M due? By the 25th of the month following the settlement period. The JPK_V7M for October 2026 is due by 25 November 2026, and the VAT is payable by the same date. With quarterly settlement (JPK_V7K) you send the records part every month and the declaration part after the quarter ends.
How much are ZUS contributions in 2026? On full ZUS the contribution base is PLN 5,652. Social contributions including the Labour Fund are PLN 1,926.76 with voluntary sickness insurance, or PLN 1,788.29 without it. The health contribution comes on top, and its amount depends on your form of taxation and your income or revenue.
Will the monitor invoice lower my ryczałt tax? No. On ryczałt you pay tax on revenue and don't deduct costs. If you're an active VAT payer, you can still deduct the input VAT from that invoice in JPK_V7. From revenue you deduct only paid social contributions and half of the health contribution.
What happens if I file a JPK with an error? The tax office will first ask you to correct it or explain. You have 14 days from receiving the request. If you don't fix the file or show that there is no error within that time, the head of the tax office may impose a PLN 500 penalty for each error listed in the request.
Tags
Previous article
How to choose a Fakturownia alternative for B2B?
Next article
How to handle B2B developer taxes, KSeF and ZUS?