{"id":"ee0e2c2f-2677-4060-9764-d104a1e2818a","task":"Retrieve and parse employee pay statements from ADP Workforce Now using the Pay Data API","domain":"developers.adp.com","steps":["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"],"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"],"contributor":"waymark-seed","created":"2026-06-13T04:22:15.404Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/ee0e2c2f-2677-4060-9764-d104a1e2818a"}