1. Export the file from Gumroad
- Best for your books: open Payouts in Gumroad and click the download button next to a paid payout; the CSV is emailed to you.
- For several payouts, use the download button at the top right of the Payouts page.
- Sales CSV: open Sales, click the Export icon, choose the date range, and download.
Why a raw Gumroad export fails in Xero (manual journal import)
The deposit from Gumroad is a payout of net sales for a period. A journal entry per payout records gross sales, Gumroad fees and refunds and nets to the deposit.
Xero's bank statement import puts every line into one bank account, so a payout split into sales, fees and refunds needs either a clearing account in Xero or a journal. A manual journal per payout (or per month when the export does not link sales to payouts) books gross sales, fees, refunds and payments you sent to their own accounts, and the payout amount to a payout clearing account: a current asset account that is not a bank account, because Xero does not let manual journals post to bank or credit card accounts. When the deposit arrives in your bank feed, reconcile it in Xero against that payout clearing account (Receive Money coded to it), and the clearing account goes back to zero. Xero imports the journals as drafts, and you post them after checking.
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 (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 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 (manual journal import) receives
| *Narration | *Date | Description | *AccountCode | *TaxRate | *Amount | TrackingName1 | TrackingOption1 | TrackingName2 | TrackingOption2 |
|---|---|---|---|---|---|---|---|---|---|
| Gumroad payout gumroad-2026-03-10 (BR-20260310-1) | 10 Mar 2026 | Gross sales - Gumroad payout gumroad-2026-03-10 | -47.00 | ||||||
| Refunds - Gumroad payout gumroad-2026-03-10 | 19.00 | ||||||||
| Fees - Gumroad payout gumroad-2026-03-10 | 5.35 | ||||||||
| Deposit - Gumroad payout gumroad-2026-03-10 | 22.65 |
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
- 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 (in a Xero manual journal: to a payout clearing account).
- 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.
- 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.
- 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 Gumroad
- Import a Gumroad payout CSV into Xero
- Convert a Gumroad payout CSV to QuickBooks Online
- Gumroad payouts to a QuickBooks journal entry
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
- 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
- Gusto payroll journal to a Xero manual journal