4D Komunikator
•Datum kreiranja: 01.03.2018.
•Datum zadnje izmjene: 16.03.2022. - Dodan novi API endpoint za informacija o fiskaliziranom računu
Općenito o 4D Komunikatoru
4D Komunikator je aplikacija namijenjena za ispostavljanje dijelova funkcionalnosti 4D Wand sustava na Internet-u, bez potrebe za stalnom IP adresom servera na kojem se 4D Wand sustav nalazi. Komunikacija se ostvaruje korištenjem WebSocket tehnologije (više informacija), tako što se aplikacija spaja i trajno održava vezu s prethodno definiranim WebSocket serverom koji služi kao relay za komunikaciju između 4D Komunikatora i vanjskih sustava kojima je potrebna funkcionalnost 4D Wand sustava.
Primjena 4D Komunikatora
Za sada 4D Komunikator omogućava sljedeće funkcionalnosti:
•import novih dokumenata s Web shop-a u realnom vremenu
•dohvat informacija o zalihama pojedinih artikala u realnom vremenu
•dohvat IOS-a
•dohvat IOS-a partnera
•import roba
•import partnera
•import osoba
•dohvat informacija o fiskaliziranom računu
Postavke 4D Komunikatora
Postavke Komunikatora nalaze se u 4D Wand sustavu: Modul 4D Wand IMC --> Setiranje parametara 4D Wand IMC-a --> Kartica Dodatne postavke IMC-a --> Postavke 4D Wand IMC komunikatora.
1.Web socket kanal: Naziv kanala za komunikaciju (npr. 4D_Komunikator_MojePoduzece)
2.Web socket adresa: Adresa servera na kojem se nalazi WebSocket relay (npr. moj.relay.hr)
3.Web socket port: Port za komunikaciju
4.Web socket sigurnost: Korištenje sigurne (wss://) ili nesigurne (ws://) komunikacije
5.Zabrana rada 4D Wand Komunikatora u svim poduzećima: Uključivanjem ove opcije će se ugasiti svi aktivni komunikatori na serveru gdje se nalazi 4D Wand
Nakon što su postavljene postavke komunikatora potrebno je pozvati opciju Kreiraj i pošalji 4D Wand IMC kako bi se u tablici Parameters pronašli upisani parametri potrebni za 4D Komunikator (slika ispod).
Od trenutno aktivnog 4D_Wand.ini napraviti kopiju 4D_Wand_Komunikator.ini u kojeg treba postaviti adekvatnog AutoUsera. Nakon prethodno odrađenih radnji potrebno je pokrenuti 4D Komunikator iz putanje C:\4D\Wand\sys\wkom.exe sa triggerom INI=4D_Wand_Komunikator.ini
U Task scheduler treba postaviti novi task koji će pokrenuti prethodno navedeni program kako bi se pokretanjem schedulera npr. svakih 5 minuta provjeravalo da li je Komunikator upaljen, jer se u slučaju izrade Backup-a putem Backup4D aplikacije i osvježavanjem nove verzije komunikatori zaustavljaju automatski.
Opis funkcionalnosti dostupnih putem 4D komunikatora
1.Provjeri zalihu Poziva se komunikator s porukom u kojoj se nalazi lista ID-a artikala koji se nalaze u košari (u JSON formatu) kako bi se povratno vratila poruka s informacijom o trenutnoj zalihi, također u Json formatu.
2.Import narudžbe u 4D Wand nakon uspješno poslane narudžbe Nakon što se narudžba zapiše u tablice Narudbas i Kosaras i pošalje se e-mail s potvrdom narudžbe poziva se komunikator s porukom da se odradi import narudžbe na identičan način kao i što se poziv vrši kroz Task scheduler, ali se na ovaj način Task scheduler za import narudžbi više nije potreban.
API za 4D Komunikator
4D Wand IMC web shop sadrži API-je za direktnu komunikaciju sa 4D Wand-om preko 4D Komunikatora. Radi se o pripremljenim upitima koji se šalju POST zahtjevom. Sadržaj zahtjeva (eng. request body) sadrži definirani JSON objekt. Sukladno tome, u zaglavlju treba definirati odgovarajući tip zahtjeva (Content-Type:application/json).
Autentifikacija preko tokena (JWT)
Za korištenje određenih API-ja, potrebno se autentificirati te dohvatiti Token (JWT) koji će služiti kao sredstvo autorizacije. Dohvaćeni token će se postavljati u Headers zahtjeva (request) pod ključem Authorization s vrijednosti Bearer *token_value*. Dohvaćeni token vrijedi 6 dana od trenutka njegovog generiranja.
Na URL adresu, na kojoj se nalazi 4D Wand IMC web aplikacija, treba poslati zahtjev (POST) za dohvat tokena:
https://adresa/Wkom/GetToken
U body requesta potrebno je poslati Json objekt s podacima za autentifikaciju:
1.Username: korisničko ime iz 4D Wanda
2.Password: lozinku korisnika iz 4D Wanda
3.Hash: SHA256 hash polja „WandSifra“ koja se nalazi u web.config 4D Wand IMC web aplikacije
Primjer Json objekta:
{ "username":"Luka Pejaković", "password":"luka", "hash":"BC86B829A94FD2CD2ED25F3D691F35720BC654RI4F8FIUMEC88D044E75FDFB5F" }
Očekivani odgovor (response) je Json objekt s generiranim Tokenom. Primjer uspješnog odgovora:
{ "Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Ikx1a2EgUGVqYWtvdmnEhyIsIlBXRCI6InV1dSIsImh0dHA6Ly" }
U slučaju nekakve poteškoće ili greške, kao odgovor će doći Json objekt sa svojstvima tipom greške (Status) i opisom (StatusText). Primjer odgovora greške:
{ "Status": "ERROR", "StatusText": "Invalid data. Check your JSON data." }
API za automatsko učitavanje narudžbe u 4D Wand - NOVO
Nakon što se narudžba zapiše u bazu (tablice: Narudzbas i Kosaras) tada možemo pozvati API koji će automatski učitati jednu ili više narudžbi koje nisu učitane u 4D Wand.
Za učitavanje narudžbe u 4D Wand, potrebno je poslati GET zahtjev na API:
https://adresa/Wkom/UcitajNarudzbu
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i jednostavno poslati zahtjev.
U slučaju uspješnog zahtjeva doći će odogovor:
{ "Status":"SUCCESS" }
U slučaju neuspješnog zahtjeva doći će odogovor s opisom greške:
{ "Status":"ERROR", "StatusText":"OPIS_GREŠKE" }
API za dohvat zalihe artikla - NOVO
Zalihu jednog ili više artikla možemo dobiti direktno iz 4D Wand-a. Odrađuje se preko predefiniranog API-ja koji vrši komunikaciju preko 4D Komunikatora.
Za dohvat zaliha, potrebno je poslati POST zahtjev na API:
https://adresa/Wkom/ProvjeraZalihe
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i jednostavno poslati zahtjev.
U sadržaj zahtjeva protebno je kreirati JSON objekt koji sadrži listu Robe s željenim RobaID identifikatorima.
Ako je sve ispravno kreirano, kao odgovor dobijemo listu JSON objekta gdje svaki sadrži RobaID, Raspolozivo, Rezervirano i Stanja. Suma(Σ) Raspolozivo i Rezervirano daje ukupnu Zalihu.
Napomena: Pozivom ovog API zahtjeva, automatski se ažuriraju podaci u bazi podataka, što podrazumijeva zaliha artikla u tablici [Robas] i stanje po skladištima u tablici [Stanjas].
UPOZORENJE: API za dohvat zalihe artikla preko 4D Komunikatora služi za dohvat zalihe željenog artikla ili seta artikala u realnom vremenu i nije predviđen dohvat zaliha svih artikala koji se eksportiraju na web. Budući da je dohvat u realnom vremenu te se informacije se dohvaćaju direktno iz 4D Wanda, sam dohvat informacija svih artikala bio bi poprilično zahtjevan za sustav pogotovo ako se poziva u kratkim vremenskim intervalima. Primarna svrha API-a za dohvat zaliha artikla je zamišljena da se izvršava na korisnički zahtjev (npr. prilikom zaključivanja narudžbe, provjera u košari ili na detalju artikla) za željene artikle, a ne automatikom za sve artikle.
Primjer:
Želimo saznati zalihu za artikle s ID 6338 i 1987.
{ "robe": [ {"robaid":6338}, {"robaid":1987} ] }
Kao odgovor (eng. response) dobijemo Raspoloživu i Rezerviranu količinu za dotične artikle sa Stanjima.
[ { "RobaId": 6338, "Raspolozivo": 99, "Rezervirano": 11, "Stanja": [ { "StanjeID": 79, "RobaID": 6338, "SkladisteID": 4604, "Skladiste": "0000101", "Zaliha": 33, "Rezervirano": 4, "Raspolozivo": 29, "SkladisnoMjesto": "X12", "KolicinaMin": 1, "KolicinaMax": 5, "KolicinaOpt": 3 }, { "StanjeID": 80, "RobaID": 6338, "SkladisteID": 5215, "Skladiste": "0000110", "Zaliha": 77, "Rezervirano": 7, "Raspolozivo": 70, "SkladisnoMjesto": null, "KolicinaMin": 0, "KolicinaMax": 0, "KolicinaOpt": 0 } ] }, { "RobaId": 1987, "Raspolozivo": 223, "Rezervirano": 10, "Stanja": [ { "StanjeID": 2, "RobaID": 1987, "SkladisteID": 4604, "Skladiste": "0000101", "Zaliha": 200, "Rezervirano": 4, "Raspolozivo": 196, "SkladisnoMjesto": "bup", "KolicinaMin": 0, "KolicinaMax": 0, "KolicinaOpt": 0 }, { "StanjeID": 21, "RobaID": 1987, "SkladisteID": 5215, "Skladiste": "0000110", "Zaliha": 33, "Rezervirano": 6, "Raspolozivo": 27, "SkladisnoMjesto": "Bip", "KolicinaMin": 0, "KolicinaMax": 0, "KolicinaOpt": 0 } ] } ]
API za dohvat IOS-a
Za dohvat IOS-a potraživanja, potrebno je poslati POST zahtjev na API:
https://adresa/Wkom/IOS
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i jednostavno poslati zahtjev.
Potrebno pravo 4D Wand korisnika: 306 - Statistike: IOS po periodima
Ako je token ispravan te ako su upisani validni podaci 4D Wand korisnika kod dohvata tokena, kao odgovor očekujemo Json objekte „IOS“ i „Info“. Json objekt „IOS“ sadrži objekte „NasloviKolona“ i „Statistika“. Nadalje, objekt „NasloviKolona“ sadrži naslove koje je korisnik definirao u 4D Wandu, a objekt „Statistika“ je lista objekata koji sadrže naziv, šifru te iznose komitenata. Objekt „Info“ sadrži datim, vrijeme kad je generirana statistika te aktivnu godinu iz koje su podaci statistike.
Primjer odgovora:
{ "IOS": { "NasloviKolona": { "Sifra": "Šifra komitenta", "Naziv": "Naziv komitenta", "Iznos01": "Nedospjelo 16.02.2021", "Iznos02": "do 5 dana 11.02.2021", "Iznos03": "do 15 dana 01.02.2021", "Iznos04": "do 25 dana 22.01.2021", "Iznos05": "do 30 dana 17.01.2021", "Iznos06": "do 45 dana 02.01.2021", "Iznos07": "do 60 dana 18.12.2020", "Iznos08": "do 90 dana 18.11.2020", "Iznos09": "do 120 dana 19.10.2020", "Iznos10": "> 120 dana 19.10.2020", "Iznos11": "U kašnjenju", "Iznos12": "Ukupan dug" }, "Statistika": [ { "Sifra": "1312", "Naziv": "Primjer d.o.o.", "Iznos01": 0, "Iznos02": 0, "Iznos03": 454.9, "Iznos04": 0, "Iznos05": 0, "Iznos06": 0, "Iznos07": 0, "Iznos08": 0, "Iznos09": 0, "Iznos10": 0, "Iznos11": 454.9, "Iznos12": 454.9 }, ... ] }, "Info": { "DateCached": "16.02.2021", "TimeCached": "11:25:19", "ActiveYear": "2021" } }
Podaci statistike se generiraju samo prvi put po pozivu API. U slučaju da ih je potrebno osvježiti potrebno je generirati nove podatke. Za isto je potrebno definirati dodatni parametar akcija. Primjer URL s parametrom:
https://adresa/Wkom/IOS?akcija=X
Umjesto X potrebno je postaviti broj akcije koju želimo izvršiti. Moguće vrijednosti akcije su:
1.Dohvaćanje samo Info objekta već generirane statistike
2.Generiranje*** i dohvat nove statistike
3.Dohvat već generirane statistike
*** - Generiranje nove statistike može trajati do nekoliko minuta (ovisno o količini podataka)
API za dohvat IOS-a partnera
Za dohvat IOS-a partnera na određenom kontu, potrebno je poslati zahtjev (POST) na API:
https://adresa/Wkom/IOSPartnera?konto=XXX&partnerid=YYY
Parametri:
•XXX - željeni broj konta (obavezan)
•YYY - željeni id partnera
Upozorenje: Ako se ne pošalje id partnera, dohvatiti će se IOS-i svih partnera.
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i poslati zahtjev.
Potrebno pravo 4D Wand korisnika: 306 - Statistike: IOS po periodima
Ako je token ispravan te ako su upisani ispravni podaci 4D Wand korisnika kod dohvata tokena, kao odgovor očekujemo Json objekt koji sadrži IOS-e partnera i Info. Json objekt „IOSPartnera“ sadrži listu objekata „PartnerId“ i „Dokumenti“. Objekt „Info“ sadrži datum, vrijeme kad je generirana statistika te aktivnu godinu iz koje su podaci statistike.
Napomena: Za dohvat podataka prethodno je potrebno generirati statistike 4D Wanda.
Primjer odgovora:
{ "IOSPartnera": [ { "PartnerId": 711, "Dokumenti": [ { "Datum": "2021-05-20", "Vez_dok": "441113511-710", "Loc_dok": "3178", "Klasa_dok": "IFAN", "Opis_knjizenja": "Izl.rn. 3178-5C-91", "Valuta": "2021-06-08", "Iznos": 209.98, "Otvoreno": 209.98, "Iznos_dev": 209.98, "Otvoreno_dev": 209.98, "Tecaj": 1, "Deviza": "001" }, { "Datum": "2021-05-20", "Vez_dok": "441113550-710", "Loc_dok": "3442", "Klasa_dok": "IFAN", "Opis_knjizenja": "Izl.rn. 3442-5C-91", "Valuta": "2021-06-08", "Iznos": 261.59, "Otvoreno": 261.59, "Iznos_dev": 261.59, "Otvoreno_dev": 261.59, "Tecaj": 1, "Deviza": "001" }, { "Datum": "2021-05-20", "Vez_dok": "441113551-710", "Loc_dok": "3443", "Klasa_dok": "IFAN", "Opis_knjizenja": "Izl.rn. 3443-5C-91", "Valuta": "2021-06-08", "Iznos": 211.96, "Otvoreno": 211.96, "Iznos_dev": 211.96, "Otvoreno_dev": 211.96, "Tecaj": 1, "Deviza": "001" } ] } ], "Info": { "DateCached": "02.06.2021", "TimeCached": "14:27:06", "ActiveYear": "2021" } }
API za import roba
Za import (insert/update) roba, potrebno je poslati zahtjev (POST) na API:
https://adresa/Wkom/ImportRobe
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.
U sadržaju zahtjeva potrebno je staviti JSON objekt sa sljedećim svojstvima:
•akcija - akcija izvršavanja zahtjeva (INSERT ili UPDATE)
•tablica - tablica za import (robe)
•robe - lista roba za import
U tablici niže su navedena sva svojstva koja se mogu ili trebaju definirati na robi za uspješan import:
Br.
|
Naziv polja
|
Tip polja
|
Opis polja
|
1.
|
robaId**
|
NUMERIC(6)
|
ID robe
|
2.
|
naziv*
|
STRING(<=80)
|
Naziv robe
|
3.
|
tip
|
STRING(1)
|
Tip robe: 0 – roba 1 – proizvod 2 – usluga 3 – vozilo 4 – objekt
|
4.
|
grupa*
|
STRING(<=20)
|
Šifra grupe kojoj roba pripada – broj u grupi će se dodijeliti sam
|
5.
|
katbroj
|
STRING(<=30)
|
Kataloški broj robe
|
6.
|
barkod
|
NUMERIC(13)
|
Barkod robe
|
7.
|
a1
|
STRING(<=5)
|
Šifra atributa 1 definiranog u 4D Wandu
|
8.
|
a2
|
STRING(<=5)
|
Šifra atributa 2 definiranog u 4D Wandu
|
9.
|
a3
|
STRING(<=5)
|
Šifra atributa 3 definiranog u 4D Wandu
|
10.
|
a4
|
STRING(<=5)
|
Šifra atributa 4 definiranog u 4D Wandu
|
11.
|
jm*
|
STRING(<=3)
|
Kratica jedinice mjere robe definirane u 4D Wandu, npr. kom, kg,…
|
12.
|
tarifa*
|
DECIMAL
|
Porezna tarifa, npr. upisuje se samo 25 ako se PDV na tu robu obračunava po poreznoj stopi od 25%.
|
13.
|
vpcijena
|
DECIMAL
|
Planska veleprodajna cijena
|
14.
|
mpcijena
|
DECIMAL
|
Planska maloprodajna cijena
|
15.
|
proizvodjacId
|
NUMERIC(6)
|
ID proizvođača robe
|
16.
|
neaktivan
|
NUMERIC(1)
|
Roba van upotrebe. 1 – van upotrebe 0 – nije van upotrebe
|
17.
|
cjenik1
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
18.
|
cjenik2
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
19.
|
cjenik3
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
20.
|
cjenik4
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
21.
|
cjenik5
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
22.
|
cjenik6
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
23.
|
cjenik7
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
24.
|
cjenik8
|
NUMERIC(1)
|
0/1 - isključena/uključena kolona
|
25.
|
opis
|
STRING
|
Napomena artikla u 4D Wandu
|
* Polja obavezna za INSERT ** Polja obavezna za UPDATE Napomena: Vrijednosti polja koja se ne žele mijenjati potrebno je izostaviti iz JSON-a ili postaviti NULL
Ako je token ispravan te ako su ispravno popunjeni podaci za import, kao odgovor očekujemo Json objekt koji sadrži status i listu objekata sa svojstvima IDX (redosljedni broj robe), RobaId (jedinstveni identifikator robe) i Status (tekst uspješnosti importa).
Primjer odgovora:
{ "Status": "OK", "Robe": [ { "Idx": 1, "RobaId": 55, "Status": "OK" }, { "Idx": 2, "RobaId": 56, "Status": "OK" }, { "Idx": 3, "RobaId": 57, "Status": "OK" } ] }
API za import partnera
Za import (insert/update) partnera, potrebno je poslati zahtjev (POST) na API:
https://adresa/Wkom/ImportPartneri
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.
U sadržaju zahtjeva potrebno je staviti JSON objekt sa sljedećim svojstvima:
•akcija - akcija izvršavanja zahtjeva (INSERT ili UPDATE)
•tablica - tablica za import (partneri)
•partneri - lista partnera za import
U tablici niže su navedena sva svojstva koja se mogu ili trebaju definirati na partneru za uspješan import:
Br.
|
Naziv polja
|
Tip polja
|
Opis polja
|
1.
|
partnerId**
|
NUMERIC(6)
|
ID partnera
|
2.
|
centralaId
|
NUMERIC(6)
|
ID centrale
|
3.
|
OIB
|
STRING(<=20)
|
OIB partnera
|
4.
|
naziv*
|
STRING(<=80)
|
Naziv partnera
|
5.
|
email
|
STRING(<=500)
|
Email partnera. Može se unijeti više email adresa odvojenih zarezom unutar liste u json-u
|
6.
|
telefon
|
STRING(<=30)
|
Broj telefona partnera
|
7.
|
grupapartnera
|
STRING(<=6)
|
Šifra grupe partnera koja je definirana u 4D Wand-u
|
8.
|
grad*
|
STRING(<=80)
|
Potrebno je upisati naziv grada, poštanski broj ili šifru grada koja je definirana u 4D Wand-u
|
9.
|
neaktivan
|
NUMERIC(1)
|
Partner van upotrebe. 1 – van upotrebe 0 – nije van upotrebe
|
10.
|
fizickaosoba
|
NUMERIC(1)
|
Upisuje se ako je partner fizička osoba: 0 – Nije fizička osoba 1 – Je fizička osoba
|
11.
|
poslovnica
|
NUMERIC(1)
|
Upisuje se ako je partner poslovnica: 0 – Nije poslovnica 1 – Je poslovnica
|
12.
|
kupac
|
NUMERIC(1)
|
Upisuje se ako je partner kupac: 0 – Nije kupac 1 – Je kupac
|
13.
|
dobavljac
|
NUMERIC(1)
|
Upisuje se ako je partner dobavljač: 0 – Nije dobavljač 1 – Je dobavljač
|
14.
|
proizvodjac
|
NUMERIC(1)
|
Upisuje se ako je partner proizvođač: 0 – Nije proizvođač 1 – Je proizvođač
|
15.
|
webkupac
|
NUMERIC(1)
|
Upisuje se ako je partner web kupac: 0 – Nije web kupac 1 – Je web kupac
|
16.
|
opis
|
STRING(<=80)
|
Prvi red opisa
|
17.
|
opis2
|
STRING(<=80)
|
Drugi red opisa
|
18.
|
adresa
|
STRING(<=120)
|
Prvi red adrese
|
19.
|
adresa2
|
STRING(<=120)
|
Drugi red adrese
|
20.
|
trgovackipredstavnik
|
STRING(<=6)
|
Šifra trgovačkog predstavnika definiranog u 4D Wand-u
|
21.
|
rabatdobavljac
|
DECIMAL
|
Rabat dobavljača ako je navedeni komitent označen kao dobavljač
|
22.
|
rabatkupac
|
DECIMAL
|
Rabat kupca ako je navedeni komitent označen kao kupac
|
23.
|
rokplacanjadobavljac
|
NUMERIC
|
Broj dana za rok plaćanja ako je komitent dobavljač
|
24.
|
rokplacanjakupac
|
NUMERIC
|
Broj dana za rok plaćanja ako je komitent kupac
|
25.
|
nacinplacanja
|
STRING(<=30)
|
Šifra načina plaćanja koja je definirana u 4D Wand-u
|
26.
|
nacinotpreme
|
STRING(<=6)
|
Šifra načina otpreme u 4D Wand-u
|
27.
|
mjestotroska
|
STRING(<=6)
|
Šifra mjesta troška u 4D Wand-u
|
28.
|
d1
|
STRING(<=6)
|
Šifra prve dimenzije u 4D Wand-u
|
29.
|
d2
|
STRING(<=6)
|
Šifra druge dimenzije u 4D Wand-u
|
30.
|
d3
|
STRING(<=6)
|
Šifra treće dimenzije u 4D Wand-u
|
* Polja obavezna za INSERT ** Polja obavezna za UPDATE Napomena: Vrijednosti polja koja se ne žele mijenjati potrebno je izostaviti iz JSON-a ili postaviti NULL
Ako je token ispravan te ako su ispravno popunjeni podaci za import, kao odgovor očekujemo Json objekt koji sadrži status i listu objekata sa svojstvima IDX (redosljedni broj partnera), PartnerId (jedinstveni identifikator partnera) i Status (tekst uspješnosti importa).
Primjer odgovora:
{ "Status": "OK", "Partneri": [ { "Idx": 1, "PartnerId": 11, "Status": "OK" }, { "Idx": 2, "PartnerId": 12, "Status": "OK" }, { "Idx": 3, "PartnerId": 13, "Status": "OK" } ] }
API za import osoba
Za import (insert/update) osoba, potrebno je poslati zahtjev (POST) na API:
https://adresa/Wkom/ImportOsobe
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.
U sadržaju zahtjeva potrebno je staviti JSON objekt sa sljedećim svojstvima:
•akcija - akcija izvršavanja zahtjeva (INSERT ili UPDATE)
•tablica - tablica za import (osobe)
•osobe - lista osoba za import
U tablici niže su navedena sva svojstva koja se mogu ili trebaju definirati na osobi za uspješan import:
Br.
|
Naziv polja
|
Tip polja
|
Opis polja
|
1.
|
osobaId**
|
NUMERIC(6)
|
ID osobe
|
2.
|
partnerId*
|
NUMERIC(6)
|
ID partnera
|
3.
|
ime
|
STRING(<=30)
|
Ime osobe
|
4.
|
prezime*
|
STRING(<=30)
|
Prezime osobe
|
5.
|
email
|
STRING(<=500)
|
Email osobe. Može se unijeti više email adresa odvojenih zarezom unutar liste u json-u
|
6.
|
telefon
|
STRING(<=12)
|
Broj telefona osobe
|
7.
|
grad*
|
STRING(<=20)
|
Potrebno je upisati naziv grada, poštanski broj ili šifru grada koja je definirana u 4D Wand-u
|
8.
|
neaktivan
|
NUMERIC(1)
|
Osoba van upotrebe. 1 – van upotrebe 0 – nije van upotrebe
|
* Polja obavezna za INSERT ** Polja obavezna za UPDATE Napomena: Vrijednosti polja koja se ne žele mijenjati potrebno je izostaviti iz JSON-a ili postaviti NULL
Ako je token ispravan te ako su ispravno popunjeni podaci za import, kao odgovor očekujemo Json objekt koji sadrži status i listu objekata sa svojstvima IDX (redosljedni broj osobe), OsobaId (jedinstveni identifikator osobe) i Status (tekst uspješnosti importa).
Primjer odgovora:
{ "Status": "OK", "Osobe": [ { "Idx": 1, "OsobaId": 123, "Status": "OK" }, { "Idx": 2, "OsobaId": 124, "Status": "OK" }, { "Idx": 3, "OsobaId": 125, "Status": "OK" } ] }
API endpoint za dohvat fiskaliziranog računa - NOVO
Za dohvat detalja o fiskaliziranom računu, potrebno je poslati zahtjev (GET) na API endpoint:
https://adresa/Wkom/RacunInfo?jir=XXX&zki=YYY
Parametri:
•XXX - jedinstveni identifikator računa
•YYY - zaštitni kod izdavatelja
U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.
Potrebno pravo 4D Wand korisnika: 51 - RM: Pregled dokumenata
Ako je token ispravan te ako su ispravno upisani svi podaci, kao odgovor očekujemo JSON objekt koji sadrži informacije o fiskaliziranom računu.
Primjer odgovora:
{ "poslovnica": { "sifra": "0000107", "naziv": "Maloprodaja Zagreb", "ulica": "Dane Duića", "kucnibroj": "5" }, "datumizdavanja": "2024-08-12T06:06:28", "brojracuna": "123456-7-890", "jir": "befdbae9-63b1-4e2c-bcb5-33ff997c5a55", "zki": "65cfb68c4ca646458455eaa6049cacc8", "ukupaniznos": { "osnovica": 5.26, "porez": 0, "ukupno": 6.58, "stopeporeza": [ { "stopa": 25.0, "osnovica": 5.26, "iznos": 1.32 } ] }, "stavke": [ { "sifra": "0101001", "naziv": "Artikl za prodaju", "kataloskibroj": "AP-147", "barkod": "9876543210369", "kolicina": 1.0, "povratnanaknada": 0, "cijena": 12.25, "iznos": { "osnovica": 19.60, "porez": 4.90, "ukupno": 24.50, "stopaporeza": 25.0 } } ] }
|