Prosimy w XML używać kodowania znaków w formacie utf-8
$input_xml = "
<dokument>
<api_token>F35ds211dsg0qgn0qS904kfFL239883123Dk3mdf01ldfmask2</api_token>
<typ_faktury>4</typ_faktury> <obliczaj_sume_wartosci_faktury_wg>0</obliczaj_sume_wartosci_faktury_wg> <numer_faktury></numer_faktury> <data_wystawienia>2023-09-01</data_wystawienia> <data_sprzedazy>2023-09-01</data_sprzedazy> <termin_platnosci_data>2023-09-08</termin_platnosci_data> <data_oplacenia></data_oplacenia> <kwota_oplacona>0</kwota_oplacona> <uwagi></uwagi> <waluta>PLN</waluta> <kurs>1</kurs> <rodzaj_platnosci>Przelewy24</rodzaj_platnosci> <jezyk>0</jezyk> <szablon>0</szablon> <imie_nazwisko_wystawcy>Zbigniew Nazwiskoo</imie_nazwisko_wystawcy> <imie_nazwisko_odbiorcy></imie_nazwisko_odbiorcy> <nr_zamowienia></nr_zamowienia> <dodatkowe_uwagi></dodatkowe_uwagi> <wyslij_dokument_do_klienta_emailem>0</wyslij_dokument_do_klienta_emailem>
<korekta> <id_faktury_korygowanej>4155343</id_faktury_korygowanej> <przyczyna_korekty>Przyczyna korekty</przyczyna_korekty> <tresc_korygowana></tresc_korygowana> <tresc_prawidlowa></tresc_prawidlowa> </korekta>
<sprzedawca> <nazwa>Firma - nazwa sprzedawcy</nazwa> <nip>7582954326</nip> <ulica_i_numer>ul. Polna 22/12</ulica_i_numer> <kod_pocztowy>33-500</kod_pocztowy> <miejscowosc>Warszawa</miejscowosc> <kraj>PL</kraj> <inny_adres_korespondencyjny>Adres korespondencyjny</inny_adres_korespondencyjny> <dodatkowa_informacja>Informacja 1</dodatkowa_informacja> <email></email> <telefon>542175643</telefon> <fax></fax> <www>www.strona-twojej-firmy.pl</www> <nr_konta_bankowego></nr_konta_bankowego> </sprzedawca>
<nabywca> <firma_lub_osoba_prywatna>0</firma_lub_osoba_prywatna> <nazwa>Firma - nazwa nabywcy</nazwa> <nip>5120593910</nip> <ulica_i_numer>ul. Szeroka 4/28</ulica_i_numer> <kod_pocztowy>11-300</kod_pocztowy> <miejscowosc>Wrocław</miejscowosc> </nabywca>
<odbiorca> <nazwa>Firma - Odbiorcy</nazwa> <nip>5120593910</nip> <ulica_i_numer>ul. Nowa 21/22</ulica_i_numer> <kod_pocztowy>13-200</kod_pocztowy> <miejscowosc>Poznań</miejscowosc> </odbiorca>
<faktura_pozycje_bylo> <nazwa>Produkt 1</nazwa> <kod_produktu></kod_produktu> <produkt_id></produkt_id> <pkwiu></pkwiu> <symbol_gtu></symbol_gtu> <kod_cn></kod_cn> <ilosc>1.000</ilosc> <jm>szt.</jm> <vat>23</vat> <wartosc_brutto>22.00</wartosc_brutto> </faktura_pozycje_bylo>
<faktura_pozycje_powinno_byc> <nazwa>Produkt 2</nazwa> <kod_produktu></kod_produktu> <produkt_id></produkt_id> <pkwiu></pkwiu> <symbol_gtu>5</symbol_gtu> <kod_cn></kod_cn> <ilosc>10.000</ilosc> <jm>szt.</jm> <vat>7</vat> <wartosc_brutto>221.00</wartosc_brutto> </faktura_pozycje_powinno_byc>
</dokument>
";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://program.fakturaxl.pl/api/dokument_dodaj.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, $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 dodanie dokumentu:
<dokument> <kod>1</kod> <dokument_id>1460568</dokument_id> <dokument_nr>KOR 76/5/2023</dokument_nr> <unikatowy_kod>FtfhN2ed5Jcd0gIJf4k0GixDvSgz6kHdg64fthRN4cLEYOdffqKq4Ja2ewJwOd4I3CNX63jdakRciq</unikatowy_kod> </dokument>
Błędne dodanie dokumentu:
<dokument> <kod>3</kod> </dokument>
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 z akutalizowane.
- Sekcja <nabywca>...</nabywca> można podać wszystkie dane lub tylko te które zostały z akutalizowane.
- Sekcja <odbiorca>...</odbiorca> można podać wszystkie dane lub tylko te które zostały z akutalizowane.
* 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
|