Import a Gumroad payout CSV into Xero

In short: Gumroad's payout CSV lists each sale with its price, Gumroad fees and net total, plus refunds, chargebacks and payout fees as dated rows, and ends with Subtotal and Totals rows. 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

Gumroad to Xero (CSV)

Payout CSV (emailed from the Payouts page) or Sales 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 Gumroad

  1. Best for your books: open Payouts in Gumroad and click the download button next to a paid payout; the CSV is emailed to you.
  2. For several payouts, use the download button at the top right of the Payouts page.
  3. Sales CSV: open Sales, click the Export icon, choose the date range, and download.

Why a raw Gumroad export fails in Xero

Xero would treat each Gumroad sale and the Totals row as bank statement lines, so the bank account never reconciles against the payout Gumroad actually sent.

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 Gumroad file

  • The payout CSV ends with "Subtotal" and "Totals" rows, which we skip and use as a check.
  • Refunds, chargebacks and payout fees are their own dated rows in the payout CSV.
  • The sales CSV only flags refunds on the original sale, with no refund date.
  • All dollar columns are USD; dates are UTC.
  • Text that starts with =, +, - or @ is prefixed with an apostrophe by Gumroad; it is kept, and CSV outputs add one to any text cell that starts that way.

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 Gumroad payout CSV as downloaded

Type,Date,Purchase ID,Item Name,Buyer Name,Buyer Email,Taxes ($),Shipping ($),Sale Price ($),Gumroad Fees ($),Net Total ($)
Sale,2026-03-02,uzP3TestPurchase001==,Notion Budget Template,Jesse Example,jesse@example.com,1.71,0.0,19.0,3.25,15.75
Sale,2026-03-03,uzP3TestPurchase002==,"Icon Pack, Vol. 2",,buyer2@example.com,0.0,0.0,9.0,1.6,7.4
Sale,2026-03-05,uzP3TestPurchase003==,Notion Budget Template,Morgan Example,morgan@example.com,0.0,0.0,19.0,3.25,15.75
Full Refund,2026-03-08,uzP3TestPurchase003==,Notion Budget Template,Morgan Example,morgan@example.com,0.0,0.0,-19.0,-3.25,-15.75
Payout Fee,2026-03-10,,,,,0.0,0.0,0.0,0.5,-0.5
Subtotal - activity paid out by Gumroad,,,,,,1.71,0.0,28.0,5.35,22.65
Totals,,,,,,1.71,0.0,28.0,5.35,22.65

After: what Xero receives

After: gumroad-2026-03-02-to-2026-03-10-xero.csv
*Date*AmountPayeeDescriptionReferenceCheck Number
03/02/202619.00Jesse ExampleSale - Notion Budget Template - Jesse ExampleuzP3TestPurchase001==:sale
03/02/2026-3.25FeeFee: Sale - Notion Budget Template - Jesse ExampleuzP3TestPurchase001==:sale fee
03/03/20269.00buyer2@example.comSale - Icon Pack, Vol. 2 - buyer2@example.comuzP3TestPurchase002==:sale
03/03/2026-1.60FeeFee: Sale - Icon Pack, Vol. 2 - buyer2@example.comuzP3TestPurchase002==:sale fee
03/05/202619.00Morgan ExampleSale - Notion Budget Template - Morgan ExampleuzP3TestPurchase003==:sale
03/05/2026-3.25FeeFee: Sale - Notion Budget Template - Morgan ExampleuzP3TestPurchase003==:sale fee

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

How do I record Gumroad sales in Xero or QuickBooks?
Either import the payout CSV into a separate Gumroad account (sales in, fees and payouts out), or record one journal entry per payout: gross sales to income, fees to an expense account and the payout amount to the bank.
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.
Why is my Gumroad payout smaller than my sales?
Gumroad deducts its fees, plus any refunds and chargebacks, before paying out. The converter lists each deduction and checks its total against the Totals row in the file.
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 Gumroad

Other exports to Xero (CSV)