Skip to content

Bills and invoices ​

A payment leaving your wallet usually settles a supplier bill; a receipt usually settles a customer invoice. QuickBooks already holds those documents, and unless something tells it the payment happened, they stay open.

This feature is that link. When you post a transaction to your suspense account, SimplyLedger offers the open QuickBooks bills or invoices, and the one you pick gets a payment written against it in QuickBooks as part of posting.

When the document is not in QuickBooks yet, you can raise it from SimplyLedger rather than leaving the app. That side of it has its own page: create bills, invoices and parties.

Before you start ​

Four things have to be in place, in this order. Each one is what makes the next available.

  1. QuickBooks connected for the entity. See QuickBooks.

  2. Enable suspense matching on the QuickBooks settings page (select Settings at the bottom of the sidebar's icon rail, then Entity → QuickBooks). You need this even if you never use the Suspense Matches screen: it is what puts the Suspense account type in the account picker.

  3. Enable QuickBooks bills and invoices on the same page. This adds the Bills, Invoices, Suppliers and Customers screens, and turns on the linking described below.

    The two settings this feature needs

  4. A suspense account. Add it from QuickBooks Accounts, choosing the type Suspense. Pick it from your QuickBooks chart rather than inventing a number. A bill payment is written against that account as the paying account, and posting fails if the account carries no QuickBooks identifier.

The suspense account has to be a Bank account in QuickBooks

Settlement is why. A bill payment names the suspense account as the account it is paid from, and an invoice payment names it as the account the money is deposited to. QuickBooks only accepts a Bank account in either position.

So importing an account of any other QuickBooks type as Suspense is refused, with Suspense must be a QuickBooks Bank account. Pick a Bank account from the chart, or create one in QuickBooks first and import it.

An entity has one active suspense account. Adding a second is refused while the first is active; archive the old one first.

Who can do this

Changing entity settings is an owner or admin action. Adding accounts, syncing, creating documents and posting need write access. See roles and permissions.

The screens it adds ​

Bills and Invoices are separate pages: QuickBooks → Payables → Bills and QuickBooks → Receivables → Invoices. Each holds a cached copy of what QuickBooks has for that document type. Columns are date, due date, the document number with its QuickBooks id, the vendor or customer, memo, total, outstanding balance, and when QuickBooks created it.

Cached QuickBooks bills for the entity

Cached QuickBooks invoices for the entity

The date control at the top right filters by document date, and search matches document id, doc number, memo, and the party's name or id. A very large result set is cut off, with a line above the table saying how many of the total are shown; narrow the date range to reach the rest.

Suppliers and Customers are the same idea for the parties those documents belong to, with an Address column reading from the billing address QuickBooks holds.

Cached QuickBooks suppliers for the entity

The two sides link to each other, so you can move between a party and its documents without searching twice:

FromSelectGoes to
Bills or InvoicesThe vendor or customer name on a rowSuppliers or Customers, filtered to that party
Suppliers or CustomersThe Balance figure on a rowBills or Invoices, filtered to that party

The document page ​

Selecting a row on Bills or Invoices opens that document.

A bill with its lines and the payment that settled it

Its header holds the party, date, due date, total, outstanding balance and memo. Below that are two tables:

  • Lines, each with the expense account or item it is charged to, its description and its amount.
  • Payments, the settlements QuickBooks has recorded against the document. Each shows the type (bill payment or payment), its date, its memo, its amount, and the SimplyLedger posting references it came from, if it came from here. Those references link into All postings, filtered to the posting.

That last column is the audit trail through: from an open QuickBooks bill to the wallet transaction that paid it and the ledger posting that recorded it.

The document page reads live from QuickBooks, not the cache. A payment added in QuickBooks a minute ago is on it, even if the list still shows the old balance.

Cache and sync ​

The lists are cached. The header on Bills and Invoices says when the cache was last updated, and Sync refreshes bills, invoices, suppliers and customers together. A background sync also runs every 30 minutes, so the lists catch up on their own.

Two things do not wait for a sync:

  • Anything you create in SimplyLedger is written into the cache as it is created, so it is on the list straight away. See create bills, invoices and parties.
  • The picker at posting time reads QuickBooks directly, so a document created minutes ago is offered for linking whether or not the cached tables know about it.

The picker at posting time ​

Stage a row whose contra is a contra account set to your suspense account, and instead of dropping straight into staged, the row opens the picker.

That contra is the whole trigger. A row contra'd anywhere else stages normally, with no picker and no link.

Which list you get is decided by the sign of the staged row's Value: negative offers QuickBooks Bills, positive offers QuickBooks Invoices.

Choosing the QuickBooks document to settle

Only open documents appear. Anything with a zero balance is already settled and is not offered. Each row shows doc number, date, due date, the vendor or customer, total and outstanding balance. Use on a row links it and adds the transaction to staged in one step.

Pending rows always offer invoices

Rows staged from the pending table carry an unsigned value (a transfer out reads €10,822.25, not −€10,822.25), so every one of them lands on the invoice list, an outflow included.

A negative value comes from a row you entered yourself: Add transaction with a negative amount, or an uploaded CSV row. See adding transactions by hand. Those are the rows that reach the bill list.

Two other ways out:

  • Skip stages the transaction with no document linked. It is a confirmation, not a slip, because the consequence is that nothing is settled in QuickBooks and the value sits in suspense for you to clear later.
  • Close abandons the staging entirely. The row does not reach staged at all.

Attaching after a skip

There is no control on a staged row to reopen the picker. If you skip and change your mind, remove the row from staged and stage it again.

A transaction you added by hand goes through the same check: contra'd to suspense, it opens the picker just as a synced one does.

What posting does ​

Select Post Transactions and, for every staged row carrying a link, SimplyLedger creates the settlement in QuickBooks:

RowWhat is createdLinked to
Negative value, bill selectedBillPayment, paid from the suspense accountThat bill
Positive value, invoice selectedPayment against the customerThat invoice

These are created immediately, as part of posting, unlike journal entries, which a background sync pushes afterwards. A row with no link posts as an ordinary posting and creates nothing in QuickBooks.

Posting also records a suspense match between the suspense posting and that settlement, and stores the QuickBooks id of the payment on the posting itself. That is what lets the document page show which posting paid it, and what lets a later revert offer to remove the payment as well.

The amount comes from the posting, not the document

The payment is written for the value of the transaction you posted, not the balance of the bill or invoice. Pay a €4,000 bill with a €3,000 transaction and QuickBooks is left with €1,000 outstanding, which is usually what you want. Post a transaction worth more than the document and QuickBooks records an overpayment.

Check the value on the staged row against the Balance column before confirming.

Reverting a linked posting ​

Reverting from All postings works as usual for an ordinary posting. A posting that settled a bill or invoice has a second record in QuickBooks that reverting cannot decide about on its own, so it asks.

The Linked QuickBooks settlement dialog offers two ways forward:

ChoiceEffect
Retain settlementThe posting is reverted and the suspense match is removed. The BillPayment or Payment stays in QuickBooks, so the document stays settled there
Delete settlementThe same, and the BillPayment or Payment is deleted in QuickBooks, which reopens the balance on the bill or invoice

Cancel leaves everything as it was, posting included.

Take Retain settlement when the money genuinely moved and the QuickBooks payment is right, and only the ledger side needs redoing. Take Delete settlement when the settlement itself was wrong: the wrong document was picked, or the transaction should not have been posted at all.

Either way the reverting side is the same as any other revert: an inverted pair of postings is written, the original journal entry is deleted in QuickBooks, and a finalised reconciliation containing either posting is reopened.

The match goes either way

Reverting removes the suspense match, so the pairing disappears from Suspense Matches whichever choice you make. Retaining the settlement retains it in QuickBooks, not in SimplyLedger.

When the picker does not appear ​

Work down this list; it is ordered by how often each one is the cause.

SymptomCause
The row stages with no pickerThe contra is not your suspense account, or is a wallet contra rather than a QuickBooks contra account
No picker anywhere, on any rowEnable QuickBooks bills and invoices is off, or the entity has no active suspense account
Suspense missing from the account type pickerEnable suspense matching is off. Turn it on first, then add the account
Suspense must be a QuickBooks Bank account when importing the accountThe account chosen from the chart is not of QuickBooks type Bank. Pick one that is
No bills found for the suspense contra accountNothing in QuickBooks is open with a non-zero balance, or the connection has expired
Posting refused, bills and invoices not allowedThe setting was turned off between staging and posting
Posting refused, no QuickBooks account idThe suspense account was created without a QuickBooks account behind it. Archive it and add it again from the QuickBooks chart

How this differs from suspense matching ​

Both involve the suspense account and they act at different moments.

WhenWhat it does
Bills and invoicesAt posting timeSettles the QuickBooks document the payment relates to, so it stops showing as open
Suspense matchingAfter postingGroups postings already sitting on suspense against the right QuickBooks transaction and clears them

Linking at posting time is the cheaper of the two, because the attribution is done while you still have the transaction in front of you. Suspense matching is the fallback for everything that could not be attributed then.

The two meet at the match record: settling a document at posting time writes a suspense match for you, so the posting arrives already cleared rather than waiting on the Suspense Matches screen.

Next ​

Create bills, invoices and parties covers raising the documents themselves. Post a transaction covers the staging and posting rhythm this fits into, and hold matches is the other pairing tool, for the two legs of a swap or bridge.

Crypto accounting, finally automated.