Supergood | ADP API
Programmatically access ADP workforce data—employees, payroll runs, pay statements, time, PTO, and benefits—with a stable REST API. Supergood builds and operates production-grade, unofficial ADP integrations so your team can automate HR and payroll workflows without heavy custom engineering.
Plain English: ADP is human resources and payroll software used by companies of all sizes to manage employee records, time and attendance, pay and taxes, benefits, and compliance. An unofficial API lets you programmatically pull employee profiles, organizational structure, time entries, PTO balances and requests, pay runs and pay statements, benefits enrollments—and push updates like new hires, job changes, time punches, PTO requests, and cost center assignments back into ADP.
For a tech company integrating with ADP, this means you can ingest real-time workforce data to power dashboards, sync payroll journals to accounting (e.g., QuickBooks, NetSuite, Xero), automate time capture and approvals from your product, or enrich your platform with PTO balances, schedules, and benefits context. You can also trigger manager notifications, run onboarding steps, attach documents, and keep downstream systems (ERP, analytics, compliance, scheduling) in lockstep.
What is ADP?
ADP (https://developers.adp.com/) is a cloud platform for HR and payroll that centralizes employee administration, time and attendance, pay processing and tax filings, benefits, and compliance across organizations. Teams use ADP to maintain worker records, track time and PTO, process payroll and journals, manage deductions and garnishments, oversee benefits eligibility and enrollment, and deliver tax forms and compliance reports.
Core product areas include:
- HR & Workforce Administration (Workers/Associates, Positions, Departments, Locations, Cost Centers, Documents)
- Payroll & Tax (Pay Runs, Pay Statements, Earnings/Deductions, Garnishments, Taxes, General Ledger Export)
- Time & Attendance (Punches, Timesheets, Schedules, Accruals, Labor Charge Codes)
- Benefits & Talent (Plans, Eligibility, Enrollments, Onboarding, ACA/Compliance)
Common data entities:
- Companies, Users, Roles/Permissions
- Employees/Workers (associate IDs, personal and employment data)
- Jobs/Assignments (position, job title, wage, pay frequency)
- Departments, Locations, Cost Centers
- Pay Runs & Pay Statements (periods, totals, taxes)
- Earnings/Deduction Codes and Garnishments
- Time Entries/Timesheets and Punches
- PTO Balances, Requests, and Accruals
- Benefits Plans and Enrollments
- Documents and Tax Forms (e.g., W-2, 1095-C)
The ADP Integration Challenge
HR and payroll teams rely on ADP daily, but turning portal-based workflows into API-driven automation is non-trivial:
- Product fragmentation: Different ADP offerings (Workforce Now, RUN, Vantage, Time & Attendance) have varied data models and entitlements
- Access gating: Official APIs often require marketplace apps and client-level authorization; many tenants rely on reports or SFTP exports
- Authentication complexity: SSO/MFA (e.g., Okta), session lifecycles, and UI-first flows complicate headless automation
- Payroll rigor: Pay period cutoffs, recalculations, garnishments, and tax reporting demand careful handling and auditability
- Data exports: GL files, carrier EDI (834), and compliance outputs live across modules and views, making automation brittle
- Role-aware permissions: Employees, managers, and admins each see different objects and approval states
How Supergood Creates ADP APIs
Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your ADP tenant.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes responses so you can integrate once and rely on consistent objects across modules
- Aligns with customer entitlements and role-based permissions to ensure compliant access
Use Cases
Employee & Organization Data Sync
- Mirror employees, positions, departments, locations, and cost centers into your internal systems
- Keep worker metadata current for analytics, compliance, and reporting
- Normalize identifiers (associate IDs, employee numbers) across multi-entity operations
Time & Payroll Automation
- Create time entries from your product and track approvals
- Pull pay runs and pay statements to reconcile with ERP/accounting (e.g., QuickBooks, NetSuite, Xero)
- Generate GL exports, align earnings/deductions, and drive audit trails
Benefits & Compliance
- Sync benefits enrollments and eligibility to downstream HR platforms
- Monitor ACA metrics and tax form availability with standardized objects
- Deliver carrier feeds or updates via webhooks while respecting rate and permission constraints
PTO & Scheduling
- Surface PTO balances and create requests with manager notifications
- Sync planned absences to scheduling and workforce management tools
- Track accruals and approvals to drive SLA alerts and updates
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_adp_5ac210",
"name": "HR Admin",
"entitlements": ["employees", "payroll", "time", "pto", "benefits"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Employees
GET /employees: List employees with filters and summary details.
Query parameters
- companyId: string
- status: active | terminated | on_leave
- departmentId: string
- locationId: string
- managerId: string
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"employeeId": "emp_9b12d4",
"associateId": "A1234567",
"employeeNumber": "000317",
"legalName": {"first": "Taylor", "last": "Nguyen"},
"preferredName": "Taylor Nguyen",
"email": "[email protected]",
"status": "active",
"hireDate": "2024-05-10",
"jobTitle": "Senior Analyst",
"positionId": "pos_48c901",
"departmentId": "dept_finance",
"managerId": "emp_4ad221",
"locationId": "loc_chi_hq",
"payType": "salary",
"payRate": 98000.00,
"payFrequency": "biweekly",
"costCenter": "CC-200-FIN",
"ssnMasked": "***-**-4321",
"address": {
"line1": "250 W Adams St",
"city": "Chicago",
"region": "IL",
"postalCode": "60606",
"country": "US"
},
"updatedAt": "2026-01-20T13:45:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
PATCH /employees/{employeeId}: Update employment and organizational attributes.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/employees/emp_9b12d4 \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"jobTitle": "Lead Analyst",
"departmentId": "dept_finance_ops",
"costCenter": "CC-210-FIN-OPS",
"managerId": "emp_4ad221",
"locationId": "loc_chi_hq"
}'
Example response
{
"employeeId": "emp_9b12d4",
"status": "active",
"jobTitle": "Lead Analyst",
"departmentId": "dept_finance_ops",
"costCenter": "CC-210-FIN-OPS",
"updatedAt": "2026-01-22T08:15:12Z"
}
Time Entries
POST /time-entries: Create a time entry (worked hours) with optional labor charge codes.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/time-entries \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"employeeId": "emp_9b12d4",
"date": "2026-01-21",
"startTime": "2026-01-21T09:00:00-06:00",
"endTime": "2026-01-21T17:30:00-06:00",
"breakMinutes": 30,
"payCode": "REG",
"laborChargeCode": "LCC-FIN-ANL",
"notes": "Month-end close prep"
}'
Example response
{
"timeEntryId": "te_71c3a0",
"status": "accepted",
"calculatedHours": 8.0,
"date": "2026-01-21",
"employeeId": "emp_9b12d4",
"createdAt": "2026-01-21T10:03:11Z"
}
Pay Runs
GET /pay-runs: List pay runs for a company with period details and totals.
Query parameters
- companyId: string
- payCycleId: string
- status: open | approved | processed | posted
- periodStart, periodEnd: ISO 8601 dates
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"payRunId": "pr_2026_02",
"payCycleId": "pc_biweekly",
"payCycleName": "Biweekly",
"periodStart": "2026-01-10",
"periodEnd": "2026-01-23",
"payDate": "2026-01-29",
"status": "processed",
"totals": {
"gross": 245000.25,
"net": 168420.78,
"taxes": 56320.10
},
"employeeCount": 117,
"postedAt": "2026-01-28T21:05:44Z",
"updatedAt": "2026-01-28T21:05:44Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
PTO Requests
POST /time-off-requests: Create a PTO request and optionally notify the employee’s manager.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/time-off-requests \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"employeeId": "emp_9b12d4",
"type": "vacation",
"startDate": "2026-02-12",
"endDate": "2026-02-14",
"hours": 16,
"reason": "Personal travel",
"notifyManager": true
}'
Example response
{
"requestId": "pto_51af80",
"status": "pending_approval",
"employeeId": "emp_9b12d4",
"type": "vacation",
"hours": 16,
"balanceAfter": {
"vacation": 64,
"sick": 40
},
"createdAt": "2026-01-21T11:20:44Z"
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of employees, time entries, pay runs, pay statements, PTO, and benefits objects
- Security: Encrypted transport, scoped tokens, and audit logging; respects ADP role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., payroll processing, benefits enrollments)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume employee data sync and time/PTO processing
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened ADP adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as ADP evolves.
Frequently Asked Questions
Q: Which ADP modules can this integration cover?
Supergood supports workflows across commonly used modules such as HR & Workforce Administration (Workers, Positions, Departments), Payroll (Pay Runs, Pay Statements, GL Export), Time & Attendance (Punches, Timesheets, Schedules, Accruals), and Benefits (Plans, Enrollments), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled (e.g., Okta). Sessions are refreshed automatically with secure challenge handling.
Q: Can you sync payroll journals to our accounting system?
Yes. We can normalize pay runs, pay statements, and earnings/deduction line items to match your ERP/accounting schema and deliver updates via webhooks or polling while complying with rate and permission constraints. We commonly integrate with QuickBooks, NetSuite, and Xero.
Q: Are pay statements and tax forms supported?
We support listing pay statements and downloading PDFs where permitted by tenant configuration and permissions. Access to tax forms (e.g., W-2, 1095-C) depends on entitlements and compliance policies; we scope this during onboarding.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your ADP workflows?
Supergood can have your ADP integration live in days with no ongoing engineering maintenance.