Visma.Net integration

Modified on Tue, 6 Jan at 3:06 PM

Important: For all new integration setups, it is strongly recommended to perform your initial sync with only a few users in the scope. This helps ensure data accuracy and smooth onboarding before including your whole organization.


Reference General Setup
Before configuring this integration, please complete the Simployer HRM Integration – General Setup Guide. This guide covers the initial steps for setting up integrations in Simployer and ensures that you have configured the necessary base settings for successful data sync.

Overview

With this Visma.net integration you will connect Simployer One to your Visma.net account through API and can then do the following:

  • Scheduled and/or manual sync of employee data such as personal information, employment data, compensation data and more from Simployer One to Visma.net.

  • All new employees will be created as draft so that the final approval of activating the new employee(s) is done in Visma.net

  • Sync time off data such as sickness, parental leave and vacations to Visma.net for the period that you choose. You have full control over what absences are exported for what employees and for what period.


Requirements

Simployer One to Visma net integration is currently “Invite Only”. Hence, customers need to request for an invitation code through customer support and follow the steps below. This needs to be done before adding the Configuration in Simployer One. 


Steps for approving the Visma integration

  1. Log in to the Visma App Store with your Visma account.
  2. Ensure you are logged in as a user with the Integration Administrator role for your company.
  3. Select your company in the App Store.
  4. Enter the invitation code we provided.
  5. Approve the integration by selecting the required scopes (scopes: read & write) and clicking Integrate
  6. The integration will appear under My Apps in the App Store.


Finding your tenant ID

  • Your company has a unique Tenant ID required for integration.
  • Find it in the top-right corner of the Visma App Store, under the company selector.
  • Share this Tenant ID with us if requested.


The invitation code is valid for 5 days and will be removed from the system after 30 days if not used.



The following requirements is needed to for the integration. 


Visma.net

You need to have access to the following valid credentials

  • Visma tenant ID

Simployer One

  • Valid Access token for Public API

At-least one Access token for Public API needs to be created that will be used to connect the two systems. If you have not created an access token you need to do that from Settings - Access tokens

Terminology & Field Mapping (Simployer One → VismaNet)

This section explains what key fields are called in VismaNet so customers can more easily verify data and troubleshoot.


Key Field Names in VismaNet

Concept

In Simployer One

In VismaNet

Occupational code

Occupational code in Employment Note field

Occupation Code (Type of Work)

Employment rate

Employment rate

Part Time Factor

Employment Type (Temporary or Permanent)

Employment Type

Appointment Type

Payout period

Payout period

Contract Salary Type

Salary amount

Compensation amount

Monthly Salary / Hourly Salary / Yearly Salary (depends on Contract Salary Type)

Salary Field Selection in VismaNet: (based on Contract Salary Type)

Payout Period in Simployer One determines the Contract Salary Type in VismaNet:, which determines which Visma salary field is updated.

Payout Period (Simployer One)

Contract Salary Type (VismaNet:)

Visma Salary Field Updated

Monthly

Monthly

Monthly Salary

Hourly

Hourly

Hourly Salary

Annual

Annual

Yearly Salary

Important: Amount is sent to Monthly Salary / Hourly Salary / Yearly Salary based on the Contract Salary Type.


Before You Start (Employee Data Requirements)

Every employee must have complete information in Simployer One before they can be synced to VismaNet:. Missing data will cause the employee to be skipped.

Mandatory Information

Personal Information

  • First Name

  • Last Name

  • Birthdate

  • National ID (SSN)

  • Work Email Address

  • Full Address (including country)

Bank Account

Choose based on account type:

Norwegian Bank Accounts:

  • Country

  • Account number

International Bank Accounts:

  • Country

  • IBAN

  • BIC/SWIFT code

  • Account number

Employment Details: (At least one employment record)

  • Employment start date

  • Employment rate (in percentage, e.g., 100%) (VismaNet: Part Time Factor)

  • Occupational code in employment note field (must be 7 digits) (VismaNet: Type of Work)

Salary Information

  • Salary amount

  • Salary Effective Date

  • Payout period must be one of (VismaNet:: Contract Salary Type):

    • Monthly

    • Hourly

    • Annual

  • Valid active compensation record


Field Rules & Formats

Occupational Code Format

The occupational code is a 7-digit Norwegian occupational classification code that must be entered in the Employment Note field. (Visma.net: Type of Work)


Supported Formats

Format

Example

Notes

Exact 7 digits

0111101

Basic format

With description

3120105 - Computer Engineer

Code followed by description

Important: If the occupational code format in “note” field is invalid, the employee will be skipped during sync.


What You Can Change in Visma

Some fields can be changed directly in Visma.net without being overwritten by the next sync:


Safe to Change in Visma

These will NOT be overwritten:

  • Payment Type - If you change from bank transfer to cash, your choice is preserved

  • Private/Mobile phones - Manually-added phone numbers (non-Business type)

  • Private emails - Manually-added email addresses (non-Business type)

  • Tax information * Pension details * Union memberships * Sick leave information * Company cars


Will Be Updated from Simployer One

These fields are included in update. Simployer One is considered as master for these fields, so changes will be overwritten in vismanet. It is recommended to make changes to these fields in Simployer One only.

  • Employee name

  • Birthdate

  • National ID

  • Business email (work email from Simployer One)

  • Business phone (phone number from Simployer One)

  • Address

  • Bank account details

  • Employment rate

  • Occupational code

  • Salary amount

  • Employment type (Temporary/Permanent)


Hardcoded Fields (Cannot Be Changed)

Some fields are automatically set to specific values by the integration and cannot be customized. These are system defaults:


Work Time Agreement

  • Fixed Value: 0387f476-2471-4816-8b94-cdabb8fe4c21 (Normal 37.5 hours per week - “Normalarbeidstid - 37,5 t/u (Norway)”)

  • What This Means: All employees are synced with this standard work time agreement.

  • Can you change it in Visma.net? Yes - you can manually change this in Visma.net after the initial sync

  • Will sync overwrite your change? No - this field is never updated by future syncs.


Type of Position (Employment Type in VismaNet)

  • Fixed Value: Ordinary

  • What This Means: All employees are synced as "Ordinary" position type

  • Can you change it in Visma.net? Yes - you can manually change this to other types (e.g., maritimArbeidsforhold, Freelancer, Pension)

  • Will sync overwrite your change? No - this field is never updated by future syncs


Email Type

  • Fixed Value: Business

  • What This Means: Email addresses from Simployer One are always synced as "Business" type

  • Can you add other email types in Visma.net? Yes - you can add additional email addresses with different types (e.g., Private)

  • Will sync overwrite your additions? No - only the Business email is updated; your additional emails are preserved


Phone Type

  • Fixed Value: Business

  • What This Means: Phone numbers from Simployer One are always synced as "Business" type

  • Can you add other phone types in Visma.net? Yes - you can add additional phone numbers with different types (e.g., Private)

  • Will sync overwrite your additions? No - only the Business phone is updated; your additional phones are preserved


Payment Method

  • Fixed Value: bank

  • What This Means: All employees are set up for bank transfer payment

  • Can you change it in Visma.net? Yes - you can change payment method to cash if needed

  • Will sync overwrite your change? No - payment method changes in Visma.net are preserved

Print Payslip

  • Fixed Value: false (disabled)

  • What This Means: The "Print Payslip" option is disabled by default

  • Can you change it in Visma.net? Yes - you can enable this in Visma.net

  • Will sync overwrite your change? No - this setting is preserved


Salary Type

  • Fixed Value: Period

  • What This Means: Salary is recorded as period-based (not hourly-based at the system level)

  • Note: This is different from "Contract Salary Type" (Monthly, Hourly, or Yearly), which IS controlled by the Payout Period in Simployer One and will be synced


Employment End Reason (when employee has end date - offboarded)

  • Fixed Value: arbeidstakerHarSagtOppSelv (Employee has resigned)

  • What This Means: When an employee's end date is synced, this termination reason is automatically set

  • Can you change it in Visma.net? Yes - you can manually change to a different reason (e.g., employer termination, contract expired)

  • Will sync overwrite your change? No - if you manually update the end reason in Visma.net, it will be preserved


Key Takeaway: All hardcoded fields can be manually adjusted in Visma.net after the initial sync, and your changes will not be overwritten by future syncs.


How Position and Employment Work

Understanding this concept helps troubleshoot issues:


Position or Employment (Visma.net)

  • Represents an employee's entire tenure at the company

  • Created when employee is first synced

  • Start Date is based on hire date in Simployer

  • Tracks changes over time using history records


Employment (Simployer One)

  • Can have multiple records during the same tenure.

  • Each change is tracked in Visma as a history entry within the same Position. Therefore, in Simployer One for any update to rate, employment type, and/or occupational code, a new employment record should be created with start date as the the start of date required in Vismanet.


Example

Scenario:

Employee hired Jan 1, 2024, gets a rate change on July 1, 2024

In Simployer One:

Employment 1: Jan 1 - June 30, 2024 (80%)

Employment 2: July 1, 2024 - present (100%)

In Visma.net:

ONE Position starting Jan 1, 2024

Employment rate(Part Time Factor) history: 80% (Jan 1 - June 30, 2024)

Employment rate(Part Time Factor) active: 100% (July 1, 2024 - present)

Key Point: Changes in Simployer One Employment do NOT create new Position/Employment in VismaNet. They update the existing Position with new history entries.


How Compensation Works

Understanding this concept helps troubleshoot salary sync behavior:


Compensation (Simployer One)

  • Employees can have multiple compensation records (for example, during a Salary Review process customers can create compensation with backdated start dates).

  • At a time, only the most recent compensation record is synced to Visma.net.


Salary Sync Behavior (Visma.net)

  • Only the most recent compensation amount is synced to Visma.net.

  • Compensation records with backdated start dates are supported. As long as the most recent compensation record is the one currently applicable, it will be synced to Visma.net.


Example (Salary Review with backdated start date)

Scenario:
Customer runs a Salary Review and creates a new compensation record in May with a backdated start date.

In Simployer One:

  • Compensation 1: Effective Date Jan 1, 2024 — Amount: 45,000 (Monthly)

  • Compensation 2: Effective Date Apr 1, 2024 — Amount: 48,000 (Monthly) (created in May, but backdated)

What gets synced to Visma.net:

  • At a time, only the most recent compensation record is synced, so the integration will send 48,000 (Monthly Salary) based on Contract Salary Type (Monthly).

Key Point:
Compensation records with backdated start dates are supported. As long as the most recent compensation record is the one currently applicable, it will be synced to Visma.net.


Salary Types: Monthly, Hourly, Annual

The integration supports three different salary types based on how employees are paid.


How It Works

Payout Period in Simployer One determines which Visma salary field is used to send salary amount:

Payout Period

Visma Field Used

Example

Monthly

Monthly Salary

45,000 NOK per month

Hourly

Hourly Salary

250 NOK per hour

Annual

Yearly Salary

540,000 NOK per year

Important: The system automatically sets the correct salary field based on the payout period. You don't need to do anything special - just ensure the payout period and compensation amount is set correctly.


Changing Salary Type

If an employee's payout period changes (e.g., from Monthly to Hourly):

  1. Update the payout period in Simployer One

  2. Update the compensation amount to match the new period

  3. Next sync will create a new salary history entry in Visma


Employment Type: Temporary vs Permanent

Supported Types

The integration supports two employment types: * Permanent (fast in Visma) * Temporary (midlertidig in Visma)


How It's Determined

In Simployer One, if the employment type field contains the word "temporary" (case-insensitive), it syncs as Temporary. Otherwise, it syncs as Permanent.


Changing Between Types

You can update an employee from Temporary to Permanent or vice versa:

  1. Create new Employment with updated Employment type in Simployer One.

  2. Next sync will create a new employment form history entry in Visma

Note: If the employment type in Visma is set to something other than Temporary or Permanent, the integration will NOT update it. This preserves special employment types set directly in Visma.


Points to Remember:


Before Integration Setup:

  • New Tenant in Simployer One with Employees already existing in Vismanet:

  • Ensure Employee Hire date is same as Position Start Date in Vismanet.

  • Ensure Bank Account, SSN and other fields have accurate Country, Currency added in Simployer One.

  • Ensure Employment in Simployer One has Occupational code (Type Of Work in vismanet).

  • New Tenant in Simployer One with no prior data in Vismanet:

  • Ensure fields mandatory for this sync have valid values in Simployer One.


After Integration Setup:

  • Every new employee is created as a draft employee in Vismanet.

  • After the first sync, this draft employee should be manually hired in Vismanet. This can be done by Edit Draft → Hire Employee in new Vismanet UI. Updates should only be made on Active/Hired Employee if history of those updates are required in VismaNet.

  • Any update to the fields included in Sync should be done in Simployer One. Manual update of those fields directly in Vismanet should be avoided as Simployer One is the master system for this integration.

  • DO NOT Delete or Update the Hire Date once employee is synced to Vismanet.


Troubleshooting


Employee Not Syncing?

Step 1: Check for Error Messages Look in sync logs for messages like: "Skipping this employee. [Field] is missing"

Step 2: Verify Required Data Go through the Employee Data Requirements checklist above.

Step 3: Common Issues

Issue

Solution

Missing bank account country

Add country field to bank account

Invalid occupational code

Check Employment Note field - must be 7-digit code

Missing payout period

Set payout period to Monthly, Hourly, or Annual

No active employment

Ensure active employment has no end date

Missing salary information

Add compensation record with amount

Salary Not Updating?

Possible Causes:

  1. No active employment - Check if employment has an end date in the past

  2. Wrong payout period - Must be Monthly, Hourly, or Annual (not Weekly, etc.)

  3. Missing compensation - Verify compensation record exists with an amount

Common Error Messages

Error Message

What It Means

How to Fix

"Skipping this employee. First name is missing"

Employee profile incomplete

Add first name in Simployer One

"Skipping this employee. Address country field is missing"

Address incomplete

Add country to employee address

"Skipping this employee. Bank account country is missing"

Bank account incomplete

Add country to bank account

"Skipping this employee. International bank account is missing IBAN"

International account needs IBAN

Add IBAN for non-Norwegian accounts

"Skipping this employee. International bank account is missing BIC/SWIFT"

International account needs BIC

Add BIC/SWIFT code

"Skipping this employee. Norwegian bank account is missing account number"

Norwegian account needs number

Add account number

"Skipping this employee. Employment is missing start date"

Employment record incomplete

Add start date to employment

"Skipping this employee. Employment note field must contain a valid 7-digit typeOfWork code"

Invalid occupational code

Add valid 7-digit code to Employment Note

"Skipping this employee. Salary is missing"

No compensation record

Add compensation/salary information

"Skipping this employee. Payroll information is missing"

No payroll record

Add payroll information

"Skipping this employee. No active employment found"

All employments ended

Check employment end dates

"Unsupported payout period: WEEKLY"

Wrong payout period type

Change to Monthly, Hourly, or Annual


Time Off data

Time off data is handled from Manage Time → Export time off.

Simployer fields

VismaNet fields

Mapping conditions (if any)

(Simployer → VismaNet)

Leave type code

eventCode

code from the Leave type. Needs to be configured on each leave type according to Visma.net documentation.

Duration

inputType

One day or longer period → “FullDay” is sent to Visma for each day

Half day → is sent to Visma as “Percent”

Minutes → is sent to Visma as “Interval”

properties.percent

properties.interval

Value of “Percent”

OR

value of “Interval”

Leave startdate

startDate

For longer leaves → Earliest date within the requested payrollDateRange. Example. An employee has Parental leave for all of 2024 (January 1 -- December 31). When selecting April and exporting leaves for only April 2024-04-01 will be used as the start date.

Leave enddate

EndDate

For longer leaves → latest date within the requested payrollDateRange. With same example as above 2024-04-30 will be used as EndDate


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article