Stripe customers to email list: one row per person, duplicate customers merged
In short: Reads unified_customers.csv or unified_payments.csv from Stripe. Customers with the same email (Stripe doesn't deduplicate customers by email) become one row with the IDs listed, total spend and payment count added, delinquent and subscription status kept. Limit: Stripe's export has no marketing consent column, so the tool can't tell you who opted in.
To get an email list from Stripe, open Customers in the Stripe Dashboard, press Export and download the CSV, then upload it here. Customer records that share an email are merged into one row with their IDs, total spend and payment count added up. You can keep only paying customers or set delinquent ones aside, and download a clean CSV.
Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. See pricing
Sample result
6 Stripe customer records became 4 people; ana.silva@example.com had 2 records.
- Unique customers
- 4 addresses
- Records read
- 6
- Paying
- 2
What this means for you
Records sharing an email merge into one row with every customer ID and the spend added up.
- Duplicate customers merged by email
- Total spend and payments added
- Failed payments not counted
- Paying-only and delinquent options
- Stripe
- Dedupe
- CSV
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
How do I turn a Stripe customer export into an email list?
- In the Stripe Dashboard, open Customers and press Export. Pick the date range and columns (keep Email, Name, Created, Total Spend, Payment Count, Delinquent) and download unified_customers.csv.
- Upload it here. A payments export (Payments > Export, with Customer Email) also works: each successful payment counts, failed ones don't.
- Tick Keep only customers with at least one payment for a buyers list, or Set aside delinquent customers before a promotion.
- Download the email list, and the set-aside file if you ticked an option.
Example
- You enter
- A Stripe unified_customers.csv with 6 customer records:
ana.silva@example.comtwice (cus_…f7andcus_…f8), one delinquent customer, two with no payments and one with no email. - You get
- 4 unique addresses. Ana's two records become one row with both IDs, total spend 339.00 and 11 payments; the delinquent customer is marked
yesandpast_due; 2 of the 4 are paying. - Limits
- Runs in your browser with no row cap; an uploaded file can be up to 25 MB.
Why does the same email appear several times in my Stripe export?
Stripe doesn't deduplicate customers by email. Every flow that creates a customer without looking up an existing one adds another record with the same address: Checkout or Payment Links set to always create a customer, a second subscription bought while logged out, an import. So one buyer can be cus_A, cus_B and cus_C, each with part of their spend.
The tool groups records by email (case-insensitive), lists every customer ID in one cell, adds up Total Spend and Payment Count, and keeps the earliest Created date, so the list shows each person once with their real lifetime spend.
Can I send marketing email to my Stripe customers?
The export doesn't say. Stripe stores no marketing consent on the customer record unless you collected it, for example with Checkout's promotional email consent, which is recorded on the Checkout Session rather than in this export.
Emails about the account, receipts, renewals and failed payments are fine. For marketing, use addresses you have consent for; in the US the FTC's CAN-SPAM guide sets the rules for commercial email, and the EU and UK need opt-in or a narrow existing-customer exception.
Why check a Stripe list before a win-back or renewal email?
A card can keep working long after the work inbox it was bought with closes, so a customer list collects dead addresses quietly. Renewal reminders and win-back emails to them bounce, and the bounces land on the domain your receipts come from.
Checking the list before a big send keeps those bounces off your domain. The free check is under the result.
Is this faster than a pivot table?
| This tool | Excel pivot table | |
|---|---|---|
| Duplicate customers | One row per email, IDs listed | Rows grouped, IDs lost |
| Spend and payments | Added up per email | Sum fields per email |
| Payments export | Failed payments left out, refunds subtracted | Filter by status first |
| Upload | None, runs in the browser | None |
Who uses this tool, and for what?
- SaaS founders
- Get one row per paying customer, with lifetime spend, for a product update or a pricing change email.
- Course and membership sellers
- Merge the duplicate customers that Payment Links create and see who bought more than once.
- Finance and support
- Pull delinquent customers into their own file for a payment reminder sequence.
- Migrations
- Move customers from Stripe into a CRM or email platform without importing the same person three times.
What can’t this tool tell you?
- Stripe's export has no marketing consent column, so the tool can't tell you who opted in.
- It can't tell which addresses still have a working inbox.
- Spend is added in the currency of each row; mixed-currency accounts aren't converted.
- People who used different emails for different purchases stay separate.
Common questions
- How do I export customer emails from Stripe?
- Dashboard > Customers > Export. The CSV has Email, Name, Created (UTC), Total Spend and Payment Count columns; upload it here for one row per email.
- How do I merge duplicate Stripe customers with the same email?
- In the export, this tool merges them into one row with every customer ID listed. To merge them in Stripe itself, you would have to move payment methods and subscriptions to one customer; Stripe has no one-click merge.
- Can I use the payments export instead?
- Yes. Upload unified_payments.csv; each Paid or refunded payment counts, refunds are subtracted, failed and incomplete payments are left out of spend.
- What does delinquent mean in a Stripe export?
- Stripe sets delinquent when an automatic invoice payment fails or an invoice passes its due date, and clears it when the invoice is paid. Tick the option to set those customers aside before a promotion.
- Is the file uploaded?
- No. It is read in your browser. Nothing leaves your device unless you choose to check the addresses afterwards.
Sources
A tidy list can still be full of dead addresses.
Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.
- Upload the cleaned file as it is: CSVs up to 100,000 rows
- A real SMTP mailbox check on every row, with catch-all detection
- Small list? Starter at $9/mo covers 2,500 emails a month, cancel anytime
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.