Privacy Tools Guide

The Right to Restrict Processing is one of the most powerful tools in GDPR for individuals who want to limit how their personal data is used. Unlike the Right to Erasure (Right to be Forgotten), which removes your data entirely, the Right to Restrict Processing allows you to keep your data stored while blocking certain processing activities. This guide provides practical steps for exercising this right and shows developers how to implement compliant systems.

Understanding the Right to Restrict Processing

Article 18 of GDPR grants individuals the right to obtain restriction of processing in specific circumstances. You can exercise this right when:

This right differs from simply opting out of marketing. When you invoke it, the organization must store your data but cannot process it for most purposes — except for storage, legal claims, or protecting someone else’s rights.

How to Exercise Your Right to Restrict Processing

Step 1: Identify the Data Controller

Find the organization holding your data. This is typically the company you provided data to directly, or a service provider acting on their behalf. Check privacy policies for contact details — look for Data Protection Officer (DPO) or privacy team contacts.

Step 2: Submit Your Request

Write to the data controller explicitly requesting restriction of processing. Be specific about:

Organizations must respond within one month of receiving your request. They can extend this to two months for complex requests, but must inform you within the first month.

Step 3: Verify Your Identity

Be prepared to provide identification. Controllers must verify your identity before processing your request — this protects against unauthorized access to your data.

Request Templates for Developers and Power Users

Email Template

Subject: GDPR Right to Restrict Processing Request

To: [Data Protection Team Email]
From: [Your Email - must match records]

I am requesting restriction of processing of my personal data under Article 18 of the General Data Protection Regulation (GDPR).

Account/Identifier: [Your account ID, email, or username]
Specific data concerned: [Describe the data or categories]

Reason for request:
[ ] I contest the accuracy of my personal data
[ ] I object to processing based on legitimate interests
[ ] Processing is unlawful and I request restriction instead of erasure
[ ] Other: [Specify]

Please confirm receipt of this request and provide a timeline for compliance.

curl Command for API-Based Requests

If the service provides a privacy API, you can submit requests programmatically:

curl -X POST "https://api.example.com/gdpr/restrict-processing" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "restrict_processing",
    "reason": "legitimate_interest_objection",
    "data_categories": ["usage_data", "marketing_preferences"],
    "verification": {
      "method": "email",
      "value": "your@email.com"
    }
  }'

How Organizations Should Implement Processing Restrictions

For developers building GDPR-compliant systems, implementing processing restrictions requires careful system design. Here’s how to handle restriction requests:

Database Schema Example

-- Add processing restriction flag to user records
ALTER TABLE users ADD COLUMN processing_restricted BOOLEAN DEFAULT FALSE;
ALTER TABLE users ADD COLUMN restriction_reason VARCHAR(50);
ALTER TABLE users ADD COLUMN restriction_requested_at TIMESTAMP;

-- Create audit log for restriction requests
CREATE TABLE gdpr_restriction_log (
  id SERIAL PRIMARY KEY,
  user_id UUID REFERENCES users(id),
  reason VARCHAR(50),
  requested_at TIMESTAMP DEFAULT NOW(),
  processed_at TIMESTAMP,
  processed_by VARCHAR(100)
);

Application-Level Enforcement

from datetime import datetime
from functools import wraps

def check_processing_restriction(user):
    """Check if user has restricted processing."""
    if user.processing_restricted:
        raise ProcessingRestrictedError(
            f"Processing restricted since {user.restriction_requested_at}. "
            f"Reason: {user.restriction_reason}"
        )

def restrict_processing(user_id: str, reason: str):
    """Apply processing restriction to a user."""
    user = db.get_user(user_id)

    # Update user record
    user.processing_restricted = True
    user.restriction_reason = reason
    user.restriction_requested_at = datetime.utcnow()
    db.save_user(user)

    # Log the action
    db.log_gdpr_action(
        user_id=user_id,
        action='restrict_processing',
        reason=reason,
        timestamp=datetime.utcnow()
    )

    # Disable all non-essential processing
    disable_marketing_emails(user_id)
    disable_analytics_tracking(user_id)
    disable_data_sharing(user_id)

    return {"status": "restricted", "timestamp": datetime.utcnow()}

Middleware for Request Filtering

// Middleware to check processing restrictions
function checkProcessingRestriction(req, res, next) {
  const userId = req.user?.id;

  if (!userId) return next();

  db.query(
    'SELECT processing_restricted, restriction_reason FROM users WHERE id = ?',
    [userId]
  ).then(user => {
    if (user.processing_restricted) {
      const allowedRoutes = ['/api/privacy/status', '/api/account'];

      if (!allowedRoutes.includes(req.path)) {
        return res.status(403).json({
          error: 'Processing Restricted',
          message: 'Your data processing is currently restricted',
          reason: user.restriction_reason,
          request_restriction: '/api/privacy/lift-restriction'
        });
      }
    }
    next();
  });
}

What Happens After You Request Restriction

Once you exercise the Right to Restrict Processing:

  1. Data remains stored — The organization cannot delete your data based on this request alone
  2. Processing stops — Most processing activities halt, except:
    • Storing the data
    • Legal claims establishment or defense
    • Protecting rights of another person
  3. You can lift the restriction — At any time, you can allow processing to resume

Organizations must inform you before lifting any restriction — giving you the opportunity to fully erase your data if you prefer.

Limitations to Be Aware Of

The Right to Restrict Processing has boundaries:

Verifying Compliance

After submitting your request, verify compliance:

  1. Check marketing emails — You should no longer receive promotional content
  2. Review data exports — Your data should show restriction flags
  3. Test account features — Analytics and personalization should be disabled
  4. Document everything — Keep copies of your request and their response

Built by theluckystrike — More at zovo.one