Glossary
QuickBooks Sales by Customer Report
Sales by Customer is a pair of QuickBooks reports, a Summary and a Detail, that group your sales by the customer on each sales form, so you can see what each customer bought and which transactions put them there.
Also called: Sales by Customer Summary, Sales by Customer Detail, sales by customer report, customer sales report
14-day free trial · card required · cancel anytime
Definition
The Summary gives one total per customer. A QuickBooks Team reply on Intuit’s community forum puts it simply: it "tells us what the total sales for each customer" are. The Detail goes a level down. Intuit’s help article on sales reports says it "lists each invoice line item grouped by customer," and that it "also shows the description for each line item."
The key word is customer, meaning the customer record chosen on each sales receipt or invoice. The report does not know who paid in Stripe. It only knows which QuickBooks customer the sale was written to. If a sync wrote one buyer to three records, the report shows three rows, and if it wrote every sale to one record, the report shows one.
That makes it the customer-side companion to Sales by Product/Service. Where that report shows which items your Stripe revenue landed on, this one shows which customer records it landed on, and it is the quickest place to see near-duplicate customers, placeholder names and per-currency records side by side.
Key points
- +There are two versions: the Summary totals each customer, and the Detail lists the line items behind each total.
- +The report groups sales by the QuickBooks customer on each sales form, not by who paid in Stripe.
- +Intuit says the Detail version is available in QuickBooks Online Essentials, Plus and Advanced; Simple Start runs the Summary.
- +Income by Customer Summary is a different report: a QuickBooks Team reply says it shows gross profit per customer rather than sales.
- +On a Stripe file, near-identical names, placeholder names and names ending in a currency code each point to a specific cause.
- +A daily summary posts one sales receipt per day and currency, so per-buyer questions belong in Stripe rather than this report.
Summary versus Detail
Run the Summary first. It shows one row per customer for the date range, with total sales against each. It answers "how much did each customer record buy?"
Open the Detail when a row looks wrong. Intuit’s instructions are to go to Reports, then Standard reports, and type Sales by Customer Detail in the search box. Each customer then expands into the line items that make up their total, with the product or service and the description from each line. Intuit adds that the Memo column can be added through Customize.
Plan matters here. Intuit says "Sales by Customer Detail is available in QuickBooks Online Essentials, Plus, and Advanced," and that "On QuickBooks Online Simple Start, run Sales by Customer Summary instead," because "the summary version doesn’t show line item details."
Do not confuse it with Income by Customer Summary. A QuickBooks Team reply explains that report "shows us the gross profit from each customer," meaning sales less cost of goods sold. For a business selling subscriptions or services with no inventory, the two can look nearly the same, but only Sales by Customer is a pure sales total.
Reading the customer list a Stripe sync left behind
Run the Summary for a quarter and sort it by name. On a file fed by Stripe, four patterns are worth knowing, because each one has a different cause.
Near-identical names, such as "Acme Inc" and "Acme, Inc.", usually mean the name was typed differently in two places. When a sync matches customers by exact name, a comma or an extra space is enough to make a second record.
A name with a suffix, such as "Acme - CAD", is a currency record. QuickBooks fixes one currency per customer once Multicurrency is on, so a buyer who pays in two currencies needs two customer records. That is how QuickBooks is built, not a sync error.
Placeholder names, such as an email address, a generic default name or Unnamed Customer, mean the Stripe payment arrived without a customer name.
A name ending in -C exists because QuickBooks does not allow a customer and a vendor to share a name.
In every case, use the Detail to see which sales sit on each record before you change anything, and fix the source of a duplicate, usually the name in Stripe, rather than cleaning up the same pair every month.
Daily summary receipts versus one receipt per sale
How useful this report is for per-buyer questions depends on how your sales were written.
If each Stripe charge becomes its own sales receipt or invoice for the buyer’s customer record, the report is a true sales-by-buyer view. A customer’s row is their purchases, and the Detail lists each one.
If sales are posted as a daily summary, each day’s sales arrive on one receipt rather than one per buyer, so the report shows that day’s total against the summary receipt’s customer, not against the people who paid. The total for the period is still right. The split by buyer simply is not in QuickBooks, so answer "how much did this customer spend?" from Stripe’s own customer view instead.
If you need both, a compact file and real customer totals, that is a trade-off to decide when you choose the sync method, not something this report can recover afterwards.
How Acodei picks the customer on each sales form
When Acodei syncs a Stripe transaction, it first takes the customer name from the Stripe Customer’s name, then from the charge’s billing details name. It then looks for that exact name among customers it has already linked, and if none is found, it searches your QuickBooks customers for the same display name. The match ignores capitalization but must otherwise be character-for-character identical. If there is still no match, Acodei creates a new QuickBooks customer with the name, email and billing address available.
Once a customer is linked, Acodei keys it on the QuickBooks customer record, so renaming the customer inside QuickBooks keeps future sales on the same row of this report. Changing the name in Stripe works the other way: Acodei finds no match and creates a new QuickBooks customer, which is the most common source of near-duplicates. Acodei does not update a customer’s details after creating it, and it syncs customers flat, without sub-customers.
When a Stripe payment has no name at all, the Customer Management setting decides the fallback: create the customer from the email address, use a static default name, or leave it empty, which results in QuickBooks’ Unnamed Customer. If the name matches a vendor, Acodei appends -C to the customer name.
With Multicurrency Support, which the Acodei team enables for an account, Acodei checks whether the Stripe transaction’s currency matches the QuickBooks customer’s currency. If it does not, Acodei creates a record named in the format CustomerName - CUR, such as Acme - CAD. Those per-currency records are expected, because QuickBooks requires them.
Daily-summary accounts get no per-charge receipt. Each day’s activity in a payout, per currency, becomes one sales receipt, or a refund receipt when the day nets negative, so this report shows those sales by day rather than by Stripe buyer.
Want to see this on your own Stripe data?
Start a free trial14-day free trial · card required · cancel anytime
Frequently asked questions
What is the Sales by Customer report in QuickBooks?
It is a pair of reports. The Summary shows total sales for each customer, and the Detail lists each line item grouped by customer, with the product or service and description from each line. Both group sales by the customer record on each sales form, which makes them the best way to see which customer records your revenue was written to.
Is Sales by Customer Detail available on every QuickBooks Online plan?
No. Intuit says Sales by Customer Detail is available in QuickBooks Online Essentials, Plus and Advanced. On Simple Start, Intuit says to run Sales by Customer Summary instead, which shows totals per customer but not the line items behind them.
What is the difference between Sales by Customer Summary and Income by Customer Summary?
Sales by Customer Summary shows total sales for each customer. A QuickBooks Team reply explains that Income by Customer Summary shows gross profit for each customer instead, meaning total sales less the cost of goods sold for that customer. Without inventory costs, the two can look similar.
Why does the same Stripe customer appear twice on the report?
Usually because the name differed at some point. Acodei matches on an exact name, ignoring capitalization only, so a name changed in Stripe or typed with different punctuation creates a second record. A record ending in a currency code, such as Acme - CAD, is different: QuickBooks needs one customer per currency, so that one is expected.
Why do my Stripe sales show under an email address or Unnamed Customer?
Those sales reached Acodei without a customer name on the Stripe Customer or the charge’s billing details. The Customer Management setting then decides the fallback: the email address, a static default name, or no name, which QuickBooks shows as Unnamed Customer. Collecting a name at checkout fixes it for future sales.
Can I see sales per Stripe customer if I sync a daily summary?
Not from this report. A daily summary posts one sales receipt per day and currency rather than one per buyer, so QuickBooks holds the day’s total, not each customer’s purchases. Use Stripe’s customer view for per-buyer totals, or sync each sale individually if you need them in QuickBooks.
What customers say about running Stripe through Acodei

“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.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Related reading
- QuickBooks Sales by Product/Service Report
- Stripe Customer object
- QuickBooks Sub-Customer
- How Stripe customers are matched in QuickBooks
- Stripe multicurrency in QuickBooks
- Daily summary vs real-time sync
More glossary terms
- Undeposited Funds
- Stripe Balance Transaction
- Available vs Pending Balance
- Stripe Dispute
- Stripe Dispute Evidence
- Stripe Fee
- Stripe Balance Adjustment
- QuickBooks Credit Memo
- Stripe Tax
- QuickBooks Tax Code
- Stripe Reserve
- Stripe Tax Rate
- Stripe Fee Credit
- Stripe Credit Note
- QuickBooks Product/Service Item
- Stripe Payout
- QuickBooks Sales Receipt
- QuickBooks Bank Deposit
- QuickBooks Transfer
- Stripe Authorization Hold
- QuickBooks Refund Receipt
- QuickBooks Payment
- QuickBooks Expense
- QuickBooks Journal Entry
- Stripe Financial Account
- Holding Account
- Accounts Receivable
- Bank Feed
- Deferred Revenue
- Stripe PaymentIntent
- Stripe Checkout Session
- Stripe SetupIntent
- Stripe PaymentMethod
- Stripe Charge
- Stripe Refund
- QuickBooks Invoice
- QuickBooks Class Tracking
- QuickBooks Location Tracking
- QuickBooks Project
- QuickBooks Closing Date
- Stripe Invoice Line Item
- Stripe Proration
- Stripe Invoice Status
- Stripe Shipping Rate
- Stripe Transfer
- Stripe Mandate
- Stripe on_behalf_of
- Stripe Invoice Item
- QuickBooks Estimate
- Stripe Invoice Payment
- Stripe Invoice Payment Settings
- Stripe Billing Meter
- Stripe Invoice Template
- Stripe Price
- Stripe Subscription Schedule
- Stripe Subscription Item
- QuickBooks Recurring Transaction
- QuickBooks Sub-Customer
- QuickBooks Audit Log
- QuickBooks Bank Rule
- Stripe Subscription Status
- Stripe Mixed Interval Subscription
- Stripe Trial Settings
- QuickBooks Payment Terms
- Stripe Pending Update
- QuickBooks Tags
- QuickBooks Credit Card Credit
- QuickBooks Vendor Credit
- QuickBooks Bill
- QuickBooks Delayed Charge
- Stripe Billing Mode
- QuickBooks Billable Expense
- Stripe Customer Cash Balance
- QuickBooks Purchase Order
- QuickBooks Opening Balance
- QuickBooks Account Type
- QuickBooks Sales Tax Center
- Stripe Webhook
- Stripe Metadata
- Stripe Outbound Payment
- Stripe Received Credit
- Stripe Outbound Transfer
- Stripe Inbound Transfer
- Stripe Received Debit
- Stripe Payout Method
- Stripe Financial Account Transaction
- Stripe Financial Address
- Stripe Application Fee
- Stripe Connected Account
- Stripe Destination Charge
- Stripe Separate Charges and Transfers
- Stripe Direct Charge
- Stripe Payment Method Configuration
- Stripe Dynamic Payment Methods
- Stripe Payment Method Rules
- QuickBooks Bundle
- Stripe Account Capability
- Stripe Merchant of Record
- Stripe Data Pipeline
- Settlement Currency
- Hosted Invoice Page
- Stripe Customer
- Stripe Product
- QuickBooks Home Currency
- QuickBooks Exchange Gain or Loss
- QuickBooks Trial Balance
- QuickBooks General Ledger Report
- QuickBooks Retained Earnings
- QuickBooks Profit and Loss Report
- QuickBooks Balance Sheet Report
- QuickBooks Account Register
- QuickBooks Reclassify Transactions
- QuickBooks A/R Aging Report
- QuickBooks Sales Tax Liability Report
- QuickBooks Sales Tax Payable
- Stripe Tax Transaction
- Stripe Tax Location Report
- Stripe Tax Summarized Export
- Stripe Tax Itemized Export
- Stripe Product Tax Code
- QuickBooks Vendor
- Economic Nexus
- Reverse Charge
- Stripe Statement Descriptor
- Stripe Taxability Reason
- Stripe Tax Filing Currency
- Stripe Tax Cross-Border Goods Option
- Stripe Tax Threshold Monitoring
- QuickBooks Uncategorized Income
- QuickBooks Sales by Product/Service Report
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.
14-day free trial · card required · cancel anytime