Bruke API for å hente timer fra Capitech

Her finner du informasjon om hvordan API kan benyttes for å hente ut timer fra Capitech for gjenbruk i andre systemer. 

I korte trekk 

  1. Logg på kundens API portal med en gyldig bruker med tilgang til API og hent ut et accessToken 
    Dette gjøres via endepunkt /api/public/v1/Access/login
    F.eks dinbedrift.capitech.no/API

  2. Kjør en request mot API for timer med ønskede parameter for f. eks datointervall, klient (selskap) og evt. andre kriterier. 
    Dette  gjøres via endepunkt api/public/v1/Time/getTimeTransactions 

TimeAPI - getTimeTransactions



Beskrivelse av Request parametere

Her er en beskrivelse og forklaring av hvilke parametre en kan benytte for å hente ut timer.

En kan få mer detaljer via mouseover på hhv. request parameter og retur felter i API oversikt. 

ParameterPåkrevdBeskrivelseMerknad
accessTokenJaToken fra Login. Kreves for å få svar på API request
clientIdJaKlientnummer for hvilket firma en skal hente timer på
fromDateJaFradato for ønsket periode i format 'yyyy-mm-dd'Fra og med
toDateJaTildato for ønsket periode i format 'yyyy-mm-dd'Til og med
approvedLevelFilterNeiFilter for å avgrense til kun godkjente timer
Vanligvis benyttes nivå 1
Om flere nivå benyttes kan en spørre på f. eks nivå 2 osv..
Om ikke angitt får en alle timer uavhengig av godkjenning. 
employeeIdFilterNeiFilter for å angi evt. en eller flere ansattnr en ønsker å avgrense på. 
departmentIdFilterNeiFilter for å angi evt. en eller flere avdelingsnr en ønsker å avgrense på. 
taskIdFilterNeiFilter for å angi evt. en eller flere arbeidsoppgavenr en ønsker å avgrense på. Bør kun benyttes sammen med avgrensning på en avdeling da arbeidsoppgavenr er en subdimensjon til avdeling. (Og samme nr på arbeidsoppgave kan i praksis være ulike oppgaver på ulike avdelinger)
orderIdFilterNeiFilter for å angi evt. en eller flere ordrenr en ønsker å avgrense på. 
dutyIdFilterNeiFilter for å angi evt. en eller flere Flow vakt id'er en ønsker å avgrense på. NB Id på vakt er et autogenerert løpenr som ikke vises i vaktregister brukergrensesnitt.
Dette filteret er kun for spesiell bruk. 
projectIdFilterNeiFilter for å angi evt. en eller flere prosjektnr en ønsker å avgrense på. 
subProjectIdFilterNeiFilter for å angi evt. en eller flere underprosjektnr en ønsker å avgrense på.Bør kun benyttes sammen med avgrensning på ett prosjekt da underprosjektnr er en subdimensjon til prosjekt. (Og samme nr på underprosjekt kan i praksis være ulike underprosjekt på ulike prosjekt)
projectPhaseIdFilterNeiFilter for å angi evt. en eller flere fasenr en ønsker å avgrense på.Bør kun benyttes sammen med avgrensning på ett prosjekt og ett underprosjekt da fasenr er en subdimensjon til underprosjekt. (Og samme fasenr kan i praksis være ulike faser på ulike prosjekt / underprosjekt)
freeDimension1FilterNeiFilter for å angi evt. en eller flere fri dimensjon1 nr en ønsker å avgrense på. Fri dimensjon 1 er en konfigurerbar dimensjon som kan aktiveres og gis navn iht. kundens behov. 
freeDimension2FilterNeiFilter for å angi evt. en eller flere fri dimensjon2 nr en ønsker å avgrense på.Fri dimensjon 2 er en konfigurerbar dimensjon som kan aktiveres og gis navn iht. kundens behov. 
timeCategoryIdFilterNeiFilter for å angi en eller flere tidskategori nr en ønsker å avgrense påTidskategorier kan f. eks være Timelønn, Overtid 50%, Overtid 100%, Nattillegg osv. 
timeCategoryTypeIdFilterNeiFIlter for å angi en eller flere typer timer en ønsker å avgrense på. 

Typedefinisjoner er:

'O' Ordinære timer (f.eks Timelønn, Fastlønn)
'T' Tillegg (f.eks nattillegg, kveldstillegg, bastillegg)
'P' Overtid (f.eks Overtid 50%, Overtid 100%)
'S' Overtidstillegg (f.eks Tillegg 50%, Tillegg 100%)

includePayableCategoryNeiFilter for å kunne avgrense på kun tidskategorier som er lønnet, ikke lønnet eller alle. 
externalStatusCodeFilterNeiFilter for å kunne avgrense til kun transaksjoner som har en gitt ekstern statuskode.Benyttes f. eks for å kun hente timer som ikke er flagget med en ekstern statuskode som betyr at timene allerede er overført. 

Det finnes et eget API endepunkt for å sette denne statuskoden: api/public/v1/Time/setExternalStatusCode
includeElementsWithExternalStatusCodeNullNeiFilter for å kunne angi om en vil inkludere timer hvor ekstern statuskode er null eller ikke. 
lastUpdatedGreaterThanOrEqualToFilterNeiFilter for å kunne hente ut timer som er opprettet eller oppdatert på eller etter angitt dato og klokkeslett. 
Format: 'yyyy-mm-dd hh:mm:ss.000'

Kan benyttes for å hente kun timer som er opprettet eller endret siden angitt dato og klokkeslett.

Effektiv løsnig for å hente kun differanse fra siste uthenting av data. 


projectAlphanumericCodeFilterNeiFilter for å angi evt. en eller flere prosjekt alfanumerisk kode en ønsker å avgrense på. Kan benyttes dersom det er aktivert støtte for alfanumerisk kode på prosjekter. F. eks kan prosjektnr være 10588 (løpenr) og alfanumerisk kode 'B400'
subProjectAlphanumericCodeFilterNeiFilter for å angi evt. en eller flere underprosjekt alfanumerisk kode en ønsker å avgrense på.Bør kun benyttes sammen med avgrensning på ett prosjekt da underprosjekt alfakode er en subdimensjon til prosjekt. (Og samme kode på underprosjekt kan i praksis være ulike underprosjekt på ulike prosjekt)
phaseAlphanumericCodeFilterNeiFilter for å angi evt. en eller flere fase alfanumerisk kode en ønsker å avgrense på.Bør kun benyttes sammen med avgrensning på ett prosjekt og ett underprosjekt da fase alfakode er en subdimensjon til underprosjekt. (Og samme fase kan i praksis være ulike faser på ulike prosjekt / underprosjekt)
lastApprovedOrUpdatedFilterNeiFilter for å kunne hente ut timer som er opprettet, oppdatert eller godkjent på eller etter angitt dato og klokkeslett. 
Format: 'yyyy-mm-dd hh:mm:ss.000'
Kan benyttes for å hente kun timer som er opprettet, endret eller godkjent siden angitt dato. Tar hensyn til alle nivå av godkjenning.
includeDeletedNeiOpsjon for å inkludere slettede timeregistreringerAnbefaler å benytte timeregistreringens UID (unike id) for å evt. slette registreringen i eksternt system. 


Returdata

Her er en beskrivelse og forklaring av returdata en får fra Timer API og hva det i praksis kan benyttes til. 

FeltBeskrivelseEksempelMerknad
clientIdKlientnr100Klientnr er et unikt nr for hvert enkelt firma. For konsernkunder kjøres en request for hvert enkelt firma.
employeeidAnsattnr155
employeeansattnavnOla Danielsen
dateinDato for start2021-07-10Dato timeregistreringen startet
timeinstart tidspunkt21:57:00.000
dateoutDato for slutt2021-07-11Dato timeregistreringen sluttet
timeoutslutt tidspunkt07:01:00.000
departmentidAvdelingsnr50
departmentAvdelingsnavnLogistikk
taskidArbeidsoppgavenr20
taskArbeidsoppgavenavnVaremottak
classicdutyidVaktid188Classic Plan vaktnr 
classicdutycodeVaktkodeN2Classic Plan vaktid 
classicdutyVaktbeskrivelseNattevakt 22 - 06Classic Plan vakt beskrivelse  
orderidOrdrenrnull
orderordrenavnnull
projectidProsjektnr1001
projectAlphanumericCodeProsjekt alfanumerisk kodeB400
projectProsjektnavnBergtoppen
subProjectidUnderprosjektnr8445
subProjectAlphanumericCodeUnderprosjekt alfanumerisk kodeT8877
subProjectUndeprosjektnavnTilleggsbestilling øst
projectPhaseidFasenrnull
phaseAlphanumericCodeFase alfanumersik kodenull
projectPhaseFasenavnnull
shiftIdVaktnr68874Flow Plan vaktnummer
shiftVakt N2Flow Plan vaktnavn
freeDimension1IdFri Dimensjon1 nr10
freeDimension1Fri dimensjon1 navnOrdinær
freeDimension2IdFri Dimensjon2 nr60
freeDimension2Fri dimensjon2 navnBas
freeTextFritekstOvertid fordi Kjell ble forsinket
approvedLevelOneGodkjent nivå 111 = Godkjent på nivå 1
null = Ingen godkjenning
approvedLevelTwoGodkjent nivå 2null1 = Godkjent på nivå 2
null = Ingen godkjenning
approvedLevelThreeGodkjent nivå 3null1 = Godkjent på nivå 3
null = Ingen godkjenning
approvedLevelFourGodkjent nivå 4null1 = Godkjent på nivå 4
null = Ingen godkjenning
approvedLevelOneByGodkjent nivå 1 avtrinegBruker som har godkjent
approvedLevelTwoByGodkjent nivå 2 avnullBruker som har godkjent
approvedLevelThreeByGodkjent nivå 3 avnullBruker som har godkjent
approvedLevelFourByGodkjent nivå 4 avnullBruker som har godkjent
approvedLevelOneOnGodkjent nivå 1 når2021-07-11 11:25:00Dato og tidspunkt for godkjenning
approvedLevelTwoOnGodkjent nivå 2 nårnullDato og tidspunkt for godkjenning
approvedLevelThreeOnGodkjent nivå 3 nårnullDato og tidspunkt for godkjenning
approvedLevelFourOnGodkjent nivå 4 nårnullDato og tidspunkt for godkjenning
timeCategoryIdTidskategorinr10
timeCategoryTidskategorinavnTimelønn
timeCategoryTypeIdTidskategoritypekodeO
timeCategoryTypeTidskategoritypeOrdinær
timeCategoryPayableTidskategori lønnet 1

1= Lønnet
0 = Ikke lønnet

qtyAntall 7.50Antall timer 
uidUnik id107004Unik id på den aktuelle timeregistreringen. 
NB! En timeregistrering kan gi flere tidskategorier, dvs. samme uid på records for hhv. Timelønn og Overftid 50%
externalIdEkstern idnullId fra ekstern system dersom det benyttes API for å registrere tid. 
correlationIdKorrelasjonsidnullId som referer til siste handling som har endret transaksjonen
externalStatusCodeEkstern statuskodenull

Ekstern statuskode som kan angi status i eksternt system.

Benyttes f. eks for ekskludere timer som er flagget med en ekstern statuskode som betyr at timene allerede er overført. 

Det finnes et eget API endepunkt for å sette statuskode: api/public/v1/Time/setExternalStatusCode

lastUpdatedOnSist oppdatert2021-07-11 07:01:00Dato og tidspunkt for siste endring av transaksjonen. Dersom den ikke er endret er denne dato og tidspunkt for opprettelse av transaksjon 
recordStateKeyUnik streng for sjekk av kombinasjon på uid, tidskategori og antall107004_10_7.50

Denne kan benyttes for å sjekke om data i ekstern system er i samsvar med data i Capitech.

Dersom en leder f. eks endrer antall timer etter at et eksternt system har hentet en transaksjon vil ikke recordstatekey lenger matche og en kan oppdatere data i eksternt system iht. dette.

isDeletedEr slettet status (true / false)falseVises som true for slettede timeregistreringer. Disse vises kun om request parameter includeDeleted er satt til true


Begrensninger

  • Maks 31 dager periode i fra - til dato vil aksepteres
  • Om returdata vil overstige 5000 records vil forespørselen avvises, avgrens med kortere datointervall eller andre filter for å redusere datamengde. 


Tips

Du kan se mer detaljer om API parametere og returdata i en demoløsning her Demosalg.capitech.no/API

Related pages