Paychex Flex's own free import path — Standard Payroll Import (SPI) — is a file upload, not an API. This integration formats that file for you; there's no OAuth step and nothing to "Connect." Settings → Integrations → Paychex Flex takes you straight to a settings + mapping + download page.
Before the first download, ask your Paychex rep to confirm SPI is enabled on your account — the import option won't appear in Paychex Flex otherwise.
One-time setup
| Field | What it is |
|---|---|
| Client ID | Your Paychex Flex Client ID |
| Regular / Overtime Pay Component codes | Required — see below |
| Double overtime / Holiday Pay Component codes | Optional |
Pay Component codes are not a universal list — every Paychex client configures their own on Paychex's side. Timely can't guess yours; ask your Paychex rep or check your existing SPI setup for the exact codes and enter them here. Get one wrong and hours route to the wrong pay component on Paychex's end, so double-check against a real Paychex account before your first real payroll run.
Leaving Double overtime or Holiday blank is safe — those hours fold into overtime and regular respectively rather than being dropped, so the file stays valid (and the dollar total correct) even before those codes are set up.
Mapping employees
Paychex has no roster Timely can read, so there's nothing to auto-match — each employee needs their Paychex Worker Id (Paychex's own "file number") entered manually. Employees with no ID entered are skipped from the export rather than guessed at.
Two ways to fill these in:
- One at a time — type a Worker Id into any employee's row, then click Save all once you're done. A single Save all applies every row you've touched in one action, so editing five people doesn't mean five separate saves.
- Bulk paste — click "Got a list? Paste Paychex IDs here" and paste one employee per line (
Jane Smith, W001, tab- or space-separated also works). Each line is matched against your existing employees by name and dropped into the table for review — nothing is saved until you click Save all. Any line that doesn't match an employee is called out so you can fix it, rather than silently skipped. This is the fastest path if you're setting up more than a handful of employees at once, or already have a name/ID list exported from Paychex.
The list defaults to showing only Unmapped employees, so it shrinks as you go — switch to All to review or edit anyone already mapped.
Downloading the CSV
Pick Last week or This week, click Download CSV, then upload the file in Paychex Flex under Standard Payroll Import. The file has one row per employee per pay component:
| Column | Notes |
|---|---|
| Client ID | From your settings |
| Worker ID | The Paychex Worker Id you mapped |
| Org, Job Number, Rate, Rate Number, Units, Amount, Check Seq Number, Override State/Local/Jurisdiction, Labor Assignment | Left blank — no confirmed Timely-side mapping for these yet |
| Pay Component | Your configured code for the bucket this row represents |
| Hours | Two decimal places |
| Line Date | The pay period's start date |
Overtime and holidays
The regular/overtime split uses the same FLSA weekly-hours math as every other payroll export in Timely, respecting your location's break policy. Holiday hours (from org holidays with a configured pay multiplier) fold into the regular Pay Component unless you've configured a Holiday code, as above.
What this isn't
This isn't a live connection — there's no sync history, no auto-refresh, and changing an employee's schedule after you've downloaded a file doesn't update anything on Paychex's side. Download after the week is final, the same way you would for the Gusto CSV path.