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.1

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.1
File Size Uploaded
ufirma-0.1.1.tar.gz 99.5 kB Details

Built distribution (wheel)

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

Total release size: 186.6 kB

Release files / ufirma-0.1.1.tar.gz

Download URL ufirma-0.1.1.tar.gz
Size 99.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ea4582660a13d4e23f2984c7b9e5afc23f66dfb73062178afdeb8672dfb254a8
BLAKE2b-256 checksum
How to use checksums
7bcd42ef92db9b200e08e8a15aa1b1c9064dc8a4d670e3953b5d061034e76c9a
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.1-py3-none-any.whl

Download URL ufirma-0.1.1-py3-none-any.whl
Size 87.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77cd254f38234d709c1d380be8f2c896c9c9a3271d33ae269d5a653f86daff0b
BLAKE2b-256 checksum
How to use checksums
74ed4353ed20bd40c403846da3cad38c92a8408c41c60ddc4135ae134980b625
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

This release

0.1.1 This release

2 release files

0.1.0

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