ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

JPK_FA and JPK_VAT — Polish SAF-T

JPK (Jednolity Plik Kontrolny — Unified Control File) is the Polish implementation of the OECD SAF-T standard. Rolled out in 2016 in waves, it is the functional ancestor of KSeF and remains active in 2026 for accounting, banking and stock ledgers.

History: from OECD SAF-T to Polish JPK

The SAF-T (Standard Audit File for Tax) standard was published by the OECD in 2005 to harmonise accounting exports subject to tax audits. Several countries implemented it with nuances: Portugal (2008), Luxembourg (2011), Norway (2014). Poland adopted its version in 2016:

  • 1 July 2016 — JPK mandatory for large enterprises. First wave for large enterprises within the meaning of the act on freedom of economic activity.
  • 1 January 2017 — SME extension. JPK mandatory for medium-sized enterprises (250-499 employees).
  • 1 July 2018 — Generalisation. JPK mandatory for all enterprises, including micro-businesses and sole proprietors.
  • 1 October 2020 — JPK_V7M / JPK_V7K. Major overhaul of JPK_VAT into JPK_V7M (monthly) and JPK_V7K (quarterly), replacing the historical VAT-7 return.
  • 17 February 2022 — JPK_FA(4). Fourth version of the JPK_FA schema, aligned pre-FA(2) in anticipation of KSeF.
  • 1 February 2026 — Partial migration to KSeF. JPK_FA is gradually replaced by real-time KSeF clearance for invoice flows. JPK_VAT remains active for the VAT ledger.

The 7 JPK structures

Code Name Frequency Subject
JPK_FA(4)Faktury (invoices)On requestAll issued and received invoices
JPK_V7M / V7KVAT monthly / quarterlyMonthly / quarterlySales + purchases ledger + VAT return
JPK_KRKsięgi rachunkoweOn requestGeneral accounting book + trial balances
JPK_MAGMagazyn (stock)On requestStock movements (in, out, transfers)
JPK_WBWyciąg bankowy (bank statement)On requestConsolidated bank statements
JPK_EWPEwidencja przychodówOn requestRevenue ledger — ryczałt regime
JPK_PKPiRPodatkowa Księga Przychodów i RozchodówOn requestBook of income and expenses

Focus JPK_FA — invoices

JPK_FA is the structured export of all invoices issued (and, optionally, received) over a given period. Unlike KSeF, which is a real-time invoice-by-invoice clearance, JPK_FA is a bulk export, retrospective, at the administration's request.

xml jpk-fa-example.xml
<?xml version="1.0" encoding="UTF-8"?>
<JPK xmlns="http://jpk.mf.gov.pl/wzor/2022/02/17/02171/">
  <Naglowek>
    <KodFormularza kodSystemowy="JPK_FA (4)" wersjaSchemy="1-0">JPK_FA</KodFormularza>
    <WariantFormularza>4</WariantFormularza>
    <CelZlozenia>1</CelZlozenia>
    <DataWytworzeniaJPK>2026-05-19T18:00:00Z</DataWytworzeniaJPK>
    <DataOd>2026-04-01</DataOd>
    <DataDo>2026-04-30</DataDo>
    <KodUrzedu>1471</KodUrzedu>
  </Naglowek>

  <Podmiot1>
    <IdentyfikatorPodmiotu>
      <NIP>5260250274</NIP>
      <PelnaNazwa>Spółka Sprzedaży Sp. z o.o.</PelnaNazwa>
    </IdentyfikatorPodmiotu>
  </Podmiot1>

  <Faktura typ="G">
    <P_1>2026-04-15</P_1>
    <P_2A>FV/2026/04/0078</P_2A>
    <P_3A>Klient Sp. z o.o.</P_3A>
    <P_5B>7010023492</P_5B>
    <P_13_1>8000.00</P_13_1>
    <P_14_1>1840.00</P_14_1>
    <P_15>9840.00</P_15>
  </Faktura>

  <FakturaCtrl>
    <LiczbaFaktur>142</LiczbaFaktur>
    <WartoscFaktur>1248920.50</WartoscFaktur>
  </FakturaCtrl>
</JPK>

XML structure: Naglowek (file metadata, period, issuer NIP, tax office code), Podmiot1 (issuer identity), a sequence of Faktura (with typ attribute: G = sale, K = corrective, Z = advance), then FakturaCtrl (control checksum).

Focus JPK_VAT — VAT ledger

JPK_VAT, in its current JPK_V7M (monthly) or JPK_V7K (quarterly) version, merges the VAT ledger and the VAT return into a single file — removing the legacy paper VAT-7 return since 1 October 2020.

  • Declarative part. Monthly totals per VAT rate, output VAT, input VAT, net balance.
  • Evidence part. Line-by-line of each invoice in the ledger — issued or received. GTU codes (product category) and procedure codes (procedury) to mention.
  • GTU codes (Grupowanie Towarów i Usług). 13 codes to categorise tax-risk goods and services: alcohols, tobacco, vehicles, waste, intellectual services, etc.
  • Procedure codes. Special markers: SW (distance sale), EE (electronic services), TP (related parties), TT_WNT (triangular intra-EU acquisition), MR_T (tourism margin scheme), etc.

Articulation with KSeF 2026

The KSeF rollout reshapes the ecosystem:

  1. JPK_FA gradually residual. Since 1 April 2026, every B2B invoice flows through KSeF, which natively holds the information. The administration no longer needs to request a JPK_FA for these invoices. JPK_FA remains useful for flows outside KSeF (B2C, exports, FA(2) invoices refused under tryb awaryjny).
  2. JPK_VAT maintained. JPK_V7M remains compulsory monthly, but its sales lines are automatically fed by KSeF (the ministry is preparing a pre-fill module). The purchases lines and the declarative part remain the taxpayer's responsibility — input VAT is not in KSeF, the taxpayer must acknowledge what they deduct.
  3. JPK_KR / JPK_MAG / JPK_WB. Unchanged. KSeF does not cover general accounting nor banking flows.

Common pitfalls

  • Outdated schema. The ministry publishes a new version each year (JPK_FA(1) to (4), JPK_VAT v1 to v3). Using the old schema triggers automatic rejection. Verify WariantFormularza before each submission.
  • Missing electronic signature. JPK is compulsorily signed either by qualified e-IDAS certificate, ePUAP signature (Polish trusted profile), or podpis kwalifikowany. A submission without signature is rejected with code 414.
  • Confusing fiscal period and submission period. DataOd / DataDo indicates the covered fiscal period (tax month), not the submission date. The JPK_V7M filing deadline is the 25th of the following month.
  • Inconsistent FakturaCtrl. The control checksum LiczbaFaktur / WartoscFaktur must mathematically match the sum of Faktura elements in the document. A discrepancy blocks submission with code 417.