- Pobieranie danych faktury
- Wystawianie faktury
- Pobieranie faktury w pdf
- Wysłanie faktury do klienta e-mailem
- Dodanie relacji między dokumentami
- Usuwanie faktury
- Wysyłanie faktury do KSeF
- Pobieranie listy działów
- Pobieranie listy dokumentów
- Pobieranie listy magazynów
- Pobieranie listy produktów
- Pobieranie ilości produktów w magazynie
- Pobieranie listy klientów
- Zmiana statusu dokumentu
- Dodawanie tagów
- Usuwanie tagów
- Dodawanie produktów
- Kasowanie produktów
- Dodawanie klientów
- Kasowanie klientów
- Zwracane kody
- Słowniki
API
API token:
1. Pobieranie danych faktury:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie dokumentu: |
2. Wystawianie faktury:
|
Prosimy w XML używać kodowania znaków w formacie utf-8
Wartości pól tekstowych mogą być umieszczane w sekcji CDATA. Jest to przydatne, gdy zawartość zawiera znaki specjalne XML, np. &, <, > lub apostrof. Mechanizm ten działa dla wszystkich pól tekstowych w XML.
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie dokumentu: Kod QR do płatności na wydruku faktury
<qr_platnosc>
:
0 - wyłączony 1 - włączony W sekcji `faktura_pozycje` można określić ceny pozycji faktury. Sposób obliczania wartości pozycji zależy od wartości parametru `
<obliczaj_wartosc_faktury_od>
`:
0 - obliczaj wartość faktury od ceny jednostkowej netto 1 - obliczaj wartość faktury od ceny jednostkowej brutto (zgodne z kasą fiskalną)
Dla dokumentów typu „marża” proszę podać również poniższe pola: ( opcjonalnie pola te można dodać także dla faktur zaliczkowych i końcowych. )
Dla dokumentów typu: Faktura VAT Faktura korekta Faktura marża Faktura bez vat (rachunek) - tylko koszty Faktura zaliczkowa Paragon PZ - Przyjęcie Zewnętrzne PW - Przyjęcie Wewnętrzne Faktura WDT Eksport Towarów Eksport Usług Eksport Usług VAT-UE 28b Import usług VAT-UE 28b W sekcji <dokument> można dodać pole data_wplywu:
Dla dokumentów przychodowych typu: Faktura VAT Faktura marża Faktura bez vat (rachunek) Faktura zaliczkowa Jeżeli została dodana integracja z przelewy24 lub PayU to w sekcji <dokument> można dodać pole platnosci_elektroniczne dzięki temu na dokumencie zostanie zaznaczona opcja "Pokaż płatności elektroniczne na fakturach"
W sekcji <dokument> można dodać pole zastosuj_mechanizm_podzielonej_platnosci, które oznacza fakturę adnotacją "mechanizm podzielonej płatności" (MPP, split payment): 0 - wyłączone ( wartość domyślna ) 1 - włączone
W sekcji <dokument> można dodać pole rodzaj_faktury_koszty które określa rodzaj faktury: 1 - przychodowa ( wartość domyślna ) 2 - kosztowa
W sekcji <dokument> można dodać pole miejsce_wystawienia, które określa miejsce wystawienia dokumentu:
W sekcji <dokument> można dodać pole rodzaj_przeliczania_waluty. 1 - Narodowy Bank Polski 2 - Własny kurs 3 - EBC
W sekcji <dokument> można dodać pole dokument_rel_id które daje możliwość dodania relacji z innymi dokumentami. Dla faktury końcowej, możliwość dodania relacji z dokumentami: - faktury zaliczkowe
W sekcji <rodzaj_kosztow> można wprowadzać wartości dostępne na stronie Ustawienia / Koszty. Opcja dostępna jest dla dokumentów kosztowych typu: 0 - Faktura VAT 1 - Faktura proforma 3 - Faktura końcowa 4 - Faktura korekta 5 - Faktura marża 6 - Faktura bez vat (rachunek) 7 - Zamówienie 11 - Faktura zaliczkowa 21 - Dowód wewnętrzny 29 - Import usług VAT-UE 28b
|
W sekcji <dokument> można wprowadzić numer konta bankowego sprzedawcy
<sprzedawca>
<nr_konta_bankowego>43105000865982825875100235</nr_konta_bankowego>
</sprzedawca>
W sekcji <dokument> można opcjonalnie dodać dane odbiorcy (jeśli odbiorca jest inny niż nabywca):
<odbiorca>
<nazwa>Firma - nazwa odbiorcy</nazwa>
<nip></nip>
<ulica_i_numer></ulica_i_numer>
<kod_pocztowy></kod_pocztowy>
<miejscowosc></miejscowosc>
<kraj>PL</kraj>
<ksef_rola></ksef_rola>
<ksef_idwew></ksef_idwew>
</odbiorca>
W sekcji <dokument> można dodać pole numer_ksef, zawierające numer KSeF nadany w innym systemie:
<numer_ksef>1234567890-20250114-ABCD1234-EF56-78</numer_ksef>
Wystawianie faktury OSS:
|
Dla typu sprzedaży ( towar ):
Dla typu sprzedaży ( usługa ):
Prosimy w XML używać kodowania znaków w formacie utf-8
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie dokumentu: |
Wystawianie faktury korygującej
Prosimy w XML używać kodowania znaków w formacie utf-8
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie dokumentu: Przydatne informacje: - Sekcja <faktura_pozycje_bylo>...</faktura_pozycje_bylo> nie jest wymagana. W przypadku braku dane zostaną automatycznie pobrana z dokumentu korygowanego. - Sekcja <faktura_pozycje_powinno_byc>...</faktura_pozycje_powinno_byc> nie jest wymagana. W przypadku braku dane zostaną automatycznie pobrana z dokumentu korygowanego. - Sekcja <sprzedawca>...</sprzedawca> można podać wszystkie dane lub tylko te które zostały zaktualizowane. - Sekcja <nabywca>...</nabywca> można podać wszystkie dane lub tylko te które zostały zaktualizowane. - Sekcja <odbiorca>...</odbiorca> można podać wszystkie dane lub tylko te które zostały zaktualizowane. * w powyższym przykładzie dla testu zostały podane wszystkie możliwe informacje w sekcjach: sprzedawca, nabywca, odbiorca, faktura_pozycje_bylo, faktura_pozycje_powinno_byc * pozycje <faktura_pozycje_bylo> oraz <faktura_pozycje_powinno_byc> będą wstawiane w takiej samej kolejności w jakiej znajdują się w przesłanym pliku XML |
Wystawianie faktury korygującej do paragonu
Prosimy w XML używać kodowania znaków w formacie utf-8
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie dokumentu: Przydatne informacje: - Sekcja <faktura_pozycje_bylo>...</faktura_pozycje_bylo> nie jest wymagana. W przypadku braku dane zostaną automatycznie pobrana z dokumentu korygowanego. - Sekcja <faktura_pozycje_powinno_byc>...</faktura_pozycje_powinno_byc> nie jest wymagana. W przypadku braku dane zostaną automatycznie pobrana z dokumentu korygowanego. - Sekcja <sprzedawca>...</sprzedawca> można podać wszystkie dane lub tylko te które zostały zaktualizowane. - Sekcja <nabywca>...</nabywca> można podać wszystkie dane lub tylko te które zostały zaktualizowane. - Sekcja <odbiorca>...</odbiorca> można podać wszystkie dane lub tylko te które zostały zaktualizowane. * w powyższym przykładzie dla testu zostały podane wszystkie możliwe informacje w sekcjach: sprzedawca, nabywca, odbiorca, faktura_pozycje_bylo, faktura_pozycje_powinno_byc * pozycje <faktura_pozycje_bylo> oraz <faktura_pozycje_powinno_byc> będą wstawiane w takiej samej kolejności w jakiej znajdują się w przesłanym pliku XML |
Wystawianie faktury końcowej
Prosimy w XML używać kodowania znaków w formacie utf-8
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie dokumentu: Przydatne informacje: - Sekcja <dokument_rel_id>...</dokument_rel_id> służy do powiązania faktury końcowej z fakturami zaliczkowymi. - Można podać wiele sekcji <dokument_rel_id> (maksymalnie 9 faktur zaliczkowych). - Wartość w <dokument_rel_id> to ID faktury zaliczkowej (typ_faktury=11) z systemu. - Faktury zaliczkowe muszą mieć tę samą walutę co faktura końcowa. - Faktura zaliczkowa nie może być już powiązana z inną fakturą końcową. |
Wystawianie noty obciążeniowej
Prosimy w XML używać kodowania znaków w formacie utf-8
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie dokumentu: |
3. Pobieranie faktury w PDF:
Parametr "k" to unikatowy numer dokumentu który otrzymujemy podczas dodawania dokumentu za pomoca API. Można pobrać go również za pomocą API "Pobieranie listy dokumentów" Pobieranie pliku PDF: https://program.fakturaxl.pl/api/pdf.php?k=3UemoDtuGj1xJxogDk5cvWk5aYjrV04JJCN92kDhhRuhDyzncgpWNJEphsARGKspbzYneekqx2tV6150&pdf=1 Przykładowe dane które zwraca API:
Błędne pobranie:
Otwieranie pliku PDF: https://program.fakturaxl.pl/api/pdf.php?k=3UemoDtuGj1xJxogDk5cvWk5aYjrV04JJCN92kDhhRuhDyzncgpWNJEphsARGKspbzYneekqx2tV6150&pdf=2 Przykładowe dane które zwraca API:
Błędne otwarcie:
Zapisanie pliku PDF:
$input_xml = "
Przykładowe dane które zwraca API: Poprawne odczytanie dokumentu:
Błędne otwarcie:
|
4. Wysłanie faktury do klienta e-mailem:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawnie wysłany e-mail: |
5. Dodanie relacji między dokumentami:
|
Możliwe jest dodanie relacji pomiędzy Fakturą VAT <dokument_id> a Proformą lub Zamówieniem <rel_dokument_id>.
Aktualnie w jednym wywołaniu można dodać tylko jedną relację.
$input_xml = "
Przykładowe dane, które zwraca API: Poprawnie dodana relacja: |
6. Usuwanie faktury:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne usunięty dokument: |
7. Wysyłanie faktury do KSeF:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne wysyłanie faktury do KSeF: |
8. Pobieranie listy działów:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie listy działów |
9. Pobieranie listy dokumentów:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie listy dokumentów
Przykład 2 Można pobrać listę pozycji, które zostały dodane lub zmienione od wybranej daty, na przykład od 15:00. Jest to przydatna opcja, jeśli chcemy sprawdzić, czy np. w ostatniej godzinie dodano lub zmieniono dokumenty, bez konieczności ciągłego pobierania całej listy.
$input_xml = "
Przykład 3 Można pobrać listę dodanych dokumentów w określonym czasie z dokładnością co do sekundy. Jest to przydatna funkcja, jeśli chcesz sprawdzić, czy jakiś dokument został dodany na przykład w ciągu ostatnich trzech godzin lub innego dokładnie określonego przedziału czasowego.
$input_xml = "
Przykład 4 Dodanie parametru "status" umożliwia pobranie dokumentów o określonym statusie. Dostępne statusy: 0 - Nieopłacona 1 - Częściowo opłacona 2 - Opłacona
$input_xml = "
Example 5 Dodanie parametru "rodzaj_faktury_koszty" umożliwia pobranie wyłącznie faktur wybranego rodzaju. Dostępne wartości: 1 - tylko faktury przychodowe ( sprzedażowe ) 2 - tylko faktury kosztowe Gdy parametr jest pusty lub nie zostanie podany, zwracane są oba rodzaje dokumentów ( zachowanie domyślne ).
$input_xml = "
Example 6 Dodanie parametru "klient_id" umożliwia pobranie wyłącznie faktur wystawionych dla wskazanego klienta. Gdy parametr jest pusty lub nie zostanie podany, zwracane są faktury dla wszystkich klientów ( zachowanie domyślne ).
$input_xml = "
|
10. Pobieranie listy magazynów:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie listy magazynów: |
11. Pobieranie listy produktów:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie listy produktów: Przykład 2 Można pobrać listę pozycji, które zostały dodane lub zmienione od wybranej daty, na przykład od 15:00. Jest to przydatna opcja, jeśli chcemy sprawdzić, czy np. w ostatniej godzinie dodano lub zmieniono produkty, bez konieczności ciągłego pobierania całej listy.
$input_xml = "
Przykład 3 Można pobrać listę dodanych produktów w określonym czasie z dokładnością co do sekundy. Jest to przydatna funkcja, jeśli chcesz sprawdzić, czy jakiś produkt został dodany na przykład w ciągu ostatnich trzech godzin lub innego dokładnie określonego przedziału czasowego.
$input_xml = "
|
12. Pobieranie ilości produktów w magazynie:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie listy produktów: Przykład 2 Można pobrać listę pozycji, które zostały dodane lub zmienione od wybranej daty, na przykład od 15:00. Jest to przydatna opcja, jeśli chcemy sprawdzić, czy np. w ostatniej godzinie dodano lub zmieniono ilości w produktach, bez konieczności ciągłego pobierania całej listy.
$input_xml = "
|
13. Pobieranie listy klientów:
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne odczytanie listy klientów: Przykład 2 Można pobrać listę pozycji, które zostały dodane lub zmienione od wybranej daty, na przykład od 15:00. Jest to przydatna opcja, jeśli chcemy sprawdzić, czy np. w ostatniej godzinie dodano lub zmieniono klientów, bez konieczności ciągłego pobierania całej listy.
$input_xml = "
Przykład 3 Można pobrać listę dodanych klientów w określonym czasie z dokładnością co do sekundy. Jest to przydatna funkcja, jeśli chcesz sprawdzić, czy jakiś klient został dodany na przykład w ciągu ostatnich trzech godzin lub innego dokładnie określonego przedziału czasowego.
$input_xml = "
|
14. Zmiana statusu dokumentu:
Istnieją trzy sposoby zmiany statusu dokumentu: 1. Poprzez dodanie pojedynczej wpłaty lub wpłat: $input_xml = " Przykładowe dane, które zwraca API: Poprawna zmiana statusu: |
15. Dodawanie tagów:
Wartości pól tekstowych mogą być umieszczane w sekcji CDATA. Jest to przydatne, gdy zawartość zawiera znaki specjalne XML, np. &, <, > lub apostrof. Mechanizm ten działa dla wszystkich pól tekstowych w XML.
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie tagów:
|
16. Usuwanie tagów:
Wartości pól tekstowych mogą być umieszczane w sekcji CDATA. Jest to przydatne, gdy zawartość zawiera znaki specjalne XML, np. &, <, > lub apostrof. Mechanizm ten działa dla wszystkich pól tekstowych w XML.
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne usunięcie tagów:
|
17. Dodawanie produktów:
|
Prosimy w XML używać kodowania znaków w formacie utf-8
Wartości pól tekstowych mogą być umieszczane w sekcji CDATA. Jest to przydatne, gdy zawartość zawiera znaki specjalne XML, np. &, <, > lub apostrof. Mechanizm ten działa dla wszystkich pól tekstowych w XML. Jeżeli jednocześnie podano cenę netto i brutto, cena netto jest wyliczana z brutto.
$input_xml = "
Przykładowe dane, które zwraca API: Poprawne dodanie produktu: |
18. Kasowanie produktów:
Jeżeli produkt jest używany na dokumentach lub posiada ruchy magazynowe, nie zostaje skasowany, tylko otrzymuje status nieaktywny.
$input_xml = "
Przykładowe dane, które zwraca API:
Poprawne skasowanie produktu: |
19. Dodawanie klientów:
|
Prosimy w XML używać kodowania znaków w formacie utf-8
Wartości pól tekstowych mogą być umieszczane w sekcji CDATA. Jest to przydatne, gdy zawartość zawiera znaki specjalne XML, np. &, <, > lub apostrof. Mechanizm ten działa dla wszystkich pól tekstowych w XML. Dla firmy wymagane jest pole nazwa. Dla osoby prywatnej wymagane są pola imie oraz nazwisko.
$input_xml = "
Przykładowe dane, które zwraca API:
Poprawne dodanie klienta: |
20. Kasowanie klientów:
Kasowanie działa tak samo jak na liście klientów. Dane firmowe sprzedawcy nie mogą zostać skasowane.
$input_xml = "
Przykładowe dane, które zwraca API:
Poprawne skasowanie klienta: |
Zwracane kody:
1 - Dokument został poprawnie dodany |
typ_faktury - typy dokumentów:
0 - Faktura VAT |
typ_faktur_podtyp - podtyp dokumentu używany w paragonach:
0 - Niefiskalny |
obliczaj_sume_wartosci_faktury_wg - parametr używany w paragonach:
0 - sumy netto, vat i brutto pozycji (domyślnie) |
rodzaj_platnosci:
Przelew |
Rodzaj dokumentu ( rodzaj_faktury_koszty ) parametr opcjonalny:
1 - przychody ( domyślna ) 2 - koszty |
status:
0 - Nieopłacona |
status ksef:
0 - Wysyłanie - oczekujemy na nadanie numeru KSeF 1 - Numer KSeF został nadany 2 - Błąd - dokument nie przyjęty |
jezyk:
1 - Angielski |
Szablon wydruku ( szablon ):
0 - Podstawowy 1 - Prosty 2 - Ekonomiczny |
automatyczne_tworzenie_dokumentu_magazynowego
Do dodawanej faktury zostanie automatycznie wystawiony dokument magazynowy WZ lub PZw zależności od tego, czy wystawiana faktura była fakturą kosztową czy przychodową.
W celu aktywowania tej opcji konieczne jest również podanie parametru magazyn_id:
0 - nie wystawiaj 1 - wystawiaj |
waluta:
PLN |
id_dzialy_firmy:
21 - Główny |
rodzaj_produktu:
0 - Sprzedawane i kupowane |
usluga:
0 - Towar |
towar_usluga:
0 - Towary handlowe |
symbol_gtu:
1 - GTU_01 |
firma_lub_osoba_prywatna:
0 - Firma 1 - Osoba prywatna |
czlonek_grupy_vat:
1 - członek grupy VAT |
jednostka_samorzadu_terytorialnego:
1 - jednostka samorządu terytorialnego |
obliczaj_wartosc_faktury_od:
0 - Ceny jednostkowej netto (domyślna) 1 - Ceny jednostkowej brutto - zgodne z kasą fiskalną |
qr_platnosc:
0 - Kod QR do płatności wyłączony (domyślnie) 1 - Kod QR do płatności włączony na wydruku faktury |
qr_offline:
0 - Kody QR offline wyłączone (domyślnie) 1 - Kody QR offline włączone na wydruku faktury |
oss_dowod_potwierdzajacy_1:
1 - Adres IP |
oss_dowod_potwierdzajacy_2:
1 - Adres IP |
oss_typ_sprzedazy:
0 - Usługi |
wybrany_typ_dokumentu - pokaż wybrany typy dokumentów:
0 - Faktura VAT |
typ_marzy:
1 - Margin procedure for travel agencies |
JPK_V7:
MPP |
ksef_rola
0 - Brak |
rodzaj_konta:
| 0 | Sprzedawca i nabywca |
| 1 | Sprzedawca |
| 2 | Nabywca |
Jak często można odpytać API:
| 1 | Pobieranie danych faktury | co 1 sekundę |
| 2 | Wystawianie faktury | co 2 sekundy |
| 3 | Pobieranie faktury w pdf | co 1 sekundę |
| 4 | Wysłanie faktury do klienta e-mailem | co 1 sekundę |
| 5 | Dodanie relacji między dokumentami | co 1 sekundę |
| 6 | Usuwanie faktury | co 1 sekundę |
| 7 | Wysyłanie faktury do ksef | co 1 sekundę |
| 8 | Pobieranie listy działów | co 1 sekundę |
| 9 | Pobieranie listy dokumentów | co 5 sekund |
| 10 | Pobieranie listy magazynów | co 1 sekundę |
| 11 | Pobieranie listy produktów | co 10 sekund |
| 12 | Pobieranie ilości produktów w magazynie | co 10 sekund |
| 13 | Pobieranie listy klientów | co 10 sekund |
| 14 | Zmiana statusu dokumentu | co 1 sekund |
| 15 | Dodawanie tagów | co 1 sekund |
| 16 | Usuwanie tagów | co 1 sekund |
| 17 | Dodawanie produktów | co 1 sekundę |
| 18 | Kasowanie produktów | co 1 sekundę |
| 19 | Dodawanie klientów | co 1 sekundę |
| 20 | Kasowanie klientów | co 1 sekundę |
