Payroll Providers

Prev Next

Payroll Providers are the payroll services you export to — ADP, Paychex, Paylocity, or include GO's own internal handling. Setting up a provider lets you hand off a processed payroll run to the system that actually cuts the checks and files the taxes.


Where to find Payroll Providers

From the left sidebar choose HR & Payroll, then Payroll Providers.

The Payroll Providers page

What you see on this screen

ColumnWhat it shows
NameThe provider — ADP, GO (internal), Paychex, Paylocity.
Provider CodeThe system code for that provider (adp, go_internal, paychex, paylocity).
StatusWhether the provider is active.
DefaultThe provider new runs use automatically, if you choose to set one.
ConnectionThe state of the Paychex API connection — Not configured, Not verified, Connected, or Connection failed — plus a Push on badge when pushing to live payroll has been enabled. Every other provider shows a dash.
AccountThe Chart of Accounts account this provider's activity is tied to. Leave it as — No account (GO Native) — if you aren't tying the provider to an account.
DescriptionYour own note about the provider.

How a run uses its provider

You pick a provider (or none) on each payroll run when you create it:

  • With a provider — Provider mode: GO generates the provider's export file, you send it out, then import the journal the provider returns and reconcile it before posting.
  • With no provider — GO Native mode: GO does the withholding math itself and you finalize the run in-app, with no file exchange.

Out of the box no provider is marked default, so a new run starts as "(no provider)" — GO Native — until you choose otherwise. If you always export to one service, mark it as the default here so new runs pre-select it.

Provider support today: Paychex has the fullest round-trip, and it is no longer file-only. Alongside the Paychex-format CSV export and import of the returned journal (including automatic reading of PDF journals), you can connect GO directly to Paychex over their API — GO reads payroll results back automatically, and, once you deliberately turn it on, can push hours and pay into your live Paychex payroll. See Connecting to Paychex below. Other providers can be selected and exported to as their formats come online; check with support if you're onboarding a provider not listed here.

The Paychex connection dialog


Adding and editing

The provider grid right-click menu

Right-click anywhere on the grid and choose Add New Payroll Provider. A blank row appears pinned at the top of the list and you type straight into it — Name and Provider Code are both required, and GO will stop you and highlight the field if either is left empty. Set the Status, optionally pick an Account and add a Description, then save the row.

Editing works the same way: click a cell on an existing row and change it in place. Each cell saves as soon as you leave it, so there is no separate Save button.

Right-click an existing row for its other actions:

  • Set as Default — makes this the provider new runs pre-select. (Only offered on a row that isn't already the default.)
  • Delete — removes the provider.
  • Connect to Paychex / Manage Paychex Connection — opens the connection dialog described below. This action appears only on the Paychex row, and its label depends on whether credentials are already stored.

All of these require the manage permission — with view-only access the right-click menu is empty and cells are not editable.


Connecting to Paychex

Beyond exchanging files, GO can talk to Paychex directly over their API. Once connected, GO reads your payroll results back automatically instead of waiting on a file, and — as a separate, deliberate step — can push hours and pay into your live Paychex payroll.

Right-click the Paychex row and choose Connect to Paychex (or Manage Paychex Connection if you've set it up before).

Each business unit connects separately. The credentials you enter here belong to this business unit and its own Paychex app — connecting one business unit does not connect the others.

Step 1 — Enter your credentials

The dialog asks for three values. The labels match what you see in Paychex Flex, so copy them across exactly:

FieldWhat to enter
API KeyFrom Paychex Flex → Company Settings → Integrated Apps → your app → API Key.
API SecretShown once, when the app is created in Paychex. GO stores it encrypted and never displays it again. Keep your own copy somewhere safe.
Client IDYour 8-digit Paychex company number — not the API Key. This is what tells GO which company to read and write.

Click Save credentials. The dialog stays open, because testing is the natural next step.

Replacing a key or secret later. Once something is stored, both fields render blank with a row of dots as a hint. Leaving a field blank keeps the stored value; typing into it replaces it. GO never sends the stored secret back to your browser, so there is nothing to partially edit — paste the whole new value or leave it alone.

Step 2 — Test the connection

Click Test connection. This is only available once credentials are saved.

On success GO shows you the company name Paychex answered with — read it. That is the whole point of the test: credentials can be perfectly valid and still be pointed at the wrong company, and this is the moment you'd catch it, rather than after payroll data has moved. A failed test reports what Paychex said and the row's status becomes Connection failed.

The status badge at the top of the dialog tracks where you are, along with the date and time of the last successful verification:

StatusWhat it means
Not configuredNo credentials stored yet.
Not verifiedCredentials are stored but the test hasn't been run — or hasn't been run since they changed.
ConnectedThe test ran and Paychex accepted the credentials.
Connection failedThe test ran and was rejected. Recheck the API Key, API Secret, and company number.

Step 3 — Enabling push to live payroll

Reading is automatic; writing is not. Once connected, GO can always read your payroll results back. Pushing hours and pay into your live Paychex payroll is a separate switch that starts off, and stays off until you deliberately turn it on.

In the Push to live payroll panel at the bottom of the dialog:

  • If the connection hasn't been verified yet, GO tells you to verify the connection before enabling push and offers nothing else. Run the test first.
  • Once verified, you're asked to type the provider's name exactly to confirm. The Enable push to live payroll button stays disabled until what you typed matches.
  • With push on, the panel shows Enabled with a warning icon, the grid row picks up a Push on badge, and a Disable push button turns it back off at any time — no typing required to switch it off.

Why the extra step? Everything else in this dialog is reversible bookkeeping. Push writes into the payroll that actually pays people, so GO makes you name the thing you're arming rather than letting a stray click do it. Saving or re-testing credentials never turns push on by itself.


Permissions

Viewing requires HR view access; adding or editing providers — including connecting to Paychex and enabling push — requires the manage permission. Without it the right-click menu is empty and the grid cells are read-only.


Common questions

Do I have to use a provider at all? No — leave a run's provider empty and GO Native handles the withholding math and finalization in-app.

Why does my new run say "(no provider)"? No default provider is set. Either pick one on the run, or mark your provider as the default on this page.

Each person needs a provider Worker ID — where does that live? On the employee record's External ID — the provider export checks it before writing the file. See Employees.

I saved my Paychex credentials but the row still says "Not verified". Saving only stores them; it doesn't check them. Open the connection dialog and click Test connection.

The test says Connected, but names a company I don't recognize. The credentials are valid but point at the wrong Paychex company. Correct the Client ID (your 8-digit company number) and test again — and don't enable push until the right company name comes back.

I lost my API Secret. Paychex shows it only once, when the app is created, and GO can't show it back to you. Generate a new secret in Paychex Flex and paste it into the API Secret field — leaving the API Key blank keeps the existing key.

Does connecting to Paychex mean GO starts changing my payroll? No. A connection only lets GO read. Nothing is written into your live Paychex payroll until you separately enable push, which requires typing the provider's name to confirm.


  • Payroll — where runs are exported to a provider.
  • Payroll Types — the kinds of run you process.
  • Payroll Journals — the list of journals returned by your provider, with their reconciliation status and whether each arrived as a Paychex CSV, PDF, or over the API.