ADP API

By Abhishek Kumar
5 min read
Integrate ADP's payroll, HR, and compliance solutions with RESTful APIs. Access extensive documentation, real-time webhooks, and rate limits for efficient usage

Table of Contents

ADP offers industry-leading online payroll and HR solutions, plus tax, compliance, benefit administration, and more.

API Overview

ADP, a leading provider of human capital management solutions, offers a comprehensive application designed to streamline HR processes and enhance employee engagement. With ADP's application, businesses can automate payroll, manage time and attendance, and administer benefits, ensuring compliance and accuracy. The application also provides robust reporting and analytics capabilities, enabling organizations to make data-driven decisions and improve operational efficiency. ADP's commitment to innovation and customer satisfaction ensures that businesses can leverage the latest technologies and best practices to optimize their HR functions.

ADP's API (Application Programming Interface) provides a powerful way for developers to integrate ADP's services into their own applications. The API documentation is extensive and well-organized, making it easy for developers to find the information they need. The API supports RESTful operations, allowing developers to use a variety of programming languages and tools. Webhooks enable real-time notifications of events, ensuring that applications can respond promptly to changes in ADP data. Rate limits are in place to prevent excessive API usage and ensure the stability of the service. By leveraging ADP's API, developers can create innovative applications that extend the functionality of ADP's core products and deliver tailored solutions to meet the specific needs of their organizations.

API Request Limits

Free Plan

100 requests per minute

Standard Plan

500 requests per minute

Premium Plan

1,000 requests per minute

SDKs

APIs

Authenticate to API Services

Method: POST

Description: Enables Integration Partners to obtain an OAuth2 Bearer token for access to ADP APIs..

Endpoint: oauth2/v2/token

Parameters: clientId, clientSecret, code, grantType, refreshToken, redirectUri

Company User

Method: GET

Description: Retrieve company users..

Endpoint: user/v2/{companyId}/users

Parameters: companyId

Company User

Method: GET

Description: Retrieve a company user by user ID..

Endpoint: user/v2/{companyId}/users/{userId}

Parameters: companyId, userId

Company

Method: GET

Description: Retrieve all companies..

Endpoint: company/v2/companies

Parameters: pageSize, pageNumber

Company

Method: POST

Description: Create a company..

Endpoint: company/v2/companies

Parameters: name, registrationNumber, tradingName, tradingAddress, registeredAddress,

Company

Method: GET

Description: Retrieve a company by company ID..

Endpoint: company/v2/companies/{companyId}

Parameters: companyId

Company

Method: PUT

Description: Update a company..

Endpoint: company/v2/companies/{companyId}

Parameters: companyId, name, registrationNumber, tradingName, tradingAddress, registeredAddress,

Company

Method: PATCH

Description: Update a company..

Endpoint: company/v2/companies/{companyId}

Parameters: companyId, name, registrationNumber, tradingName, tradingAddress, registeredAddress,

Company

Method: DELETE

Description: Delete a company..

Endpoint: company/v2/companies/{companyId}

Parameters: companyId

Company User

Method: POST

Description: Create a company user..

Endpoint: user/v2/{companyId}/users

Parameters: companyId, userId, emailAddress, firstName, lastName, username, password, roles,

Company User

Method: PUT

Description: Update a company user..

Endpoint: user/v2/{companyId}/users/{userId}

Parameters: companyId, userId, emailAddress, firstName, lastName, username, password, roles,

Company User

Method: DELETE

Description: Delete a company user..

Endpoint: user/v2/{companyId}/users/{userId}

Parameters: companyId, userId

Company User

Method: GET

Description: Retrieve company users with multiple filters..

Endpoint: user/v2/{companyId}/users/search

Parameters: companyId, filter, pageNumber, sort

Run Payroll

Method: POST

Description: Triggers payroll calculations according to the pay schedule and pay group..

Endpoint: payroll/v1/{companyId}/payrolls

Parameters: companyId, runId

Run Payroll

Method: GET

Description: Retrieve a payroll run..

Endpoint: payroll/v1/{companyId}/payrolls/{runId}

Parameters: companyId, runId

Run Payroll

Method: PATCH

Description: Update a payroll run..

Endpoint: payroll/v1/{companyId}/payrolls/{runId}

Parameters: companyId, runId, status, payRunDetails, note,

Timesheet

Method: GET

Description: Retrieve timesheets for an employee over a specified period of time..

Endpoint: timesheet/v2/{companyId}/timecards

Parameters: companyId, employeeId, startDate, endDate

Timesheet

Method: POST

Description: Create a timesheet..

Endpoint: timesheet/v2/{companyId}/timecards

Parameters: companyId, employeeId, datetime, projectCode, description, task, hours, minutes, travelMiles, reimbursableMiles, mileageRate

Timesheet

Method: GET

Description: Retrieve timesheets for a project..

Endpoint: timesheet/v2/{companyId}/timesheets

Parameters: companyId, projectId, startDate, endDate

Timesheet

Method: GET

Description: Retrieve a timesheet by ID..

Endpoint: timesheet/v2/{companyId}/timesheets/{timesheetId}

Parameters: companyId, timesheetId

Timesheet

Method: PUT

Description: Update a timesheet..

Endpoint: timesheet/v2/{companyId}/timesheets/{timesheetId}

Parameters: companyId, timesheetId, employeeId, datetime, projectCode, description, task, hours, minutes, travelMiles, reimbursableMiles, mileageRate

Timesheet

Method: DELETE

Description: Delete a timesheet..

Endpoint: timesheet/v2/{companyId}/timesheets/{timesheetId}

Parameters: companyId, timesheetId

Paycheck

Method: GET

Description: Retrieve paychecks for a specific employee..

Endpoint: paycheck/v1/{companyId}/paychecks

Parameters: companyId, employeeId, startDate, endDate

Paycheck

Method: GET

Description: Retrieve a paycheck..

Endpoint: paycheck/v1/{companyId}/paychecks/{paycheckId}

Parameters: companyId, paycheckId

Leave

Method: GET

Description: Retrieve leave requests..

Endpoint: leave/v1/{companyId}/leaveRequests

Parameters: companyId, employeeId, dateFrom, dateTo, approvalStatus, pageSize, pageNumber

Leave

Method: POST

Description: Create a leave request..

Endpoint: leave/v1/{companyId}/leaveRequests

Parameters: companyId, leaveRequestId, employeeId, startDate, endDate, reason, leaveType, approval,

Leave

Method: GET

Description: Retrieve a leave request by leave ID..

Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}

Parameters: companyId, leaveRequestId

Leave

Method: PUT

Description: Update a leave request..

Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}

Parameters: companyId, leaveRequestId, employeeId, startDate, endDate, reason, leaveType, approval,

Leave

Method: PATCH

Description: Update a leave request..

Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}

Parameters: companyId, leaveRequestId, employeeId, startDate, endDate, reason, leaveType, approval,

Leave

Method: DELETE

Description: Delete a leave request..

Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}

Parameters: companyId, leaveRequestId

Timesheet

Method: POST

Description: Submit a timesheet for approval..

Endpoint: timesheet/v2/{companyId}/timecards/submit

Parameters: companyId, employeeId, startDate, endDate

Timesheet

Method: POST

Description: Approve a timesheet..

Endpoint: timesheet/v2/{companyId}/timecards/approve

Parameters: companyId, employeeId, startDate, endDate

Timesheet

Method: DELETE

Description: Reject a timesheet..

Endpoint: timesheet/v2/{companyId}/timecards/reject

Parameters: companyId, employeeId, startDate, endDate

FAQ

How do I get started with the ADP Workforce Now APIs?

To get started, visit the ADP Developers portal and create a developer account. From there you will be able to access the API documentation, explore sandbox environment and request production access.

What is my client ID and how do I find it?

Your client ID is a unique identifier assigned to your developer account. You can find your client ID in the ADP Developers portal or in the request headers when making an API call.

What are the rate limits for the ADP APIs?

The ADP APIs are subject to rate limits to ensure optimal performance and prevent excessive strain on the system. Rate limits are enforced per client ID and are specified in the API documentation and response headers.

How do I create a sandbox account?

To create a sandbox account, visit the ADP Developers portal, sign in to your developer account and navigate to the 'Sandbox' section. From there you can follow the instructions to create a new sandbox account.

How do I authenticate with the ADP APIs?

Authentication for the ADP APIs is performed using OAuth 2.0. To authenticate, you will need to obtain an access token from the ADP Authorization Server. The process involves generating an authorization code and exchanging it for an access token.

Last Update: September 13, 2024