Skip to main content

Xledger Integration

All you need to know about the Xledger integration

Daniel Tollefsen avatar
Written by Daniel Tollefsen
Updated over 2 weeks ago

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 SettingsIntegrationsAdd 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

Did this answer your question?