← All guides
GDPR8 min read20 May 2026

GDPR Records of Processing Activities (RoPA): Template and Step-by-Step Guide for SaaS

How to build and maintain GDPR Article 30 Records of Processing Activities (RoPA) for a SaaS company. Includes a worked template, controller vs processor obligations, and the 250-employee exemption explained.

What is a RoPA?

Records of Processing Activities (RoPA) is a mandatory GDPR compliance document required by Article 30. It is essentially a register of all the ways your organisation processes personal data — who you process it for, why, how, and how long.

Unlike a privacy policy (which is public-facing and tells users about their data), a RoPA is an internal compliance document maintained for accountability purposes. You don't publish it — but you must make it available to your supervisory authority on request.

The RoPA is often called the foundation of GDPR compliance: if you have an accurate RoPA, you can answer almost any compliance question about your data processing.

Who must maintain a RoPA?

Article 30(5) states that organisations with fewer than 250 employees are exempt from the RoPA requirement — but with three critical exceptions that swallow the rule for most SaaS companies:

  • The processing is not occasional (i.e., it is regular and systematic — which describes virtually every SaaS company's core processing)
  • The processing includes special category data (Art. 9) or personal data relating to criminal convictions
  • The processing is likely to result in a risk to the rights and freedoms of data subjects

In practice: if your SaaS processes user accounts, analytics, or billing data on a regular basis (which all SaaS companies do), you are not covered by the exemption. You need a RoPA regardless of company size.

Controller vs processor: different RoPA obligations

Article 30 distinguishes between controllers and processors:

  • Controller RoPA (Art. 30(1)) — documents processing activities where you determine the purpose and means. Required fields: controller identity, DPO contact, processing purposes, data categories, recipient categories, international transfers, retention periods, technical and organisational security measures.
  • Processor RoPA (Art. 30(2)) — documents processing carried out on behalf of controllers. Required fields: processor identity, each controller's identity, processing categories (on behalf of each controller), international transfers (including to sub-processors), security measures.

Most SaaS companies are both a controller (for their own employee and marketing data) and a processor (for the data of their customers' end users). You likely need both types of RoPA.

Required RoPA fields (Article 30(1) — Controller)

FieldRequired ContentNotes
Controller identityName, address, contact detailsAlso joint controller if applicable
DPO contactDPO name and contact detailsIf you have a DPO
Processing purposeWhy you process this dataBe specific — "to provide the SaaS service" is too vague
Data categoriesCategories of personal data processede.g., contact data, usage data, billing data
Data subject categoriesWho the data relates toe.g., registered users, trial users, employees
Recipient categoriesWho you share data withSub-processors, public authorities, other controllers
International transfersThird-country transfers and safeguardse.g., SCCs, DPF, adequacy decision
Retention periodsHow long data is kept or criteria for determining thisAlign with Data Retention Policy
Security measuresTOM description"Where possible" per Art. 30(1)(g)

Worked RoPA example: typical SaaS

A typical B2B SaaS company might have these processing activities in its controller RoPA:

Processing Activity 1: User account management

  • Purpose: Create and manage registered user accounts; provide access to the SaaS platform
  • Lawful basis: Contract (Art. 6(1)(b)) — performance of contract with the user or their employer
  • Data categories: Name, email address, job title, company name, profile photo (optional), password hash
  • Data subjects: Registered users
  • Recipients: Authentication provider (e.g., Auth0/Clerk), cloud infrastructure (AWS), email provider (SendGrid)
  • International transfers: Auth0 (US) — EU-US DPF; AWS (EU region) — no transfer
  • Retention: Duration of account; deleted within 30 days of account termination request

Processing Activity 2: Billing and payments

  • Purpose: Process subscription payments; issue invoices; manage subscription lifecycle
  • Lawful basis: Contract (Art. 6(1)(b)) and Legal Obligation (Art. 6(1)(c) — tax/accounting records
  • Data categories: Name, email, billing address, last 4 digits of card, VAT number, payment history
  • Data subjects: Paying customers (individuals or company representatives)
  • Recipients: Stripe (payment processor), accounting software
  • International transfers: Stripe (US) — EU-US DPF
  • Retention: 7 years from invoice date (Estonian Accounting Act; EU VAT Directive)

Processing Activity 3: Product analytics

  • Purpose: Understand product usage to improve features and user experience
  • Lawful basis: Legitimate Interests (Art. 6(1)(f)) — LIA conducted; no override of user interests
  • Data categories: User ID (pseudonymous), feature usage events, session data, IP address (anonymised)
  • Data subjects: Registered users
  • Recipients: Analytics platform (Mixpanel/PostHog)
  • International transfers: If US-based analytics tool — SCCs / DPF as applicable
  • Retention: Aggregated analytics: indefinite; individual event data: 24 months

Processing Activity 4: Customer support

  • Purpose: Respond to customer support inquiries; troubleshoot technical issues
  • Lawful basis: Contract (Art. 6(1)(b))
  • Data categories: Name, email, support ticket content (may include personal data uploaded by user)
  • Data subjects: Support requesters
  • Recipients: Support platform (Intercom, Zendesk, Freshdesk)
  • International transfers: As applicable for support platform
  • Retention: 3 years from last contact

Processor RoPA example: SaaS as processor

If your SaaS processes your customers' end-user data (very common for B2B SaaS), you also need a processor RoPA. It is simpler:

  • Controller: Customer name / company (you can maintain a generic entry for all customers if processing is uniform)
  • Processing categories: Storing and processing personal data of Controller's end users in accordance with the service agreement and DPA
  • Sub-processors: AWS (hosting), Sentry (error tracking), OpenAI (AI features) — with their countries and transfer mechanisms
  • Security measures: Reference to your Information Security Policy and TOMs in the DPA

RoPA vs privacy policy vs DPA

DocumentWho Is It For?Public?Legal Basis
RoPAInternal compliance; supervisory authority on requestNoArt. 30 GDPR
Privacy PolicyData subjects — transparency obligationYesArt. 13/14 GDPR
DPAController ↔ Processor — contractual obligationNo (but often referenced publicly)Art. 28 GDPR
Data Retention PolicyInternal operations; informs RoPA retention fieldsOptionalArt. 5(1)(e) GDPR

How to build your RoPA in practice

  1. Start with a spreadsheet or table — the RoPA has no mandatory format; a spreadsheet with one row per processing activity works well
  2. Walk through your sub-processor list — each sub-processor represents a processing activity; map backwards to understand what data flows to them
  3. Interview department heads — HR, Sales, Marketing, Engineering, Finance each have processing activities not always visible to the technical team
  4. Map to your privacy policy — your RoPA processing activities should align with what you disclose to users; gaps signal undisclosed processing
  5. Assign retention periods — cross-reference with your Data Retention Policy
  6. Review at least annually — when you add new features, new vendors, or new data categories, update the RoPA

Build your GDPR compliance foundation

A RoPA is the backbone of GDPR compliance. The documents it references should be in place:

See also our guide on GDPR Article 30 RoPA for more context on the legal requirements and a practical build guide.