Visma.net Payroll integration

This is how you connect Visma.net Payroll to Huma to enable an automated sync of absence and employee data

Step 1: Get a Tenant ID from Visma.net Payroll

  1. Log in to Visma.net Payroll as an administrator (with access to the App Store)
  2. Go to the Visma.net App Store, find and open the Huma HR app 
  3. Click Authorize app in the bottom of the Huma store page 
  4. Make sure both 'Read employees' and 'Write employees' are activated before you click Integrate

    If you would like Huma to transfer absence 'Calendar API' needs to be activated. 


  5. Click on your name in the top right and copy the Tenant ID to your clipboard

 

Step 2: Connect Huma to Visma.net Payroll

To access Integrations under System settings you'll need a System role with permissions to do Organization-wide settings. Read more here

  1. Login to your Huma account as administrator
  2. Go to 'Integrations' in the main menu
  3. Open 'Visma.net Payroll' in the list of integrations
  4. Read through the documentation
  5. Click 'Set up' in the upper right corner
  6. Paste the Tenant ID you copied earlier and check the box to verify you have the proper authority.



  7. Enable 'Create absence in Visma.net Payroll when added in Huma' if you would like to transfer absence to Visma.net Payroll.  Read more about how absences to integration works in general and specifically how absence in Visma.net Payroll are handled.

     image-png-Mar-07-2024-11-21-02-0325-AM
  8. Click 'Save' and a connection is now established between the two systems.

Now: On to the next step - it's where the magic happens:

Step 3: Activate the integration. Synchronize users and choose how to handle conflicts or missing values

  1. You should now have an active connection between your Visma account and Huma, and you can now click 'Synchronize users' to choose which employees to sync. 
  2. Huma will inform you of any conflicts or inconsistency between Huma and Visma.net Payroll and you will have to decide how to handle conflicts and/or missing values. You can decide wether or not you want to update Visma.net Payroll based on values in Huma or the other way around.



  3. Click 'Next' and decide how you want to sync users between Huma and Visma.net Payroll.
    • If users in Visma.net Payroll do not exist in Huma, you can add users to Huma
    • If users in Huma do not exist in Visma.net Payroll, you can add users to Visma.net Payroll.

  4. After deciding on the above click 'Synchronize users'



  5. Huma will now start synchronizing users with Visma.net Payroll. You will receive an email confirming the result.

 

Step 4: Your connection between Huma and Visma.net Payroll is active 🥳

Any changes made to supported fields in Huma (listed below) will be automatically updated in Visma.net Payroll in real-time. 

Please be aware that you need to sync users to get the latest changes from Visma.net Payroll. Changes made in Visma.net Payroll will not be automatically be updated in Huma. 

 


 

How to sync users

If you want to sync users manually you can always click "Syncronize users".

 

Users synced from Huma to Visma enter "Draft mode" in Visma, and mandatory fields in Visma need to be updated for the user to attain "active" status.

You can find the mandatory fields within:

- Personal details ( fx. id) 🆔

- Position (fx. employee contract/relationship) 📑

Screenshot 2024-05-15 at 13.10.30

 

1. Go to "employees" in Visma.

2. Click on the employee from the "draft section".

3. Click on "Personal details" and update mandatory fields, then save.
     Click on "Position" and update mandatory fields, then save.

"The user will now be assigned 'active' status."

If you have any questions regarding these fields, please contact Visma. 

 

Please be aware that you need to sync users to get the latest changes from Visma.net Payroll. Changes made in Visma.net Payroll will not be automatically be updated in Huma. 

 

Supported fields

These are the fields that will be synced between Huma and Visma.net Payroll

Field Comment
Given name

Syncing Huma to Visma
Will set an end date on current name in Visma and add a new from today.

Syncing Visma to Huma
Current name will be used.

Family name
Email Will update business email
Phone

Will update business phone

Employment start date 

Syncing Huma to Visma
Will set the activeStart of the selected position* to match the Employment start date in Huma

Syncing Visma to Huma
Will set the Employment start date in Huma to match the activeStart of the selected position*.

Employment end date 

Syncing Huma to Visma
Will set the activeEnd of the selected position* to match the Employment end date  in Huma

Syncing Visma to Huma
Will set the Employment end date in Huma to match the activeEnd of the selected position*.

Employment ID

Visma.net Payroll restricts max length to 12, longer IDs will be rejected

Required to create employee in Visma.net Payroll

Can not be unset in Visma.net Payroll

Bank account

Only Norwegian national bank account are sent to Visma. Other countries are reported as “Cash”. Use International bank account for other countries.

Address

Second line of the street address in Huma will not be synced to Visma.net Payroll.

Identification 

SSN - social security number  
 
 

Selected position*


If the employee has a current position, this will be the selected position.

If the employee doesn't have a current position, the most recent position will be the selected position.

If the employee doesn't have a current or past position, the future position will be the selected position.

Why do Huma only send Employment end date  when Visma.net Payroll also requires “End reason” when registering Last day of work?

Ordinary contract and Maritime employment types of positions in Visma require Position end reason to be filled when position activeEnd is setup. In such cases Position end reason will be set to "The employee has resigned from his/her position".

Similarly when Employment End Date in Huma is emptied we will clear Position end reason in Visma.
 

 


 

Necessary permissions

For the Huma integration to work, the correct permission must have access to

Employee API

  • Read employee data: ON
  • Write employee data: ON

Calendar API*

  • Read registrations: ON 
  • Write registrations: ON

*Calendar API must be activated if you want to transfer absence from Huma -> Visma.net Payroll

FAQ: Absence Integration

Read up on how Absence to Integration works in general 

How can I enable absence synchronization between Huma and Visma.net Payroll?

Activate the 'Create absence in Visma.net Payroll when added in Huma' option in your integration settings. This enables the automatic synchronization of absence information from Huma to Visma.net Payroll, ensuring that data is consistently updated across both platforms.

visma-integration-setup-enable-absence-sync

How do I map absence types between Huma and Visma.net Payroll?

Start by reviewing all absence types listed in Huma. For each one, select the corresponding event code in Visma to ensure accurate synchronization. Exclude any Huma absence types that are not relevant or necessary for transfer to Visma. Proper mapping is crucial as it ensures that only pertinent data is shared, maintaining the integrity and relevance of absence records in both systems.

image-png-Mar-07-2024-11-21-02-0325-AM

How are absences connected between Huma and Visma.net Payroll

Absences are connected based on the employee it regards, the start and end dates, and the type of absence. Ensure that calendar settings in Visma and Huma are aligned for correct calculation of days off and holidays.

Ensure "Calendar API" are activated (ON) on Huma App Application Permission.

See Necessary permissions for details.

 

Note - 
If you have already set up the integration and only want to start using the absence feature, you need to wait for an hour before you can edit the integration settings towards absence in Huma. Remember to check the box for Calendar API.

What triggers the transfer of absences from Huma to Visma.net Payroll?

Once registered, with an end date, and approved in Huma, absences are automatically transferred to Visma.net Payroll and assigned to the corresponding absence types / event codes.  

What happens to absences in Visma.net Payroll when changes occur in Huma?

Any updates or deletions made to an absence in Huma will result in corresponding changes or deletions in Visma.

How is absence time calculated in Visma.net Payroll?

Absence time is calculated based on Visma's working time settings. Absences with a full grade are registered as full days, while those with lower grades are adjusted accordingly.

What happens if an event code in Visma.net Payroll does not support grading?

If a Visma event code is incompatible with grading, Huma marks the absence as rejected, notifies relevant parties, and logs the error.

How is sick leave handled between Huma and Visma.net Payroll?

When 'sick leave' is created in Huma, it triggers the doctor certificate option in Visma to activate, with the certificate's start date aligning with the absence's start date in Huma.

Conversely, 'self-certification' (egenmelding) absences noted in Huma will not activate the doctor certificate option in Visma. Should there be a limit on the number of occurrences for the mapped event code, and the registered absence in Huma exceeds this limit, the absence will be rejected, log an error and notify relevant parties.

What occurs if an absence is deleted in Huma?

If an absence is deleted in Huma, it will also be removed from Visma to keep both systems synchronized.

Can absence types be modified within Visma.net Payroll?

Yes, you can modify absence types in Visma to fit different needs within your organization. Ensure these modifications are reflected in Huma Absence type settings for consistent data transfer.

Are absences without an end date transferred to Visma.net Payroll?

No - an absence needs to have an end date to be transferred to Visma.

Why are some absences rejected when they are registered in Huma?

Absences can be rejected for various reasons. Common causes include the user not having an active employment status at the time of the absence, being marked as inactive, or having an employment start date in the future. There might be limitations on the event code settings in Visma.

  • Additionally, conflicts with existing absences already registered in Visma may lead to rejections.
  • The employees also need to have been assigned the correct information under
    "Employees" => "Personal Details" and "Position" (e.g., salary and work hours).
  • Remember to allocate the correct types of leave and balance under
    "Calendar" => "Vacation Management" => "Vacation Calculations".
  • Employees also need to have a %>0 in "Part time factor" in their profile card in Visma. 

For detailed explanations of specific errors, check the integration error log on Huma's integration page. This log provides in-depth descriptions of the issues that have occurred.

Why cant I register "Sick child" absence?

To register "Sick child" absence in Huma and sync it to Visma, you need to fill out "Employee management - Children and emergency contacts" in Visma. 

Huma does not support sync for "Children-field" to Visma, so please fill out this field manually in Visma. 

I have noted 'Notes' in the details for the absence. Will this be transferred to Visma as well?

Yes, if you leave a "note" in the details of the absence the notes will be shown when you accept the absence in Visma. 

 

FAQ: Visma.net Payroll Salary Integration

Why should I sync salary data stored in Huma to Visma.net Payroll?

Syncing salary data ensures that the information in Visma is consistent with the records in Huma, streamlining HR and payroll processes. Visma requires continuous salary records for each employment, and this integration helps manage updates automatically, reducing manual errors and ensuring accurate salary information across both systems.

How do I send salary data automatically from Huma to Visma.net Payroll?

To send salary data automatically, you need to activate the integration manually in the settings. Once activated, the salary changes made in Huma will be automatically reflected in Visma.

What are the conditions for a successful salary transfer from Huma to Visma.net Payroll?

To transfer a salary modification from Huma to Visma, the following conditions must be met:

  • Visma.net Payroll integration needs to be have "Update salary" enabled.
  • The user is connected to the Visma.net Payroll integration.
  • An employment is matched.
  • The salary’s currency is NOK.

What fields are updated in Visma.net Payroll?

These are the salary fields that will be sendt from Huma to Visma.net Payroll:

Huma field Visma.net Payroll
From date

salaryInformation.activeStart

If no value is set, date is set to infinity in Visma.net.

To date

salaryInformation.activeEnd

If no value is set, date is set to infinity in Visma.net.

Salary amount

salaryInformation.hourlySalary

salaryInformation.monthlySalary

salaryInformation.yearlySalary

Interval

salaryInformation.contractSalaryType

HourlyHourly

MonthlyMonthly

YearlyYearly

Interval

salaryInformation.salaryType

HourlyFixed salary

Monthly, YearlyVariable salary 

Weekly salary in Huma will not be sent to Visma.net Payroll

The integration only supports salaries in NOK (Norwegian Kroner). Any salary data in another currency will not be transferred to Visma, and an error will be logged.

How does the integration handle salary updates?

  • Creating/Updating Salaries: If an existing salary in Visma matches the salary being created in Huma, it will be updated. If no matching salary is found, a new salary will be created in Visma.

  • Overlapping Salaries: If salaries in Visma overlap with the salary from Huma, the integration will either remove empty salaries (i.e., those with zero values) or adjust the existing Visma salary based on its start or end date.

How are overlapping salaries managed between Huma and Visma.net Payroll?

  • Empty salaries in Visma.net Payroll: If Visma has an empty salary (with all values set to zero), it will be removed when a new salary from Huma overlaps with its period.

  • Salaries without end dates in Visma.net Payroll: If a salary in Visma does not have an end date and a new salary starts after it, the Visma salary will be ended, and the new Huma salary will be added.

  • Visma.net Payroll salaries without start dates: If Visma salary lacks a start date and Huma salary ends before it, the Visma salary will be assigned a start date, and the new salary from Huma will be added before it.

If none of these conditions are met, an integration error will be logged, and no changes will be made in Visma.

What happens if there is no matching employment in Visma.net Payroll?

In order to create or update salaries in Visma, a matching employment record must exist. The integration will look for an employment period that contains the salary period. If no employment is found, an error is logged.

How does the integration handle bulk salary updates (Salary revisions)?

During a salary revision in Huma, the integration processes all salary changes for affected users. However, if any modification attempts to affect more than one Visma employment for the same user, an error is logged, and no updates are made in Visma.

How does the integration handle different currencies?

The integration only supports salaries in NOK (Norwegian Kroner). Any salary data in another currency will not be transferred to Visma, and an error will be logged.

What happens when a salary is deleted in Huma?

If a salary is deleted in Huma, the matching salary in Visma is also deleted.

Additional Notes:

  • For non-draft users in Visma, salary history cannot be deleted, but salaries can be emptied.
  • Visma merges consecutive salaries with the same amount, which may cause desynchronization if multiple identical salary records are created in Huma.