API dokumentacija

Za developere.

Izrada ponude

Ova metoda ti omogućuje kreiranje nove ponude.

Pozivanje metode se vrši putem ove adrese:

POST https://api.solo.com.hr/ponuda

API je limitiran na izradu do 300 ponuda mjesečno u plaćenom, tj. 3 u besplatnom paketu.

Parametri

Parametri predstavljaju naredbe koje šalješ u POST pozivu.

token

Tvoj tajni identifikator. Možeš pronaći svoj API token u Postavkama nakon prijave u servis.

Pravilo: obavezno

tip_usluge

ID usluge u koju spada račun. Usluge možeš pronaći pod Usluge -> Tipovi usluga nakon prijave u servis. Svaka usluga ima svoj unikatni ID.

Pravilo: obavezno, numerički unos

prikazi_porez

Želiš li prikazati PDV na ponudi?

Da 1
Ne 0

Pravilo: obavezno, numerički unos

kupac_naziv

Naziv kupca, max. 100 znakova (s razmacima).

Pravilo: nije obavezno

kupac_adresa

Adresa kupca, max. 255 znakova (s razmacima).

Pravilo: nije obavezno

kupac_oib

Porezni broj kupca, max. 20 znakova (s razmacima).

Pravilo: nije obavezno

usluga

Redni broj usluge, _mora_ početi od broja 1.

Pravilo: obavezno, numerički unos

opis_usluge_x

x je redni broj usluge (npr. opis_usluge_1). Max. 500 znakova (s razmacima).

Pravilo: obavezno, alfanumerički unos

jed_mjera_x

x je redni broj usluge. Max. 5 znakova (bez razmaka). Ovdje pogledaj popis jediničnih mjera.

Pravilo: nije obavezno, numerički unos

cijena_x

x je redni broj usluge. Dozvoljen je ISO 4217 brojčani format (npr. 1.234,00). Decimale se odvajaju zarezom. Max. 18 znakova (bez razmaka).

Pravilo: obavezno, numerički unos, dozvoljene 2 decimale

kolicina_x

x je redni broj usluge. Max. 18 znakova (bez razmaka).

Pravilo: obavezno, numerički unos, dozvoljene 4 decimale

popust_x

x je redni broj usluge. Max. 8 znakova (bez razmaka).

Pravilo: obavezno, numerički unos, dozvoljene 4 decimale

porez_stopa_x

x je redni broj usluge. Max. 2 znaka (bez razmaka). Podržane porezne stope su 0, 5, 13 i 25.

Pravilo: obavezno, numerički unos

nacin_placanja

Odabrani način plaćanja. Ovdje provjeri podržane načine plaćanja.

Pravilo: obavezno, numerički unos

datum_ponude

Dozvoljen je ISO 8601 format datuma (npr. 2014-01-01). Dozvoljen je unos sati i minuta (npr. 2014-01-01 00:00). Ako se ne unese datum, sustav će sam dodijeliti trenutni datum i vrijeme.

Pravilo: nije obavezno

rok_placanja

Dozvoljen je ISO 8601 format datuma (npr. 2014-01-01). Dozvoljen je unos sati i minuta (npr. 2014-01-01 00:00).

Pravilo: nije obavezno

napomene

Vidljive napomene na ponudi. Max. 1000 znakova (s razmacima).

Pravilo: nije obavezno, alfanumerički unos

ponavljanje

Broj dana za ponavljanje ponude. Dozvoljen je samo numerički unos do 3 znamenke.

Pravilo: nije obavezno, numerički unos

iban

Odabir prvog ili drugog računa za uplatu. Dozvoljen je samo numerički unos od 1 znamenke. Ako se ne pošalje/pošalje krivi unos, sustav će sam odabrati prvi IBAN.

Pravilo: nije obavezno, numerički unos, može biti samo 1 ili 2

jezik_ponude

Ovdje pogledaj popis podržanih jezika. Dozvoljen je samo numerički unos od 1 znamenke. Ako se ne unese jezik, sustav će sam odabrati hrvatski.

Pravilo: nije obavezno, numerički unos

valuta_ponude

Ovdje pogledaj popis valuta. Dozvoljen je samo numerički unos do 2 znamenke. Ako se ne unese valuta, sustav će sam odabrati EUR.

Pravilo: nije obavezno, tekstualni unos

tecaj

Tečaj po kojem će se preračunati cijene usluga u odabranu valutu. Ako je EUR onda treba biti 1 (ili ostaviti prazno).
Važno: tečaj se množi s iznosima na ponudi, ako koristiš HNB-ov tečaj, prvo ga podijeli s 1 (npr. tečaj USD treba biti 0,94 umjesto 7,064035).

Pravilo: nije obavezno, numerički unos, dozvoljeno 6 decimala

status

Zadani status ponude je "otvoreno". Ovdje provjeri podržane statuse računa i ponuda.

Pravilo: nije obavezno, numerički unos

Povratne informacije

Ovdje su navedeni mogući odgovori servisa nakon što pošalješ API zahtjev.

Odgovor na uspješan zahtjev će biti ovakav:

{
  "status": 0,
  "ponuda": {
    "id": "8791cae3c9b02bb8d88bf626247b4e67dfbe20e35fc0342b448f39c9264c591d",
    "tip_usluge": "1",
    "broj_ponude": "0001-2014",
    "prikazi_porez": "1",
    "kupac_naziv": "COAX j.d.o.o.",
    "kupac_adresa": "Gjure Szaba odvojak 8, 10000 Zagreb",
    "kupac_oib": "21248839327",
    "usluge": [
      {
        "broj": "1",
        "opis_usluge": "Kruške",
        "jed_mjera": "kom",
        "kolicina": "1",
        "cijena": "9,99",
        "popust": "0",
        "porez_stopa": "25",
        "suma": "9,99"
      },
      {
        "broj": "2",
        "opis_usluge": "Jabuke",
        "jed_mjera": "kom",
        "kolicina": "2",
        "cijena": "5,00",
        "popust": "0",
        "porez_stopa": "25",
        "suma": "10,00"
      }
    ],
    "neto_suma": "19,99",
    "porezi": [
      {
        "stopa": "25",
        "osnovica": "19,99",
        "porez": "5,00"
      }
    ],
    "bruto_suma": "24,99",
    "nacin_placanja": "1",
    "ponudu_izdao": "Ime Prezime",
    "datum_ponude": "1.8.2016. 13:00:00",
    "rok_placanja": "",
    "napomene": "Hvala",
    "ponavljanje": "0",
    "iban": "HR3823400091160392212",
    "jezik_ponude": "1",
    "valuta_ponude": "EUR",
    "tecaj": "1",
    "status": "1",
    "boja": "#ffcf03",
    "pdf": "https://solo.com.hr/download/8791cae3c9b02bb8d88bf626247b4e67dfbe20e35fc0342b448f39c9264c591d"
  },
  "message": "Ponuda uspješno kreirana."
}
          

Kada dođe do greške u zahtjevu, sustav vraća obavijest u ovakvom obliku:

{
  "status": 101,
  "message": "Neispravan token."
}
          

Popis mogućih grešaka kod neispravnog zahtjeva:

100 Pričekaj barem 5 sekundi prije slanja novog zahtjeva.
101 Neispravan token.
102 Dosegnut mjesečni limit licence.
103 Tip usluge nije poslan ili u neispravnom formatu.
106 Prikaz poreza nije poslan ili u neispravnom formatu.
107 Ukupan broj usluga nije poslan ili u neispravnom formatu ili veći od dozvoljenog (max. 36).
108 Broj usluge nije poslan ili u neispravnom formatu ili veći od dozvoljenog (max. 36).
109 Opis usluge nije poslan ili je duži od 1000 znakova.
110 Cijena nije poslana ili u neispravnom formatu.
111 Količina nije poslana ili u neispravnom formatu.
112 Popust nije poslan ili u neispravnom formatu.
113 Porezna stopa nije poslana ili u neispravnom formatu.
114 Način plaćanja nije poslan ili u neispravnom formatu.
115 Ponavljanje u neispravnom formatu.
116 Jezik u neispravnom formatu.
117 Valuta u neispravnom formatu.
118 Tečaj u neispravnom formatu.
119 Status u neispravnom formatu.
122 Ponuda ne postoji.
123 Nije kreirana niti jedna ponuda.
127 Popust ne može biti veći od 100%.

Primjer API zahtjeva u praksi

Primjer u nastavku je isključivo demonstracija metode i njenih parametara u .php skriptnom jeziku.


<?php
$url = 'https://api.solo.com.hr/ponuda';
// $data ne smije biti array zbog duplikata
$data = 'token=k2f85a47b75f20h21da9zg1337co5a1g' .
	'&tip_usluge=1' .
	'&prikazi_porez=1' .
	'&kupac_naziv=' . urlencode('COAX j.d.o.o.') .
	'&kupac_adresa=' . urlencode('Gjure Szaba odvojak 8, 10000 Zagreb') .
	'&kupac_oib=' . urlencode('21248839327') .
// ovdje stavi for loop za proizvode iz narudžbe
	'&usluga=1' . // ako ima više usluga, iduća treba biti 2, itd.
	'&opis_usluge_1=' . urlencode('kava') .
	'&jed_mjera_1=1' .
	'&cijena_1=76,00' .
	'&kolicina_1=1' .
	'&popust_1=0' .
	'&porez_stopa_1=25' .
	'&usluga=2' .
	'&opis_usluge_2=' . urlencode('čaj') .
	'&jed_mjera_2=1' .
	'&cijena_2=76,00' .
	'&kolicina_2=1' .
	'&popust_2=0' .
	'&porez_stopa_2=25' .
// ovdje završava for loop
	'&nacin_placanja=1' .
	'&napomene=' . urlencode('Hvala na povjerenju');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
curl_close($curl);
echo $response; // isključi echo nakon testiranja
?>