Systim API - Zarządzanie fakturami

Strona główna API

addSellInvoice

Dodanie nowej faktury

Wymagane parametry

token - uzyskany metodą opisaną tutaj
id_kontrahenta (ID z kartoteki "kontrahenci", nie jest wymaganym parametrem w przypadku gdy rodzaj dokumentu to paragon fiskalny, paragon, oferta, oferta w walucie, dowód wewnętrzny sprzedaży)
data_wystawienia (nie jest wymaganym parametrem w przypadku gdy rodzaju dokumentu to oferta, oferta w walucie, list przewozowy)
data_sprzedazy
rodzaj - rodzaj faktury (patrz niżej)
Jeśli rodzaj (rodzaj faktury) jest wartością ze zbioru 23,25,28,29,43,44 to wymagane są pola:
waluta - pole tekstowe np. PLN - musi to być istniejąca w programie waluta (zdefiniowane w kartotece "waluty")
data_waluty, kurs_waluty, platnosc_walutowa
Wymagane są pola faktury, tablice o poniższych nazwach, których elementami są kolejno dodane wartości

id_produktu,
ilosc,
cena_netto,
kwota_vat,
kwota_brutto,
kwota_netto,
jednostka
opis,
stawka_vat - id stawki VAT z zakładki "administracja"
id_szablonu, id_numeracji - zaleca się wskazanie obydwu pól, numery ID można znaleźć w odpowiednich zakładkach (szablony, numeracje) w zakładce "administracja". Po wprowadzeniu pierwszego dokumentu przez API upewnij się, że kolejny dokument wchodzi z poprawną, kolejną numeracją (zarówno przy dodaniu dokumentu przez API jak i z poziomu panelu Systim).
Pola kwota_brutto, stawka_vat oraz kwota_vat są polami opcjonalnymi wymaganymi jedynie dla dokumentów VAT.


Parametry - zdefiniowane parametry dodatkowe dodajemy poprzez array "param", gdzie kluczem jest ID parametru, zaś wartością wartość jaką chcemy zapisać.

Opcjonalne parametry

termin_platnosci, forma_platnosci (przelew,gotówka,barter,za pobraniem,rozliczenie saldami,karta płatnicza)
id_konta - id konta bankowego z listy kont w zakładce "administracja"
faktura_do_paragonu - oznaczenie że faktura została wystawiona do paragonu (domyślnie 0)
id_odbiorcy – podanie osoby/organu odbierającego usługę/towar
id_wojewodztwa, id_wojewodztwa_dostawy
id_srodka_trwalego,numer_roczny_klienta,kod_z_obrazka
id_nadrzednego, uwagi
(nip,nazwa,ulica,symbol_kontrahenta,email,id_wojewodztwa,nazwa_skrot,miejscowosc,kod,panstwo) - nalezy podać newClient=1
(nip_odbiorcy,nazwa_skrot_odbiorcy,nazwa_odbiorcy,ulica_odbiorcy,miejscowosc_odbiorcy
kod_odbiorcy,id_wojewodztwa_odbiorcy,panstwo_odbiorcy,symbol_odbiorcy,email_odbiorcy)- nalezy podać newOdbiorca=1
id_kasy,powiazania,id_dopisku,id_magazynu,email_adres-nalezy podać email_wyslij=1
suma_brutto,id_szablonu_ksiegowania,pkwiu,rabat - wartość udzielonego rabatu w procentach bez znaku '%' np. 32,
jpkFA_zwolnienie_ustawa,jpkFA_zwolnienie_dyrektywa,jpkFA_zwolnienie_inne
Transakcjatrojstronna, Rodzajtransakcjizwizanejzbonem, GTU_01, GTU_02, GTU_03, GTU_04, GTU_05, GTU_06, GTU_07, GTU_08, GTU_09, GTU_10, GTU_11, GTU_12, GTU_13, SW, EE, TP, I_42, I_63, sprzedaz_vat_marza, MPP, korekta_podstawy_opodatkowania

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienne id oraz numer dodanej faktury
fiskalizacja z informacją czy wydrukowano paragon, 1 - wydrukowano, 0 - nie udało się wydrukować
zawiera także informacje (result_code) na temat automatycznego księgowania
• kod 0 - dodano fakture. Księgowanie automatyczne jest wyłączone
• kod 100 - dodano fakturę i utworzono nowy zapis w księgowości
• kod 101 - dodano fakturę i zaktualizowano już istniejący wpis w księgowości
• kod 102 - dodano fakturę, lecz księgowanie się nie powiodło
Dodatkowo przesyłany jest komunikat ksiegowanie podający ewentualne szczegóły.
W przypadku niepowodzenia:
$dane['error']['code']>0

Uwagi:

Rodzaje dokumentów (dla pola rodzaj):
0 - faktura VAT,
1 - faktura Pro Forma,
6 - paragon fiskalny,
15 - paragon niefiskalny,
22 - rachunek,
23 - faktura w walucie,
25 - rachunek w walucie,
26 - oferta,
28 - faktura eksportowa,
43 - oferta w walucie,
44 - pro forma walutowa,
45 - list przewozowy

Transakcjatrojstronna - dozwolone wartości: 'TT_WNT', 'TT_D';
Rodzajtransakcjizwizanejzbonem - dozwolone wartości: 'B_SPV', 'B_SPV_DOSTAWA', 'B_MPV_PROWIZJA';
Reszta pól związanych z JPK_v7 przyjmuje wartość 1.

Dodatkowe objaśnienia:
SW - Dostawa w ramach sprzedaży wysyłkowej z terytorium kraju, o której mowa w art. 23 ustawy
EE - Świadczenie usług telekomunikacyjnych, nadawczych i elektronicznych, o których mowa w art. 28k ustawy
TP - Istniejące powiązania między nabywcą a dokonującym dostawy towarów lub usługodawcą, o których mowa w art. 32 ust. 2 pkt 1 ustawy
I_42 - Wewnątrzwspólnotowa dostawa towarów następująca po imporcie tych towarów w ramach procedury celnej 42 (import)
I_63 - Wewnątrzwspólnotowa dostawa towarów następująca po imporcie tych towarów w ramach procedury celnej 63 (import)
MPP - Transakcja objęta obowiązkiem stosowania mechanizmu podzielonej płatności

Przykład wywołania w PHP

					//tablica zawierająca 2 wiersze faktury wraz z id produktu,ilością,kwotą i ceną netto, jednostką, stawką vat, 
					//kwotą vat i kwotą brutto
					$produkty['id_produktu'][0]=1641;
					$produkty['ilosc'][0]=3;
					$produkty['cena_netto'][0]=10;
					$produkty['kwota_netto'][0]=30;
					$produkty['kwota_vat'][0]=14;
					$produkty['kwota_brutto'][0]=44;
					$produkty['jednostka'][0]='kg';
					$produkty['opis'][0]='asdf';
					$produkty['stawka_vat'][0]=1;
					
					$produkty['id_produktu'][1]=2212;
					$produkty['ilosc'][1]=1;
					$produkty['cena_netto'][1]=100;
					$produkty['kwota_netto'][1]=100;
					$produkty['kwota_vat'][1]=23;
					$produkty['kwota_brutto'][1]=123;
					$produkty['jednostka'][1]='szt.';
					$produkty['opis'][1]='Koło';
					$produkty['stawka_vat'][1]=1;
					
					$pozycje = http_build_query($produkty);
					
					$parametr['param'][0]=14;
					$parametr['param'][1]=44;
					$parametry = http_build_query($parametr);

					$c = curl_init();
					curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					curl_setopt($c, CURLOPT_POSTFIELDS, 'act=addSellInvoice'.
							'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
							'&razem=20'.
							'&rodzaj=0'.
							'&zaplacono=20.20'.
							'&id_kontrahenta=1'.
							'&data_wystawienia=2013-04-28'.
							'&data_sprzedazy=2013-04-29'.
							'&termin_platnosci=7'.
							'&'.$pozycje.
							'&'.$parametry);  
					curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					$wynik = curl_exec($c);
					curl_close($c);
					$dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej

					if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																			//jeśli tak, wyświetlamy go
					echo 'Id nowej faktury: ' . $dane['result']['id'] . ' numer: ' . $dane['result']['numer_faktury'];
					



delSellInvoice

Usunięcie istniejącej faktury

Wymagane parametry

token, ids

Opcjonalne parametry

brak

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną id usuniętego zamówienia
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=delSellInvoice'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&ids=4'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go
					 echo 'Id usuniętej faktury: ' . $dane['result'];
					



updSellInvoice

Edycja istniejącej faktury

Wymagane parametry

token,
id - id faktury, id_kontrahenta( nie jest wymaganym parametrem w przypadku gdy rodzaju dokumentu to paragon fiskalny, paragon, oferta, dowód wewnętrzny sprzedaży), data_wystawienia, data_sprzedazy(nie jest wymaganym parametrem w przypadku gdy rodzaju dokumentu to oferta, oferta w walucie, list przewozowy),
rodzaj - rodzaj faktury
jeśli rodzaj (rodzaj faktury) jest z wartością z zbioru 23,25,28,29,43,44 to wymagane są pola:
waluta - pole tekstowe np. PLN
numer_faktury,numer_roczny, numer_miesieczny
data_waluty,kurs_waluty

zaplacono - kwota zapłacona (pole wymagane w przypadku paragonów musi być conajmniej równe kwocie danego paragonu)

wymagane są pola faktury, tablice o poniższych nazwach, których elementami są kolejno dodane wartości

id_produktu,
ilosc,
cena_netto,
kwota_vat,
kwota_brutto,
kwota_netto,
jednostka
opis,
stawka_vat - id stawki VAT,
kwota_brutto, stawka_vat oraz kwota_vat są polami opcjonalnymi wymaganymi jedynie dla dokumentów VAT.

Opcjonalne parametry

termin_platnosci, id_szablonu, id_numeracji, numer_roczny_klienta
faktura_do_paragonu - oznaczenie że faktura została wystawiona do paragonu (domyślnie 0)
id_odbiorcy – podanie osoby/organu odbierającego usługę/towar
id_nadrzednego, zaksiegowana
bank - pola tekstowe z informacją o numerze konta i banku
nazwa, miejscowosc, nip, ulica, kod, panstwo, id_wojewodztwa,id_srodka_trwalego
email,nip_odbiorcy,kod_z_obrazka_odbiorcy,nazwa_odbiorcy,miejscowosc_odbiorcy
ulica_odbiorcy,kod_odbiorcy,id_wojewodztwa_odbiorcy,panstwo_odbiorcy,symbol_odbiorcy
id_kasy,id_dopisku,suma_netto,id_szablonu_ksiegowania,pkwiu,rabat - wartość udzielonego rabatu w procentach bez znaku '%' np. 32,
jpkFA_zwolnienie_ustawa,jpkFA_zwolnienie_dyrektywa,jpkFA_zwolnienie_inne
Transakcjatrojstronna, Rodzajtransakcjizwizanejzbonem, GTU_01, GTU_02, GTU_03, GTU_04, GTU_05, GTU_06, GTU_07, GTU_08, GTU_09, GTU_10, GTU_11, GTU_12, GTU_13, SW, EE, TP, I_42, I_63, sprzedaz_vat_marza, MPP, korekta_podstawy_opodatkowania

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną id dodanej faktury
W przypadku niepowodzenia:
$dane['error']['code']>0

Uwagi:

Rodzaje dokumentów (dla pola rodzaj):
0 - faktura VAT,
1 - faktura Pro Forma,
6 - paragon fiskalny,
15 - paragon niefiskalny,
22 - rachunek,
23 - faktura w walucie,
25 - rachunek w walucie,
26 - oferta,
28 - faktura eksportowa,
43 - oferta w walucie,
44 - pro forma walutowa,
45 - list przewozowy

Transakcjatrojstronna - dozwolone wartości: 'TT_WNT', 'TT_D';
Rodzajtransakcjizwizanejzbonem - dozwolone wartości: 'B_SPV', 'B_SPV_DOSTAWA', 'B_MPV_PROWIZJA';
Reszta pól związanych z JPK_v7 przyjmuje wartość 1.

Dodatkowe objaśnienia:
SW - Dostawa w ramach sprzedaży wysyłkowej z terytorium kraju, o której mowa w art. 23 ustawy
EE - Świadczenie usług telekomunikacyjnych, nadawczych i elektronicznych, o których mowa w art. 28k ustawy
TP - Istniejące powiązania między nabywcą a dokonującym dostawy towarów lub usługodawcą, o których mowa w art. 32 ust. 2 pkt 1 ustawy
I_42 - Wewnątrzwspólnotowa dostawa towarów następująca po imporcie tych towarów w ramach procedury celnej 42 (import)
I_63 - Wewnątrzwspólnotowa dostawa towarów następująca po imporcie tych towarów w ramach procedury celnej 63 (import)
MPP - Transakcja objęta obowiązkiem stosowania mechanizmu podzielonej płatności

Przykład wywołania w PHP

					//tablica zawierająca 2 wiersze faktury wraz z id produktu,ilością,kwotą i ceną netto, jednostką, stawką vat, 
					//kwotą vat i kwotą brutto
					$produkty['id_produktu'][0]=1641;
					$produkty['ilosc'][0]=3;
					$produkty['cena_netto'][0]=10;
					$produkty['kwota_netto'][0]=30;
					$produkty['kwota_vat'][0]=14;
					$produkty['kwota_brutto'][0]=44;
					$produkty['jednostka'][0]='kg';
					$produkty['opis'][0]='asdf';
					$produkty['stawka_vat'][0]=1;
					
					$produkty['id_produktu'][1]=2212;
					$produkty['ilosc'][1]=1;
					$produkty['cena_netto'][1]=100;
					$produkty['kwota_netto'][1]=100;
					$produkty['kwota_vat'][1]=23;
					$produkty['kwota_brutto'][1]=123;
					$produkty['jednostka'][1]='szt.';
					$produkty['opis'][1]='Koło';
					$produkty['stawka_vat'][1]=1;
					
					$pozycje = http_build_query($produkty);

					$c = curl_init();
					curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					curl_setopt($c, CURLOPT_POSTFIELDS, 'act=updSellInvoice'.
							'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
							'&id=4'.
							'&razem=20'.
							'&rodzaj=0'.
							'&id_kontrahenta=1'.
							'&data_wystawienia=2013-04-28'.
							'&data_sprzedazy=2013-04-29'.
							'&termin_platnosci=7'.
							'&zaksiegowana=0'.
							'&'.$pozycje);   //id_dostawy=1 - przesyłka kurierska
					curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					$wynik = curl_exec($c);
					curl_close($c);
					$dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej

					if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																			//jeśli tak, wyświetlamy go
					echo 'Id edytowanej faktury: ' . $dane['result'];
					



getSellInvoicePDF

Pobieranie PDF dla istniejącej faktury

Wymagane parametry

token, id

Opcjonalne parametry

brak

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną file oraz name pobieranego PDF faktury
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=getSellInvoicePDF'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&id=4'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go

					 // dekodujemy i wstawiamy zawartość pliku pdf do zmiennej by potem ją zapisać, lub umożliwić pobranie 
					 $fakturaPDF = base64_decode($dane['result']['file']);	
					 // nazwa pliku pdf
					 $nazwaPDF = $dane['result']['name'];
					 
					



listSellInvoices

Pobranie listy faktur

Wymagane parametry

token

Opcjonalne parametry

ids - zmienna typu "string" zawierająca numery ID faktur które mają zostać pobrane, gdzie separatorem jest "," np. 1,2,4,12,23,45
data_wystawienia_od - zmienna typu "string" zawierająca dolną granicę dat wystawienia faktur, które mają zostac pobrane. Faktury zostaną pobrane włącznie z tą datą.
data_wystawienia_do - zmienna typu "string" zawierająca górną granicę dat wystawienia faktur, które mają zostac pobrane. Faktury zostaną pobrane włącznie z tą datą.

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - jest tablicą asocjacyjną o wartościach:
id, kontrahent, id_kontrahenta, kwota_netto, kwota_brutto, numer_faktury, data_wystawienia, zaplacono, termin_platnosci
rodzaj,numer_roczny,wydano,email,data_sprzedazy,sfiskalizowany,faktura_do_paragonu,id_korygowanej,anulowana,ceny_brutto,waluta
wydrukowana,rodzaj_faktury_zaliczkowej,id_glownej_zaliczkowej,vat_od_sumy,powiazany,zaksiegowana,forma_platnosci,id_szablonu_ksiegowania
kwota_zaplacona
oraz:
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=listSellInvoices'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&ids=4,9,23'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go
																				 
					 // Dane wylistowanych faktur
					 
					 foreach($dane['result'] as $id=>$dane)
					 {
						echo 'Id faktury: ' . $id . ' Numer faktury: ' . $dane['numer_faktury'] . 
							 ' Data sprzedaży: ' . $dane['data_sprzedazy'] . ' Kwota brutto: ' . 
							 $dane['kwota_brutto'] . ' Nazwa kontrahenta: ' . $dane['kontrahent'] .
							 ' Rodzaj: ' . $dane['rodzaj'] . ' Kwota netto: ' . $dane['kwota_netto'] .
							 ' Data wystawienia: ' . $dane['data_wystawienia'] . ' Id kontrahenta: ' . $dane['id_kontrahenta'] .
							 ' Zapłacono: ' . $dane['zaplacono'] . ' Termin płatności: ' . $dane['termin_platnosci'] . '
'; }



addInvoice (stara wersja)

Dodanie nowej faktury

Wymagane parametry

token, id_kontrahenta, data_wystawienia, data_sprzedazy, termin_platnosci, forma_platnosci(przelew,gotówka,barter,za pobraniem,rozliczenie saldami,karta płatnicza)
razem - łączna kwota brutto całej faktury,
rodzaj - rodzaj faktury

zaplacono - kwota zapłacona (pole wymagane w przypadku paragonów musi być conajmniej równe kwocie danego paragonu)
jeśli rodzaj(rodzaj faktury) jest wartością z zbioru 23,25,28,43,44 to wymagane są pola:

waluta - pole tekstowe np. PLN, data_waluty, kurs_waluty

wymagane są pola faktury, tablica pozycje[], zawierająca elementy:

id_produktu,
ilosc,
cena_netto,
kwota_vat,
kwota_brutto,
rabat - wartość udzielonego rabatu w procentach bez znaku '%' np. 32,
kwota_netto,
jednostka
opis,
stawka_vat - id stawki VAT,
pkwiu
kwota_brutto,stawka_vat oraz kwota_vat są polami opcjonalnymi wymaganymi jedynie dla dokumentów VAT.
Pole rabat jest polem opcjonalnym.

Opcjonalne parametry

id_szablonu, id_numeracji, id_konta
faktura_do_paragonu - oznaczenie że faktura została wystawiona do paragonu (domyślnie 0)
id_odbiorcy – podanie osoby/organu odbierającego usługę/towar
id_dodajacego - id użytkownika w systmie, który wprowadza fakturę

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną id oraz numer dodanej faktury
zawiera także informacje (result_code) na temat automatycznego księgowania
• kod 0 - dodano fakture. Księgowanie automatyczne jest wyłączone
• kod 100 - dodano fakturę i utworzono nowy zapis w księgowości
• kod 101 - dodano fakturę i zaktualizowano już istniejący wpis w księgowości
• kod 102 - dodano fakturę, lecz księgowanie się nie powiodło
Dodatkowo przesyłany jest komunikat ksiegowanie podający ewentualne szczegóły.
W przypadku niepowodzenia:
$dane['error']['code']>0

Uwagi:

Rodzaje dokumentów (dla pola rodzaj):
0 - faktura VAT,
1 - faktura Pro Forma,
6 - paragon fiskalny,
15 - paragon niefiskalny,
22 - rachunek,
23 - faktura w walucie,
25 - rachunek w walucie,
26 - oferta,
28 - faktura eksportowa,
43 - oferta w walucie,
44 - pro forma walutowa,
45 - list przewozowy

Przykład wywołania w PHP

					//tablica zawierająca 2 pola faktury wraz z id produktu,ilością,kwotą i ceną netto, jednostką, stawką vat, 
					//kwotą vat i kwotą brutto
					$produkty['pozycje'][0] = array('cena_netto'=>10,'ilosc'=>1,'kwota_netto'=>10,'id_produktu'=>2,'jednostka'=>'kg',
					'opis'=>'asdf','stawka_vat'=>1,'kwota_vat'=>2.3,'kwota_brutto'=>12.3);
					$produkty['pozycje'][1] = array('cena_netto'=>10,'ilosc'=>1,'kwota_netto'=>10,'id_produktu'=>3,'jednostka'=>'kg',
					'opis'=>'asdf','stawka_vat'=>1,'kwota_vat'=>2.3,'kwota_brutto'=>12.3);
					$pozycje =  urldecode(http_build_query($produkty));
					$c = curl_init();
					curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					curl_setopt($c, CURLOPT_POSTFIELDS, 'act=addInvoice'.
							'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
							'&razem=20'.
							'&rodzaj=0'.
							'&zaplacono=20.20'.
							'&id_kontrahenta=1'.
							'&data_wystawienia=2013-04-28'.
							'&data_sprzedazy=2013-04-29'.
							'&termin_platnosci=7'.
							'&'.$pozycje);  
					curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					$wynik = curl_exec($c);
					curl_close($c);
					$dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej

					if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																			//jeśli tak, wyświetlamy go
					echo 'Id nowej faktury: ' . $dane['result']['id'] . ' numer: ' . $dane['result']['numer_faktury'];
					



delInvoice (stara wersja)

Usunięcie istniejącej faktury

Wymagane parametry

token, id

Opcjonalne parametry

brak

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną id usuniętego zamówienia
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=delInvoice'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&id=4'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go
					 echo 'Id usuniętej faktury: ' . $dane['result'];
					



updInvoice (stara wersja)

Edycja istniejącej faktury

Wymagane parametry

token,
id - id faktury, id_kontrahenta, data_wystawienia, data_sprzedazy, termin_platnosci,
razem - łączna kwota brutto całej faktury,

jeśli faktura jest w walucie obcej to wymagane są pola:
waluta - pole tekstowe np. PLN,
data_waluty,kurs_waluty

zaplacono - kwota zapłacona (pole wymagane w przypadku paragonów, musi być conajmniej równe kwocie danego paragonu)

wymagane są pola faktury, tablica pozycje[], zawierająca elementy:

id_produktu,
ilosc,
cena_netto,
kwota_vat,
kwota_brutto,
rabat - wartość udzielonego rabatu w procentach bez znaku '%' np. 32,
kwota_netto,
jednostka
opis,
stawka_vat - id stawki VAT,
pkwiu
kwota_brutto, stawka_vat oraz kwota_vat są polami opcjonalnymi wymaganymi jedynie dla dokumentów VAT.
Pole rabat jest polem opcjonalnym.

Opcjonalne parametry

id_szablonu, id_numeracji
faktura_do_paragonu - oznaczenie że faktura została wystawiona do paragonu (domyślnie 0)
id_odbiorcy – podanie osoby/organu odbierającego usługę/towar
numer_konta, bank - pola tekstowe z informacją o numerze konta i banku
nazwa, miejscowosc, nip, ulica, kod, panstwo, id_wojewodztwa, id_waluty

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną id dodanej faktury
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP

					//tablica zawierająca 2 pola faktury wraz z id produktu,ilością,kwotą i ceną netto, jednostką, stawką vat, 
					//kwotą vat i kwotą brutto
					$produkty['pozycje'][0] = array('cena_netto'=>10,'ilosc'=>1,'kwota_netto'=>10,'id_produktu'=>2,'jednostka'=>'kg',
					'opis'=>'asdf','stawka_vat'=>1,'kwota_vat'=>2.3,'kwota_brutto'=>12.3);
					$produkty['pozycje'][1] = array('cena_netto'=>10,'ilosc'=>1,'kwota_netto'=>10,'id_produktu'=>3,'jednostka'=>'kg',
					'opis'=>'asdf','stawka_vat'=>1,'kwota_vat'=>2.3,'kwota_brutto'=>12.3);
					$pozycje =  urldecode(http_build_query($produkty));
					$c = curl_init();
					curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					curl_setopt($c, CURLOPT_POSTFIELDS, 'act=updInvoice'.
							'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
							'&id=4'.
							'&razem=20'.
							'&id_kontrahenta=1'.
							'&data_wystawienia=2013-04-28'.
							'&data_sprzedazy=2013-04-29'.
							'&termin_platnosci=7'.
							'&'.$pozycje);   //id_dostawy=1 - przesyłka kurierska
					curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					$wynik = curl_exec($c);
					curl_close($c);
					$dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej

					if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																			//jeśli tak, wyświetlamy go
					echo 'Id edytowanej faktury: ' . $dane['result'];
					



getInvoicePDF (stara wersja)

Pobieranie PDF dla istniejącej faktury

Wymagane parametry

token, id

Opcjonalne parametry

brak

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną file oraz name pobieranego PDF faktury
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=getInvoicePDF'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&id=4'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go

					 // dekodujemy i wstawiamy zawartość pliku pdf do zmiennej by potem ją zapisać, lub umożliwić pobranie 
					 $fakturaPDF = base64_decode($dane['result']['file']);	
					 // nazwa pliku pdf
					 $nazwaPDF = $dane['result']['name'];
					 
					



listInvoices (stara wersja)

Pobranie listy faktur

Wymagane parametry

token

Opcjonalne parametry

ids - zmienna typu "string" zawierająca numery ID faktur które mają zostać pobrane, gdzie separatorem jest "," np. 1,2,4,12,23,45
data_wystawienia_od - zmienna typu "string" zawierająca dolną granicę dat wystawienia faktur, które mają zostac pobrane. Faktury zostaną pobrane włącznie z tą datą.
data_wystawienia_do - zmienna typu "string" zawierająca górną granicę dat wystawienia faktur, które mają zostac pobrane. Faktury zostaną pobrane włącznie z tą datą.

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - jest tablicą asocjacyjną o wartościach:
id, kontrahent, id_kontrahenta, kwota_netto, kwota_brutto, numer_faktury, data_wystawienia, zaplacono, termin_platnosci, rodzaj, id_dodajacego oraz:
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=listInvoices'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&ids=4,9,23'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go
																				 
					 // Dane wylistowanych faktur
					 
					 foreach($dane['result'] as $id=>$dane)
					 {
						echo 'Id faktury: ' . $id . ' Numer faktury: ' . $dane['numer_faktury'] . 
							 ' Data sprzedaży: ' . $dane['data_sprzedazy'] . ' Kwota brutto: ' . 
							 $dane['kwota_brutto'] . ' Nazwa kontrahenta: ' . $dane['kontrahent'] .
							 ' Rodzaj: ' . $dane['rodzaj'] . ' Kwota netto: ' . $dane['kwota_netto'] .
							 ' Data wystawienia: ' . $dane['data_wystawienia'] . ' Id kontrahenta: ' . $dane['id_kontrahenta'] .
							 ' Zapłacono: ' . $dane['zaplacono'] . ' Termin płatności: ' . $dane['termin_platnosci'] . '
'; }



getInvoice

Pobranie danych faktury

Wymagane parametry

token, id

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result']['faktura'] - jest tablicą asocjacyjną o wartościach:
id, kontrahent, id_kontrahenta, kwota_netto, kwota_brutto, numer_faktury, data_wystawienia, zaplacono, termin_platnosci, rodzaj, zaplacono_razem, id_dodajacego,
$dane['result']['pola'] - jest tablicą asocjacyjną o wartościach:
id_faktury, id_produktu, ilosc, cena_netto, kwota_netto, stawka_vat, kwota_vat, kwota_brutto, jednostka, opis, pkwiu, rabat, numer_seryjny, kod_produktu, kod_kreskowy, oraz:
$dane['result']['pola_faktur_opakowania_zwrotne'] - jest tablicą asocjacyjną o wartościach:
id_faktury, id_produktu, numer_pola, ilosc_dost, ilosc_zwr, cena_netto, kwota_netto, stawka_vat, kwota_vat, kwota_brutto, nazwa

W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP


					 $c = curl_init();
					 curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					 curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					 curl_setopt($c, CURLOPT_POSTFIELDS, 'act=getInvoice'.
								'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
								'&id=4'); 
					 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					 $wynik = curl_exec($c);
					 curl_close($c);
					 $dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej
					 
					 if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																				//jeśli tak, wyświetlamy go
																				 
					 // Dane wylistowanych faktur
					 
					 $dane_faktury = $dane['result']['faktura'];
					
					echo 'Id faktury: ' . $id . ' Numer faktury: ' . $dane_faktury['numer_faktury'] . 
						 ' Data sprzedaży: ' . $dane_faktury['data_sprzedazy'] . ' Kwota brutto: ' . 
						 $dane_faktury['kwota_brutto'] . ' Nazwa kontrahenta: ' . $dane_faktury['kontrahent'] .
						 ' Rodzaj: ' . $dane_faktury['rodzaj'] . ' Kwota netto: ' . $dane_faktury['kwota_netto'] .
						 ' Data wystawienia: ' . $dane_faktury['data_wystawienia'] . ' Id kontrahenta: ' . $dane_faktury['id_kontrahenta'] .
						 ' Zapłacono: ' . $dane_faktury['zaplacono'] . ' Termin płatności: ' . $dane_faktury['termin_platnosci'] . '
'; foreach($dane['result']['pola'] as $numer_pola=>$pole) { echo '

ID faktury: ' . $pole['id_faktury'] . ' ID produktu: ' . $pole['id_produktu'] . ' Ilosc: ' . $pole['ilosc'] . ' Cena netto: ' . $pole['cena_netto'] . ' Kwota netto: ' . $pole['kwota_netto'] . ' Stawka vat: ' . $pole['stawka_vat'] . ' Kwota vat: ' . $pole['kwota_vat'] . ' Kwota brutto: ' . $pole['kwota_brutto'] . ' Jednostka: ' . $pole['jednostka'] . ' Opis: ' . $pole['opis'] . ' PKWiU: ' . $pole['pkwiu'] . ' Rabat: ' . $pole['rabat'] . ' Numer seryjny: ' . $pole['numer_seryjny'] . ' Kod produktu: ' . $pole['kod_produktu'] . ' Kod kreskowy: ' . $pole['kod_kreskowy']; }



addInvoiceCorrect

Dodanie korekty faktury

Wymagane parametry

token, id_kontrahenta, data_wystawienia, data_sprzedazy,
id - numer id faktury do skorygowania,
podstawa_korekty - opisowa informacja o powodzie korekty
wymagane są pola faktury, tablica pozycje[], zawierająca elementy po skorygowaniu:

id_produktu,
ilosc,
cena_netto,
kwota_vat,
kwota_brutto,
rabat - wartość udzielonego rabatu w procentach bez znaku '%' np. 32,
kwota_netto,
jednostka
opis,
stawka_vat - id stawki VAT,
pkwiu
kwota_brutto,stawka_vat oraz kwota_vat są polami opcjonalnymi wymaganymi jedynie dla dokumentów VAT.
Pola rabat oraz pkwiu są polami opcjonalnymi.

Opcjonalne parametry

id_szablonu, id_numeracji
faktura_do_paragonu - oznaczenie że faktura została wystawiona do paragonu (domyślnie 0)

id_dodajacego (jesli podamy id_dodajacego imie i nazwisko nie jest już potrzebne)
tresc_korygowana - dodatkowe pole określające treść jaka została skorygowana (np. błędny Adres czy NIP firmy)
tresc_po_korekcie - dodatkowe pole określające wygląd skorygowanej treści po korekcie (np. poprawny Adres czy NIP firmy)

Wartości zwracane

Zwracane wartości w przypadku powodzenia:
$dane['result'] - zawiera zmienną id oraz numer dodanej faktury
zawiera także informacje (result_code) na temat automatycznego księgowania
• kod 0 - dodano fakture. Księgowanie automatyczne jest wyłączone
• kod 100 - dodano fakturę i utworzono nowy zapis w księgowości
• kod 101 - dodano fakturę i zaktualizowano już istniejący wpis w księgowości
• kod 102 - dodano fakturę, lecz księgowanie się nie powiodło
Dodatkowo przesyłany jest komunikat ksiegowanie podający ewentualne szczegóły.
W przypadku niepowodzenia:
$dane['error']['code']>0

Przykład wywołania w PHP

					//tablica zawierająca 2 pola faktury wraz z id produktu,ilością,kwotą i ceną netto, jednostką, stawką vat, 
					//kwotą vat i kwotą brutto
					$produkty['pozycje'][0] = array('cena_netto'=>10,'ilosc'=>1,'kwota_netto'=>10,'id_produktu'=>2,'jednostka'=>'kg',
					'opis'=>'Wiertarka','stawka_vat'=>1,'kwota_vat'=>2.3,'kwota_brutto'=>12.3);
					$produkty['pozycje'][1] = array('cena_netto'=>10,'ilosc'=>1,'kwota_netto'=>10,'id_produktu'=>3,'jednostka'=>'kg',
					'opis'=>'Prostownik','stawka_vat'=>1,'kwota_vat'=>2.3,'kwota_brutto'=>12.3);
					$pozycje = http_build_query($produkty);
					$c = curl_init();
					curl_setopt($c, CURLOPT_URL, 'https://abcd.systim.pl/jsonAPI.php');
					curl_setopt($c, CURLOPT_POST, true); //sposób przesyłania - (true metoda POST)
					curl_setopt($c, CURLOPT_POSTFIELDS, 'act=addInvoiceCorrect'.
							'&token=6aed003dc54951c043f8d1ad4b4804a2a8a40f' .
							'&id=554'.
							'&podstawa_korekty=błędna cena, zmiana adresu'.
							'&tresc_korygowana=ul. Zwycięstwa 14/22'.
							'&tresc_po_korekcie=ul. Niepodległości 14/22'.
							'&id_kontrahenta=16'.
							'&data_wystawienia=2014-08-12'.
							'&data_sprzedazy=2014-08-12'.
							'&'.$pozycje);  
					curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
					$wynik = curl_exec($c);
					curl_close($c);
					$dane = json_decode($wynik,true); // wartości w postaci tablicy asocjacyjnej

					if($dane['error']['code']>0) die($dane['error']['message']); //sprawdzamy czy wystąpił jakiś błąd, 
																			//jeśli tak, wyświetlamy go
					echo 'Id nowej faktury: ' . $dane['result']['id'] . ' numer: ' . $dane['result']['numer_faktury'];
					
Wersja DEMO - przetestuj za darmo! Załóż konto Systim w 15 sekund!