This document provides a detailed description of the fields in the XML master data file that eADM imports from Visma Enterprise HRM (VEP). It is intended for technical personnel responsible for setting up and maintaining the integration.
The file is delivered as a <personsXML> document containing one <person> element per employee. Each person record holds identity details, contact information, and one or more <employment> records describing the employee's positions, organisational placement, and compensation.
Warning: The source file can contain sensitive information, including salary details, tax data, bank account numbers, and dependent information. Review the Filtering and Transforming Import Data guide before importing an unfiltered file, and remove any elements that are not required by the integration.
Employee Data
Example of Employee Data
Below is an anonymised example of a <person> element for a single employee. All identifying values (name, national identity number, contact details, organisation number) have been replaced with placeholder data.
<person personIdHRM="10023">
<authentication>
<initials>KARNOR</initials>
<userId>1042</userId>
<username>KARI NORDMANN</username>
<alias>KARNOR</alias>
</authentication>
<careerInfo>
<jobTitle>Sykepleier</jobTitle>
<workTasks>Sykepleier</workTasks>
</careerInfo>
<contactInfo>
<email>kari.nordmann@utfjord.kommune.no</email>
<workPhone>00000000</workPhone>
<privateMobilePhone>00000000</privateMobilePhone>
<paycheckByEmail>false</paycheckByEmail>
</contactInfo>
<dateOfBirth>1985-01-01</dateOfBirth>
<dependents/>
<employments>
<employment>
<bankDetails>
<accountNumber>00000000000</accountNumber>
<alias>Hovedkonto</alias>
<nationalityCode>NO</nationalityCode>
</bankDetails>
<category id="F3"><description>Fast tilsett utvida</description></category>
<company>
<companyId>1</companyId>
<companyName>Utfjord kommune</companyName>
<organizationNumber>000000000</organizationNumber>
</company>
<companySeniority>2018-01-01</companySeniority>
<employeeId>10023001</employeeId>
<employmentPercentage>100.0</employmentPercentage>
<lastChangedDate>2026-07-01T08:00:00</lastChangedDate>
<pension name="KLP fellesordning" value="18"/>
<positions>
<position isPrimaryPosition="true" validFromDate="2026-01-01">
<chart id="5" name="Utfjord kommune">
<unit id="1001" name="Helse og omsorg">
<manager id="6001" name="Ola Leder"/>
</unit>
</chart>
<costCentres>
<dimension2 name="Helse og omsorg" value="2000"/>
</costCentres>
<employmentPositionPercentage>100.0</employmentPositionPercentage>
<positionCategoryNumber>1</positionCategoryNumber>
<positionInfo>
<positionCode name="Sykepleier" positionCode="7174" positionId="1" tableNr="50"/>
<positionType name="Fast" value="F"/>
<publicPositionCode name="Sykepleier" value="7174"><set>KS</set><setType>KSSKODE</setType></publicPositionCode>
</positionInfo>
<positionPercentage>100.0</positionPercentage>
<positionStartDate>2018-01-01</positionStartDate>
<positionStatistics includeInAA="true" includeInPAI="true">
<workClassification name="Sykepleier" value="2223114"/>
<workMunicipality name="UTFJORD KOMMUNE" value="0000"/>
</positionStatistics>
<salaryInfo>
<basicSalary>000000.00</basicSalary>
<salaryStep>0</salaryStep>
<salaryTable name="Kommuneansatte kap. 4" value="4025"/>
<yearlySalary>000000.00</yearlySalary>
</salaryInfo>
<weeklyHours>37.50</weeklyHours>
</position>
</positions>
<taxDetails>
<taxDeductionCard cardId="0000" cardName="Månedstabell" cardType="M"/>
<taxPercentage>00.00</taxPercentage>
</taxDetails>
</employment>
</employments>
<familyName>Nordmann</familyName>
<genderCode>FEMALE</genderCode>
<givenName>Kari</givenName>
<municipality name="UTFJORD KOMMUNE" value="0000"/>
<nationalityCode>NO</nationalityCode>
<postalAddress>
<address1>Eksempelveien 1</address1>
<countryCode>NO</countryCode>
<postalArea>UTFJORD</postalArea>
<postalCode>0000</postalCode>
</postalAddress>
<socialSecurityOffice name="NAV UTFJORD" value="0000"/>
<ssn>00000000000</ssn>
</person>
Note: A person can have several <employment> records (e.g. one per employer within a multi-company setup), and each employment can hold several <position> records. Only one position per employment is marked isPrimaryPosition="true".
Identity, Authentication and Contact Fields
|
XML Path |
Description |
Data Type |
Mandatory |
Usage |
|---|---|---|---|---|
|
|
Internal Visma Enterprise person ID. |
Integer |
Yes |
Uniquely identifies the person record; used as the source key for matching during synchronisation. |
|
|
Norwegian national identity number (fødselsnummer). |
String |
Yes |
Primary identifier used to match the person across eADM, Active Directory, and Feide. |
|
|
First name and last name. |
String |
Yes |
Used to build display names and email addresses in target systems. |
|
|
Full name as registered for logon. |
String |
No |
Reference field; not normally used directly. |
|
|
Username alias. |
String |
No |
Can be used as a candidate value for the target-system username (e.g. |
|
|
Date of birth. |
Date |
No |
Can be used in age-based rule sets. |
|
|
Gender ( |
String |
No |
Rarely used in access rules. |
|
|
Free-text job title. |
String |
No |
Can be exported to target systems as a descriptive title; not used for access control. |
|
|
Work and private email address. |
String |
No |
Used in notification flows, particularly before a work account exists. |
|
|
Work and private phone numbers. |
String |
No |
Used in directory synchronisation and notification flows. |
|
|
Home address. |
String |
No |
Rarely used; consider filtering out (see Warning above). |
Employment and Position Fields
|
XML Path |
Description |
Data Type |
Mandatory |
Usage |
|---|---|---|---|---|
|
|
Employee number for this specific employment relationship. |
Integer |
Yes |
A person can have several employments; this uniquely identifies each one. |
|
|
Employment category code and description (e.g. |
String |
No |
Distinguishes permanent, temporary, and hourly employment types; used in rule sets. |
|
|
Employer entity (name and organisation number). |
String |
No |
Used when importing data from multiple companies (see "Importing data from multiple companies"). |
|
|
Overall employment percentage across all positions. |
Decimal |
No |
Used to distinguish full-time from part-time employment. |
|
|
Marks the primary position. |
Boolean |
Yes |
Determines which position governs the user's main account, department, and manager. See "Using the Position Filter". |
|
|
Organisational unit the position belongs to. |
String / ID |
Yes |
Used to place the user in the organisational hierarchy and to assign group memberships. |
|
|
Line manager of the unit. |
String / ID |
No |
Used for manager look-ups, approval flows, and onboarding/offboarding notifications. |
|
|
Internal position code and title. |
String |
No |
Used for role-based access control. |
|
|
Position or employment status code (e.g. |
String |
No |
Source field for eADM's |
|
|
Statutory position code (KS tariff, "KSSKODE"). |
String |
No |
Used for tariff-based rules and statutory reporting. |
|
|
Percentage this specific position occupies. |
Decimal |
No |
Used in position filters. See "Using the Position Filter". |
|
|
Position validity dates. |
Date |
No |
Used to activate and deactivate access tied to the position. |
|
|
Cost centre / budget dimension. |
String |
No |
Used for organisational reporting; rarely used for access control. |
|
|
Leave period, type, and percentage. |
String / Date |
No |
Can be used to suspend or adjust access during long-term leave. |
Compensation, Tax and Statistics Fields
|
XML Path |
Description |
Data Type |
Mandatory |
Usage |
|---|---|---|---|---|
|
|
Salary figures. |
Decimal |
No |
Not used for access control. Highly sensitive; recommended to filter out before import (see Warning above). |
|
|
Standard occupation classification (STYRK). |
String |
No |
Used for statutory statistics reporting, not for access control. |
|
|
Registered education level (PAI / SSB education code). |
String |
No |
Statutory reporting field; a separate concept from eADM's |
|
|
Tax withholding details (tax card, percentage). |
String / Decimal |
No |
Sensitive; not used by eADM. Recommended to filter out. |
|
|
Family members registered for pay or insurance purposes. |
String |
No |
Sensitive; recommended to filter out unless specifically required. |
Organisational Hierarchy
The organisational hierarchy is delivered separately from the employee data, as a <charts> file containing one <chart> element with a flat list of <unit> elements. Each unit references its parent, so the hierarchy is reconstructed by the importing system rather than being nested in the XML.
Example of Organisational Data
Below is an anonymised example showing a top-level unit and one of its child units.
<charts>
<chart id="5" name="Utfjord kommune">
<units>
<unit company="1" kode="40" id="1" name="Kommunedirektør" unitType="Kommunedirektør" parentid="0">
<manager id="6001" name="Ola Leder">
<proprietorType>PERMANENT</proprietorType>
</manager>
<contactInfo>
<phone/>
<email/>
</contactInfo>
<tasks>
<task id="8" description="Tilvisar">
<employees>
<employee id="6001" name="Ola Leder">
<proprietorType>PERMANENT</proprietorType>
</employee>
</employees>
</task>
</tasks>
<roles>
<role id="4" description="Leiar">
<employees>
<employee id="6001" name="Ola Leder">
<proprietorType>PERMANENT</proprietorType>
</employee>
</employees>
</role>
</roles>
</unit>
<unit company="1" kode="7" id="200" name="Helse og omsorg" unitType="Kommunalområde" parentid="40">
<manager id="6002" name="Kari Nordmann">
<proprietorType>PERMANENT</proprietorType>
</manager>
<contactInfo>
<phone/>
<email/>
</contactInfo>
<tasks/>
<roles/>
</unit>
</units>
</chart>
</charts>
Note: The top-level unit (here, "Kommunedirektør") has parentid="0". Every other unit's parentid refers to the kode of its parent unit, not the parent's id. Confusing these two attributes is a common source of hierarchy errors; see "Visma's Recommended Organizational Structure and its Impact on eADM".
Organisational Field Descriptions
|
XML Path |
Description |
Data Type |
Mandatory |
Usage |
|---|---|---|---|---|
|
|
Identifier and name of the organisation chart (typically the municipality or company). |
Integer / String |
Yes |
Root of the imported hierarchy. |
|
|
Internal Visma Enterprise unit ID. |
String |
Yes |
Matches |
|
|
Short numeric chart code for the unit. |
Integer |
Yes |
Referenced by child units' |
|
|
The |
Integer |
Yes |
Builds the parent-child structure of the organisation. |
|
|
Department or unit name. |
String |
Yes |
Displayed in target systems and used to build group names. |
|
|
Type of unit (e.g. "Kommunedirektør", "Kommunalområde", "Eining", "Team", "Ikkje tilsett"). |
String |
No |
Can be used in rule sets to distinguish organisational levels. See "Visma's Recommended Organizational Structure and its Impact on eADM". |
|
|
Company ID the unit belongs to. |
Integer |
No |
Used when importing data from multiple companies. |
|
|
The unit's manager. |
String |
No |
Used for manager look-ups, approval flows, and onboarding/offboarding notifications. |
|
|
A named task (e.g. "Attesterar", "Godkjenne fråvær") with the employees, and optionally a supervisor, assigned to it. |
String |
No |
Used to grant task-specific access, such as approval or invoicing rights, independent of formal position. |
|
|
A named role (e.g. "Leiar", "BI tilgang") with the employees, and optionally a supervisor, assigned to it. |
String |
No |
Used to grant role-specific access rights independent of formal position. |
|
|
Postal address, visiting address, phone, and email for the unit. |
String |
No |
Typically empty in practice; rarely used. |
Understanding the QualificationCode Attribute
In HR systems like Visma Enterprise, a qualification code is a standardized tag used to record an employee’s formal education, licenses, and skills.
Instead of typing free text, HR uses these uniform codes so the system can automatically use the data for three main purposes:
-
Payroll & Tariffs: Links to job codes to ensure correct salary placement (e.g., registering a new degree automatically flags the employee for a pay raise).
-
Resource Management: Allows managers to easily track who is authorized to perform specific duties (e.g., checking who holds a valid healthcare license or heavy machinery certificate).
-
Reporting & Compliance: Provides clean data for internal competence mapping and statutory government reporting (like to Statistics Norway).
Typical Examples: "Bachelor's Degree," "HPR Authorization (Healthcare)," or "First Aid Certification."
Related articles
-
Data Quality in the HR System: The Foundation for Effective Access Management
-
Visma's Recommended Organizational Structure and its Impact on eADM