# Turn ADP Workforce Now into an API

> Read a pay data batch, the payroll cycle status for a company code and your employees' Employment Profile from ADP Workforce Now with one API call each. Or have a workflow review each pay data batch before payroll and email you the rows to fix.

Page: https://fous.com/automate/adp-workforce-now
Updated: 2026-11-12

Works with your own ADP Workforce Now account. Fous is an independent product.

## What you can build on Workforce Now

### Read a pay data batch

Opens the Paydata page for one company code and batch and reads each employee's row: hours, earnings and deductions by code.

- Takes: Company code, batch ID
- Returns: File #, employee name, Reg Hours, O/T Hours, Reg Earnings, other hours and earnings codes, deductions, department

### Check the payroll cycle status

Reads the current payroll cycle status for one company code from the Payroll Dashboard, such as Entering Payroll Information or Correcting Input.

- Takes: Company code
- Returns: Company code, payroll cycle status

### Get employees by status

Reads each employee's Employment Profile under People > Employment: status, position, hire date, home department and who they report to.

- Takes: Status (Active, Leave or Terminated), home department (optional)
- Returns: Name, Position ID, status, hire date, rehire date, home department, reports to, worker category

### Enter hours into a pay data batch

Creates a pay data batch on the Paydata page for one company code and fills in each employee's hours and earnings by File # and hours and earnings code.

- Takes: Company code, batch ID, rows of File #, hours and earnings code, hours or amount
- Returns: Batch ID, rows entered, rows rejected with the reason

## Automate Workforce Now with a workflow

A [workflow](/product/workflows) runs your methods as one process, with nobody at the screen. A schedule or a call from your own system starts it, the steps run in order, and the result arrives in your inbox or in the systems you already use.

### Hours review of each pay data batch before payroll

Starts: Every Monday at 14:00

1. Read the pay data batch you name for each company code you list.
2. Keep the rows with no Reg Hours, or O/T Hours above the limit you set.
3. Email you those rows grouped by company code, with File #, name and hours.

### New hires and terminations, posted to your other systems

Starts: Every weekday at 7:00

1. Get the employees with status Active, Leave and Terminated.
2. Keep the employees whose status changed or who were not there on the last run.
3. Post each one, with Position ID, status, hire date and home department, to your webhook.

### Payroll cycle status for each company code

Starts: Every weekday at 8:00

1. For each company code you list, check the payroll cycle status on the Payroll Dashboard.
2. Keep the company codes whose status changed since the last run.
3. Email you each one with its company code and new status.

You can run a workflow by hand on every plan, Free included. Schedules and webhook triggers come with the paid plans, from $29 a month.

## Once built, one call from your code

Once you have built a [method](/product/methods), it is one POST to /v1/runs from your backend, or a tool an AI agent calls over MCP. This is what “Read a pay data batch” would look like.

Example request:

```
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "workforcenow.adp.com/read_pay_data_batch",
    "input": {
      "company_code": "A7K",
      "batch_id": "WK45HOURS"
    }
  }'
```

Example response:

```
{
  "status": "completed",
  "data": {
    "company_code": "A7K",
    "batch_id": "WK45HOURS",
    "rows": [
      {
        "file_number": "004127",
        "employee_name": "Sample, Avery",
        "reg_hours": 40,
        "ot_hours": 6.5,
        "reg_earnings": null,
        "other_hours_and_earnings": "V 8.00 hours",
        "deductions": null,
        "department": "000410"
      }
    ],
    "count": 1
  }
}
```

An example with invented data, not a ready-made endpoint. The method exists in your organization once you build it, and its name, inputs and fields follow your request.

## Workforce Now’s own options

ADP opens its Workforce Now APIs to clients who buy ADP API Central on ADP Marketplace. It is billed monthly on your ADP invoice by the number of employees, and the listing shows the price only after you sign in. Workforce Now also creates a General Ledger file each payroll period, and its reports print or export to Excel.

| Option | What it covers | What it takes |
| --- | --- | --- |
| ADP API Central for ADP Workforce Now | Access to ADP APIs and MCP servers, ADP Developer Resources and ticketed API support. Consulting is optional at $250 an hour. | A Workforce Now or Workforce Now Next Generation client. Billed monthly on the ADP invoice, based on the number of employees. |
| Payroll Data Input API | Sends earnings, deductions, reimbursements, cost numbers, departments and allocations into a pay data batch. | ADP API access, a US, Canada (AutoPay) or cross border client, and a cycle in Entering Payroll Information or Correcting Input. |
| General Ledger interface | An import-ready file every payroll period with your payroll journal entries, for your general ledger software. | Set up as part of Workforce Now Payroll. |
| Workforce Now by hand | The Payroll Dashboard, the Paydata page, People records and reports that print or export to Excel. | A Workforce Now user ID with the menu access your administrator gives it. |

Read on November 12, 2026: [ADP API Central for ADP Workforce Now](https://apps.adp.com/en-US/apps/410612/adp-api-central-for-adp-workforce-now/editions), [Payroll Data Input API Guide for ADP Workforce Now](https://marketplace-cdn.adp.com/dev-portal/pdf/protected/Payroll_Data_Input_API__Guide_for_ADP_Workforce_Now_chapter_1), [ADP Workforce Now Payroll features](https://apps.adp.com/en-US/apps/188481/adp-workforce-now-payroll/features).

## Signing in to Workforce Now

ADP signs administrators in with a user ID and password, then may ask for a verification code sent to your email address or mobile phone, or for your security questions, when your computer or login pattern changes. With Fous you sign in once through ADP's own sign-in with your own account: the login is sealed with AES-256, an emailed code is handled, and an expired session is signed back in.

## Worth knowing

- **Pay data goes in only while the cycle is open**: ADP accepts pay data input only while the payroll cycle status is Entering Payroll Information or Correcting Input. A method that enters hours should check the status first.
- **Codes and positions must exist first**: Every hours and earnings code and deduction code must be set up under Setup > Tools > Validation Tables > Payroll > Paydata, and each employee must be in a paid position.
- **An employee can hold more than one position**: Status is kept per position on the Employment Profile. ADP treats an employee as terminated only when all of their positions are terminated.
- **Identity checks follow the login pattern**: ADP may ask for a verification code when it sees a new computer or location, and asking for a new code makes the previous one invalid. ADP shows a notice 15 days before a password expires.

## More in HR: payroll, hiring and screening

- [The Work Number](https://fous.com/automate/the-work-number.md)
- [Workday](https://fous.com/automate/workday.md)
- [Indeed for Employers](https://fous.com/automate/indeed-for-employers.md)
- [SEEK Employer](https://fous.com/automate/seek-employer.md)
- [Paychex Flex](https://fous.com/automate/paychex-flex.md)
- [Paycom](https://fous.com/automate/paycom.md)
- [Paylocity](https://fous.com/automate/paylocity.md)
- [Silae](https://fous.com/automate/silae.md)
- [RUN Powered by ADP](https://fous.com/automate/run-powered-by-adp.md)
- [Gusto](https://fous.com/automate/gusto.md)

Other industries: [Autodesk Build](/automate/autodesk-build), [IndiaMART Seller Panel](/automate/indiamart-seller-panel), [Shopee Seller Centre](/automate/shopee-seller-centre), [Common App for Recommenders](/automate/common-app-for-recommenders), [ComEd My Account](/automate/comed-my-account), [DoorDash Merchant Portal](/automate/doordash-merchant-portal).

## Frequently asked questions

### Does ADP Workforce Now have an API?

Yes, for clients who buy ADP API Central for ADP Workforce Now on ADP Marketplace. It gives access to ADP APIs and MCP servers, billed monthly by the number of employees, with the price shown after sign-in. Without it you have Workforce Now itself, its reports and the General Ledger file.

### Can I send hours from our time system into an ADP pay data batch?

Yes, while the payroll cycle status is Entering Payroll Information or Correcting Input. ADP's Payroll Data Input API does this for API clients. With Fous, a method you build can enter the rows on the Paydata page, and your payroll practitioner reviews the batch there before payroll runs.

### Which payroll cycle statuses allow changes to pay data?

Entering Payroll Information and Correcting Input. ADP's own pay data API returns an error in any other status, so check the Payroll Dashboard before you send hours.

### How do I get a list of active employees from Workforce Now?

Each employee's status is on People > Employment > Employment Profile > Status. ADP's Worker Management API filters workers by that status for API clients. With Fous, a method you build can return the Active employees with Position ID, hire date and home department as JSON.

### Is Fous affiliated with ADP?

No. Fous is an independent product. You use it with your own Workforce Now account, and a method reads and does only what that account can.

Fous is an independent product: it is not affiliated with, endorsed by or sponsored by the operator of ADP Workforce Now (ADP). The name is used only to say which system this page is about. Something here wrong or out of date? Write to legal@fous.com.
