Sign Up

Best Accounting Practices for Shopify + Xero

Best Accounting Practices for Shopify + Xero


The following steps and how-to videos will help you get setup with Shopify, Greenback, and Xero. Greenback auto-fetches your sales, refunds, and payouts from Shopify and syncs them to Xero. We even create ancillary transactions for “netted out” card swipe fees, and subscription plans (when the data is available). We are fanatical about itemized details because it’s imperative to know your cost of sales. Greenback captures your Shopify accounting data from Shopify Payments.

Let's clarify what we know. The most important thing to remember is that Shopify holds funds on your behalf. You already know that when you make a sale or accept a payment, Shopify will take the payment from the customer, then deposit the funds to a holding account. This is your balance of funds comprised of different types of transactions (e.g., payments, refunds, etc.). Shopify will then transfer these funds (payouts) from your available account balance into your actual bank account based on your payout schedule.

You also know that Shopify withdraws funds from your balance (ie: Shopify funds/balance) to pay for various expenses such as payment processing fees and refunds. Thus, (and this is key!) the transfers Shopify will periodically make to your actual bank account will not reflect all the credits and/or debits behind the scenes. That's where Greenback provides outstanding support. Our platform will sync and generate (if necessary) all the transactions that affect your Shopify balance. And our platform also helps get all of them into Xero as sales and expenses.

Here are the best practices we are going to go over. Make sure that you’ve already signed up for a Greenback account, then connect Shopify, and then Xero. You’re going to customize your Chart of Accounts by creating an informal Shopify Bank Account, and creating an Expense Account. Then you’ll teach Greenback the mappings by exporting a sale, expenses (like fees), and a refund.

Connect Shopify and Xero to Greenback

On the Greenback dashboard, click “Connect” in the left nav, find Shopify and click on "Connect", and click Connect again. You'll be redirected to Shopify where you can follow the steps to authorize Greenback to connect to your account eg: Connect My Shopify Account. Once you’ve completed that, you'll be redirected back to Greenback where an initial sync will complete. You will see your sales, refunds, payment processing or merchant fees, purchases, reimbursements, etc. if you have any.

On the Greenback dashboard, click “Connect” in the left nav, find “Xero” and click on "Connect", and click Connect again. You'll be redirected to Xero where you can follow the steps to authorize Greenback to connect to your account eg: Allow Access. Once you've completed that, you'll be redirected back to Greenback where an initial sync will complete. You’ll also get a glimpse of your initial scorecard.

Add a Bank Account in Xero

Since Shopify maintains a balance of funds on their platform for your shop, they act like any other bank account for your business. As a best accounting practice, you'll want to create a new bank account in Xero to reflect the funds Shopify holds. When Shopify transfers funds to your actual bank account, you'll simply "transfer" those funds in Xero from your "Shopify Funds" bank account to your actual bank account.

Rather than have a dedicated account in your Chart of Accounts for Shopify as Undeposited Funds -- we recommend having a dedicated account that is a Bank -> Checking Account instead. The reasoning is two-fold: 1) you pay some expenses from it in our system (e.g. swipe fees, issuing refunds, etc.) and 2) Xero allows some transactions, but not others based on the kind of account you create.

Because you'll be paying for expenses from this specific account, it acts more like a real bank account than simply a place undeposited funds are held.

Greenback will note where funds came from/went to on every transaction. If you change your bank account information associated with your Shopify Balance, you'll need to pick the right account in Xero. Shopify only uses your actual bank account to make a payment if you don’t have enough funds in your Shopify balance. Make sure your bank allows both credit and debit payouts. During a training session, we’ll run thru how the Greenback UI (user interface) provides hints and selects defaults based on the account we know you paid from or deposited to.

On your Xero dashboard, you'll click on Settings > Chart of Accounts > Add Bank Account. Next you’ll add a new account to your Chart of Accounts. To trick Xero into allowing you to manually add an account, search for a non-existent bank such as “” as the bank name, and click on the “add it anyway” link, since it is not a recognized bank. The new bank account name can be “Shopify Funds”, the Account Type is “Other”, and the Account Number is “Shopify”. Click Save. Make sure that the settlement currency of your bank account matches that of the payout being sent to it (i.e. a USD payout must be sent to a USD-denominated bank account).

Add an Expense Account in Xero

Shopify charges you various fees for doing business on their platform. For example, when you sell an item, Shopify will charge (and auto-deduct) a "swipe" fee. To simplify accounting for these fees, Greenback recommends the best practice of also adding a new account to your Chart of Accounts with an "operating expense" account category to represent these Shopify Merchant Fees.

As a best practice, Greenback recommends that you treat swipe fees, monthly fees, etc. as operating expenses and simply lump them together as Merchant Fees. Some businesses will account for some of these as a "Cost of Goods Sold (COGS)" or "Cost of Sales (COS)", but most accounting professionals we surveyed recommended that they get treated as a standard operating expense.

Export a Sale to Xero

You are now ready to export your first Shopify sale to Xero! Greenback learns the correct export settings and mappings as you do them. So you'll only need to export a few different types of transactions (e.g. sales receipt, a monthly subscription fee, refund) and Greenback will begin to pick the right defaults every time.

On the Greenback dashboard or while your Shopify account is selected on the left nav, find a “Sales Receipt” transaction that represents an item you’ve sold (ie: immediate payment) in your Shopify shop and click on the green “Export” button. Greenback will refresh your settings from Xero and search for possible matches/duplicate transactions. (We are fanatical about protecting your books.) Next, click on “Create a New Sale” since the transaction doesn’t exist in Xero yet and click Next. When you select this option, Greenback will add a new transaction to Xero after the next 2 steps are completed.

For the Customer field, we haven't done any exports yet so Shopify was not found as an existing contact. The actual Shopify customer is not in your existing customer list either, so we'll leave the option open for creating Shopify as a new contact. Greenback will add the “contact” you input here (eg: marketplace/seller platform, or customer name if available) to your list for you in Xero and remember it for you the next time. In the video we added Shopify as a new customer. The "To" field is where the deposit should be applied to. Select the bank/asset account “Invoice + Payment” and the account "Shopify Funds" that we already set up in Step 2. For the Line Item Account field, you can choose the “400 - Sales (REVENUE)” income account from your Chart of Accounts in Xero. Click "Export" and you're finished.

You may or may not be dealing with sales tax, but in our example we've included it and selected the Xero "Auto Lookup" option.

Greenback’s Automated Sales Tax feature detects when your shop or platform has collected sales tax so we either include it as a line item in the text receipt and the Sales Tax will say “0” (eg: on the Shopify platform) or it will appear as a line item under the Subtotal where it typically appears in a transaction. It depends on how you have set up your Shopify Shop.

Pro-Tip: Should it be a Type of Invoice or a Bank Transaction? If you are paying for a version of Xero with unlimited invoices then we highly suggest you use the Invoice type for your sales transactions. However, if you have a version of Xero with limited amounts of invoices per month, then the Bank Transaction is a great way to get around Xero's invoice limit.

Let's take a look at your invoice in Xero now…

Greenback created an invoice in Xero with the details of what you sold. Greenback also created a payment that covered the balance of the invoice and deposited it to your Shopify Funds account in Xero. To view it in Xero, go to Accounts, Sales, Paid invoices. Then click on the line item that matches the transaction.

Export an Expense to Xero

For expenses like your monthly subscription plans, "netted" out card swipe fees, and other costs, Greenback creates ancillary transactions if needed. As mentioned in Step 3, best practice is to treat them as "Operating Expenses" and lump them together as Merchant Fees. For an example on how to handle an export, here's a similar video working with Stripe expenses

Export a Refund to Xero

If you sell enough on Shopify, you'll eventually need to issue full or partial refunds. So let's go through an example of one to show you how it works. For every “discount/refund” you issue on Shopify, Greenback creates a transaction for you that represents the "negative" sale.

On your dashboard, choose a Refund transaction, then click the white "Export" button. Next select "Create New Refund" and click "Next". Greenback will select “Shopify” as the Contact. The Deposit to bank/asset account is “Shopify Funds” (the “bank account” you created in Step 2). For the Product/Service field, select the “Sales” income account. Click Next.

Let's take a look at a couple of reports in Xero after these transactions. Go to Settings and click on your Chart of Accounts. Then look at the Total column for Shopify Funds and see your debits and credits. Next, go to Reports. Go to the Income Statement and look at your Shopify Merchant Fees and your Sales ie: “Income”.

Shopify Accounting

Reconciling Payouts and Transfers and Handling Deposits on Your Bank Feed

How to Customize Your Accounting Data Exports

If you've connected QuickBooks, you can set your preferences when exporting your data. Choose your time zone to match, make it easy to see your shop name, enable item SKU matching, and more. Set Your Preferences

Shopify Payment Data

Businesses all over the world can accept payments directly without the hassle of a payment gateway since Shopify has its own payment provider--Shopify Payments. We can auto-fetch your data in the following countries: United States, Canada, United Kingdom, Australia, Ireland, New Zealand, and Singapore if you use Shopify Payments. Greenback can only capture data made available through your Shopify account ie: Shopify Payments. If you use a 3rd party payment gateway, your data isn't available.

Join the world's most advanced pre-accounting system.

Start a free trial on our growth plan now.

  • Start your free trial
  • Easy set-up
  • Cancel any time