Account aanmaken op Visma Developer Portal
De Visma Developer portal is te bereiken via
https://oauth.developers.visma.com/service-registry/home
en maak via Create account een account aan
De portal zal via do.not.reply@mail.connect.visma.com je een e-mail sturen met een Activatie account link.
Gebruik bij het registreren het Kvk-nummer als Organization number
Startscherm na inloggen
Desgewenst kun je een collega toevoegen via My team en New member. Jullie hebben dan beiden inzicht in de gegevens van de applicatie.
De volgende stap is het aanmaken van een applicatie.
Een applicatie aanmaken
Door een applicatie aan te maken ontstaat er een API Key en een Secret Key die je gebruikt om de authenticatietoken op te halen.
Kies via het tabblad My Applications voor Add Application
Als application type selecteer Service, dit is het enige type wat door Visma|Raet wordt ondersteund.
Het aanmaken van de applicatie gaat via vier tabbladen, vul de gegevens in op het eerste tabblad Details. Weet dat de opgegeven Client Id wordt gebruikt als API key bij de API-aanroepen.
Je moet zelf de Client Id opgeven.
Testomgeving - Het is tevens mogelijk om gebruik te maken van onze sandbox. Met deze sandbox kun je testen. De applicatie voor de productieomgeving kan ook gekoppeld worden aan de sandbox. Maak hiervoor een 2e Invitation code aan (deze stap wordt later toegelicht).
Via deze applicatie met bijbehorende Client Id en Secret krijg je toegang de data en of bestanden uit de Youforce/HRCoreOnline-omgeving(en). Eén API key-set kan toegang geven tot meerdere klantomgevingen.
Via de Tenant Id die je als Header meestuurt bij het aanvragen van een authenticatie token bepaal je de benodigde klantomgeving.
Access Token Lifetime mag op de default waarde blijven staan. Een aanpassing van deze waarde heeft geen effect op werking van de API, alsmede de opties Include JSON Web Token ID en TestApplication.
Gebruik eerst Save as a draft om vervolgens de applicatie aan te maken via Create, via Next ga je naar het volgende tabblad.
Het tabblad Credentials stelt je in staat om de API Secret aan te maken. Let op, de Secret waarde wordt alleen getoond via de pop up bij het aanmaken, dus neem dit direct over. De pop up toont ook je eerder gekozen ID (API key).
Let op: Wordt de bestaande secret vergeten dan dien je een nieuwe aan te maken, deze wordt dan toegevoegd.
Via het tabblad Integrations selecteer de gewenste Youforce API, oftewel je ‘basis’ API, je gebruikt hiervoor New integration.
Visma Raet zal de opgegeven API’s goedkeuren. Dit gaat via een workflow in de portal, je hoeft daar niks voor te doen. De goedkeuring door Visma Raet kan enkele dagen duren en zolang de goedkeuring niet is verleend kan je de stap van de Visma App Store niet uitvoeren.
Per API dien je de Scope te selecteren welke gebruikt gaat worden in de applicatie. Op deze manier kun je bepaalde functionaliteiten (endpoints) binnen de Youforce API uitsluiten van je applicatie. Je kunt vanzelfsprekend ook alle Scopes selecteren, een API kan ook bestaan uit 1 Scope.
Het tabblad Integrations kan je niet direct bevestigen via Save, dat kan pas op het moment dat Visma|Raet de gekozen API’s bij de applicatie heeft goedgekeurd, dit gaat via een flow je hoeft hier niks voor te doen. De goedkeuring door Visma Raet kan enkele dagen duren en zolang de goedkeuring niet is verleend kan je de stap van de Visma App Store niet uitvoeren.
Je kan door te klikken op stap ‘Visma App store’ naar de laatste stap (mits Visma Raet de API('s) heeft goedgekeurd).
Tabblad Visma App Store, op dit moment stellen wij de Visma App Store niet ter beschikking aan onze klanten.
Voor toegang tot de klantdata genereer je een Invitation Code. Hoe je dit doet staat hieronder verder uitgelegd. Visma Raet zal de toegang tot de klant-data goedkeuren en dan direct de koppeling van klantdata aan je applicatie gereedmaken.
Na Start setup for Visma App Store ziet u onderstaand scherm en dan kies je bij Access level - Audience voor Invite only
Vul ook de url in waar uw product is uitgelegd.
Je bent nu klaar met het aanmaken van de applicatie, de optie Save wordt zichtbaar op het moment dat Visma Raet de applicatie heeft goedgekeurd, je kunt het aanmaken sluiten door bijvoorbeeld op Back to my Applications te klikken.
Wanneer Visma Raet de goedkeuring heeft verleend, ontvang je hier een e-mail van en kun je de volgende stap uitvoeren door de applicatie te koppelen aan klant-data. Dit staat uitgelegd in het volgende hoofdstuk ‘Invitatiecode aanmaken’.
Invitatiecode aanmaken
Met een invitatiecode maak je het mogelijk de klantgegevens op te halen via je applicatie.
Ga naar de Developer Portal https://oauth.developers.visma.com/service-registry/home
Kies voor My Applications. En klik op het potloodje achter de applicatie (Edit).
Kies voor het tabblad Visma App Store. En vervolgens New Invitation Code.
Bij Invitation description vul je de naam van de betreffende klant in. En klik vervolgens op Generate.
Visma Raet zal de toegang tot de klant-data goedkeuren en dan direct de koppeling van klantdata aan je applicatie gereedmaken.
Binnen het beheer van je applicatie en het scherm Integrations is via de tabblad Tenants (default wordt het tabblad Scopes getoond) terug te zien welke klanten (tenants) gekoppeld zijn aan je applicatie. Dit scherm laat ook de bijbehorende TenantID zien. De TenantID is benodigd bij het opvragen van de authenticatie token.
Voorbeeld van een Tenant ID
Testomgeving - Het is tevens mogelijk om gebruik te maken van onze sandbox. Met deze sandbox kun je testen. De applicatie voor de productieomgeving kan ook gekoppeld worden aan de sandbox. Maak hiervoor een Invitation code aan en deel die met Visma Raet.
Youforce Developer Portal gaat offline
Onze producten en oplossingen worden beter wanneer ze verbinding maken met een ecosysteem van geweldige andere oplossingen. Mede daarom heeft Visma Raet besloten aan te sluiten bij het Visma Developer Portal.
De basic api heeft de status Controlled Available en is enkel nog beschikbaar in overleg met Visma Raet.
De Basic API beschikt over een autorisatie mechanisme waarmee bepaald kan worden tot welke medewerkers en datasets een extern systeem toegang heeft.
Het autorisatie mechanisme bestaat uit de volgende onderdelen:
Autorisatie op basis van API scopes Door het activeren van scopes kunnen externe systemen toegang krijgen tot één of meerdere endpoint en dataset. De scopes zijn vooraf door Visma Raet bepaald en omvatten één of meerdere endpoints, dataset en/of acties.
Autorisatie op medewerkers Met behulp van autorisaties filters kan worden bepaald welke medewerkers in de API beschikbaar komen.
Met dit document willen wij u informeren over de mogelijkheden van deze autorisatievormen in de API. Beide autorisatie mechanismes moeten door een consultant ingericht worden.
Autorisatie op basis van API scopes In de Visma developer portal zijn per API één of meerdere scopes gedefinieerd. Door het activeren van deze scope krijgt een extern systeem toegang tot één of meerdere endpoint en/of data set. Binnen de API worden de volgende scopes onderscheiden.
Scope
Omschrijving
Endpoints
Get_Basic
Get basic data zoals medewerker- & organisatiedata
GET persons GET employments GET organizationUnits GET roleAssignments GET jobProfiles
GetPrivateContactDetails
Voegt de privé contactgegevens aan de endpoint Person & Employee, zoals post- en woonadres, telefoonnummer vast & mobiel en het email adres.
GET persons
Dit betreft de volgende gegevens: ADRESGEVENS
Home:
P01014 straatnaam P01016 Huisnummer P01018 Huisnummer toev P01020 Postcode P01022 Plaatsnaam P01024 Land
Postal:
P00365 straatnaam P00367 huisnummer P00368 huisnummer toev P00313 postcode P00308 plaatsnaam P00847 land
TELEFOONNUMMERS
Home: P01027 - telefoonnr woonadres Mobile : P01036 - Telefoonnr mobiel
EMAILADRES
Prive: P01034 - E-mail adres privé
Uw consultant kan u helpen bij het activeren / deactiveren van deze scopes binnen de API.
Autorisatie op basis van autorisatie filters
De autorisatie filters hebben betrekking op welke medewerkers zichtbaar zijn in de API. Standaard worden altijd alle medewerkers getoond in de API. Bij het activeren van de API kan een consultant filters inrichten zodat maar een beperkte groep medewerkers via de API beschikbaar komen.
Filteren in de API is mogelijk op de volgende Beaufort velden:
P01102- Soort Arbeidsrelatie
P01103- Opdrachtgever
P01104- Instelling
P01110 - Code doelgroep
P05046 - Selectierubriek Basic API
Een veel voorkomen filter is bijvoorbeeld op Soort Arbeidsrelatie waarbij alleen eigen medewerkers in het extern systeem opgenomen worden. Maar ook een filter op de combinatie Opdrachtgever / Instelling geeft u de mogelijkheid om de medewerkers van één of meerdere specifieke instellingen in de API op te nemen.
Uw consultant kan u helpen bij het inrichten of wijzigen van de autorisatie filters.
De Basic api heeft de status Controlled Available en is enkel nog beschikbaar in overleg met Visma Raet.
Domein model
De Basic api bevat uitsluitend de basis medewerker- en organisatiegegevens. Middels deze API hebben externe systemen inzicht in de organisatiestructuur en de huidige medewerker.
Het model
Entiteiten en velden
Person (Persoon)
Id / personId
Technical and unique id. the Id is unique within the entity and tenant. The id is owned by the core system and can not changed by a user
P01001 - Persoonsnummer
PersonCode
The logical code or number of the employee.
P01001 - Persoonsnummer
Initials
The initials of the employee. Format depends
P00303 - Voorletters
firstNames
The official given names of the employee as stored in the HR Core system
P01002 - Voornamen
KnownAs
The name which is used by the employee as his first name
P01003 - Roepnaam
lastNameAtBirth
The last name at birth of the employee. Also known as the family name
P00301 - Geboortenaam
lastNameAtBirthPrefix
The prefix of the last name at birth
P00302 - Geboortenaam-voorvoegsels
lastName
The last which is currently used by the employee as his last name
P01008 - Samengestelde naam
lastNamePrefix
The prefix of the last name as used currently
P01009 - Samengestelde naam-voorvoegsels
nameAssembleOrder
Code of the assemble order that the core system uses for the last Name. The assemble order is depending on the core system and the logic behind it.
P00304 - Gebruik achternaam
partnerName
The partner last name
P00390 - Partner-naam
partnerNamePrefix
The prefix of the partner last name
P00391 - Partner-voorvoegsels
titlePrefix
The formal title which will be used as a prefix before the name like Doctor, Professor, et cetera
P00305 - Titulatuur voor de naam
titleSuffix
The formal title which will be used as postfix after the name like MSc or Master of Science
P03937 - Titulatuur achter de naam
gender
Gender of the person conform the ISO/IEC 5128 standard (0) Not known (1) Male (2) Female (9) Not applicable
P00330 - Geslacht M = Man / Male V = Vrouw / Female
dateOfBirth
Date of Birth
P00321 -Geboorte datum
deceased
Indicated if the employee deceased Note: most core systems have a date field. In the API this will be translated to boolean
P01005 - Datum overlijden
UserUID
Digital Identity of the user from the portal
PORTAL : Ping ID
emailAddresses
List of the email addresses of the employee. The fields are: type like Business, Private, etc. address
Business: P01035 - E-mail adres werk Private: P01034 - E-mail adres prive
phoneNumbers
list of phone numbers of the employee type like Business, Home, Mobile, et cetera number
Home: P01027 - telefoonnr woonadres Mobile : P01036 - Telefoonnr mobiel Business :P01037 - Telefoonnr werk FaxBusiness : P01039 Faxnr werk FaxHome : P01038 Faxnr prive
Addresses
list of addresses of the employee. The address fields are: addressType like Home, Post, etc. streetName Number streetNumberAdditional postalCode city country
Home: P01014 straatnaam P01016 Huisnummer P01018 Huisnummer toev P01020 Postcode P01022 Plaatsnaam P01024 Land Postal: P00365 straatnaam P00367 huisnummer P00368 huisnummer toev P00313 postcode P00308 plaatsnaam P00847 land
Employment (Dienstverband)
Id / employmentId
Technical and unique id. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
Object Id = "PersonCode" + ContractCode
PersonCode / PersonId
Person code to which the employment is related
P01001 - Persoonsnummer
employmentCode / ContractCode / ContractId
Code of the contract
P01101 - volgnr dienstverband
PayrollClientCode
Logical code of the payroll client. Filter option for Row Authorisation (configuration API)
[P01103 Opdrachtgever]
PayrollInstitutionCode
Logical code of the payroll Institution. Filter option for Row Authorisation (configuration API)
[P01104 Instelling]
hireDate
The hire date of the employment
P00322 - Datum in dienst
dischargeDate
The end date or discharge date of the employment. This is always an "up to and including" date. In unknown the field will not be visible in the API
P00830 - Datum uit dienst
originalHireDate
The first hire date of original hire date of an employee within the organization. This date is important for the tenure or working anniversary of an employee
P00834 -Datum in dienst CAO
employmentType
Type of employment like Internal employee, contractor, "Wachtgelder" Filter option for Row Authorisation (configuration API)
P01102 - Soort arbeidsrelatie
contractType
Type of the contact like indefinite period ('Onbepaalde tijd') or given time ('bepaalde tijd')
P08259 - Code contract (on)bepaalde tijd
jobProfile
Official job title or job profile of the employment. The Job profile contains the following details: shortName: Code or short name of the job profile
P01107 - Primaire functie
classification
group or classification of the employment. Generic field Filter option for Row Authorisation (configuration API)
P01110 - Code doelgroep
organizationUnit
organization unit Id of employment. The Id is a reference to the entity org units
P01106 - Hierarchische org. eenheid
workingAmount
Work amount of employment. amountOfWork: the amount of work unitOfWork: Unit of work that specifies the amount of work like "hours", "days", et cetera periodOfWork: Period of work like "week" or "month" parttimePercentage
P01109 - Uren per week P00404 percentage deelbetrekking
Organisation unit (Organisatie-eenheid)
id
Technical and unique id of the organization Unit. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
ID
shortName
Code or short name of the organizational unit
OE Code
fullName
Name of the organization unit
OE naam
parentOrgUnit
reference to the parent organizational unit. Empty means that it is organizational unit on the highest level in the company
ParentID
organisationUnitTpe
Type of the organization Unit
address
Address of the organisation Unit - Address - street - number - numberAdditional - postalCode - city
OE Adres
costCenter
default cost center of the organisation unit.
Kostenplaats
IsBlocked
Indicates if the Organization unit is block for adding new employees. note: it is possible there are still employee referring to this Org Unit.
blocked/inactive
Role assignment (roltoewijzing)
id
Technical and unique id of the role assigment. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
object ID
PersonID / personCode
Technical ID of the Person
Persoonsnummer
shortName
Short name of the role the person will have for this organization, like Manager, HR Professional, Director.
P01062 - Rol
organisationUnit
Id of the organisation Unit
P01061 - Operationele org.eenheid
startDate
Start date from which the role assignment is valid for that employee
P01063 - ingangsdatum roltoewijzing
endDate
end date until when the role assignment is valid
P01064 - einddatum roltoewijzing
Job profile (functie)
id / shortName
Unique id of the Job profile. the Id is unique within the entity and tenant.
P02301 - Code functie
fullName
Name of the Job Profile
P02302 - Omschrijving functie
jobFamily
Job family to which the job profile belongs
P02305 - Code Functiegroep
User (Youforce user account)
Id / UserUID
Ping Id or User Id which be used for the SSO solution of Visma Raet
Ping ID
SourceId
Youforce user name
Gebruikersnaam
IdentityId
Identity of the user on the local network
Identity