Sign Up

Best Accounting Practices for Stripe + Xero

Best Accounting Practices for Stripe + Xero


You’ve found the best payments platform, now learn the best accounting practices for automating your Stripe sales data! There are just a few things to keep in mind to maintain your Stripe accounting like a pro. To make it as easy and accurate as possible, we've spent years perfecting our Stripe integration for you. Greenback can easily track any sales and (optional) application fees that Stripe nets out. We support standard, express, and custom Stripe account types. We've also engineered unique solutions for advanced use of Stripe, like Stripe Connect where 3 parties may be involved in a transaction and multi-party payments. The following steps and how-to videos will help you get setup with Stripe, Greenback, and Xero.

Let's clarify what we know. The most important thing to remember is that Stripe holds funds on your behalf. You already know that when you make a sale or accept a payment, Stripe 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.). Stripe 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 Stripe withdraws funds from your balance (ie: Stripe funds/balance) to pay for various expenses such as payment processing fees and refunds. Thus, (and this is key!) the transfers Stripe 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 Stripe 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 signed up for a Greenback account, then connect Stripe, and Xero. You’re going to customize your Chart of Accounts by creating an informal Stripe 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 Xero and Stripe in Greenback

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 and you'll see your scorecard.

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

Pro-Tip: Free users have access to a limited amount of historical transactions on Greenback. Paid users can request a "Catch Me Up" support ticket to get more historical data synced to Greenback. View our Pricing Plans for more info.

Add a Bank Account in Xero

Since Stripe 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 Stripe holds. When Stripe transfers funds to your actual bank account, you'll simply "transfer" those funds in Xero from your Stripe bank account to your actual bank account.

Rather than have a dedicated account in your Chart of Accounts for Stripe 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. your Payment Processing Fees) and 2) Xero allows some transactions, but not others based on the kind of account you create. Since you'll be paying expenses, issuing refunds, etc. all 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. Stripe only uses your actual bank account to make a payment if you don’t have enough funds in your Stripe 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 “Stripe Funds”, the Account Type is “Other”, and the Account Number is “Stripe”. 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

Stripe charges you various fees for doing business on their platform. For example, when you sell an item, Stripe will charge (and auto-deduct) a fee for payment processing. 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 Stripe Merchant Fees.

On your Xero dashboard, go to Settings> Chart of Accounts> Add Account. The Account Type is "Expense", the Code is “601”, and the Name can be "Stripe Merchant Fees" or something similar, then click Save.

As a best practice, Greenback recommends you treat payment processing fees, transaction fees, and many other optional Stripe fees as operating expenses and simply lump them together as Stripe 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.

Stripe is typically pay as you go. Stripe debits funds automatically, either directly from your Stripe Funds balance or directly from your actual bank account (checking account associated with your Stripe Funds). Even if you turned off automatic payments (payouts to you) and do manual payments, it doesn’t change when Stripe deducts payment processing fees. Payment Processing Fees would still be deducted automatically when/if you have a negative balance.

Export a Sale to Xero

You are now ready to export your first Stripe 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, payment processing fee, refund) and Greenback will begin to pick the right defaults every time.

On the Greenback dashboard or while your Stripe account is selected on the left nav, find a “Sales Receipt” transaction that represents an item you’ve sold (ie: immediate payment) in your Stripe 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 Stripe was not found as an existing contact. The actual Stripe customer is not in your existing customer list either, so we'll leave the option open for creating Stripe 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 Stripe 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 "Stripe 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 Etsy 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 Stripe 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 Stripe 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 a Payment Processing Fee to Xero

Every sale will likely have an ancillary "payment processing fee" transaction on Greenback. These transactions are unique to Greenback and the way we help get associated fees correctly on your books. While Stripe simply deducts these out on their platform, Greenback creates a second transaction.

On your dashboard, choose the fee transaction, then click the white "Export" button. Next select "Create New Expense" and click "Next". Since you've already exported a sale in Step 4, notice how Greenback picked Stripe as a contact and pre-filled in the Type + Account to the right one! To indicate the payment method used to pay for the expense, choose “Stripe Funds” (the “bank account” you created in Step 2.). Now you just need to pick the correct Line Item account for this kind of expense. You’ll want to choose the “Stripe Merchant Fees” item we created in Step 3. Then Click Export.

Now let's take a look at your purchase in Xero…

Go to Accounts, and click on Purchases, Paid bills. You’ll see that Greenback created a purchase in Xero with the details of what you expensed. Greenback also created a payment for the purchase and withdrew funds from your Stripe Funds account in Xero to pay for it. Let's take a look at a couple of reports in Xero after this transaction.

Go to Settings, Chart of accounts, Stripe Funds and check out the total. Next go to Reports, choose Income Statement and look at the “Stripe Merchant Fees” and Sales ie: “Income”.

Export a Refund to Xero

If you sell enough in your Stripe shop, you'll eventually need to issue full or partial refunds. For every refund you issue in Stripe, you'll be credited back the refund but not any of the fees you originally paid. Stripe doesn’t credit back fees for refunds but they do not charge to process the refund. The refund is a "negative" sale. Let's go through an example of one to show you how it works.

On your dashboard, choose a Refund transaction, then click the white "Export" button. Next select "Create New Refund" and click "Next". Greenback will select “Stripe” as the Contact. The Deposit to bank/asset account is “Stripe 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 Stripe Funds and see your debits and credits. Next, go to Reports. Go to the Income Statement and look at your Stripe Merchant Fees and your Sales ie: “Income”.

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