Swagger documentation
The following swagger pages gives an overview of the endpoint:
IAM User endpoint
User endpoint
The user endpoint supports the retrieval of users and to set an identity for a user, the following methods are supported as part of the users endpoint.
https://api.youforce.com/iam/v1.0/users
GET
Allows retrieving a single employee based on employeeId for the tenant specified in the request header.
https://api.youforce.com/iam/v1.0/users(employeeId=12345)
Supports the following parameter as part of the resource path:
employeeId - The unique id assigned to an employee
Returns a 200 OK when successful
PATCH
Allows to update or set an identity for a specific user based on employeeId for the tenant specified in the request header.
https://api.youforce.com/iam/v1.0/users(employeeId=12345)/identity
Supports the following parameters as part of its request body:
id - Ping Id of the employee which is to be used for SSO
{
"id": "user@customer.com"
}
Returns a 204 No content when successful
Visibility of the change in Youforce portal
Please note that updating the identity through this endpoint
will update the identity in the Youforce authentication system
will NOT show the values in Youforce portal
Our authentication system is not running on the same service as the portal UI. The synchronization is just one way:
Changes done in the authentication system direct will not reflect in the Youforce portal UI
Changes done in this UI will reflect in the authentication system
This will be addressed in future, when we merge the two services.
Datamapping
Parameters
Description
Example
Data type
employeeId
The unique id assigned to the employee by the HR Core
12345
string
id
User id of the employee used in the Youforce authentication system
c7e230db-2a7f-4ef0-ad1d-9d30e7d94a2f
string
sourceId
Username of the user in the Youforce portal
XX123456
string
identityId
UPN/Identity in the customer authentication system that takes care of authentication Note: Only email format is supported
user@customer.com
string
Visma|Raet maakt nu gebruik van de Developer portal van Visma, een portal waar u API-applicaties kunt aanmaken en beheren. Met deze portal heeft u niet alleen toegang maar hebben uw collega's ook toegang tot de aangemaakte applicaties.
Wat moet u doen om gebruik te maken van de nieuwe portal?
Domain model
The IAM model
Data mapping
Person
The personal details of an employee. This could also contains person without a (active) employment.
HR Core Beaufort: Persoon
id
The globally unique id assigned to an employee
32789
P01001
Persoonsnummer
personCode
The unique id assigned to the employee
32789
P01001
Persoonsnummer
personId
The globally unique id assigned to an employee
32789
P01001
Persoonsnummer
initials
The initials of the employee
A.B.
P00303
Voorletters
firstNames
The official given names of the employee
Amy Beatrice
P01002
Voornamen
knownAs
The name which is used by the employee as first name
Amy
P01003
Roepnaam
lastNameAtBirth
The last name at birth of the employee. Also known as the family name
Vries
P00301
Geboortenaam
lastNameAtBirth Prefix
The prefix of the employee's last name at birth
de
P00302
Geboortenaam voorvoegsels
lastName
The last name used by the employee at present
Vries - Van Eijck
P01008
Samengestelde naam
lastNamePrefix
The prefix of the employee's last name at present
de
P01009
Samengestelde naam voorvoegsel
nameAssemble Order
Code of the assemble order used by the core system for the last name.
C
P00304
Gebruik achternaam
partnerName
The last name of the employee's partner
Eijck
P00390
Partner naam
partnerName Prefix
The prefix of the partner's last name
Van
P00391
Voorvoegsel partner
titlePrefix
Formal title prefix
drs.
P00305
Titulatuur voor de naam
titleSuffix
Formal title suffix
Msc
P03937
Titulatuur achter de naam
gender
Gender of the employee
Female
P00330
Geslacht
dateOfBirth
Date of birth
1986-12-02
P00321
Geboorte datum
deceased
This field indicates if an employee is deceased when false the property is not returned
true
P01005
Datum overlijden
youforceAccount
Indicaties if the person do have a user account
J
P15013
Youforce gebruiker
phoneNumbers
List of phone numbers and types
Home
+3188 123 45 67
P01027
Telefoonnummer woonadres
Business
+3188 345 67 89
P01037
Telefoonnummer werk
Mobile
+316 12 34 56 78
P01036
Telefoonnummer mobiel
emailAddresses
List of email addresses of the employee
Business
b.user@example.com
P01035
E-mail adres werk
Private
p.user@example.com
P01034
E-mail adres privé
Addresses
List of addresses
type
Home
street
Kerkstraat
P01014
Straat
houseNumber
1
P01016
Huisnummer
houseNumber Addition
C
P01018
Huisnummer toevoeging
postalCode
1234 AB
P01020
Postcode
city
Amersfoort
P01022
Woonplaats
country
NL
P01024
Woonland
type
Postal
street
Poststraat
P00365
Straatnaam
houseNumber
1
P00367
Huisnummer
houseNumber Addition
A
P00368
Huisnummer toevoeging
postalCode
1234 AB
P00313
Postcode
city
Amersfoort
P00308
Plaatsnaam
country
NL
P00847
Land
Employments
The employment of the employee. A person can have multiple employments at the same time.
HR Core Beaufort: Dienstverband
employmentCode
The code of the employment
1
P01101
Volgnummer dienstverband
originalHireDate
The first hire date or original hire date of an employee within the organization. This date is important for the tenure or working anniversary of an employee
2010-10-01
P00834
Datum in dienst CAO
dischargeDate
The end date or discharge date of the employment. This is always an "up to and including" date. In case of no values the field will not be returned as part of te response body
2018-12-31
P00830
Datum uitdienst
hireDate
Date of hire for the employment
2017-05-01
P00322
Datum in dienst
classification
Cost allocation of the employment
123
P01110
Code doelgroep
employmentType
Code of the employment type
4
P01102
Soort arbeidsrelatie
workingAmount
Working amount of the employment.
amountOfWork: numeric value representing the work amount
40
P01109
Uren per week
unitOfWork: unit of work that specifies the unit for the amount
Hours
P01109
Uren per week
periodOfwork: indicates the period for which amountOfWork and unitOfWork are defined
Day
Week
Month
Quarter
P01109
Uren per week
jobProfile
The job profile code
9909
DEV
P01107
Primaire functie
organizationUnit
The organization unit id
1234567
ZKH
P01106
Hiërarchisch organisatorische eenheid
Payroll Client Code
P01103
CEA-nummer
Payroll Institution Code
P01104
Instelling nummer
Company
PayrollClientCode and PayrollInsituationCode combined
Assignments
The possible assignments of an employee for their employment. In example, employee works is assigned to a different department as temporary replacement or to help another department without changing his own employment.
HR Core Beaufort: Inzet
id
Unique id of the role assignment. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
100 1 12 1234 20200923
system field
Unique id of the assignment
personCode
The unique id assigned to the employee
32789
P01001
Persoonsnummer
personId
The globally unique id assigned to an employee
32789
P01001
Persoonsnummer
employmentCode
The code of the employment of the person
1
P01101
Volgnummer dienstverband
startDate
The start date of the assignments
2017-05-01
P01125
Ingang inzet
endDate
The end date of the assignment. This is always an "up to and including" date. In case of no values the field will not be returned as part of te response body
2017-11-30
P01126
Einde inzet
jobProfile
Job title or job profile code of the assignment.
DEV
P01122
Operationele functie
organizationUnit
The organization unit id of the assignment.
PD
P01121
Operationele organisatorische eenheid
workingAmount
Working amount of the employment..
amountOfWork: numeric value representing the work amount
40
P01123
Uren inzet per week
unitOfWork: unit of work that specifies the unit for the amount
Hours
P01123
Uren inzet per week
periodOfwork: indicates the period for which amountOfWork and unitOfWork are defined
Week
P01123
Uren inzet per week
Cost allocation
The cost allocation of an employee. The cost allocations are generated by Beaufort. An employee can multiple cost allocations. Mostly the cost allocation with sequence number 0 or the one with the highest percentages is the main cost allocation.
HR Core Beaufort: Loonverdeling
id
Unique id of the cost allocation. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
32789 1 0
system field
Unique id of the assignment
PersonCode
The unique id assigned to the employee
32789
Persoonsnummer
employmentCode
The code of the employment of the person
1
Dienstverband volgnummer
sequenceNumber
Unique sequence number or row number of the cost allocation within the employee
0
P01131
regelnummer loonverdeling
costTypeCode
code of the cost type
4004
P01133
Kostensoort loonverdeling
CostTypeName
full name of the cost type
Loonkosten
Omschrijving kostensoort (referentie tabel)
costCenterCode
code of the cost center
4000
P01134
Kostenplaats loonverdeling
costCenterName
full name of the cost center
KNO Operaties
Omschrijving kostenplaats (referentie tabel)
costUnitCode
code of the cost unit
4100
P01135
Kostendrager loonverdeling
costUnitName
full name of the cost unit
KNO
Omschrijving kostendrager (referentie tabel)
percentage
percentage of the cost allocation
100
P01132
loonverdeling loonverdeling
Organization Units
The organization structure describes the organization in terms of business unit, departments, divisions, etc. and how these are related to each other. Based on the organization structure it's clear “how” units are related and "which" department is responsible for "what".
HR Core Beaufort: Organisatie eenheden
validFrom
The date from which the record is valid
2020-04-01
N/A
Data niet beschikbaar in de API
validUntil
The date from which the record is no longer valid.
Will contains a default date in case no “end date“ has been defined for the record.
2020-05-01
9999-12-31
N/A
Data niet beschikbaar in de API
id
Unique id of the organization unit
PD
P01061
Code organisatorische eenheid
shortName
Code or short name of the Organization Unit
PD
P01061
Code organisatorische eenheid
fullName
Name or full title of the Organization Unit
Product Development
Naam organisatorische eenheid
parentOrgUnit
Code of the parent organization unit
PD_EU
Organisatie eenheid > Onderdeel van
organizationUnitType
Type of organization unit
Divisie
Type organisatorische eenheid
Role Assignments
The role assignment describes "who" is responsible for “what“ and “when“ within the organization unit.
HR Core Beaufort: Rol toewijzing
validFrom
The date from which the record is valid
2020-04-01
N/A
Data niet beschikbaar in de API
validUntil
The date from which the record is no longer valid.
Will contains a default date in case no “end date“ has been defined for the record.
2020-05-01
9999-12-31
N/A
Data niet beschikbaar in de API
id
Unique id of the role assignment. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
R1 - N/A
BO4 - 78000 1877 MGR 20200101
Id van het record
personId
The unique id assigned to the employee
10017
Persoonsnummer van de houder van de rol
organizationUnit
The organization unit id of the assignment.
459
Code van organisatorische eenheid
shortName
The code of the role
MGR
Code van de rol
personCode
The code of the person
12345
Persoonsnummer van de houder van de rol (gelijk aan personID)
startDate
Start date of role assignment
2013-04-17
N/A
Data niet beschikbaar in de API
endDate
End date of role assignment
2020-01-31
N/A
Data niet beschikbaar in de API
Job Profiles
All job profiles that have been defined within the tenant.
HR Core Beaufort: Functie
shortName
Code or short name of the Job Profile
SE
Functie code
fullName
Name or full title of the Job Profile
Software Engineer 5
Functie omschrijving
jobFamily
Code or short name of the Job Family
PD5
Functie groep code
validFrom
The date from which the record is valid
2020-04-01
Data niet beschikbaar in de API
validUntil
The data from which the record is no longer valid. Contains a default date in case no “end date“ has been defined for the record.
9999-12-31
2020-05-01
Data niet beschikbaar in de API
Swagger documentation
The following swagger pages gives an overview of the endpoint:
Learning API
Filters
Person endpoint
The person endpoint supports the following query string parameters
Parameter
Description
changedAfter and
changedUntil
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.raet.com/learning/v1.0/persons?changedAfter=2020-06-01T00:00:01.000Z&changedUntil=2020-06-30T00:00:01.000Z
Employee endpoint
The employee endpoint supports the following query string parameters
Parameter
Description
personCode
Returns a list of employee records filtered by personId
https://api.youforce.com/learning/v1.0/employees?personCode=191166
personId
Returns a list of employee records filtered by personId
https://api.youforce.com/learning/v1.0/employees?personId=191166
changedAfter and
changedUnil
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.raet.com/learning/v1.0/employees?changedAfter=2020-06-01T00:00:01.000Z&changedUntil=2020-06-30T00:00:01.000Z
Employment endpoint
The employee endpoint supports the following query string parameters
Parameter
Description
personCode
Returns a list of employment records filtered by personId
https://api.youforce.com/learning/v1.0/employments?personCode=191166
personId
Returns a list of employment records filtered by personId
https://api.youforce.com/learning/v1.0/employments?personId=191166
changedAfter and
changedUnil
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.raet.com/learning/v1.0/employments?changedAfter=2020-06-01T00:00:01.000Z&changedUntil=2020-06-30T00:00:01.000Z
Cost allocation endpoint
The cost allocation endpoint supports the following query string parameters
Parameter
Description
Id
Returns the cost allocation by id
https://api.youforce.com/learning/v1.0/costAllocations /100028%201%200
Organization unit endpoint
The organizationUnits endpoint supports the following query string parameters
Parameter
Description
shortName
Returns a list of all organizationUnit records filtered by shortName
https://api.youforce.com/learning/v1.0/organizationUnits?shortName=1010A
changedAfter and
changedUnil
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.raet.com/learning/v1.0/organizationUnits?changedAfter=2020-06-01T00:00:01.000Z&changedUntil=2020-06-30T00:00:01.000Z
Role assignment endpoint
The roleAssignments endpoint supports the following query string parameters
Parameter
Description
personId
Returns a list of all role assignment records filtered by personId
https://api.youforce.com/learning/v1.0/roleAssignments?personId=1010A
shortName
Returns a list of all role assignment records filtered by shortName
https://api.youforce.com/learning/v1.0/roleAssignments?shortName=MGR
changedAfter and
changedUnil
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.raet.com/learning/v1.0/roleAssignments?changedAfter=2020-06-01T00:00:01.000Z&changedUntil=2020-06-30T00:00:01.000Z
Job profile endpoint
The jobProfiles endpoint supports the following query string parame
Parameter
Description
shortName
Returns a list of all jobProfile records filtered by shortName
https://api.youforce.com/learning/v1.0/jobProfiles?shortName=1010A
changedAfter and
changedUnil
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.raet.com/learning/v1.0/jobProfiles?changedAfter=2020-06-01T00:00:01.000Z&changedUntil=2020-06-30T00:00:01.000Z
Pagination of the result set
To reduce the load of an endpoint each endpoint supports paging. If the results of an endpoint contain more than 500 records, the results set will end with a nextLink tag. The nextLink indicates that there are more pages to load. If there is no nextLink at the end of the page, it means that it’s the last page of the result set. The default value is 500 records, but it is possible to use less than that.
Hieronder een voorbeeld waarbij 125 records per pagina wordt opgehaald.
GET https://api.youforce.com//iam/v1.0/persons?take=125
In de nextLink wordt deze page size overgenomen, zodat ook de vervolg pagina's maximaal 125 records bevat.
U kunt een page size tot maximaal 1000 records opvragen.
Delete a record
After a record is deleted in the core system, the API will return the record with his id and the flag isDelete = true.
This delete means that the whole record including all version are delete.
For example
{ "id": "907624",
"isDeleted": true,
"shortName": "907624"
}
Domain model
The Learning model
Data mapping
Employee person details
attribute
description
HR Core Beaufort
id
Unique id for the Person row within the tenant
P01001 - Persoonsnummer
personId
Unique id for the Person row within the tenant
P01001 - Persoonsnummer
personCode
The logical person code of the employee
P01001 - Persoonsnummer
Initials
The initials of the employee.
P00303 - Voorletters
firstNames
The official given names of the employee as stored in the HR Core system
P01002 - Voornamen
KnowAs
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 assembly 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. Supported values are Male / Female. Note: other type of genders will be shown as Not Known
P00330 - Geslacht Mapping details: M → Male V, F → Female
Other values will shown as Not Known
birthDate
Date of birth
P00321 -Geboorte datum
deceased
Indicated if the employee deceased
Based on the date of deceased. If the employee is deceased the boolean is set to True 0302568 - Datum overlijden
UserUID
Digital Identity of the user from the portal
Ping ID directly from the portal
emailAddresses
type
address
List of the addresses of the employee. The fields are:
type like Business, Private, et cetera
address
Business: P01035 - E-mail adres werk Prive: P01034 - E-mail adres prive
Addresses
type
street
houseNumber
houseNumberAdditional
locationDesignation
postalCode
city
region
country
List of the addresses of the employee. The fields are:
type like Home, Post, et cetera
street name
house number
house number additional
Location designation
Postal code
City
Region
Country code
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
phoneNumbers
type
number
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
Employee employment details
HR Core Beaufort
hireDate
The hire date of the employment
P00322 - Datum in dienst
dischargeDate
The end date or discharge date of the employment.
P00830 - Datum uit dienst
originalHireDate
The first hire date or original hire date of an employee within the organization.
P00834 -Datum in dienst CAO
employmentType
Type of employment with a short name for type like Internal employee, contractor, "Wachtgelder"
P01102 - Soort arbeidsrelatie
jobProfile
job profile code of the employment The job profile is a code that refers to the entity job profile
P01107 - Primaire functie
organizationUnit
organization unit of employment. The organization unit is a code that refers to the entity organization units
P01106 - Hierarchische org. eenheid
workingAmount
amountOfWork
unitOfWork
periodOfWork
Work amount of employment.
The amount of work
Unit of work that specifies the amount of work like "hours", "days", et cetera
Period of work like "week" or "month"
amount of work = P01109 - Uren per week*
*Beaufort supports only the amount of work in "hours" a "week"
contractType
Contract type of the employee. It is the code that refers to the entity contract type.
P08259 - Code contract (on)bepaalde tijd
classification
Classification of the employee. It is the code that refers to the entity Classification.
P01110 - Code doelgroep
Payroll Client Code
P01103 - CEA-nummer
Payroll Institution Code
P01104 - Instelling nummer
Company
PayrollClientCode and PayrollInsituationCode combined
Cost allocations
Id
Unique id of the cost allocation. the Id is unique within the entity and tenant. The id is generated by the system and can not changed by a user.
Unique id of the cost allocation row
PersonCode
The unique id assigned to the employee
Persoonsnummer
employmentCode
The code of the employment of the person
Dienstverband volgnummer
sequenceNumber
Unique sequence number or row number of the cost allocation within the employee
P01131 -regelnummer loonverdeling
costTypeCode
code of the cost type
P01133 - Kostensoort loonverdeling
CostTypeName
full name of the cost type
Omschrijving kostensoort (referentie tabel)
costCenterCode
code of the cost center
P01134 -Kostenplaats loonverdeling
costCenterName
full name of the cost center
Omschrijving kostenplaats (referentie tabel)
costUnitCode
code of the cost unit
P01135 - Kostendrager loonverdeling
costUnitName
full name of the cost unit
Omschrijving kostendrager (referentie tabel)
percentage
percentage of the cost allocation
P01132 - loonverdeling loonverdeling
Organisation units
Attribute
Description
HR Core Beaufort
id
Technical ID of the organisation unit
Technical id from Beaufort
shortName
548 - code OE
ShortName
fullName
549 - Naam OE
FullName
parentOrgUnit
technical id of the parent Org unit
technical id of the parent Org unit
organizationUnitType
type or organisation unit code
orgUnit Type
isBlocked
True of false
Address
PhoneNumber
CostCenterCode
Role assignment
Attribute
description
HR Core Beaufort
id
Technical id of the organisation unit
Technical id from Beaufort
OrganizationUnitId
logical code of the organization unit
P01061 - Operationele org.eenheid
roleCode
Name of the organisation Unit
P01062 - Rol
personCode
reference to the person
Reference to Person code
personID
reference to the person
Reference to Person ID
startDate
start date of the role assignment
startDate
endDate
endDate
Job Profile
Attribute
Description
HR Core Beaufort
shortName
Job profile code or short name
functie code
fullName
Job profile name
functie naam
JobFamily
Job family code
functiegroep code
Veel arbodiensten gebruiken een eigen systeem om terugkoppelingsdocumenten op te stellen. Deze documenten zijn bedoeld voor betrokkenen binnen de klantorganisatie.
Om deze terugkoppelingsdocumenten ook in Verzuim Management beschikbaar te krijgen, is het nodig om deze documenten handmatig in te voeren. Dit leidt echter tot dubbele invoer van de documenten en is bovendien foutgevoelig. Om deze dubbele invoer én eventuele fouten te voorkomen, is de SIVI documenten interface ontwikkeld.
Bij gebruikmaking van SIVI documenten leveren de arbodiensten de bestanden geautomatiseerd aan Visma Raet, via een beveiligde verbinding. Deze bestanden worden gekoppeld aan in Verzuim Management bestaande acties die zijn ingericht met een verwijzing naar de Identificatie document soort van SIVI.
Het aanleveren van de bestanden aan Visma Raet gebeurt via onze File API, de werking van de File API is hier gedocumenteerd. De pagina Getting Started beschrijft hoe je een access token opvraagt en via Publishers/Multipart upload staat de API call beschreven die zorgt voor de upload.
Het bestand is het door SIVI voorgeschreven (XML)format versie 2020, de XML-bestandsnaam moet bij insturen via de File API voldoen aan het volgende formaat:
DO-XXXXXXXXXXXXXXX_YYYYMMDDHHMMSSFFF.xml
of
DO-XXXXXXXXXXXXXXX_YYYYMMDDHHMMSSFF.xml
of
DO-XXXXXXXXXXXXXXX_YYYYMMDDHHMMSS.xml
Toelichting:
Onderdeel
inhoud
DO-
Vaste waarde
XXXXXXXXX
Vrij in te vullen waarde. Variabel, minimaal 1 positie, maximaal 160 posities. Toegestane waarden:
alfa numeriek: A-Z, a-z, 0-9.
punten.
spaties
_
Vast waarde, scheidingsteken
YYYY
Jaar, 4 posities
MM
Maand, 2 posities
dd
Dag, 2 posities
HH
Uur, 2 posities
MM
Minuut, 2 posities
SS
Seconden, 2 posities
FF of FFF
Milliseconden 0, 2 of 3 posities
.xml
Vaste waarde, extensie
Voorbeelden:
DO-Tussentijdse evaluatie_20180622010203444.xml
DO-Evaluatie n.a.v. gesprek 1_20180622010203444.xml
Om het bestand via een File API-call te versturen naar Visma Raet dient businessTypeID 124000 gebruikt te worden in de call. Dit businessTypeID staat in Youforce voor de SIVI Documenten en dient samen met de bestandsnaam als metadata worden toegevoegd aan de API call. Een voorbeeld van de API-call:
Je kan de upload testen door gebruik te maken van onderstaande API-credentials
API Key: pahzdNYNX1TNnhvKZ7sbG9SzcvwxA8yy
Secret Key: jQHY0X9mOOzQAxIS
TenantID: 4001401
Met onderstaande variabelen in het SIVI document-XML-bestand:
Hoofd tag
Tag
Inhoud
Opmerking
Voor FileAPI test
<BrAlg>
<IdOntvngr>
“Visma Raet”
Statische waarde
Visma Raet
<Wrkgvr>
<HndlsnmOrg>
[naam arbo dienst]
Door arbodienst in te vullen.
Zelf in te vullen
<Wrkgvr>
<IdWrkgvrArbdnst>
[identificatie van klant]
Verschilt per klant-omgeving.
test12345test
<Document>
<SrtDocumentCd>
Identificatie document soort
Statische lijst zoals in het SIVI format beschreven.
999 staat voor 'Overig'
999
<Document>
<DatDocument>
Creatie datum van het document
Zelf in te vullen
<Document>
<Bestandsnm>
Bestandsnaam
Zelf in te vullen
<Document>
<Datastring>
Document inhoud gecodeerd in Base64 formaat
Zelf in te vullen
<Document>
<Wrknmr>
<IdWrknmr>
Personeelsnummer van werknemer
1945
<Document>
<Dnstvbnd>
<Vrzm>
<DatEerstVrzmdg>
Eerste verzuimdag van het verzuim waar het document aan gekoppeld wordt
2022-05-24
Wanneer de File API een 201 (Created) teruggeeft dan is de upload succesvol geweest, neem met Visma Raet contact op om samen te controleren of het document daadwerkelijk is toegevoegd aan het verzuimdossier van de betreffende medewerker (persoonsnummer 1945, verzuimdossier 24-05-2022), een specifieke bestandsnaam van het document (<Bestandsnm>) helpt bij de controle.
Voorbeeld van het Sivi document XML-bestand:
<?xml version="1.0" encoding="UTF-8"?>
<Documenten xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BrAlg xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020">
<BrCd>00001</BrCd>
<VnrBrCd>00004</VnrBrCd>
<AandatBr>2022-03-17</AandatBr>
<AantijdBr>11:22:09</AantijdBr>
<IdInzndr>ArbodienstX</IdInzndr>
<IdOntvngr>Visma - Raet</IdOntvngr>
<Berrefnr>39989003</Berrefnr>
<TestJN>J</TestJN>
<OntvngstbevJN>N</OntvngstbevJN>
</BrAlg>
<Wrkgvr xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020">
<HndlsnmOrg>RAET SIVI TEST</HndlsnmOrg>
<IdWrkgvrArbdnst>test12345test</IdWrkgvrArbdnst>
<AansltnrGeguitwlngArbdnst>6431</AansltnrGeguitwlngArbdnst>
<Lhnr>999999999999</Lhnr>
</Wrkgvr>
<Document xmlns="http://www.sivi.org/Verzuimmanagement/Documenten/2020">
<IdDocument>39989003</IdDocument>
<DatDocument>2022-03-17</DatDocument>
<SrtDocumentCd>999</SrtDocumentCd>
<SrtDocumentOms>Overig</SrtDocumentOms>
<StatDocumentCd>01</StatDocumentCd>
<KenmerkZendPartij>ArbodienstX</KenmerkZendPartij>
<BestandTypCd>06</BestandTypCd>
<Bestandsnm>Inzetbaarheidsadvies.pdf</Bestandsnm>
<AdresseringCd>01</AdresseringCd>
<Datastring>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Ci9GaXJzdENoYXIgMzIKL0ZvbnREZXNjcmlwdG9yIDExIDAgUgovTmFtZSAvRjEKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0Jhc2VGb250IC9BcmlhbE1UCi9TdWJ0eXBlIC9UcnVlVHlwZQovTGFzdENoYXIgMjMzCi9XaWR0aHMgMTIgMCBSCi9UeXBlIC9Gb250Cj4+CmVuZG9iaiAKMTEgMCBvYmogCjw8Ci9Gb250TmFtZSAvQXJpYWxNVAovU3RlbVYgNDQKL0xlYWRpbmcgMzMKL0FzY2VudCA5MDUKL0ZsYWdzIDMyCi9Gb250V2VpZ2h0IDQwMAovWEhlaWdodCAyNTAKL0Rlc2NlbnQgLTIxMAovQXZnV2lkdGggNDQxCi9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAyNjY1Ci9Gb250QkJveCBbLTY2NSAtMjEwIDIwMDAgNzI4XQovVHlwZSAvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA3MjgKPj4KZW5kb2JqIAo2IDAgb2JqIAo8PAovY2EgMQovQk0gL05vcm1hbAovVHlwZSAvRXh0R1N0YXRlCj4+CmVuZG9iaiAKNSAwIG9iaiAKPDwKL0NBIDEKL0JNIC9Ob3JtYWwKL1R5cGUgL0V4dEdTdGF0ZQo+PgplbmRvYmogCjcgMCBvYmogCjw8Ci9GaXJzdENoYXIgMzIKL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovTmFtZSAvRjIKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0Jhc2VGb250IC9UaW1lc05ld1JvbWFuUFNNVAovU3VidHlwZSAvVHJ1ZVR5cGUKL0xhc3RDaGFyIDExOAovV2lkdGhzIDE0IDAgUgovVHlwZSAvRm9udAo+PgplbmRvYmogCjEzIDAgb2JqIAo8PAovRm9udE5hbWUgL1RpbWVzTmV3Um9tYW5QU01UCi9TdGVtViA0MAovTGVhZGluZyA0MgovQXNjZW50IDg5MQovRmxhZ3MgMzIKL0ZvbnRXZWlnaHQgNDAwCi9YSGVpZ2h0IDI1MAovRGVzY2VudCAtMjE2Ci9BdmdXaWR0aCA0MDEKL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDI2MTQKL0ZvbnRCQm94IFstNTY4IC0yMTYgMjA0NiA2OTNdCi9UeXBlIC9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDY5Mwo+PgplbmRvYmogCjkgMCBvYmogCjw8Ci9GaXJzdENoYXIgMzIKL0ZvbnREZXNjcmlwdG9yIDE1IDAgUgovTmFtZSAvRjMKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0Jhc2VGb250IC9BcmlhbC1Cb2xkTVQKL1N1YnR5cGUgL1RydWVUeXBlCi9MYXN0Q2hhciAxMTgKL1dpZHRocyAxNiAwIFIKL1R5cGUgL0ZvbnQKPj4KZW5kb2JqIAoxNSAwIG9iaiAKPDwKL0ZvbnROYW1lIC9BcmlhbC1Cb2xkTVQKL1N0ZW1WIDQ3Ci9MZWFkaW5nIDMzCi9Bc2NlbnQgOTA1Ci9GbGFncyAzMgovRm9udFdlaWdodCA3MDAKL1hIZWlnaHQgMjUwCi9EZXNjZW50IC0yMTAKL0F2Z1dpZHRoIDQ3OQovSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMjYyOAovRm9udEJCb3ggWy02MjggLTIxMCAyMDAwIDcyOF0KL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgNzI4Cj4+CmVuZG9iaiAKMyAwIG9iaiAKPDwKL1BhcmVudFRyZWUgMTcgMCBSCi9Sb2xlTWFwIDE4IDAgUgovUGFyZW50VHJlZU5leHRLZXkgMQovSyBbMTkgMCBSXQovVHlwZSAvU3RydWN0VHJlZVJvb3QKPj4KZW5kb2JqIAoxOCAwIG9iaiAKPDwKL0RpYWdyYW0gL0ZpZ3VyZQovSGVhZGVyIC9TZWN0Ci9Xb3Jrc2hlZXQgL1BhcnQKL0Zvb3RlciAvU2VjdAovSW5saW5lU2hhcGUgL1NlY3QKL1NsaWRlIC9QYXJ0Ci9Gb290bm90ZSAvTm90ZQovQW5ub3RhdGlvbiAvU2VjdAovQ2hhcnQgL1NlY3QKL0RpYWxvZ3NoZWV0IC9QYXJ0Ci9FbmRub3RlIC9Ob3RlCi9BcnRpZmFjdCAvU2VjdAovQ2hhcnRzaGVldCAvUGFydAovV29ya2Jvb2sgL0RvY3VtZW50Ci9NYWNyb3NoZWV0IC9QYXJ0Ci9UZXh0Ym94IC9TZWN0Cj4+CmVuZG9iaiAKMTcgMCBvYmogCjw8Ci9OdW1zIFswIDIwIDAgUl0KPj4KZW5kb2JqIAoxOSAwIG9iaiAKPDwKL1AgMyAwIFIKL0sgWzIxIDAgUiAyMiAwIFIgMjMgMCBSIDI0IDAgUiAyNSAwIFIgMjYgMCBSIDI3IDAgUiAyOCAwIFIgMjkgMCBSIDMwIDAgUiAzMSAwIFIgMzIgMCBSIDMzIDAgUiAzNCAwIFIgMzUgMCBSIDM2IDAgUiAzNyAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QYXJ0Cj4+CmVuZG9iaiAKMjEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzBdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMjAgMCBvYmogWzIxIDAgUiAyMiAwIFIgMjMgMCBSIDI0IDAgUiAyNSAwIFIgMjYgMCBSIDM4IDAgUiAzOSAwIFIgMzkgMCBSIDM5IDAgUiA0MCAwIFIgNDEgMCBSIDQxIDAgUiA0MSAwIFIgNDIgMCBSIDQzIDAgUiA0MyAwIFIgNDMgMCBSIDQ0IDAgUiA0NSAwIFIgNDYgMCBSIDQ2IDAgUiA0NiAwIFIgNDcgMCBSIDQ4IDAgUiA0OCAwIFIgNDggMCBSIDQ5IDAgUiA1MCAwIFIgNTAgMCBSIDUwIDAgUiA1MSAwIFIgNTIgMCBSIDUzIDAgUiA1MyAwIFIgNTMgMCBSIDU0IDAgUiA1NSAwIFIgNTUgMCBSIDU1IDAgUiA1NiAwIFIgNTcgMCBSIDU3IDAgUiA1NyAwIFIgNTggMCBSIDU5IDAgUiA2MCAwIFIgNjAgMCBSIDYwIDAgUiA2MSAwIFIgNjIgMCBSIDYyIDAgUiA2MiAwIFIgNjMgMCBSIDY0IDAgUiA2NCAwIFIgNjUgMCBSIDY2IDAgUiA2NyAwIFIgNjcgMCBSIDY3IDAgUiA2OCAwIFIgNjkgMCBSIDY5IDAgUiA2OSAwIFIgNzAgMCBSIDcxIDAgUiA3MSAwIFIgNzEgMCBSIDcxIDAgUiA3MSAwIFIgNzEgMCBSIDcxIDAgUiA3MiAwIFIgMjggMCBSIDI5IDAgUiAzMCAwIFIgNzMgMCBSIDc0IDAgUiA3NCAwIFIgNzQgMCBSIDc1IDAgUiA3NiAwIFIgNzYgMCBSIDc2IDAgUiA3NyAwIFIgNzggMCBSIDc4IDAgUiA3OCAwIFIgNzkgMCBSIDgwIDAgUiA4MSAwIFIgODEgMCBSIDgxIDAgUiA4MiAwIFIgODIgMCBSIDgzIDAgUiA4NCAwIFIgODQgMCBSIDg0IDAgUiA4NSAwIFIgODUgMCBSIDg2IDAgUiA4NyAwIFIgODcgMCBSIDg4IDAgUiA4OCAwIFIgODggMCBSIDg5IDAgUiA5MCAwIFIgOTEgMCBSIDkxIDAgUiA5MSAwIFIgOTIgMCBSIDkzIDAgUiA5MyAwIFIgOTMgMCBSIDk0IDAgUiA5NSAwIFIgOTUgMCBSIDk2IDAgUiA5NyAwIFIgOTggMCBSIDk4IDAgUiA5OCAwIFIgOTkgMCBSIDEwMCAwIFIgMTAwIDAgUiAxMDAgMCBSIDEwMSAwIFIgMTAyIDAgUiAxMDIgMCBSIDEwMiAwIFIgMTAzIDAgUiAzMiAwIFIgMzMgMCBSIDM0IDAgUiAzNSAwIFIgMzYgMCBSIDM3IDAgUl0KZW5kb2JqIAoyMiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyMyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbM10KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbNF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbNV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoyNyAwIG9iaiAKPDwKL1AgMTkgMCBSCi9LIFsxMDQgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVGFibGUKPj4KZW5kb2JqIAoxMDQgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAyNyAwIFIKL0sgWzEwNSAwIFIgMTA2IDAgUiAxMDcgMCBSIDEwOCAwIFIgMTA5IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RCb2R5Cj4+CmVuZG9iaiAKMTA1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA0IDAgUgovSyBbNDQgMCBSIDExMCAwIFIgMTExIDAgUiAxMTIgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAo0NCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNSAwIFIKL0sgMTgKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAoxMTAgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDUgMCBSCi9LIFszOCAwIFIgMzkgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAozOCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExMCAwIFIKL0sgNgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjM5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTEwIDAgUgovSyBbNyA4IDldCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTExIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA1IDAgUgovSyBbNDAgMCBSIDQxIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNDAgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTEgMCBSCi9LIDEwCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNDEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTEgMCBSCi9LIFsxMSAxMiAxM10KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMTIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDUgMCBSCi9LIFs0MiAwIFIgNDMgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo0MiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExMiAwIFIKL0sgMTQKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo0MyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExMiAwIFIKL0sgWzE1IDE2IDE3XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEwNiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNCAwIFIKL0sgWzUxIDAgUiAxMTMgMCBSIDExNCAwIFIgMTE1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RSCj4+CmVuZG9iaiAKNTEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDYgMCBSCi9LIDMxCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTEzIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA2IDAgUgovSyBbNDUgMCBSIDQ2IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNDUgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTMgMCBSCi9LIDE5Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNDYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTMgMCBSCi9LIFsyMCAyMSAyMl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMTQgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDYgMCBSCi9LIFs0NyAwIFIgNDggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo0NyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNCAwIFIKL0sgMjMKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo0OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNCAwIFIKL0sgWzI0IDI1IDI2XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjExNSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNiAwIFIKL0sgWzQ5IDAgUiA1MCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjQ5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE1IDAgUgovSyAyNwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjUwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE1IDAgUgovSyBbMjggMjkgMzBdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTA3IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA0IDAgUgovSyBbNTggMCBSIDExNiAwIFIgMTE3IDAgUiAxMTggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAo1OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNyAwIFIKL0sgNDQKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAoxMTYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDcgMCBSCi9LIFs1MiAwIFIgNTMgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo1MiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNiAwIFIKL0sgMzIKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo1MyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDExNiAwIFIKL0sgWzMzIDM0IDM1XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjExNyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNyAwIFIKL0sgWzU0IDAgUiA1NSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjU0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE3IDAgUgovSyAzNgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjU1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE3IDAgUgovSyBbMzcgMzggMzldCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTE4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA3IDAgUgovSyBbNTYgMCBSIDU3IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNTYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTggMCBSCi9LIDQwCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNTcgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMTggMCBSCi9LIFs0MSA0MiA0M10KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMDggMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDQgMCBSCi9LIFs2NSAwIFIgMTE5IDAgUiAxMjAgMCBSIDEyMSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9UUgo+PgplbmRvYmogCjY1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA4IDAgUgovSyA1NgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjExOSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwOCAwIFIKL0sgWzU5IDAgUiA2MCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjU5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE5IDAgUgovSyA0NQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjYwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTE5IDAgUgovSyBbNDYgNDcgNDhdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTIwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA4IDAgUgovSyBbNjEgMCBSIDYyIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNjEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjAgMCBSCi9LIDQ5Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNjIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjAgMCBSCi9LIFs1MCA1MSA1Ml0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMjEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDggMCBSCi9LIFs2MyAwIFIgNjQgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo2MyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMSAwIFIKL0sgNTMKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo2NCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMSAwIFIKL0sgWzU0IDU1XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEwOSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwNCAwIFIKL0sgWzcyIDAgUiAxMjIgMCBSIDEyMyAwIFIgMTI0IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RSCj4+CmVuZG9iaiAKNzIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDkgMCBSCi9LIDczCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTIyIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTA5IDAgUgovSyBbNjYgMCBSIDY3IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNjYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjIgMCBSCi9LIDU3Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNjcgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjIgMCBSCi9LIFs1OCA1OSA2MF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMjMgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMDkgMCBSCi9LIFs2OCAwIFIgNjkgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo2OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMyAwIFIKL0sgNjEKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo2OSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyMyAwIFIKL0sgWzYyIDYzIDY0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEyNCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEwOSAwIFIKL0sgWzcwIDAgUiA3MSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjcwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI0IDAgUgovSyA2NQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjcxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI0IDAgUgovSyBbNjYgNjcgNjggNjkgNzAgNzEgNzJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMjggMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzc0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjI5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTkgMCBSCi9LIFs3NV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAozMCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbNzZdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMzEgMCBvYmogCjw8Ci9QIDE5IDAgUgovSyBbMTI1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RhYmxlCj4+CmVuZG9iaiAKMTI1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMzEgMCBSCi9LIFsxMjYgMCBSIDEyNyAwIFIgMTI4IDAgUiAxMjkgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEJvZHkKPj4KZW5kb2JqIAoxMjYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjUgMCBSCi9LIFs3OSAwIFIgMTMwIDAgUiAxMzEgMCBSIDEzMiAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9UUgo+PgplbmRvYmogCjc5IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI2IDAgUgovSyA4OQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEzMCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNiAwIFIKL0sgWzczIDAgUiA3NCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjczIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTMwIDAgUgovSyA3NwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjc0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTMwIDAgUgovSyBbNzggNzkgODBdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTMxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI2IDAgUgovSyBbNzUgMCBSIDc2IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKNzUgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzEgMCBSCi9LIDgxCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKNzYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzEgMCBSCi9LIFs4MiA4MyA4NF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMzIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjYgMCBSCi9LIFs3NyAwIFIgNzggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo3NyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMiAwIFIKL0sgODUKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo3OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMiAwIFIKL0sgWzg2IDg3IDg4XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEyNyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNSAwIFIKL0sgWzg5IDAgUiAxMzMgMCBSIDEzNCAwIFIgMTM1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RSCj4+CmVuZG9iaiAKODkgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjcgMCBSCi9LIDEwOAovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEzMyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNyAwIFIKL0sgWzgwIDAgUiA4MSAwIFIgODIgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo4MCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMyAwIFIKL0sgOTAKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo4MSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzMyAwIFIKL0sgWzkxIDkyIDkzXQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjgyIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTMzIDAgUgovSyBbOTQgOTVdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTM0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI3IDAgUgovSyBbODMgMCBSIDg0IDAgUiA4NSAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjgzIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM0IDAgUgovSyA5NgovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjg0IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM0IDAgUgovSyBbOTcgOTggOTldCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKODUgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzQgMCBSCi9LIFsxMDAgMTAxXQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEzNSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyNyAwIFIKL0sgWzg2IDAgUiA4NyAwIFIgODggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo4NiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzNSAwIFIKL0sgMTAyCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKODcgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzUgMCBSCi9LIFsxMDMgMTA0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjg4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM1IDAgUgovSyBbMTA1IDEwNiAxMDddCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTI4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI1IDAgUgovSyBbOTYgMCBSIDEzNiAwIFIgMTM3IDAgUiAxMzggMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAo5NiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyOCAwIFIKL0sgMTIwCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTM2IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI4IDAgUgovSyBbOTAgMCBSIDkxIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKOTAgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzYgMCBSCi9LIDEwOQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjkxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM2IDAgUgovSyBbMTEwIDExMSAxMTJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTM3IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI4IDAgUgovSyBbOTIgMCBSIDkzIDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKOTIgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzcgMCBSCi9LIDExMwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjkzIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM3IDAgUgovSyBbMTE0IDExNSAxMTZdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTM4IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI4IDAgUgovSyBbOTQgMCBSIDk1IDAgUl0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1RECj4+CmVuZG9iaiAKOTQgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMzggMCBSCi9LIDExNwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjk1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM4IDAgUgovSyBbMTE4IDExOV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAoxMjkgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjUgMCBSCi9LIFsxMDMgMCBSIDEzOSAwIFIgMTQwIDAgUiAxNDEgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVFIKPj4KZW5kb2JqIAoxMDMgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxMjkgMCBSCi9LIDEzMwovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEzOSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyOSAwIFIKL0sgWzk3IDAgUiA5OCAwIFJdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9URAo+PgplbmRvYmogCjk3IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTM5IDAgUgovSyAxMjEKL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1NwYW4KPj4KZW5kb2JqIAo5OCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEzOSAwIFIKL0sgWzEyMiAxMjMgMTI0XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjE0MCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDEyOSAwIFIKL0sgWzk5IDAgUiAxMDAgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAo5OSAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE0MCAwIFIKL0sgMTI1Ci9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9TcGFuCj4+CmVuZG9iaiAKMTAwIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTQwIDAgUgovSyBbMTI2IDEyNyAxMjhdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMTQxIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTI5IDAgUgovSyBbMTAxIDAgUiAxMDIgMCBSXQovVHlwZSAvU3RydWN0RWxlbQovUyAvVEQKPj4KZW5kb2JqIAoxMDEgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxNDEgMCBSCi9LIDEyOQovVHlwZSAvU3RydWN0RWxlbQovUyAvU3Bhbgo+PgplbmRvYmogCjEwMiAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE0MSAwIFIKL0sgWzEzMCAxMzEgMTMyXQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjMyIDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTkgMCBSCi9LIFsxMzRdCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMzMgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzEzNV0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAozNCAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMTM2XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjM1IDAgb2JqIAo8PAovUGcgNCAwIFIKL1AgMTkgMCBSCi9LIFsxMzddCi9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9QCj4+CmVuZG9iaiAKMzYgMCBvYmogCjw8Ci9QZyA0IDAgUgovUCAxOSAwIFIKL0sgWzEzOF0KL1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKPj4KZW5kb2JqIAozNyAwIG9iaiAKPDwKL1BnIDQgMCBSCi9QIDE5IDAgUgovSyBbMTM5XQovVHlwZSAvU3RydWN0RWxlbQovUyAvUAo+PgplbmRvYmogCjEyIDAgb2JqIFsyNzggMCAwIDAgMCAwIDAgMCAzMzMgMzMzIDAgMCAyNzggMzMzIDI3OCAyNzggNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiAwIDU1NiAyNzggMCAwIDU4NCAwIDAgMCA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggMCAyNzggNTAwIDY2NyA1NTYgODMzIDcyMiA3NzggNjY3IDAgNzIyIDY2NyA2MTEgMCA2NjcgOTQ0IDAgMCAwIDAgMCAwIDAgMCAwIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2IDU1NiAwIDMzMyA1MDAgMjc4IDU1NiA1MDAgNzIyIDAgNTAwIDUwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2XQplbmRvYmogCjE0IDAgb2JqIFsyNTAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAyNTAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDU2NCAwIDAgOTIxIDcyMiA2NjcgNjY3IDcyMiA2MTEgMCA3MjIgNzIyIDMzMyAzODkgMCA2MTEgODg5IDcyMiA3MjIgNTU2IDAgNjY3IDU1NiA2MTEgNzIyIDAgMCAwIDcyMiAwIDMzMyAwIDMzMyAwIDAgMCA0NDQgMCA0NDQgNTAwIDQ0NCAwIDUwMCA1MDAgMjc4IDAgMCAwIDc3OCA1MDAgNTAwIDAgMCAzMzMgMzg5IDI3OCAwIDUwMF0KZW5kb2JqIAoxNiAwIG9iaiBbMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjExIDAgMCAwIDAgMCA2MTEgODMzIDAgMCAwIDAgMCAwIDAgMCAwIDk0NCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2IDYxMSA1NTYgMCA2MTEgNjExIDI3OCAyNzggNTU2IDI3OCA4ODkgNjExIDYxMSAwIDAgMzg5IDU1NiAzMzMgNjExIDU1Nl0KZW5kb2JqIAoxNDIgMCBvYmogCjw8Ci9SIDMKL1AgLTE4NTIKL08gKHWrmG5uxFnOITeqbmFcXKCuAnccw/R2+L2kqV1cdIhccvhnKQovRmlsdGVyIC9TdGFuZGFyZAovTGVuZ3RoIDEyOAovViAyCi9VICjBoRwhoaepIwH58NjqHiuxAAAAAAAAAAAAAAAAAAAAACkKPj4KZW5kb2JqIAoxNDMgMCBvYmogCjw8Ci9DcmVhdG9yIChu2Jq6Z1V5b+BBXGaHSmy4WVtcKPLG/VxiWSJhmWXjFdaS8LpMBMBcKSRK7mziKQovVGl0bGUgKNtV84MOTxpkhRNqnSR8zF8+Y9LXk4Y0bQarXHTlf8/68d5cdGrSRX0grBjuKQovQXV0aG9yICjVVfOcKQovUHJvZHVjZXIgKG7YmrpnVXlv4EFcZodKbLhZW1wo8sb9XGJZImGZZeMV1pLwukwEwFwpJErubOIpCi9Nb2REYXRlICjUHajHVQ5JP9EEPdl4LYgPcH7Dlc2WfikKL0NyZWF0aW9uRGF0ZSAo1B2ox1UOST/RBD3ZeC2ID3B+w5XNln4pCj4+CmVuZG9iaiB4cmVmCjAgMTQ0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTMyIDAwMDAwIG4gCjAwMDAwMDU4ODkgMDAwMDAgbiAKMDAwMDAwMDE5MSAwMDAwMCBuIAowMDAwMDA0OTY1IDAwMDAwIG4gCjAwMDAwMDQ5MDcgMDAwMDAgbiAKMDAwMDAwNTAyMyAwMDAwMCBuIAowMDAwMDA0NDg5IDAwMDAwIG4gCjAwMDAwMDU0NjEgMDAwMDAgbiAKMDAwMDAwMDUxOSAwMDAwMCBuIAowMDAwMDA0NjY1IDAwMDAwIG4gCjAwMDAwMTc3ODUgMDAwMDAgbiAKMDAwMDAwNTIwOSAwMDAwMCBuIAowMDAwMDE4MzM0IDAwMDAwIG4gCjAwMDAwMDU2NDIgMDAwMDAgbiAKMDAwMDAxODYwNSAwMDAwMCBuIAowMDAwMDA2Mjg4IDAwMDAwIG4gCjAwMDAwMDYwMDIgMDAwMDAgbiAKMDAwMDAwNjMyOSAwMDAwMCBuIAowMDAwMDA2NTg4IDAwMDAwIG4gCjAwMDAwMDY1MTMgMDAwMDAgbiAKMDAwMDAwNzU5NSAwMDAwMCBuIAowMDAwMDA3NjcwIDAwMDAwIG4gCjAwMDAwMDc3NDUgMDAwMDAgbiAKMDAwMDAwNzgyMCAwMDAwMCBuIAowMDAwMDA3ODk1IDAwMDAwIG4gCjAwMDAwMDc5NzAgMDAwMDAgbiAKMDAwMDAxMjg1OCAwMDAwMCBuIAowMDAwMDEyOTM0IDAwMDAwIG4gCjAwMDAwMTMwMTAgMDAwMDAgbiAKMDAwMDAxMzA4NiAwMDAwMCBuIAowMDAwMDE3MzIzIDAwMDAwIG4gCjAwMDAwMTc0MDAgMDAwMDAgbiAKMDAwMDAxNzQ3NyAwMDAwMCBuIAowMDAwMDE3NTU0IDAwMDAwIG4gCjAwMDAwMTc2MzEgMDAwMDAgbiAKMDAwMDAxNzcwOCAwMDAwMCBuIAowMDAwMDA4NDM4IDAwMDAwIG4gCjAwMDAwMDg1MTUgMDAwMDAgbiAKMDAwMDAwODY4NSAwMDAwMCBuIAowMDAwMDA4NzYzIDAwMDAwIG4gCjAwMDAwMDg5MzYgMDAwMDAgbiAKMDAwMDAwOTAxNCAwMDAwMCBuIAowMDAwMDA4MjcwIDAwMDAwIG4gCjAwMDAwMDkzNzIgMDAwMDAgbiAKMDAwMDAwOTQ1MCAwMDAwMCBuIAowMDAwMDA5NjIzIDAwMDAwIG4gCjAwMDAwMDk3MDEgMDAwMDAgbiAKMDAwMDAwOTg3NCAwMDAwMCBuIAowMDAwMDA5OTUyIDAwMDAwIG4gCjAwMDAwMDkyMDQgMDAwMDAgbiAKMDAwMDAxMDMxMCAwMDAwMCBuIAowMDAwMDEwMzg4IDAwMDAwIG4gCjAwMDAwMTA1NjEgMDAwMDAgbiAKMDAwMDAxMDYzOSAwMDAwMCBuIAowMDAwMDEwODEyIDAwMDAwIG4gCjAwMDAwMTA4OTAgMDAwMDAgbiAKMDAwMDAxMDE0MiAwMDAwMCBuIAowMDAwMDExMjQ4IDAwMDAwIG4gCjAwMDAwMTEzMjYgMDAwMDAgbiAKMDAwMDAxMTQ5OSAwMDAwMCBuIAowMDAwMDExNTc3IDAwMDAwIG4gCjAwMDAwMTE3NTAgMDAwMDAgbiAKMDAwMDAxMTgyOCAwMDAwMCBuIAowMDAwMDExMDgwIDAwMDAwIG4gCjAwMDAwMTIxODMgMDAwMDAgbiAKMDAwMDAxMjI2MSAwMDAwMCBuIAowMDAwMDEyNDM0IDAwMDAwIG4gCjAwMDAwMTI1MTIgMDAwMDAgbiAKMDAwMDAxMjY4NSAwMDAwMCBuIAowMDAwMDEyNzYzIDAwMDAwIG4gCjAwMDAwMTIwMTUgMDAwMDAgbiAKMDAwMDAxMzU0NiAwMDAwMCBuIAowMDAwMDEzNjI0IDAwMDAwIG4gCjAwMDAwMTM3OTcgMDAwMDAgbiAKMDAwMDAxMzg3NSAwMDAwMCBuIAowMDAwMDE0MDQ4IDAwMDAwIG4gCjAwMDAwMTQxMjYgMDAwMDAgbiAKMDAwMDAxMzM3OCAwMDAwMCBuIAowMDAwMDE0NDkyIDAwMDAwIG4gCjAwMDAwMTQ1NzAgMDAwMDAgbiAKMDAwMDAxNDY1MyAwMDAwMCBuIAowMDAwMDE0ODMwIDAwMDAwIG4gCjAwMDAwMTQ5MDggMDAwMDAgbiAKMDAwMDAxNDk5MSAwMDAwMCBuIAowMDAwMDE1MTcwIDAwMDAwIG4gCjAwMDAwMTUyNDkgMDAwMDAgbiAKMDAwMDAxNTMzMSAwMDAwMCBuIAowMDAwMDE0MzE2IDAwMDAwIG4gCjAwMDAwMTU2OTMgMDAwMDAgbiAKMDAwMDAxNTc3MiAwMDAwMCBuIAowMDAwMDE1OTQ4IDAwMDAwIG4gCjAwMDAwMTYwMjcgMDAwMDAgbiAKMDAwMDAxNjIwMyAwMDAwMCBuIAowMDAwMDE2MjgyIDAwMDAwIG4gCjAwMDAwMTU1MjQgMDAwMDAgbiAKMDAwMDAxNjY0MiAwMDAwMCBuIAowMDAwMDE2NzIxIDAwMDAwIG4gCjAwMDAwMTY4OTggMDAwMDAgbiAKMDAwMDAxNjk3NyAwMDAwMCBuIAowMDAwMDE3MTU2IDAwMDAwIG4gCjAwMDAwMTcyMzYgMDAwMDAgbiAKMDAwMDAxNjQ3MiAwMDAwMCBuIAowMDAwMDA4MDQ1IDAwMDAwIG4gCjAwMDAwMDgxNjMgMDAwMDAgbiAKMDAwMDAwOTA5NyAwMDAwMCBuIAowMDAwMDEwMDM1IDAwMDAwIG4gCjAwMDAwMTA5NzMgMDAwMDAgbiAKMDAwMDAxMTkwOCAwMDAwMCBuIAowMDAwMDA4MzQ4IDAwMDAwIG4gCjAwMDAwMDg1OTUgMDAwMDAgbiAKMDAwMDAwODg0NiAwMDAwMCBuIAowMDAwMDA5MjgyIDAwMDAwIG4gCjAwMDAwMDk1MzMgMDAwMDAgbiAKMDAwMDAwOTc4NCAwMDAwMCBuIAowMDAwMDEwMjIwIDAwMDAwIG4gCjAwMDAwMTA0NzEgMDAwMDAgbiAKMDAwMDAxMDcyMiAwMDAwMCBuIAowMDAwMDExMTU4IDAwMDAwIG4gCjAwMDAwMTE0MDkgMDAwMDAgbiAKMDAwMDAxMTY2MCAwMDAwMCBuIAowMDAwMDEyMDkzIDAwMDAwIG4gCjAwMDAwMTIzNDQgMDAwMDAgbiAKMDAwMDAxMjU5NSAwMDAwMCBuIAowMDAwMDEzMTYxIDAwMDAwIG4gCjAwMDAwMTMyNzEgMDAwMDAgbiAKMDAwMDAxNDIwOSAwMDAwMCBuIAowMDAwMDE1NDE3IDAwMDAwIG4gCjAwMDAwMTYzNjQgMDAwMDAgbiAKMDAwMDAxMzQ1NiAwMDAwMCBuIAowMDAwMDEzNzA3IDAwMDAwIG4gCjAwMDAwMTM5NTggMDAwMDAgbiAKMDAwMDAxNDM5NSAwMDAwMCBuIAowMDAwMDE0NzMzIDAwMDAwIG4gCjAwMDAwMTUwNzMgMDAwMDAgbiAKMDAwMDAxNTYwMyAwMDAwMCBuIAowMDAwMDE1ODU4IDAwMDAwIG4gCjAwMDAwMTYxMTMgMDAwMDAgbiAKMDAwMDAxNjU1MiAwMDAwMCBuIAowMDAwMDE2ODA3IDAwMDAwIG4gCjAwMDAwMTcwNjQgMDAwMDAgbiAKMDAwMDAxODg0MiAwMDAwMCBuIAowMDAwMDE4OTk1IDAwMDAwIG4gCnRyYWlsZXIKCjw8Ci9FbmNyeXB0IDE0MiAwIFIKL0luZm8gMTQzIDAgUgovUm9vdCAxIDAgUgovU2l6ZSAxNDQKL0lEIFs8OWUzYTM3MzI0ZjhlYjVjMDA0YjFkMGM3NGJhY2U5MjA+PDJhNGVhYjMwYWQ1MDI5MDljZDlmMDBiYjI3YWY0NzY2Pl0KPj4Kc3RhcnR4cmVmCjE5MjgwCiUlRU9GCg==</Datastring>
<Wrknmr>
<IdWrknmr>1945</IdWrknmr>
</Wrknmr>
<Dnstvbnd>
<IdDnstvbnd>252</IdDnstvbnd>
<PersNr>1945</PersNr>
<Vrzm>
<VrzmgvlId>1945 1 1809</VrzmgvlId>
<DatEerstVrzmdg>2022-05-24</DatEerstVrzmdg>
</Vrzm>
</Dnstvbnd>
</Document>
</Documenten>
Artikel inhoud
Domein model
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
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)
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
SalaryDetails (Dienstverband)
Id
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.
PersonCode
Person code to which the employment is related
P01001 - Persoonsnummer
employmentCode
Code of the employment
P01101 - volgnr dienstverband
GENERAL
typePaidWorkerCode
type of paid or unpaid worker
P00332 Code soort loner
SALARY DETAILS
payrollSchemeCode
payroll scheme related to the collective agreement
P00314 Code salarisregeling
payrollScale
Salary scale
P01151 Salaris
payrollSeniority
Salary step or seniority within the salary scale
P00326 Ancienniteit salaris
payrollAmountNo
salary amount number
P01152 Inpassingsnr salaris
GARANTEED SALARY DETAILS
GuaranteedPayrollScale
Garanteed salary scale.
P01157 Garantieschaal nummer
GuaranteedSeniority
Garanteed step or seniority within the garanteed scale
P01158 Ancienniteit garantieschaal
GuaranteedPayrollAmountNo
salary amount number
P00318 garantie salaris
CALCULATED SALARY DETAILS
CalculatedSalary
calculated gross salary by Beaufort
P01161 Berekend bruto salaris
CalculatedHourlySalary
calculated gross hourly salary by Beaufort
P01162 Berekend bruto uurloon
CalculatedGuaranteedSalary
calculated gross garanteed salary by Beaufort
P01159 Berekend garantiesalaris
CalculatedGuaranteedHourlySalary
calculated gross garanteed hourly salary by Beaufort
P01160 Berekend garantie uurloon
Assignments (Inzet)
assignmentID
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.
PersonCode / PersonId
Person code to which the employment is related
P01001 - Persoonsnummer
employmentCode / ContractCode / ContractId
Code of the contract
P01101 - volgnr dienstverband
startDate/validFrom
The date when the assignments start
P01125 - Ingang inzet
endDate/ValidUntil
The end date of the assignment. This is always an "up to and including" date. In unknown the field will not be visible in the API
P01126 - Einde inzet
jobProfile
Job title or job profile of the assignment. The Job profile contains the following details: shortName: Code or short name of the job profile
P01122 - Operationele functie
organizationUnit
Organization unit id of the assignment. The Organization Unit Id is a reference tot the organization unit entity
P01121 - Operationele org. eenheid
workingAmount
work amount of the assignment. 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"
P01124 - Uren inzet per week
Leave Entitlements (Verlofrechten)
id
Technical and unique id. the Id is unique within the entity and tenant.
object id
PersonCode
Person code to which the employment is related
Persoonsnummer
employmentCode
Code of the contract
volgnr dienstverband
leaveType
leave type code, like WET for legal
P01430 code verlofsoort werknemer
leaveEntitlementYear
Year of the Leave entitlement
P01440 verlofjaar verlofrechten
leaveEntitlementLastYear
leave entitlement last year
P01442 verlofrecht vorig jaar in uren
leaveEntitlementThisYear
leave entitlement this year
P01443 verlofrecht huidig jaar in uren
leave hours (Opgenomen verlof in uren)
id
Technical and unique id. the Id is unique within the entity and tenant.
PersonCode
Person code to which the employment is related
Persoonsnummer
employmentCode
Code of the contract
volgnr dienstverband
leaveEntitlementYear
Year of the Leave entitlement
P01466 - verlofjaar verlofrecht
leaveType
leave type code, like WET for legal
P01465 - code verlofsoort
leaveSequence
leave request Id
P01460 - Volgnummer verloftijdvak
leaveDate
leave date
P01470 - Datum verlof
leaveHours
hours leave on specific leave
P01471 - uren verlof
Sickleave (Ziekte algemeen, uitgezonderd zwangerschapsverlof)
id
Technical and unique id of the sickness case. The Id is unique within the entity and tenant.
PersonCode
Person code to which the employment is related
Persoonsnummer
employmentCode
Code of the contract
volgnr dienstverband
startDate
first day of the sickness of the employee
P01600 Datum eerste ao-dag
recoveryDate
recovery date or first working day of the employee
P01606 Datum herstel
Partial recovery
periodId
technical id of the partial recovery period
periodStartDate
The start date from which the new Illness percentages is valid
P01640 - Ziektetijdvak vanaf
percentage
The percentages the employee is still sick. the percentage is always related to the total amount of working hours of the employee itself
P01642 - Percentage ziek
Maternity leave (ziekte zwangerschapsverlof)
id
Technical and unique id of the Maternity leave. The Id is unique within the entity and tenant.
PersonCode
Person code to which the employment is related
Persoonsnummer
employmentCode
Code of the contract
volgnr dienstverband
startDate
first day of the maternity leave of the employee
P01600 Datum eerste ao-dag
recoveryDate
recovery date or first working day of the employee
P01606 Datum herstel
Swagger documentation
The following swagger pages gives an overview of the endpoint:
SIVI endpoints
Endpoint Verzuimmeldingen
The endpoint /verzuimmeldingen will return all generated sick leave messages within a specific tenant / client; strictly corresponded with the Dutch standard of sivi.org. The structure of the XML message is fully in line with the XSD version of Verzuimmelding 2020. Currently we’re not able to return every single field with values. For a detailed data mapping overview, click here.
Full load : GET /verzuimmeldingen To fetch the total list of messages corresponding to a client number the endpoint Verzuimmeldingen can be used without using any additional (filter) parameters.
https://api.raet.com/sivi/verzuimmeldingen
Incremental load : GET /verzuimmeldingen?ChangedAfter=20210402&ChangedUntil=20210404
By executing the parameters ChangedAfter - ChangedUntil the API will only expose the available SIVI messages within the specified timerange. In the below example an API consumer would like to retrieve only the messages between the 2nd of April 2021 and 4th of April 2021.
https://api.raet.com/sivi/verzuimmeldingen? ChangedAfter=2022-06-27T00:00:00.001Z&ChangedUntil=2022-06-27T07:29:00.000Z
Example date-time format : changedAfter - 2020-08-21T00:00:00.000Z changedUntil - 2020-08-21T12:01:46.077Z
Mappings A table with all the corresponding property mappings for the Verzuimmeldingen endpoint can be found here.
Pagination of the result set
To reduce the load of an endpoint each endpoint supports paging. In case the results of an endpoint contain more than 100 records, the results set will end with a ‘nextLink tag’. The nextLink indicates that there are more pages to load. If there is no nextLink at the end of the page, this means that it’s the last page of the result set.
Swagger documentation
The following swagger pages gives an overview of the endpoint:
IAM endpoints
Filters
Person endpoint
The person endpoint supports the following query string parameters
Parameter
Description
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) person records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/persons? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
validFrom
Returns a list of person records filtered based on the validFrom and validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
https://api.youforce.com/iam/v1.0/persons?validFrom=2020-11-07
validUntil
Returns a list of person records filtered based on the validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
Employee endpoint
The employee endpoint supports the following query string parameters
Parameter
Description
personCode
Returns a list of employee records filtered by personId
https://api.youforce.com/iam/v1.0/employees?personCode=191166
personId
Returns a list of employee records filtered by personId
https://api.youforce.com/iam/v1.0/employees?personId=191166
organizationUnit
Returns a list of all employee records filtered by organizationUnit id
https://api.youforce.com/iam/v1.0/employees? organizationUnit=13612345
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) employee records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/employees? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
validFrom
Returns a list of employee records filtered based on the validFrom and validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
https://api.youforce.com/iam/v1.0/employees?validFrom=2020-11-07
validUntil
Returns a list of employee records filtered based on the validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
Employment endpoint
The employee endpoint supports the following query string parameters
Parameter
Description
personCode
Returns a list of employment records filtered by personId
https://api.youforce.com/iam/v1.0/employments?personCode=191166
personId
Returns a list of employment records filtered by personId
https://api.youforce.com/iam/v1.0/employments?personId=191166
organizationUnit
Returns a list of all employment records filtered by organizationUnit id
https://api.youforce.com/iam/v1.0/employments? organizationUnit=13612345
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) employment records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/employments? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
validFrom
Returns a list of employment records filtered based on the validFrom and validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
https://api.youforce.com/iam/v1.0/employments?validFrom=2020-10-01
validUntil
Returns a list of employment records filtered based on the validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
Assignment endpoint
The assignments endpoint supports the following query string parameters
Parameter
Description
personId
Returns a list of assignment records filtered by personId
https://api.youforce.com/iam/v1.0/assignments?personId=191166
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) assignment records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/assignments? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
validFrom
Returns a list of assignment records filtered based on the validFrom
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
https://api.youforce.com/iam/v1.0/assignments?validFrom=2020-01-03
validUntil
Returns a list of assignment records filtered based on the validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
Cost allocation endpoint
The cost allocation endpoint supports the following query string parameters
Parameter
Description
Id
Returns the cost allocation by id
https://api.youforce.com/iam/v1.0/costAllocations /100028%201%200
Person code
Returns a list of cost allocations for a specific person. The list could contain records for different employments of the employee
https://api.youforce.com/iam/v1.0/costAllocations ?personCode=100028
Organization unit endpoint
The organizationUnits endpoint supports the following query string parameters
Parameter
Description
shortName
Returns a list of all organizationUnit records filtered by shortName
https://api.youforce.com/iam/v1.0/organizationUnits?company=1010A
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) organization unit records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/organizationUnits? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
validFrom
Returns a list of organizationUnit records filtered based on the validFrom and validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
https://api.youforce.com/iam/v1.0/organizationUnits?validFrom=2020-01-01
validUntil
Returns a list of organizationUnit records filtered based on the validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
Role assignment endpoint
The roleAssignments endpoint supports the following query string parameters
Parameter
Description
personId
Returns a list of all role assignment records filtered by personId
https://api.youforce.com/iam/v1.0/roleAssignments?personId=1010A
shortName
Returns a list of all role assignment records filtered by shortName
https://api.youforce.com/iam/v1.0/roleAssignments?shortName=MGR
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) employee records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/roleAssignments? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
Job profile endpoint
The jobProfiles endpoint supports the following query string parameters
Parameter
Description
shortName
Returns a list of all jobProfile records filtered by shortName
https://api.youforce.com/iam/v1.0/jobProfiles?shortName=1010A
from and to
Date Time stamp filter:
Date Time should be in UTC
Format: YYYY-MM-DDTHH:MM:SS.sssZ
Returns (active) jobProfile records that have changed within the provided date-time range.
https://api.youforce.com/iam/v1.0/jobProfiles? from=2020-01-01T09:00:00.000Z&to=2020-01-01T14:00:00.000Z
validFrom
Returns a list of jobProfile records filtered based on the validFrom
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
https://api.youforce.com/iam/v1.0/jobProfiles?validFrom=2020-01-03
validUntil
Returns a list of jobProfile records filtered based on the validUntil
Date timestamp format is always according to ISO 8601 YYYY-MM-DD
This is a range filter the response will contain records from the defined date until the latest possible date
With the documents endpoint files like certificates and other kind of documents can be uploaded for an employee to the Visma Personal File System (Personeelsdossier).
The API supports the following types of documents
certificate (Certificaat)
diploma (Diploma)
career agreement (Loopbaan afspraak)
career mail (Correspondentie loopbaan)
career other (Overige loonbaan documenten)
appraisal Review (Beoordelingsgesprek)
performance Review (Functioneringsgesprek)
As-synchronized file upload
Learning systems can upload files, like certificates, diplomas for individual employees to the Personal File System of Visma Raet. The file upload is an a-synchronized process. After the file is uploaded the consumer will receive a ticket Id, which can be used to monitor the process of the file upload.
Endpoints
The API supports the following type of documents:
API endpoint
Personal file system
endpoint
Document type
Description
learning/v1.0/employees/{personCode}/documents/certificate
certificaat
Certificaat
learning/v1.1/employees/{personCode}/documents/certificate
certificaat
Certificaat
learning/v1.1/employees/{personCode}/documents/diploma
diploma
Diploma
learning/v1.1/employees/{personCode}/documents/appraisalReview
beoordelingsGesprek
Beoordelingsgesprek
learning/v1.1/employees/{personCode}/documents/performanceReview
functioneringsGesprek
Functioneringsgesprek
learning/v1.1/employees/{personCode}/documents/careerAgreement
loopbaanafspraken
Loonbaan afspraken
learning/v1.1/employees/{personCode}/documents/careerMail
corrLoopbaan
Correnspondentie loopbaan
learning/v1.1/employees/{personCode}/documents/careerOther
ovLoopbaan
Overige loonbaan documenten
Note:
v1.1 is using Content-Type: multipart/form-data and supports the other document types as well.
v1.0 is using Content-Type : multipart/related and supports only certificates. We are advice you the use the latest version of an endpoint
To upload a document you need to use the POST method. For example POST https://api.youforce.com//learning/v1.1/employees/{personCode}/documents/diploma
for uploading a diploma to the Personal File System of Visma Raet. The endpoint returns a ticketId . The file will be stored in a standard folder for diplomas (see table for the other endpoints)
The API will automatically upload the file to the Personal File System. This is an a-synchronized process with an automatic retry mechanism in case the file systems is not available. The retry mechanism will try to upload the file in a maximum of 6 hours. After this period the file will be rejected with a message. Also if the file is too big (maximum 4 Mb) or isn’t a PDF file, the upload will be rejected.
GET documents/ {TicketId} /status Endpoint for getting the status of the file upload. The endpoint will return the status of the file. After the file is processed successfully the status Complete is returned.
Examples
version 1.1 (all document types)
Use POST request with multipart/form-data content type.
Replace the PersonCode in the URL with the Id of the employee
Use the authentication token received from the authentication endpoint
Replace the tenant code with the tenant code of the client
Give the document a proper description
The field validFrom is optional. If it's empty the system date will be used as default
The content-type for the file is application/pdf Other type of files will be rejected by the API. The file size is also limited to a maximum of 4 Mb
Response
Example of the response.
HTTP/1.1 200 Content-Type: application/json { "ticketId": "7ca486f6-c730-4d50-a2ec-31a3a1373366", "description": "Example description", "size": 77491, "tenantId": "4028868", "creationDateTime": "2022-04-01T13:53:30.3985949", "status": "InProgress", "errorMessages": [] }
version 1.0 (certificates only)
Use POST request with multipart/related content type with the first part having metadata in json format and the second one having a file.
Replace the PersonCode in the URL with the Id of the employee
Use the authentication token received from the authentication endpoint
Replace the tenant code with the tenant code of the client
Give the document a proper description
The content-type of the metadata is application/json The content-type for the file is application/pdf Other type of files will be rejected by the API. The file size is also limited to a maximum of 4 Mb
POST https://api.youforce.com/learning/V1.0/api/employees//documents/certificate Authorization: Bearer [YOUR_AUTH_TOKEN] Content-Type: multipart/related; boundary=boundary_not_used_within_file_content --boundary_not_used_within_file_content Content-Type: application/json; charset=UTF-8 { "Description":"YOUR_OWN_DESCRIPTION", "ValidFrom" : "2021-01-01" } --boundary_not_used_within_file_content Content-Type: application/pdf [PDF Content] --boundary_not_used_within_file_content--
Upload status
After the file is posted to the API, the file upload can be followed with the status endpoint. Replace the TicketId in the URL with the ticketId from the previous API call.
GET https://api.youforce.com/learning/v1.0/employees/documents/{{TicketId}}/status
The API will return the status of the file upload. If the API could not upload the file, an error is shown as well.
Response
{ "status": "Complete", "errorMessages": [] }
I would like to start using the File API. Which are the first steps?
Create an account
To use the File API, you must register and create an account in the developer portal. An account is quick to set up and is free of charge. You only need your phone and company address to register. To register and create an account:
1. Click Create an account .
2. Enter your details. (Please register with your company email).
3. You will receive an SMS on your mobile to confirm.
Create an application
After login, you can go to Your Apps and see all applications you have access to.
There you will be able to create a Sandbox App for File API and retrieve the crendentials (A pi Key, Secret key).
By default, the sandbox applications are authorized to TenantId: sandbox and to the Sandbox File Types. With the below sandbox file types you will be able to test how to upload and download files using File API.
Business Type Id
Name
Authorization
7100
File API Sandbox Uploads
Publisher
7101
File API Sandbox Downloads
Subscriber
Once your integration is ready, contact your API consultant or account manager to switch your Application from Sandbox to PROD.
If multiple subscribers need the same file, wouldn’t the current setup of the API poses the risk that subscriber A (supplier system A) downloads and deletes a file of this type even though also subscribers B and C also require this file for their systems?
The storage is unique and the files will be stored only once, no matter whether the same file is consumed by many subscribers. Each subscriber will receive a logical reference for the file. That means that if Subscriber A downloads the file, only the logical reference of the file for Subscriber A will be set as downloaded and not the logical references of Subscriber B and C.
When the files will be physically deleted from Storage?
The files will be physically deleted from Storage automatically after the retention period expires (1 month)
Will it be possible to request a list of files, filtered based on businessType/id and/or uploadDate?
Please visit our documentation. Section “search for files”
Can we use the API to upload DPIA100 files as well, or should our customers stick to the manual upload process?
The File API can be used to upload files as well. Once the DPIA100 files are uploaded, they will be automatically downloaded and imported in Beaufort Online. See how to automate this process in the release 2020-09 of HR Core Beaufort Online.