Connect your product to all the applications your customers use via Merge's Unified API to close more deals, retain customers, and expand to new markets








The Employment object is used to represent a job position at a company. If an integration supports historical tracking of employments, it will be reflected in the data. If not, a new Employment object will be created whenever there is a change in job title or pay. The effective_date field should be used to order Employment objects, with the most recent date corresponding to the latest employment record for an employee.
Merge provides access to various data types in SAP SuccessFactors, including applicants, job postings, candidate information, and more. In addition, you can make POST and GET requests across many of these data types.
Learn more about the endpoints Merge interacts with.
It depends on the frequency you set (Daily, Standard, High, and Highest) and the Common Model you sync. That said, you may be able to sync data every 5 minutes, 30 minutes, hour, 3 hours, 6 hours, 12 hours, or daily.
Learn more about how often Merge can sync SAP SuccessFactors data.
A wide range of companies use it, including Snappy, BILL, Ramp, and Drata.
You can learn more about the companies that use SAP SuccessFactors and/or other HRIS integrations powered by Merge here.
Merge supports unique syncing requirements through features like Field Mapping, Remote Data, and Authenticated Passthrough requests.
Here’s more on each feature:
Merge offers Launch, Professional, and Enterprise plans. The Launch plan starts at $650/month for up to 10 linked accounts, with each additional account charged at $65/month. Professional and Enterprise plans provide advanced features and bulk discounts.
To get exact pricing tailored to your usage, you can contact Merge's team of integration experts.
In addition to SAP SuccessFactors, Merge supports 70+ HRIS integrations, allowing you to access employee data from systems like Workday, BambooHR, ADP Workforce Now, Gusto, UKG Pro, and more. In addition, you can access all of Merge’s HRIS integrations once you’ve built to Merge’s HRIS Unified API—allowing you to scale your HRIS integrations quickly and easily.
Learn more about the HRIS integrations Merge supports.

Trusted to power integrations at
More sales, less code, fewer headaches
Stop diverting your engineers to yet another integration and let them get back to work.
Manage your simplified integration issues in a single pane. No therapist required.
Launch integrations in days, not quarters. Your sales team will thank you.
.png)

Merge seamlessly manages authentication and authorization on behalf of your customers.
Offer account linking and permission controls to your users with Link for a customizable frontend or with Magic Link for URL-based authorization
We make integrations painless with accessible API design, dead-simple SDKs, and beautiful documentation that we agonize over.
1from merge import Merge
2
3client = Merge(
4 account_token="YOUR_ACCOUNT_TOKEN",
5 api_key="YOUR_API_KEY",
6)
7client.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>"),1ApiClient client = Configuration.getDefaultApiClient();
2client.setBasePath('https://api.merge.dev/api/ats/v1');
3ApiKeyAuth tokenAuth = client.getAuthentication('tokenAuth');
4tokenAuth.setApiKey('API_KEY');
5CandidatesApi apiInstance = new CandidatesApi(client);
6apiInstance.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)> {
"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": [
Case study
%201%20(1).avif)
Working with Merge’s Unified API and beautiful React component took less than a sprint to integrate, test, and release.
Stay in touch to learn how Merge can unlock hundreds of integrations in days, not years