Dnevnik sprememb
2026-10-07: GET /api/v1/payouts/ready vrača strani
Sprememba strukture obstoječe končne točke, ki ni združljiva za nazaj.
- Odgovor je standardna ovojnica s stranmi.
GET /api/v1/payouts/readyvrne{ items, page, pageSize, total, totalPages }kot vse druge končne točke s seznami, namesto golega niza. Vrstice vitemsso nespremenjene. - Parametra poizvedbe
pageinpageSize. Privzeto jepage1 inpageSize20, največ 100. Pridobivajte strani, dokler ne veljapage >= totalPages, da preberete vse naloge, pripravljene za izplačilo. - Pred izplačilom preberite vse strani. Izplačani nalogi izginejo s seznama, zato se
preostali nalogi premaknejo na prejšnje strani. Najprej preberite vse strani, odstranite
podvojene vrstice po
id, šele nato ustvarite izplačilo zPOST /api/v1/payouts. Izplačevanje stran za stranjo izpusti naloge. - Vrstni red je nespremenjen. Nazadnje odobreni nalogi so prvi.
2026-10-05: vehicleId na stroških, ki niso kilometrina, se prezre
Sprememba vedenja na obstoječih končnih točkah; brez spremembe strukture.
- Vozilo obdržijo samo stroški kilometrine.
POST /api/v1/travel-entries/{id}/expenses,PUT /api/v1/travel-entries/{id}/expenses/{expenseId}inexpensesvPOST /api/v1/travel-entriesshranijo strošek goriva, cestnine, parkiranja, nastanitve ali drug strošek brez vozila, vsako branje pa zanj vrnevehicle: null.vehicleId, poslan s takim stroškom, se je doslej shranil in vrnil v odgovoru. - Obstoječe vrednosti se izbrišejo. Ob nadgradnji se odstrani vozilo, shranjeno na
obstoječih stroških, ki niso kilometrina, zato tudi ti vrnejo
vehicle: null. - Vozilo zunaj vašega podjetja se zavrne pri vsaki vrsti stroška. Če
vehicleIdoznačuje vozilo zunaj vašega podjetja, API vrne 400VALIDATION_FAILED, tudi pri stroških, ki niso kilometrina. Pri teh stroških so končne točke za posamezen strošek doslej shranilevehicleIdbrez preverjanja. Arhiviranega službenega vozila na strošku, ki ni kilometrina,POST /api/v1/travel-entriesne zavrne več; tam se prezre kot vsako drugo vozilo.
2026-10-03: ustvarjanje vozila zavrne neznan type
Sprememba vedenja na obstoječi končni točki; brez spremembe strukture.
POST /api/v1/vehiclesz vrednostjotypezunajCompanyinPersonalvrne 400. Številska vrednost, kot je2(odstranjena vrsta za javni prevoz), se je doslej shranila. Zdaj jo zavrne odgovor 400VALIDATION_FAILEDpoderrors.Type, kot je toPUT /api/v1/vehicles/{id}že počel.
2026-10-03: novo dovoljenje ManageVehicles za spreminjanje vozil
Nova vrednost enuma in spremembe dovoljenj na obstoječih končnih točkah za vozila; brez spremembe strukture.
ManageVehiclesvCompanyPermissions. Nova atomarna zastavica za vodenje službenih vozil: vozila sama, njihovi stroški, dokumenti, roki in opomniki po e-pošti. Odgovori s podatki o zaposlenih in sporočila webhook jo navajajo kot vsako drugo zastavico, vsakCompanyAdminpa jo zdaj ima.ManageCompanyDataše naprej pokriva oddelke, stroškovna mesta in menjalne tečaje, vozil pa ne več.- Operacije spreminjanja vozil zahtevajo
ManageVehicles.POST /api/v1/vehicles,PUT /api/v1/vehicles/{id},DELETE /api/v1/vehicles/{id},POST /api/v1/vehicles/{id}/archiveinPOST /api/v1/vehicles/{id}/unarchivevrnejo 403 klicatelju brez njega, ne glede na druga dovoljenja. Vsak zaposleni, ki je pred to izdajo imelManageCompanyData, je dobilManageVehicles, zato noben obstoječi uporabnik ne izgubi dostopa. - Branje zasebnih vozil drugih zaposlenih zahteva
ManageVehicles.GET /api/v1/vehiclesinGET /api/v1/vehicles/{id}vrneta zasebna vozila drugih zaposlenih le klicatelju z dovoljenjemManageVehiclesaliEditAllEntries(doslejManageCompanyData). - Vrnite cel seznam. Odjemalec, ki zavrže neznana imena zastavic in nato zapiše
dovoljenja zaposlenega nazaj, temu zaposlenemu odstrani
ManageVehicles. Ko dovoljenja pošiljate nazaj, ohranite neznana imena. - Prednastavljena vloga
FleetManagerna vhodu. Zapis dovoljenj sprejmeFleetManager, ki ga strežnik shrani kotReadAllEntriesinManageVehicles. Izhod ostaja seznam atomarnih zastavic.
2026-10-03: moč motorja pri vozilih
Dodano polje API-ja; brez spremembe strukture.
enginePowerKwpri vozilih. Zahtevka za ustvarjanje in posodobitev vozila sprejemata neobvezno največjo moč motorja kot celo število kilovatov (polje P.2 prometnega dovoljenja, od 1 do 2000), vračata pa jo tako odgovor s podrobnostmi vozila kot seznam vozil. Pri posodobitvi izpustitev ohrani shranjeno vrednost,0pa jo izbriše.
2026-10-03: poškodovani bajti slike pri multipart priponkah vrnejo 400
Sprememba vedenja dveh obstoječih končnih točk; brez spremembe strukture.
POST /api/v1/travel-entriesmultipart priponka s poškodovanimi bajti slike vrne 400. Priponka, katere deklarirani tip je slika, bajti pa se ne dajo dekodirati kot slika, je prej vrnila 500. Zdaj je zavrnjena z odgovorom 400VALIDATION_FAILEDpoderrors.attachments, v enaki strukturi kot vsaka druga zavrnjena vrsta priponke.POST /api/v1/travel-entries/{id}/attachmentsz enako poškodovano sliko prav tako vrne 400. Končna točka za priponke je prej v tem primeru enako vrnila 500. Zdaj je zahtevek zavrnjen z odgovorom 400VALIDATION_FAILEDpoderrors.File, v enaki strukturi kot vsaka druga zavrnjena vrsta priponke.
2026-10-02: brisanje vozila zavrne vozilo v uporabi, nova končna točka za arhiviranje
Sprememba vedenja obstoječe končne točke in ena nova končna točka; brez spremembe strukture.
DELETE /api/v1/vehicles/{id}vrne 409 za vozilo v uporabi. Vozilo, ki je na strošku potnega naloga ali ima vnesen strošek, se namesto izbrisa ne arhivira več. Izbrisani potni nalogi ter odstranjeni stroški se ne štejejo, zato se vozilo lahko izbriše, ko ga odstranite s stroškov potnih nalogov in izbrišete njegove stroške. Zahtevek je zavrnjen z odgovorom 409CONFLICTin vozilo ostane nespremenjeno. Vozilo brez takih zapisov, arhivirano ali ne, se še vedno izbriše z odgovorom 204.POST /api/v1/vehicles/{id}/archive. Arhivira vozilo, v uporabi ali ne, in ga vrne zisArchived: true. Tako arhivirate vozilo, ki ga brisanje zavrne. Arhiviranje arhiviranega vozila ničesar ne spremeni;POST /api/v1/vehicles/{id}/unarchivega razveljavi. Potrebno je isto dovoljenjeManageCompanyDatakot za brisanje.
2026-09-28: opuščena preglasitev zunaj nočnega pasu
Opuščena polja; brez spremembe strukture.
nightOffWindowOverrideinnightOverrideReasonpri pavšalih potnega naloga. Obe polji ostajata v odgovoru, en element na noč, vendar je vsak element zdajfalseoziromanull. Preglasitev, ki sta jo prikazovali, je ukinjena: odgovor za noč, krajšo od šestih ur, se poda preknightAllocationin nobena preglasitev ne spremeni zneska. Prenehajte ju brati; v eni od prihodnjih različic ju lahko odstranimo.
2026-09-28: vhodni podatki za ceno goriva pri stroških kilometrine
Dodana polja v pogodbi; brez spremembe strukture.
fuelUnitPriceOverrideinmileagePetrolGradepri stroških. Zahtevka za ustvarjanje in posodobitev stroška sprejmeta obe polji, tudi pri stroških v zahtevku za ustvarjanje potnega naloga, vsak odgovor s stroškom pa ju vrne, tudi znotraj potnega naloga.fuelUnitPriceOverrideje cena goriva na liter (na kWh za električno vozilo), dokazana z računom, v osnovni valuti podjetja; pri postavki kilometrine v CZ ali SK nadomesti predpisano povprečno ceno v komponenti goriva.mileagePetrolGrade(Octane95aliOctane98) izbere predpisano povprečno ceno za Natural 95 ali Natural 98 v CZ za lastno vozilo na bencin brez cene z računa. Vsako polje se shrani le tam, kjer vpliva na obračun postavke, drugje jenull. Posodobitev je popolna zamenjava: če ju izpustite, se postavka znova obračuna po predpisani povprečni ceni, za bencin po ceni za Natural 95, zato pošljite vrednosti, ki jih je vrnil strošek, če želite ohraniti ceno z računa ali bencin 98.
2026-09-16 — stroškovna mesta pri zaposlenih
Dodano polje API-ja; brez spremembe strukture.
costCenterIdspri zaposlenih. Odgovora s podrobnostmi in seznamom zaposlenih vrneta stroškovna mesta, ki jih zaposleni sme bremeniti, zahtevka za ustvarjanje in posodobitev zaposlenega pa ju sprejmeta. Prazen seznam pomeni brez omejitev — na voljo so vsa aktivna stroškovna mesta podjetja. Pri ustvarjanju je izpustitev polja enaka pošiljanju praznega seznama. Pri posodobitvi izpustitev ohrani shranjeni seznam, prazen seznam ga izbriše, seznam z vrednostmi pa ga v celoti zamenja. Vsak id mora pripadati vašemu podjetju, sicer je zahtevek zavrnjen s 400. Dodajanje stroškovnega mesta zunaj seznama na potni nalog je še naprej zavrnjeno s 400 — prav zaradi te zavrnitve polje obstaja. Omejitev velja samo za dodajanje: že dodeljena stroškovna mesta se za nazaj ne odstranijo, ko stroškovno mesto izpade s seznama. Pri pisanju velja varnostna meja 100 različnih stroškovnih mest na zaposlenega — podvojena se štejejo enkrat, shema pa mejo objavlja kotmaxItemspri obeh telesih zahtevka. Nadzoruje velikost zahtevka in ni poslovna omejitev: seznam lahko navede le stroškovna mesta, ki jih podjetje dejansko ima, zato vas v praksi ne bo omejila.
2026-09-13 — zneski dnevnic po itinerarju po zakonitem času
Popravljeni zneski na obstoječih končnih točkah za dnevnice po itinerarju; brez spremembe strukture.
- Izračun dnevnic po itinerarju in
from-itinerary. Vrednostitimena postajah se še vedno berejo kot UTC, vrnjeni intervali pa so še vedno v UTC. Češkim in slovaškim podjetjem se koledarski dnevi zdaj delijo ob polnoči po praškem oziroma bratislavskem času namesto ob polnoči UTC. Poljska podjetja štejejo noči (21:00–07:00), doby in datume računov po varšavskem času. Enak zahtevek lahko zato za te trge vrne drugačne ure in zneske kot prej.
2026-09-12 — category je pri posodobitvi vozila neobvezen
Omiljeno polje v obstoječem zahtevku; brez spremembe strukture.
categorypri posodobitvi vozila. Polje je zdaj neobvezno. Če ga izpustite, shranjena kategorija ostane nespremenjena; pošljite ga, kadar jo želite spremeniti, vključno z0za namerni izbris. Pri ustvarjanju je polje še naprej obvezno.
2026-08-23 — prostornina motorja pri vozilih
Dodatno polje pogodbe; brez spremembe strukture.
engineCapacityCcpri vozilih. Zahtevka za ustvarjanje in posodobitev vozila sprejemata neobvezno prostornino motorja kot celo število kubičnih centimetrov, vračata pa jo tako odgovor s podrobnostmi vozila kot seznam vozil. Pri posodobitvi izpustitev ohrani shranjeno vrednost,0pa jo izbriše.
2026-08-17 — locked zdaj sporoča zaklepe dokumentov
Popravljena semantika vrednosti obstoječega polja odgovora; brez spremembe strukture.
lockedv odgovorih za podrobnosti in seznam potnih nalogov je prej poročal le o starejši zaklenitvi iz uvoza pred letom 2023 in ostalfalseza dokumente, zaklenjene v aplikaciji, vključno s samodejno zaklenitvijo, uveljavljeno ob izplačilu. Zdaj nosi enako izpeljano stanje zaklenjenosti, ki ga webhookentry.updatedže sporoča visLocked:true, kadar koli je dokument zaprt za pisanje. Razumejte to kot “tega vnosa ni mogoče spremeniti”, ne kot oznako določenega izvora zaklenitve.
2026-07-13 — place id-ji, ročni tečaji, razveljavitve dnevnic, smer tečaja
Dodatna, nazaj združljiva polja pogodbe in nov diskriminator tečaja.
- Place id-ji na potnih nalogih. Zahteve za ustvarjanje in posodabljanje
sprejemajo
departureLocationPlaceIdindestinationPlaceId(Google Placesplace_id), odgovor potnega naloga pa ju vrne. Pošljite shranjeni vrednosti nazaj pri posodobitvi s popolno zamenjavo, da ohranite identiteto kraja pri urejanju besedila cilja. - Ciljna država na potnih nalogih. Zahteve sprejemajo neobvezni
destinationCountryCode(ISO 3166-1 alpha-2). Ko je podana, se shrani neposredno in strežniški rezervni geocoding se preskoči. - Ročni tečaji. Zahteve za stroške in dnevnice sprejemajo neobvezni
manualExchangeRate, zahteve potnega naloga pamanualAdvanceExchangeRateza predujem. Vsak se upošteva samo, kadar ponudnik tečaja ne objavi tečaja za referenčni datum; pošiljanje, medtem ko obstaja uradni tečaj, se zavrne zEXCHANGE_RATE_UNAVAILABLE. - Razveljavitve dnevnic. Zahteva za dnevnico sprejema
overrideAmountinoverrideReason, bralni modeli dnevnice pa ju vrnejo. Da ohranite obstoječo razveljavitev pri posodobitvi s popolno zamenjavo, pošljite vrednosti nazaj; njuna izpustitev izbriše razveljavitev in se vrne na zakonsko izplačilo. - Smer tečaja.
GET /api/v1/reference/exchange-rateszdaj nosi diskriminatordirection:ForeignPerBase(HNB / ECB) pomeni deliti tečaj za pretvorbo v bazno valuto,BasePerForeign(CNB) pomeni množiti.
2026-07-08 — datum predujma, ponudnik tečaja za CZ/SK
Dve dodatni in nazaj združljivi spremembi.
- Datum predujma na potnih nalogih. Zahteve za ustvarjanje in posodabljanje
zdaj sprejemajo neobvezni
advancePaymentDate(yyyy-MM-dd), odgovor potnega naloga pa ga vrne. Če je pri ustvarjanju izpuščen, strežnik uporabi datum naloga. Določa datum tečaja za predujem in, za češke tenante, referenčni datum tečaja za dnevnice. - Ponudnik tečaja za CZ/SK.
GET /api/v1/reference/exchange-rateszdaj dokumentira celoten nabor ponudnikov: HNB za HR, ECB za SI in SK, CNB za CZ. Poljesourceje lahko"CNB",baseCurrencypa je domača valuta ponudnika (EUR za HNB/ECB, CZK za CNB). Vedenje je nespremenjeno; dokumentacija zdaj ustreza izvajanju.
2026-06-11 — števila obrokov po vrsti, izvor tečaja, koda za nedosegljiv tečaj
Tri dodatne spremembe površine. Vse so združljive za nazaj: obstoječi zahtevki še naprej delujejo nespremenjeno, nova polja v odgovorih pa so dodatki, ki jih lahko prezrete, dokler jih ne potrebujete.
- Števila obrokov po vrsti pri ustvarjanju/posodabljanju dnevnice. Zahtevki
za dnevnice zdaj sprejemajo
breakfastsProvided,lunchesProvidedindinnersProvided(celoštevilska števila obrokov po vrsti) ter neobvezno razporeditev po dnevumealsProvidedAllocation. So kanonski model za zapis: strežnik iz teh števil znova izračuna zmanjšanje. Obstoječi v1 skupnimealsProvidedse še vedno sprejema; kadar polja po vrsti manjkajo, strežnik preslika vsoto kot prej, zato starejši odjemalci niso prizadeti. Odgovori še naprej vračajo izpeljanimealsProvided(kosilo + večerja, oblika HR Pravilnika) skupaj s števili po vrsti, zato so poti branja nespremenjene. - Izvor tečaja v odgovorih. Odgovori za stroške in dnevnice pridobijo
exchangeRateSource, odgovor potnega naloga paadvancePaymentExchangeRateSource, ki zabeleži, od kod prihaja uporabljeni tečaj: koda ponudnika ("HNB","ECB") za uradni tečaj,"MANUAL"za ročno vnesen tečaj, alinullza vrstico v isti valuti (brez pretvorbe) ali starejšo vrstico, shranjeno pred sledenjem izvora. Samo za branje, brez spremembe zahtevka. - Nova koda napake
EXCHANGE_RATE_UNAVAILABLE(HTTP 400). Pojavi se, kadar ponudnik tečaja tenanta ne objavi tečaja za valuto na zahtevani datum in ni zgodovinskega tečaja, na katerega bi se lahko zanesli. Napaka je iz družine preverjanj s standardnim telesomerrorspo poljih, zato lahko specifično razločite primer nedosegljivega tečaja in zahtevate ročni tečaj. Dodano v katalog napak.
2026-05-23 — časi dnevnic iz itinerarja se shranjujejo kot pravi UTC (popravek)
Časi dnevnic, shranjeni prek
POST /api/v1/travel-entries/{id}/per-diems/from-itinerary, se zdaj shranjujejo
kot pravi trenutki UTC. Prej se je odhod/prihod vsakega odseka shranil z
vrednostjo stenske ure, označeno kot UTC brez zamika (lokalni odsek ob 08:00
se je shranil kot 08:00Z namesto 07:00Z/06:00Z), zato so vrstice,
ustvarjene iz itinerarja, od ročno dodanih odstopale za 1–2 uri in se prikazovale
z zamudo. Shemi zahteve in odgovora sta nespremenjeni, vendar vrednosti
departureTime/arrivalTime, ki jih ta endpoint vrne (in ki jih vrnejo poznejša
branja istih vrstic), zdaj odražajo popravljeni trenutek UTC. Kalkulator za
predogled še vedno vrača čase stenske ure. Zneski dnevnic niso prizadeti.
2026-05-23 — kalkulator dnevnic + shranjevanje celotne poti
Površina za izračun dnevnic je združena in pridobi enakovrednost shranjevanja celotne poti z locco spletno aplikacijo.
- Novo
POST /api/v1/utilities/per-diems/calculate— kalkulator brez stanja. Pošljite itinerar (en odsek = itinerar z dvema postajama) in prejmite nazaj izračunane vrstice z uporabljeno prerazporeditvijo na ravni itinerarja. Brez konteksta naloga, nič se ne shrani. - Novo
POST /api/v1/travel-entries/{id}/per-diems/from-itinerary— znova izračunajte dnevnice potnega naloga iz itinerarja v enem klicu. Strežnik znova zažene svoj lasten mehanizem nad postajami (poslanim zneskom se nikoli ne zaupa), uporabi obroke po odseku vezane s ključem(countryCode, departureTime)(pari, ki jih vrne kalkulator), nato atomarno zamenja dnevnice naloga. S tem se reproducirata prerazporeditev na ravni itinerarja in nadgradnje domačih enot, ki jih pošiljanje vrstic ena za drugo ne more. - Odstranjeno
POST /api/v1/travel-entries/{id}/per-diems/computeinPOST /api/v1/per-diems/calculate-simple. Oba sta zajeta vutilities/per-diems/calculate— en odsek je le itinerar z dvema postajama. Premaknite integracije na novi kalkulator.
2026-05-22 — Podpora za slovenski trg
Začetna podpora za slovenske tenante. Posodobite odjemalca z osveženim
OpenAPI snapshotom na /sl/api-reference/:
- Slovenske občine — nov
GET /api/v1/reference/slovenian-municipalitiesvrne SURS-ov seznam občin za izbiro kraja v spustnih seznamih na slovenskih potnih nalogih. Klic je mogoč iz katerega koli tenanta. - Davčno rezidentstvo zaposlenih — zapisom zaposlenih je dodano polje
residency(Resident/NonResident) za slovensko poročanje o dnevnicah in davkih na plačo. Privzeta vrednost jeResident.
2026-04-28 — v1.0 izdana
Prva stabilna izdaja locco partnerskega API-ja. Vse površine so povezane,
tipizirane in pokrite z OpenAPI snapshotom na
/api-reference/:
- Potni nalogi — popoln CRUD in akcije toka odobritev (oddaja, odobritev, zavrnitev, preklic, zahteva po spremembah), z atomarnim ustvarjanjem z vgnezdenimi stroški, dnevnicami, razdelitvami po stroškovnih mestih in prilogami v enem klicu.
- Priloge — neposreden prenos na potni nalog prek
POST /api/v1/travel-entries/{id}/attachments. Multipart, do 5 datotek na zahtevek. - Webhooks — registracija naročnine z enkratnim prikazom signing-secret-a, zgodovina dostav po naročnini in endpoint za ponovni poskus neuspelih ali izčrpanih dostav.
- Izplačila — seznam nalogov, pripravljenih za izplačilo, ustvarjanje serij, zgodovina, brisanje serije.
- Zaposleni, Oddelki, Vozila, Stroškovna mesta — CRUD in seznami, s prilagojenimi polji na zaposlenih.
- Reference — hrvaške občine, HNB tečajne liste, tabela dnevnic, seznami dovoljenih držav in valut podjetja.
- Podjetje — branje profila.
Vrednosti enumeracij za Status, TravelType, PayoutMethod in
ostale so dokumentirane v OpenAPI shemi kot enum: [...] seznami
dovoljenih vrednosti, zato se generirani odjemalci vežejo na kanonične
nize ("PendingApproval", "BankTransfer" itd.) namesto na
neprozorne vrednosti.