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.

Note:

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:

  • Trust centers

  • Preference centers

  • One-click links

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:

  • The data subject has no record of previously opting in.

    OR

  • The default assumption is that processing of the data subject's data is allowed until the data subject objects and opts out.

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