SECURITY

PDPA compliance Singapore: an engineering playbook for web teams

PDPA compliance from an engineering perspective for Singapore web teams. Consent Mode v2, data residency, DPO checklist, breach playbook, and what SGBP charges.

  • 11 min Reading time
  • SGBP Author
  • 4 May 2026 Published

PDPA compliance is not a legal page. It is an engineering practice. A set of decisions about what you collect, where it lives, how long you keep it and how you respond when something goes wrong. Most Singapore SMEs treat PDPA as a footer link and a generic cookie banner, then scramble when a customer asks for data access or a marketing director quits with the email list. This is the engineering playbook to get it right before the scramble.

  • 01

    Consent before collection

    PDPA's first principle is that you ask before you take. That has to be enforced in the form, the cookie banner and the CRM flow — not just in the privacy policy.

  • 02

    Inventory or it does not exist

    You cannot protect data you have not catalogued. A simple data inventory — what we collect, where it lives, who has access, how long we keep it — is the foundation.

  • 03

    Plan the breach before it happens

    PDPA's three-day notification clock starts the moment you know. A pre-written incident playbook is the difference between a clean response and a public scramble.

Why this matters for Singapore teams

PDPA enforcement has tightened steadily since the 2021 mandatory breach notification regime. The PDPC publishes enforcement decisions monthly, fines are routinely in the S$10,000 to S$60,000 range for SMEs, and the reputational hit lasts longer than the fine. A Singapore SME with a leaked customer list will see the story on Mothership or The Straits Times within days, and the brand recovery costs more than the engineering would have.

Singapore is also a regional hub, which means most local sites collect data from Malaysian, Indonesian, Australian or European visitors. That brings the GDPR shadow into scope. A site that handles EU visitor data needs GDPR-compatible consent and data subject rights even if the company is purely Singapore-domiciled. The Consent Mode v2 standard from Google in 2024 was specifically designed to handle this: it lets you collect analytics signals while respecting the consent state, which keeps both PDPA and GDPR auditors happy.

The Singapore consumer’s expectations on data have shifted faster than most SME teams realise. A 2024 PDPC survey found 78% of respondents would stop buying from a company that mishandled their data, and the rate is higher among under-35 consumers. That is a sharper drop than the fine itself. Engineering PDPA into the build is a brand-loyalty investment, not a compliance tax.

Finally, the operational reality: most Singapore SMEs do not have a full-time Data Protection Officer. The PDPA still requires you to designate one, but in practice the role is held by a founder, a HR lead or an external consultant. That means the system has to be self-documenting. A non-expert DPO should be able to read the runbook and answer a customer’s data access request without engineering help. We design for that.

The PDPA-ready engineering stack

A PDPA-compliant website is six engineering decisions that work together. Skip one and the rest collapses.

Use a real consent management platform. Cookiebot, Termly, Iubenda or OneTrust. The banner has to offer accept-all and reject-all with equal prominence, granular per-category controls (necessary, analytics, marketing, personalisation), and a persistent way to change consent later (footer link). It has to wire into Google Consent Mode v2 so analytics tags respect the consent state, and the consent record needs to be logged with a timestamp and a hash for audit.

Decision 2. Privacy policy that matches reality

The privacy policy has to describe what you actually collect, not a generic template. We write the policy from the data inventory, not the other way around. Each section names the data, the purpose, the legal basis, the retention period and the third parties involved. If you use Klaviyo for email, name Klaviyo. If you use Cloudflare for security, name Cloudflare.

Decision 3. Data inventory and access controls

The inventory is a one-page table. Source, data fields, system of record, processor, retention, access roles. Update it whenever a new tool joins the stack. Pair it with least-privilege access: marketing does not need access to NRIC fields, support does not need access to payment data. Use SSO and audit logs.

Decision 4. Retention and deletion

Decide a retention period for every data type. Customer order data: seven years. Marketing newsletter signup: until unsubscribe plus 18 months. Chat transcripts: 12 months. Build a cron job that actually deletes data at the end of its retention window. Without the job, retention is a fiction.

Decision 5. Data subject rights endpoint

Customers have the right to ask what you hold about them, correct it, or have it deleted. Build a simple /privacy/request form that routes to your DPO, with an SLA of 30 calendar days. Document the workflow internally so the response is consistent.

Decision 6. Breach playbook

A one-page playbook: detection (who, how), assessment (significant harm? 500+ affected?), containment, PDPC notification template, customer notification template, internal escalation list, post-incident review. Run a tabletop exercise once a year.

  • Consent banner with accept-reject parity and granular categories
  • Consent Mode v2 wired to GA4 and ad pixels
  • Privacy policy generated from the actual data inventory
  • Data inventory document with sources, retention and processors
  • Retention cron jobs that actually delete expired data
  • /privacy/request form routed to DPO with 30-day SLA
  • Breach playbook tested in a tabletop exercise
  • DPO designated and named in the policy with a contact route

Implementation walkthrough

A PDPA engineering pass at SGBP is a two-week sprint with a fixed checklist. Here is the sequence.

Day one is the data inventory workshop. We sit with the founder, marketing lead and ops lead and map every data field collected on the site. Newsletter signups, contact forms, checkout, account creation, chat widget, comments, support tickets. For each, we capture source, fields, system of record, processors and current retention. The output is a one-page table that becomes the spine of everything else.

Days two and three are the consent banner. We install Cookiebot or Termly, configure the categories (necessary, preferences, analytics, marketing), wire Consent Mode v2 to GA4, Meta Pixel and any other tags, and add the persistent footer link. The reject-all button gets the same visual weight as the accept-all button. That is the 2026 compliance bar, not a friendly suggestion.

<!-- Consent Mode v2 default state, set BEFORE any tag fires -->
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied',
    'functionality_storage': 'granted',
    'security_storage': 'granted',
    'wait_for_update': 500
  });
</script>

Days four and five are the privacy policy and the DPO checklist. We rewrite the policy from the data inventory, name the actual tools, set the actual retention periods, and add the DPO contact route. We also document who the DPO is and what their monthly responsibilities look like.

Week two is the operational layer. We build the /privacy/request form (a simple Next.js form route writing to a DPO-only inbox), the retention deletion job (a daily cron in Vercel or Cloudflare Workers that purges expired records from Klaviyo, the CRM and the database), and the breach playbook. We finish with a tabletop exercise. A fake breach scenario walked through with the team to test the playbook.

  1. 01

    Data inventory workshop

    Map every data field collected on the site — source, system of record, retention, processors.

    Deliverable. One-page data inventory table

  2. 02

    Consent banner and Consent Mode v2

    Install Cookiebot or Termly, configure categories, wire Consent Mode v2 to GA4 and ad tags.

    Deliverable. Live consent banner with audit log

  3. 03

    Privacy policy and DPO checklist

    Rewrite the policy from the inventory, designate the DPO, document monthly responsibilities.

    Deliverable. Updated privacy policy and DPO runbook

  4. 04

    Retention, deletion and subject rights

    Build /privacy/request form, deliver daily retention cron, configure deletion endpoints.

    Deliverable. Working data subject rights workflow

  5. 05

    Breach playbook and tabletop

    Write the playbook, run a tabletop exercise with the team, fix gaps.

    Deliverable. Tested breach playbook stored in a known location

Common mistakes

The first mistake is treating PDPA as a copy-paste privacy policy from a generic template. A policy that mentions “we may use cookies for various purposes” is worse than no policy at all, because it is provably untrue and undermines the rest of the compliance story. Write from the data inventory.

The second mistake is letting analytics fire before consent. Many Singapore sites still load GA4 immediately on page load, regardless of consent state. Consent Mode v2 fixes this elegantly. Analytics tags fire with consent-aware signals, advertisers get modelled conversions when consent is denied, and the user is respected. Use it.

The third mistake is retention without deletion. Setting a retention period in the policy is meaningless if you never delete the data. Build the cron job. Test it. Verify in the database that deleted records are actually gone. Auditors check.

The fourth mistake is the missing DPO. PDPA requires a designated DPO with a publicly listed contact route. “info@company.com” is not a DPO contact. Either name a person or use a dedicated alias monitored by the actual DPO. Failure to designate is a finding the PDPC routinely catches in audits.

  • 3 daysPDPC notification window for significant breaches
  • 500Individual threshold triggering mandatory notification
  • 78%Singapore consumers who would leave a brand after a breach
  • S$1MMaximum financial penalty under amended PDPA

Tools we deliver in

  • Cookiebot
  • Termly
  • Iubenda
  • OneTrust
  • Google Consent Mode v2
  • GA4
  • Vercel
  • Cloudflare
  • Sentry
  • Supabase
  • Postmark
  • Notion

What it costs in Singapore (and what SGBP charges)

A clean PDPA engineering pass. Consent banner with Consent Mode v2, data inventory, privacy policy rewrite, retention cron, data subject rights endpoint, breach playbook, DPO checklist and tabletop exercise. Runs S$4,000 to S$12,000 at most Singapore agencies. SGBP delivers the same scope at S$2,000 to S$6,000 as a fixed two-week sprint.

ServiceTypical SG agencySGBP (50% less)
PDPA engineering pass, two-week sprintS$4,000–S$12,000S$2,000–S$6,000

Frequently asked questions

What is PDPA in plain terms?

The Personal Data Protection Act 2012 is Singapore’s data protection law. It applies to any organisation that collects, uses or discloses personal data about individuals in Singapore. The core obligations are consent, purpose, notification, access and correction, accuracy, protection, retention limitation and transfer limitation. For a website, that boils down to: ask before you collect, say what you will do with it, secure it, and let users see, fix or delete it.

Strictly yes, for any tracking that goes beyond strictly necessary cookies. PDPA requires consent for collection of personal data, and most analytics, advertising and personalisation cookies fall in scope. In 2026 the standard pattern is a Consent Mode v2 banner with a clear accept-reject pair, a reject option that is as visible as accept, and per-category granular controls. We deliver Cookiebot, Termly or Iubenda depending on scale.

Where should my website data physically live?

PDPA does not require data residency in Singapore. It requires that any cross-border transfer ensures a comparable standard of protection. In practice, hosting on AWS ap-southeast-1, Vercel Singapore, or Cloudflare Singapore is the easiest path. For sensitive sectors (finance, healthcare) we recommend Singapore-region hosting plus a documented DPIA. For everything else, regional hosting with a clean data transfer agreement is enough.

What does PDPA breach notification require?

Under the mandatory breach notification regime (in force from 2021), an organisation must notify the PDPC within three calendar days if a breach is likely to result in significant harm to an affected individual, or if it affects 500 or more individuals. Affected individuals must also be notified. The technical readiness. Logs, audit trails, contact lists, incident playbook. Has to be in place before the breach, not after.

What does PDPA-ready engineering cost in Singapore?

A clean PDPA engineering pass. Consent banner, privacy policy, data inventory, retention rules, deletion endpoint, breach playbook, DPO checklist, Consent Mode v2 wiring. Runs S$4,000 to S$12,000 at most Singapore agencies. SGBP delivers the same scope at S$2,000 to S$6,000 because we run from a productised PDPA pattern library.

If your PDPA story is a generic banner and a copy-paste policy, message us on WhatsApp or book a call. We will run the two-week engineering pass and hand you a tested compliance posture you can actually defend.

RELATED WORK

Builds that fit this topic.

A rotating slice of recent builds. Shopify, Webflow, headless, SaaS, AI.

READY?

Need help applying this?

WhatsApp us in 30 seconds, or book a 30-min call.