SAP SuccessFactors API

Integrate SAP SuccessFactors with your product– along with any other
 HR & Payroll
 ATS
 application

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

HR & Payroll 
ATS 

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

Your Product
Merge
Your customers' data
Activities
Applications
Async Passthroughs
Async Passthroughs
Attachments
Audit Trails
Audit Trails
Bank Info
Benefits
Candidates
Companies
Departments
Dependents

Top integration use cases for SAP SuccessFactors

Sync SAP SuccessFactors Data

Trusted to power integrations globally

Thanks to the exceptional support by the Merge team, BILL launched 40+ HRIS integrations, allowing our engineering team to focus more on our core products. Merge also contributed amazing ideas on how to effectively promote the launch.

Chris Ashby
Chris Ashby
BILL
Product Marketing Manager

With Merge, managing API integrations shifted from a technical task for engineers to something our customer support could easily handle.

Ry Sullivan
Ry Sullivan
Snappy
Chief Product Officer

Merge should make you and your end users’ lives easier: less work in building multiple integrations, real-time data syncing, and accurate data.

Zoran Kovačević
Zoran Kovačević
Navan
Senior Director of Product Management

We don't have that many people, and we have a lot to build. Merge's easy access to enabling integrations allowed us to move forward.

Molly Liu
Molly Liu
Ramp
Product Manager

It's so sick -- it took me 2 days to build out this CRM integration and now we can connect to 20+ CRMs in Causal!

Lukas Köebis
Lukas Köebis
Causal
Founder

Merge allows us to integrate with dozens of HRIS and ATS providers, cutting down our development time and substantially expanding our market opportunity.

Enrique Esclusa
Enrique Esclusa
Assemble
Co-Founder

It takes my team a matter of an hour or less to identify and address integration issues using the Merge Dashboard. Previously, it may take them up to 5 hours.

Harrison Krat
Harrison Krat
Drata
Director of Solutions Architecture

Merge has saved us thousands of engineering hours by funneling a significant amount of 3rd parties into a single set of APIs for us to consume.

Scott Burns
Scott Burns
Welcome
Engineering Manager

Our customers absolutely LOVE the fact that we integrate with all major HRIS - all thanks to Merge.

Eugene Ling
Eugene Ling
Opal
Head of Business

Merge is truly a game-changer for the industry, for our company, and for our users. I actually look forward to setting up integrations now instead of dreading them!

Kara Peabody
Kara Peabody
Jirav
Senior Product Manager

People think that getting the integrations set up will take a quarter. With Merge, we just onboarded a $250M-revenue brand in two days.

Kara Holinski
Kara Holinski
Confido
CTO
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"

Thanks to the exceptional support by the Merge team, BILL launched 40+ HRIS integrations, allowing our engineering team to focus more on our core products. Merge also contributed amazing ideas on how to effectively promote the launch.

Chris Ashby
Chris Ashby
BILL
Product Marketing Manager

With Merge, managing API integrations shifted from a technical task for engineers to something our customer support could easily handle.

Ry Sullivan
Ry Sullivan
Snappy
Chief Product Officer

Merge should make you and your end users’ lives easier: less work in building multiple integrations, real-time data syncing, and accurate data.

Zoran Kovačević
Zoran Kovačević
Navan
Senior Director of Product Management

We don't have that many people, and we have a lot to build. Merge's easy access to enabling integrations allowed us to move forward.

Molly Liu
Molly Liu
Ramp
Product Manager

It's so sick -- it took me 2 days to build out this CRM integration and now we can connect to 20+ CRMs in Causal!

Lukas Köebis
Lukas Köebis
Causal
Founder

Merge allows us to integrate with dozens of HRIS and ATS providers, cutting down our development time and substantially expanding our market opportunity.

Enrique Esclusa
Enrique Esclusa
Assemble
Co-Founder

It takes my team a matter of an hour or less to identify and address integration issues using the Merge Dashboard. Previously, it may take them up to 5 hours.

Harrison Krat
Harrison Krat
Drata
Director of Solutions Architecture

Merge has saved us thousands of engineering hours by funneling a significant amount of 3rd parties into a single set of APIs for us to consume.

Scott Burns
Scott Burns
Welcome
Engineering Manager

Our customers absolutely LOVE the fact that we integrate with all major HRIS - all thanks to Merge.

Eugene Ling
Eugene Ling
Opal
Head of Business

Merge is truly a game-changer for the industry, for our company, and for our users. I actually look forward to setting up integrations now instead of dreading them!

Kara Peabody
Kara Peabody
Jirav
Senior Product Manager

People think that getting the integrations set up will take a quarter. With Merge, we just onboarded a $250M-revenue brand in two days.

Kara Holinski
Kara Holinski
Confido
CTO
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