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.
QuickBooks connected for the entity. See QuickBooks.
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.
Enable QuickBooks bills and invoices under Settings → Features. This adds the Bills & Invoices, Suppliers and Customers screens, and turns on the linking described below.

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.

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.

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:
| Row | What is created | Linked to |
|---|---|---|
| Negative value, bill selected | BillPayment, paid from the suspense account | That bill |
| Positive value, invoice selected | Payment against the customer | That 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.
| Symptom | Cause |
|---|---|
| The row stages with no picker | The contra is not your suspense account, or is a wallet contra rather than a PnL one |
| No picker anywhere, on any row | Enable QuickBooks bills and invoices is off, or the entity has no active suspense account |
| Suspense missing from the account type picker | Enable suspense matching is off. Turn it on first, then add the account |
| No bills found for the suspense PnL account | Nothing in QuickBooks is open with a non-zero balance, or the connection has expired |
| Posting refused, bills and invoices not allowed | The setting was turned off between staging and posting |
| Posting refused, no QuickBooks account id | The 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.
| When | What it does | |
|---|---|---|
| Bills and invoices | At posting time | Settles the QuickBooks document the payment relates to, so it stops showing as open |
| Suspense matching | After posting | Groups 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.