Glossary

QuickBooks Sales Receipt

A QuickBooks sales receipt is the record for a sale where payment arrived at the same moment as the sale, so no receivable is ever created and one document closes the transaction.

Also called: sales receipt, QBO sales receipt, sales receipt vs invoice

Definition

A sales receipt is what you record when the sale and the payment are the same event. There was never a moment when the customer owed you money, so there is nothing for Accounts Receivable to hold, and one document closes the whole transaction.

Intuit draws the line by timing: a sales receipt "records goods or services paid for immediately at the time of purchase (sometimes referred to as a 'point of sale' purchase)," while an invoice "informs your customers of what they owe you for work items, goods, or services." An invoice opens a receivable and a later payment closes it. A sales receipt never opens one.

That distinction is easy to state and easy to get wrong in practice, because the confusion is rarely about what happened. It is about what you send. Plenty of businesses email a document that looks like a receipt after a card payment and then record an invoice in QuickBooks out of habit, or record both. Recording both for one sale counts the revenue twice and leaves a receivable that will never be paid, because the money already arrived.

Key points

  • +Used when the customer pays immediately. An invoice is for customers who pay later.
  • +Creates no Accounts Receivable, which is the difference that actually matters.
  • +One document instead of two: no separate Receive Payment step.
  • +The deposit-to field decides whether the money lands in a bank account or waits in a holding account.
  • +Line items carry the income accounts, so product and service mapping is what makes revenue land correctly.
  • +Recording both an invoice and a sales receipt for one sale double-counts the revenue.

Sales receipt or invoice: the receivable is the test

The test is not whether you sent the customer a document. It is whether a receivable ever existed.

If your customer could have walked away owing you money, even for an hour, the sale is an invoice. QuickBooks opens Accounts Receivable, and a separate Receive Payment closes it later. Two documents, and the gap between them is the receivable.

If money and goods changed hands together, the sale is a sales receipt. One document, no receivable, no second step.

Card payments almost always fall on the sales receipt side, which is why a QuickBooks file connected to Stripe fills up with them. The customer authorized and paid in the same instant. There was no credit extended, and creating an invoice to represent that sale invents a receivable that never existed, then requires a second document to clear it.

The exception worth knowing is Stripe Billing. When you send a Stripe invoice with payment terms, a receivable genuinely does exist between issue and payment, and the QuickBooks record should be an invoice with a payment applied against it. The rule holds; it is the underlying facts that changed.

What a sales receipt actually posts

A sales receipt makes two things happen at once, which is why it replaces two documents.

The line items credit income. Each line points at a product or service item, and that item is what carries the QuickBooks income account. Get the item mapping wrong and the revenue lands in the wrong account, which is a reporting problem rather than a balance problem, and one that tends to go unnoticed until someone reads the profit and loss.

The total debits whatever you named in the deposit-to field. That single field decides whether the money is treated as already in your bank or as waiting in a holding account, and for a payment processor workflow it is the most consequential choice on the form. Sending it to Undeposited Funds parks the payment until a deposit sweeps it up alongside the others in the same batch. Sending it straight to a bank account asserts the money is already there.

Sales tax, if the line items are taxable, posts to a liability account rather than to income, because it is money you are holding for someone else.

None of this is unusual accounting. What makes it worth spelling out is that the deposit-to account is the field most often left on its default, and in a Stripe workflow the default is almost never the right answer.

Why Stripe sales are nearly all sales receipts

Stripe deposits net. Your books need gross.

A one hundred dollar sale that costs three dollars and twenty cents in processing does not arrive as one hundred dollars. It contributes ninety six dollars and eighty cents to your Stripe balance, and eventually to a payout that batches it with everything else. But the sale was one hundred dollars, and the three dollars and twenty cents is a business expense you are entitled to deduct.

A sales receipt written for ninety six dollars and eighty cents understates revenue and loses the fee entirely. It also, over a year, quietly misstates your tax position in both directions at once.

So a Stripe sales receipt has to carry more than the sale. It needs the gross amount as revenue, the fee as an expense, and a deposit-to account that reflects where the money actually is, which at the moment of the charge is Stripe rather than your bank. Getting all three right by hand, per charge, is the work that a sync tool exists to remove.

The second thing Stripe changes is volume. A sales receipt is a per-sale document, and per-sale documents are fine at ten sales a day and unmanageable at a thousand. That is why the alternative of summarizing a day into one aggregated record exists at all, and the tradeoff between the two is a real decision rather than a preference.

How Acodei writes sales receipts

A successful Stripe charge becomes a QuickBooks Sales Receipt by default. That is the standard real-time path: `charge.succeeded` or `charge.captured` arrives, and Acodei writes an itemized sales record deposited into your holding account.

Two settings change the record type, and one of them is commonly misunderstood. The choice between writing a Sales Receipt and writing a standalone Payment is made from your account settings, not from whether the charge happens to have an invoice attached. With Sales as Payment enabled, or where a client-specific payment rule applies, the charge posts as a Payment against the customer that is deliberately not linked to any invoice.

The invoice case is separate and takes a different route. When a charge belongs to a Stripe invoice that Acodei has already synced, it books a Payment Receipt against that QuickBooks invoice rather than a Sales Receipt, and the Stripe fee posts as its own expense. If Stripe backfills the link between charge and invoice after the original webhook arrived, the charge can be promoted to an invoice payment mid-job rather than being stranded as a receipt.

Everything above describes real-time accounts. On a daily summary account there is no per-charge record at all: the day is aggregated into a single receipt, which is a genuine fork in how your books read rather than a detail.

On the receipt itself:

Line items come from Product Mapping, or Multiple Product Mapping where it is enabled, with each Stripe line resolving to a mapped QuickBooks product and unmapped lines falling back to your default product.

The deposit account is always the resolved holding account for that transaction's Stripe account and currency, never a hard-coded bank account.

The Stripe fee is recorded by default as a negative line using your mapped Stripe fee product, which nets the receipt down to what actually entered your Stripe balance. Under fee-as-expense configurations the fee instead posts as a separate expense and the receipt stays gross.

Before writing anything, the mapped fee product is validated, and the job fails with an actionable message rather than writing a bad record. There are three cases: no fee product mapped, a product with no income or expense account attached, and a product that no longer exists in QuickBooks. The check retries up to three attempts before recording the failure as final.

The audit trail lives in the private note, which records the original charge amount and the Stripe fee. With Duplicate Protection enabled, the QuickBooks document number is set to the Acodei transaction id, so a webhook Stripe delivers twice collides instead of creating a second receipt. Worth being precise about the scope: this tracks what Acodei synced. It does not inspect records you or your bookkeeper entered by hand, so a duplicate between a hand-keyed sale and a synced one is still possible.

Currency is set on the record, and where Invoice Multicurrency is enabled, so is the exchange rate. Refunds do not edit the original receipt; they produce a Refund Receipt drawing from the same holding account, with lines mirroring what was refunded.

Want to see this on your own Stripe data?

Start a free trial

Frequently asked questions

What is a sales receipt in QuickBooks?

It is the record for a sale that was paid for at the time of purchase. Intuit describes it as recording "goods or services paid for immediately at the time of purchase," which is why it creates no Accounts Receivable and needs no follow-up payment entry.

What is the difference between a sales receipt and an invoice?

Timing, and whether a receivable exists. An invoice tells a customer what they owe and opens Accounts Receivable until a separate payment closes it. A sales receipt records a sale that was already paid, in one document, with no receivable in between.

Should Stripe charges be sales receipts or invoices in QuickBooks?

Ordinary Stripe charges are sales receipts, because the customer paid at the moment of sale and never owed you anything. The exception is Stripe Billing invoices sent with payment terms, where a real receivable exists between issue and payment and the QuickBooks record should be an invoice with a payment applied to it.

What account should a Stripe sales receipt be deposited to?

Not your bank account, because at the moment of the charge the money is with Stripe rather than your bank. It should be deposited to whichever holding account represents your Stripe balance, either Undeposited Funds or a regular asset clearing account, so that the later payout is what moves it into the bank.

Should a Stripe sales receipt be for the gross or the net amount?

Gross, with the processing fee recorded as an expense. Writing the receipt for the net amount that Stripe actually deposited understates revenue and loses the fee deduction entirely. The sale and the cost of accepting it are two separate facts, and your profit and loss needs both.

Can I convert a sales receipt to an invoice in QuickBooks?

There is no conversion. If the record type is wrong, you delete the sales receipt and create an invoice and a payment in its place. That is a good reason to get the distinction right the first time, particularly for synced transactions where the volume makes cleanup expensive.

What customers say about running Stripe through Acodei

Stripe Verified Partner BadgeQuickBooks Intuit Badge
If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.
RyanOwner at Indie Music Academy
Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.
AndresCo-founder and CEO at Kanguro Collections and Reinsurance

Ready to try Acodei?

Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.