Skip to content

Consent Certificates

Every time a consumer submits a form on your tracked website, eConsent generates a consent certificate, a tamper-proof record that serves as verifiable evidence of consent for TCPA compliance and dispute resolution.

Each certificate contains:

FieldDescription
Certificate IDUnique identifier in the format EC-{session_id}-{base64(sha256_hash)}
Session IDLinks to the full session recording
Company IDThe company that owns the property
Property IDThe property (website) where consent was captured
Consent recordsAll captured consent language, types, values, and categories
TimestampUTC time of the consent event
Consumer metadataIP address, user agent, browser language, geo-location
OriginThe URL/domain where consent was captured
Recording pathPath to the session recording file
Recording hashSHA-256 hash of the session recording for integrity verification
SignatureHMAC-SHA256 cryptographic signature

Certificates are generated automatically when a form submission event is detected. The process works as follows:

  1. Consent extraction. The tracker collects all tagged consent elements (both implied and explicit) that are visible on the page.
  2. Deduplication. Duplicate consent records are removed by ID, keeping the most complete version of each.
  3. Normalization. Consent text is trimmed and truncated to 4,900 characters for UTF-8 safety. Types are lowercased.
  4. Fingerprinting. A consent fingerprint is built from all consent records: "id1:type1:value1,id2:type2:value2,...".
  5. Payload construction. A payload string is assembled: "{session_id}:{company_id}:{property_id}:{timestamp}:{fingerprint}:{domain}".
  6. Hashing. A SHA-256 hash is generated from the payload with added entropy.
  7. Signing. The certificate is signed with HMAC-SHA256 using a server-side secret key.

The resulting certificate ID follows this format:

EC-{session_id}-{base64(sha256_hash)}

Certificate Generation Explained

See how eConsent captures consent, generates the cryptographic hash, and signs the certificate in real time.

~2 min

Navigate to Certificates in your eConsent dashboard at app.econsent.org to browse, search, and filter all generated certificates.

Certificate public page with consent evidence and QR code

Each certificate has a shareable public URL:

https://app.econsent.org/certificate/{certificateId}

This displays the certificate in a professional, PDF-style layout with:

  • Company and property information
  • All consent evidence grouped by type
  • Session metadata and timestamps
  • QR code linking to the session replay
  • Certificate expiration status

Certificates can be downloaded as PDF documents for offline storage, legal proceedings, or compliance audits.

Certificate retention is configurable per property in your account settings:

DurationUse case
7 daysTesting and development
30 daysShort-term campaigns
60 daysStandard campaigns
1 yearExtended compliance
3 yearsLong-term retention
5 yearsMaximum retention for litigation protection

When a certificate is generated, the certificate ID is automatically injected into the hidden form field on your page:

<input type="hidden" id="econsent_hidden" name="econsent_hidden" value="">

This field is populated with the certificate ID, allowing you to associate the certificate with the lead in your CRM or lead management system.

You can also access these values via JavaScript:

// Session ID
window.econsentState.session_id
// Certificate ID
window.econsentState.certificate

Or via cookies: econsent_session and econsent_certificate.

Certificates can be verified programmatically through the Verification API:

Terminal window
curl -X POST https://api.econsent.org/api/verify/match \
-H "Content-Type: application/json" \
-d '{
"certificate_id": "EC-session123-base64hash",
"company_id": "your-company-id",
"property_id": "your-property-id",
"consent": "By submitting this form, you consent to receive marketing communications."
}'

The API returns:

  • Certificate validity (valid: true/false)
  • Consent opt-in timestamp
  • Origin URL
  • Consent types captured
  • Verification type (first-party or third-party)

Each consent record within a certificate contains:

FieldDescription
idUnique identifier for the consent element
textFull consent language or label text
typeConsent type (main-implied, main-explicit, secondary-implied, secondary-explicit)
valueInput value for explicit consent, or visibility state for implied
categoryEXPLICIT or IMPLIED