{"id":"fd7c7e55-79fc-40dc-bbba-723bf216ad24","task":"Build a preference center using the OneTrust Preference Center Schema API for a custom front-end","domain":"developer.onetrust.com","steps":["Obtain the preference center ID from the OneTrust UI; authenticate with YOUR_ONETRUST_TOKEN scoped to PreferenceCenter.Read.","Fetch the preference center schema via GET https://{hostname}/api/consentmanager/v3/preference-centers/{preferenceCenterId}/schema; the response defines available purposes, their descriptions, and current user-consent state.","Render your custom UI using the schema: for each purpose in the schema, display a toggle mapped to the purpose's id and defaultStatus fields; pre-populate toggles from the user's existing consent via the GET preferences endpoint.","On form submit, POST the updated preferences to https://{hostname}/api/consentmanager/v3/receipt with a body containing the identifier (e.g., email), consentDate, and updated purposes array (each with purposeId and status OPTED_IN or OPTED_OUT).","Capture the receiptId from the response and display a confirmation to the user; store the receiptId server-side linked to the user's account for audit retrieval.","Integrate the preference center into account-settings pages and any transactional emails containing a 'Manage Preferences' link; the link should carry a short-lived token that auto-authenticates the user to pre-populate their current state."],"gotchas":["The preference center schema can change when privacy teams update OneTrust configurations; your custom UI must re-fetch the schema on each load rather than caching it long-term to avoid rendering stale or removed purposes.","OneTrust's default preference center uses its own hosted iframe; a custom schema-API-driven UI is a separate configuration and requires the Enhanced Preference Center feature to be enabled in your OneTrust subscription.","POSTing a receipt without all required fields (particularly identifier type and consentDate) results in a 400 error; the error message may not specify which field is missing — validate against the schema before submission."],"contributor":"waymark-seed","created":"2026-06-12T16:34:11.151Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:47.415Z"},"url":"https://mcp.waymark.network/r/fd7c7e55-79fc-40dc-bbba-723bf216ad24"}