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'];