Sign up today for free — no credit card down.Get started
    All articles
    20 min read

    Bill vs Expense in QuickBooks Online and Xero: Which One to Record, and When

    Every vendor document that reaches your books has to become something: a bill, an expense, a check, a credit. Pick the wrong one and the books still balance, which is exactly why the mistake survives. It shows up weeks later as a vendor balance nobody recognizes, a payment with nothing to match it to, or a cost counted twice in the same month.

    The whole difference between a bill and an expense is timing. A bill is money you owe and will pay later. An expense is money that has already left your bank account or card. QuickBooks Online adds a third form, the check, for money that left by paper check. Xero uses different names for the same ideas: a bill is a Bill, and money that has already left is Spend Money.

    A bill and an expense on one time axis. The bill waits in accounts payable until it is paid, and only then does the bank balance drop. The expense is paid and recorded on the same day.

    This guide covers the whole decision, in both systems. It explains what each form does to your books, where a check fits, how the QuickBooks Online forms map onto Xero, how to read a document and tell which one it is, what goes wrong when the wrong form is used, and how to fix it once it has happened. There is a short section on the related question of whether an invoice and a bill are the same thing, and a closing section on recording all of this automatically.

    If you only need the rule, it fits in one sentence: if the money has already left, record an expense (Spend Money in Xero); if it has not, record a bill. The rest of the guide is about the documents that make that sentence harder to apply than it sounds, and about what to do when an entry went in the wrong way.

    What you'll learn in this article

    Skim for the section you need, or read it through once.


    What is the difference between a bill and an expense in QuickBooks?

    A bill records a vendor invoice you will pay later. It carries terms and a due date, and it sits in accounts payable until you record a payment with Pay bills. An expense records something already paid by card, cash or electronic transfer. It posts straight to the bank or card account you paid from and never touches accounts payable.

    The question is always whether the money has left yet.

    Where each form lands. A bill raises accounts payable and records the cost, and the bank balance does not move until it is paid. An expense lowers the bank or card account and records the cost at the same time, and accounts payable never moves.

    Intuit's own help article on the differences between bills, checks and expenses puts it the same way. You enter a bill for a transaction you will pay in the future, which is what keeps accounts payable reporting accurate. You use a check or an expense for something paid on the spot, and those forms record the cost and the payment at the same time.

    The forms ask for different things, and the fields are a good reminder of what each one is for.

    • Bill. Vendor, terms, bill date, due date and a bill number, then the category or item lines. The terms and the due date are the point of the form: they are how QuickBooks knows when the money is owed.
    • Expense. Payee, payment account, payment date and payment method, then the lines. The payment account is the bank or credit card the money came out of, and the payment date is when it left.

    Each form describes a different moment. A bill describes a promise to pay, and it needs a second transaction later, the bill payment, to describe the payment itself. An expense describes a payment that has already happened, so it is complete the moment you save it.

    That difference is visible across QuickBooks Online. Open bills appear on the A/P Aging report and the Unpaid Bills report, and they show in the vendor's balance until they are paid. An expense never appears on either report, because nothing is owed. It shows up in the register of the bank or card account it was paid from, where it should line up with a real line on the statement. When those two views disagree with reality, when the A/P Aging report lists bills you know are paid, or the bank register has payments you cannot place, the cause is very often a bill and an expense that were used the wrong way round.

    There is also a matter of timing in the profit and loss report. On the accrual basis, a bill's cost lands on the bill date, even though the money leaves later. On the cash basis, the same cost lands when the bill is paid. An expense is paid and recorded on the same day, so both bases show it on that date. This is why the choice matters most at month end, and we return to it in the section on what goes wrong.

    One practical note for anyone who works in QuickBooks Online every day: the "+ New" menu lists Bill, Expense and Check as separate items under Vendors. They are separate because they record separate events, and the menu is the first place the choice gets made. Picking the form is the decision; the fields just follow from it.

    Where does a check fit in QuickBooks Online?

    A check records a payment made by paper check from a bank account, and like an expense it is immediate. Use Write check for something paid on the spot. To pay a bill you already entered, use Pay bills with the check as the payment method. Writing a new check for a bill that is already open leaves the bill unpaid and counts the cost twice.

    A check is an expense with a check number.

    One vendor document and three QuickBooks Online forms. A bill for money owed later, paid through Pay bills and held in accounts payable. An expense for money already paid by card, cash or transfer. A check for money already paid by paper check from a bank account.

    Intuit's guidance is that the Check form is the one to use when you need to print a check to send to the vendor, and the Expense form is for card and electronic payments. Both record the cost and the payment together. The practical difference is the check number, which the Check form carries and can print, and which makes the payment easy to find when it clears the bank weeks later. Intuit also notes that you can type EFT into the check number field when you pay electronically, which some bookkeepers use to keep every outgoing payment in one place.

    The trap with checks is the habit of writing one for an invoice that was already entered as a bill. Intuit is direct about it: do not use a check or an expense to pay an existing bill, because the bill can still appear unpaid on your reports and the vendor balance will not go down. The cost is then in the books twice, once on the bill and once on the check, and the bill sits in accounts payable looking overdue.

    It happens for understandable reasons. The person who writes the checks is often not the person who entered the bills. They see an invoice on the desk, write the check, and record it the way they record every other check. Or the check was written by hand from a checkbook, and whoever enters it later does not look for an open bill first. A simple routine prevents it:

    • If the invoice was entered as a bill, pay it from Pay bills, choose the bank account, and set the payment method to check. QuickBooks can still print the check from there.
    • If the invoice was never entered, and you are paying it on the spot, a Check on its own is correct, and there is no bill to close.
    • Before writing any check to a vendor, look at that vendor's open bills. If there is one for the same amount, pay that bill instead.

    Hand-written checks deserve their own habit. Record them the same day they are written, with the check number, even if the check was for a bill. Waiting until the check clears means relying on memory to find the bill it paid, and that is where the duplicates come from.

    The same logic applies to card payments made against a bill. Paying a vendor's invoice by card after it was entered as a bill is still a bill payment, recorded through Pay bills with the credit card as the payment account. It should not become a new expense.

    What is the Xero equivalent of a bill and an expense?

    In Xero a bill is a Bill, found under Bills to pay, and it moves from draft to awaiting approval to awaiting payment until a payment is recorded against it. Money that has already left is a Spend Money transaction on the bank account it came from. There is no separate check form: a check payment is recorded as Spend Money or as a payment on the bill.

    Same decision, different names.

    QuickBooks Online and Xero side by side. Bill maps to a Xero bill under Bills to pay. Expense maps to Spend Money. Check maps to Spend Money or a bill payment. Pay bills maps to a payment on the bill. Vendor credit maps to credit note. Vendor maps to contact.

    The logic carries over from QuickBooks Online without change. A bill in Xero is money owed, with a due date, and it counts toward what you owe suppliers until it is paid. Spend Money is money that has already gone, entered against the bank account it came out of, and Xero's help center describes creating a spend money transaction from the bank account's menu. The differences are in the vocabulary and in the steps around the bill.

    Approval states. A Xero bill moves through set states. You can save it as a draft, submit it for approval, or approve it. A draft or awaiting approval bill does not yet count as money owed in the way an approved one does, and you cannot record a payment against it until it is approved and awaiting payment. QuickBooks Online can add approval steps too, depending on the subscription. Intuit's help article on bill approval and payment release workflows says QuickBooks Bill Pay Elite customers can add a bill approval workflow, and that Bill Pay Elite or QuickBooks Online Advanced customers can create a bill payments approval workflow. Bills pending approval are listed under an Approval Status column on the Unpaid tab of the Bills page. Which plans include these workflows can change, so check Intuit's article against your own subscription.

    Paying a bill. In Xero you record the payment on the bill itself, with the date, the amount and the bank account it was paid from. That is the equivalent of Pay bills. As in QuickBooks, a second Spend Money transaction for the same payment would count the cost twice.

    Checks. Xero has no Check form of the kind QuickBooks Online has. A payment made by check is recorded as Spend Money, or as a payment on the bill if one exists, with the check number in the Reference field. Xero's help center covers recording check numbers this way, so the check can be matched to the statement line when it clears.

    Contacts and account codes. Xero calls a vendor a contact, and the same contact can be both a customer and a supplier. Its chart of accounts uses codes, and each line on a bill or Spend Money transaction is coded to one.

    One confusion is worth naming directly, because it catches people moving between the two systems. Xero's Expenses feature and QuickBooks Online's Expense form share a name and do different jobs. In Xero, Expenses is the tool for expense claims, where staff are reimbursed for business purchases they paid for with their own money. A company card purchase or a direct debit from the business account belongs in Spend Money. Recording company spending as expense claims produces a list of amounts owed to employees that nobody owes.

    If you keep books in both systems, the easiest way to stay straight is to translate everything into the timing question first. Money owed is a bill in both. Money gone is Expense or Check in QuickBooks Online, and Spend Money in Xero.

    How do you decide whether a document is a bill or an expense?

    Ask whether the money has already left. If it has, record an expense (Spend Money in Xero), whatever the document calls itself. If it has not, record a bill. The document usually tells you: a due date, terms such as Net 30, or an "amount due" line mean a bill. "Paid", a card type with the last four digits, or "thank you for your payment" mean an expense.

    The title at the top of the page matters less than you would think.

    A decision tree. Has the money left? If no, record a bill, shown by a due date, terms such as Net 30, or an amount due line. If yes and it was paid by paper check, record a Check in QuickBooks Online or Spend Money in Xero. Otherwise record an Expense in QuickBooks Online or Spend Money in Xero.

    Plenty of vendors title every document "Invoice", whether it asks for payment or confirms one. A software subscription emails an "invoice" the moment your card is charged. A supplier on autopay sends an "invoice" that says, in small print near the bottom, that the balance was collected from the card on file. Those are receipts in everything but name. Record them as expenses, because the money has gone.

    The reverse happens too, though less often. A document titled "Receipt" that shows a balance still due is a bill. A "statement" is usually neither: it summarizes invoices you should already have, and recording it as well would duplicate them.

    Most documents settle the question in a few seconds if you know where to look:

    • Signs of a bill. A due date. Payment terms such as Net 15, Net 30 or "due on receipt". An "amount due" or "balance due" line. Remittance instructions, such as bank details or a mailing address for checks.
    • Signs of an expense. The word "Paid" or "Payment received". A card brand with the last four digits. "Thank you for your payment". A zero balance due. An order confirmation from a store or a website.

    Then there are the documents that are neither, and the gray areas in between.

    Quotes, estimates and purchase orders. These describe a purchase that has not happened yet. Record nothing. A bill for a quote puts money in accounts payable that nobody owes, and it will sit there until someone notices.

    Deposits and partial payments. If you paid a deposit and the rest is due later, the document describes both. The usual approach is to enter the full bill when the invoice arrives and record the deposit as a payment against it, so the bill shows the balance still owed. If the deposit was paid before any invoice existed, your accountant may prefer to hold it as a prepayment or a vendor credit. That is a judgment call worth asking about once and then applying the same way every time.

    Subscriptions and recurring charges. A recurring charge to a card is an expense each month, even though the vendor calls each email an invoice. A recurring invoice that you pay by transfer after it arrives is a bill each month. What decides it is still whether the money has already moved when the document arrives.

    Documents that arrive by email. Most of these decisions now start in an inbox, which is where the "invoice that was really a receipt" mix-up is most common. Our guide to getting emailed invoices from Gmail into QuickBooks covers how QuickBooks' own forwarding address treats bills and receipts, and why an emailed invoice sometimes lands as a receipt.

    If you still cannot tell, do not guess. A short note to the vendor, or a look at the bank or card statement for a matching payment, answers it. Guessing is how both of the errors in the next section begin.

    What goes wrong if you record the wrong one?

    A bill recorded as an expense hides money you still owe, so accounts payable looks lighter and nothing reminds you of the due date. An expense recorded as a bill looks unpaid and can be paid a second time. The most common error is entering a bill and then recording its payment as a new expense, which counts the cost twice and leaves the bill open.

    All three errors keep the books in balance, which is why they last.

    Three ways it goes wrong. An unpaid invoice entered as an expense understates accounts payable. A paid receipt entered as a bill overstates accounts payable and can be paid again. A bill whose payment is entered as a new expense counts the cost twice and leaves the bill open.

    Each error leaves a signature you can look for.

    An unpaid invoice entered as an expense. The books say the money has gone when it has not. Accounts payable is understated, so the balance sheet shows you owing less than you do. The expense sits in the bank register with no matching line on the statement, and it will never match, because the real payment happens later and gets entered again. By then the cost is in the books twice. Meanwhile nothing in the system knows the invoice has a due date, so late fees and awkward vendor calls follow.

    A paid receipt entered as a bill. The books say you owe money you already paid. The bill turns up on the A/P Aging report and the Unpaid Bills report, aging quietly into the 60 and 90 day columns. Whoever runs payments sees an open bill and pays it. The vendor may refund the second payment, or credit it against a future invoice, or never notice. Either way, someone spends time on it.

    A bill, then its payment entered as a new expense. This is the most common of the three. The bill is correct and the payment really happened, but the payment was recorded as a fresh expense or check instead of through Pay bills (or a payment on the bill in Xero). The profit and loss report shows the cost twice. The bill stays open in accounts payable. The vendor balance shows money owed that has been paid. Intuit's help article warns about exactly this.

    How it shows up, in practice:

    • A/P Aging with old open bills for vendors you know you have paid.
    • A profit and loss report that looks too high in a category where one vendor dominates, such as rent or a big supplier.
    • A payment in the bank register with nothing to match it to, or a statement line that seems to match two transactions.
    • A vendor balance that disagrees with the vendor's own statement.

    Cash versus accrual. The wrong form also moves costs between months. On the accrual basis, a bill's cost lands on the bill date and an expense's cost lands on the payment date. An invoice dated June 28 and paid on July 15 belongs in June on the accrual basis. Enter it as an expense on the payment date and the cost moves to July. At month end that is the difference between a June that looks profitable and a July that looks worse than it was. Businesses that report on the cash basis see the payment date either way, but their accountant may still prepare accrual figures for the year end, and the difference comes back then.

    Each entry is small on its own. The slow build of them across a year is what makes a close painful, which is why our guide to the month-end close process puts reviewing open payables near the top of the checklist.

    How do you fix a bill that should have been an expense, or the reverse?

    QuickBooks Online has no button that converts one form into the other. To fix a bill for something already paid, record a bill payment against it dated when the money left, so the bill closes and the payment matches your bank. For an expense that was really owed, delete or void it and enter a bill. Xero works the same way with bills and Spend Money.

    Every fix is a small version of one move: make the books tell the true story of when the money left.

    Before and after the fix. Before: an open bill for 480 dollars plus a separate 480 dollar expense for the same payment, so the cost counts twice and the bill still shows as owed. After: the duplicate expense is removed and a bill payment dated when the money left closes the bill.

    That there is no conversion is a common surprise. The Intuit community thread Can you convert a bill to an expense? gets the same answer every time it is asked: you remove the wrong transaction and record the right one. The steps depend on which error you are fixing.

    In QuickBooks Online:

    1. A bill that was already paid, with no other record of the payment. Open Pay bills, select the bill, and record the payment from the bank or card account it was paid from, dated the day the money actually left. The bill closes and the payment lines up with the statement.
    2. A bill plus a duplicate expense or check for the same payment. Delete or void the duplicate expense or check, then record the payment through Pay bills as above. If the duplicate was already reconciled, speak to whoever reconciles the account first, because removing it will change a reconciled balance. The community threads also describe changing the expense's category to Accounts Payable so it becomes a credit you can apply to the bill; that works, but it is harder to follow later, so the plainer fix is usually better.
    3. An expense that should have been a bill (the money has not actually left). Delete or void the expense, then enter a bill with the vendor's terms and due date. Void keeps a zero-value record with its history; delete removes it. Either is fine for a simple mistake, and your accountant may prefer one.
    4. A bill for a paid receipt. Delete the bill, then record the expense (or match the receipt to the payment already in your books).

    In Xero:

    1. A bill that was already paid. Approve the bill if it is still a draft or awaiting approval, then record the payment on it, dated when the money left and from the account it was paid from.
    2. A bill plus a duplicate Spend Money transaction. Remove the Spend Money transaction (if it has been reconciled, it has to be unreconciled first), then record the payment on the bill.
    3. Spend Money that should have been a bill. Remove the Spend Money transaction and enter a bill.
    4. A bill for a paid receipt. A draft or awaiting approval bill can be deleted. An approved bill with no payments is voided instead. Then record Spend Money if nothing else records the payment.

    Closed periods. If the wrong entry falls in a month that has already been closed, with a closing date in QuickBooks Online or a lock date in Xero, check with your accountant before you change it. Editing a closed period changes numbers that may already have been reported or filed. Often the right fix is a correcting entry in the current month instead.

    Is an invoice the same as a bill?

    They are the same document seen from opposite sides. The business that sells writes an invoice, and it is money owed to them in accounts receivable. The business that buys receives that invoice and records it as a bill, money it owes in accounts payable. A receipt is proof that a payment already happened.

    One piece of paper, two sets of books.

    One document seen from two sides. The seller calls it an invoice, money owed to them in accounts receivable. The buyer records it as a bill, money it owes in accounts payable. After the buyer pays, a receipt is proof that the payment happened.

    This is why both QuickBooks Online and Xero call a received invoice a bill. Inside your own books, "invoice" is reserved for the ones you send to customers. Those live in accounts receivable, the money coming in, and they are created from the sales side of the software. A vendor's invoice is recorded on the purchases side as a bill, in accounts payable, the money going out. Keeping the two words apart inside the software avoids mixing up money in and money out, which would be a much worse error than any in this guide.

    In everyday speech the words blur. Your supplier's email says "Invoice #4471 attached", your team calls it an invoice, and nobody is wrong. The distinction only matters at the moment of recording: a document that asks you for money becomes a bill, and a document you send asking someone else for money is an invoice.

    A receipt is the third piece. It is issued after payment, by the seller or by whatever took the payment, such as a card terminal or an online checkout. It proves the money moved. That is why a receipt, when it is the only document, becomes an expense (or Spend Money), and why a receipt for a bill you already entered does not become anything new. It gets attached to the bill payment as evidence, and nothing else changes.

    Credit memos fit into the same picture. A vendor's credit memo reduces what you owe, usually after a return or a billing mistake. In QuickBooks Online it is recorded as a vendor credit, which you apply against a bill the next time you pay that vendor. In Xero it is a credit note on the supplier's contact, which you allocate against a bill. Recording a credit memo as a negative expense is a common shortcut, and it hides the credit from the vendor's balance, so it is better avoided.

    For a fuller picture of how bills move through a business, from the moment a purchase is approved until the payment is filed, see our guide to the accounts payable process.

    How can bills and expenses be recorded automatically?

    DocStreamAI watches connected Gmail and Outlook inboxes and a forwarding address, and sorts each document into an invoice, a receipt, a credit memo or other. A vendor invoice becomes an open bill in QuickBooks Online or a draft bill in Xero, waiting for your approval, with a due date worked out from the written terms. A receipt is attached to the matching transaction already in your books, or recorded as an expense in QuickBooks Online or Spend Money in Xero.

    You choose how much waits for review.

    Where each document ends up with DocStreamAI. A vendor invoice becomes an open bill in QuickBooks Online or a draft bill in Xero, waiting for your approval. A receipt is attached to the matching transaction, or becomes an expense in QuickBooks Online or Spend Money in Xero. A credit memo becomes a vendor credit or a draft credit note.

    The bill vs expense decision in this guide is the decision DocStreamAI makes for each document that arrives, following the same rule: something owed becomes a bill, and something already paid is matched to its payment or recorded as one. The problem it takes on is the one that makes the decision hard in practice. Documents arrive scattered across several inboxes, the "invoice" that was really a card charge is buried in a thread, and at month end someone spends hours finding the paperwork behind each line.

    What happens to each kind of document:

    • Vendor invoices become bills. In QuickBooks Online the bill posts open in accounts payable, unpaid and waiting to be paid. In Xero it is created as a draft in Bills to pay, waiting for your approval. The vendor is matched to one already in your books, each line is coded to an account from your chart of accounts, the written payment terms and the invoice date are turned into a dated due date, and the original invoice is attached.
    • Receipts are not treated as bills, because nothing is owed. Where a transaction already in your books matches on merchant, amount and date, the receipt is attached to it and nothing new is created. Where nothing matches, it can be recorded as an expense in QuickBooks Online or Spend Money in Xero against the account it was paid from, with the receipt attached, or it can wait for you, depending on your setting.
    • Credit memos become a vendor credit in QuickBooks Online, which you choose to apply to a bill when you next pay that vendor, or a draft credit note in Xero.

    Some documents always wait for a person. An invoice with no due date is held, because it is usually a quote or purchase order that should not be a bill at all. Documents that look like a duplicate of one already processed are held too, so the same invoice arriving twice does not become two bills.

    How much goes through without you is a per-provider setting with three positions. In manual, everything waits for your review. In hybrid, where a new connection starts, bills and credit memos from vendors already in your books go through on their own, and new vendors wait. In automatic, new vendors go through too. Receipts that match nothing have their own setting. In manual, where it starts, they wait and you create the expense yourself. In hybrid, the expense (Spend Money in Xero) is created on its own when the merchant is already in your books and the paying account can be worked out. In automatic, it is created as soon as nothing matches.

    DocStreamAI does not pay bills or move money. It records the bill or expense with the document attached, and you pay it however you already do. The walk-throughs for QuickBooks Online and Xero show each path with drawings, and our guide to emailed invoice automation covers the wider picture. For receipts specifically, the QuickBooks receipt scanner guide explains matching before creating, and our guide to paperless bookkeeping covers why the document belongs attached to the record. If you are comparing tools, the invoice automation software comparison sets out the options. If you want to try it on your own inbox, what your first week looks like covers the settings to use while you watch it work.

    The short version

    Four rules cover almost every document you will record in QuickBooks Online or Xero.

    The short version. Money has left: an Expense, or a Check for a paper check, in QuickBooks Online, and Spend Money in Xero. Money is owed: a Bill in both. Paying a bill already entered: Pay bills in QuickBooks Online and a payment on the bill in Xero. A vendor gives you credit: a vendor credit in QuickBooks Online and a credit note in Xero.

    • The money has left. Record an Expense in QuickBooks Online, or a Check if it was a paper check. In Xero, record Spend Money on the account it came from.
    • The money is owed. Record a Bill in both, with the vendor's terms and due date.
    • You are paying a bill you already entered. Use Pay bills in QuickBooks Online, or record the payment on the bill in Xero. Never record it as a new expense or check.
    • A vendor gives you credit. Record a vendor credit in QuickBooks Online or a credit note in Xero, and apply it against a bill.

    When a document is ambiguous, look for a due date or an amount due, and for "paid" or a card's last four digits. When an entry went in the wrong way, there is no conversion: remove the wrong one and record the right one, dated when the money actually left. And when the period is already closed, ask your accountant before changing anything.

    See DocStreamAI on your own documents

    Book a demo and we'll walk through how your invoices and receipts would be captured, extracted and posted to QuickBooks or Xero, using your setup rather than a sample file.

    Or start a free 14-day trial instead.