Importing Payroll

Get payroll onto the books accurately, without re-keying every line from your payroll provider.

Updated May 4, 2026

If you use an outside payroll provider like Gusto, Paychex, or ADP, you can import their payroll reports as journal entries in NP Ledger. The import wizard validates your file, matches account names to your chart of accounts, and creates balanced journal entries — one per pay date.

Payroll is often the largest expense a nonprofit has. Recording it accurately ensures your financial statements, budget reports, and Form 990 reflect the true cost of staff. Importing from your payroll provider's export file is faster and more reliable than typing entries by hand.

  • Export a CSV file from your payroll provider (see your provider's help docs for how to export a General Ledger or GL report)
  • Your chart of accounts should already include the expense and liability accounts used in payroll (e.g., Salaries Expense, Payroll Tax Expense, Health Insurance Expense)
  • You need the Member role or higher to import payroll

Setting up pay items (one-time, Admin only)

Pay items define how payroll expense categories map to your ledger accounts. You only need to set these up once.

  1. Go to Settings > Payroll Setup.
  2. Add a pay item for each payroll category your provider reports — for example, "Salaries & Wages," "Employer Payroll Tax," or "Health Insurance."
  3. Choose the pay type for each item:
  4. Salary & Wages — regular compensation
  5. Bonus — one-time payments
  6. Employee Benefits — health, dental, retirement contributions
  7. Employer Tax — FICA, FUTA, state unemployment
  8. Deduction — amounts withheld (these need a liability account, not an expense account)
  9. Select the matching expense account (or liability account for deductions).
  10. Check "Employer cost" if the item is an employer-side cost (like the employer share of FICA).
  11. Click Save.

Tip: You can also record payroll from Quick Entry using the Record Payroll action, which uses these same pay items to build a balanced journal entry from individual amounts.

Uploading your payroll file

  1. Go to Import Payroll from the sidebar or dashboard.
  2. Select your payroll provider from the dropdown. Choose Generic CSV if your provider isn't listed — the system auto-detects Gusto exports regardless of this setting.
  3. Upload your CSV file. Drag and drop or click to browse. Files must be CSV format, under 5 MB.
  4. Optionally set a payroll date. If your CSV doesn't include a date column, enter the pay date here. Dates in the CSV take priority over this field.
  5. Click "Upload & Validate."

Tip: Click Download sample CSV on the upload page to get a template pre-filled with your organization's actual account names. The expected format is three columns: Account, Debit, Credit. Include only your expense and liability rows — NP Ledger records the cash credit using the bank account you select on the preview screen.

Reviewing the preview

After uploading, you'll see a preview page with your parsed payroll data.

  1. Select a bank account from the Bank Account dropdown. This is the cash account that will be credited (the account you pay from) — NP Ledger will add the cash credit line to your journal entry automatically. If your CSV already includes a cash credit row, this selector still records to the same account; the entry simply balances itself. If you've imported before, your last selection is remembered.
  2. Select a fund — usually your General Fund for unrestricted payroll.
  3. Review each journal entry group. Entries are grouped by date. Each group shows:
  4. A Balanced (green) or Imbalanced (red) badge — only balanced groups can be imported
  5. Each row's account name with a status indicator:
    • Green checkmark — account matched exactly
    • Yellow warning — fuzzy match found (review the suggestion)
    • Red X — no match found (you'll need to fix this before importing)
  6. Fix any yellow or red rows. Click on a row to edit the account name, amount, or description inline. The system re-validates as you make changes.
  7. Click "Import" when all groups you want to import show green status and are balanced.

Confirming the import

After the import completes, you'll see a summary showing:

  • How many journal entries were imported
  • How many were skipped (unresolved rows) or failed
  • A link to view each imported transaction
  • A link to the import batch details

From here you can Import Another File or View Transactions to see your payroll entries in the transaction list.

If you upload a Gusto GL export, the system automatically detects it and aggregates the per-employee rows into account-level totals. You'll see a blue banner on the preview page confirming this. No extra steps are needed — just upload and review.

  • Each imported journal entry appears in the transaction list with type "Payroll"
  • Total debits equal total credits in each entry
  • Your payroll expense accounts show the correct balances in the trial balance
  • The bank account balance reflects the net payroll payment
  • Account names don't match — The import matches CSV account names against your chart of accounts. If your payroll provider uses different names (e.g., "Payroll Expense" vs. "Salaries & Wages"), rename the account in the CSV or edit the match on the preview page.
  • Importing the same payroll twice — If you upload the same file again, the system warns you that a payroll entry for that date and amount already exists. Review before confirming to avoid duplicates.
  • Missing bank account selection — You must select a bank account before importing. This tells NP Ledger which cash account to credit.
  • Imbalanced groups — If debits don't equal credits for a date group, the entire group is blocked from import. Check for missing rows or incorrect amounts in your export.

Accountant note: Each payroll import creates a standard compound journal entry: debits to expense accounts (salaries, taxes, benefits) and credits to the bank account for net cash plus credits to liability accounts for withholdings. The entry is posted immediately. For employers with deduction-type pay items, the corresponding liability account tracks amounts owed to third parties (tax agencies, benefits providers) until payment.

Ready to try NP Ledger?

Native fund accounting, Form 990 support, and smarter bookkeeping for nonprofits.