1. Your Shopify report
The transactions CSV exported from a payout (Settings > Payments > Shopify Payments > Payouts), or the all-transactions export. More than one payout per file is fine.
Choose a file or paste the text, then click Read, check and build journals.
Result
Deposit check
| Payout | Payout date | Shopify states | Journals clear | Agrees |
|---|
Journals
| Journal | Date | Account | Debit | Credit | Memo |
|---|
Download
The accounts must already exist in your software under these names or codes. Post the journals, then match each bank deposit to Shopify clearing.
The model, and what it leaves out
- Rows: each row is one balance transaction with a gross amount, a fee and a net (gross minus fee), a reporting category and an automatic payout ID. Rows are grouped by payout. Amounts are read to cents; European
1.234,56and US1,234.56both work. - Payout check: the signed nets of a payout's rows must add up exactly to the payout. An export that carries a
payoutrow states it; most Shopify exports do not, so type the deposit from your bank into the optional box. If they do not agree, the page says by how much, and you should not post the journal. Rows where gross minus fee is not net are flagged too. - Categories: orders (type charge) to gross sales, refunds to refunds, chargebacks and dispute reversals to chargebacks, shipping-label purchases and refunds to their own shipping account, every Fee column and fee-type row (app and referral fees, FX) to Shopify fees, adjustments, credits and reserves to adjustments. A category no rule recognises goes to an uncategorised account and is listed.
- Month split: rows are grouped by the date they were created. A journal is dated the month end, or the payout date for the last month. Each journal balances to Shopify clearing, so the clearing account holds exactly the part of the payout that belongs to that month.
- Not checked: that the report agrees with your Shopify dashboard or your books, tax treatment anywhere (Shopify's Amount column is the whole order payment, so sales tax and shipping income collected inside it are not split out), currency conversion between payouts, and that the accounts exist in your software.
Common questions
How do I turn a Shopify payout into a journal entry?
Export the payout's transactions CSV from Shopify admin (Settings > Payments > Shopify Payments > Payouts, open the payout, Export), paste it here and press Read, check and build journals. The page adds up every row, checks the total against the payout, groups the rows into gross sales, Shopify fees, refunds, chargebacks and shipping labels, and writes a journal that balances to a Shopify clearing account.
Why book gross sales and fees instead of the bank deposit?
A Shopify payout is net of processing fees, refunds, chargebacks and shipping labels. Booking only the deposit as income understates revenue and hides the processing fees, and a payout that spans two months pushes one month's sales into the next. This page books gross sales and fees separately, in the month they happened, and the bank deposit clears the Shopify clearing account.
What is the Shopify clearing account?
A holding account. Each journal debits or credits it with that period's net, and the bank deposit, when it arrives, is matched against it. When every payout is journalled and deposited, the clearing account returns to zero, which is the cheap proof that nothing was missed.
Which accounting software can I import to?
Xero (manual journal CSV), QuickBooks Online (journal entry CSV), QuickBooks Desktop (IIF general journal) and a plain CSV for anything else. You can rename the accounts for each category before downloading so they match your chart of accounts.
What does the page do with rows it does not recognise?
It never drops them. They are journalled to an uncategorised account so the journal still equals the payout, and listed so you can review them.
Is it safe to paste a Shopify report into a web page?
The page runs in your browser, the report is read locally and nothing is uploaded; a test in the code asserts there are no network calls. Remove customer names and emails from the file if you would rather not have them on screen: the page only needs the amounts, categories, dates and payout IDs.
What does this not check?
Whether the report matches your Shopify dashboard or your books, tax treatment in any jurisdiction (Shopify's Amount column is the whole order payment, so sales tax and shipping income collected inside it are not split out), currencies converted between payouts, and account names or codes that must already exist in your accounting software.