Skip to main content

Payroll Integrations

Connecting ADP, Paycom, or Uzio so timecards, approved time off, and incentive payouts line up with the drivers on your roster.

Payroll already knows every person you employ, what they're paid, and when they clocked in. Connecting it to VoiceERP means we stop asking you to retype any of that: punches flow in on their own, approved time off shows up before you build a schedule, and incentive bonuses come out as a file your payroll system will accept.

Which payroll systems connect

Pick your provider under Settings → Payroll Integration. The choices are ADP, Paycom, Uzio, and Other. The first three have real connections behind them. "Other" is a placeholder for payroll systems we don't sync with yet — payroll IDs and hourly rates still work, but nothing is pulled in automatically.

What connecting payroll actually gives you

Timecards pull in on their own. Once the live connection is running, we read your drivers' punches from payroll every few minutes and store them against each day. That's what the Timesheets page compares against route activity to spot problems like a missing lunch or a clock-out that came long after the route ended.

Approved time off arrives before it hurts you. Each morning we pull upcoming approved PTO from your provider and attach it to the right person, so it appears in scheduling under "Upcoming time off" and the schedule gets built around it. Removing a payroll-sourced day here is only temporary — the next sync brings it back, because payroll is the source of truth.

Everyone is matched by payroll ID. Every sync reconciles the people in payroll against your active roster, so hours and time off land on the right driver instead of a name that almost matches.

Incentive payouts come out as a file. With the Payroll Integration switch on, the Payouts page gains a Prepare Payroll File button that converts earned Guaranteed Hours incentives into dollar bonuses and downloads them as a CSV you can import.

Setting up the connection

Setup has two halves, and only one of them is yours.

The half you control is Settings → Payroll Integration. Flip the switch on, choose your Payroll Provider, and press Save Payroll Integration Settings. This is what turns on payroll IDs and hourly rates on driver records and the payroll file on the Payouts page.

The other half is the live API connection, and it is handled by our support team. ADP needs a client ID, a client secret, and a security certificate; Paycom needs an API SID and token; Uzio needs an API key. There's deliberately nowhere in the app to type these — they're installed on our side, stored encrypted, and turned on for your account along with the timecard checking that depends on them. Ask support to set it up, and have your payroll administrator ready to issue the credentials.

Once live sync is on, the pay cycle itself is yours to configure on the Timesheets settings page: weekly or biweekly, the cycle start date, how many days after the cycle ends payroll is processed, and the submission cutoff time.

Payroll IDs

A payroll ID is the employee number your payroll system uses, stored on the driver so the two systems can find each other. You'll see a Payroll ID field (next to Hourly Rate) on the driver form under Settings → Drivers, but only once Payroll Integration is switched on. For ADP the ID must be digits only; other providers accept anything.

For a whole roster at once, use Upload Drivers from CSV File on the same page and choose the Payroll CSV type — that file carries first name, last name, payroll ID, and hourly rate, and walks you through matching each row to a driver already in the system.

When we match, the payroll ID is checked against the employee number in your provider (the payroll file number in ADP, the employee code in Paycom). If two people in payroll share one number and the match becomes ambiguous, support can pin a specific driver to a specific payroll record so it stops guessing.

Missing Payroll ID tasks

Every payroll sync also checks your active roster for anyone without a payroll ID and opens a Missing Payroll ID admin task for each one. The task's Match Payroll ID button opens a page listing those drivers beside the unmatched people from your payroll provider, under the headings "Driver In Our System" and "Payroll Provider Person." Pair them up and press Submit Matches — that writes the payroll ID onto the driver and closes the task. Tasks also close themselves once the driver has an ID or is no longer active.

Leaving them open is what costs you. A driver without a payroll ID has no hours to check on Timesheets, and their incentive payout can't be calculated — the Payouts page will warn you by name that "have earned guaranteed hours payouts but do not have payroll information."

Uploading timecard files by hand

If you're using the payroll file without the live connection, the weekly files list on the Scorecards page has an ADP Timecard or Paycom Timecard upload slot for each week, matching the provider you selected. The week's scorecard has to be processed first. After uploading, you'll confirm which driver each row belongs to, and those hours then feed the payroll file.

Related topics: Timesheets covers reviewing and resolving timecard discrepancies, Payouts covers incentive payouts themselves, and Admin Tasks covers the wider task queue.

Did this answer your question?