Omit the expense first, then push. And if you need to push the same report again, ExpenseBot only sends the rows that have not already reached your accounting package.
Keep an expense out of QuickBooks
- Open Review Expenses (from your dashboard, or the review link on a report).
- Find the row you do not want exported.
- Choose Omit.
- Push the report to QuickBooks as usual.
The push reads your omit list at the moment you push — not at the moment the report was created. So omitting an expense after you have already built a report still keeps it out of QuickBooks. Reports themselves stay as they were, because a report is a snapshot of what you had that day.
This is the common invoice-plus-receipt case: a vendor emails an invoice, then emails a paid receipt for the same amount. Both are real documents and both are worth keeping in your sheet, but only one belongs in your books. Omit the one you do not want to claim and push; QuickBooks receives a single entry.
If ExpenseBot cannot read your omit list for any reason, the push stops and nothing is exported. You will see a message asking you to retry in a minute. That is deliberate: sending an expense you asked us to leave out is worse than a short delay.
Omit is reversible — restore anything from the Omitted view. See How do Personal and omitted transactions affect my reports for what else omitting changes.
Push the same report again safely
Fixing a category, adding a vendor, or correcting an amount and pushing again does not duplicate what QuickBooks already has:
- Every expense ExpenseBot successfully creates in QuickBooks is recorded against that specific QuickBooks company.
- On the next push, those rows are skipped and only the remaining rows are sent. The response tells you how many were skipped.
- If a push fails partway through, the entries that were already created are still recorded — retrying sends only what is left, not the whole report.
Two cases where ExpenseBot asks you first instead of deciding for you:
- You switch export type. Expenses already sent to that company as Purchases will not be re-sent as Bills unless you confirm, because that would put the same expense in the books twice.
- We cannot tell where an older push went. For a small number of reports pushed before this tracking existed, ExpenseBot will ask "push anyway?" rather than guess.
Connecting a different QuickBooks company is never blocked — a push to a new company is a legitimately new destination and goes through in full.
Xero, Wave and FreeAgent
Xero works the same way, per Xero organisation and per share type (bill, spend money, manual journal). FreeAgent honours omitted expenses on every push.
Wave creates one money transaction per report rather than one entry per row, so re-pushing a submitted report asks you to confirm before it creates a second transaction there.
If duplicates already exist in QuickBooks
ExpenseBot cannot remove entries you or someone else created directly in QuickBooks — delete those in QuickBooks. Then omit the copy you do not want in ExpenseBot so future reports and pushes stay clean.
