Skip to content
Help

Search help

Search the help pages by title or section

Payroll

Payroll files

Send a closed pay period to Gusto, ADP, QuickBooks Online, Paychex, Paycor, Paycom, Paylocity or any payroll provider as a file, with your own earning codes and employee ids.

NeatPractice works out what each provider earned; your payroll provider pays them. A payroll file carries a closed period's pay to the payroll provider: providers, the period, earning codes, hours, units and amounts. It never includes patients or visit details.

People whose role can export payroll files see the Files tab on a pay period and the Payroll files panel in Payroll settings.

Create a file#

  1. Close the pay period (see Payroll). Files come only from closed periods, so the numbers in the file never change after you send them.
  2. Open the period and click the Files tab.
  3. Choose Generic CSV or one of your export profiles, then click Create File. The file downloads at once. If your export profiles fail to load, click Retry, or choose Generic CSV yourself to continue without them.

Every file is kept with the date, who created it and a fingerprint of its contents. Choose Download on any row to get the exact same file again, for example to re-send it. If the stored copy no longer matches its fingerprint, NeatPractice refuses it; create the file again instead.

Creating a file records an export in the access log for the patients whose visits it pays, even though the file names no patients.

File layouts#

LayoutWhat it writes
Generic CSVOne row per provider and earning: employee id, provider name, period start and end, earning code, hours, units, amount, then the pay date, worker type (employee or contractor), the contractor's company and the provider's time off balances. Gusto's Smart Import and most payroll tools can read it.
GustoOne row per provider with a column per earning, laid out like the hours and earnings file you download from Gusto. A cell is left blank where a provider has no pay of that kind, so Gusto keeps what it already has.
ADP Workforce NowA paydata batch file named EPI plus your company code and a two-digit sequence. Every line starts with the company code, a batch id from the period's last day and the employee's file number, followed by regular hours or an hours or earnings code with its amount. ADP's paydata import must be turned on for your company.
QuickBooks OnlineTime activities for an import tool: date, employee name exactly as in QuickBooks, hours and service item. Pay without hours, such as bonuses and mileage, cannot be a time activity; NeatPractice tells you how many items to enter in QuickBooks by hand.
Paychex Flex (template)One line per employee and pay component: your client ID, the worker ID, the pay component, hours or an amount, and the pay date as the line date.
Paycor (template)One line per employee and earning code: employee number, last and first name, earning code, hours or an amount, and the pay date as the check date.
Paycom (template)One line per employee and earn code: employee code, earn code, hours or an amount, the period's first and last day and the pay date.
Paylocity (template)One line per employee and earning: your company ID, the employee ID, E for an earning, the earning code, hours or an amount, and the pay date as the check date.

Files always include hours worked for every provider, also those paid per visit or per unit, so your payroll provider can apply overtime rules to non-exempt staff. Paid time off is reported under its own earning, not as hours worked. When NeatPractice calculates overtime (see Overtime), the overtime premium and the double-time premium are two earnings you map to your provider's codes; their hours are not counted again as hours worked. In the ADP file, mapping the overtime premium as hours with no code fills the O/T Hours column.

Template layouts#

The Paychex, Paycor, Paycom and Paylocity layouts follow each vendor's published earnings import, but each payroll account can name or order its import columns differently. Those profiles carry a Template badge. Before the first upload, compare the file with the import template your vendor gives you, and ask the vendor to map the columns if they differ.

Contractors in files#

Contractors are paid through their company, not through payroll, so the Gusto, ADP, Paychex, Paycor, Paycom and Paylocity files leave them out and NeatPractice tells you how many it left out. The generic CSV and QuickBooks files keep them; the generic CSV names their company. See Workers.

Export profiles#

An export profile tells NeatPractice how to write one payroll provider's file. In Payroll settings, open Payroll files and click New Profile:

  • Name and File layout.
  • ADP company code, for ADP: two or three letters or digits. Paychex client ID and Paylocity company ID go on every line of those files: up to 10 letters, digits or dashes.
  • Hours worked column (Gusto) or Hours worked code (the other layouts) receives each provider's total hours. Leave it empty to leave hours out.
  • For each earning, the payroll provider's code, column or service item. An empty code uses NeatPractice's name for the earning. For Gusto, ADP and the template layouts, choose whether it is sent as an amount (NeatPractice's calculated pay) or as hours (the payroll provider pays the hours at its own rate). Mileage is always an amount.
  • Each provider's employee id (ADP calls it the file number), or for QuickBooks the employee's name there.
  • Check employee ids when closing a period: when on, a period cannot close while a provider paid in it has no employee id in this profile, so the file is ready the moment the period closes.

A profile saves only the settings its file layout shows. Switching to QuickBooks drops the employee ids, the hours settings and the check at close; switching to a generic CSV drops the hours settings.

ADP needs a code for every earning sent as an amount and an employee id for every paid provider; Paychex, Paycor, Paycom and Paylocity need a code for every earning in the file and the employee ids; Gusto needs the employee ids. NeatPractice names anything missing when you create the file.

Changing a profile never changes files already created. Deleting a profile keeps its files.