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 document containing one element per employee. Each person record holds identity details, contact information, and one or more 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 element for a single employee. All identifying values (name, national identity number, contact details, organisation number) have been replaced with placeholder data.

XML

        
         
         
          KARNOR
          
         
          1042
          
         
          KARI NORDMANN
          
         
          KARNOR
          
         
         
         
          Sykepleier
          
         
          Sykepleier
          
         
         
         
          kari.nordmann@utfjord.kommune.no
          
         
          00000000
          
         
          00000000
          
         
          false
          
         
        
         1985-01-01
         
         
         
          
           
           
            00000000000
            
           
            Hovedkonto
            
           
            NO
            
           
          
           
            Fast tilsett utvida
           
           
           
           
            1
            
           
            Utfjord kommune
            
           
            000000000
            
           
          
           2018-01-01
           
          
           10023001
           
          
           100.0
           
          
           2026-07-01T08:00:00
           
           
           
            
             
              
               
              
             
             
              
             
            
             100.0
             
            
             1
             
             
              
              
             
              
               KS
              
              
               KSSKODE
              
              
             
            
             100.0
             
            
             2018-01-01
             
             
              
              
             
             
             
              000000.00
              
             
              0
              
              
             
              000000.00
              
             
            
             37.50
             
            
           
           
            
           
            00.00
            
           
          
         
        
         Nordmann
         
        
         FEMALE
         
        
         Kari
         
         
        
         NO
         
         
         
          Eksempelveien 1
          
         
          NO
          
         
          UTFJORD
          
         
          0000
          
         
         
        
         00000000000
         
       

Note: A person can have several records (e.g. one per employer within a multi-company setup), and each employment can hold several records. Only one position per employment is marked isPrimaryPosition="true".

Identity, Authentication and Contact Fields

XML Path: person@personIdHRM  |  Description: Internal Visma Enterprise person ID.  |  Data Type: Integer  |  Mandatory: Yes  |  Usage: Uniquely identifies the person record; used as the source key for matching during synchronisation.

XML Path: ssn  |  Description: Norwegian national identity number (fødselsnummer).  |  Data Type: String  |  Mandatory: Yes  |  Usage: Primary identifier used to match the person across eADM, Active Directory, and Feide.

XML Path: givenName / familyName  |  Description: First name and last name.  |  Data Type: String  |  Mandatory: Yes  |  Usage: Used to build display names and email addresses in target systems.

XML Path: authentication/username  |  Description: Full name as registered for logon.  |  Data Type: String  |  Mandatory: No  |  Usage: Reference field; not normally used directly.

XML Path: authentication/alias  |  Description: Username alias.  |  Data Type: String  |  Mandatory: No  |  Usage: Can be used as a candidate value for the target-system username (e.g. sAMAccountName).

XML Path: dateOfBirth  |  Description: Date of birth.  |  Data Type: Date  |  Mandatory: No  |  Usage: Can be used in age-based rule sets.

XML Path: genderCode  |  Description: Gender (MALE / FEMALE).  |  Data Type: String  |  Mandatory: No  |  Usage: Rarely used in access rules.

XML Path: careerInfo/jobTitle  |  Description: Free-text job title.  |  Data Type: String  |  Mandatory: No  |  Usage: Can be exported to target systems as a descriptive title; not used for access control.

XML Path: contactInfo/email, privateEmail  |  Description: Work and private email address.  |  Data Type: String  |  Mandatory: No  |  Usage: Used in notification flows, particularly before a work account exists.

XML Path: contactInfo/workPhone, privateMobilePhone  |  Description: Work and private phone numbers.  |  Data Type: String  |  Mandatory: No  |  Usage: Used in directory synchronisation and notification flows.

XML Path: postalAddress  |  Description: Home address.  |  Data Type: String  |  Mandatory: No  |  Usage: Rarely used; consider filtering out (see Warning above).


Employment and Position Fields

XML Path: employment/employeeId  |  Description: Employee number for this specific employment relationship.  |  Data Type: Integer  |  Mandatory: Yes  |  Usage: A person can have several employments; this uniquely identifies each one.

XML Path: employment/category  |  Description: Employment category code and description (e.g. F3 / "Fast tilsett utvida").  |  Data Type: String  |  Mandatory: No  |  Usage: Distinguishes permanent, temporary, and hourly employment types; used in rule sets.

XML Path: employment/company  |  Description: Employer entity (name and organisation number).  |  Data Type: String  |  Mandatory: No  |  Usage: Used when importing data from multiple companies (see "Importing data from multiple companies").

XML Path: employment/employmentPercentage  |  Description: Overall employment percentage across all positions.  |  Data Type: Decimal  |  Mandatory: No  |  Usage: Used to distinguish full-time from part-time employment.

XML Path: position@isPrimaryPosition  |  Description: Marks the primary position.  |  Data Type: Boolean  |  Mandatory: Yes  |  Usage: Determines which position governs the user's main account, department, and manager. See "Using the Position Filter".

XML Path: position/chart/unit  |  Description: Organisational unit the position belongs to.  |  Data Type: String / ID  |  Mandatory: Yes  |  Usage: Used to place the user in the organisational hierarchy and to assign group memberships.

XML Path: position/chart/unit/manager  |  Description: Line manager of the unit.  |  Data Type: String / ID  |  Mandatory: No  |  Usage: Used for manager look-ups, approval flows, and onboarding/offboarding notifications.

XML Path: position/positionInfo/positionCode  |  Description: Internal position code and title.  |  Data Type: String  |  Mandatory: No  |  Usage: Used for role-based access control.

XML Path: position/positionInfo/positionType  |  Description: Position or employment status code (e.g. F "Fast" [permanent], PF "Foreldrepermisjon" [parental leave], PU "Perm u/lønn" [unpaid leave], V "Vikar" [temporary substitute]).  |  Data Type: String  |  Mandatory: No  |  Usage: Source field for eADM's QualificationCode attribute. See "Understanding the QualificationCode Attribute" below.

XML Path: position/positionInfo/publicPositionCode  |  Description: Statutory position code (KS tariff, "KSSKODE").  |  Data Type: String  |  Mandatory: No  |  Usage: Used for tariff-based rules and statutory reporting.

XML Path: position/positionPercentage  |  Description: Percentage this specific position occupies.  |  Data Type: Decimal  |  Mandatory: No  |  Usage: Used in position filters. See "Using the Position Filter".

XML Path: position/positionStartDate, positionEndDate, @validFromDate  |  Description: Position validity dates.  |  Data Type: Date  |  Mandatory: No  |  Usage: Used to activate and deactivate access tied to the position.

XML Path: position/costCentres/dimensionX  |  Description: Cost centre / budget dimension.  |  Data Type: String  |  Mandatory: No  |  Usage: Used for organisational reporting; rarely used for access control.

XML Path: position/leave  |  Description: Leave period, type, and percentage.  |  Data Type: String / Date  |  Mandatory: No  |  Usage: Can be used to suspend or adjust access during long-term leave.


Compensation, Tax and Statistics Fields

XML Path: position/salaryInfo/basicSalary, yearlySalary  |  Description: Salary figures.  |  Data Type: Decimal  |  Mandatory: No  |  Usage: Not used for access control. Highly sensitive; recommended to filter out before import (see Warning above).

XML Path: position/positionStatistics/workClassification  |  Description: Standard occupation classification (STYRK).  |  Data Type: String  |  Mandatory: No  |  Usage: Used for statutory statistics reporting, not for access control.

XML Path: statistics/paiEducation  |  Description: Registered education level (PAI / SSB education code).  |  Data Type: String  |  Mandatory: No  |  Usage: Statutory reporting field; a separate concept from eADM's QualificationCode attribute, see below.

XML Path: employment/taxDetails  |  Description: Tax withholding details (tax card, percentage).  |  Data Type: String / Decimal  |  Mandatory: No  |  Usage: Sensitive; not used by eADM. Recommended to filter out.

XML Path: dependents/dependent  |  Description: Family members registered for pay or insurance purposes.  |  Data Type: String  |  Mandatory: No  |  Usage: Sensitive; recommended to filter out unless specifically required.



Organisational Hierarchy

The organisational hierarchy is delivered separately from the employee data, as a file containing one element with a flat list of 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.

XML

        
         
          
           
            
            
             PERMANENT
             
            
            
             
             
            
            
             
              
               
               
                PERMANENT
                
               
              
             
            
            
             
              
               
               
                PERMANENT
                
               
              
             
            
           
           
            
            
             PERMANENT
             
            
            
             
             
            
            
            
           
          
         
       

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: chart@id, chart@name  |  Description: Identifier and name of the organisation chart (typically the municipality or company).  |  Data Type: Integer / String  |  Mandatory: Yes  |  Usage: Root of the imported hierarchy.

XML Path: unit@id  |  Description: Internal Visma Enterprise unit ID.  |  Data Type: String  |  Mandatory: Yes  |  Usage: Matches position/chart/unit@id in the employee file, used to place employees in the hierarchy.

XML Path: unit@kode  |  Description: Short numeric chart code for the unit.  |  Data Type: Integer  |  Mandatory: Yes  |  Usage: Referenced by child units' parentid to build the hierarchy. See Note above.

XML Path: unit@parentid  |  Description: The kode of the parent unit (0 for the top-level unit).  |  Data Type: Integer  |  Mandatory: Yes  |  Usage: Builds the parent-child structure of the organisation.

XML Path: unit@name  |  Description: Department or unit name.  |  Data Type: String  |  Mandatory: Yes  |  Usage: Displayed in target systems and used to build group names.

XML Path: unit@unitType  |  Description: Type of unit (e.g. "Kommunedirektør", "Kommunalområde", "Eining", "Team", "Ikkje tilsett").  |  Data Type: String  |  Mandatory: No  |  Usage: Can be used in rule sets to distinguish organisational levels. See "Visma's Recommended Organizational Structure and its Impact on eADM".

XML Path: unit@company  |  Description: Company ID the unit belongs to.  |  Data Type: Integer  |  Mandatory: No  |  Usage: Used when importing data from multiple companies.

XML Path: manager@id, manager@name  |  Description: The unit's manager.  |  Data Type: String  |  Mandatory: No  |  Usage: Used for manager look-ups, approval flows, and onboarding/offboarding notifications.

XML Path: tasks/task  |  Description: A named task (e.g. "Attesterar", "Godkjenne fråvær") with the employees, and optionally a supervisor, assigned to it.  |  Data Type: String  |  Mandatory: No  |  Usage: Used to grant task-specific access, such as approval or invoicing rights, independent of formal position.

XML Path: roles/role  |  Description: A named role (e.g. "Leiar", "BI tilgang") with the employees, and optionally a supervisor, assigned to it.  |  Data Type: String  |  Mandatory: No  |  Usage: Used to grant role-specific access rights independent of formal position.

XML Path: contactInfo/*  |  Description: Postal address, visiting address, phone, and email for the unit.  |  Data Type: String  |  Mandatory: No  |  Usage: 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."