Shopify Payments CSV to QBO for QuickBooks

In short: Shopify Payments' transactions export lists every charge, refund and adjustment with Amount, Fee and Net in the payout currency, the payout status, and the payout date that settled it. A .qbo file is Intuit's Web Connect format: an OFX bank statement that also carries an Intuit bank identifier (INTU.BID). QuickBooks Online and QuickBooks Desktop read it without a column-mapping step. Drop the file below. It is converted on your device and never uploaded.

Convert your file

Shopify Payments to QuickBooks (.qbo Web Connect)

payment_transactions_export.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 Shopify Payments

  1. In Shopify admin open Finances, then Payouts.
  2. Open View transactions (or a single payout) and choose the dates.
  3. Click Export and download the CSV.
  4. Upload the file here.

Why a raw Shopify Payments export fails in QuickBooks Online and QuickBooks Desktop

The Shopify Payments export is a CSV, not a bank statement file. To keep a Shopify Payments balance account in your books, each charge, fee, refund and adjustment has to become a statement line.

QuickBooks cannot read a payment app CSV as a .qbo file, and renaming the file does not help. A .qbo file needs the OFX statement structure, an account type that matches the QuickBooks account you upload into, and an Intuit bank identifier.

What is unusual about the Shopify Payments file

  • Columns: Transaction Date, Type, Order, Card Brand, Card Source, Payout Status, Payout Date, Available On, Amount, Fee, Net; newer files add Currency, Presentment Amount and more.
  • Amount is in the payout currency, Fee is positive and Net is Amount minus Fee.
  • Transaction Date carries the store time zone offset; the store's own date is used.
  • Rows marked pending have not been paid out yet.
  • Each payout is identified by its payout date (or Payout ID when the file has one).

What QuickBooks Online and QuickBooks Desktop requires

  • OFX 1.0.2 SGML file carrying an Intuit bank id (INTU.BID 3000, a bank Intuit's published list shows as active for Web Connect).
  • QuickBooks US needs US dollars; QuickBooks Canada takes CAD or USD with bank id 2.
  • QuickBooks Online: up to 1,000 transactions and 350 KB per upload (we split bigger files between days where possible).
  • Each transaction id is built from its date, amount, description and platform id, so the same row in two overlapping exports gets the same id.
  • Credit card accounts must be exported with account type "credit card".
  • QuickBooks Desktop only imports Web Connect in its supported (recent) releases.

2. Before and after

Before: the Shopify Payments transactions CSV as downloaded

Transaction Date,Type,Order,Card Brand,Card Source,Payout Status,Payout Date,Available On,Amount,Fee,Net,Checkout,Payment Method Name,Presentment A...
2023-10-31 12:00:42 +0100,charge,#3099,master,online,pending,2023-12-01,2023-11-03,2636.49,107.33,2529.16,#42675990692187,card,113.98,USD,CZK,0.00
2023-10-20 09:00:00 +0200,charge,#3080,visa,online,paid,2023-11-01,2023-10-22,1000.00,40.50,959.50,#42600000000001,card,1000.00,CZK,CZK,0.00
2023-10-14 07:07:50 +0200,refund,#3055,master,online,paid,2023-11-01,2023-10-16,-738.51,0.00,-738.51,#42569948889435,card,29.90,EUR,CZK,0.00
2023-10-13 23:59:59 +0200,adjustment,,,,paid,2023-11-01,2023-10-16,-12.00,0.00,-12.00,,,,,CZK,0.00
2023-10-10 10:00:00 +0200,charge,#3050,visa,online,paid,2023-10-12,2023-10-12,500.00,20.25,479.75,#42500000000002,card,500.00,CZK,CZK,0.00

After: what QuickBooks Online and QuickBooks Desktop receives

...
<STMTTRN>
<TRNTYPE>CREDIT</TRNTYPE>
<DTPOSTED>20231010120000</DTPOSTED>
<TRNAMT>500.00</TRNAMT>
<FITID>61708984E9585AE5G</FITID>
<NAME>Shopify charge #3050</NAME>
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20231010120000</DTPOSTED>
<TRNAMT>-20.25</TRNAMT>
<FITID>61708984E9585AE5F</FITID>
<NAME>Fee</NAME>
<MEMO>Fee: Shopify charge #3050</MEMO>
</STMTTRN>
...

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 QuickBooks Online and QuickBooks Desktop

  1. QuickBooks Online: go to Transactions > Bank transactions, click Link account (or Update) > Upload from file.
  2. Choose this .qbo file, pick the QuickBooks account to put it in, and click Continue.
  3. QuickBooks Desktop: File > Utilities > Import > Web Connect Files, choose the file, then pick or create the account.
  4. Review the transactions under For review and add or match them.

Questions

Which Shopify export should I use?
For a Shopify Payments balance account in your books, the transactions export from Finances, Payouts. For one journal entry per payout, the payouts export, which has a page of its own here.
What does "QuickBooks is unable to verify the financial institution" mean?
It is commonly reported when the bank identifier (INTU.BID) inside a .qbo file is missing or not one QuickBooks recognizes. Files from this converter use 3000, an id listed as active for Web Connect in Intuit's published bank list. Intuit does not document exactly how QuickBooks Online checks the id.
What about rows that are still pending?
Rows whose payout status is not paid have not reached your bank yet. They are included in the account, and the notes say how many are still pending.
Should I use .qbo or the QuickBooks Online CSV?
For QuickBooks Desktop, use .qbo: Web Connect is how Desktop brings in bank transactions. For QuickBooks Online either works. The .qbo file skips the column-mapping step, and each transaction carries an id built from its date, amount, description and platform id, so the same row converted from two overlapping exports gets the same id.

Other ways to convert Shopify Payments

Other exports to QuickBooks (.qbo Web Connect)

Common import problems