> ## Documentation Index
> Fetch the complete documentation index at: https://usepike.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Paychex Flex

> Sync Paychex Flex workers, organizations, job titles and pay rates into Pike, and send approved hours to unprocessed Paychex Flex checks.

The Paychex Flex integration syncs workers from Paychex Flex into Pike [members](https://usepike.com/docs/members/overview.md), organizations into teams, and job titles into positions. When you close a Pike [pay period](https://usepike.com/docs/members/payroll.md), approved hours for hourly workers go to Paychex Flex as hours on each worker's check for the next unprocessed pay period: regular hours, overtime, and paid time off taken in Pike. Payroll uses the same approved timesheets you bill from, and nobody keys hours into Paychex Flex.

## At a glance

| | |
| - | - |
| **Direction** | Paychex Flex to Pike for workers, organizations, job titles and pay rates. Pike to Paychex Flex for hours on checks, when enabled |
| **Who sets it up** | Workspace admins, with your Paychex Flex company ID, after a Paychex Flex admin approves Pike's access to the company |
| **Plan** | All plans |
| **Sync** | Every 3 hours. On the Enterprise plan, changes sync in real time. |
| **Source of truth** | Paychex Flex for person fields and payroll. Pike for time off, capacity, allocations, projects, time and cost profiles (unless compensation sync is on) |

## Before you start

You need:

* The workspace admin role in Pike.
* Your Paychex Flex company ID, the display ID shown for your company in Paychex Flex.
* A Paychex Flex admin for your company who can approve Pike's access to workers, company organizations, job titles, pay components, pay periods and checks.
* The pay components your company uses for regular hours, overtime and paid time off, set up in Paychex Flex. You map each Pike pay line and time off type to a pay component during setup.
* Pike time off types for the paid time off your hourly workers take. Members request time off in Pike. See [Time off](https://usepike.com/docs/members/time-off.md).

## Connect Paychex Flex

**1. Open the integration**

Go to **Workspace settings → Integrations → Paychex Flex** and click **Add
integration**.

**2. Enter your company ID**

Enter your Paychex Flex company ID and click **Connect**. Once the Paychex
Flex admin approves Pike's access, Pike shows the company name.

**3. Map time off types**

Under **Time off types**, choose the Paychex Flex pay component for each
Pike time off type that hourly workers are paid for, such as Vacation and
Sick. Pike suggests a mapping from the pay component names.

**4. Check pay codes**

Under **Pay codes**, check the pay component for **Normal hours**,
**Overtime 1** and **Overtime 2**. Pike suggests your company's regular and
overtime pay components.

**5. Choose what syncs**

In the **What syncs with Paychex Flex** card, turn **Read** and **Send** on
or off for each entity, and choose whether to turn on **Invite new
employees**.

**6. Import**

Click **Import data**. Organizations and job titles import first, then
workers.

The integration page shows **Connected**, the Paychex Flex company name, **Last synced** and **Next sync**.

## What syncs

| Paychex Flex | Pike | Direction |
| - | - | - |
| Workers | Members | Paychex Flex to Pike |
| Organizations | Teams | Paychex Flex to Pike |
| Job titles | Positions | Paychex Flex to Pike |
| Pay rates | Member cost profiles | Paychex Flex to Pike, when **Sync compensation to cost profiles** is on |
| Pay components | Pay codes | Mapped in the integration settings |
| Check components with hours | Pay lines from a closed Pike pay period | Pike to Paychex Flex, when **Send hours to payroll** is on |

### Workers

| Paychex Flex field | Pike field | Notes |
| - | - | - |
| Given name, family name | Member name | |
| Business email | Member email | Also used to match existing members |
| Job title | Position | A position is created when no Pike position has the same name |
| Organization | Team | A team is created when no Pike team has the same name |
| Current status | Member status | A terminated or inactive worker becomes a deactivated member |
| Pay rate type | Employment type | Hourly becomes **Hourly**. Salary becomes **Salaried** |
| Exemption type | Overtime | Overtime is not sent for a worker who is exempt from overtime |
| Hire date | Hire date | |
| Worker ID | Paychex Flex ID | Shown on the member as the Paychex Flex marker |

### Time off

Members request time off in Pike, and approved time off comes off capacity in Pike. Pike does not read time off from Paychex Flex. For hourly workers, approved paid time off in a closed pay period goes to Paychex Flex as hours on the pay component you mapped.

| Pike time off type | Sent to Paychex Flex as | Notes |
| - | - | - |
| Vacation | Hours on the mapped pay component, such as vacation | Hourly workers only |
| Sick | Hours on the mapped pay component, such as sick | Hourly workers only |
| Unmapped types | Not sent | Listed on the payroll page before the close |

A part-day absence sends only its hours. Each type counts toward the member's [norm hours](https://usepike.com/docs/members/working-time.md#norm-hours) as set on the Pike type.

### Compensation

**Sync compensation to cost profiles** is off by default. Only admins and finance users can turn it on.

| Paychex Flex field | Pike field | Notes |
| - | - | - |
| Pay rate amount | Cost profile salary | Hourly rate or salary |
| Pay rate type | Cost profile pay period | Hour or year |
| Effective date | Cost profile start date | Each rate change adds a new row |

See [Cost profile](https://usepike.com/docs/members/cost-profile.md).

### Hours to payroll

**Send hours to payroll** is off by default. When on, closing a pay period in Pike adds each hourly worker's approved hours to their unprocessed check for the next unprocessed Paychex Flex pay period. Each line is a check component with the pay component and the hours. The [working time policy](https://usepike.com/docs/members/working-time.md) sets the split between regular and overtime hours.

| Pike pay line | Sent to Paychex Flex as |
| - | - |
| Normal hours | Hours on the regular pay component |
| Overtime 1 | Hours on the overtime pay component |
| Overtime 2 | Hours on the pay component you map |
| Paid time off | Hours on the pay component for its type |

Salaried workers' hours are not sent. The rate on each check component comes from the worker's pay rate in Paychex Flex. The Pike pay period shows **Sent to Paychex Flex** with the check date. Pike does not run payroll or calculate tax.

## Matching and duplicates

On the first import, Pike matches before it creates:

* A worker matches a Pike member with the same business email. A match links the two, and Paychex Flex values replace the Pike values for the fields in the mapping.
* An organization matches a Pike team with the same name. A job title matches a Pike position with the same name.
* Pay lines always go to the worker's check for the pay period. A check that already has hours from Pike for the same pay period is listed in **Sync issues** as an overlap and is not sent twice.

A worker with no matching member appears under **Unmatched employees** on the integration page. Click **Invite** to send a Pike invite, or **Link to member** to link the worker to a member with a different email. With **Invite new employees** on, Pike sends the invite automatically with the default role the admin chose.

## Which system wins

| Entity | Paychex Flex owns | Pike owns |
| - | - | - |
| Members | Name, business email, position, team, status, pay rate type, hire date | Role, rates, capacity, work schedule, project access, allocations |
| Time off | Nothing | Every time off request and balance |
| Cost profiles | Rate rows, when compensation sync is on | Cost profiles, when compensation sync is off |
| Hours | Payroll processing, tax and the processed check | Time entries, overtime, time off and the pay lines sent from a closed period |

Edit Paychex Flex-owned fields in Paychex Flex. Pike shows them as read-only with the Paychex Flex marker.

## Sync schedule

Pike syncs Paychex Flex every 3 hours. On the Enterprise plan, changes sync in real time. Closing a pay period is an action a person takes, so its hours go to Paychex Flex straight away on every plan. See [How sync works](https://usepike.com/docs/integrations/how-sync-works.md).

## Sync settings

While Paychex Flex is connected, the **What syncs with Paychex Flex** card is below the top button row on the integration page. Toggles save immediately.

| Entity | Read | Send |
| - | - | - |
| Workers | Yes | Not available |
| Compensation | Off by default, admins and finance users only | Not available |
| Hours to payroll | Not available | Yes, off by default |

New connections start with **Read** on for workers, **Invite new employees** off, compensation off and **Send hours to payroll** off.

## How it works

```mermaid theme={"system"}
sequenceDiagram
  participant Paychex as Paychex Flex
  participant Pike
  participant HR as HR in Pike
  participant Admin as Payroll admin in Paychex Flex
  Paychex->>Pike: Workers, organizations and job titles, on the next sync or in real time
  HR->>Pike: Approve time and time off, then close the pay period
  Pike->>Paychex: Hours on each hourly worker's unprocessed check
  Paychex-->>Pike: Checks updated
  Pike-->>HR: Pay period shows Sent to Paychex Flex
  Admin->>Paychex: Review and submit the payroll
```

## Use it in Pike

### Onboard a new hire

When a new worker is added in Paychex Flex, they appear in Pike with their team and position on the next sync. Turn on **Invite new employees**, or click **Invite** under **Unmatched employees**, and the person can log time on their first day. Set their weekly capacity on the contract in Pike.

### Offboard a leaver

When a worker is terminated in Paychex Flex, the member is deactivated in Pike. Their logged time, allocations and history stay on every project, and they stop counting toward capacity from the termination date.

### Plan around approved leave

Open **Members → Allocations** to see each person's capacity for the week. Time off approved in Pike is already removed from capacity, and for hourly workers the same hours reach their Paychex Flex check when the period closes. See [Workspace capacity](https://usepike.com/docs/allocation/workspace-capacity.md).

### Pay hourly staff from approved time

Go to **Members → Payroll**, resolve any flags, and click **Close period**. Hourly workers' regular, overtime and paid time off hours go to their Paychex Flex checks, so payroll and invoices use the same approved hours. See [Pay periods and payroll](https://usepike.com/docs/members/payroll.md).

## Deletes and removed records

An integration never deletes Pike data. A worker removed from Paychex Flex is marked **Removed in Paychex Flex** on the member, stays in Pike with their history, and stops syncing. Pike does not remove hours from a check after sending. A correction after close goes to the next pay period as an adjustment line.

## Troubleshooting

| Symptom | Fix |
| - | - |
| Pike shows **Waiting for approval** after connecting | The Paychex Flex admin has not approved Pike's access to the company yet. Ask them to approve it, then click **Sync now**. |
| A worker shows under **Unmatched employees** | The business email in Paychex Flex differs from the member's email in Pike. Click **Link to member**, or correct the email in Paychex Flex. |
| The payroll page flags a time off type | The Pike time off type has no pay component. Map it under **Time off types**, then send the period again. |
| **Sync issues** lists an overlap | The worker's check already has hours from Pike for that pay period. Open the check in Paychex Flex, remove the duplicate hours, then click **Retry**. |
| **Sync issues** lists a processing pay period | Paychex Flex is processing the pay period. Pike retries on the next sync once processing finishes. |
| Overtime is not sent for a worker | The worker is exempt from overtime in Paychex Flex. Change the exemption type in Paychex Flex if the worker is entitled to overtime. |

## Limits

* Pike does not write to worker records in Paychex Flex. Pike adds hours to unprocessed checks only.
* Pike does not read time off from Paychex Flex. Members request time off in Pike.
* Salaried workers' hours are not sent, and overtime is not sent for workers exempt from overtime.
* Hours go only to an unprocessed pay period. A processed pay period cannot receive hours.
* Pike does not run payroll or calculate pay, tax or deductions. Your payroll admin or Paychex reviews and submits the payroll in Paychex Flex.
* Compensation sync is off until an admin or finance user turns it on.

## Disconnect

Go to **Workspace settings → Integrations → Paychex Flex** and click **Disconnect**. Syncing stops and every member, team, position and sent pay period stays in Pike with its history. Reconnecting the same Paychex Flex company relinks the members.

## Related

* [How sync works](https://usepike.com/docs/integrations/how-sync-works.md): The schedule, real-time sync and sync issues.
* [Pay periods and payroll](https://usepike.com/docs/members/payroll.md): Period close, pay lines and pay codes.
* [Time off](https://usepike.com/docs/members/time-off.md): Time off types and how they count toward capacity.
* [ADP Workforce Now](https://usepike.com/docs/integrations/adp-workforce-now.md): Workers, time off and hours to payroll.
* [Paylocity](https://usepike.com/docs/integrations/paylocity.md): Employees, cost centers and pay entry.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.