menuMeny closeLukk

Bruke API for å hente timer fra Capitech

Navigasjon: Simployer Tid og Bemanning - Brukerveiledninger / Capitech API for integrasjoner

 

Tips

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

 

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. 

 

Parameter Påkrevd Beskrivelse Merknad
accessToken Ja Token fra Login.  Kreves for å få svar på API request
clientId Ja Klientnummer for hvilket firma en skal hente timer på  
fromDate Ja Fradato for ønsket periode i format 'yyyy-mm-dd' Fra og med
toDate Ja Tildato for ønsket periode i format 'yyyy-mm-dd' Til og med
approvedLevelFilter Nei Filter 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. 
employeeIdFilter Nei Filter for å angi evt. en eller flere ansattnr en ønsker å avgrense på.   
departmentIdFilter Nei Filter for å angi evt. en eller flere avdelingsnr en ønsker å avgrense på.   
taskIdFilter Nei Filter 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)
orderIdFilter Nei Filter for å angi evt. en eller flere ordrenr en ønsker å avgrense på.   
dutyIdFilter Nei Filter 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. 
projectIdFilter Nei Filter for å angi evt. en eller flere prosjektnr en ønsker å avgrense på.   
subProjectIdFilter Nei Filter 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)
projectPhaseIdFilter Nei Filter 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)
freeDimension1Filter Nei Filter 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. 
freeDimension2Filter Nei Filter 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. 
timeCategoryIdFilter Nei Filter 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. 
timeCategoryTypeIdFilter Nei FIlter 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%)

includePayableCategory Nei Filter for å kunne avgrense på kun tidskategorier som er lønnet, ikke lønnet eller alle.   
externalStatusCodeFilter Nei Filter 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:
includeElementsWithExternalStatusCodeNull Nei Filter for å kunne angi om en vil inkludere timer hvor ekstern statuskode er null eller ikke.   
lastUpdatedGreaterThanOrEqualToFilter Nei Filter for å kunne hente ut timer som er opprettet eller oppdatert på eller etter angitt dato og klokkeslett. 
Format: 'yyyy-mm-dd'
Kan benyttes for å hente kun timer som er opprettet eller endret siden angitt dato. 

NB! Støtter kun dato (yyyy-mm-dd) uten klokkeslett. Det vil i en fremtidig release komme støtte for parameter med både dato og klokkeslett for å støtte hyppigere oppdatering.

projectAlphanumericCodeFilter Nei Filter 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'
subProjectAlphanumericCodeFilter Nei Filter 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)
phaseAlphanumericCodeFilter Nei Filter 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)

 

Returdata

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

 

Felt Beskrivelse Eksempel Merknad
clientId Klientnr 100 Klientnr er et unikt nr for hvert enkelt firma. For konsernkunder kjøres en request for hvert enkelt firma.
employeeid Ansattnr 155  
employee ansattnavn Ola Danielsen  
datein Dato for start 2021-07-10 Dato timeregistreringen startet
timein start tidspunkt 21:57:00.000  
dateout Dato for slutt 2021-07-11 Dato timeregistreringen sluttet
timeout slutt tidspunkt 07:01:00.000  
departmentid Avdelingsnr 50  
department Avdelingsnavn Logistikk  
taskid Arbeidsoppgavenr 20  
task Arbeidsoppgavenavn Varemottak  
classicdutyid Vaktid 188 Classic Plan vaktnr 
classicdutycode Vaktkode N2 Classic Plan vaktid 
classicduty Vaktbeskrivelse Nattevakt 22 - 06 Classic Plan vakt beskrivelse  
orderid Ordrenr null  
order ordrenavn null  
projectid Prosjektnr 1001  
projectAlphanumericCode Prosjekt alfanumerisk kode B400  
project Prosjektnavn Bergtoppen  
subProjectid Underprosjektnr 8445  
subProjectAlphanumericCode Underprosjekt alfanumerisk kode T8877  
subProject Undeprosjektnavn Tilleggsbestilling øst  
projectPhaseid Fasenr null  
phaseAlphanumericCode Fase alfanumersik kode null  
projectPhase Fasenavn null  
shiftId Vaktnr 68874 Flow Plan vaktnummer
shift Vakt  N2 Flow Plan vaktnavn
freeDimension1Id Fri Dimensjon1 nr 10  
freeDimension1 Fri dimensjon1 navn Ordinær  
freeDimension2Id Fri Dimensjon2 nr 60  
freeDimension2 Fri dimensjon2 navn Bas  
freeText Fritekst Overtid fordi Kjell ble forsinket  
approvedLevelOne Godkjent nivå 1 1 1 = Godkjent på nivå 1
null = Ingen godkjenning
approvedLevelTwo Godkjent nivå 2 null 1 = Godkjent på nivå 2
null = Ingen godkjenning
approvedLevelThree Godkjent nivå 3 null 1 = Godkjent på nivå 3
null = Ingen godkjenning
approvedLevelFour Godkjent nivå 4 null 1 = Godkjent på nivå 4
null = Ingen godkjenning
approvedLevelOneBy Godkjent nivå 1 av trineg Bruker som har godkjent
approvedLevelTwoBy Godkjent nivå 2 av null Bruker som har godkjent
approvedLevelThreeBy Godkjent nivå 3 av null Bruker som har godkjent
approvedLevelFourBy Godkjent nivå 4 av null Bruker som har godkjent
approvedLevelOneOn Godkjent nivå 1 når 2021-07-11 11:25:00 Dato og tidspunkt for godkjenning
approvedLevelTwoOn Godkjent nivå 2 når null Dato og tidspunkt for godkjenning
approvedLevelThreeOn Godkjent nivå 3 når null Dato og tidspunkt for godkjenning
approvedLevelFourOn Godkjent nivå 4 når null Dato og tidspunkt for godkjenning
timeCategoryId Tidskategorinr 10  
timeCategory Tidskategorinavn Timelønn  
timeCategoryTypeId Tidskategoritypekode O  
timeCategoryType Tidskategoritype Ordinær  
timeCategoryPayable Tidskategori lønnet  1

1= Lønnet
0 = Ikke lønnet

qty Antall  7.50 Antall timer 
uid Unik id 107004 Unik id på den aktuelle timeregistreringen. 
NB! En timeregistrering kan gi flere tidskategorier, dvs. samme uid på records for hhv. Timelønn og Overftid 50%
externalId Ekstern id null Id fra ekstern system dersom det benyttes API for å registrere tid. 
correlationId Korrelasjonsid null Id som referer til siste handling som har endret transaksjonen
externalStatusCode Ekstern statuskode null

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

lastUpdatedOn Sist oppdatert 2021-07-11 07:01:00 Dato og tidspunkt for siste endring av transaksjonen. Dersom den ikke er endret er denne dato og tidspunkt for opprettelse av transaksjon 
recordStateKey Unik streng for sjekk av kombinasjon på uid, tidskategori og antall 107004_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.

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.