Personio API

Integrate Personio 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 Personio

Sync Personio Data

FAQ on integrating with Personio’s API

What types of data are accessible in the Personio integration?

Merge’s integration with Personio covers a wide range of data, including details about employees, payroll runs, time-off balances, benefits, and employment information. 

More specifically, Merge lets you POST employees and their time-off to customers’ instances of Personio, as well as GET a wide range of data. The latter includes information related to time off, absence periods, time sheet entries, teams, locations, and more.

Learn more about the endpoints that Merge’s Personio integration supports.

What are the sync frequencies available for Personio data?

Merge offers flexible sync plans for Personio data: daily, standard, high, and highest sync frequencies, depending on your needs. And while it depends on the Common Model you’re interested in syncing, these frequencies typically range from every hour to every 24 hours.

For immediate data synchronization outside of these schedules, you can use Merge’s Force Resync feature to initiate an on-demand sync. In addition, you can use Merge’s Automatic Webhooks feature to sync data in real-time.

Learn more about Merge’s sync frequencies for Personio data.

What organizations use Merge’s Personio integration?

Organizations across sizes, industries, and regions use the integration. This includes companies like Ramp, BILL, deskbird, and Hofy.

Can Merge access and sync custom data from Personio?

Yes, Merge offers advanced features to access and sync custom data fields from Personio. With Field Mapping, users can map Personio’s custom data fields to Merge’s standardized models, while Remote Data provides access to raw data from Personio’s API. Additionally, Authenticated Passthrough Requests enable direct API requests to Personio, allowing you to fetch or write data beyond Merge’s Common Models​​​.

How long does it take developers to set up a Personio integration?

Once you build to Merge’s Unified API—which can take anywhere from a few hours to a couple days—you can easily add a Personio integration to your product. Moreover, you can just as easily add any of the other 70+ HRIS integrations Merge supports, enabling you to integrate at scale efficiently and quickly. 

What other HRIS integrations does Merge support?

In addition to Personio, Merge supports 70+ other HRIS integrations, including BambooHR, Workday, ADP Workforce Now, Gusto, Rippling, and UKG Pro. This comprehensive HRIS category includes platforms for payroll, employee management, benefits administration, and more. 

Discover all of the HRIS integrations Merge supports here.

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