Hashed Customer Email Support
Purpose
Use customer.email_address_hash when you want a privacy-first approach in quote flows, where you avoid sharing PII while still supporting request correlation and operational support.
Doing this allows our support teams to process inbound questions from customers who provide us their email address, while keeping the email private until a purchase occurs.
Customer Email Fields
Use customer email fields as follows:
customer.email_address: emailcustomer.email_address_hash: SHA-256 hash of normalized email- Quote requests can use either field.
- Purchase requests require
customer.email_address.
Email Normalization Before Hashing
Normalize email before hashing:
- trim leading and trailing whitespace
- convert to lowercase
- hash the normalized value with SHA-256
- send the digest as lowercase hex
Hashing examples by language
import crypto from "crypto";
const input = "User@Example.com ";
const normalizedEmail = input.trim().toLowerCase();
const emailAddressHash = crypto
.createHash("sha256")
.update(normalizedEmail, "utf8")
.digest("hex");Example Requests
Example A: Hashed Email (API quote flow)
{
"customer": {
"email_address_hash": "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
},
"policy_attributes": {
"...": "..."
}
}Drop-in Component Usage
email_address_hash can also be used in Drop-in Component quote request objects.
Set it in the customer object for each product request inside product_config, using the same validation and normalization rules.
Example: Drop-in Component with Hashed Email
{
"client_id": "test_...",
"product_config": {
"registration-cancellation": [
{
"customer": {
"email_address_hash": "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514",
"first_name": "John",
"last_name": "Doe",
"state": "MN",
"postal_code": "55414"
},
"policy_attributes": {
"insurable_amount": 50000,
"event_start_date": "2026-01-01",
"event_end_date": "2026-01-01",
"participant": {
"first_name": "John",
"last_name": "Doe"
}
}
}
]
}
}