API

API TOKEN:

t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz

1. Pobieranie danych faktury:


$input_xml = "
<dokument>
  <dokument_id>292324</dokument_id>
  <api_token>t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz</api_token>
</dokument>
"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://program.fakturaxl.pl/api/dokument_odczytaj.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'xmlRequest=' . $input_xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); $return_xml = curl_exec($ch); curl_close($ch); echo $return_xml; // otrzymane informacje XML można łatwo przerobić na tablice PHP np: $array_data = json_decode(json_encode(simplexml_load_string($return_xml)), true);
Przykładowe dane które zwraca API:
Poprawne odczytanie dokumentu:

<dokument>
  <kod>5</kod>
  <typ_faktury>0</typ_faktury>
  <numer_faktury>FV 75/5/2018</numer_faktury>
  <data_wystawienia>2018-05-01</data_wystawienia>
  <data_sprzedazy>2018-05-01</data_sprzedazy>
  <termin_platnosci_data>2018-05-08</termin_platnosci_data>
  <status>0</status>
  <unikatowy_kod>tbChukRcFtPancRYMFBeR6zhPywTFQkkzAScaZOVU8s1Yzv7Mvg4vvpHeDeged3f3dsameL5Af2OsH</unikatowy_kod>
  <data_oplacenia></data_oplacenia>
  <kwota_oplacona>0.00</kwota_oplacona>
  <uwagi></uwagi>
  <waluta>EUR</waluta>
  <kurs>4.22040000</kurs>
  <jezyk>0</jezyk>
  <imie_nazwisko_wystawcy>Zbigniew Nazwiskoo</imie_nazwisko_wystawcy>
  <imie_nazwisko_odbiorcy></imie_nazwisko_odbiorcy>
  <nr_zamowienia></nr_zamowienia>
  <dodatkowe_uwagi></dodatkowe_uwagi>
  <wartosc_netto>224.43</wartosc_netto>
  <wartosc_vat>18.57</wartosc_vat>
  <wartosc_brutto>243.00</wartosc_brutto>
  <sprzedawca>
    <nazwa>FIRMA TEST &quot;Najlepsza w mieście&quot; i już</nazwa>
    <nip>1111111111</nip>
    <ulica_i_numer>ul. Testowa 8</ulica_i_numer>
    <kod_pocztowy>00-005</kod_pocztowy>
    <miejscowosc>Warszawa</miejscowosc>
    <kraj_id>PL</kraj_id>
    <email>dasdas@fff.pl</email>
    <telefon>3123123123</telefon>
    <fax></fax>
    <www>www.wp.pl</www>
    <nr_konta_bankowego>PL0000000000000000000000000000000</nr_konta_bankowego>
  </sprzedawca>
  <nabywca>
    <nazwa>234234234234234234</nazwa>
    <nip></nip>
    <ulica_i_numer></ulica_i_numer>
    <kod_pocztowy></kod_pocztowy>
    <miejscowosc></miejscowosc>
    <kraj_id>PL</kraj_id>
    <email></email>
    <telefon></telefon>
    <fax></fax>
    <www></www>
    <nr_konta_bankowego></nr_konta_bankowego>
  </nabywca>
  <faktura_pozycje>
    <nazwa>12312312, zzz</nazwa>
    <pkwiu></pkwiu>
    <rabat>0.00</rabat>
    <ilosc>1.000</ilosc>
    <jm>szt.</jm>
    <netto>17.89</netto>
    <brutto>22.00</brutto>
    <vat>23</vat>
    <wartosc_netto>17.89</wartosc_netto>
    <wartosc_brutto>22.00</wartosc_brutto>
  </faktura_pozycje>
  <faktura_pozycje>
    <nazwa>111aa22dd</nazwa>
    <pkwiu></pkwiu>
    <rabat>0.00</rabat>
    <ilosc>10.000</ilosc>
    <jm>szt.</jm>
    <netto>20.65</netto>
    <brutto>22.10</brutto>
    <vat>7</vat>
    <wartosc_netto>206.54</wartosc_netto>
    <wartosc_brutto>221.00</wartosc_brutto>
  </faktura_pozycje>
</dokument>
Błędne odczytanie dokumentu: <dokument>
  <kod>3</kod>
</dokument>

2. Wystawianie faktury:

Prosimy w XML używać kodowania znaków w formacie utf-8

$input_xml = "
<dokument>

  <api_token>t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz</api_token>

  <typ_faktury>0</typ_faktury>
  <numer_faktury></numer_faktury>
  <data_wystawienia>2018-05-01</data_wystawienia>
  <data_sprzedazy>2018-05-01</data_sprzedazy>
  <termin_platnosci_data>2018-05-08</termin_platnosci_data>
  <status>0</status>
  <data_oplacenia></data_oplacenia>
  <kwota_oplacona>0</kwota_oplacona>
  <uwagi></uwagi>
  <waluta>EUR</waluta>
  <kurs>4.22040000</kurs>
  <rodzaj_platnosci>Przelewy24</rodzaj_platnosci>
  <jezyk>0</jezyk>
  <imie_nazwisko_wystawcy>Zbigniew Nazwiskoo</imie_nazwisko_wystawcy>
  <imie_nazwisko_odbiorcy></imie_nazwisko_odbiorcy>
  <nr_zamowienia></nr_zamowienia>
  <dodatkowe_uwagi></dodatkowe_uwagi>
  <id_dzialy_firmy></id_dzialy_firmy>
  <wyslij_dokument_do_klienta_emailem>1</wyslij_dokument_do_klienta_emailem>
  <magazyn_id></magazyn_id>

  <nabywca>
    <nazwa>234234234234234234</nazwa>
    <nip></nip>
    <ulica_i_numer></ulica_i_numer>
    <kod_pocztowy></kod_pocztowy>
    <miejscowosc></miejscowosc>
    <kraj>PL</kraj>
    <email></email>
    <telefon></telefon>
    <fax></fax>
    <www></www>
    <nr_konta_bankowego></nr_konta_bankowego>
  </nabywca>

  <faktura_pozycje>
    <nazwa>12312312, zzz</nazwa>
    <pkwiu></pkwiu>
    <ilosc>1.000</ilosc>
    <jm>szt.</jm>
    <vat>23</vat>
    <wartosc_brutto>22.00</wartosc_brutto>
  </faktura_pozycje>

  <faktura_pozycje>
    <nazwa>111aa22dd</nazwa>
    <pkwiu></pkwiu>
    <ilosc>10.000</ilosc>
    <jm>szt.</jm>
    <vat>7</vat>
    <wartosc_brutto>221.00</wartosc_brutto>
  </faktura_pozycje>

</dokument>
"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://program.fakturaxl.pl/api/dokument_dodaj.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'xmlRequest=' . $input_xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); $return_xml = curl_exec($ch); curl_close($ch); echo $return_xml; // otrzymane informacje XML można łatwo przerobić na tablice PHP np: $array_data = json_decode(json_encode(simplexml_load_string($return_xml)), true);
Przykładowe dane które zwraca API:
Poprawne dodatnie dokumentu:

<dokument>
  <kod>1</kod>
  <dokument_id>1460568</dokument_id>
  <dokument_nr>FV 76/5/2018</dokument_nr>
  <unikatowy_kod>FtfhN2ed5Jcd0gIJf4k0GixDvSgz6kHdg64fthRN4cLEYOdffqKq4Ja2ewJwOd4I3CNX63jdakRciq</unikatowy_kod>
</dokument>
Błędne dodanie dokumentu: <dokument>
  <kod>3</kod>
</dokument>

3. Pobieranie faktury w PDF:

Pobieranie pliku PDF:

https://program.fakturaxl.pl/dokument_export.php?api=t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz&dokument_id=292324&pdf=1

Przykładowe dane które zwraca API:
Błędne pobranie:

<dokument>
  <kod>4</kod>
</dokument>


Otwieranie pliku PDF

https://program.fakturaxl.pl/dokument_export.php?api=t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz&dokument_id=292324&pdf=2

Przykładowe dane które zwraca API:
Błędne otwarcie:

<dokument>
  <kod>4</kod>
</dokument>

4. Wysłanie faktury do klienta e-mailem:


$input_xml = "
<dokument>
  <dokument_id>292324</dokument_id>
  <zalacz_dokument_w_formacie_pdf>1</zalacz_dokument_w_formacie_pdf>
  <api_token>t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz</api_token>
</dokument>
"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://program.fakturaxl.pl/api/wyslanie_faktury_do_klienta_emailem.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'xmlRequest=' . $input_xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); $return_xml = curl_exec($ch); curl_close($ch); echo $return_xml; // otrzymane informacje XML można łatwo przerobić na tablice PHP np: $array_data = json_decode(json_encode(simplexml_load_string($return_xml)), true);
Przykładowe dane które zwraca API:
Poprawnie wysłany email:

<dokument>
  <kod>23</kod>
</dokument>
Błędnie wysłany email: <dokument>
  <kod>3</kod>
</dokument>

5. Usuwanie faktury:


$input_xml = "
<dokument>

  <api_token>t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz</api_token>
  <dokument_id>1234</dokument_id>

</dokument>
"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://program.fakturaxl.pl/api/dokument_del.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'xmlRequest=' . $input_xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); $return_xml = curl_exec($ch); curl_close($ch); echo $return_xml; // otrzymane informacje XML można łatwo przerobić na tablice PHP np: $array_data = json_decode(json_encode(simplexml_load_string($return_xml)), true);
Przykładowe dane które zwraca API:
Poprawne skasowany dokumentu:

<dokument>
  <kod>20</kod>
</dokument>
Błąd podczas kasowania dokumentu: <dokument>
  <kod>4</kod>
</dokument>

6. Pobieranie listy działów:


$input_xml = "
<dokument>

  <api_token>t82HJsfeEsDuRDviKmOEGd4YTy8X2xCe4vlQ4PTNt83Cix9FY6UjGow40i9KirLawf3qd6O3fIeFt2wz</api_token>

</dokument>
"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://program.fakturaxl.pl/api/dokument_lista_dzialow.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'xmlRequest=' . $input_xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); $return_xml = curl_exec($ch); curl_close($ch); echo $return_xml; // otrzymane informacje XML można łatwo przerobić na tablice PHP np: $array_data = json_decode(json_encode(simplexml_load_string($return_xml)), true);
Przykładowe dane które zwraca API:
Poprawne odczytanie listy działów

<dokument>
  <dzial>
    <id>159</id>
    <nazwa>Pierwszy dział firmy</nazwa>
  </dzial>
  <dzial>
    <id>168</id>
    <nazwa>Drugi dział firmy</nazwa>
  </dzial>
</dokument>
Błędne odczytanie listy działów: <dokument>
  <kod>3</kod>
</dokument>

Zwracane kody:

1 - Dokument został poprawnie dodany
2 - Przekroczono ilość zapytań na sekundę, prosimy spróbować za 5 sekund
3 - Nie istnieje taki api_token
4 - Nie istnieje dokument o takim ID
5 - Dokument został poprawnie odczytany
6 - Błędny typ dokumentu
7 - Faktura o takim numerze już istnieje
8 - Nie istnieje taki id_dzialy_firmy
9 - Nazwa Nabywcy nie może być pusta
10 - Nieprawidłowy NIP
11 - Błędny kraj
12 - Nazwa produktu nie może być pusta
13 - Data musi mieć postać yyyy-mm-dd
14 - Błędny status
15 - Błędna waluta
16 - Brak kursu dla tej daty, nie można wystawić faktury
17 - Błędny język
18 - Błędny rodzaj_platnosci
19 - Limit bezpłatnych faktur w darmowym pakiecie został osiągnięty - prosimy o zakup Pakietu Pełnego
20 - Dokument został poprawnie skasowany
21 - Miesiąc został zamknięty, nie można w nim dodawać ani wprowadzać nowych faktur
22 - Wysłanie faktury na e-mail nie powiodło się z powodu braku adresu e-mail Nabywcy na fakturze
23 - Poprawne wysłanie dokumentu e0mailem

typ_faktury - typy dokumentów:


0 - Faktura VAT
1 - Faktura proforma
5 - Faktura marża
6 - Faktura bez vat (rachunek)
14 - Paragon
31 - PZ - Przyjęcie Zewnętrzne
30 - WZ - Wydanie Zewnętrzne

rodzaj_platnosci:


Przelew
Gotówka
Karta płatnicza
Barter
BLIK
Czek
DotPay
Kompensata
Opłata za pobraniem
PayPal
PayU
Płatność elektroniczna
Przelewy24

status:


0 - Nieopłacona
1 - Częściowo opłacona
2 - Opłacona

język:


1 - Angielski
3 - Angielski/Polski
8 - Angielski/Niemiecki
9 - Angielski/Francuski
10 - Angielski/Rosyjski
11 - Angielski/Czeski
48 - Angielski/Hiszpański
0 - Polski
2 - Polski/Angielski
4 - Polski/Niemiecki
5 - Polski/Francuski
6 - Polski/Rosyjski
7 - Polski/Czeski
47 - Polski/Hiszpański
30 - Niemiecki
31 - Niemiecki/Angielski
32 - Niemiecki/Polski
33 - Niemiecki/Francuski
34 - Niemiecki/Rosyjski
35 - Niemiecki/Czeski
46 - Niemiecki/Hiszpański
12 - Rosyjski
13 - Rosyjski/Angielski
14 - Rosyjski/Polski
15 - Rosyjski/Francuski
16 - Rosyjski/Niemiecki
17 - Rosyjski/Czeski
45 - Rosyjski/Hiszpański
18 - Francuski
19 - Francuski/Angielski
20 - Francuski/Polski
21 - Francuski/Rosyjski
22 - Francuski/Niemiecki
23 - Francuski/Czeski
44 - Francuski/Hiszpański
24 - Czeski
25 - Czeski/Angielski
26 - Czeski/Polski
27 - Czeski/Rosyjski
28 - Czeski/Niemiecki
29 - Czeski/Francuski
43 - Czeski/Hiszpański
36 - Hiszpański
37 - Hiszpański/Angielski
38 - Hiszpański/Polski
39 - Hiszpański/Rosyjski
40 - Hiszpański/Niemiecki
41 - Hiszpański/Francuski
42 - Hiszpański/Czeski

waluta:


PLN
EUR
USD
GBP
AUD
BGN
BRL
CAD
CHF
CLP
CNY
CZK
DKK
HKD
HRK
HUF
IDR
ILS
INR
ISK
JPY
KRW
MXN
MYR
NOK
NZD
PHP
RON
RUB
SEK
SGD
THB
TRY
UAH
XDR
ZAR

id_dzialy_firmy:


	1346 - Główny