Deleting a Stripe Customer: What Happens in QuickBooks
Deleting a Stripe customer cancels subscriptions and cannot be undone. What Stripe keeps, why the QuickBooks customer stays, and what to settle first.
Someone on the team is tidying up Stripe. There are four hundred customers who have not bought anything in two years, a dozen test records with names like "asdf", and one customer who asked to be removed. The Customers page has a checkbox and a Delete button, and it is very tempting.
Before anyone clicks it, the bookkeeper should know what that button does, because it does more than clean a list. In Stripe, deleting a customer is permanent and cancels every active subscription that customer has, immediately. In QuickBooks, the customer record that holds years of invoices and payments does not go anywhere, and it should not.
Your QuickBooks customers stay intact. Acodei matches each Stripe customer to a QuickBooks customer and never rewrites that record after it is created, so housekeeping in Stripe does not reach back into your history. Start a free trial.
This post covers what Stripe actually does when a customer is deleted, what it keeps, what it cannot undo, what the same action means in QuickBooks, and a short checklist for deleting a customer without leaving a mess in either system.
What Stripe does when you delete a customer
Stripe's API reference for deleting a customer is short, and every sentence matters:
"Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer."
Three consequences sit inside those sentences.
It is permanent. There is no archive state for a Customer object and no restore. If the person comes back, they come back as a new customer with a new cus_ ID.
Subscriptions end now, not at period end. Deleting a customer is not the same as setting a subscription to cancel at the end of its period. Every active subscription on that customer is canceled the moment the customer is deleted. If you were planning to let a customer run out the month they already paid for, deleting them cuts that off.
The payment details go. Stripe says that "deleting customers removes all credit card details and prevents any further operations to be performed (such as adding a new subscription)." Whatever was saved for future charges is gone, and the customer can no longer be used to create anything new.
In the Dashboard, the same action is the checkbox next to the customer's name followed by Delete, or Actions then Delete customer on the customer's page. Stripe's customers guide lists it as a two-step action right after Edit, which is part of why it gets used as a filing tool.
What Stripe keeps
Deletion does not erase the customer's financial history. Stripe is explicit that the Customer object is the exception to the usual rule:
"Unlike other objects, deleted customers can still be retrieved through the API in order to be able to track their history."
Retrieve a deleted customer and you get back "a subset of the customer's information," with a deleted property set to true. The cus_ ID still exists, and anything that pointed at it still points at it.
The money records are separate objects, and they do not follow the customer into deletion. Stripe's guide to handling deletion requests is clear on both: "Transactions don't support deletion," and invoices cannot be redacted "because issued invoices can be subject to tax-integrity and record-retention requirements." The charges, refunds, payouts and finalized invoices from that customer's history stay in your Stripe account and in your balance history.
That same guide also makes a distinction worth knowing. If the reason for deleting is a privacy request, deletion is the wrong tool. Stripe describes deletion as object lifecycle management that "operate[s] on the specified object only," and recommends redaction jobs for consumer data deletion requests, because redaction finds the related objects and removes personal data from view across them. Deleting the customer removes one object and leaves the personal data on everything else.
Invoices and subscriptions are where the surprises are
Most of what goes wrong after a customer is deleted is not about the customer at all. It is about the billing objects that hung off it.
Subscriptions. Because deletion cancels active subscriptions immediately, Stripe sends a customer.subscription.deleted event for each one, which its event reference describes as occurring "whenever a customer's subscription ends." The customer itself produces a separate customer.deleted event. Anything in your stack that reacts to subscription endings, such as access control, churn reporting or a CRM, will see a cancellation it may not have expected.
Open and draft invoices. Stripe's cancellation guide says that when a subscription is canceled, "all open and draft invoices for that subscription have their auto_advance property set to false." That pauses automatic collection and stops reminder emails. An open invoice does not void itself. It sits there, still open, still in accounts receivable on any system that recorded it.
Pending invoice items. The same guide warns that pending invoice items are not cleaned up for you. If a cancellation would leave items you never want to bill, Stripe says "you must manually delete the invoice items."
Finalized invoices cannot be deleted. Stripe's invoicing overview states it plainly: "You can't delete a finalized invoice. To cancel it, change its status to void." Only a draft can be deleted, and not one that belongs to a subscription.
So the honest order of operations is the reverse of what the Delete button suggests. Settle the invoices first, then decide about the customer.
What deleting a customer means in QuickBooks
QuickBooks Online has a Delete option for customers too, and it does something quite different. Intuit's article on how to delete or make a customer inactive is direct about it:
"In QuickBooks Online, deleting a customer is the same as making them inactive."
And:
"You cannot permanently delete a customer profile if there are transactions associated with it."
That is the right design for an accounting system. A customer with transactions is part of the record of what you sold and who paid. Making them inactive hides them from lists and menus, but their history stays in your reports. Intuit notes that "transactions for inactive customers appear in reports with 'Name (deleted)' next to the customer," which is the label you will see on a Sales by Customer report for anyone you have retired.
Two more details from the same article:
- You cannot make a customer inactive if they have linked projects. The projects have to be deleted first.
- The action is reversible. Select Include inactive in the customer list, find the customer, and choose Make active.
So the two systems point in opposite directions. Stripe's delete is permanent and keeps the money records as separate objects. QuickBooks' delete is really a hide, and keeps everything attached to the customer.
Should the QuickBooks customer change at all?
Usually not. The QuickBooks customer is where your revenue history, sales tax history, and accounts receivable for that person live. Deleting the Stripe customer does not change any of that history, so there is nothing in QuickBooks that needs correcting just because a Stripe record was removed.
The exceptions are housekeeping choices, and they are yours:
- Make the customer inactive if you never expect to bill them again and want a cleaner customer list. Their history stays in reports with the "(deleted)" label.
- Leave the customer active if there is any chance they come back, or if an open balance still needs to be collected or written off. An open invoice is a QuickBooks task, whatever happened in Stripe. If you do give up on it, our glossary entry on a QuickBooks bad debt write-off walks through Intuit's method.
If you sync Stripe to QuickBooks with Acodei
Acodei's customer matching works from the Stripe customer's name. When a transaction syncs, Acodei first checks its own record of customers it has already matched. If there is no match, it searches QuickBooks for a customer whose display name is identical to the Stripe name, ignoring case, and creates a new QuickBooks customer only if none exists. Once a match is made, the link is held on the QuickBooks customer's ID.
Two documented behaviors matter for deletions:
- Acodei does not update a QuickBooks customer after it has been created or matched. It uses the details it already has and sends no further update requests for that customer, so removing the customer in Stripe does not rewrite or remove anything in QuickBooks.
- A returning customer is matched by name. If the person comes back and you create a new Stripe customer with exactly the same name, the matching rules above apply to the new record the same way they applied to the old one. If you had made the QuickBooks customer inactive, reactivate it before their first new transaction syncs, so their new activity and their history sit on one profile.
If a transaction does land on the wrong customer, fix the Stripe record and use Resync in the Data Feed, which re-runs Acodei's customer sync with the current data.
A checklist before you delete a Stripe customer
- Check for active subscriptions. Deleting cancels them immediately. If the customer has paid for a period you intend to honor, cancel at period end instead and delete later, or do not delete at all.
- Resolve open invoices. Collect them, void them in Stripe if they should not stand, or write them off in QuickBooks. A deleted customer's open invoice stops collecting on its own and does not close itself.
- Clear pending invoice items you do not want billed.
- Ask why you are deleting. For a privacy request, use Stripe's redaction jobs, not deletion. For list hygiene, consider whether you need to delete at all. A customer with no activity does no harm sitting in the list.
- Leave the QuickBooks customer alone, or make it inactive if you want it off your lists. Do not try to remove its history; QuickBooks will not let you, and you should not want it to.
- Note the
cus_ID somewhere your team can find it. A deleted customer can still be retrieved by ID, and that is the only way back to its history in the API.
Common mistakes
Deleting test customers in live mode by mistake. Test records belong in a sandbox. If you are rehearsing with test data, our guide to a Stripe sandbox for bookkeepers covers keeping experiments out of the live account in the first place.
Deleting to stop billing. If the goal is to stop charging someone, cancel the subscription. Deleting the customer does stop the billing, but it also cuts off the period they paid for and makes the record permanently unusable.
Cleaning up duplicates by deleting one. Deleting a duplicate customer acts on that Customer object only. It does not move the duplicate's payments to the surviving record, and its charges and invoices stay attached to the deleted ID.
Renaming before deleting. Some teams rename a customer to "DELETED" first as a marker. In a setup that matches customers by name, a renamed Stripe customer can produce a new QuickBooks customer on its next transaction. Since a deleted customer cannot have new activity, there is nothing to gain from the rename.
Frequently asked questions
Can I undo deleting a customer in Stripe?
No. Stripe states that deleting a customer "cannot be undone." The deleted customer can still be retrieved by ID through the API, with a deleted property set to true, but it cannot be restored or used again. A returning customer has to be created as a new customer.
Does deleting a Stripe customer cancel their subscription?
Yes, immediately. Stripe's delete endpoint "immediately cancels any active subscriptions on the customer." It does not wait for the end of the billing period, so if you want the customer to keep access until then, cancel the subscription at period end instead of deleting the customer.
Does deleting a Stripe customer delete their payments and invoices?
No. Charges, refunds and finalized invoices are separate objects that stay in your account. Stripe says transactions do not support deletion, and finalized invoices cannot be deleted, only voided. Open invoices for a canceled subscription stop collecting automatically but stay open until you collect or void them.
Can I delete a customer in QuickBooks Online?
Only in the sense of making them inactive. Intuit says deleting a customer is the same as making them inactive, and that a customer profile with transactions cannot be permanently deleted. Their transactions stay in reports with "(deleted)" next to the name, and you can reactivate them at any time.
Should I delete the QuickBooks customer when I delete the Stripe customer?
No. The QuickBooks customer holds your sales and payment history for that person. You can make it inactive to clean up your lists, but its transactions should stay as they are. With Acodei, the QuickBooks customer is not updated after it is created, so deleting the Stripe customer leaves it untouched.
How do I handle a GDPR or privacy deletion request in Stripe?
Stripe recommends redaction jobs, not customer deletion, for consumer data deletion requests. Redaction identifies related objects and removes personal data from view across them, while deleting a customer acts on the Customer object only. Invoices cannot be redacted, because of tax and record-retention requirements.
The short version
Deleting a Stripe customer is a billing action, not a bookkeeping one. It ends subscriptions immediately, removes saved payment details, and cannot be undone, while the charges and finalized invoices stay exactly where they were. QuickBooks treats a deleted customer as an inactive one and keeps the history in place. Settle the invoices first, use redaction for privacy requests, and leave the QuickBooks customer's history alone.
Clean up Stripe without touching your books. Acodei syncs Stripe sales, payments, refunds and payouts into QuickBooks Online, with each customer matched to a QuickBooks customer by name. Start a free trial.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
14-day free trial · card required · cancel anytime
How Acodei handles this in your stack
Stripe QuickBooks Integration
See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.
Or go straight to a capability
Advanced Product Mapping
Map Stripe products to QuickBooks with rule-based logic on product ID, price ID, metadata, and account. Set rule priority and extend mapping to refunds and fees.
Automated Invoice Sync
Bring Stripe invoices into QuickBooks and auto-apply payments and credit memos, with invoice numbering suffixes and quantity tracking to cut double-entry.
Multi-Currency Mastery
Sync Stripe transactions across currencies with automatic exchange rate handling and currency-specific customer records. Our team enables multicurrency on request, and zero-decimal currencies such as JPY are not supported.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting. Class tracking requires QuickBooks Online Plus or Advanced.
Historical Data Import
Backfill historical Stripe data into QuickBooks by month range. Preview volume and cost before syncing so reporting starts from a complete baseline.
How to Connect Stripe to QuickBooks Online
Connect Stripe to QuickBooks Online in minutes. Acodei links both accounts with secure OAuth and syncs payments, fees, refunds, and payouts automatically.
Reconcile Stripe Payments in QuickBooks
Reconcile Stripe in QuickBooks Online automatically. Acodei splits out fees, matches payouts to deposits, and keeps every charge audit-ready.
Get more operational finance guides like this one
We will only send high-value product and finance content.