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
ksefijpk) - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| ufirma-0.1.1.tar.gz | 99.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|