CustomerGdprConsent

GDPR data processing consent with version history for privacy policies, terms of service, and data processing agreements. Extends Consent entity with GDPR-specific properties for regulatory compliance.

Extends: Consent
45 properties
Schema

Properties

Includes inherited properties from Consent

PropertyTypeModeDescriptionRequiredSource
entityTypestring
stored

Type of entity giving consent (Customer, Patient, Employee, User, etc.)

Example: "Customer"

Required
Consent
entityIdstring
stored

Unique identifier of the entity giving consent

Example: "CUST-2024-00123"

Required
Consent
consentTypestring
enum

Category of consent being tracked

Values: marketing, privacy_policy, terms_of_service, data_processing, cookies, analytics, medical_treatment, data_sharing, research, third_party_sharing

Example: "marketing"

Required
Consent
grantedboolean
stored

Whether consent is currently granted (true) or withdrawn (false)

Example: true

Required
Consent
grantedAtDateTime
stored

Timestamp when consent was granted

Example: "2024-01-15T10:30:00Z"

Optional
Consent
grantedIpstring
stored

IP address from which consent was granted (GDPR Article 7 proof requirement)

Example: "192.168.1.100"

Optional
Consent
grantedByUser
stored

User who granted consent (if obtained by staff on behalf of entity)

Example: {"@type":"User","userId":"support_042"}

Optional
Consent
consentSourcestring
enum

Source or method through which consent was obtained

Values: web_form, mobile_app, api, customer_service, in_person, email, phone, import, manual

Example: "web_form"

Optional
Consent
withdrawnAtDateTime
stored

Timestamp when consent was withdrawn

Example: "2024-06-15T14:20:00Z"

Optional
Consent
withdrawnIpstring
stored

IP address from which consent was withdrawn

Example: "192.168.1.105"

Optional
Consent
withdrawnByUser
stored

User who withdrew consent (if withdrawn by staff)

Optional
Consent
withdrawalReasonstring
stored

Reason provided for consent withdrawal

Example: "No longer interested"

Optional
Consent
consentVersionstring
stored

Version of the consent form, policy, or terms under which consent was given

Example: "2.1"

Optional
Consent
languageLanguage
stored

Language in which consent was presented and obtained

Optional
Consent
expiresAtDateTime
stored

Optional expiration date for time-limited consents

Example: "2025-01-15T00:00:00Z"

Optional
Consent
metadataobject
stored

Additional consent-specific metadata (form ID, document URL, etc.)

Example: {"formId":"consent_form_v2.1","documentUrl":"https://example.com/privacy-policy-v2.1.pdf"}

Optional
Consent
customerCustomer
stored

Reference to the customer who accepted or revoked GDPR consent (specialization of entityType/entityId from Consent)

Required
CustomerGdprConsent
gdprConsentTypestring
enum

Specific type of GDPR consent or data subject right

Values: privacy_policy, terms_of_service, data_processing, right_to_be_forgotten, data_portability, data_rectification, processing_restriction, profiling_opt_out

Example: "privacy_policy"

Required
CustomerGdprConsent
policyVersionstring
stored

Version number of the policy document (privacy policy, terms, etc.)

Example: "2.1"

Required
CustomerGdprConsent
policyUrlstring
stored

URL to the exact version of the policy document that was accepted

Example: "https://example.com/privacy-policy-v2.1.pdf"

Optional
CustomerGdprConsent
policyChecksumstring
stored

SHA-256 checksum of the policy document for tamper-proof verification

Example: "a1b2c3d4e5f6...sha256"

Optional
CustomerGdprConsent
isCurrentVersionboolean
computed

Whether this is the current/latest version of the policy

Optional
CustomerGdprConsent
revokedAtDateTime
stored

Timestamp when consent was revoked (for GDPR Article 17 Right to be Forgotten requests)

Example: "2024-08-20T16:00:00Z"

Optional
CustomerGdprConsent
revocationReasonstring
enum

GDPR Article under which consent was revoked

Values: right_to_be_forgotten, data_portability_request, processing_restriction, objection_to_processing, consent_withdrawal, other

Example: "right_to_be_forgotten"

Optional
CustomerGdprConsent
requestFulfilledAtDateTime
stored

Timestamp when GDPR data subject request was completed

Example: "2024-08-25T10:00:00Z"

Optional
CustomerGdprConsent
dataRetentionUntilDateTime
stored

Date until which data will be retained per GDPR compliance (after which data must be deleted)

Example: "2027-01-15T00:00:00Z"

Optional
CustomerGdprConsent
legalBasisstring
enum

GDPR Article 6 legal basis for data processing

Values: consent, contract, legal_obligation, vital_interests, public_task, legitimate_interests

Example: "consent"

Required
CustomerGdprConsent
dataCategoriesstring[]
stored

Categories of personal data covered by this consent

Example: ["identity","contact","financial","behavioral"]

Optional
CustomerGdprConsent
processingPurposesstring[]
stored

Purposes for which data processing was consented

Example: ["service_delivery","marketing","analytics","fraud_prevention"]

Optional
CustomerGdprConsent

Examples

Example 1

{
  "@type": "CustomerGdprConsent",
  "customer": {
    "@type": "Customer",
    "customerNumber": "CUST-2024-00123"
  },
  "gdprConsentType": "privacy_policy",
  "granted": true,
  "grantedAt": "2024-01-15T10:30:00Z",
  "grantedIp": "192.168.1.100",
  "consentSource": "web_form",
  "policyVersion": "2.1",
  "policyUrl": "https://example.com/privacy-policy-v2.1.pdf",
  "policyChecksum": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
  "isCurrentVersion": true,
  "language": {
    "@type": "Language",
    "code": "en",
    "name": "English"
  },
  "legalBasis": "consent",
  "dataRetentionUntil": "2027-01-15T00:00:00Z",
  "dataCategories": [
    "identity",
    "contact",
    "financial"
  ],
  "processingPurposes": [
    "service_delivery",
    "marketing",
    "fraud_prevention"
  ]
}

Example 2

{
  "@type": "CustomerGdprConsent",
  "customer": {
    "@type": "Customer",
    "customerNumber": "CUST-2024-00123"
  },
  "gdprConsentType": "terms_of_service",
  "granted": true,
  "grantedAt": "2024-01-15T10:30:00Z",
  "grantedIp": "192.168.1.100",
  "consentSource": "web_form",
  "policyVersion": "1.5",
  "policyUrl": "https://example.com/terms-v1.5.pdf",
  "isCurrentVersion": false,
  "language": {
    "@type": "Language",
    "code": "en",
    "name": "English"
  },
  "legalBasis": "contract"
}

Example 3

{
  "@type": "CustomerGdprConsent",
  "customer": {
    "@type": "Customer",
    "customerNumber": "CUST-2024-00123"
  },
  "gdprConsentType": "right_to_be_forgotten",
  "granted": false,
  "revokedAt": "2024-08-20T16:00:00Z",
  "revocationReason": "right_to_be_forgotten",
  "requestFulfilledAt": "2024-08-25T10:00:00Z",
  "consentSource": "email",
  "language": {
    "@type": "Language",
    "code": "en",
    "name": "English"
  }
}

Example 4

{
  "@type": "CustomerGdprConsent",
  "customer": {
    "@type": "Customer",
    "customerNumber": "CLIENT-2024-00456"
  },
  "gdprConsentType": "data_processing",
  "granted": true,
  "grantedAt": "2024-03-10T11:00:00Z",
  "grantedIp": "89.156.23.45",
  "consentSource": "web_form",
  "policyVersion": "2.1",
  "policyUrl": "https://example.com/politique-confidentialite-v2.1.pdf",
  "isCurrentVersion": true,
  "language": {
    "@type": "Language",
    "code": "fr",
    "name": "Français"
  },
  "legalBasis": "consent",
  "dataRetentionUntil": "2027-03-10T00:00:00Z",
  "dataCategories": [
    "identity",
    "contact",
    "behavioral"
  ],
  "processingPurposes": [
    "service_delivery",
    "analytics"
  ]
}

Example 5

{
  "@type": "CustomerGdprConsent",
  "customer": {
    "@type": "Customer",
    "customerNumber": "CUST-2024-00789"
  },
  "gdprConsentType": "profiling_opt_out",
  "granted": false,
  "grantedAt": "2023-06-10T15:00:00Z",
  "withdrawnAt": "2024-02-15T10:00:00Z",
  "withdrawnIp": "203.0.113.60",
  "revocationReason": "objection_to_processing",
  "consentSource": "preference_center",
  "policyVersion": "2.0",
  "language": {
    "@type": "Language",
    "code": "en",
    "name": "English"
  },
  "legalBasis": "legitimate_interests"
}