Privacy Tools Guide

Controllers determine the purposes and means of data processing and bear primary legal responsibility for GDPR compliance, while processors handle data only on controllers’ instructions and must use Data Processing Agreements that specify their limited liability. When you build an application collecting user data, you’re the controller; when you use a third-party email service, that service is the processor handling data per your instructions. Understanding this distinction matters because controllers must implement data protection by design, conduct impact assessments, and respond to user rights requests, while processors can only follow controller directions—meaning your choice of processor significantly limits your compliance obligations. As a user interacting with services, identifying the controller lets you exercise rights (deletion, access, portability) against the correct entity, while recognizing processor limitations explains why requests to SaaS vendors sometimes redirect you to customer businesses.

The Fundamental Distinction

A data controller determines the purposes and means of processing personal data. A data processor processes personal data on behalf of the controller. The distinction matters because controllers bear primary legal responsibility for compliance, while processors have specific contractual obligations and limited direct liability.

Common Developer Scenarios

Consider these typical situations:

Controller scenario: You build a SaaS application where users sign up, create accounts, and store personal information. You decide what data to collect, how long to keep it, and how to use it. You are the controller.

Processor scenario: You use AWS S3 to store user-uploaded files, Stripe for payments, or SendGrid for emails. These services process data on your behalf—you remain the controller, they act as processors.

Hybrid scenario: A marketplace platform where you set policies but sellers also make decisions about data use. This can create joint controller situations with complex responsibility分配.

Quick Comparison

Feature Gdpr Controller Processor Obligations
Privacy Policy Privacy-focused Privacy-focused
Platform Support Cross-platform Cross-platform
Compliance See documentation See documentation
API Access Available Available
Pricing See current pricing See current pricing
Ease of Use Moderate learning curve Moderate learning curve

Your Rights Against Controllers

When you interact with organizations as a data subject, you typically deal with controllers. GDPR grants you specific rights:

Right to Access (Article 15)

You can request what data an organization holds about you:

# Example: Subject Access Request template
curl -X POST https://api.example.com/dSar \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "access",
    "user_id": "your_user_id",
    "email": "your@email.com"
  }'

Controllers must respond within one month with:

Right to Erasure (Article 17)

The “right to be forgotten” allows you to request data deletion:

# Example: Erasure request handling in Python
def handle_deletion_request(user_id: str) -> dict:
    """
    Process a GDPR Article 17 deletion request.
    Must remove all personal data unless exceptions apply.
    """
    user = database.get_user(user_id)

    if not user:
        return {"status": "not_found"}

    # Check if any legal retention requirements exist
    if has_legal_obligation(user_id):
        return {
            "status": "partial",
            "retained_data": "Tax records (legal requirement)",
            "message": "Some data retained per legal obligations"
        }

    # Perform deletion
    database.delete_user(user_id)
    analytics.delete_user_data(user_id)
    backup_service.schedule_deletion(user_id)

    return {"status": "deleted", "deletion_date": "2026-03-16"}

Right to Data Portability (Article 20)

You can obtain your data in machine-readable format:

// Example: Data portability response format
{
  "user_id": "usr_12345",
  "export_date": "2026-03-16T10:30:00Z",
  "data": {
    "profile": {
      "email": "user@example.com",
      "name": "John Doe",
      "created_at": "2024-01-15"
    },
    "activity": [
      {"action": "login", "timestamp": "2026-03-15T08:00:00Z"},
      {"action": "purchase", "timestamp": "2026-03-14T15:30:00Z"}
    ]
  },
  "format": "json",
  "schema": "https://example.com/export-schema/v1"
}

Your Rights Against Processors

When a processor handles your data, your rights flow through the controller. However, processors have direct obligations too:

What Processors Must Do

Processors must:

Identifying Processor Relationships

When evaluating tools or services, verify processor status:

// Example: Vendor assessment checklist for processor compliance
interface VendorAssessment {
  // Processing details
  processesDataOnOurBehalf: boolean;
  determinatesPurposes: boolean; // If true, they're likely a controller

  // GDPR Article 28 compliance
  hasDPA: boolean;
  dpaIncludes: {
    processingScope: boolean;
    dataTypes: boolean;
    dataSubjects: boolean;
    retentionPeriods: boolean;
    securityMeasures: boolean;
    subprocessorList: boolean;
    auditRights: boolean;
  };

  // Technical measures
  encryptionAtRest: boolean;
  encryptionInTransit: boolean;
  accessControls: boolean;
  logging: boolean;
  incidentResponse: boolean;
}

function assessVendor(vendor: string): VendorAssessment {
  // Implementation would check vendor documentation,
  // DPA terms, and technical security measures
}

Joint Controllers and Your Rights

Some relationships involve joint controllers—two or more entities sharing responsibility:

Joint controllers must have agreements clarifying who fulfills which obligations. Your rights apply against any joint controller, though they may redirect you to the appropriate party.

// Example: Joint controller notification in API responses
{
  "data_controller": {
    "primary": "Platform Company Inc.",
    "contact": "privacy@platform.com",
    "responsibilities": "User account management, payment processing"
  },
  "joint_controller": {
    "partner": "Third-Party Seller Co.",
    "contact": "dpo@seller.com",
    "responsibilities": "Product fulfillment, seller-specific communications"
  },
  "your_rights": "Contact either party for data protection inquiries"
}

Practical Implications for Developers

When building applications, document your roles:

  1. Audit your data flows: Map where personal data moves through your systems
  2. Classify vendors: Determine if each is a processor, subprocessor, or independent controller
  3. Implement rights handling: Build systems that can respond to deletion, access, and portability requests
  4. Maintain records: GDPR requires documented processing activities (Article 30)
  5. Draft appropriate contracts: Controller-processor relationships require Article 28-compliant agreements

Enforcing Your Rights

If organizations fail to honor your rights:

  1. Internal escalation: Request to speak with a data protection officer
  2. Regulatory complaint: Contact your local DPA (e.g., ICO in UK, CNIL in France)
  3. Judicial remedy: Courts can order compliance and award compensation

Fines for controller non-compliance reach €20 million or 4% of global annual revenue. Processor fines can reach €10 million or 2%.


Understanding whether you’re dealing with a controller or processor—and recognizing your position as a data subject—helps you navigate GDPR effectively. Whether you’re asserting your own rights or building compliant systems, this framework provides the foundation for protecting personal data in the digital ecosystem.

Built by theluckystrike — More at zovo.one