Za razvijalce
Quibi omogoča izdelavo računov in predračunov iz zunanjih programov (spletnih trgovin). V ta namen je izdelan API. Če katerega klica ni na razpolago, nam sporočite in ga bomo dodali.
Vsi klici zahtevajo prijavo, ki je dodana v glavo zahtevka (http header). Podatki za api so enaki, kot prijavni podatki Quibi-ja:
username: vase@uporanbisko.ime
password: VaseVarnoGeslo
Content-Type: application/json
Api kličemo preko GET ali POST (dodajanje in urejanje podatkov) metode. Vse parametre podajamo v JSON formatu.
API url: https://si.quibi.net
Vsi klici vračajo odgovor v sledeči obliki:
{
"error":false,
"message":"",
"errors":{
"SEZNAMNAPAK"
},
"data":{
"IMEPODATKA":[
"VREDNOSTI"
]
}
Opis parametrov:
- error – true/false – ali je prišlo do napake
- message – sporočilo ob napaki
- errors – polja, katera so napačna in napaka
- data – podatki, ki smo jih zahtevali
Metoda: GET URL: /api2/ddv
Metoda: GET URL: /api2/drzava
Metoda: GET URL: /api2/enota
Metoda: GET URL: /api2/glavadokumenta/placila
Metoda: GET URL: /api2/skladisca Opomba: samo v primeru, da imamo vključeno materialno poslovanje.
Metoda: GET URL: /api2/spaces Opomba: samo v primeru, če imate vključene davčne blagajne.
Metoda: GET URL: /api2/stevilcenje
Metoda: GET URL: /api2/stroskovnamesta
Metoda: GET URL: /api2/addresstype
Metoda: GET URL: /api2/cenik
Metoda: GET URL: /api2/kategorije
Metoda: POST URL: /api2/kategorije/form
Parametri (označeni z * so obvezni):
- Kategorije:
- naziv*
Metoda: POST
Parametri:
- Filtriraj:
- leto – int – primer: 2019
- stranka – int – id stranke iz šifranta
- datod – date – v formatu Y-m-d
- datdo – date – v formatu Y-m-d
- sklic: iskanje po sklicu
URL klica za različne vrste dokumentov:
- Fakture – /api2/fakture
- Predračuni – /api2/predracuni
- Dobavnice – /api2/dobavnice
- Prevzemnice – /api2/prevzemnice
- Dobropisi – /api2/dobropisi
- Naročilnice – /api2/narocilnice
- Avansni računi – /api2/predplacila
- Prenos med skladišči – /pi2/prenosmedskladi
- VKR – /api2/vkr
- Delovni nalogi – /api2/dn
- Naročila kupcev – /api2/narocilakupcev
- Izdajnice – /api2/izdajnice
Metoda: GET URL: /api2/glavadokumenta/view/ID_DOKUMENTA
Metoda: GET URL: /api2/delnaplacila/placiladokumenta/ID_DOKUMENTA
Metoda: GET URL: /api2/stranka
Metoda: GET URL: /api2/stranka/view/ID_STRANKE
Metoda: POST URL: /api2/stranka/form
Parametri (označeni z * so obvezni):
- Stranka:
- remote_id – id stranke v vašem programu
- drzava_id – id države iz šifranta držav, če pustimo prazno, je privzeto izbrana Slovenija
- naziv* – obvezen podatek
- naslov
- posta
- postnaSt
- davcna
- davcniZav – ali je davčni zavezanec 0/1
- maticna
- iban
- bic
- emajl – elektronski naslov stranke
- dniZapadlosti
- opomba
- telst
- pu – ali je proračunski uporabnik 0/1
- pravnafizicna – (1 = Pravna oseba, 2 = Fizična oseba)
Metoda: POST URL: /api2/stranka/form/ID_STRANKE
Parametri (označeni z * so obvezni):
- Stranka:
- remote_id – id stranke v vašem programu
- drzava_id – id države iz šifranta držav, če pustimo prazno, je privzeto izbrana Slovenija
- naziv* – obvezen podatek
- naslov
- posta
- postnaSt
- davcna
- davcniZav – ali je davčni zavezanec 0/1
- maticna
- iban
- bic
- emajl – elektronski naslov stranke
- dniZapadlosti
- opomba
- telst
- pu – ali je proračunski uporabnik 0/1
Metoda: GET URL: /api2/address/index/ID_STRANKE
Metoda: POST URL: /api2/address/form
Parametri (označeni z * so obvezni):
- Address
- stranka_id*
- naslov*
- posta
- postnaSt
- drzava_id*
- addresstype_id*
Metoda: POST URL: /api2/address/form/ID_NASLOVA
Parametri (označeni z * so obvezni):
- Address
- stranka_id*
- naslov*
- posta
- postnaSt
- drzava_id*
- addresstype_id*
Metoda: POST URL: /api2/vozila/form
Parametri (označeni z * so obvezni):
- Vozila
- stranka_id*
- disabled
- registrskastevilka*
- lokacija
- proizvajalec
- model
- letnik
- internastevilka
- oprema
- opomba
- garancijado
- opombagarancije
- pogoji
Metoda: GET URL: /api2/sifranti
Metoda: GET URL: /api2/sifranti/view/ID_ARTIKLA
Metoda: GET URL: /api2/sifranti/trenutnazaloga/ID_SKLADIŠČA/REZERVIRANAZALOGA(0|1)
Metoda: POST URL: /api2/sifranti/form
Parametri (označeni z * so obvezni):
- Sifranti:
- sifra* – SKU koda oz. kot imate šifro v spletni trgovini. Mora biti unikatna za vsak izdelek.
- naziv*
- enota_id* – iz šifranta enot
- cenaBrezDDV*
- nabavnaCena – samo če je označeno polje vodiZalogo z 1
- ddv_id* – id ddv-ja iz šifranta ddv-ja
- vodiZalogo – ali vodim zalogo za artikel (samo če imam omogočeno materialno poslovanje) 0/1
- odo – obrnjena davčna obveznost
- teza – teža, v kg
- kategorije_id
Metoda: POST URL: /api2/sifranti/form/ID_ARTIKLA
Parametri (označeni z * so obvezni):
- Sifranti:
- sifra* – SKU koda oz. kot imate šifro v spletni trgovini. Mora biti unikatna za vsak izdelek.
- naziv*
- enota_id* – iz šifranta enot
- cenaBrezDDV*
- nabavnaCena – samo če je označeno polje vodiZalogo z 1
- ddv_id* – id ddv-ja iz šifranta ddv-ja
- vodiZalogo – ali vodim zalogo za artikel (samo če imam omogočeno materialno poslovanje) 0/1
- odo – obrnjena davčna obveznost
- teza – teža, v kg
Metoda: POST URL: /api2/glavadokumenta/form
V dokumentu mora biti obvezno podana tudi stranka. Če Quibi ne najde stranke jo ustvari. Stranko išče po polju id, remote_id oz. emajl. Stranko išče v naštetem vrstnem redu. Podan mora biti vsaj 1 parameter.
Postavke na dokumentu naštevamo. Cene in ostalih parametrov ne podajamo, saj se pobirajo direktno iz šifranta v Quibiju.
Parametri (označeni z * so obvezni):
- Stranka:
- remote_id – id stranke v vašem programu
- drzava_id – id države iz šifranta držav, če pustimo prazno, je privzeto izbrana Slovenija
- stranka_id – id stranke iz šifranta strank. Če podamo to polje, ni potrebno podati ostalih polj od stranke.
- naziv* – obvezen podatek
- naslov
- posta
- postnaSt
- davcna
- davcniZav – ali je davčni zavezanec 0/1
- maticna
- iban
- bic
- emajl – elektronski naslov stranke
- dniZapadlosti
- opomba
- telst
- pu – ali je proračunski uporabnik 0/1
- Dostava
- naziv
- naslov
- posta
- postnaTs
- Glavadokumenta
- stevilcenje_id – id iz šifranta številčenj – glede na številčenje določimo vrsto dokumenta (račun, predračun)
- stranka_id – če je podano to polje iz šifranta strank, potem ni potrebno podati polja Stranka, saj ga ne upošteva.
- dobavnica – če želimo razknjižit (pomanjšati) zalogo v skladišču, naredi skupaj z računom še dobavnico, v kolikor imamo materialno poslovanje – 0/1
- datIzdRac – datum izdaje dokumenta, podan v formatu Y-m-d (če ne izpolnite tega polja, bo vneslo današnji datum)
- datValute – datum valute, podan v formatu Y-m-d (če ne izpolnite tega polja, bo vneslo današnji datum)
- datstod – datum storitve od, če je dokument račun, mora biti podano to polje – datum je podan v formatu Y-m-d
- datstdo – če se gre za obdobje, izpolnimo še to polje – datum je podan v formatu Y-m-d
- kraj – kraj izdaje dokumenta
- nacinPlacila – način plačila iz šifranta način plačila
- space_id – v kolikor uporabljamo davčne blagajne, mora biti tukaj id davčne blagajne iz šifranta davčne blagajne
- skladisca_id – če uporabljamo materialno poslovanje, moramo vnesti id skladišča iz šifranta skladišč
- stroskovnamesta_id – stroškovno mesto iz šifranta stroškovnih mest
- vrstaPosla – STORITEV ali BLAGO
- domacituji – DOMACI ali TUJI
- Postavkedokumenta
- 1
- sifra – šifra artikla
- kolicina – količina
- popust – v kolikor je popust
- ddv_id – iz šifranta DDV
- 1
Pri postavki dokumenta so obvezna polja sifra in kolicina. Če vodimo zalogo, lahko samo popust in ddv_id podate, v kolikor se razlikuje od original stopnje. Če se ne vodi zaloga artikla, potem so dovoljena polja še opis in cena.
Artikel seveda lahko dodate, tudi če ga nimate v šifrantu. V ta namen je potrebno podati vsa našteta polja:
- enota_id
- ddv_id
- opis
- kolicina
- popust
- cenaZDDV (cena je za enoto brez ddv)
Metoda: POST URL: /api2/glavadokumenta/pdf
Parametri (označeni z * so obvezni):
- Glavadokumenta
- id* – id dokumenta
- natisni* – (1 – prikaz uporabniku, 3 – prenesi pdf)
- jezik – (sl – Slovenski, en – Angleški, it – Italjanski)
Metoda: POST URL: /api2/delnaplacila/placilo
Parametri (označeni z * so obvezni):
- Delnaplacila
- model_id* – id dokumenta
- placilo* – znesek
- datumplacila* – datum placila
- nacinplacila* – iz šifranta plačil
<?php
$url = "https://si.quibi.net";
$username = "uporabniški@ime.si";
$password = "geslo";
$formdata = array(
"Stranka" => array(
"id" => 1,
"naziv" => "Testna stranka"
) ,
"Glavadokumenta" => array(
"stevilcenje_id" => 1,
"kraj" => "Kraj"
) ,
"Postavkedokumenta" => array(
1 => array(
"sifra" => "test"
)
)
);
$opts = array(
'http' => array(
'method' => "POST",
"content" => json_encode($formdata) ,
'header' => "Content-Type: application/json\r\n" . "username: {$username}\r\n" . "password: {$password}\r\n"
)
);
$ret = file_get_contents("$url/api2/glavadokumenta/form", false, stream_context_create($opts));
print_r(json_decode($ret));
<?php
$url = "https://si.quibi.dev";
$username = "uporabniški@ime.si";
$password = "geslo";
$opts = array(
'http' => array(
'method' => "GET",
'header' => "Content-Type: application/json\r\n" . "username: {$username}\r\n" . "password: {$password}\r\n"
)
);
$ret = file_get_contents("$url/api2/stevilcenje", false, stream_context_create($opts));
print_r(json_decode($ret));