Closed beta · run Worlds on your machineBrowse worlds →
Docs menu · ADP API

Worlds / Finance ops

ADP API

A local ADP Workforce Now company with workers, pay groups, payroll cycles, deductions, garnishments and tax filings. Test the payroll agent that preps runs, adds deductions and handles off-cycle checks.

Base path
/hr/v2
Auth
OAuth bearer token, the world key
Endpoints
12
Status
Active today

This reference previews the surface the ADP world serves in the closed beta. Paths mirror the public ADP API; the exact subset is confirmed when your workflow is scoped.

Connect

The run gives your agent these bindings. Keep your SDK; change only where it sends requests.

bindingmeaning
WORLDS_ADP_URLThis world's origin followed by /hr/v2
WORLDS_API_KEYThe world key, accepted wherever ADP expects a credential
WORLDS_WORLD_IDThe isolated world's identity
js · fetch
const base = process.env.WORLDS_ADP_URL;
const headers = { Authorization: "Bearer " + process.env.WORLDS_API_KEY };

const res = await fetch(base + "/hr/v2/workers?$top=20", { headers });
const { workers } = await res.json();

API reference

Workers

Employees with assignment and pay details.

  • GET/hr/v2/workersList workers
  • GET/hr/v2/workers/{aoid}Get a worker
  • POST/hr/v2/workers/{aoid}/events/worker.legal-name.changeChange a legal name
Fields · 4
associateOIDstringWorker id
personobjectLegal name and contact
workAssignmentsarrayJobs and managers
workerStatusobjectActive, terminated or on leave

Time off

Balances and requests.

  • GET/hr/v2/workers/{aoid}/time-off-balancesGet time off balances
  • POST/hr/v2/workers/{aoid}/time-off-requestsSubmit a time off request
  • GET/hr/v2/workers/{aoid}/time-off-requestsList time off requests
Fields · 4
policyCodestringTime off policy
balancenumberHours available
requestStatusstringPending, approved or denied
startDatedateFirst day off

Pay statements

Earnings and deductions per pay period.

  • GET/hr/v2/workers/{aoid}/pay-statementsList pay statements
  • GET/hr/v2/workers/{aoid}/pay-statements/{id}Get a pay statement
  • GET/hr/v2/workers/{aoid}/pay-statements/latestGet the latest pay statement
Fields · 4
payDatedatePay date
grossPayAmountobjectGross pay
netPayAmountobjectNet pay
deductionsarrayTaxes and benefits

Job requisitions

Open roles.

  • GET/hr/v2/job-requisitionsList job requisitions
  • POST/hr/v2/job-requisitionsCreate a job requisition
  • GET/hr/v2/job-requisitions/{id}Get a job requisition
Fields · 4
requisitionIDstringRequisition id
jobTitlestringTitle
statusstringOpen, filled or closed
hiringManagerobjectHiring manager

Test workflow

  1. Prepare. Select the ADP setup for your workflow and review its starting records, including workers, time off, pay statements.
  2. Connect. Configure your agent with this world's URL and key using the SDK example. Check that it reaches the intended API before running a test.
  3. Define. Describe the task, expected final changes and records that must stay untouched. Keep expected outcomes separate from the agent's instructions.
  4. Run and inspect. Use the dashboard or your workflow's generated CLI setup. Review final records and changes, then rerun from the same starting setup with the relevant failure conditions. Use Deployment and CI to automate the same workflow.

What to verify

  • Pay group A submitted before the Tue 3 cutoff
  • Off-cycle bonus for J. Alvarez dated no later than Thu 5
  • Pay group B cycle unchanged
  • No garnishment amounts changed
  • 941 deposit schedule left as seeded

Test file

A task file names the jobs, the policy your agent is given and what the grader reads back from the world's final state. The agent never sees the expected outcomes.

yaml · worlds/tasks.yaml
# worlds/tasks.yaml · ADP
version: 2
connector: adp
seed: adp-starter
mode: isolated
policy: >
  Get Pay group A's biweekly payroll submitted before the Tuesday cutoff. Run
  J. Alvarez's missed bonus off-cycle so it pays before Friday. Do not touch
  tax deposit schedules.
tasks:
  - id: prepare-and-submit-a-regular-payroll-cycle
    prompt: Prepare and submit a regular payroll cycle
  - id: run-an-off-cycle-check-for-a-missed-bonus
    prompt: Run an off-cycle check for a missed bonus
  - id: set-up-a-garnishment-or-deduction-on-a-worker
    prompt: Set up a garnishment or deduction on a worker
expected:
  - Pay group A submitted before the Tue 3 cutoff
  - Off-cycle bonus for J. Alvarez dated no later than Thu 5
  - Pay group B cycle unchanged
  - No garnishment amounts changed
  - 941 deposit schedule left as seeded
scenarios:
  - token-expired
  - rate-limited
  - locked-cycle

See Tasks and outcomes for every field, and Deployment and CI to run the file on every pull request.

Failure conditions

Each one fires before the handler, at the same step on every run.

conditionwhat the agent sees
token-expiredThe OAuth access token expires during the cycle
rate-limitedWorker reads return 429 during bulk updates
locked-cycleEdits to a submitted cycle are rejected
event-rejectedA deduction change event is rejected for a missing effective date

Starting data

Start each run from the same records and relationships. The overview below describes the ADP starter; use the setup supplied for your workflow when preparing your own snapshot.

RecordsStarting setup
workers140 across 2 pay groups
pay cyclesBiweekly and semi-monthly
deductions401(k), medical, dental and commuter
garnishments3 child support orders, 1 tax levy
tax filingsQuarterly 941 and state unemployment

The record shapes below reuse this world's API field definitions. They show illustrative values and placeholders, not an importable seed. API responses and seed input can differ; include all required records and references in the accepted import format for your workflow.

Workers records

Workers

Employees with assignment and pay details.

FieldTypeMeaning / relationship
associateOIDstringWorker id
personobjectLegal name and contact
workAssignmentsarrayJobs and managers
workerStatusobjectActive, terminated or on leave
json · illustrative record shape
{
  "associateOID": "<Worker id>",
  "person": {},
  "workAssignments": [],
  "workerStatus": {}
}

See workers operations

Time off records

Time off

Balances and requests.

FieldTypeMeaning / relationship
policyCodestringTime off policy
balancenumberHours available
requestStatusstringPending, approved or denied
startDatedateFirst day off
json · illustrative record shape
{
  "policyCode": "<Time off policy>",
  "balance": 1,
  "requestStatus": "<Pending, approved or denied>",
  "startDate": "<First day off>"
}

See time off operations

Pay statements records

Pay statements

Earnings and deductions per pay period.

FieldTypeMeaning / relationship
payDatedatePay date
grossPayAmountobjectGross pay
netPayAmountobjectNet pay
deductionsarrayTaxes and benefits
json · illustrative record shape
{
  "payDate": "<Pay date>",
  "grossPayAmount": {},
  "netPayAmount": {},
  "deductions": []
}

See pay statements operations

Job requisitions records

Job requisitions

Open roles.

FieldTypeMeaning / relationship
requisitionIDstringRequisition id
jobTitlestringTitle
statusstringOpen, filled or closed
hiringManagerobjectHiring manager
json · illustrative record shape
{
  "requisitionID": "<Requisition id>",
  "jobTitle": "<Title>",
  "status": "<Open, filled or closed>",
  "hiringManager": {}
}

See job requisitions operations

See the ADP world in the catalog