How to publish expenses to QuickBooks Online as Bills

How to record supplier bills in SparkReceipt and publish them to QuickBooks Online as Bills rather than Purchases, including due dates, bill numbers and recurring bills.

SV
Written by Sampsa VainioUpdated Jul 27, 2026

When you publish an expense to QuickBooks Online, SparkReceipt can create it either as a Purchase (a cash or credit-card expense that is already paid) or as a Bill (an amount you owe a supplier and will pay later). Which one you get is decided by a single thing: the account you select in the publish editor. Pick an Accounts Payable account and SparkReceipt publishes a Bill; pick a Bank or Credit Card account and it publishes a Purchase. The document type in SparkReceipt does not decide this — the account does.

This article covers how to record supplier bills (for example a monthly telephone bill with an issue date, a due date and a bill number) and have them land in QuickBooks Online as Bills.

This assumes you already have the QuickBooks Online integration connected. If you don't, start with QuickBooks Online integration.

Bill or Purchase — it's the account, not the document

SparkReceipt looks at the type of the QuickBooks account you selected for the expense:

  • An Accounts Payable account → the expense is published as a Bill.
  • A Bank or Credit Card account → the expense is published as a Purchase.

Only these three QuickBooks account types are synced into SparkReceipt as selectable accounts — Bank, Credit Card and Accounts Payable. Other account types from your chart of accounts are not offered here, so the only way to get a Bill is to choose your Accounts Payable account.

Where you pick the account

Open the expense in SparkReceipt and go to the QuickBooks publish editor. Under the expense, you'll find:

  • Account — the dropdown where you choose which QuickBooks account to publish against. This is where you pick your Accounts Payable account to get a Bill.
  • Publish as — a read-only value directly below it that shows what SparkReceipt will create (Bill or Purchase) based on the account you selected. Use it to confirm you're about to publish the right thing before you click publish.

Making bills route automatically

You don't have to pick the account by hand on every document. When you publish, SparkReceipt resolves the account in this order:

  1. An account set directly on the document (the per-document override).
  2. The account mapped to the document's payment method.
  3. The integration's default purchase account.

That gives you two ways to make supplier bills route to Accounts Payable automatically:

  • Map a payment method to your Accounts Payable account. In Settings → Payment methods, open a payment method and set its Payment Account to your Accounts Payable account. Every expense that uses that payment method will then publish as a Bill without any per-document work.
  • Set the integration default. On the QuickBooks settings page in SparkReceipt, the Default purchase account is used when an expense has no payment method, or its payment method isn't linked to an account. Set this to your Accounts Payable account if bills are your common case.

You can still override either of these on an individual document using the Account field in the publish editor.

What lands on the Bill

When SparkReceipt publishes an expense as a Bill, it maps these fields:

  • Bill date comes from the document's date.
  • Bill no. comes from the document's reference number. QuickBooks limits this field to 21 characters, so longer references are truncated. If another document in your account already used the same reference number, SparkReceipt appends -2, -3 and so on to keep the number unique, because QuickBooks requires bill numbers to be unique.
  • Due date comes from the document's due date — but only when a due date is actually set (see the next section). Purchases have no due-date concept in QuickBooks, so a due date is only ever sent on a Bill. When you leave the due date empty, SparkReceipt omits it entirely and QuickBooks can derive one from your supplier's payment terms instead.

Give the bill a due date

There is one prerequisite that is easy to miss. A due date is only kept on a SparkReceipt document when its Document kind is set to Invoice. If the Document kind is Receipt, SparkReceipt clears the due date, and nothing will reach QuickBooks.

Document kind is a field on the document with two values, Receipt and Invoice. A supplier bill — something you owe and will pay later — is an Invoice-kind expense. So to record a telephone bill with a due date:

  1. Set the document's Document kind to Invoice.
  2. Fill in the due date (and the issue date, which is the document date).
  3. Select your Accounts Payable account so it publishes as a Bill.

Leave the Document kind as Receipt and the due date won't stick, no matter what you enter.

Recurring bills

If the same bill arrives on a schedule — a monthly telephone bill, for instance — you can have SparkReceipt create the document for you with a recurring expense automation. See How to set up automations in SparkReceipt for the full setup. Recurring documents can be scheduled daily, weekly, bi-weekly, monthly or yearly.

A current limitation to be aware of: the recurring expense automation does not have fields for a due date, a reference number, or the Document kind, and it stores a payment method rather than a QuickBooks account. So documents it generates will not automatically carry a due date or a bill number, and whether they publish as a Bill depends on the account that the chosen payment method is mapped to. In practice, a recurring bill is a good way to have the document appear on schedule, but you'll still open each generated document to add the due date and reference number (and set the Document kind to Invoice) before publishing it as a Bill.

Switching an already-published document between Bill and Purchase

If you already published a document and want to change it from a Purchase to a Bill (or the other way around), you have to remove the existing record from QuickBooks first, then publish again with the other account type. Use the Remove from QuickBooks action in the publish editor, change the Account, and publish once more.

A couple of things to note

  • Payment terms are not sent to QuickBooks. SparkReceipt sends the due date directly rather than a terms code, so QuickBooks won't show a "Terms" value derived from SparkReceipt.
  • The Publish as value always reflects the currently selected account, so check it whenever you're unsure which type you're about to create.