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.

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 under Settings → Features. 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 under Settings → Features. 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.

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 and posting need write access. See roles and permissions.

The screens it adds

Bills & Invoices holds cached copies of what QuickBooks has, split into Bills and Invoices tabs, filterable by date. The header shows when the cache was last updated, and Sync refreshes bills, invoices, suppliers and customers together.

Cached QuickBooks bills for the entity

Suppliers and Customers are the same idea for the parties those documents belong to.

The cache is what these screens read. The picker described below reads QuickBooks directly, so a document created minutes ago is offered for linking even if the cached tables have not been synced yet.

The picker at posting time

Stage a row whose contra is a PnL 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 enter yourself: Add Custom Transaction with a negative amount, or an imported CSV row. 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.

Add Custom Transaction goes through the same check: a custom entry contra'd to suspense 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.

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.

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 PnL one
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
No bills found for the suspense PnL 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.

Next

Post a transaction covers the staging and posting rhythm this fits into. Hold matches is the other pairing tool, for the two legs of a swap or bridge.

Crypto accounting, finally automated.