Import a Square transactions CSV into Xero

In short: Square's transactions CSV has one row per payment or refund with dozens of columns: gross sales, tax, tips, total collected, fees and net total, the tender used, and the deposit that paid it out. Xero's statement import uses its own CSV template: a Date and a signed Amount on every line, plus Payee, Description, Reference and a cheque number column. Money out is negative. Drop the file below. It is converted on your device and never uploaded.

Convert your file

Square to Xero (CSV)

transactions-<start date>-<end date>.csv

Your file stays on this device

It is read and converted by this page, inside your browser. Nothing from the file is uploaded, and the converter keeps working offline once the page has loaded.

One email when it ships. The address is used for nothing else. Details.

1. Export the file from Square

  1. Sign in to the Square Dashboard on a computer.
  2. Open Transactions and choose the date range.
  3. Click Export and choose Transactions CSV.
  4. Upload the downloaded file here.

Why a raw Square export fails in Xero

Xero would import every row, including cash sales that never passed through Square, and needs one signed amount where the export has gross, fee and net columns.

Xero imports the CSV line by line, so title rows above the table, balance rows, currency symbols in the amount, or separate gross, fee and net columns end up rejected or imported as the wrong amount.

What is unusual about the Square file

  • One row per payment or refund, newest first, with Gross Sales, Tax, Tip, Total Collected, Fees and Net Total columns.
  • Amounts look like "$1,234.56" and "-$184.28"; fees are negative and Net Total is Total Collected plus Fees.
  • Sales paid in cash, by Square gift card or another non-card tender never reach a Square deposit, so they are left out; mixed payments keep only their card part. Gift card payments are not new income: the money came in when the card was sold.
  • Tips and gift card sales are not sales revenue: journal entries book them to their own accounts (Tips owed to staff, Gift card liability).
  • A non-zero Partial Refunds cell gets a warning, because it is not confirmed whether Square also lists that refund as its own row.
  • Deposit ID and Deposit Date say which deposit paid each row; rows not yet deposited have none.
  • Dates and times are in the Square account time zone and are used as written.
  • The file does not name its currency; amounts are treated as US dollars unless they show pounds or euros.

What Xero requires

  • Header matches Xero's template: *Date, *Amount, Payee, Description, Reference, Check Number.
  • One signed amount column: money out negative, decimal point, no symbols.
  • Up to 100,000 rows per file.

2. Before and after

Before: the Square transactions CSV as downloaded

Date,Time,Time Zone,Gross Sales,Discounts,Service Charges,Net Sales,Gift Card Sales,Tax,Tip,Partial Refunds,Total Collected,Source,Card,Card Entry ...
2024-08-24,15:20:01,Pacific Time (US & Canada),$19.05,$0.00,$0.00,$19.05,$0.00,$0.95,$0.00,$0.00,$20.00,Point of Sale,$20.00,Tapped,$0.00,$0.00,$0....
2024-08-24,12:00:00,Pacific Time (US & Canada),$15.00,$0.00,$0.00,$15.00,$0.00,$0.00,$0.00,$0.00,$15.00,Point of Sale,$0.00,N/A,$15.00,$0.00,$0.00,...
2024-08-23,18:30:00,Pacific Time (US & Canada),$50.00,$0.00,$0.00,$50.00,$0.00,$0.00,$0.00,$0.00,$50.00,Point of Sale,$30.00,Keyed,$20.00,$0.00,$0....
2024-08-23,10:00:00,Pacific Time (US & Canada),-$35.00,$0.00,$0.00,-$35.00,$0.00,$0.00,$0.00,$0.00,-$35.00,Point of Sale,-$35.00,Tapped,$0.00,$0.00...
2024-08-22,09:15:00,Pacific Time (US & Canada),"$1,234.56",$0.00,$0.00,"$1,234.56",$0.00,$0.00,$0.00,$0.00,"$1,234.56",Point of Sale,"$1,234.56",Ke...
2024-08-21,08:00:00,Pacific Time (US & Canada),$0.00,$0.00,$0.00,$0.00,$0.00,$0.00,$0.00,$0.00,$0.00,Point of Sale,$0.00,,$0.00,$0.00,$0.00,,,$0.00...

After: what Xero receives

After: square-2024-08-22-to-2024-08-24-xero.csv
*Date*AmountPayeeDescriptionReferenceCheck Number
08/22/20241234.56'=HYPERLINK("http://example.invalid")'=HYPERLINK("http://example.invalid") - Table, oakPAYSQ0005
08/22/2024-32.72FeeFee: =HYPERLINK("http://example.invalid") - Table, oakPAYSQ0005 fee
08/23/2024-35.00ScarfPAYSQ0004
08/23/202430.00LampPAYSQ0003
08/23/2024-0.80FeeFee: LampPAYSQ0003 fee
08/24/202420.00Ana PlaceholderAna Placeholder - BroochPAYSQ0001

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

  1. In Xero open Accounting > Bank accounts and choose the account.
  2. Click Manage account > Import a statement.
  3. Choose this CSV and click Import.
  4. Check the column mapping (Date, Amount, Payee, Description, Reference) and confirm the date format if asked.

Questions

What happens to cash sales in the Square export?
Cash, Square gift card and other non-card payments never pass through your Square balance or a Square deposit, so the converter leaves them out and gives the total for each kind. When a sale was paid partly by card, only the card part is kept. Record cash with your cash takings. A gift card payment is not new money: it came in when the card was sold, so move it from your gift card liability account to sales instead of recording it again.
Which date format does Xero need?
Xero lists both month-first and day-first dates as accepted and asks you to confirm the format when it is unclear. Choose United States for MM/DD/YYYY or Elsewhere for DD/MM/YYYY, and confirm the same format in Xero if it asks.
Is the sales tax in the Square export my income?
Sales tax you collect through Square is part of the totals in the export. The converter keeps it inside the sale amount and tells you how much it is, so you can move it to a sales tax account. How to treat it is a question for whoever prepares your return.
Can I import more than one month at once?
Yes. Xero imports the whole statement file you give it. Keep each file to one bank account in Xero, and avoid overlapping a period you already imported so you do not have to delete duplicate statement lines.

Other ways to convert Square

Other exports to Xero (CSV)