Factorial API

Integrate Factorial with your product—along with any other
HR & Payroll
 application

Connect your product to all the applications your customers use via Merge's

HR & Payroll

 

Unified API to close more deals, retain customers, and expand to new markets

Your Product
Merge
Your customers' data
Async Passthroughs
Audit Trails
Bank Info
Benefits
Companies
Dependents
Employee Payroll Runs
Employees
Employer Benefits
Employments
Field Mappings
Groups
Locations

Top integration use cases for Factorial

Sync Factorial Data

FAQ on integrating with Factorial’s API

Besides Factorial, what HRIS integrations does Merge support?

In addition to Factorial, Merge supports integrations with over 70 other HRIS platforms, including:

  • BambooHR
  • Gusto
  • Rippling
  • Justworks
  • ADP Workforce Now
  • Workday
  • Paylocity

Moreover, with Merge's HRIS Unified API, you can build once and easily extend your integrations to any of these platforms​​.

For more details on the HRIS integrations Merge covers, visit this page.

How frequently does Merge sync data with Factorial?

Merge synchronizes data from Factorial at intervals determined by your selected sync plan. 

  • Daily: sync data every day
  • Standard: sync data every 6 hours
  • High: sync data every 3 hours
  • Highest: sync data every hour

For syncing outside of our normal sync intervals, you can use the Force Resync endpoint or Automatic Webhooks feature.

Learn more about Merge’s sync frequencies for Factorial.

Which Factorial API endpoints does Merge interact with?

Merge interacts with several Factorial API endpoints to access and manage various data types. Key endpoints include:

  • GET /v1/payroll/contract_versions: Accesses employment information, including fields like employee, pay_rate, pay_period, effective_date, job_title, and remote_data
  • GET /v1/time/leaves: Retrieves time-off information, accessing fields such as end_time, start_time, remote_id, status, employee_note, remote_data, and employee
  • GET /v1/employees: Fetches employee details, including last_name, display_full_name, start_date, work_location, mobile_phone_number, avatar, date_of_birth, home_location, termination_date, first_name, and ssn
  • GET /v1/teams: Accesses team information, retrieving fields like remote_data, remote_id, and name
  • GET /v1/locations: Obtains location details, including zip_code, country, phone_number, street_2, street_1, state, city, name, remote_data, and remote_id

See all of the endpoints Merge can interact with.

What organizations use Merge’s integration with Factorial?

A wide range of companies use it, including deskbird, Causal, Bonusly, and Ledgy. 

Learn more about how these organizations use Merge’s Factorial integration—along with other HRIS integrations—here.

What advanced features does Merge offer for Factorial integration?

Merge supports features like:

How is your customer's Factorial data encrypted and where is it stored?

Merge uses AES-256 encryption to secure all data both in transit and at rest. Data is stored in AWS data centers located in:

  • US: Northern Virginia
  • EU: Stockholm
  • APAC: Singapore

For enhanced security, single-tenant environments are available upon request, hosted in the AWS region of your choice​​.

Learn more about Merge’s approach to security.

Are there any days you’ll be closed for the holidays in 2024?
Trusted to power integrations globally
Build Smarter

Make integrations your competitive advantage

More sales, less code, fewer headaches

Focus on your core product

Stop diverting your engineers to yet another integration and let them get back to work.

Give customer success a break

Manage your simplified integration issues in a single pane. No therapist required.

Stop losing sales due to integrations

Launch integrations in days, not quarters. Your sales team will thank you.

APIs Made Simple

The toolkit for all your integration needs

We make integrations painless with accessible API design, dead-simple SDKs, and beautiful documentation that we agonize over.

View docs
Get Employee Data
import merge
from merge.client import Merge
merge_client = Merge(api_key="<YOUR_API_KEY>", account_token="<YOUR_ACCOUNT_TOKEN>")
employee = merge_client.hris.employees.list()
import { MergeClient, Merge } from '@mergeapi/merge-node-client';
const merge = new MergeClient({
  apiKey: 'YOUR_API_KEY',
  accountToken: 'YOUR_ACCOUNT_TOKEN',
});
employee = await merge.hris.employees.list()
ApiClient.instance.authentications.tokenAuth = {
  type: 'bearer',
  accessToken: 'API_KEY',
};
new EmployeesApi().employeesList('ACCOUNT_TOKEN', {}, (data) => {
  console.log(data);
});
import (
  "context"
  "fmt"
  merge "github.com/fern-api/merge-go"
  mergeclient "github.com/fern-api/merge-go/client"
  "github.com/fern-api/merge-go/hris"
)

client := mergeclient.NewClient(
  mergeclient.ClientWithAuthApiKey("<YOUR_API_KEY>"),
  mergeclient.ClientWithHeaderAccountToken("<YOUR_ACCOUNT_TOKEN>"),
)
employee, err := client.Hris().Employees().List(
  context.TODO(),
  &hris.EmployeesRetrieveRequest{
    IncludeRemoteData: merge.Bool(true),
  },
)
if err != nil {
  return err
}
fmt.Printf("Retrieved employee with ID %q\n", *employee.Id)
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath('https://api.merge.dev/api/ats/v1');
ApiKeyAuth tokenAuth = client.getAuthentication('tokenAuth');
tokenAuth.setApiKey('API_KEY');
CandidatesApi apiInstance = new CandidatesApi(client);
apiInstance.candidatesList('ACCOUNT_TOKEN');
import com.merge.api.MergeApiClient;
import com.merge.api.resources.hris.employees.requests.EmployeesRetrieveRequest;
import com.merge.api.resources.hris.types.Employee;
MergeApiClient mergeClient = MergeApiClient.builder()
    .accountToken("ACCOUNT_TOKEN")
    .apiKey("API_KEY")
    .build();
Employee employee = mergeClient.hris().employees().list(
    EmployeesRetrieveRequest.builder()
        .includeRemoteData(true)
        .build());
{
"id": "0958cbc6-6040-430a-848e-aafacbadf4ae",
"remote_id": "19202938",
"employee_number": "2",
"company": "8d9fd929-436c-4fd4-a48b-0c61f68d6178",
"first_name": "Dirna",
"last_name": "Emanuel",
"display_full_name": "Dirna Emanuel",
"username": "dirnaemanuel",
"groups": [
  "21a54124-397f-494d-985e-3c5b330b8a68"
],
"work_email": "dirna@merge.dev",
"personal_email": "dirnaemanuel@gmail.com",
"mobile_phone_number": "+1234567890",
"employments": [
  "17a54124-287f-494d-965e-3c5b330c9a68"
Meta Endpoint

Programmatically access required schemas

Third-party providers require specific (and often different) fields to write data to their APIs, making your code a mess.

Dynamically fetch required data schemas from Merge’s /meta endpoint to make POST or PATCH requests that just work.

View Docs
Beyond Building

Rely on the best integration observability system

Let our logs, issue detection, and automated alerts save your customer success team time, money, and headaches.

Forget maintenance - let your developers focus on building!

Start for free

How Drata helps thousands streamline their SOC 2 with Merge

Read case study

​​”Working with Merge’s Unified API and beautiful React component took less than a sprint to integrate, test, and release.”

Daniel Marashlian of profile photo
Daniel Marashlian
Co-Founder & CTO

Read more about building and maintaining multiple integrations

A guide to maintaining your product integrations
A guide to maintaining your product integrations
Blog
Blog Posts
10/27/2023
A guide to integrating multiple APIs
A guide to integrating multiple APIs
Blog
Blog Posts
11/13/2023
The top challenges of normalizing multiple API integrations
The top challenges of normalizing multiple API integrations
Blog
Blog Posts
11/20/2023
One Step Ahead

We're the cheat code to your integrations strategy

Revolutionize your integrations strategy for HR, payroll, directory, ATS, project management, ticketing, accounting and CRM platforms.

Start for free or talk to our sales team and learn how Merge makes it easy to add all your integrations in days – not years.
Read more