Back to Knowledge Base

The annual JPK_EWP: who files it and when

How JPK_EWP differs from JPK_V7, what goes into the file, and why you start the submission yourself.

The annual JPK_EWP: what a ryczałt contractor files, and when

What the file is, and how it differs from JPK_V7

JPK_EWP is a structured file that hands the tax office your revenue ledger (ewidencja przychodów) for a full calendar year, in the shape you keep it day to day. It belongs to income tax settled under ryczałt — the flat-rate tax charged on revenue alone — and is filed once, after the year closes.

JPK_V7 is a different obligation: it covers VAT, merges the purchase and sales registers with the VAT return, runs monthly or quarterly, and binds only a business registered for VAT (czynny podatnik VAT).

That settles a question people often get backwards. If you are exempt from VAT, VAT registers and the JPK_V7 never arise for you at all — the obligation simply does not exist. Your whole relationship with JPK comes down to one annual file. For the wider picture of a solo firm, see the introduction to running a JDG.

Who files it, and by when

The file is due from anyone taxed under ryczałt on recorded revenue, and so keeping a revenue ledger. You close the 2026 tax year with a file submitted by 30 April of the following year — one deadline per tax year, however many invoices sit inside it.

What actually goes into it

The file is not a single total or a year-end summary. It carries the ledger entry by entry: date, document number, contractor, revenue amount, and the rate it was recorded under.

  • Included — revenue from the sales invoices you issued, laid out month by month.
  • Excluded — advance invoices (ZAL) and proformas. Neither creates ledger revenue on its own, so neither appears in the file.
  • Corrections — a corrective invoice belongs to the period and rate it corrects, not the month it was issued in.
  • Rate — revenue of a period carries the rate in force for that period, and a correction of an earlier one carries that earlier rate, so a single month in the file can show two. Where the rate comes from, and why it is not a matter of preference, is covered in the article on ryczałt rates.

How this runs in the app

In Biurko you keep the revenue ledger, and the file is assembled from it document by document — nothing is retyped into a separate form. Before anything leaves for the tax office, it is validated against the Ministry of Finance XSD schema, so structural problems surface on your side.

You start the submission. The app waits on your decision and sends nothing by itself. Once the file goes through, the UPO comes back and stays attached to it — as it does with an invoice sent to KSeF.

There is no automatic annual filing

This deserves stating plainly, because the word "automation" invites the wrong assumption. Automatic submission in the app covers only the JPK_V7M and JPK_V7K of a VAT-registered business — the VAT side, not ryczałt. Even that switch ships turned off: you enable it deliberately or not at all. Nothing files the annual JPK_EWP in the background. The deadline is yours to watch, the moment of sending yours to choose.

When a filed file turns out to be wrong

A JPK file is corrected by filing it again for the same year, in a version carrying the right figures. Order matters: fix the source first — the document and its ledger entry — and build the new version from that.

If the mistake concerns how revenue was classified or which rate applied, rather than a typo in contractor details, talk to an accountant or a tax adviser. Errors of that kind reach back into the tax advances paid during the year, which the annual file alone does not settle.

The annual file, the tax advances, and the return

Three obligations run on different clocks.

  • The tax advance under ryczałt is monthly as a rule: you owe it during the year, and the app works it out from your ledger as a running total from January.
  • The annual JPK_EWP reports that same ledger once a year. Filing it is not the same act as paying the tax.
  • The annual PIT-28 return is filed outside Biurko — by you, or with your accountant. You take an organised revenue ledger out of the app for it, but the base shown there is counted from revenue alone: the app deducts neither the social contributions nor 50% of the health contribution, so it still has to be reduced before it reaches the return. The app does not fill the return in.

To see how the sequence lands inside one working month, read the B2B accounting page.

Cookies

Essential ones keep the service running. The rest only with your consent. Cookie Policy