Skip to main content

ufirma

Rozliczenie VAT z faktur w KSeF, od początku do końca: pobranie faktur sprzedaży → zbudowanie JPK_V7M(3) → wysyłka do bramki e-Dokumenty MF → odbiór UPO. Jedna komenda ufirma.

Typowy scenariusz, którego nie obsłuży darmowa e-mikrofirma: JDG wystawia w KSeF fakturę dla firmy z USA w USD (nabywca bez NIP). ufirma przeliczy podstawę na PLN kursem z faktury, weźmie VAT z pól P_14_xW, wykaże nabywcę jako BRAK — a JPK wyśle bez podpisu kwalifikowanego, uwierzytelniając danymi autoryzującymi (NIP, imię, nazwisko, data urodzenia, przychód z zeznania).

Czego potrzebujesz

  • Python 3.11 lub nowszy — najprościej przez uv, który pobierze go sam,
  • token KSeF (generowany w Aplikacji Podatnika KSeF, uprawnienie odczytu faktur),
  • kwota przychodu z zeznania rocznego (np. PIT-36) za rok podatkowy o dwa lata wcześniejszy niż rok wysyłki (0, gdy nie było).

Instalacja i konfiguracja

uv tool install ufirma   # albo: pipx install ufirma / pip install ufirma

curl -O https://raw.githubusercontent.com/mbakalarski/ufirma/main/.env.example
mv .env.example .env     # uzupełnij swoimi danymi (NIP, token, imię…)
set -a; source .env; set +a

Windows (PowerShell) — wczytanie .env wygląda inaczej, zob. doc/cli.md. Instalacja ze źródeł (do rozwoju projektu) — doc/rozwoj.md.

Miesiąc rozliczeniowy w trzech krokach

# 1. Pobierz z KSeF XML faktur sprzedaży za miesiąc → faktury/
ufirma ksef download --from 2026-01-01 --to 2026-01-31

# 2. Zbuduj JPK_V7M(3) za okres → jpk/JPK_V7M_2026-01.xml
ufirma jpk generate --period 2026-01

# 3. Wyślij do bramki e-Dokumenty i odbierz UPO (dane autoryzujące,
#    bez certyfikatu) → jpk/JPK_V7M_2026-01.upo.xml
ufirma jpk send jpk/JPK_V7M_2026-01.xml

Reszta (dane podatnika, kwota przychodu, środowiska) idzie ze zmiennych w .env. Gotowy JPK jest sprawdzany oficjalnym schematem MF dołączonym do paczki, zanim trafi do bramki. Przypadki, których program nie umie poprawnie rozliczyć (marża, OSS, odwrotne obciążenie, waluta bez kursu…), kończą się jasnym błędem — zamiast po cichu zbudować zły plik.

Więcej

  • doc/cli.md — wszystkie opcje i zmienne środowiskowe, spółka, podpis certyfikatem, środowiska testowe MF
  • doc/api.md — użycie z Pythona (pakiety ksef i jpk)
  • doc/rozwoj.md — struktura projektu, testy, zakres

Licencja i odpowiedzialność

MIT — oprogramowanie „TAKIE, JAKIE JEST", bez gwarancji i odpowiedzialności autora. To nie jest porada podatkowa; za poprawność rozliczeń odpowiada użytkownik, który powinien zweryfikować wygenerowany JPK przed wysyłką na środowisko produkcyjne MF.

Release files for ufirma 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ufirma 0.1.0
File Size Uploaded
ufirma-0.1.0.tar.gz 99.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ufirma 0.1.0
File Interpreter ABI Platform
ufirma-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 186.6 kB

Release files / ufirma-0.1.0.tar.gz

Download URL ufirma-0.1.0.tar.gz
Size 99.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3a9fda88501a0f75de5845654317fd0352a15a5a0846b5018773e34aa4e07146
BLAKE2b-256 checksum
How to use checksums
cbcf606cf715aba3ba7ae5d882d271e02ac4916c3350253ff1daa9acecf56dd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ufirma-0.1.0-py3-none-any.whl

Download URL ufirma-0.1.0-py3-none-any.whl
Size 87.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02c504fcd18ea46c91639374c86f9f4c4847ec0d5e44ca0fd00493b5c045e530
BLAKE2b-256 checksum
How to use checksums
eedd805f077c97003cd37fa76e4a3d266f7fb1c345624a356642d9abc57513bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page