Hoppa till huvudinnehåll

Visma Recruit API - Dokumentation baserad på användningsfall

Denna artikel beskriver hur Visma Recruits externa API kan användas för att lösa specifika uppgifter (användningsfall).

Rasmus Svensson avatar
Skrivet av Rasmus Svensson
Uppdaterad för mer än en månad sedan

Introduktion

API:et låter externa system interagera med rekryteringsprocesser, kandidatdata, organisationsstruktur med mera.

För fullständig teknisk referens om varje endpoint, inklusive alla parametrar, request/response-scheman och datatyper, se den fullständiga Swagger UI.

Autentisering

Alla anrop till API:et kräver autentisering. Det finns två metoder som stöds: Bearer Token (rekommenderas oftast) och Basic Authentication. Välj en av metoderna för varje anrop.

Metod 1: Bearer Token (Rekommenderad)

  1. Hämta en Token: Anropa GET /Api/Auth/Token med era client och secret koder som query parametrar.

    GET /Api/Auth/Token?client={your_client_code}&secret={your_secret_code}
  2. Använd Token: Svaret från /Api/Auth/Token är en sträng (token). Denna token ska inkluderas i Authorization-headern för alla efterföljande anrop, med prefixet "Bearer ".

    Authorization: Bearer <token_string_from_step_1>
  3. En token har begränsad giltighetstid och behöver sedan förnyas genom att upprepa steg 1.

Metod 2: Basic Authentication

Ni kan också autentisera genom att använda HTTP Basic Authentication direkt i varje anrop (förutom till /Api/Auth/Token).

  1. Skapa Base64-sträng: Kombinera ert client (användarnamn) och secret (lösenord) med ett kolon emellan (client:secret) och Base64-koda resultatet.

    • Exempel: Om client är mitt_client_id och secret är mitt_hemliga_lösenord, blir strängen mitt_client_id:mitt_hemliga_lösenord. Base64-kodningen av detta blir (exempelvis) bWl0dF9jbGllbnRfaWQ6bWl0dF9oZW1saWdhX2zDtnNlbm9yZA==.

    • (Verifiera detta: Kontrollera med Visma om det verkligen är client och secret som ska användas som användarnamn/lösenord för Basic Auth).

  2. Använd Header: Inkludera den Base64-kodade strängen i Authorization-headern med prefixet "Basic ".

    Authorization: Basic <base64_encoded_client:secret_string>
  3. Denna header måste skickas med varje API-anrop som kräver autentisering.


1. Arkivering

Syfte: Hämta information om avslutade rekryteringsprocesser, anställningar och kandidater för arkiveringsändamål.

Relevanta Endpoints:

  • GET /Api/Applications/Hired: Hämtar anställda kandidater inom ett visst tidsintervall (t.ex. för att arkivera data om nyligen anställda).

    • Notera: Använd hiredFrom och hiredTo parametrar.

  • GET /Api/Applications/{id}: Hämtar detaljerad information om en specifik ansökan via dess ID.

  • GET /Api/Applications/CollectedCandidateInformation: Hämtar specifik insamlad kandidatinformation för en ansökan (kan vara relevant för arkivering av viss data).

  • GET /Api/Applications/{id}/Document/{documentId}: Hämtar specifika dokument (t.ex. CV, personligt brev) kopplade till en ansökan för arkivering.

  • GET /Api/Assignments: Hämtar en lista över uppdrag (annonser/rekryteringar). Kan filtreras på status (t.ex. Completed_Recruited, Completed_Cancelled) och datumintervall för att hitta avslutade annonser.

  • GET /Api/Assignments/{id}: Hämtar detaljerad information om en specifik annons.

  • GET /Api/Assignments/{id}/AsPDF: Hämtar hela annonsen som PDF.

  • GET /Api/HiringCases: Hämtar en lista över ärenden. Kan filtreras på datum för att hitta äldre/avslutade ärenden.

  • GET /Api/HiringCases/{id}: Hämtar detaljerad information om ett specifikt avslutat ärende.

  • GET /Api/HiringCases/{id}/RequirementsProfileAsPdf: Hämtar kravprofilen för ett ärende som PDF.


2. Annonslista

Syfte: Hämta information om publicerade och aktiva jobbannonser för att visa dem i ett externt system (t.ex. en karriärsida eller intranät).

Relevanta Endpoints:

  • GET /Api/Assignments: Hämtar en lista över annonser. Detta är den primära endpointen. Använd parametrar för att filtrera:

    • assignmentStatusIdFrom: Sätt till Published för att endast få publicerade annonser.

    • publishStartDateTo, applicationEndDateFrom: För att filtrera på relevanta datum.

    • hiringCaseId: Om du vill lista annonser för ett specifikt ärende.

  • GET /Api/Assignments/{id}: Hämtar fullständiga detaljer för en specifik annons baserat på dess ID (hämtat från listan ovan). Detta inkluderar beskrivningar, kvalifikationer, kontaktpersoner etc.

  • GET /Api/Departments: Kan användas för att hämta en lista över avdelningar, om annonslistan ska kunna filtreras per avdelning i det externa systemet.

  • GET /Api/HiringCases/{id}: Kan användas för att hämta information om det övergripande ärendet som en annons tillhör, om den kontexten behövs.


3. Onboarding

Syfte: Hämta data om en kandidat som har blivit anställd för att initiera onboarding-processen i ett annat system (t.ex. HR- eller lönesystem).

Relevanta Endpoints:

  • GET /Api/Applications/Hired: Hämtar en lista över anställda kandidater, ofta filtrerat på ett snävt datumintervall (hiredFrom, hiredTo) för att få de senaste anställningarna. Detta är startpunkten.

  • GET /Api/Applications/{id}: Hämtar detaljer för en specifik anställd kandidat (ID fås från listan ovan). Innehåller CV-data och referenser till dokument.

  • GET /Api/Applications/CollectedCandidateInformation: Hämtar eventuell ytterligare specifik information som samlats in om kandidaten under processen via dynamiska fält.

  • GET /Api/Applications/{id}/Document/{documentId}: Hämtar dokument som CV, intyg, personligt brev etc., baserat på dokument-ID från ansökan.

  • GET /Api/Assignments/{id}: Hämtar information om annonsen som kandidaten ansökte till (ID fås från ansökan).

  • GET /Api/HiringCases/{id}: Hämtar information om ärendet som ledde till anställningen (ID fås från annonsen).


4. Synkronisering av organisation och användare

Syfte: Synkronisera organisationsstruktur (konton, avdelningar) och användare mellan Visma Recruit och ett externt system (t.ex. AD, HR-system). Notera: Hantering av kundkonton på högsta nivå sker ofta separat från den löpande synkroniseringen av avdelningar och användare inom ett konto.

Relevanta Endpoints:

  • Konton (Accounts - inom ramen för synk):

    • GET /Api/Accounts/{id}/AccessGroups: Hämtar behörighetsgrupper för ett specifikt konto (kan behövas för kontext vid synkning av användare inom det kontot).

    • POST /Api/Accounts/{id}/SyncRecruiters: Synkroniserar en lista av användare mot ett specifikt konto (skapar/uppdaterar/tar bort baserat på RemoteId). Detta är ofta effektivare än enskilda POST/PUT/DELETE för användare.

    • POST /Api/Accounts/{id}/SimulateSyncRecruiters: Simulerar en synkronisering för ett specifikt konto.

  • Avdelningar (Departments):

    • GET /Api/Departments: Listar avdelningar.

    • POST /Api/Departments: Skapar en ny avdelning.

    • GET /Api/Departments/{id}: Hämtar detaljer för en specifik avdelning.

    • PUT /Api/Departments/{id}: Uppdaterar en befintlig avdelning.

    • DELETE /Api/Departments/{id}: Tar bort en avdelning.

    • GET /Api/Departments/{id}/ContactPersons: Hämtar kontaktpersoner för en avdelning.

    • POST /Api/Departments/{id}/ContactPersons: Skapar en kontaktperson.

    • GET /Api/Departments/{id}/MainProcesses: Hämtar processer kopplade till en avdelning.

    • GET /Api/Departments/{id}/DynamicField: Hämtar dynamiska fält för en avdelning.

    • POST/Api/Departments/{id}/DynamicField: Skapar ett dynamiskt fält.

    • DELETE /Api/Departments/{id}/DynamicField/{dynamicFieldId}: Tar bort ett dynamiskt fält.

  • Användare (Recruiters - oftast via SyncRecruiters, men enskilda anrop finns):

    • GET /Api/Recruiters: Listar användare (kan filtreras på avdelning).

    • POST /Api/Recruiters: Skapar en ny användare.

    • GET /Api/Recruiters/{id}: Hämtar detaljer för en specifik användare.

    • PUT /Api/Recruiters/{id}: Uppdaterar en befintlig användare.

    • DELETE /Api/Recruiters/{id}: Tar bort (inaktiverar oftast) en användare.

    • GET /Api/Recruiters/{id}/AccessGroups: Hämtar rättighetsgrupper för en användare.

    • POST /Api/Recruiters/{id}/AccessGroups: Kopplar en rättighetsgrupp till en användare.


5. Skapa ärende

Syfte: Skapa ett nytt ärende och eventuellt en tillhörande annons från ett externt system.

Relevanta Endpoints:

  • POST /Api/HiringCases: Skapar ett nytt ärende. Detta är den centrala endpointen för detta use case. Kräver information som ansvarig rekryterare, avdelning, titel, antal jobb etc.

    • Beroenden: Du kan behöva hämta ID:n först via:

      • GET /Api/Departments: För att få departmentId.

      • GET /Api/Departments/{id}/MainProcesses: För att få mainProcessId.

      • GET /Api/Recruiters: För att få ID för responsibleRecruiter och eventuella additionalRecruiters.

  • POST /Api/Assignments: Skapar en ny annons som kopplas till ett ärende (via hiringCaseId). Detta görs ofta i samband med eller efter att ärendet skapats.

    • Beroenden: Kräver hiringCaseId från det skapade ärendet. Kan också kräva ID:n för kontaktpersoner:

      • GET /Api/Departments/{id}/ContactPersons: För att få ID:n till kontaktpersoner.

  • PUT /Api/HiringCases/{id}: Kan användas för att uppdatera ärendet efter att det skapats (t.ex. lägga till mer information).

  • PUT /Api/Assignments/{id}: Kan användas för att uppdatera annonsen efter att den skapats.

  • GET /Api/HiringCases/{id}: Kan användas för att verifiera att ärendet skapades korrekt och hämta dess ID och detaljer.

  • GET /Api/Assignments/{id}: Kan användas för att verifiera att annonsen skapades korrekt.

Fick du svar på din fråga?