Consent Docs

Data processing

Who is responsible for what, which personal data PIEDAP Consent processes and why, how long it is kept, how it is deleted and which outside services are called.

Reference12 min readFor anyone looking something up

The personal data the product handles for you, the reason for each item, how long it stays and how it leaves. Use it for your record of processing and your contract with the operator of the deployment.

Roles#

Party Role under the DPDP Act Role under GDPR-style laws
You, the organisation whose site or app asks for consent Data Fiduciary Controller
The operator of the deployment Data Processor, acting on your instructions Processor
The person who answers the notice Data Principal Data subject
Partners you name on a purpose Your own processors or other fiduciaries. The product never sends them data The same
  • You decide which purposes exist, what the notice says, which identifiers are recorded and how long evidence is kept.
  • The operator runs the software, holds the keys and makes the backups.
  • If you run the deployment yourself, you are both. There is then no processor for the consent records.

What is processed and why#

Data Where it comes from How it is stored Why
Identifier of the person: a random browser id, or your choice of email, phone, user id, device id, session id or your own token The browser runtime or your server A keyed hash only. A readable, encrypted copy is kept only if the project turns on Store a reversible subject identifier To attach a decision to a person and to find it again for a rights request
Further identifiers linked to a record The runtime or your server Type and keyed hash So one consent can be found and cleared by any of them
Subject fingerprint Computed from the identifier A keyed hash under a key your project holds So you can match receipts and webhooks to your own identifier
Decisions per purpose and per partner, what the person did, form version The runtime or your server In clear, sealed Evidence of consent
Country and subdivision Request headers, or a lookup of the IP address in a local database at the time of the request Two-letter and short codes To choose the law that applies; evidence
IP address The request A salted hash only. The address itself is not stored with the record Provenance of the record
Browser string and page address The request Cut to 500 characters Provenance of the record
Language The runtime In clear Evidence of the language shown
Extra metadata Your integration In clear, up to 8 KB Whatever you send. Do not put personal data in it
Parent or guardian verification Your server Relationship, method, time, and a keyed hash of the reference Evidence of verifiable consent for a child or a person with a guardian
How consent was taken in a branch, by phone or on paper Your server Channel, method, your evidence reference and a document SHA-256 in clear, sealed. Staff and site references as keyed hashes under your project's fingerprint key Evidence of how consent was obtained
Basis and notice of consent given earlier Your server or an import The basis you stated, and the notice reference or SHA-256, in clear, sealed Evidence of what you stated about earlier consent
People in a notice campaign A file you add in the console Each identifier as a keyed hash only. Your reference, encrypted. Language, basis, answer, a salted hash of the answering IP address and the browser string. Delivery as your sender reported it Evidence that a notice was sent and answered
Hashes of erased people Each erasure The keyed hashes an erased record was known by, with the date So an import or a notice campaign does not add the person back
Processor tasks Withdrawals, expiries and erasures Partner, action, purposes and dates, with no identifier. Reports with your note, reference and an evidence file's name, size and SHA-256 Accountability for passing on withdrawals and erasures
Email address for double opt-in Your server A keyed hash. The confirmation token is stored hashed To confirm control of the mailbox
Rights request The hosted form, your server or your team The identifier as a keyed hash; the contact the person gave, encrypted; the note and the handling timeline in clear To track and answer the request
Cookie and storage names, third-party hosts, page path The runtime on a sample of page views, and site scans In clear, without values The cookie list and the DPDP Act check
Banner views The runtime Daily counts per form, version and country. No identifiers Consent rate reporting
Webhook deliveries The product The event body and your endpoint's answer Delivery, retries and troubleshooting
Actions by your team The console Audit log: user id, email, time, IP address, browser, action and result, including reads of records, requests and lookups Accountability
Audit log copy on standard output Every audit entry The same fields as the audit log, one JSON line each. The operator decides where it is kept Security monitoring
Calls on a person made with a secret key Your server Audit log: key name, time, IP address, and the first 12 characters of the identifier's keyed hash Accountability
Request log Every request to the API One line on standard output: time, method, address requested, status and the client's IP address. Identifiers, keys, search text and notice link tokens in the address are masked. The operator decides where it is kept Operation and troubleshooting
Breach register Your team Free text you enter Tracking incidents and reports

Your team's accounts and sessions belong to the PIEDAP IAM service, not to this product. The console reads the session to know who is acting.

IP addresses in the audit log are kept in clear on purpose, for security monitoring. They are the addresses of your team and your servers, not of the people whose consent is recorded.

What is not collected#

  • Cookie values, form inputs and page content. The runtime sends none of them.
  • Precise location. Only country and, where needed, subdivision.
  • A contact list for sending messages. The product sends no email or SMS. A notice campaign keeps its people's identifiers only as hashes.
  • Scanned forms, signatures and call recordings. Only your reference to them and the SHA-256 of a scan are kept.

The one contact it stores is the reply address a person gives with a rights request.

Where a readable identifier can appear#

The product is built to hold identifiers only as hashes. A readable identifier can exist in four places. A person search in Records sends the identifier in the request body, which is not logged.

Place When Who controls it
The encrypted copy Store a reversible subject identifier is on. Webhooks then include the identifier as subject.reference, and the delivery log holds it for 30 days You
The webhook delivery log A rights request is filed on the hosted form. The identifier the person typed and the reply address go out in subject_request.received. They sit in the log until it is cleared, after 30 days You
metadata Your integration puts one there You
A notice campaign's reference You give each person a reference, such as a CRM id. It is stored encrypted, and appears in the links your sender reads and in campaign.withdrawn You

Retention#

Data How long
Consent records and their events While the consent is in force, then for the project's Keep evidence for period: 1, 3, 7 or 10 years, 7 by default. Deletion happens only when the operator has turned on retention enforcement. Otherwise records stay
Identifying details on an erased record Removed at once. For a record under India's DPDP Act erased less than a year after its last processing, removed when the year is up. Linked identifiers and email confirmations are removed at once in both cases
Test records written with test keys 30 days after their last change
Email confirmation tokens Valid for 48 hours. The entry is deleted with its record
Webhook deliveries and settled outbox events, failed events included 30 days
Processor tasks and their reports As long as their record
Hashes of erased people For the life of the project. Those of test records, 30 days after the erasure
Notice campaigns, their people and answers Until the project is closed. An erasure removes the person's identifiers, reference and fingerprint, and the address hash and browser of their answer, from every campaign. The answer stays as proof
Encrypted copies of notice links 7 days after the batch is issued
Idempotency records 24 hours
Consent portal links Valid for 7 days
Banner view counts and daily statistics Kept with the form
Discovered cookies and hosts Kept with the property
Rights requests Until the project is closed
Audit log Not deleted by the product. The database refuses deletions; the operator archives and removes old rows as the table's owner. See Download the audit log
Breach register Until the project is closed
Daily anchors Until the project is closed
Request log and the audit copy on standard output Set by the operator, outside the product

The retention job follows these rules:

  • It never deletes a record less than a calendar year after its last processing or its last event. An export or erasure made after the consent ended counts as an event.
  • It counts the retention period from the record's expiry date.
  • It only touches records whose consent has ended: expired, withdrawn or refused.
  • It writes each deletion to the audit log, with the number of records.

Three things with no retention job

Rights requests, the audit log and the breach register have no retention job. The first two go only when the project is closed. If your policy sets a limit for them, ask the operator to remove old rows from the database. A rights request keeps the contact the person gave, encrypted, for as long as its row stays.

Deletion#

How data leaves What happens
A person asks for erasure From the request, from Records, or from your server with POST /sdk/v1/subjects/erase. A consent still in force is withdrawn first. The identifying details are removed. The sealed decision history stays, tied only to a keyed hash
A person is inactive With Erase after inactivity on, the same erasure runs after the period, following a notice by webhook
Evidence reaches the end of retention The record and its events are deleted. Only a hash of each event stays, so the daily anchors still verify
You stop using the service An owner exports, then closes the project. Its data is deleted after PROJECT_DELETION_DAYS, 30 by default, unless a legal hold is in force. The audit log stays. See Close a project
Backups Outside the product. Backups keep deleted data until they expire. Ask the operator for the backup retention period

Outside services#

The software needs no outside service to record consent. These are the calls it can make.

Call When What is sent
Your webhook endpoints When a subscribed event happens The event. For consent events: the identifier type and fingerprint, and the identifier only if the project stores a readable copy
The translation service chosen in Project settings: Sarvam by default, or Azure AI Translator, Google Cloud Translation, or another service with an OpenAI-compatible API When someone uses Translate in the console The form or purpose wording. No personal data about visitors
IAB Europe Global Vendor List (vendor-list.consensu.org) When the API starts and then about weekly Nothing. It is a download. A different address can be configured
The sites you ask it to scan When a scan runs, by hand or on a schedule Ordinary page requests from a headless browser
The PIEDAP IAM service When a console request carries an API token The token, to be checked
  • Location is worked out from a database inside the API or from headers set by the operator's CDN. No outside geolocation service is called.
  • A translation service is a sub-processor only for your notice wording, and only if you use it. The default Sarvam key belongs to the operator. A project can add its own key or choose another service.
  • Whoever hosts the deployment, such as a cloud provider, is the operator's sub-processor. That is outside the software; ask the operator for the list.

Where data is stored#

What Where
Everything the product stores One PostgreSQL database
Console sessions and rate-limit counters Redis
The request log Standard output, where the operator collects it
In the visitor's browser Only the consent cookies and local storage on your own site

The country the data sits in is where the deployment runs. Settings shows it under Where your data is kept, as the operator states it. Ask the operator for the backup location and any transfer outside India, and record both in your contract. A Significant Data Fiduciary has a further duty, listed in Other DPDP duties.

People's rights#

Right How the product serves it
Access and portability Records are found by identifier, hashed at lookup. They are exported as signed receipts with a summary of purposes, data used and partners
Withdrawal In the preference centre, the consent portal, the hosted request form, from your server, or by your team
Erasure As described under Deletion
Correction, grievance and the rest Tracked as requests with a deadline. Your team does the work. A nomination is stored against the person

Example record of processing#

Copy this entry and adjust it.

Field Entry
Processing activity Collecting, storing and proving consent and privacy choices
Purpose Meeting notice and consent duties; proving consent; answering rights requests
Categories of people Visitors and users of your sites and apps; where recorded, children and their parents or guardians
Categories of data Pseudonymous identifier (keyed hash); consent decisions; country; hashed IP address; browser string; page address; language. Optional: encrypted readable identifier; contact given with a rights request. In the request log: client IP address
Recipients The operator of the deployment as processor; your own webhook endpoints; the translation service you chose, for notice wording only
Transfers Set by the hosting region of the deployment and by the location of your webhook endpoints and translation service
Retention Evidence for the period set in Keep evidence for, counted from the consent's expiry date. Never less than one year after its last processing. Test records 30 days. Webhook delivery log 30 days. Evidence is deleted only where the operator has turned retention enforcement on
Security measures The measures in Security model

↑↓ to move, Enter to open