1. Export the file from Gusto
- In Gusto open Reports and choose the Payroll journal report.
- Pick the payrolls or dates you want, keep the layout with one row per employee, and download it as CSV.
- Upload that file here as downloaded, without opening and re-saving it in a spreadsheet. It never leaves your browser.
Why a raw Gusto payroll journal export fails in Xero (manual journal import)
Gusto takes net pay, taxes and deductions out of your bank on different days, and the bank feed shows only those withdrawals. Recording each withdrawal as an expense loses the split between wages, employer taxes and what you withheld for employees. A payroll journal entry puts each part on its own line, with the taxes and deductions as liabilities until they are paid.
The usual fix is one journal per payroll: gross wages and employer taxes on the expense side, employee taxes withheld, employer taxes owed and employee deductions as liabilities, and the net pay on a payout clearing account, because Xero does not let manual journals post to a bank account. In Xero that is a manual journal; the import brings it in as a draft, and you post it after checking. When Gusto's net pay withdrawal shows in your bank feed, reconcile it against the payout clearing account (Spend Money coded to it), and match each tax payment against the payroll taxes payable account.
What is unusual about the Gusto payroll journal file
- A few lines with the report title and your company name and address come first, then an "Employee Earnings" block per pay schedule: a payroll period line, a Pay day line, the column header, one row per employee and a "Payroll Totals" row.
- Each payroll becomes one journal entry dated on its pay day: gross wages and employer taxes as expenses, employee taxes withheld and employer taxes owed as liabilities, and the Check Amount total (net pay) out of the bank.
- The employee rows are added up and compared with the Payroll Totals row, and the lines are compared with the Check Amount total. A mismatch against those totals gives a WARNING with the difference, and the gap goes to the clearing account. Deductions and benefits are worked out, not read, so check them the first time.
- Deduction and benefit columns are not read by name (their names in the CSV are not documented): employee deductions are worked out as Gross Earnings minus Employee Taxes minus Net Pay, employer contributions as Employer Cost minus Gross Earnings minus Employer Taxes, and a note says so.
- Tax and benefit payments are not in this report, so they stay as liabilities until you record each payment from your bank.
- The Payroll journal layout with one line per job and pay type (Job, Pay Type columns, no Gross Earnings) is refused by name. Bank files (.qbo, .qfx, .ofx, bank CSVs) are not offered: a payroll report is not a bank statement.
What Xero (manual journal import) requires
- Columns as in Xero's manual journal template: Narration, Date, Description, AccountCode, TaxRate, Amount and two pairs of tracking columns.
- Narration and Date on the first row of each journal; the rows below with both left blank belong to the same journal.
- Dates as dd mmm yyyy (05 Mar 2026) or dd/mm/yyyy.
- Account codes, not names (for example 200). Debits positive, credits negative; each journal adds up to zero.
- No bank or credit card accounts: the payout is booked to a payout clearing account (a current asset), and the bank feed deposit is reconciled against it.
- Up to 300 lines per file (we split bigger files without breaking a journal). Journals are in your base currency.
2. Before and after
Before: the Gusto Payroll Journal Report CSV as downloaded
"Payroll Journal Report" "Sample Bakery LLC" "100 Example Ave" "Durham","NC","27701" "Employee Earnings" "Weekly Payroll payroll period"," 03/02/2026 - 03/08/2026" "Pay day"," 03/13/2026"
After: what Xero (manual journal import) receives
| *Narration | *Date | Description | *AccountCode | *TaxRate | *Amount | TrackingName1 | TrackingOption1 | TrackingName2 | TrackingOption2 |
|---|---|---|---|---|---|---|---|---|---|
| Gusto payroll 2026-03-13 Biweekly Payroll (BR-20260313-1) | 13 Mar 2026 | Gross wages (Gross Earnings) - Gusto payroll 2026-03-13 Biweekly Payroll | 2000.00 | ||||||
| Employer payroll taxes (expense) - Gusto payroll 2026-03-13 Biweekly Payroll | 173.00 | ||||||||
| Employee taxes withheld (owed to tax agencies) - Gusto payroll 2026-03-13 Biweekly Payroll | -463.00 | ||||||||
| Employer payroll taxes owed - Gusto payroll 2026-03-13 Biweekly Payroll | -173.00 | ||||||||
| Net pay paid to employees (Check Amount) - Gusto payroll 2026-03-13 Biweekly Payroll | -1537.00 | ||||||||
| Gusto payroll 2026-03-13 Weekly Payroll (BR-20260313-2) | 13 Mar 2026 | Gross wages (Gross Earnings) - Gusto payroll 2026-03-13 Weekly Payroll | 1300.00 |
Synthetic sample data that follows the real export layout, not a real account. The "after" output was produced from it by the same converter this page runs.
3. Import the converted file into Xero (manual journal import)
- Make sure every account code in the file exists in your Xero chart of accounts (enter your codes in the options before downloading). The payout clearing code must be a current asset account, not a bank or credit card account: Xero does not accept those in a manual journal.
- In Xero, in the Accounting menu, select Manual journals.
- Click Import, then Browse, and select this CSV.
- Click Import, review the message, then click Complete Import. The journals arrive as drafts.
- Open the Draft tab and check each journal: add a tax rate to each line if the file has none, and tick "Show journal on cash basis reports" if you report on a cash basis (the template has no column for it). Then select the journals and click Post.
- When the deposit (or the net pay withdrawal) appears in your bank feed, reconcile it against the payout clearing account (Receive Money or Spend Money coded to that account), not against sales.
Questions
- Which Xero accounts does the payroll journal use?
- Gross wages go to the wages expense code, employer taxes to the employer payroll tax expense code, employee taxes withheld and employer taxes owed to the payroll taxes payable code, deductions and employer contributions owed to the deductions payable code, and net pay to the payout clearing code (a current asset account, not your bank account, which Xero refuses in a manual journal). Reconcile Gusto's net pay withdrawal in your bank feed against that clearing account. Xero needs the codes from your chart of accounts, so enter them in the options; lines without a code get a warning. Not confirmed: if your organisation also runs Xero Payroll, Xero may refuse its wage accounts in a manual journal; use expense accounts that Xero Payroll does not manage. This is not accounting or tax advice.
- Does the journal entry match my Gusto payroll?
- The entry is checked against the report's Payroll Totals and Check Amount: the employee rows are compared with the Payroll Totals row, and the lines with the Check Amount total, which is always the payout clearing line. If those differ, a warning names the difference and the gap goes to the clearing account. Deductions and benefits are worked out, not read, so check them the first time.
- How does the payout reach my bank account in Xero?
- Xero does not accept bank or credit card accounts in a manual journal, and a journal line cannot be reconciled against a bank feed line anyway. So each journal books the payout to a payout clearing account, a current asset account you create (for example Payouts in transit), not a bank account. When the deposit appears in your bank feed, reconcile it against that clearing account (Receive Money coded to it). Do not code the deposit to sales: the journal has already booked the sales, so that would count them twice.
- Where do the payroll taxes go?
- Employer taxes are an expense and a liability; employee taxes withheld are a liability. Both stay in the payroll taxes payable account until Gusto pays them from your bank. When that withdrawal shows in your bank feed, match it against the payroll taxes payable account, not an expense.
- What is not confirmed yet?
- Xero's template download needs a Xero login, so we have not compared the exact header text (including the asterisks Xero puts on required columns) with a freshly downloaded template; the column names follow Xero's help page. We have also not confirmed Xero's default account codes, which tax rate names exist in each country, or whether imported journals arrive with "Show journal on cash basis reports" ticked. We have not imported the result into a real Xero organisation. Check the first journal before importing many.
Other ways to convert Gusto payroll journal
Other exports to Xero manual journal
- Stripe payouts to a Xero manual journal
- Etsy payouts to a Xero manual journal
- Airbnb payouts to a Xero manual journal
- Gumroad payouts to a Xero manual journal
- Square payouts to a Xero manual journal
- Shopify Payments payouts to a Xero manual journal
- Amazon settlement report to a Xero manual journal
- eBay transaction report to a Xero manual journal
- Walmart recon report to a Xero manual journal