Faktury z Invoify¶
ksef convert [OPCJE] FAKTURA [WYNIK.xml]¶
Zamienia eksport z Invoify (JSON albo XML) na fakturę FA(3). Wynik trafia na wyjście albo do podanego pliku. Obecnie obsługuje tylko sprzedawców zwolnionych z VAT (art. 113). Faktury z podatkiem, rabatem albo kosztem wysyłki są odrzucane.
ksef convert faktura.json faktura.xml
ksef send faktura.xml
Invoify nie ma pól na identyfikatory podatkowe, więc convert czyta je
z pól dodatkowych (custom inputs):
| Strona | Pole | Znaczenie |
|---|---|---|
| nadawca | NIP |
NIP sprzedawcy. Wymagany. |
| nadawca | REGON |
REGON, trafia do stopki. |
| nadawca | SWIFT |
Kod SWIFT rachunku (także jako BIC). |
| odbiorca | NIP |
Polski NIP nabywcy. |
| odbiorca | VAT |
Numer VAT UE z prefiksem kraju, np. DE123.... |
| odbiorca | NrID |
Inny zagraniczny identyfikator. |
| odbiorca | KodKraju |
Dwuliterowy kod kraju nabywcy. |
Pole VAT może też nazywać się NrVatUE, VAT UE albo VAT ID. Bez
żadnego identyfikatora nabywca jest oznaczany jako podmiot bez
identyfikatora. Kraj nabywcy to kod dwuliterowy (DE) albo nazwa po polsku
lub angielsku (Niemcy, Germany).
NIP jest sprawdzany: 10 cyfr i cyfra kontrolna. Zagraniczny numer wpisany
w polu NIP jest odrzucany. Numer VAT spoza UE (np. GB...) trafia na fakturę
jako inny identyfikator zagraniczny.
Z faktury Invoify przenoszone są też: opis pozycji, warunki płatności, numer zamówienia oraz każde inne pole dodatkowe. Trafiają na fakturę jako dodatkowe opisy (pary klucz i wartość), a numer zamówienia do warunków transakcji.
Opcje podaje się przed plikami. Dotyczą wartości, na które Invoify nie ma pól:
| Opcja | Znaczenie |
|---|---|
--sale-date DATA |
Data sprzedaży, gdy różni się od daty wystawienia. |
prev-month-end: ostatni dzień poprzedniego miesiąca. |
|
--paid |
Oznacza fakturę jako zapłaconą dziś. |
--paid-date DATA |
Oznacza fakturę jako zapłaconą w podanym dniu. |
--due-date DATA |
Termin płatności zamiast tego z faktury. |
--place TEKST |
Miejsce wystawienia faktury. |
--rate KURS |
Kurs waluty zamiast kursu NBP. |
--rate-date DATA |
Kurs średni NBP z tego dnia albo ostatni przed nim. |
--buyer-country XX |
Kod kraju nabywcy, gdy nazwa nie jest rozpoznana. |
--buyer-id TEKST |
Zagraniczny identyfikator nabywcy. |
--unit TEKST |
Jednostka miary pozycji. Domyślnie m-c (miesiąc). |
--exemption TEKST |
Podstawa zwolnienia. Domyślnie art. 113 ust. 1. |
Faktura w walucie obcej dostaje kurs średni NBP (tabela A, publiczne API)
z ostatniego dnia roboczego przed datą wystawienia. --rate-date wybiera
inny dzień, a --rate podaje kurs wprost.
Przykład faktury w euro dla kontrahenta z Niemiec:
ksef convert --sale-date 2026-10-31 faktura.json faktura.xml
Regularnie używane opcje można wpisać raz do ksef.conf. Parametry z wiersza
poleceń mają pierwszeństwo. Wartości ze spacją ujmij w cudzysłów, np.
--place "Nowy Sącz":
convert_options=--sale-date prev-month-end --paid
Po konwersji convert pokazuje podsumowanie faktury: numer, daty, strony,
pozycje, kwotę z kursem i płatność. Wiersz extra wymienia dodatkowe
opisy, a not set opcjonalne wartości, których nie ustawiono.
Przejrzyj wynikowy XML przed wysyłką. Za treść faktury odpowiada jej wystawca.