Xledger Integration

Modified on Thu, 18 Dec at 7:16 AM

All you need to know about the Xledger standard integration

Overview

With this integration you will connect Simployer One to your Xledger account via API and can then do the following:

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

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


Available in: Norway

Xledger requirements

You need to have access to the following valid credentials.

  • Access token: this can be found in here: https://xledger.net/f/api-tokens

    • Click on Generate new token

    • Provide a Token description, for example, "Simployer One" or "Simployer"

    • Select  «Read» and «Write» for Accounts payable, Accounts receivable, Common and General Ledger

    • Click Generate token

    • Once the token has been generated, you can use it when setting up the Xledger integration in Simployer One

 

Adding the integration

The integration is activated from Settings → IntegrationsAdd Integration (in the "Integrate with payroll system" section).



  •  In the API Integrations section, select Xledger
  • Click Next to start the configuration wizard
  • Enter all the details needed for the connection

 

Settings

You can choose how the integration sync for employees is executed. The options available are as follows:

  • Manual sync

    • The data is manually synced to Xledger by the user

    • This can be valuable if you have the scheduled sync turned off and want to control when data is synced to Xledger. Either during the implementation phase or during times when an update is not wanted due to process and payroll timing

    • Manual syncs can be performed even when a scheduled sync is configured. This may be necessary if there have been a significant number of changes in Simployer One after a scheduled sync has been executed

  • Scheduled sync

    • The sync runs on a schedule that you can define

    • Options include the day(s) of the week and the time of day for the sync to be executed




Note: when a scheduled sync is enabled, it is queued and executed shortly after 06:00 CET the following day.  

 

Scope

  • Scopes allow more granular filters that determine which employees are included in the employee sync

  • This is especially useful if you require a specific set of employees to be excluded from the export to Xledger.

  • Scopes follow the same scope behavior as seen in other Simployer One featuresHR.



Employee data

Employee data is synchronized from Simployer One to Xledger. This means that if data is updated in Xledger on "data fields" and then the sync from Simployer One is done the data in Xledger will be overwritten.

 

When the sync is executed it will compare the data in Simployer for the "data fields" to see if there is a difference between the values for those fields in Xledger. If there is no change, the user will not be updated. If there is a change present, the data will be updated.

 

Some fields are currently hardcoded or have a default value, see the table below for more information.


Simployer Field

XLedger Field

Notes

Person.firstName 

Contact.firstName 

Required 

Person.lastName 

Contact.lastName 

Required 

Person.firstName + lastName 

Contact.name 

Concatenated 

 

Contact.initials 

First letter of first + last name 

Person.email 

Contact.email 

Required. Sync blocked if employee number exists in Xledger with different email 

Person.phoneNumber 

Contact.phone 

 

Person.address.streetAddress1 

Contact.streetAddress 

Address changes sync to both Contact and Supplier 

Person.address.postalCode 

Contact.zipCode 

 

Person.address.city 

Contact.place 

 

Person.birthdate 

Contact.birthday 

 

Person.nationalIdList\[0\].nationalId 

Contact.socialSec 

First national ID in list, or empty if none 

 

Contact.countryId 

Hard-coded: 5 (Norway) 

Supplier

Simployer Field

XLedger Field

Notes

Employee.employeeNumber 

Supplier.code 

 

Person.firstName + lastName 

Supplier.description 

Concatenated 

Person.bankAccount.accountNumber 

Supplier.bankAccount 

Optional 

Person.address.streetAddress1 

Supplier.streetAddress 

Synced from Contact 

Person.address.streetAddress2 

Supplier.streetAddress2 

 

Person.address.postalCode 

Supplier.zipCode 

 

Person.address.city 

Supplier.place 

 

 

Supplier.countryDbId 

Hard-coded: 5 (Norway) 

Employee

Simployer Field

XLedger Field

Notes

Employee.employeeNumber 

Employee.code 

Required. Must be unique 

Person.firstName 

Employee.firstName 

 

Person.lastName 

Employee.lastName 

 

Person.firstName + lastName 

Employee.description 

Concatenated 

Employee.hireDate 

Employee.dateFrom 

Required 

Employee.hireDate 

Employee.employmentFrom 

Required 

Employee.jobTitle 

Employee.positionValueDbId 

References the Job Title 

Job Title

Simployer Field

XLedger Field

Notes

Employee.jobTitle 

ObjectValue.description 

Required. Created in Xledger if doesn't exist (definitionId: 713 - Position Value). Matching is case-insensitive. Employees without job title are skipped. This job title is automatically linked to Employee, Position, and Payroll Rate records. 

Position

Simployer Field

XLedger Field

Notes

Employment.startDate 

EmployeePosition.dateFrom 

Required. For existing employees: only positions starting within current year + last year are synced (older positions may be locked by accounting). All positions synced for new employees. 

Employment.endDate 

EmployeePosition.dateTo 

Optional 

Employment.rate 

EmployeePosition.parttimePct 

Must be 100 (only 100% FTE supported, part-time skipped with warning) 

Employment.employmentId 

EmployeePosition.internalInfo 

Used to match existing positions 

 

EmployeePosition.mainPosition 

Based on Employee.mainEmploymentId 

 

EmployeePosition.employmentTypeDbId 

Hard-coded: 28136 (only permanent_employment supported) 

Employee.jobTitle 

EmployeePosition.positionDbId 

Job title reference. Preserved for historical positions (start date in past). 

Payroll Rates

Simployer Field

XLedger Field

Notes

Payroll.payrollEffectiveDate 

PayrollRate.dateFrom 

Cannot create/update rates before current month for existing employees (accounting periods locked). New employees can have historical rates during initialization. 

Compensation.compensationAmount 

PayrollRate.rate 

Converted to annual amount: Hourly = as-is (hourly rate), Monthly = × 12 (annual equivalent), Annual = as-is (already annual). Recommended: Use annual payout period in Simployer to avoid conversion. 

Compensation.compensationCurrency 

 

Must be NOK (other currencies skipped with error) 

Payroll.payrollAdditionalProperties.payoutPeriod 

PayrollRate.rateElementDbId 

4319462 (hourly) or 4319459 (monthly/annual) - determines how rate is interpreted 

Employee.jobTitle 

PayrollRate.positionDbId 

Job title reference. Preserved for historical rates (effective date before current month). 


Requirements and limitations

  • Employee.employeeNumber required

  • Employee.hireDate required  

  • Employee.jobTitle required (employees without job title skipped)

  • Person.email required

  • Employment.startDate required (employments without start date skipped)

  • Only active employees processed (earliest hired if multiple exist)

  • Only permanent employments (permanent_employment) with 100% rate synced (part-time skipped with warning)

  • Only NOK currency for payroll rates (other currencies skipped)

  • Historical data (positions/rates before current month/year) cannot be synced for existing employees due to locked accounting periods

  • Supported payout periods: HOURLY, MONTHLY, ANNUAL (other periods skipped)




Absence data

Absence data is synchronized from Simployer One to Xledger. This means that if data is updated in Xledger on "data fields" and then the sync from Simployer One is done the data in Xledger will be overwritten.

 

When the sync is executed, it will compare the data in Simployer for the "data fields" to see if there is a difference between the values for those fields in Xledger. If there is no change, the user will not be updated. If there is a change present, the data will be updated.

 

Some fields are currently hardcoded, see below for more information.

 

Simployer field

Xledger field

Mapping conditions

Data

 

 

 

leavePercent

 Defaulted to 100

AbsenceStartDate

timeFrom

 

AbsenceEndDate

timeTo

 

AbsenceEndDate

toDate

 

AbsenceStartDate

fromDate

 

 

Comment

Defaulted to "temporary comment"

Codes

 

 

childcare

“CS”

 

vacation

“V”

 

sick_leave

“SWN”

 

{custom leavecode}

{custom leavecode}

A custom leave code must be set to the exact value defined in Xledger

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