Universal Consent & Preference Management Transaction Types and Purpose Statuses
Each interaction a data subject has with either a collection point or preference center creates a single receipt as the primary document of record. The receipt is further processed to create individual transactions for each purpose contained within that receipt. Transactions are identified by the Transaction Type and detail the data subject's choices for a single purpose. From each transaction, OneTrust creates or updates a data subject profile, which includes the Data Subject Purpose Status for each purpose. The data subject purpose status is the outcome of the data subject's interaction.
Preference centers log changes (transactions) only when there has been an interaction or a consent update.
Supported Transaction Types
The following are supported transaction types for Universal Consent & Preference Management. Some transaction types are set automatically when the Consent Receipt API receives a payload including a purpose GUID. Other transaction types can be manually declared in the payload. The following table details the different types of transactions as well as their intended usage.
|
Transaction Type (API format) |
Transaction Type (UI format) |
Usage Notes |
|---|---|---|
|
PENDING |
Pending |
Set to indicate that a double opt in workflow should be initiated for a purpose. This Transaction Type should only be used for Double Opt In Collection Points. Setting this Transaction Type will re-trigger the workflow even when the Purpose Status is already ACTIVE, if the Reconfirm for Active Data Subjects setting is enabled for a Double Opt In Collection Point. Otherwise this Transaction Type will have no effect, except to update Purpose Preference selections where appropriate. |
|
CONFIRMED |
Confirmed |
Set to indicate a completed opt in interaction. This Transaction Type is applicable for a single step opt in workflow or as the second step in a double opt in workflow. |
|
WITHDRAWN |
Withdrawn |
Set to indicate an interaction to withdraw a previously given consent. |
|
EXPIRED |
Expired |
Set to indicate that consent should be expired. This Transaction Type is usually automatically created when an Expiry date is reached, but can also be triggered manually via an API call. This Transaction Type will result in a Purpose Status of Expired in most cases. |
|
NOTGIVEN |
Not Given |
Set to indicate that a data subject had an opportunity to opt in to a purpose but did not take it. This Transaction Type will be created automatically for purposes on a Collection Point that are not included in a receipt when the Enable Consent Withheld Transactions setting is enabled, but can also be set manually.
Note:
You can configure API and web form collection points (embedded, hosted, external) to record only explicit consent transactions by enabling the Only record explicit consent choices setting. However, the following collection point types will record Not Given transactions for any purposes without explicit consent:
If purposes already have consent from a prior transaction, this previous transaction will take precedence. |
|
EXTEND |
Extend |
Set to indicate that the Expiry date for an Active Purpose should be extended, usually as a result of another data subject action. This Transaction Type only has an impact where the current data subject Purpose Status is ACTIVE and the Purpose has been set with a specific Life Span. This will extend the expiry date on the ACTIVE purpose by the Life Span relative to the date of the transaction. |
|
OPT_OUT |
Opt Out |
Set to indicate that a data subject is choosing to opt out of a purpose. This Transaction Type differs from the WITHDRAWN Transaction Type in that it does not assume that there was a previous opt in event. In other words, in the absence of a previous indication of wishes, the default assumption is that the data subject is opted in. If the OPT_OUT Transaction Type is used when there is an existing data subject Purpose Status of ACTIVE, then the Purpose Status will be changed to WITHDRAWN. Otherwise, it will be changed to OPT_OUT. |
|
HARD_OPT_OUT |
Hard Opt Out |
Set to indicate a data subject should be opted out without the possibility to opt back in again. This Transaction Type acts as an override to prevent subsequent transactions from having any effect. |
|
NO_CHOICE |
No Choice |
Set to indicate that the data subject has no choice but to accept that processing for a purpose will take place. This Transaction Type is used when there is a need to communicate that the processing will happen. This Transaction Type will result in a Purpose Status of ALWAYS_ACTIVE. |
|
CHANGE_PREFERENCES |
Change Preferences |
Set to alter a data subject's Purpose Preference choices for an ACTIVE Purpose only.
Note:
For more information, see Modifying Preferences via the Consent Receipts API in the Implementing the Collection Point with REST API article. Implementing the Collection Point with REST API |
|
CANCEL |
Cancel |
Set to indicate that the data subject canceled their consent for a Purpose in PENDING status, resulting in a Purpose Status of NO_CONSENT. This Transaction Type is used exclusively to cancel a Double Opt-In workflow. |
|
NO_OPT_OUT |
No Opt Out |
Set to indicate that the data subject was given an opportunity to opt-out but did not take it and is therefore opted into the Purpose by default. This Transaction Type will result in a NOT_OPT_OUT Purpose Status, except when the Purpose is already in one of the following statuses: PENDING, ACTIVE, HARD_OPT_OUT, or ALWAYS_ACTIVE. |
|
IMPLICIT |
Implicit |
Set to indicate an opt in interaction where consent is inferred from the data subject's behavior. This Transaction Type will result in an IMPLICIT Purpose Status.
Note:
This Transaction Type cannot be used when the double opt-in workflow is enabled on a Custom API Collection Point. |
Data Subject Purpose Statuses
Purpose statuses for a data subject profile are set based on a combination of the transaction type created from the receipt, the existing status (if any), and the underlying usage rules. The following are available data subject purpose statuses for Universal Consent & Preference Management.
|
Data Subject Purpose Statuses (API format) |
Data Subject Purpose Statuses (UI format) |
Description |
Additional Details |
|---|---|---|---|
|
PENDING |
Pending |
Data subject has given consent to process their data for a Purpose by opting in. However, the Purpose Status will remain as PENDING until the second step of the Double Opt In process is complete. |
This status is used for Double Opt In scenarios where two actions are required before consent can be confirmed. PENDING status indicates that the first action has been recorded but the second action has not happened yet. This status is set automatically for new data subjects interacting with a Collection Point where the Double Opt-In setting has been enabled. If the Reconfirm for Active Data Subjects setting is also enabled, then data subjects that already have an ACTIVE status for a Purpose will be set back to PENDING if a new PENDING transaction is received. |
|
ACTIVE |
Active |
Data subject has given consent to process their data for a Purpose by opting in. |
|
|
ALWAYS_ACTIVE |
Always Active |
Data subject does not have an option to give consent, withdraw consent, or opt out of the Purpose because processing data for the Purpose is necessary and will always be carried out. |
This status is currently limited to Cookie Consent use cases. |
|
OPT_OUT |
Opted Out |
Data subject has opted out of the processing of their data for the Purpose. |
This status is used to record an Opt Out action where either:
This status is only set when the Opt Out transaction is the first recorded interaction for the Purpose by the data subject. |
|
WITHDRAWN |
Withdrawn |
Data subject has withdrawn consent that they had previously given to prevent further processing of their data for the Purpose. |
This status will be set when either a WITHDRAWN or OPT_OUT transaction is received while the current status for the Purpose is ACTIVE or PENDING. This status can be set as the first record for the data subject, when the assumption is that they previously opted in. However, there will not be a record of that event. |
|
EXPIRED |
Expired |
Data subject gave consent to process their data for the Purpose with a time limitation that has been reached. |
When consent is given, an expiration date can be set automatically from a Purpose's life span, or manually with a specific date. This status is used to indicate that the date was reached and therefore consent came to an end without any manual intervention. |
|
NO_CONSENT |
Not Given |
Data subject was given an opportunity to opt in to processing their data for the Purpose but chose not to. |
When the Enable Consent Withheld Transactions on this Collection Point setting is enabled for a Collection Point, this status will be set automatically for Purposes on the Collection Point that the data subject did not opt in to. This status will not be set when a NO_CONSENT Transaction Type is received while the Purpose Status is already PENDING or ACTIVE. |
|
HARD_OPT_OUT |
Hard Opted Out |
Controller decided that the data subject should not be able to opt in to the processing of their data for the Purpose. |
This status can only be set by an administrative update on the data subject profile by a user with the appropriate permissions. Once set, no new transactions will have an effect until a further administrative update resets the Purpose Status to WITHDRAWN. |
|
NOT_OPT_OUT |
Not Opted Out |
Data subject was given an opportunity to opt-out but did not take it. |
This status is the opt-out equivalent of ACTIVE, which means that the processing of data is allowed because the data subject did not opt-out. |
|
IMPLICIT |
Implicit |
Data subject has given consent to process their data for a Purpose by opting in passively, without explicitly agreeing to it. |
This status is set for data subjects interacting with a purpose where the Enable implicit consent setting has been enabled and if an IMPLICIT Transaction Type is received. If no Transaction Type is received, Purpose Status will default to ACTIVE. This status will not override the ACTIVE, ALWAYS ACTIVE, HARD OPT OUT, OPT OUT, NOT OPTED OUT, or WITHDRAWN statuses. This status can override the NOT GIVEN, and PENDING statuses.
Note:
When the two-step opt-in for consent is utilized, IMPLICIT becomes ACTIVE. If the current status is IMPLICIT, an incoming NOTGIVEN or PENDING Transaction Type will not override the data subject purpose status. |
List of Data Subject Purpose Statuses and Resulting Scenarios after Transaction
The following are the total available data subject purpose statuses and all the possible resulting scenarios after an inbound transaction.
|
Old Status for Data Subject |
New Status from a Receipt |
Resulting Data Subject Status |
Comments |
|---|---|---|---|
|
EXPIRED |
EXPIRED |
EXPIRED |
|
|
EXPIRED |
WITHDRAWN |
WITHDRAWN |
|
|
EXPIRED |
NO_CONSENT |
NO_CONSENT |
|
|
EXPIRED |
PENDING |
PENDING |
|
|
EXPIRED |
ACTIVE |
ACTIVE |
|
|
EXPIRED |
OPT_OUT |
OPT_OUT |
|
|
EXPIRED |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
EXPIRED |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
EXPIRED |
EXTEND |
EXPIRED |
Status is not overwritten |
|
EXPIRED |
CHANGE_PREFERENCES |
EXPIRED |
Status is not overwritten |
|
EXPIRED |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
EXPIRED |
OPT_IN |
OPT_IN |
|
|
EXPIRED |
IMPLICIT |
IMPLICIT |
|
|
WITHDRAWN |
EXPIRED |
EXPIRED |
|
|
WITHDRAWN |
WITHDRAWN |
WITHDRAWN |
|
|
WITHDRAWN |
NO_CONSENT |
NO_CONSENT |
|
|
WITHDRAWN |
PENDING |
PENDING |
|
|
WITHDRAWN |
ACTIVE |
ACTIVE |
|
|
WITHDRAWN |
OPT_OUT |
WITHDRAWN |
Status is not overwritten |
|
WITHDRAWN |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
WITHDRAWN |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
WITHDRAWN |
EXTEND |
WITHDRAWN |
Status is not overwritten |
|
WITHDRAWN |
CHANGE_PREFERENCES |
WITHDRAWN |
Status is not overwritten |
|
WITHDRAWN |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
WITHDRAWN |
OPT_IN |
OPT_IN |
|
|
WITHDRAWN |
IMPLICIT |
WITHDRAWN |
Status is not overwritten |
|
NO_CONSENT |
EXPIRED |
EXPIRED |
|
|
NO_CONSENT |
WITHDRAWN |
WITHDRAWN |
|
|
NO_CONSENT |
NO_CONSENT |
NO_CONSENT |
|
|
NO_CONSENT |
PENDING |
PENDING |
|
|
NO_CONSENT |
ACTIVE |
ACTIVE |
|
|
NO_CONSENT |
OPT_OUT |
OPT_OUT |
|
|
NO_CONSENT |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
NO_CONSENT |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
NO_CONSENT |
EXTEND |
NO_CONSENT |
|
|
NO_CONSENT |
CHANGE_PREFERENCES |
NO_CONSENT |
|
|
NO_CONSENT |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
NO_CONSENT |
OPT_IN |
OPT_IN |
|
|
NO_CONSENT |
IMPLICIT |
IMPLICIT |
|
|
PENDING |
EXPIRED |
EXPIRED |
|
|
PENDING |
WITHDRAWN |
WITHDRAWN |
|
|
PENDING |
NO_CONSENT |
NO_CONSENT |
|
|
PENDING |
PENDING |
PENDING |
|
|
PENDING |
ACTIVE |
ACTIVE |
|
|
PENDING |
OPT_OUT |
OPT_OUT |
|
|
PENDING |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
PENDING |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
PENDING |
EXTEND |
PENDING |
Status is not overwritten |
|
PENDING |
CHANGE_PREFERENCES |
PENDING |
Status is not overwritten |
|
PENDING |
NOT_OPT_OUT |
PENDING |
Status is not overwritten |
|
PENDING |
OPT_IN |
OPT_IN |
|
|
PENDING |
IMPLICIT |
IMPLICIT |
|
|
ACTIVE |
EXPIRED |
EXPIRED |
|
|
ACTIVE |
WITHDRAWN |
WITHDRAWN |
|
|
ACTIVE |
NO_CONSENT |
ACTIVE |
Status is not overwritten |
|
ACTIVE |
PENDING |
ACTIVE |
Status is not overwritten |
|
ACTIVE |
ACTIVE |
ACTIVE |
|
|
ACTIVE |
OPT_OUT |
WITHDRAWN |
Status is not overwritten |
|
ACTIVE |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
ACTIVE |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
ACTIVE |
EXTEND |
ACTIVE |
Status is not overwritten |
|
ACTIVE |
CHANGE_PREFERENCES |
ACTIVE |
Status is not overwritten |
|
ACTIVE |
NOT_OPT_OUT |
ACTIVE |
Status is not overwritten |
|
ACTIVE |
OPT_IN |
OPT_IN |
|
|
ACTIVE |
IMPLICIT |
ACTIVE |
Status is not overwritten |
|
OPT_OUT |
EXPIRED |
EXPIRED |
|
|
OPT_OUT |
WITHDRAWN |
WITHDRAWN |
|
|
OPT_OUT |
NO_CONSENT |
OPT_OUT |
Status is not overwritten |
|
OPT_OUT |
PENDING |
PENDING |
|
|
OPT_OUT |
ACTIVE |
ACTIVE |
|
|
OPT_OUT |
OPT_OUT |
OPT_OUT |
|
|
OPT_OUT |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
OPT_OUT |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
OPT_OUT |
EXTEND |
OPT_OUT |
Status is not overwritten |
|
OPT_OUT |
CHANGE_PREFERENCES |
OPT_OUT |
Status is not overwritten |
|
OPT_OUT |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
OPT_OUT |
OPT_IN |
OPT_IN |
|
|
OPT_OUT |
IMPLICIT |
OPT_OUT |
Status is not overwritten |
|
ALWAYS_ACTIVE |
EXPIRED |
EXPIRED |
|
|
ALWAYS_ACTIVE |
WITHDRAWN |
WITHDRAWN |
|
|
ALWAYS_ACTIVE |
NO_CONSENT |
ALWAYS_ACTIVE |
Status is not overwritten |
|
ALWAYS_ACTIVE |
PENDING |
PENDING |
|
|
ALWAYS_ACTIVE |
ACTIVE |
ACTIVE |
|
|
ALWAYS_ACTIVE |
OPT_OUT |
OPT_OUT |
|
|
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
ALWAYS_ACTIVE |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
ALWAYS_ACTIVE |
EXTEND |
ALWAYS_ACTIVE |
Status is not overwritten |
|
ALWAYS_ACTIVE |
CHANGE_PREFERENCES |
ALWAYS_ACTIVE |
Status is not overwritten |
|
ALWAYS_ACTIVE |
NOT_OPT_OUT |
ALWAYS_ACTIVE |
Status is not overwritten |
|
ALWAYS_ACTIVE |
OPT_IN |
OPT_IN |
|
|
ALWAYS_ACTIVE |
IMPLICIT |
ALWAYS_ACTIVE |
Status is not overwritten |
|
HARD_OPT_OUT |
EXPIRED |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
WITHDRAWN |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
NO_CONSENT |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
PENDING |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
ACTIVE |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
OPT_OUT |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
ALWAYS_ACTIVE |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
HARD_OPT_OUT |
EXTEND |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
CHANGE_PREFERENCES |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
NOT_OPT_OUT |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
OPT_IN |
HARD_OPT_OUT |
Status is not overwritten |
|
HARD_OPT_OUT |
IMPLICIT |
HARD_OPT_OUT |
Status is not overwritten |
|
EXTEND |
EXPIRED |
EXPIRED |
|
|
EXTEND |
WITHDRAWN |
WITHDRAWN |
|
|
EXTEND |
NO_CONSENT |
EXTEND |
Status is not overwritten |
|
EXTEND |
PENDING |
PENDING |
|
|
EXTEND |
ACTIVE |
ACTIVE |
|
|
EXTEND |
OPT_OUT |
OPT_OUT |
|
|
EXTEND |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
EXTEND |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
EXTEND |
EXTEND |
EXTEND |
|
|
EXTEND |
CHANGE_PREFERENCES |
EXTEND |
Status is not overwritten |
|
EXTEND |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
EXTEND |
OPT_IN |
OPT_IN |
|
|
EXTEND |
IMPLICIT |
EXTEND |
Status is not overwritten |
|
CHANGE_PREFERENCES |
EXPIRED |
EXPIRED |
|
|
CHANGE_PREFERENCES |
WITHDRAWN |
WITHDRAWN |
|
|
CHANGE_PREFERENCES |
NO_CONSENT |
CHANGE_PREFERENCES |
Status is not overwritten |
|
CHANGE_PREFERENCES |
PENDING |
PENDING |
|
|
CHANGE_PREFERENCES |
ACTIVE |
ACTIVE |
|
|
CHANGE_PREFERENCES |
OPT_OUT |
OPT_OUT |
|
|
CHANGE_PREFERENCES |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
CHANGE_PREFERENCES |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
CHANGE_PREFERENCES |
EXTEND |
CHANGE_PREFERENCES |
Status is not overwritten |
|
CHANGE_PREFERENCES |
CHANGE_PREFERENCES |
CHANGE_PREFERENCES |
|
|
CHANGE_PREFERENCES |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
CHANGE_PREFERENCES |
OPT_IN |
OPT_IN |
|
|
CHANGE_PREFERENCES |
IMPLICIT |
CHANGE_PREFERENCES |
Status is not overwritten |
|
NOT_OPT_OUT |
EXPIRED |
EXPIRED |
|
|
NOT_OPT_OUT |
WITHDRAWN |
OPT_OUT |
Status is not overwritten |
|
NOT_OPT_OUT |
NO_CONSENT |
NOT_OPT_OUT |
Status is not overwritten |
|
NOT_OPT_OUT |
PENDING |
NOT_OPT_OUT |
Status is not overwritten |
|
NOT_OPT_OUT |
ACTIVE |
ACTIVE |
|
|
NOT_OPT_OUT |
OPT_OUT |
OPT_OUT |
|
|
NOT_OPT_OUT |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
NOT_OPT_OUT |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
NOT_OPT_OUT |
EXTEND |
NOT_OPT_OUT |
Status is not overwritten |
|
NOT_OPT_OUT |
CHANGE_PREFERENCES |
NOT_OPT_OUT |
Status is not overwritten |
|
NOT_OPT_OUT |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
NOT_OPT_OUT |
OPT_IN |
OPT_IN |
|
|
NOT_OPT_OUT |
IMPLICIT |
NOT_OPT_OUT |
Status is not overwritten |
|
OPT_IN |
EXPIRED |
EXPIRED |
|
|
OPT_IN |
WITHDRAWN |
WITHDRAWN |
|
|
OPT_IN |
NO_CONSENT |
OPT_IN |
Status is not overwritten |
|
OPT_IN |
PENDING |
PENDING |
|
|
OPT_IN |
ACTIVE |
ACTIVE |
|
|
OPT_IN |
OPT_OUT |
OPT_OUT |
|
|
OPT_IN |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
OPT_IN |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
OPT_IN |
EXTEND |
OPT_IN |
Status is not overwritten |
|
OPT_IN |
CHANGE_PREFERENCES |
OPT_IN |
Status is not overwritten |
|
OPT_IN |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
OPT_IN |
OPT_IN |
OPT_IN |
|
|
OPT_IN |
IMPLICIT |
OPT_IN |
Status is not overwritten |
|
IMPLICIT |
EXPIRED |
EXPIRED |
|
|
IMPLICIT |
WITHDRAWN |
WITHDRAWN |
|
|
IMPLICIT |
NO_CONSENT |
IMPLICIT |
Status is not overwritten |
|
IMPLICIT |
PENDING |
IMPLICIT |
Status is not overwritten |
|
IMPLICIT |
ACTIVE |
ACTIVE |
|
|
IMPLICIT |
OPT_OUT |
OPT_OUT |
|
|
IMPLICIT |
ALWAYS_ACTIVE |
ALWAYS_ACTIVE |
|
|
IMPLICIT |
HARD_OPT_OUT |
HARD_OPT_OUT |
|
|
IMPLICIT |
EXTEND |
IMPLICIT |
Status is not overwritten |
|
IMPLICIT |
CHANGE_PREFERENCES |
IMPLICIT |
Status is not overwritten |
|
IMPLICIT |
NOT_OPT_OUT |
NOT_OPT_OUT |
|
|
IMPLICIT |
OPT_IN |
OPT_IN |
|
|
IMPLICIT |
IMPLICIT |
IMPLICIT |