Est.

GDPR Right to Erasure for SaaS Customer Data

SaaS companies must map where user data lives across systems to actually delete it when requested.

Senior Writer · · 11 min read
Cover illustration for “GDPR Right to Erasure for SaaS Customer Data”
Tax Compliance, Chargebacks, and GDPR · September 2, 2026 · 11 min read · 2,529 words

GDPR's right to erasure sounds simple: user asks to be forgotten, company deletes their stuff, everyone moves on. In practice it's an architectural problem dressed up as a legal one, and the EDPB just spent a year proving it.

What Article 17 actually requires and where SaaS products typically fall into scope

Article 17 kicks in under a handful of conditions: the data's no longer needed for whatever it was originally collected for, someone withdraws consent and there's no other legal basis left standing, a user objects to processing based on legitimate interest or marketing, or the data was collected unlawfully in the first place. None of that is exotic. Most SaaS products hit at least one of these triggers weekly.

The clock starts the moment the request lands. One month to respond, with a two-month extension allowed for complex or high-volume cases, as long as the person gets notified within that first month. Here's the part people miss: that deadline covers the response, not necessarily full physical deletion across every storage layer on Earth. What the law actually wants is honesty. Tell the person what's been deleted, what hasn't yet, and when it will be. Backups get some breathing room, but only if a company is upfront about the timeline.

"Personal data" also covers more ground than most teams assume. Names and emails, sure, obviously. But IP addresses and behavioral logs count too, which matters a lot for SaaS products, since those are usually collected at high volume and often forgotten about entirely.

A few exceptions are worth knowing cold. Tax and accounting rules can require keeping certain records under Article 17(3)(b), so billing data can survive an erasure request, but only the financial record itself, not the profile info sitting next to it. Location doesn't save anyone, either: one EU user is enough to pull a company fully under GDPR, regardless of where the servers sit or where the business is incorporated. There's also an Article 27 requirement that gets skipped constantly: non-EU SaaS companies subject to GDPR need to appoint an EU representative. Enterprise buyers and regulated industries are starting to ask for proof of this before they'll even sign a contract.

Then there's Article 19, which says that once data has gone out to third parties, the controller has to tell each of them to delete it too, unless that's impossible or wildly disproportionate to attempt. Keep that one in your back pocket. It comes back later, and it's the section that turns a tidy legal requirement into a genuine engineering headache.

How the controller/processor distinction shapes who is responsible for what in B2B SaaS

Most B2B SaaS companies aren't the controller in this relationship. They're the processor, sometimes the sub-processor, working on behalf of a customer who owns the actual data relationship with the end user. That distinction changes everything about who answers the phone.

Say an end user of a customer's platform files an erasure request. That request should route to the customer, the controller, not straight to the SaaS vendor's support inbox. The vendor's job is to help fulfill it, not respond to the person directly. This routing needs to live in the Data Processing Agreement in plain language. Vendors that just start deleting things on their own, without a DPA spelling out who does what, are creating a legal gray zone nobody wants to be standing in when a regulator calls.

There's a flip side. When a SaaS vendor is the controller, meaning it's their own marketing list, their own support tickets, their own sales-process data, then an erasure request against those records is the vendor's problem directly. No routing, no handoff.

B2C products skip this whole dance. There's no customer standing between the platform and the end user, so the platform is always the controller. One line, no split.

The distinction isn't just legal trivia, it shapes what gets built. Processor obligations usually mean APIs and admin tooling that a customer's compliance team can trigger on their own. Controller obligations mean a user-facing request flow, built for the general public, not just an internal compliance contact.

Where personal data actually lives inside a SaaS product and why that map is the starting point for any deletion workflow

Everyone knows about the main application database. Account records, profile fields, whatever the user typed into a form somewhere. Most teams have basic deletion logic for that layer already.

What trips people up is everything else. Support tickets hold email threads and chat transcripts. The CRM has contact records, sales notes, call logs. Analytics platforms sit on behavioral event data and, in some cases, full session recordings. Marketing tools log email engagement and campaign history. Billing systems store payment metadata and invoice history going back years. The data warehouse has snapshots and transformed tables where personal data might now be baked into an aggregate nobody thought to flag. Error tracking tools like Sentry or Datadog often catch stack traces with email addresses or user IDs sitting right there in the log line, too, because nobody scrubbed the input before it got logged.

In event-driven systems, this fragments further still. A user's data might show up as raw logs, processed analytics, a cached query result, a backup snapshot, and a derived insight, all at once, all slightly different versions of the same person. Multi-tenant setups add another layer of mess: a user's records can be scattered across tenant partitions, and without one central table mapping a person to every location their data touches, deletion is incomplete by design, not by accident.

Here's the test that separates the prepared from the unprepared: given one user ID, can the engineering team list every system and table holding that person's data in under an hour? Most can't. The EDPB's own findings named the lack of systematic internal data classification as one of the most common failures across the sector, which is a polite regulatory way of saying most companies would fail that test badly.

Designing a deletion workflow that handles the primary database, logs, caches, and replicas

Soft delete doesn't count. Marking a row inactive just hides it. Article 17 wants the data actually gone, meaning hard delete or full field-level nulling, not a flag that says "please ignore this."

Deletion also has to cascade properly. Pulling a row from the primary accounts table needs to trigger deletion across every related table, and that cascade has to be explicit and tested, not just assumed to happen because of a foreign key constraint someone set up two years ago and forgot about.

Logs are their own animal. Scanning a high-volume event log row by row for every single erasure request doesn't scale, not even close. Partitioned log tables (weekly or monthly) solve this cleanly: drop the whole partition instead of hunting through it. Operational logs typically sit in the primary database for 30 to 90 days, then move to cold storage like object storage or a data warehouse. That's not just a compliance move, it's a cost move too, since cold storage is a fraction of the price of primary database storage.

Caches and read replicas are the part everyone forgets until it bites them. Wipe the primary database and leave a cached copy sitting around, and there's a live GDPR exposure window right there, invisible until someone goes looking. Cache invalidation belongs inside the deletion workflow itself, not a "we'll get to it" ticket filed for later.

Anonymization is a useful middle path for analytics data. Swap out PII fields for a non-identifying token, and the event counts stay intact for funnel or cohort analysis without holding onto anything personal. Whatever gets deleted also needs its own audit trail: what was removed, when, and by which process. That log is the actual proof of compliance when a regulator comes asking, and in regulated industries it usually needs to stick around for three to five years itself. The EDPB flagged one company doing this well: on a subject's retention end date, all personal data got pulled automatically into a locked-down environment and permanently deleted a month later. That's what "proactive and systematic" looks like when it's not just a phrase in a policy document.

The backup problem: why scheduled snapshots are the hardest part of erasure compliance to get right

Backups exist to restore a system to a past state. Editing one to strip out a single user's data defeats the entire point of having it, and doing that at scale gets expensive fast. This is the tension nobody quite solves cleanly.

The law's actually reasonable here. It doesn't demand instant deletion from every snapshot sitting in cold storage; it wants transparency instead. Tell the person their data will be gone from backups on the next scheduled purge, and write that commitment down somewhere.

The pattern that works in practice: flag the user in a separate deletion registry the moment the request comes in. When a backup ever gets restored, the restoration process checks that registry first and suppresses or scrubs any flagged records before the data becomes accessible again. Some companies go further and replace personal fields with random characters directly inside the backup file, which sidesteps the whole restore-and-re-dump cycle entirely.

Retention windows on backups need hard limits, documented and enforced. A three-year-old backup sitting around indefinitely with a deleted user's full profile still in it isn't a technicality, it's a live exposure sitting on a shelf. Regulators will also ask for the paper trail: the backup schedule, the registry check on restore, the maximum gap between an erasure request and full backup expiry. Most retention failures don't happen because a company ignored the law; they happen because the retention policy lives in a document while the actual data lives in systems that were never built to enforce it. Backups are where that gap shows up sharpest.

Propagating deletion to third-party services and managing the Article 19 notification chain

Article 19 says erasure has to reach every recipient the data was disclosed to, which in real terms means every third-party tool plugged into the stack that ever touched that user's data.

That list is usually longer than anyone expects. Product analytics tools like Mixpanel or PostHog hold behavioral streams and user profiles. Messaging platforms like Intercom keep full conversation history and user attributes. Support tools like Zendesk store tickets and contact info. Error trackers catch PII in log lines without anyone meaning for it to happen. Marketing automation tools hold engagement history and segment membership. CDPs and data pipelines forward user-level events downstream to who knows how many destinations.

Each of these tools has its own deletion API or data subject request mechanism, and propagating erasure across all of them needs to be engineered as a set of outbound API calls fired automatically by the internal deletion workflow. It cannot be a manual task someone in support handles by memory on a Friday afternoon. Retention settings inside these tools matter too, since most default to holding data indefinitely; setting and documenting per-service retention windows ahead of time shrinks the whole exposure surface before a single request ever arrives.

The real challenge is scale. A growth-stage SaaS product usually has more active integrations than any one engineer can hold in their head, which is exactly why the data map from earlier isn't optional homework, it's the prerequisite for this entire section. Every one of those third-party processors, too, needs a signed DPA that explicitly obligates them to assist with erasure requests. Without that clause, there's no lever to pull when a vendor drags its feet.

Payment data, billing records, and the erasure exception that only works if the architecture supports it

The exception here is narrow, and it's easy to misread. Billing records can be kept after an erasure request for as long as tax or accounting law requires, but that only covers the transaction record itself, not the person's profile sitting around it.

Here's where the architecture usually fails: most billing systems store the customer's name, email, and address directly inside the invoice record, because that's just how the payment form got built. So the record everyone assumes is safely "retained for tax purposes" is quietly holding onto exactly the personal data that should've been erased.

The fix is anonymization at the billing layer. At the moment of erasure, swap the name and email fields in the invoice for a non-identifying token, keep the amounts, dates, and tax fields untouched. The financial record stays legally intact. The personal data doesn't.

Using a Merchant of Record model changes the shape of this problem entirely. The MoR becomes the controller for card data and payment identity, and the SaaS product only ever sees tokens and transaction confirmations, data that carries almost none of the erasure risk because the vendor never held the underlying payment details to begin with. Under that setup, the payment-data erasure workflow sits with the MoR. The SaaS team's job shrinks down to erasing its own internal records, subscription status, billing metadata, and leaving the payment layer to the party actually holding it.

Usage-based billing adds one more wrinkle. Metered usage tied to a user ID is personal data too, and anonymizing or deleting those records after an erasure request needs to be built into the metering system from the start, not stitched on afterward. Worth remembering, too: payment data breaches carry their own 72-hour reporting clock, a separate obligation from erasure, but a reminder of how carefully this data needs to be handled in the first place.

The engineering investment erasure compliance actually requires and how architecture choices affect it

Building a proper deletion workflow from nothing in a growth-stage SaaS company typically runs 200 to 400 hours of engineering time, and that number assumes the team already understands its own data map well enough to scope the work accurately. Most don't, which is exactly why the number climbs.

The cost balloons when the data map is incomplete. Teams that discover a forgotten data sink halfway through the build (some analytics tool nobody remembered wiring up two years ago) end up paying more to find it than to actually delete from it. Discovery is usually the expensive part, not deletion.

Subject Access Requests and erasure requests share almost all the same plumbing: the same system inventory, the same identity verification step, the same 30-day clock, the same audit trail at the end. Teams that treat these as two outputs of one shared compliance workflow spend a lot less than teams that build separate pipelines for each, which happens more often than it should.

The architecture choices that pay off over time are the boring ones. Partitioned log tables that let a whole month get dropped instead of scanned row by row. A central identity map that ties a user to every location their data touches across every tenant. Cache invalidation wired directly into the deletion path instead of bolted on after an incident. None of it is glamorous work, but all of it is the difference between answering a regulator's question in an afternoon and spending three weeks reconstructing what happened after the fact, which is a much worse way to spend a quarter.

Sources

  1. mccannfitzgerald.com
  2. complydog.com
  3. payproglobal.com
  4. n-laws.com
  5. turleylaw.com
  6. probackup.io
  7. dchost.com
  8. privacypolicies.com

More in Tax Compliance, Chargebacks, and GDPR