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
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
Method: GET
Description: Retrieve company users..
Endpoint: user/v2/{companyId}/users
Parameters: companyId
Method: GET
Description: Retrieve a company user by user ID..
Endpoint: user/v2/{companyId}/users/{userId}
Parameters: companyId, userId
Method: GET
Description: Retrieve all companies..
Endpoint: company/v2/companies
Parameters: pageSize, pageNumber
Method: POST
Description: Create a company..
Endpoint: company/v2/companies
Parameters: name, registrationNumber, tradingName, tradingAddress, registeredAddress,
Method: GET
Description: Retrieve a company by company ID..
Endpoint: company/v2/companies/{companyId}
Parameters: companyId
Method: PUT
Description: Update a company..
Endpoint: company/v2/companies/{companyId}
Parameters: companyId, name, registrationNumber, tradingName, tradingAddress, registeredAddress,
Method: PATCH
Description: Update a company..
Endpoint: company/v2/companies/{companyId}
Parameters: companyId, name, registrationNumber, tradingName, tradingAddress, registeredAddress,
Method: DELETE
Description: Delete a company..
Endpoint: company/v2/companies/{companyId}
Parameters: companyId
Method: POST
Description: Create a company user..
Endpoint: user/v2/{companyId}/users
Parameters: companyId, userId, emailAddress, firstName, lastName, username, password, roles,
Method: PUT
Description: Update a company user..
Endpoint: user/v2/{companyId}/users/{userId}
Parameters: companyId, userId, emailAddress, firstName, lastName, username, password, roles,
Method: DELETE
Description: Delete a company user..
Endpoint: user/v2/{companyId}/users/{userId}
Parameters: companyId, userId
Method: GET
Description: Retrieve company users with multiple filters..
Endpoint: user/v2/{companyId}/users/search
Parameters: companyId, filter, pageNumber, sort
Method: POST
Description: Triggers payroll calculations according to the pay schedule and pay group..
Endpoint: payroll/v1/{companyId}/payrolls
Parameters: companyId, runId
Method: GET
Description: Retrieve a payroll run..
Endpoint: payroll/v1/{companyId}/payrolls/{runId}
Parameters: companyId, runId
Method: PATCH
Description: Update a payroll run..
Endpoint: payroll/v1/{companyId}/payrolls/{runId}
Parameters: companyId, runId, status, payRunDetails, note,
Method: GET
Description: Retrieve timesheets for an employee over a specified period of time..
Endpoint: timesheet/v2/{companyId}/timecards
Parameters: companyId, employeeId, startDate, endDate
Method: POST
Description: Create a timesheet..
Endpoint: timesheet/v2/{companyId}/timecards
Parameters: companyId, employeeId, datetime, projectCode, description, task, hours, minutes, travelMiles, reimbursableMiles, mileageRate
Method: GET
Description: Retrieve timesheets for a project..
Endpoint: timesheet/v2/{companyId}/timesheets
Parameters: companyId, projectId, startDate, endDate
Method: GET
Description: Retrieve a timesheet by ID..
Endpoint: timesheet/v2/{companyId}/timesheets/{timesheetId}
Parameters: companyId, timesheetId
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
Method: DELETE
Description: Delete a timesheet..
Endpoint: timesheet/v2/{companyId}/timesheets/{timesheetId}
Parameters: companyId, timesheetId
Method: GET
Description: Retrieve paychecks for a specific employee..
Endpoint: paycheck/v1/{companyId}/paychecks
Parameters: companyId, employeeId, startDate, endDate
Method: GET
Description: Retrieve a paycheck..
Endpoint: paycheck/v1/{companyId}/paychecks/{paycheckId}
Parameters: companyId, paycheckId
Method: GET
Description: Retrieve leave requests..
Endpoint: leave/v1/{companyId}/leaveRequests
Parameters: companyId, employeeId, dateFrom, dateTo, approvalStatus, pageSize, pageNumber
Method: POST
Description: Create a leave request..
Endpoint: leave/v1/{companyId}/leaveRequests
Parameters: companyId, leaveRequestId, employeeId, startDate, endDate, reason, leaveType, approval,
Method: GET
Description: Retrieve a leave request by leave ID..
Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}
Parameters: companyId, leaveRequestId
Method: PUT
Description: Update a leave request..
Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}
Parameters: companyId, leaveRequestId, employeeId, startDate, endDate, reason, leaveType, approval,
Method: PATCH
Description: Update a leave request..
Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}
Parameters: companyId, leaveRequestId, employeeId, startDate, endDate, reason, leaveType, approval,
Method: DELETE
Description: Delete a leave request..
Endpoint: leave/v1/{companyId}/leaveRequests/{leaveRequestId}
Parameters: companyId, leaveRequestId
Method: POST
Description: Submit a timesheet for approval..
Endpoint: timesheet/v2/{companyId}/timecards/submit
Parameters: companyId, employeeId, startDate, endDate
Method: POST
Description: Approve a timesheet..
Endpoint: timesheet/v2/{companyId}/timecards/approve
Parameters: companyId, employeeId, startDate, endDate
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.