Features Pricing Blog Support Install Free

How to Sync QuickBooks Invoices to Google Sheets: Fields, Filters and AR Aging

Mike Haye Updated 12 min read

Invoices are where most receivables questions start: who owes what, how late they are, and which customers need a reminder call. QuickBooks Online answers some of that in its own reports, but as soon as you want your own aging buckets, a collections list for the team, or numbers that people without a QuickBooks login can see, the invoice data needs to be in a spreadsheet.

This guide is specifically about invoices. It covers which QuickBooks invoice fields you can pull into Google Sheets with SheetsSync, how to filter for unpaid or overdue invoices, ready-to-paste formulas for AR aging, an overdue list and balances by customer, and how editing invoices from Sheets works. For a general comparison of export methods, see how to export QuickBooks to Google Sheets.

Short version: install SheetsSync, click Connect QuickBooks in the sidebar, choose Invoice as the data type, pick fields, set the date range to cover your open invoices, and click Sync. Each row is one invoice. On Pro, schedule it to refresh hourly, every 6 hours, daily or weekly.

Which QuickBooks Invoice Fields You Can Sync

Each row in the sheet is one invoice, and you choose which fields become columns. These are the invoice fields SheetsSync offers, with the column label you will see in the sheet:

Column labelWhat it contains
IDThe QuickBooks internal ID of the invoice. Required if you want to edit invoices from Sheets.
Invoice NumberThe invoice number shown to the customer
DateThe invoice (transaction) date
CustomerThe customer's display name
Customer IDThe customer's QuickBooks ID, useful for matching against a customer list
Total AmountThe invoice total
BalanceThe amount still unpaid on the invoice
A/R Paid"Paid" when the balance is zero, otherwise "Unpaid" (worked out from Balance)
Due DateWhen payment is due
TermsThe payment terms, such as Net 30
DepositAny deposit amount recorded on the invoice
Email StatusNotSet, NeedToSend or EmailSent
Print StatusNotSet, NeedToPrint or PrintComplete
EmailThe billing email address on the invoice
Bill Address / Ship AddressThe first line of the billing and shipping addresses
MemoThe private (internal) note on the invoice
Customer MessageThe message printed for the customer
Deposit AccountThe account the deposit goes to
Created / UpdatedWhen the invoice was created and last changed in QuickBooks

A new invoice sheet starts with six fields selected: Invoice Number, Date, Customer, Total Amount, Balance and Due Date. That set already covers most receivables work. Add A/R Paid if you want an easy paid or unpaid flag, and ID if you plan to push edits back. You can drag fields to change the column order.

One thing to know up front: the invoice sheet is one row per invoice, not one row per product line. If you need line-by-line detail (items, quantities, rates), use a QuickBooks report or the Transaction List report instead.

Step-by-Step Setup

1

Install SheetsSync

Install SheetsSync from the Google Workspace Marketplace, or from inside Google Sheets via Extensions > Add-ons > Get add-ons and search for SheetsSync.

2

Open the sidebar and connect QuickBooks

In a Google Sheet, go to Extensions > SheetsSync > Open SheetsSync and click Connect QuickBooks. You sign in on Intuit's own page and approve access (Intuit OAuth 2.0), so SheetsSync never sees your QuickBooks password. SheetsSync works with QuickBooks Online (Simple Start, Essentials, Plus and Advanced), not QuickBooks Desktop.

3

Configure the sheet for invoices

Use Extensions > SheetsSync > Configure This Sheet and choose Invoice as the data type. Then pick your fields, date range, filters and sort order (covered in the next section).

4

Sync

Click Sync (or Extensions > SheetsSync > Sync This Sheet). Headers go in row 1 and one invoice per row from row 2, with amounts formatted as currency and dates as dates. Every sync rewrites the sheet with current QuickBooks values, so a payment recorded in QuickBooks shows up as a lower Balance on the next sync.

Tip: keep the synced Invoices sheet for data only and build your formulas on separate tabs. Because each sync rewrites the synced sheet, anything you type next to the data there can be overwritten.

Filter, Sort and Group Your Invoices

Date range

Each sheet has a date range: All Time, Last 7 Days, Last 30 Days, Last 90 Days, Last Year, From Date to Today, or a Custom Range. For invoices, the range applies to the invoice date, not the due date or the date a payment came in. The default is Last 30 Days, which is fine for recent activity but will leave out an unpaid invoice from three months ago. For receivables work, use All Time, Last Year, or From Date to Today with a start date before your oldest open invoice.

Filters

Filters narrow the invoices that are pulled. Text fields can be matched with "equals" or "contains", amounts with =, >, >=, < and <=, and dates with =, after, on or after, before and on or before. If you add several filters, an invoice must match all of them. Useful invoice filters:

Filter values are fixed, so "overdue as of today" is best handled with a formula on a separate tab (shown below) that uses TODAY(). A filter of Balance > 0 keeps the sheet small and focused on what is still owed.

Sorting and grouping by customer

Choose a sort field and direction for the sheet, for example Due Date ascending so the oldest due invoices come first, or Balance descending to put the biggest open amounts at the top. For totals per customer, sync the invoice rows and group them in Sheets with QUERY or a pivot table, as in the formulas below.

Invoice Workflows with Google Sheets Formulas

The formulas below assume the synced sheet is named Invoices and has these columns, which is the default order when you select these fields: A Invoice Number, B Date, C Customer, D Total Amount, E Balance, F A/R Paid, G Due Date. If your columns differ, change the letters. Put each formula on its own tab, not on the synced sheet.

1. AR aging buckets (0-30, 31-60, 61-90, 90+ days past due)

On a tab named AR Aging, type the bucket names in A2:A6 and these formulas in B2:B6. Each one totals the open Balance of invoices whose Due Date falls in that window, counted back from today:

Not yet due=SUMIFS(Invoices!E2:E, Invoices!G2:G, ">"&TODAY())
0-30 days past due=SUMIFS(Invoices!E2:E, Invoices!G2:G, "<="&TODAY(), Invoices!G2:G, ">="&TODAY()-30)
31-60 days past due=SUMIFS(Invoices!E2:E, Invoices!G2:G, "<"&TODAY()-30, Invoices!G2:G, ">="&TODAY()-60)
61-90 days past due=SUMIFS(Invoices!E2:E, Invoices!G2:G, "<"&TODAY()-60, Invoices!G2:G, ">="&TODAY()-90)
90+ days past due=SUMIFS(Invoices!E2:E, Invoices!G2:G, "<"&TODAY()-90)

Paid invoices have a Balance of zero, so they add nothing to any bucket. As a check, the five buckets should add up to =SUM(Invoices!E2:E); if they don't, some open invoices have no due date. Because the formulas use TODAY(), the buckets move forward each day even between syncs, while the balances update on each sync.

2. Overdue invoice list with FILTER

On a tab named Overdue, type headers in row 1 (Invoice, Customer, Due Date, Balance, Days Overdue) and put this in A2. It lists every invoice with money still owed and a due date in the past, most overdue first:

Overdue list, cell A2=IFERROR(SORT(FILTER({Invoices!A2:A, Invoices!C2:C, Invoices!G2:G, Invoices!E2:E, TODAY()-Invoices!G2:G}, Invoices!E2:E>0, Invoices!G2:G<>"", Invoices!G2:G<TODAY()), 5, FALSE), "No overdue invoices")

To label each row with its aging bucket, put this in F2 (header "Bucket" in F1):

Bucket label, cell F2=ARRAYFORMULA(IF(E2:E="", "", IFS(E2:E<=30, "0-30", E2:E<=60, "31-60", E2:E<=90, "61-90", TRUE, "90+")))

Share this tab with whoever handles collections. They see exactly which invoices to chase without needing QuickBooks access. Format the Due Date column as a date and Days Overdue as a plain number.

3. Total outstanding by customer

With QUERY, one formula gives each customer's open balance and the number of open invoices, largest first:

Outstanding by customer (QUERY)=QUERY(Invoices!A1:G, "select C, sum(E), count(A) where E > 0 group by C order by sum(E) desc label sum(E) 'Outstanding', count(A) 'Open invoices'", 1)

If you prefer SUMIF, list the customers with an open balance in A2 and total them in B2:

Cell A2: customers with an open balance=SORT(UNIQUE(FILTER(Invoices!C2:C, Invoices!E2:E>0)))
Cell B2: their balances (fill down)=SUMIF(Invoices!C:C, A2, Invoices!E:E)

4. A DSO-style collection check

Days sales outstanding (DSO) estimates how many days of sales are sitting unpaid. A common version is outstanding receivables divided by sales over a period, times the number of days. Using invoice totals for the last 90 days as "sales":

Approximate DSO (90-day basis)=SUM(Invoices!E2:E) / SUMIFS(Invoices!D2:D, Invoices!B2:B, ">="&TODAY()-90) * 90

Treat this as a trend indicator rather than an audited figure: invoice totals can include sales tax, and the result only counts invoices inside the synced date range. Set the sheet's range to All Time or Last Year so older open invoices are included in the balance. Track it weekly, and if it climbs, look at the 61-90 and 90+ buckets first.

For charts and a one-page view of revenue, AR and top customers, continue with the QuickBooks dashboard in Google Sheets tutorial, which uses the same column layout.

Keeping Invoice Data Up to Date

How fresh the sheet is depends on how you sync:

For a daily collections routine, a daily schedule set to an early hour is usually enough. If your team works the overdue list during the day, use hourly or turn on webhook sync. You can see recent runs under View Sync History.

Editing and Creating Invoices from Sheets (Pro)

With two-way sync on Pro, the invoice sheet is not just a report: you can change rows in Sheets and push those changes to QuickBooks. Two-way sync covers invoices, customers, vendors, bills and items.

Editing existing invoices

Include the ID field so SheetsSync knows which QuickBooks invoice each row belongs to. Turn on two-way sync for the sheet, edit a cell such as Due Date or Memo, then push with Extensions > SheetsSync > Push to QuickBooks > Push This Sheet. A Sync Status column shows each row as Synced, Pending, Error or New, so you can see what went through. Bulk push lets you send many edited rows at once, for example after extending due dates for a group of invoices with a formula.

Creating new invoices

Use Push to QuickBooks > Create New Record... to open a form where you pick the customer, invoice number (or leave it blank to let QuickBooks number it), invoice date, due date, line items (description, quantity, rate) and memo. QuickBooks needs a customer and at least one line item to create an invoice. There is also Create from Selected Rows, and an optional setting to auto-create QuickBooks records from new rows you add to the sheet.

What is never sent back

Some invoice values are calculated by QuickBooks, and SheetsSync never sends them on create or update: Total Amount, Balance, A/R Paid, and the Created and Updated timestamps. Typing a new number in the Balance column does not record a payment; record payments in QuickBooks and the balance updates on the next sync. Payments themselves are pull-only in SheetsSync, as are purchases, accounts, journal entries and reports.

Two-way sync is a Pro feature. On the Free plan, data flows one way, from QuickBooks into Sheets.

Troubleshooting Invoice Syncs

Some invoices are missing

Check the date range first. It filters on the invoice date, and the default is Last 30 Days, so older invoices (including old unpaid ones) are left out. Widen it to All Time, Last Year, or From Date to Today. Then check your filters: several filters must all match, so a leftover filter such as one customer name will hide everything else.

My AR total doesn't match QuickBooks

Usually the same cause: open invoices dated before the start of your date range are not in the sheet. Also check that the sheet has synced since the latest payments were recorded, and that your aging formulas count from the same date as the QuickBooks report you are comparing with.

I can't add a second sheet or data type on Free

The Free plan allows up to 3 configured sheets and one data type (one entity, such as Invoice, or one report). If you want invoices plus payments or customers, that needs Pro, which also unlocks scheduled sync, webhook sync and two-way sync. You can try Pro free for 14 days with no credit card required; if the trial ends without a subscription, the account returns to Free and your sheet settings are kept.

The schedule isn't refreshing

Scheduled and webhook sync are Pro features, and hourly is the fastest interval, so a change made a few minutes ago may not be in the sheet yet. Open View Sync History to see when the last run happened and whether it reported an error. Click Sync to refresh right away.

The QuickBooks connection expired

If syncs fail with a connection or authorization error, open the sidebar, disconnect, and click Connect QuickBooks again to re-approve access.

Pushed edits show Error

Make sure the ID column is in the sheet and hasn't been edited, and that you changed an editable field rather than Total Amount or Balance. Error rows can be corrected and pushed again.

Still stuck? The SheetsSync help center has more fixes and a way to contact support.

Frequently Asked Questions

Yes. Add a filter of A/R Paid equals Unpaid, or Balance greater than 0, when you configure the sheet. Also set the date range wide enough (for example All Time or Last Year), because the date range filters on the invoice date and the default is Last 30 Days.
On the Free plan you sync manually whenever you click Sync. On Pro you can schedule auto-sync hourly, every 6 hours, daily or weekly, and turn on webhook sync, which refreshes sheets with changed invoices on the next hourly check. Hourly is the fastest schedule.
No. The invoice sheet has one row per invoice with header fields such as Invoice Number, Customer, Total Amount, Balance and Due Date. When you create a new invoice from SheetsSync, you do enter line items (description, quantity and rate) in the create form.
No. Total Amount, Balance and A/R Paid are calculated by QuickBooks and are never sent back. With two-way sync on Pro you can edit other fields, such as Due Date or Memo, and push them to QuickBooks. Record payments in QuickBooks and the balance updates on the next sync.
The Free plan lets you sync invoices manually to up to 3 configured sheets, using one data type. Pro ($19.99 per month or $159.99 per year) adds all data types and reports, scheduled and webhook sync, two-way sync and bulk push. Pro has a 14-day free trial with no credit card required.
Your synced invoices live in your Google Sheet. SheetsSync's backend keeps what it needs to run the sync: connection tokens, your sheet settings, sync logs and the rows you push back with two-way sync. It connects with Intuit OAuth 2.0, so it never sees your QuickBooks password, and you can disconnect at any time.

Related Guides

Get your QuickBooks invoices into Sheets

Install SheetsSync, connect QuickBooks, and sync your invoices. The Free plan covers manual sync of up to 3 sheets, and Pro adds schedules, webhook sync and two-way sync. See pricing.