Back

Silae Integration

Discover how to effortlessly integrate your Factorial account with Silae to streamline your payroll process. Sync new hires, employee updates, and absences from Factorial to Silae for greater efficiency and accuracy.

Before using the integration with your live account, we recommend testing it in a demo account first. If you want to do that, ask your point of contact in Factorial for the next steps.

To do this, first you need set up the integration in your Silae demo environment and conduct the testing. Once the integration is confirmed to work correctly, it will be implemented in your live account.


Step by step

1. Verify data consistency between Factorial and Silae

Check that the data from Factorial and Silae is consistent before activating the connector.

2. Install Silae’s integration in Factorial Marketplace
On your sidebar, go to Discover → Integration → Silae API Connector → Click "Install."


 

 

3. Complete the settings, based on the information your bookkeeper has shared from Silae:

  • The folder numbers (corresponding to legal entities)
  • The establishment codes (corresponding to workplaces)
  • The absence codes that the user wants to synchronize
  • The counters codes that the user wants to adjust in Factorial

Here is where you need to complete the code through the settings:

 

The folder numbers and establishment codes are mandatory for the integration to work.

 

4. Provide required Silae and Factorial information

Collect all the required information from your Silae and Factorial account and share it to our partner Fortify :

support@fortifydigital.zendesk.com

  • From Silae (Your bookkeeper may need to assist in creating these in Silae):
    • Client ID - Silae domain key
    • Client Secret - Silae API model key
    • API Access Configuration Key (referred as Subscription Key or Master Key) - Key for the Silae folder(s) linked to a user account
    • SILAE file number (for connection on Factorial)

For additional guidance, check the Silae API Activation User Guide. If you want to test first the integration in the demo environment of Silae, ask for both (demo and production environment) at the same time.

 
  • From Factorial:
    • API key (you need to copy once generated, since it is only displayed once in Factorial). For additional guidance, check the Factorial Help Center article.

5. The integration is ready to be used!

Once you receive the confirmation from your point of contact in Factorial, the integration will be ready to be used!


How to make use of the integration?

General process to send data to Silae

Data is transferred from Factorial to Silae through our "Employee Payroll Updates" section. Any action you take in Factorial that affects payroll will generate an employee update.

To ensure the correct updates are synced, it's important to activate the relevant employee updates in Factorial. These may include new hires, contract changes, personal data updates, and absences. To do this, go to Settings > Payroll > Employee Updates, and enable all the updates you wish to sync with Silae.

When an employee update is generated, you will be able to review it and send it to Silae by marking the employee update as “Completed”. Transmission times may vary depending on the period. For example, if a large number of incidences are sent at the end of the month during payroll closing, processing may take up to 5–10 minutes to complete.

The status of the employee updates can be changed in bulk in Factorial, however, this is not compatible with the integration. When marking several employee updates as Completed in Factorial, those incidences will NOT be synced to Silae.

 

You won’t be able to see in Factorial whether the data has been successfully sent to Silae. To verify, you will need to check the employee record in Silae or check the daily email summarizing the data sent and identifying any errors.

 
 
 

New hires synchronization

When a new employee is created in Factorial, an employee update is created. You can open it and check that all the data is correct, and then mark it as "Completed" to synchronize the change with Silae.

Social Security Number and Contract Type are mandatory fields. If they are sent empty, the new hire will not be created in Silae.

 

 

Other important things to consider:

  • When creating the employee and loading the contract information, make sure that the CONTRACT DATE is the same in SILAE. Otherwise, Silae will create a new contract, resulting in duplication.
  • When having employees without Social Security Number → You need to create the employee in Silae first to get a provisional social security number (after the first payroll), and then input it into Factorial. From that point on, you will be able to synchronize the changes of this employee from Factorial to Silae.
  • The date of birth and the gender provided must be consistent with the social security number.
  • The birth name is mandatory. If it is left empty, the surname used will be treated as the birth name to avoid blocking the creation.
  • The matricule does not have to be added in Factorial. When the new hire is synced, we will automatically populate the matricule field in Factorial. You can enable an option in Silae to ensure the uniqueness of the personnel number across multiple files or file groups if necessary.
  • The employment start reason will be sent by default as the code 001: Hiring, start of activity, direct recruitment or recruitment via competition (public service), start of detachment, start of cultural life (religions). You can modify this in Silae, if needed.

The new employee will be added to Silae with an employee code that sequentially follows the highest existing code in the client's Silae account.

 

 

Fields being sent to Silae

  1. Employee data
    • First name
    • Last name
    • Social security number (the client must select the social security number in the identification number field)
    • Maiden name (if left blank in Factorial, the first name will be synchronized here as well)
    • Gender
    • Professional email
    • Personal email (if left blank in Factorial, the personal email will be replaced by the professional email)
    • Mobile phone
    • Home address (city, country, state, street, number, and postal code)
    • INSEE commune code
    • Date of birth
    • Birth department (it takes it from the SSN & if it is outside of France, it is sent as code “99” and the user needs to edit it manually in Silae)
    • Birth country code (it takes it from the SSN)
    • Nationality
    • IBAN
    • BIC
  2. Contract data
    • Entry date (based on the Start date field of Factorial’s contract)
    • Contract start date (based on the Effective date of Factorial’s contract)
    • Contract version Start date (based on the Effective date of Factorial’s contract)
    • End date
    • Start reason (by default synchronized reason: 001)
    • Establishment
    • Job title - under “other job title”
    • Employment contract code (must be a contract type available by default in Factorial)
    • Base salary (must be in a monthly basis or annual basis)
    • For hourly employees → Working hours in contract (must be in a monthly basis or weekly basis). It will populate the “Normal monthly hours” and “Overtime monthly hours” fields in Silae)
    • For employees on a day-based contract → Number of days

 

 
 

Employee & contract data changes synchronization

When an employees’ profile or contract data is updated in Factorial, an employee update is created. You can open it and check that all the data is correct, and then mark it as "Completed" to synchronize the change with Silae.

The following fields will generate an employee update that can be synced to Silae:

  1.  Employee data
    • Last name
    • First name
    • Professional email
    • Mobile phone
    • Home address (city, country, state, street, number, and postal code)
    • Nationality (only the code is changed, text has to be changed manually from Silae)
    • IBAN
    • BIC
  2.  Contract data 
    • Employment start date
    • Contract start date
    • Entry date
    • End date
    • Establishment
    • Job title (under "other job title")
    • Employment contract code (must be a contract type that is available by default in Factorial)
    • Base salary (must be the monthly salary or the annual salary)
    • For hourly employees:
      • Contractual hours - monthly or weekly hours must be entered (these will populate the “Normal monthly hours” and “Overtime monthly hours” fields in Silae)
    • For employees on a day-based contract:
      • Number of days

Important: When you want to send contract changes for an existing employee in your company, make sure to carefully check the contract dates in Factorial and Silae to avoid accidentally creating a new employee record in Silae.

 

 

How to Create an Addendum or Simply Modify a Contract

  • Create an Addendum: When a contract change occurs, if you want to create a new job in Silae, go to the Contract tab in your employee's profile on Factorial, click on New Conditions, and enter the date of the change.
  • Modify a contract: If you want to make a modification without creating a new job in Silae, click on the three dots and select Correct Conditions.

Make sure that the effective date matches the date of the job in Silae. If it does not, a new job will be automatically created in Silae:

 

Managing Contract Endings, Extensions, and Successions

What is the correct workflow to follow in Factorial ?

If the employee is leaving:

  • Close the employee’s profile in Factorial, enter the end date and its reason; the contract termination entry will appear in the "Updates" section of the Payroll module.

The default contract termination code is automatically set to 008 in Silae. If you need to change it, you will have to do so manually in Silae.

 

If the employee rejoins the company:

  • Reactivate the same profile to create the new condition.

 

System behaviors according to the different employee creation scenarios between Factorial and Silae:

Case What happens Result in Silae Employment reason
1. Creation of a new employee in Factorial (normal case) The employee does not exist at all in Silae Employee record created with contract data 001 – new contract
2. Resending information from Factorial after a data entry error during employee profile creation The employee does not yet exist in Silae, we resend the information Treated as a new hire 001 – new contract
3. Sending a contract incident, the employee already exists in Silae but without a contract Silae has the employee, but no contract Treated as a new hire 001 – new contract
4. Sending an incident for a contract change, the employee exists with a similar contract start date in Silae and Factorial The data is consistent Simple contract update No change
5. Sending an incident for a contract change, the employee exists but the contract start date differs between Factorial and Silae Dates do not match → conflict Creation of a new job in Silae 901 – change of situation
6. Sending with an employee ID while the employee does not exist The employee ID is unknown in Silae Sync fails No change
 

 

 

 
 

Absences synchronization

When an employee's absence is approved in Factorial, a payroll employee update is created. You can verify that all the data is correct, and then mark the incident as “Completed” to sync the data to Silae.

Check that the absences that you want to send are enabled in the Employee Updates Settings page and have the Silae code mapped in the Integration Settings page (with just the 3-digit code, without including the ‘AB-’)

 

Type of absences that can be synced

Half-day, full-day, and hourly absences can be synchronized. Absences that involve complex rules (such as waiting periods, Social Security allowances, employer top-ups, or thresholds) are sent from Factorial but calculated in Silae, which in this case acts as the master system. Silae determines both the compensated duration and the amounts to be paid.

Other absences, generally simpler, are managed directly in Factorial, which acts as the master system — no further processing is required on Silae's side. 

  •  Paid leave and RTT must always be sent in days or half-days
  • Sick leave is calculated by Silae. If sent in days, it is automatically processed. 
  • Hourly absences must have their counters properly configured in hours (e.g. training, conversion leave, public holidays, compensatory leave, paid/unpaid leave). 

If multiple days of hourly absences are sent, the total hours may not display immediately, but the calculation is accurately reflected in the payslip.

Modifying & Deleting a Synced Absence

If you have submitted an absence for one of your employees from Factorial to Silae, and in the meantime your employee has deleted this absence from their profile, the absence incidence will be reopened with the message: “The absence has been deleted”. By marking this incidence as completed, the deletion will be sent to Silae:

 

 
 

Adjustment of accrued time off balances

The integration retrieves  the accrued leave counters from Silae to Factorial on a recurring basis by obtaining the accumulated leave. The counters are updated once a month, each beginning of the following month After this update, the paid leave (CP) and RTT counters are automatically completed and for the CP both the days already accrued in the previous year (N-1) and the days currently being increased in the current year (N).

For leave balance synchronization, Silae employee IDs must be present and identical in Factorial.

 

 

How to Retrieve Accrued Leave Counters from SILAE to Factorial?

  1. Before activating the counters, you must set the cumulative days base in your leave policies to 0 to disable automatic accrual calculation by Factorial. Go to Settings > Leave and Absence > your leave policy > Counter → set Cumulative Days Base to 0.

 

  1. Enter the counter code in Factorial under Discover > Integration. Each line corresponds to a different counter linked to a leave policy.

     
  2. Be careful in your Factorial’s settings not to allow carryover of unused days from the previous year, as Silae’s CP accrued leave calculation includes the carried-over days.
     
  3. Once activated and the counter codes completed, the Factorial accrued and currently being accrued counters will be adjusted 5 days after the payroll cycle is closed in Silae. Once the adjustment is made, the user will see a note in the counter saying “Automatically updated by Silae + a code.” However, the employee will not receive any notification.

If you do not wish to adjust the counter in Factorial, you can simply leave the code blank on the Integration Settings page.

 

 

If Silae has only started calculating the payslips, it is normal that the counters have not been updated yet. The monthly counters are only taken into account once all the payslips have been validated and printed.

For example, if payslips have been calculated but not yet reviewed or printed, so the bubble at the top remains yellow. Once the bubble turns green, the information will be correctly updated.

 

List of counters and their associated codes in Silae:

Code Description
cpnAcquis  Number of days acquired in the previous year (N-1) and number of days currently being acquired for this year (N)
rttAcquis Nombre de RTT acquis
 
 

Transmission of payroll components

General Workflow

Step 1 – Identify the EVP Codes in Silae

Variable payroll elements are transmitted each month from Factorial for integration into Silae. Each EVP in Silae corresponds to a client-specific code. They can be found under Settings > Input Variables. The EVP codes to use are listed in the **“Name”**column:

Make sure that all of your EVPs are listed in this menu, with the exception of hours*.

This menu also allows us to perform an additional upstream check to verify that the EVP code sent from Factorial exists in Silae.

 

Step 2 – Configure EVP Codes in Factorial

In Factorial, these EVP are entered in the same location as absence codes, employee file numbers, and establishment codes, under the “additional compensation” fields:

Step 3 – Send the EVP from Factorial to Silae

The EVP are entered in Factorial and will be sent manually (via a button click) through the API:

Prerequisites for EVP Transmission

For the synchronization to work, the following prerequisites must be met:

  • Employee ID in the employee’s profile
  • File number (coded for the legal entity in Factorial’s marketplace)
  • Amount entered in the Compensation module
  • EVP code in Factorial’s marketplace
 

Step 4 – Check the Integration Status in Factorial

Once the data has been processed, the integration status returns in Factorial:

The response must include the ID and the processing status, which can be one of the following three options:

  • success – if the VPE was successfully synchronized with Silae
  • failed – if a technical error prevented synchronization
  • invalid – if the data sent is incorrect or missing
Silae Error Case Error Message seen Status to Return Explanation
Invalid Data Format Unexpected character while parsing value invalid – WrongFormat The entered data is incorrect. Please check the format.
Empty EVP Value Error converting value {null} invalid – EmptyCode The EVP value cannot be empty.
Missing or Incorrect Employee ID No employee matches ID invalid – MissingID The payroll employee ID is missing or incorrect.
Incorrect File Number The value in the file list is null or empty failed – WrongFile The Silae file number is incorrect.
VPE Period Too Old The VPE period is older than the current period in the file invalid – WrongPeriod The VPE does not match the current period in Silae.
Invalid Subkey SubscriptionKeyInvalid, Access denied failed – WrongSubkey The Silae subscription key is invalid.
Invalid Client Secret or Client ID "error": "invalid_client" failed – WrongAPIKey The Silae client secret or client ID is invalid.
Invalid VPE Code N/A (compare with Silae table) invalid – WrongEVPCode The VPE code does not exist in Silae. Please correct it.

 

Additional Details on Specific Variable Types

*The Hours

For hours, you do not need to enter them in the “Input Variables” menu.

You only need to correctly assign the appropriate Silae hour codes in Factorial, depending on the categories used in your payroll setup.

1. Native hours (standard Silae codes)

These hours use predefined Silae codes:

  • HN = regular hours
  • HM = increased-rate hours
  • HC = complementary hours
  • HCNSTEPA = complementary hours not subject to TEPA
  • HS25 = overtime at 25%
  • HS50 = overtime at 50%
  • HS100 = overtime at 100%

2. Hours with custom Silae codes

The following codes correspond to hours that rely on custom Silae configurations.

If your setup uses any of these, make sure to reproduce the exact code in Factorial:

Code Code Code Code
PHNE PHNE.1 HROUTE HEROUTE
HMOD1 HREG1 PHNE25 PHNE25.1
PHNE50 PHNE50.1 PHE HAC15
HAC HAC12 HAC10 HAC25
HAC05 HAC20 HAC10R HAC07
HAC17 HAC06 HC-HT HC-AS
HC05 HC05-HT HC25 HC25-HT
HC15 HC15-HT HC10 HC10-HT
HC11 HC10-AS HC25-AS HC50-HT
HC12 HC20 HC20-HT HC30
HC30-HT HC20-AS HC17 HC11-HT
HC12-HT HC17-HT HC50 HC50-AS
HC100 HC100-HT HE HE25
H500 H500RR H500-HT H500DP
H500DP-HT H500-AS H510 H510R
H510RR H510-HT H512 H510RX
H515 H515RR H515-HT H515RX
H520 H520R H520RR H520-HT
H520RX H525 H525RR H525-HT
H530 H530R H530RR H525-AS
H525R-HT H525DP-HT H525DP H525R2
H520-AS H525R2-HT H530-HT H525RX
H530RX H533RX H533 H533R
H533RR H533-HT H535 H550
H550R H550RR H550-HT H550-AS
H550R2 H550R2-HT H550RX H550DP
H550DP-HT H550-D H575 HS100

If you have additional custom codes not included in this list, please submit a request to:

📩 support@fortifydigital.zendesk.com

 

 

Sending an Advance Payment

If you need to send an advance payment, you must use the code “acompte” in the Factorial integration data so that we can properly identify this type of VPE.

There is no specific corresponding code in Silae for advance payments.

 
 

 


 

Frequently Asked Questions

How can you confirm if the data has been successfully synced to Silae or if there was an error?

If a synchronization error occurs, an error report will be sent to the client by email. The client must specify the email address to which they would like the report to be sent.

These reports will provide a detailed summary of all the data sent to Silae, along with the status of their update, allowing the user to:

  • Verify that all data has been transmitted correctly.
  • Identify and resolve any issues regarding data that was not successfully transferred.

Here is an example of an error report:

 

 
 

What happens if a new hire is synced with a specific Matricule that does not exist in Silae?

The new hire will NOT be synced (it will give an error).

 
 

What happens if a new hire is synced with a specific Matricule that already exists in Silae?

The data of the new hire in Factorial will overwrite the data of the existing employee in Silae.

 
 

Is the integration bi directional?

Most of the data is synced from Factorial to Silae. However, there are 2 specific data points that is synced from Silae to Factorial:

  • Matricule - synced to Factorial once the employee is created in Silae
  • Time off counters - adjusted automatically in Factorial 5 days after the payroll is calculation in Silae
 
 

What happens when a new employee doesn’t have a social security number?

In order for an employee to be created in Silae, the Social Security Number (SSN) has to be filled in. If an employee does not have it, the employee has to be created manually in both Silae and Factorial. Once the temporary SSN is assigned in Silae, you will need to copy and paste it in Factorial.

 
 

What are the most frequent errors?

  • Birth data and Social Security Number are not coherent
  • Codes are not filled in in the Factorial Marketplace page.
  • No API access for some client dossier.
 
 

 

Was this article helpful?

Give feedback about this article

Can’t find what you’re looking for?

Our customer care team is here for you.

Contact us

Knowledge Base Software powered by Helpjuice