Obtain an ADP client_credentials OAuth token with the appropriate payroll-read scope
GET /payroll/v1/workers/{aoid}/pay-statements to list available pay statements with payPeriodStartDate and payPeriodEndDate filters
Fetch individual statement detail via GET /payroll/v1/workers/{aoid}/pay-statements/{payStatementId} and extract earnings, deductions, and tax withholding line items
Normalize the ADP pay statement schema to your internal payslip model, mapping earningTypeCodes to canonical earning categories
Store the raw JSON response alongside the normalized record so downstream reconciliation can reference original values
Known gotchas
ADP sandbox environments have limited data fidelity; some pay statement fields only appear in production with real payroll runs
The AOID (ADP associate OID) is ADP's internal identifier and must be retrieved separately from the workers API rather than stored locally as a stable key
PDF rendering of pay stubs requires a separate content-type request header; JSON and PDF endpoints behave differently under the same path
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp