# Paychex MCP connector

The Paychex connector brings companies, workers, jobs, company checks and custom fields into Claude, ChatGPT, Cursor and other MCP clients, so your team can look up and update Paychex records within each person's own access.

Source: https://elaichi.ai/connectors/paychex/

## Facts

| | |
| --- | --- |
| Application | Paychex |
| Category | HRIS |
| AI tools | 110 |
| Authentication | App credentials |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 110 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Paychex is connected

- Which workers have custom fields missing for onboarding this week?
- Summarize company checks issued across all Paychex companies this month.
- List worker updates made in Paychex since Monday.

## Connect Paychex in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Paychex.
2. Optionally set Share with, then press Connect.
3. Paste your Paychex app credentials. Paychex authenticates the app rather than a person. One person supplies the credentials once, and everyone else works through Share with.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Paychex tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Paychex to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Paychex to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Paychex to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Paychex to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Paychex tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Paychex through Elaichi

### Pull up a worker before a conversation

HR. Ask for a worker's Paychex record by their ID and get their details read back before a check-in or a difficult meeting, without clicking through the Paychex menus.

### Catch a worker record up after a change

HR. When someone changes their name, address or other details, tell the agent and it updates the Paychex worker record while you move on to the next thing.

### Cut a company check when one is needed

Payroll. Create a company check in Paychex for an off-cycle payment and review the list of existing checks before you do, all from the same chat.

### Review calculation bases before a payroll run

Finance. List the calculation bases set up on a Paychex company and ask the agent to summarize them so the run is checked before money moves.

### Add a new job to the company

Operations. When a new role is approved, create the job in Paychex and confirm the full list of jobs and employment types is up to date.

### Set up custom fields for tracking

People Ops. Create custom fields and custom field categories in Paychex to track things like desk location or equipment, then tidy up old ones you no longer use.

## Frequently asked questions

### How do I connect Paychex to Claude?

First, connect Paychex in Elaichi: choose it from the catalog and enter the app credentials from your Paychex account, then Elaichi signs you in with them. There is no OAuth application to register and no client ID or secret to generate. Second, open Claude, go to Customize, then Connectors, then Add, and paste in https://api.elaichi.ai/mcp. Sign in to Elaichi when Claude asks and Paychex is ready to use.

### Does Paychex work with ChatGPT and Cursor as well as Claude?

Yes. Once Paychex is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Paychex once and every client you use picks it up.

### What can an AI agent actually do with my Paychex data?

With Paychex connected, an agent can list your companies, look up a worker's record, update that worker's details, create and review company checks, and add or look up jobs. It can also list calculation bases, contact types, employment types and document categories, and create, update or remove custom fields and their categories. Because Paychex offers so many actions, short concrete asks such as "update worker 4821's address" work better than long paragraphs.

### Does connecting Paychex give the AI everything in my Paychex account?

No. Every request to Paychex runs as the person who signed in, so the agent sees only the companies and workers that person can already see in Paychex. Elaichi can narrow that further, for example by blocking updates or deletions for a team, but it can never widen access beyond what Paychex already allows that person.

### Can my team share one Paychex connection?

Yes. One administrator connects Paychex in Elaichi and shares the connection with a team, and nobody else ever handles the Paychex app credentials. Each teammate still signs in to Elaichi as themselves, so every Paychex lookup or update in the audit log is tied to the person who made it.

### Can I stop an agent from deleting or changing things in Paychex?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Paychex workers and jobs while blocking updates, deletions or creating company checks. A blocked action is never shown to Claude, ChatGPT or any other client, so no prompt, however worded, can reach it.

### What happens to a Paychex connection when someone leaves?

When you offboard someone in Elaichi, their access to Paychex through every client ends at once. A shared Paychex connection keeps working for everyone else on the team. If you want to remove Paychex entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 110 Paychex tools

Every tool below is callable through https://api.elaichi.ai/mcp once Paychex is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Paychex companies** (List). List Paychex companies your application has been granted access to. Returns each company's companyId, displayId, legalName, hasPermission, legalId, communications, lineage, and links.
- **Get single Paychex company by ID** (Get). A Company. Returns: companyId, displayId, legalName, communications, hasPermission, legalId, lineage, links. Required: id.
- **Get single Paychex worker by ID** (Get). Get a single Paychex worker (employee or contractor) by id. Returns: workerId, employeeId, workerType, employmentType, customEmploymentType, exemptionType, workState, birthDate, sex, ethnicityCode, hireDate, clockId, name, seniorityDate, profileImageURL, legalId, laborAssignmentId, locationId, jobId, job, organization, supervisor, currentStatus, communications, _links, workerCorrelationId.…. Required: id.
- **Update a Paychex worker by ID** (Update). Worker. Returns: workerId, employeeId, workerType, employmentType, customEmploymentType, exemptionType, workState, birthDate. Required: id.
- **Delete a Paychex worker by ID** (Delete). Delete an in-progress Paychex worker by id. Returns an empty 204 response on success. Required: id.
- **List all Paychex company calculation bases** (List). List calculation bases for a Paychex company. Calculation bases determine what to apply a calculation against during a pay run for worker pay components that are not FLAT_DOLLAR_AMOUNT. Returns: calculationBaseId, calculationBaseName. Required: company_id.
- **List all Paychex company checks** (List). Company Checks. Returns: workerId, paycheckId, payPeriodId, checkCorrelationId, blockAutoDistribution, earnings, deductions, checkDate. Required: company_id, payperiodid.
- **Create a Paychex company check** (Create). Company Checks. Returns: workerId, paycheckId, payPeriodId, checkCorrelationId, blockAutoDistribution, earnings, deductions, checkDate. Required: company_id.
- **List all Paychex company contact types** (List). List contact types that your application has been granted access to for a specific Paychex company. Returns: contactTypeId, contactTypeName, relationshipTypes, links. Required: company_id.
- **List all Paychex company custom employment types** (List). List custom employment types configured for a Paychex company that a worker could be assigned to. Returns: customEmploymentTypeId, customEmploymentTypeName, links. Required: company_id.
- **List all Paychex company custom fields** (List). List custom fields configured at the company level in Paychex. Returns: customFieldId, customFieldName, categoryId, required, checkStub, employeeEditable, type, booleanValue, links, dateValue, textValue, maxTextLength, numericValue, dropdown. Required: company_id.
- **Create a Paychex company custom field** (Create). Create custom fields at the company level in Paychex by sending an array of field definitions including name, type, and category. Returns: customFieldId, customFieldName, categoryId, required, checkStub, employeeEditable, type, booleanValue, links, dateValue, textValue, maxTextLength, numericValue, dropdown. Required: company_id.
- **Get single Paychex company custom field by ID** (Get). Get a single custom field by id in Paychex. Returns: customFieldId, customFieldName, categoryId, required, checkStub, employeeEditable, type, booleanValue, links, dateValue, textValue, maxTextLength, numericValue, dropdown. Required: id, company_id.
- **Update a Paychex company custom field by ID** (Update). Update a custom field at the company level in Paychex by sending an array of field definitions. Returns: customFieldId, customFieldName, categoryId, required, checkStub, employeeEditable, type, booleanValue, links, dateValue, textValue, maxTextLength, numericValue, dropdown. Required: id, company_id.
- **Delete a Paychex company custom field by ID** (Delete). Delete a custom field at the company level in Paychex. Returns an empty 204 response on success. Required: id, company_id.
- **List all Paychex company custom field categories** (List). List custom field categories configured at the company level in Paychex. Returns: categoryId, categoryName, links. Required: company_id.
- **Create a Paychex company custom field category** (Create). Create a custom field category at the company level in Paychex. Returns: categoryId, categoryName, links. Required: company_id.
- **Get single Paychex company custom field category by ID** (Get). Get a single custom field category by id in Paychex. Returns: categoryId, categoryName, links. Required: id, company_id.
- **Update a Paychex company custom field category by ID** (Update). Update a custom field category at the company level in Paychex. Returns: categoryId, categoryName, links. Required: id, company_id.
- **Delete a Paychex company custom field category by ID** (Delete). Delete a custom field category at the company level in Paychex. Returns an empty 204 response on success. Required: id, company_id.
- **List all Paychex company document categories** (List). List document categories available to a Paychex company for creating and organizing documents. Returns: categoryId, name, customCategory, links. Required: company_id.
- **List all Paychex company jobs** (List). List jobs set at the company level in Paychex. Returns: jobId, jobCorrelationId, jobName, startDate, endDate, links, jobNumber, laborAssignmentId, value. Required: company_id.
- **Create a Paychex company job** (Create). Create a company-level job in Paychex. If the client's job numbering is structured in 2-3 separate segments, first retrieve the job segment configuration to determine segment names and character lengths before posting. Returns: jobId, jobCorrelationId, jobName, startDate, endDate, links, jobNumber. Required: company_id.
- **Get single Paychex company job by ID** (Get). Get a single Paychex company job by id. Returns: jobId, jobCorrelationId, jobName, startDate, endDate, links, jobNumber. Required: id, company_id.
- **Update a Paychex company job by ID** (Update). Update a single Paychex company job by id. Returns: jobId, jobCorrelationId, jobName, startDate, endDate, links, jobNumber. Required: id, company_id.
- **List all Paychex company job segments** (List). List Paychex company job segment structure setup for a client. Returns: segmentNumber, name, segmentLength, links. Only available if the client has job numbering configured in 2-3 separate segments. Required: company_id.
- **List all Paychex company job titles** (List). List job titles set at the company level which a worker could be assigned in Paychex. Returns: jobTitleId, title, startDate, endDate, links. Required: company_id.
- **Get single Paychex company job title by ID** (Get). Get information about a single job title in Paychex. Returns: jobTitleId, title, startDate, endDate, links. Required: id, company_id.
- **List all Paychex company labor assignments** (List). List labor assignments set at the company level in Paychex. Returns: laborAssignmentId, name, startDate, endDate, organizationId, positionId, links, locationId, rate, jobId, value. Required: company_id.
- **Get single Paychex company labor assignment by ID** (Get). Get a single labor assignment by id for a company in Paychex. Returns: laborAssignmentId, name, startDate, endDate, organizationId, positionId, links, locationId, rate, jobId, value. Required: id, company_id.
- **List all Paychex company locations** (List). List Paychex company locations set at the company level. Returns: locationId, name, address, links, movedIn, movedOut. Required: company_id.
- **Get single Paychex company location by ID** (Get). Get a single Paychex company location by id. Returns: locationId, name, address, links, movedIn, movedOut. The optional asof query parameter returns the location as of a specified date. Required: id, company_id.
- **List all Paychex company organizations** (List). List organizations set at the company level in Paychex. Returns an array of organization records including organizationId. Required: company_id.
- **Get single Paychex company organization by ID** (Get). Get a single Paychex company organization by id. Returns the organization resource including id and organization-specific attributes. Required: id, company_id.
- **List all Paychex company pay components** (List). List pay components configured for a Paychex company. Pay components are the earnings and deductions used for payroll. Returns: componentId, checkComponentId, code, name, classificationType, description, effectOnPay, startDate, endDate, appliesToWorkerTypes, jobId, laborAssignmentId, calculationType, payRateId, payRate, payHours, payUnits, payAmount, organization, lineDate, memoed, links.…. Required: company_id.
- **Get single Paychex company pay component by ID** (Get). Get a specific pay component (earning or deduction) configured for a Paychex company by id. Returns: componentId, checkComponentId, code, name, classificationType, description, effectOnPay, startDate, endDate, appliesToWorkerTypes, jobId, laborAssignmentId, calculationType, payRateId, payRate, payHours, payUnits, payAmount, organization, lineDate, memoed, links. Required: id, company_id.
- **List all Paychex company pay frequencies** (List). List pay frequency combinations available to workers for a Paychex company. Returns: payFrequency, payComponentFrequency, links. Required: company_id.
- **List all Paychex company pay periods** (List). List pay periods associated with a Paychex company, optionally filtered by status and date range. Returns: payPeriodId, intervalCode, status, description, startDate, endDate, submitByDate, checkDate, checkCount, originalPayPeriodID, links, payperiodId. Required: company_id.
- **Get single Paychex company pay period by ID** (Get). Get a single Paychex pay period by id. Returns: payPeriodId, intervalCode, status, description, startDate, endDate, submitByDate, checkDate, checkCount, originalPayPeriodID, links. Required: id, company_id.
- **List all Paychex company state taxes** (List). List Paychex company state taxes showing information about states the client has enabled for state income tax. Required: company_id.
- **List all Paychex company workers** (List). List Paychex workers (employees and contractors) for a specific company. Returns: workerId, employeeId, workerType, employmentType, exemptionType, birthDate, sex, ethnicityCode, hireDate, clockId, name, seniorityDate, profileImageURL, legalId, laborAssignmentId, jobId, locationId, job, organization, supervisor, currentStatus, communications, workerCorrelationId. Required: company_id.
- **Create a Paychex company worker** (Create). Create one or more in-progress workers for a Paychex company. Workers receive an IN_PROGRESS status and must be fully configured in Flex. Returns: workerId, employeeId, workerType, employmentType, exemptionType, birthDate, sex, ethnicityCode, hireDate, clockId, name, seniorityDate, profileImageURL, legalId, laborAssignmentId, jobId, locationId, job, organization, supervisor, currentStatus,…. Required: company_id.
- **List all Paychex company worker statuses** (List). List company worker statuses in Paychex — the array of statuses set at the company level which a worker could be assigned. Returns: workerStatusId, statusType, statusReason, links. Required: company_id.
- **Get single Paychex company worker status by ID** (Get). Get a single company worker status in Paychex by its worker status id. Returns: workerStatusId, statusType, statusReason, links. Required: id, company_id.
- **List all Paychex worker assignment distributions** (List). List the array of assignments used for auto-distribution assigned to a Paychex worker. Returns: jobId, laborAssignmentId, value. Required: worker_id.
- **List all Paychex worker checks** (List). List Paychex worker checks within a processed or unprocessed pay period. Returns: workerId, paycheckId, payPeriodId, checkCorrelationId, blockAutoDistribution, earnings, deductions, informational, taxes, links. Required: worker_id, payperiodid.
- **Create a Paychex worker check** (Create). Add a check to a Paychex worker for an unprocessed pay period. Returns: workerId, paycheckId, payPeriodId, checkCorrelationId, blockAutoDistribution, earnings, deductions, informational, taxes, links, application/vnd.paychex.payroll.check.v1+json, application/json. Required: worker_id.
- **Get single Paychex worker check by ID** (Get). Get a specific Paychex worker check by id, either processed or unprocessed. Returns: workerId, paycheckId, payPeriodId, checkCorrelationId, blockAutoDistribution, earnings, deductions, informational, taxes, links. Required: id, worker_id.
- **Delete a Paychex worker check by ID** (Delete). Delete a specific unprocessed Paychex worker check by id. Returns an empty 204 response on success. Required: id, worker_id.
- **List all Paychex worker communications** (List). List communications for an Active or In-progress Paychex worker. Returns: communicationId, type, usageType, dialCountry, dialArea, dialNumber, dialExtension, uri, streetLineOne, streetLineTwo, postOfficeBox, city, postalCode, postalCodeExtension, countrySubdivisionCode, countryCode, _links, links. Required: worker_id.
- **Create a Paychex worker communication** (Create). Add a single communication to an Active or In-progress Paychex worker. Returns: type, uri, city, _links, links, application/vnd.paychex.worker.communication.v1+json, application/json. Required: worker_id.
- **Get single Paychex worker communication by ID** (Get). Worker Communication. Returns: communicationId, type, usageType, dialCountry, dialArea, dialNumber, dialExtension, uri. Required: id, worker_id.
- **Update a Paychex worker communication by ID** (Update). Update a specific communication item for an Active or In-progress Paychex worker. Returns: type, uri, city, _links, links, application/vnd.paychex.worker.communication.v1+json, application/json. Required: id, worker_id.
- **Delete a Paychex worker communication by ID** (Delete). Remove a communication item from an Active or In-progress Paychex worker. STREET_ADDRESS or PO_BOX_ADDRESS types cannot be removed. Returns: content, links, type. Required: id, worker_id.
- **Get single Paychex worker compensation by ID** (Get). Worker Compensation. Returns: metadata, content, errors, message, _links. Required: id.
- **List all Paychex compensation pay rates** (List). List compensation pay rates for a Paychex worker. A worker can have up to 25 different rates. Returns: rateId, startDate, rateNumber, rateType, description, amount, standardHours, standardOvertime, effectiveDate, _links, links. Required: worker_id.
- **Create a Paychex compensation pay rate** (Create). Create a single compensation pay rate for an Active or In-progress Paychex worker. Returns the created pay rate including rateId, startDate, rateNumber, rateType, amount, standardHours, default. Required: worker_id.
- **Get single Paychex compensation pay rate by ID** (Get). Get a single compensation pay rate by id for a Paychex worker. Returns: rateId, startDate, rateNumber, rateType, description, amount, standardHours, standardOvertime, effectiveDate, _links, links. Required: id, worker_id.
- **Update a Paychex compensation pay rate by ID** (Update). Update a specific compensation pay rate for a Paychex worker. Returns the updated pay rate including rateId, startDate, rateNumber, rateType, description, amount, standardHours, standardOvertime, default, and links. Required: id, worker_id.
- **Delete a Paychex compensation pay rate by ID** (Delete). Delete a specific compensation pay rate from a Paychex worker. Returns an empty 204 response on success. Required: id, worker_id.
- **List all Paychex compensation pay standards** (List). List Paychex worker compensation pay standards for a specific worker. Returns: payFrequency, overtimeFactor, calculatedPayPeriod, calculatedAnnualSalary, calculatedAnnualSalaryFromHistory. Required: worker_id.
- **List all Paychex worker contacts** (List). Worker Contacts. Returns: contactId, contactType, relationship. Required: worker_id.
- **Create a Paychex worker contact** (Create). Add one or more contacts to a Paychex worker. Each contact must represent either a person or entity (not both) and include at least one communication (telecom, postal, or email). Returns the created contacts including contactId, contactType, and relationship with person/entity communications. Exactly one contact must be primary per contact type. Required: worker_id.
- **Get single Paychex worker contact by ID** (Get). Worker Contact. Returns: contactId, contactType, relationship. Required: id, worker_id.
- **Update a Paychex worker contact by ID** (Update). Update a Paychex worker contact by id. A contact may be a person or entity but not both, and must include at least one communication (telecom, postal, or email). Returns: contactId, contactType, relationship, application/vnd.paychex.worker.contacts.v1+json, application/json. Exactly one contact must be primary per contact type; postal may have streetLineOne or…. Required: id, worker_id.
- **Delete a Paychex worker contact by ID** (Delete). Delete a Paychex worker contact by id. Returns an empty 204 response on success. Required: id, worker_id.
- **List all Paychex worker custom fields** (List). List custom fields for a specific Paychex worker. Returns: workerCustomFieldId, customFieldId, type, booleanValue, textValue, numericValue, dateValue, dropdownId, dropdownValue, customFieldName, required, checkStub, employeeEditable. Required: worker_id.
- **Create a Paychex worker custom field** (Create). Create a custom field at the worker level in Paychex. Returns the created worker custom field including workerCustomFieldId. Required: worker_id.
- **Get single Paychex worker custom field by ID** (Get). Get a specific Paychex worker custom field by worker custom field id. Returns: workerCustomFieldId, customFieldId, type, booleanValue, textValue, numericValue, dateValue, dropdownId, dropdownValue, customFieldName, required, checkStub, employeeEditable. Required: id, worker_id.
- **Update a Paychex worker custom field by ID** (Update). Update a custom field at the worker level in Paychex. Returns the updated worker custom field including workerCustomFieldId. Required: id, worker_id.
- **Delete a Paychex worker custom field by ID** (Delete). Delete a worker custom field in Paychex. Returns an empty 204 response on success. Required: id, worker_id.
- **List all Paychex worker direct deposits** (List). Worker Direct Deposits. Returns: directDepositId, bankAccountId, startDate, paymentType, accountType, value, routingNumber, accountNumber. Required: worker_id.
- **Create a Paychex worker direct deposit** (Create). Worker Direct Deposit. Returns: directDepositId, bankAccountId, startDate, paymentType, accountType, value, routingNumber, accountNumber. Required: worker_id.
- **Paychex worker direct deposits bulk update** (Update). Update multiple direct deposits for an Active or In-Progress Paychex worker in a single request. Returns the array of updated direct deposits including directDepositId, startDate, paymentType, accountType, value, routingNumber, accountNumber, and priority. In-Progress workers cannot be patched using the application/json-patch+json content type. Required: worker_id.
- **Get single Paychex worker direct deposit by ID** (Get). Worker Direct Deposit. Returns: directDepositId, bankAccountId, startDate, paymentType, accountType, value, routingNumber, accountNumber. Required: id, worker_id.
- **Update a Paychex worker direct deposit by ID** (Update). Update a single direct deposit for an Active or In-Progress worker in Paychex. Returns the updated direct deposit object including paymentType, accountType, value, routingNumber, accountNumber, and priority. In-Progress workers cannot be patched using application/json-patch+json content type. Required: id, worker_id.
- **Delete a Paychex worker direct deposit by ID** (Delete). Delete a single direct deposit for an Active or In-Progress worker in Paychex. Returns an empty 204 response on success. Required: id, worker_id.
- **List all Paychex worker documents** (List). List documents for an Active or Terminated Paychex worker. Returns each document's docId, name, category, workerVisible, workerVisibleDate, expirationDate, expirationReminderDays. Only workers with an Active or Terminated status are supported. Required: worker_id.
- **Create a Paychex worker document** (Create). Upload a document to an Active or Terminated Paychex worker with associated metadata. Returns: name, category, document, _links, multipart/form-data. Required: worker_id.
- **Get single Paychex worker document by ID** (Get). Retrieve a document for a Paychex worker. Returns: docId, name, expirationReminderDays, expirationDate, category, workerVisible, workerVisibleDate, document, _links. Required: id, worker_id.
- **Delete a Paychex worker document by ID** (Delete). Remove a document from an Active or Terminated worker in Paychex. Returns an empty 204 response on success. Required: id, worker_id.
- **Get single Paychex worker federal tax by ID** (Get). Get the federal tax setup for an Active or In-progress Paychex worker. Returns the federal tax record including taxId, filingStatus, taxesWithheld, extraWithholdingAmount, and extraWithholdingPercentage. Required: id.
- **Create a Paychex worker federal tax** (Create). Create federal tax setup for a Paychex worker. Returns the federal tax record including taxId, filingStatus, taxesWithheld, extraWithholdingAmount, and extraWithholdingPercentage. This endpoint will be deprecated on 1/30/2026; until then, POST behaves as both a create and update depending on whether the worker already has federal tax setup. Required: worker_id.
- **Paychex worker federal taxes bulk update** (Update). Update the federal tax setup for an Active or In-progress Paychex worker, allowing changes to extra withholding and override combinations. Returns the federal tax record including taxId, filingStatus, taxesWithheld, extraWithholdingAmount, and extraWithholdingPercentage. Required: worker_id.
- **Get single Paychex worker i 9 status by ID** (Get). Get the I9 status of a Paychex worker (employee or contractor). Returns: status, isRemoteI9, remoteType, createdDate, lastUpdated, _links. Required: id.
- **List all Paychex worker pay components** (List). List all pay components for a specific Active worker in Paychex. Returns: workerComponentId, componentId, name, calculationType, calculationBaseId, value, startDate, effectiveDate, endDate, effectOnPay, classificationType, checkLimit, frequency, accountNumber, routingNumber, accountType, workerPayCompScheduledEntries, transactions, _links. Only Active workers are supported;…. Required: worker_id.
- **Create a Paychex worker pay component** (Create). Add a recurring pay component to an Active Paychex worker, supporting both Addition and Reduction types applied per the frequency specified. Returns: workerComponentId, componentId, name, calculationType, calculationBaseId, value, startDate, effectiveDate, endDate, effectOnPay, classificationType, checkLimit, frequency, accountNumber, routingNumber, accountType, workerPayCompScheduledEntries,…. Required: worker_id.
- **Paychex worker pay components bulk update** (Update). Worker Pay Components. Returns: workerComponentId, componentId, name, calculationType, calculationBaseId, value, startDate, effectiveDate. Required: worker_id.
- **Get single Paychex worker pay component by ID** (Get). Worker Pay Component. Returns: workerComponentId, componentId, name, calculationType, calculationBaseId, value, startDate, effectiveDate. Required: id, worker_id.
- **Update a Paychex worker pay component by ID** (Update). Worker Pay Component. Returns: workerComponentId, componentId, name, calculationType, calculationBaseId, value, startDate, effectiveDate. Required: id, worker_id.
- **Delete a Paychex worker pay component by ID** (Delete). Delete a specific pay component from an Active worker in Paychex. The worker must be in an Active state; pay components created today and future-dated pay components cannot be deleted. Returns an empty 204 response on success. Required: id, worker_id.
- **Get single Paychex worker profile image by ID** (Get). Get a Paychex worker's profile image by id. Returns: fileName, base64Image. Only available for workers with an "Active" or "In-Progress" status. Required: id.
- **Create a Paychex worker profile image** (Create). Add a profile image to a Paychex worker. Returns: profileImageURL. Images must be JPG, PNG, or GIF, no larger than 5MB. Only available for workers with an "Active" or "In-Progress" status. Required: worker_id.
- **Paychex worker profile images bulk delete** (Delete). Delete a Paychex worker's profile image. Returns an empty 204 response on success. Only available for workers with an "Active" or "In-Progress" status. Required: worker_id.
- **List all Paychex worker state taxes** (List). List Paychex worker state tax allocations for a given worker. Returns: workerTaxId, countrySubdivisionCode, isResidentState, stateAllocationPercent, regulationType, taxStatusType, filingStatusType, additionalAmount, additionalPercent, overridePercent, flatDollarOverride, exemptionReasonDescription, workerTaxDeductions. Required: worker_id.
- **Paychex worker state taxes bulk update** (Update). Add and replace existing state tax data for a Paychex worker. Returns: workerTaxId, countrySubdivisionCode, isResidentState, stateAllocationPercent, regulationType, taxStatusType, filingStatusType, additionalAmount, additionalPercent, overridePercent, flatDollarOverride, exemptionReasonDescription, workerTaxDeductions. Required: worker_id.
- **Get single Paychex worker status by ID** (Get). Retrieve all worker statuses (past, present, and future) for a Paychex worker. Returns: workerStatusId, statusType, statusReason, effectiveDate, order, _links, links. If multiple statuses share an effective date, the order field indicates the sequence in which they were posted. Required: id.
- **Get single Paychex worker timeoff by ID** (Get). Get time off balances for a Paychex worker, returning an array of balances for each time off policy type. Returns: policyId, type, name, balance, measure. Only available if the client has the Time Off Accrual product (not related to the Flex Time product). Required: id.
- **Paychex checks bulk delete** (Delete). Delete Paychex checks for a specific pay period and user. Returns an empty 204 response on success. Required: payperiodid, deletebyuserid.
- **Create a Paychex check check component** (Create). Add a new pay component (earnings, deductions, informational, or taxes) to an individual unprocessed Paychex check. Returns the updated check object including earnings, deductions, and taxes. Required: check_id.
- **Update a Paychex check check component by ID** (Update). Update a single pay component on an individual unprocessed Paychex check. Returns the updated component including name, classificationType, effectOnPay, payAmount, memoed, and lineDate. Required: id, check_id.
- **Delete a Paychex check check component by ID** (Delete). Delete a single pay component on an individual unprocessed check in Paychex. Returns an empty 204 response on success. Required: id, check_id.
- **List all Paychex management domains** (List). List available Paychex webhook domains for the calling application. Returns an array of domain identifier strings (e.g., WRKR_DEM) that can be used when registering webhooks via the management hooks endpoint. The available domains vary depending on application type (client or partner).
- **List all Paychex management hooks** (List). List all webhooks set up for the calling Paychex application. Returns: hookId, companyId, uri, authType, createdDate, domains.
- **Create a Paychex management hook** (Create). Create a new webhook for the calling Paychex application by providing a notification URI, authentication configuration, and list of domains. Returns: application/json. Required: uri, authentication, domains.
- **Get single Paychex management hook by ID** (Get). Get a specific Paychex webhook by id. Returns: hookId, companyId, uri, authType, createdDate, domains. Required: id.
- **Delete a Paychex management hook by ID** (Delete). Delete a specific Paychex webhook by id. Returns an empty 204 response on success. Required: id.
- **Delete a Paychex management remove client access by ID** (Delete). Remove (unlink) Paychex client access from a 3rd party partner application by display id. Returns a success response string confirming the client access link has been removed. For partnerships only. Required: id.
- **Create a Paychex management request client access** (Create). Request client access to link Paychex clients to a 3rd party partner application. Returns: approvalLink. For partnerships only. Required: displayId.
- **Create a Paychex oauth token** (Create). Request a Bearer token from Paychex to use as an access token when making calls to resources. Returns: access_token, expires_in, scope, token_type. Credentials are sent as form-encoded body fields; grant_type must be set to "client_credentials".
