Spring videre til hovedindholdet

BitaBIZ API

CSV (Excel & PBI) & REST (JSON)

Esben Hedegaard avatar
Skrevet af Esben Hedegaard
Opdateret i denne uge

1. Introduktion

Denne artikel handler om BitaBIZ API.

API’et giver adgang til rå data som medarbejder-stamdata og registreringer, som I kan arbejde videre med i integrationer, rapporter og business intelligence.

Her beskrives, hvordan man henter rå data via REST eller CSV (fx feriedage, sygedage, medarbejderdata).

👉 BitaBIZ API er ikke det samme som:

  • Løneksport – API’et kan ikke anvendes til eksport af data til lønsystemer.

  • HR Rapporter – Rapportbiblioteket i BitaBIZ indeholder færdige rapporter med HR-nøgletal.

💁 API-varianter:

  • REST (JSON) → til integrationer og udviklere

  • CSV (Excel & Power BI) → til rapportering og analyse

2. Kom i gang

  1. Aktiver API-nøglen i BitaBIZ:
    Setup admin -> Virksomhed -> Abonnementsplan

  2. Gem API-nøglen sikkert.

  3. Vælg REST (JSON) eller CSV (Power BI/Excel) metoden afhængigt af behov.

2.1 REST API (JSON)

💁 REST API’et kan testes i et desktopværktøj som Postman.

I Postman skal du tilføje virksomhedens API-nøgle som x-apikey i Headers-sektionen af din forespørgsel.

Base URL:
https://registrations.api.bitabiz.com/v2/

Autentificering:
Tilføj header:
x-apikey: YOUR_API_KEY

Eksempel (cURL):

curl -H "x-apikey: $API_KEY" \

https://registrations.api.bitabiz.com/v2/employees/

2.2 CSV (Excel & PowerBI)

Base URL:
https://registrations.api.bitabiz.com/pbi/INSERT_API_KEY_HERE/

Power Query-trin (i Power BI):

1) Csv.Document(Web.Contents(URL), [Delimiter=",", Columns=30, Encoding=65001, QuoteStyle=QuoteStyle.None])
2) Table.ReplaceValue(...) # fjerner 'registrations.' præfix
3) Table.PromoteHeaders(...) # laver kolonnenavne

3. Endpoints

Endpoint

Metode

Returnerer

Beskrivelse

/employees/

GET

Medarbejder-masterdata

Henter alle medarbejdere og deres stamdata (fx navn, afdeling, e-mail, ansættelsesdato, godkender).

/employees/nationalholidays

GET

Helligdage pr. medarbejder

Viser helligdage i en periode. Brugt til at se hvor mange fridage, medarbejdere har pga. nationale helligdage.

/registrations

GET

Registreringer for hele virksomheden

Viser alle typer registreringer (ferie, sygedage, afspadsering, kørsel m.m.) for alle medarbejdere. Kan filtreres med dato, status og reason code.

/registrations/{employeeGuid}

GET

Registreringer for én medarbejder

Viser registreringer for en specifik medarbejder. Bruges typisk til rapportering eller integration pr. person.

/adjustments

GET

Balanceændringer

Viser ændringer i balancer (ferie, feriefri, timebank, dagebank). Dækker op-/nedskrivning, udbetaling og overførsel af restsaldo til ny periode.

Eksempler med endpoints

/employees/

REST

curl -H "x-apikey: $API_KEY" \
https://registrations.api.bitabiz.com/v2/employees/

CSV

https://registrations.api.bitabiz.com/pbi/INSERT_API_KEY_HERE/employees

/registrations

REST

curl -H "x-apikey: $API_KEY" \
"https://registrations.api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31"

CSV

https://registrations.api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31

4. Parametre

Sådan bruges parametre i API-forespørgsler:

  • Parametre tilføjes i URL’en

  • Den første parameter starter med ?

  • Yderligere parametre tilføjes med &

Parameter

Format / værdier

Beskrivelse

?

Symbol

Bruges til at starte parameterdelen i en URL. Eksempel: ...?from=2025-01-01.

&

Symbol

Bruges til at tilføje flere parametre efter den første. Eksempel: ...?from=2025-01-01&to=2025-12-31&status=APP.

from

YYYY-MM-DD eller lastXXmonths

Startdato for dataudtræk. Eksempel: from=2025-01-01. Med last12months hentes data fra dags dato og 12 måneder tilbage.

to

YYYY-MM-DD

Slutdato for dataudtræk. Eksempel: to=2025-12-31. Skal kombineres med from.

status

APP, PEN, REJ, DEL, CHK

Filtrerer på registreringers status:

APP = Godkendt

PEN = Afventer

REJ = Afvist

DEL = Slettet

CHK = Check ind uden tjek ud (aktiv registrering).

inactive

true / false

Bruges på /employees. Standard = kun aktive medarbejdere. Sæt inactive=true for også at hente inaktive.

reason

Fx HH, IS, VT

Filtrerer på registreringstype. Eksempel: reason=HH (ferie), reason=IS (syg). Flere koder kan kombineres med komma.

employeeGuid

Tekststreng (GUID)

Unik medarbejder-ID, bruges til at hente registreringer for én bestemt medarbejder: /registrations/{employeeGuid}.

Eksempel med status

Rest

curl -H "x-apikey: $API_KEY" \
"https://registrations.api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31&status=pen"

CSV

https://registrations.api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31&status=pen

💡 Tip om parametre i API’et

  • ? bruges til at starte parametre i URL’en.

  • & bruges til at tilføje flere parametre efter hinanden.

  • Du kan kombinere flere parametre:

    • ...?from=2025-01-01&to=2025-12-31&status=APP

    • ...?from=2025-01-01&to=2025-12-31&reason=HH,IS

  • Som standard returneres kun APP (Godkendt) registreringer. Hvis du har brug for andre eller flere registreringsstatus, skal du tilføje dem med parameteren status (kommasepareret).

  • Parametrene kan bruges både i REST- og CSV-versionerne af API’et.

5. Registreringstyper (reason codes)

Registreringstype

Reason code

Beskrivelse

Ferie

HH

Almindelig ferie (lovpligtige feriedage).

Feriefri

HF

Ekstra fridage, fx 6. ferieuge eller omsorgsdage. I API’et kaldes de altid “Feriefri”, uanset navngivning i politikken.

Syg

IS

Egen sygedag.

Barn syg

IC

Barnets første sygedag.

Andet fravær / orlov

L

Fx barsel, graviditetsorlov, fædreorlov eller andet orlov.

Egne registreringstyper

P

Fx kursus, fast fridag, rejse, tilkaldevagt, arb. hjemme.

Overarbejde

VO

Overtidstimer (ofte med forskellige satser via jobkoder).

Afspadsering

VT

Afholdelse af frihed optjent via overarbejde.

Tidsregistrering

TT

Registrering af arbejdstid uden timebank. Fx. EU tid, projekttimer, løntimer.

Kørsel (mileage)

MI

Registrering af kørsel i kilometer.

Flex (flextid)

FT

Tidsregistrering med tilknyttet timebank.

Dagebank – plusdage

DO

Optjening af ekstra fridage til dagbanken.

Dagebank – minusdage

DT

Afholdelse af fridag. Fx seniordag, ekstra firmafridag.

Udbetaling af ferie

RHH

Udbetaling af optjent feriesaldo.

Udbetaling af anden ferie

RHF

Udbetaling af feriefri (fx 6. ferieuge eller omsorgsdage).

Udbetaling af timebank (timer)

RVT

Udbetaling af timer fra timebanken.

Udbetaling af dagebank (dage)

RDT

Udbetaling af dage fra dagebanken.

Eksempel med reason

En enkelt reason (ferie = HH)

REST

curl -H "x-apikey: $API_KEY" \
"https://registrations.api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31&reason=HH"

CSV

https://registrations.api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31&reason=HH

Flere reasons (ferie + sygedag = HH, IS)

REST

curl -H "x-apikey: $API_KEY" \
"https://registrations.api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31&reason=HH,IS"

CSV

https://registrations.api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31&reason=HH,IS

6. Kendte forhold

⚠️ Medarbejders navn på registreringer er historiske. Dvs. hvis medarbejders navn ændres fastholdes navn på historisk registrering. Anvend /employees for aktuelle navne.
⚠️ Hour bank earnings i Adjustments understøttes først fra 2022-01-01.
⚠️ GDPR-sletning kan fjerne historiske data afhængigt af jeres regler.

7. FAQ

Hvorfor er der fravær der tæller 0 dage i APIét

Fraværstyperne ferie (HH), feriefri (HF), syg (IS), barn syg (IC) og orlov (L) tælles ikke på:

  • Weekender (lørdag/søndag)

  • Nationale helligdage

  • Fridage

Excel/CSV-output:

Kolonne

Værdi

Weekend

Helligdag

Fridag

registrationAmountDays

Antal dage

0, hvis registreringen falder på weekend

0, hvis på helligdag

0, hvis på fridag

registrationAmountHours

Antal timer

Timer beregnes kun på arbejdsdage iht. normtid

-

-

Hvorfor ser mine data fra Power BI ud som én kolonne?

Når du henter data via CSV-endpoints (/pbi/ eller /v2-pbi/), returneres filen som én kolonne. Du skal derfor tilføje et par trin i Power Query for at splitte den ud i kolonner:

1) = Csv.Document(Web.Contents(the url query), [Delimiter=",", Columns=30, Encoding=65001, QuoteStyle=QuoteStyle.None])  
2) = Table.ReplaceValue(Source,"registrations.","",Replacer.ReplaceText,{"Column1", "Column2", ..., "Column30"})  
3) = Table.PromoteHeaders(#"Replaced Value", [PromoteAllScalars=true])  

Hvordan aktiverer jeg vores virksomheds API-nøgle, og hvem kan gøre det?

Man skal have "Setup admin" rolle for at kunne aktivere adgang til API'et.

API'et aktiveres under abonnementsplan-siden på jeres konto.

Klik: Setup admin > Virksomhed > Abonnementsplan > Scroll ned til sektionen "Rapport bibliotek & API integration" > Sæt til "ON" > Opdater abonnementsplan.

Appendix: Dataskemaer pr. endpoint

Nedenfor finder du en komplet oversigt over felter leveret af hvert endpoint.
Denne reference er nyttig, når du har brug for at forstå præcist, hvilke data der returneres i API-svaret.

/employees/ – Medarbejder-stamdata

BitaBIZ navn/ID

API ID

Beskrivelse

Guid

Guid

Unik medarbejder-identifikation (bruges til joins)

Name

Name

For- og efternavn

Full name

FullName

Fornavn, mellemnavn, efternavn

Department

Department

Afdeling

p-Number

pNumber

P-nummer til DST (DK statistik)

Job Title

JobTitle

Medarbejderens titel

Employee number

EmployeeId

Internt medarbejder-ID

Payroll number

EmployeePayrollId

ID til eksternt lønsystem

Office location

Country.Name

Kontor/land-tag

Region

Country.Region

Land/region/kalendergruppe

Group company

Group.Company

Gruppevirksomhed

Email

PersonalInfo.Email

E-mail

Birthday

PersonalInfo.Birthdate

Fødselsdato

Mobile

PersonalInfo.Mobile

Mobilnummer

Employment start

Employment.Start

Ansættelsesdato

Employment end

Employment.End

Fratrædelsesdato

Last login

LastLogin

Sidst logget ind

Active

Active

True/false (brug ?inactive=true for at få alle)

Policy ID

SalaryAgreement.Id

Tilknyttet politik

Policy name

SalaryAgreement.Name

Politiknavn

Work week

SalaryAgreement.WorkingDays

Antal arbejdsdage/uge

Work hours/week

SalaryAgreement.HoursPerWeek

Standardtimer/uge

Vacation days/year

SalaryAgreement.VacationDays

Standard feriedage

Other vacation/year

SalaryAgreement.OtherVacationDays

Øvrige feriedage

Week days

SalaryAgreement.WeekDaysCsv

Standard arbejdsdage og timer pr. dag

Secondary week

SalaryAgreement.WeekRule

Odd/Even week regel

Breaks

SalaryAgreement.BreaksCSV

Aktive pauser (fx 12:00–12:30)

Timezone

Timezone

Medarbejderens tidszone

Tags

Tags

Payroll/Employee/HR tags

Approvers

Approvers

E-mail på godkender(e)

Pay/cost price/hour rate

Coming soon

/employees/nationalholidays – Helligdage pr. medarbejder

BitaBIZ navn/ID

API ID

Beskrivelse

Guid

Guid

Unik medarbejder-ID

Name

Name

For- og efternavn

Sum of days

SumOfDays

Samlede helligdage i dage

Sum of hours

SumOfHours

Samlede helligdage i timer

Count

HolidaysCount

Antal helligdage

Holiday name

Holidays.Description

Fx “Nytårsdag”

Holiday start

Holidays.StartDate

Startdato

Holiday end

Holidays.EndDate

Slutdato

Day of week

Holidays.DayOfWeek

Mandag–søndag

Sum days

Holidays.SumDays

1 = hel dag, 0.5 = halv dag

Sum hours

Holidays.SumHours

Timer efter medarbejders norm

/registrations – Registreringer

BitaBIZ navn/ID

API ID

Beskrivelse

Guid

Guid

Unik registrerings-ID

Name

Name

Navn knyttet til registreringen (historisk)

Registration ID

Registration.Id

Unikt ID for registrering

Spanned

Registration.Spanned

True, hvis registrering går over flere dage

Spanned day

Registration.SpannedDay

Dag nr. i et span (0 = første dag)

Date

Registration.Date

Dato for registreringen

Time start

Registration.TimeStart

Starttidspunkt

Time end

Registration.TimeEnd

Sluttidspunkt

Amount days

Registration.Amount.Days

Antal dage

Amount hours

Registration.Amount.Hours

Antal timer

Amount km

Registration.Amount.Km

Antal km

Amount unit

Registration.Amount.Unit

Enhed (dage, timer, km)

Week no.

Registration.DateDetails.Week

Ugenummer

Weekday no.

Registration.DateDetails.Weekday

Dag nr. (1=mandag)

Weekday name

Registration.DateDetails.WeekDayEnglish

Ugedag

Holiday overlap

Registration.DateDetails.Holiday

True, hvis overlapper helligdag

Holiday name

Registration.DateDetails.HolidayDetails.Description

Navn på national helligdagen

Type

Registration.Type

Fx ferie, syg, overarbejde, afspadsering

Subtype

Registration.Subtype

Jobkode/subtype

Cost center ID

TT job code ID (coming soon)

Reason

Registration.Reason

Reason code (HH, IS, osv.)

Created

Registration.Created

Oprettelses-timestamp

Note

Registration.Note

Kommentar (sygenoter kun synlig for godkender i e-mail/ SMS)

Office status

Registration.OfficeStatus

At work/Working elsewhere/Out of office

Job code ID

Registration.JobCode.Id

Jobkode til payroll

Job code payroll

Registration.JobCode.IsPayroll

True, hvis payroll-relevant

Project name

Registration.Project.Name

Projektnavn

Project GUID

Registration.Project.GUID

Projekt-ID

/adjustments – Balanceændringer

BitaBIZ navn/ID

API ID

Beskrivelse

Employee GUID

employeeGuid

Unik medarbejder-ID

Employee name

employeeName

For- og efternavn

Payroll admin

financeName

Navn på lønadmin, der lavede ændringen

Policy name

policyName

Politiknavn

Adjustment type

adjustmentType

Balance: Vacation, Other vacation, Hour bank, Day bank

Adjustment reason

adjustmentReason

Reason code: HH, HF, VT, DT

Adjustment action

adjustmentAction

Fx manual, scheduled, payout, transferred

Created

created

Dato for oprettelse

Modified

modified

Dato hvor ændringen gælder fra

Value

value

Antal dage/timer ændret

Rate

rate

Konvertering fra dage til timer

Note

note

Evt. kommentar

Besvarede dette dit spørgsmål?