
ADP Workforce Now API endpoints and data surface

Summarise the blog with AI
Key takeaways
- ADP Workforce Now's API splits into five domains: workers, payroll, time, hiring, and event notifications. Each has its own guide and its own limits.
- Page size is set per API: the Workers API returns 50 records by default, Job Requisitions returns 20, and Time Off request details return up to 90.
- Pay results come from the Payroll Output API, which ADP limits to Marketplace partners.
- Time off created through the API by a practitioner is auto-approved, and ADP has no single call that lists every time-off policy in a company.
- Time and attendance has its own APIs: Team Time Cards to read and Time Entries Modify to write.
- The Worker Hire Event API is deprecated and doesn't work on Workforce Now Next Generation. Applicant Onboard V2 replaces it.
ADP Workforce Now has an API. It has five of them.
Scope a build off the Workers guide alone and the code will run clean for weeks, right up until it hits a domain that guide never mentioned: a payroll endpoint only partners can call, a time-off policy list you have to rebuild worker by worker, a hire endpoint ADP stopped supporting years ago. Each domain has its own guide, and each guide buries its own version of that surprise.
Access runs through API Central, which clients buy on the ADP Marketplace. One API Central listing covers both Workforce Now and Workforce Now Next Generation, and ADP secures it with OAuth 2.0 and OpenID Connect. For access setup and cost, see our guides to ADP Workforce Now API authentication and API Central pricing.
What follows maps what each domain returns, the rules that shape your build order, and where the two things people most often go looking for actually live: pay statements and time cards. Everything here comes from ADP's published Workforce Now API guides, which remain the authoritative source for any single endpoint's full schema.
Workers and HR: the core data surface
Workers and HR is the domain every integration touches first. It's where worker records live, and where reading and writing that data starts.
In ADP's model, a worker is a person who fills one or more positions through a work assignment, and for a given assignment is related to the organization as an employee or a contractor. That matters the moment you filter: a query built around "employee" will silently miss contractors.
The Workers API hides some data by default. Per ADP's Worker Management guide, it returns only the month and day of a birth date and the last four digits of a Social Security Number unless the request asks for unmasked values with the header Accept: application/json;masked=false. A first read of /hr/v2/workers that looks incomplete is often this, not a bug.
One Next Gen detail catches people here: ADP's guide says asynchronous calls are not supported on Workforce Now Next Generation, so the 1,000-record path only works on classic Workforce Now. Next Gen support is decided per API, which we cover in ADP Workforce Now vs Next Generation API compatibility.
If this worker surface is what your integration needs, check whether it's already covered before you write the read path yourself. Bindbee's ADP Workforce Now connector maps it.
Payroll and deductions: input, output, and what's partner only
Try to pull last month's pay results through the Deduction Instruction API and you'll hit a wall, because that API was never built to return them. It manages deduction setup; it doesn't read payroll results. That's the distinction people miss most often in this domain.
The Deduction Instruction API starts and changes a worker's general deductions. Two details from ADP's guide shape a build. First, deductions managed by ADP benefit enrollment are read-only through the API until a practitioner or ADP suspends payroll deductions for that benefit plan. Second, the deduction goal ID has no code list in the meta response; ADP hardcodes the values 1 to 9.
The Payroll Data Input API sends entries into a Pay Data batch for a payroll cycle: earnings, deductions, reimbursements, reportable earnings and benefits, temporary cost and department numbers, and allocations. It doesn't handle the tax adjustment fields on the Paydata page, which clients still import by file. ADP also lists two known limits: event notifications aren't supported for it, and its meta call doesn't return code lists for rate codes. Workforce Now Next Generation has its own version, documented separately as the Payroll Worksheet API.
Pay results live in the Payroll Output API, which ADP's API catalog describes as retrieving the results of a payroll run and limits to Marketplace partners. If your build assumed you'd read pay results the same way you write deductions, change that assumption before you scope the rest.
Time off and time cards: two separate API families
Time off and time and attendance look like one domain in the Workforce Now UI. In the API they're separate families with separate rules.
The Time Off Request API covers request details, summaries, team summaries for managers, policy configurations, and creating requests. Per ADP's guide:
The Team Time Cards API (GET /time/v2/workers/{aoid}/team-time-cards) returns the time cards for a manager's team, with filters for the current, next, and previous pay period. ADP notes it has no meta API. Writing time runs through the Time Entries Modify API, which uploads hourly entries and time pairs for employee positions. On Next Gen, ADP supports hourly and time pair entry but not yet supplemental pay codes or labor allocation.
Hiring and onboarding: one API forward, one deprecated
Two APIs have created new workers in Workforce Now, and only one has a future. Applicant Onboard V2 posts an applicant as an in-progress or completed hire, and supports US, Canadian, and international clients. It supports tax sections for US and international clients when the hire template has the Tax step selected; for Canadian clients it doesn't support taxes. E-Verify is available for US clients only.
The Worker Hire Event API is deprecated. ADP's API catalog said it would no longer be supported after the end of 2021 and pointed integrations to Applicant Onboard V2. It also doesn't work on Workforce Now Next Generation at all. Its own guide lists the rough edges: it returns a generic error when validation fails, doesn't support international templates, doesn't accept the State Worked In field, and a hire often takes more than 20 seconds to process.
Anything still calling the Worker Hire Event API should be migrated to Applicant Onboard V2.
Event notifications: how WFN tells you data changed
Post a new application through Job Applications V2 and Workforce Now fires an event notification. Change that applicant's status to hired, and ADP's guide lists Issue 6: the notification doesn't get generated. It's the kind of gap that only shows up once you rely on notifications instead of polling.
That gap isn't unique. ADP's Time Off Request guide lists two more: no notification when a pending request is canceled, and none when a pending request is edited. The Payroll Data Input API doesn't support notifications at all. And in the Worker Management guide, each worker event carries its own "API Supported for WFN Next Gen" marker.
The practical result: Workforce Now's notifications are per-domain subscriptions with per-domain holes. A client integrating several domains ends up writing several notification handlers, plus a reconciliation job to catch what they miss.
The documented limits that shape a WFN build
Every limit above lives in its own guide. Scoping a build off any single guide means missing most of them. Here they are in one place.
Most of these endpoints use $top, $skip, $select, and $filter. Those aren't ADP inventions. They're OData's system query options, the OASIS standard for querying and paging REST collections. How many records a call returns is ADP's decision, API by API.
Build it direct, or integrate once
Everything mapped above is buildable directly against Workforce Now. None of it is ADP's job to build for you: ADP doesn't offer integration development directly, though its API specialists can guide the work and Marketplace partners can build it.
That's the real choice: hand-build against five domains, their paging rules, their partner-only sections, and their notification gaps, or integrate once through a layer that already has.
Choose a direct build when:
- Your use case touches one or two Workforce Now domains and isn't likely to expand
- You need exact control over which endpoints and fields get called
- You have the engineering time to track ADP's guide revisions as they land
Choose an integration layer when:
- Your product needs ADP Workforce Now alongside other HRIS, payroll, or ATS systems
- You'd rather not re-track each domain's paging and deprecation rules yourself
- You need write-back and change notifications without building retry and reconciliation logic per domain
Bindbee connects to ADP Workforce Now as one of 102+ HRIS, payroll, ATS, and benefits systems through a single API. On ADP Workforce Now, Bindbee's connector reads employees, employments, compensation, dependents, payroll runs, employee payroll runs, time off, time off balances, and timesheet entries, and writes employees, employee payroll runs, and time off, per the model support reference. Custom Fields expose any other upstream field through a JMESPath mapping onto Bindbee's unified models.
Bindbee syncs each connection every 24 hours by default, adjustable on request, and sends webhooks when a sync starts, finishes, or fails, and when a sync picks up created or updated records.
An integration layer doesn't remove the need to understand these domains. It hands someone else the job of tracking every ADP guide revision against them. This page is the map and the gotcha index; ADP's own guides stay authoritative for any single endpoint.
If that's the tradeoff you're weighing, see how Bindbee connects to ADP Workforce Now before the build starts.
Frequently asked questions
Is there an ADP Workforce Now Pay Statement API?
Payroll run results come from ADP's Payroll Output API, which ADP limits to Marketplace partners. The Payroll Data Input and Deduction Instruction APIs are input and setup surfaces: they write pay data and deduction setup into Workforce Now rather than reading processed results back out.
Is there an ADP Workforce Now Time and Attendance timecard API?
Yes. ADP documents a Team Time Cards API (GET /time/v2/workers/{aoid}/team-time-cards) for reading a manager's team time cards, and a Time Entries Modify API for writing hourly entries and time pairs. Both are separate from the Time Off Request API.
Why does my ADP time off request get approved automatically?
Per ADP's Time Off Request guide, a request created through the API by a practitioner is auto-approved. ADP doesn't currently offer an API path that leaves the request pending for manager approval.






