Product changes in September 2026
What changed in the console, the API and webhooks between 19 and 25 September 2026, newest first, with what you need to do about each change.
Newest first. Later changes are in Product changes in early October 2026.
25 September 2026#
Added#
- Choices per partner. A form can let visitors allow or refuse each partner of a purpose. New forms start with it on. On an older form, switch on Let visitors choose partners one by one and publish. See Let visitors choose partners.
- A
testflag on every record and webhook. A record written with a test key carries"test": true, and every webhook delivery hastestat the top level. Read the flag in your webhook receiver and keep test events out of live systems. See Test your integration. - The
subject.erasedwebhook. It is sent once for each record erased on request. Subscribe an endpoint to it and delete your own copy of the person's data when it arrives. See People events. - Linked identifiers. A record can be found, withdrawn and erased by up to five further identifiers, such as an email address or a phone number. See Identifiers.
- Property export and import. A property can be exported to one file, with its forms, rules and records, and imported into another project or deployment. Imported forms arrive as drafts and keys are not imported. See Export and import a property.
- Requests to go live. Every new key is a test key. Choose Request to go live on the key; the platform team approves it and the key string stays the same. See Request to go live.
- Brand styling. A form's Brand panel sets theme colours, custom CSS and a custom first layer. See Change the look.
- Your own data from the page. A page can attach its own fields to each record it writes, with
data-piedap-metadata. See Browser runtime options. - Language approval. A person approves each language of a form before it is published. A language that is not approved is left out of the version, so approve your languages before you publish. See Translate and approve a language.
- Calls on a person as a whole. A secret key with the matching scope can find, export, withdraw and erase everything held for one person. See People in the API reference.
- New purpose from a form. New purpose on a form creates a purpose in the registry and adds it to the form.
Changed#
- Erasure withdraws consent first. Erasing a person now withdraws any consent still in force before the identifiers are erased. This applies in the console, through the API and from an erasure request.
consent.withdrawnis sent for each such record, andsubject.erasedfor each record erased. The two can arrive in either order. You no longer need to withdraw before you erase. See Withdraw consent or erase a person. - Subject lookup covers test and live records. The console's Subject lookup searches both together, and erasing from it erases both. Test records carry the Test badge in the results.
- Publishable keys are shown as a hint. The console lists a key as
pk_…Nimw. Show and Copy fetch the full key, and each use is written to the audit log. - Settings and languages belong to each form. The privacy button, Global Privacy Control, how long an answer lasts and the languages are set form by form.
- Notices in India itemise each purpose. Where a DPDP region rule applies, the banner lists each purpose with the data it uses and links to Your rights.
- A secret key used from a browser is refused. The call answers
403withSECRET_KEY_IN_BROWSERand the key shows Exposed. Revoke such a key and create a new one. See Manage keys.
Fixed#
- On Install, a key's badges and buttons no longer squash the key's name.
24 September 2026#
Added#
- Guardian consent in the server SDKs. The Node.js and Python SDKs can record consent given by a parent or lawful guardian, with
dataPrincipalTypeandguardian. See Record consent from your server. - A language chooser in the banner. It shows where a DPDP region rule applies and the form is published in more than one language.
Changed#
- Notices in India. Where a DPDP region rule applies, the banner shows the contact for exercising rights. The privacy button stays unless the page has its own
data-piedap-openlink. - The WordPress plugin refuses secret keys in its settings and marks the tag so script optimisers leave it alone.
Fixed#
- Export CSV downloads every record that matches the filters, up to 100,000 rows. Before, it stopped at 500.
- The form's Google Consent Mode v2 setting is followed by the runtime.
- Marked tags further down a page are released once the page has been parsed.
23 September 2026#
Added#
- Properties. A project can hold several sites and apps as properties, each with its own forms and keys. See Manage properties.
- The purpose library. Ready-made purposes can be added to the registry and then adjusted. See Add purposes.
- Dialog labels. The built-in text of the preferences dialog can be reworded in each language.
- A compose file for demos,
compose.lan.yml. It turns sign-in off, so never use it for a real deployment.
20 September 2026#
Added#
- Data used, in each language. A purpose's Data used list is translated with its name and description.
Fixed#
- An answer given after a form is published again is recorded against the new version.
19 September 2026#
First release.
Added#
- Consent forms shown by region rules, with opt-in, opt-out and notice-only models.
- Sealed evidence. Every answer is stored with the wording the person saw, in a chain of sealed events. Signed receipts and daily anchors let you prove it later. See How consent is proven.
- The console, in English, Deutsch, Español, Français and Italiano.
- Notices for India under the DPDP Act, with the complaint link, the 22 Eighth Schedule languages and a standard wording library.
- Rights requests with deadlines, hosted pages where people send a request, and a breach register.
- Site scans, on demand or every week or month, with a cookie declaration.
- Webhooks for consent, rights requests, scans and evidence anchors.
- SDKs: the browser runtime, Node.js, Python, Android and iOS, with a WordPress plugin and a Google Tag Manager template.