Consumer email addresses and phone numbers are considered personally identifiable information (PII), content that could potentially distinguish or identify a specific individual. You can use encryption to ensure the security of consumer email addresses and phone numbers used for notifications and requests. To encrypt the email addresses, you must add information detailed in the following sections to the order data files.
Bazaarvoice email encryption is based on the RSA algorithm (4096-bit key). RSA pairs a public key to encrypt data and a private key to decrypt data. Bazaarvoice makes a shared public key available for clients and maintains a private key.
<EmailAddress> and <PhoneNumber> fields. All other fields in your order data file must be sent as plain text, without encryption.
Accessing public encryption keys
Bazaarvoice issues separate public keys for both staging and production environments, which cannot be used interchangeably.
You must ensure that the encryption key you use matches the correct environment. The production environment uses different keys, so PII encrypted with the staging key can't be decrypted.
Our public key is encoded in the privacy enhanced mail (PEM) format. To avoid format issues, the encrypted data must be hex encoded.
The <EncryptedEmailAddress> element is not added to the XML schema until version 14.5 (<Feed xmlns="https://www.bazaarvoice.com/xs/PRR/PostPurchaseFeed/14.5" >). Clients who upgrade the feed implementation must use a 14.5 or a higher version schema (14.7 is the correct version).
You can use a single encryption key/key ID to encrypt all records in the pixel or feed. For large data sets, if you call the API for each record, the encryption key will likely update during the conversion resulting in invalid encryption.
For production, you can find the most up-to-date public key at the following URL:
For staging, you can find the most up-to-date public key at the following URL:
The JSON response at the above URLs contains the public encryption key and its associated encryption key ID. You must include the encryptionKeyId string when sending encrypted email addresses to Bazaarvoice.
The following example shows a public key and encryptionKeyId.
Encrypt BV Pixel PII
If you are sending order data automatically with BV Pixel, include the encryption key ID and encrypted email with other review request interaction parameters. Use the following parameters:
-
encryptedEmail—Use this parameter instead ofemailfor c email addresses. -
encryptionKeyId—Include the encryptionKeyId string located under the public key string.
Bazaarvoice recommends the following practices when encrypting email addresses for sending order data automatically:
-
Encrypt email addresses via a server-side operation.
- ENCRYPTION_ALGORITHM: RSA
- CIPHER_TRANSFORMATION: RSA/ECB/PKCS1Padding
- ENCRYPTION_KEY_SIZE: 4096
- Retrieve the public key programmatically at least once every day for optimal security.
- Retrieve the key no more than once each day for optimal performance.
- Store the public key within your system for error-handling resilience.
Example: Encrypted email address data in code
The following example shows the way an encrypted email address and encryption key ID would look in transaction code.
JavaScript |
|
Example: Email encryption using BV public key
The following is an example of email encryption using a BV public key:
Code |
|
Encrypt order data PII
If you are sending order data manually, add the following information to your XML feed:
-
<EncryptedEmailAddress>—Use this element instead of<EmailAddress>for consumer email addresses. -
encryptionKeyID—Include the encryptionKeyID string located under the public key string as an attribute of the root<Feed>tag.
Bazaarvoice recommends the following best practices:
- For security considerations, programmatically retrieve the public key at least once every day.
- For performance considerations, retrieve the key no more than once each hour.
- For error-handling resilience, store the public key within your system.
Example: Encrypted email address data in XML feed for review requests
The following example shows the way an encrypted email address and encryption key ID would look in an order data file.
XML |
<Feed encryptionKeyID="ENCRYPTION-KEY-ID-2025-11-01T18:00:25.943Z" xmlns="http://www.bazaarvoice.com/xs/PRR/PostPurchaseFeed/14.8"> <Interaction> <TransactionDate> 2016-05-07T13:29:40.894 </TransactionDate> <EncryptedEmailAddress>70c7dd458232284dd1720a29835fd4aa7afce99f2c587d3db43d19a54375b8afcdcca96206c6b3f99df8f058d1 6bf8bcb98c9b0fd52d6395d8181608e17cfabcb438c8c32415d99a5f856f041ffbb8098728c5680655dbdd68abc62656eb164781db3c866209b9bfeb9 80da66037a83b9e282a79d4e9133e21175173b8d139b64de0ad09e3b42f9727c3a2be79682196de950179b94def664f5172ef887d31497c9d56f9196e 7f8073547d95c0ccc04519102ddaef6ff898d99c4067a1e9a5530a552f2562877618d493a2e292a181af2d8d56cb5c9dde4177da8ad1ceaf3eed129d6 9fe554c81110a10d6bbd6244bdfa2aadcca03a6d9b6bb3fbf8979c8a98ab81969d5190da2c49b6abd1ffeaabded63998b0963da405b81085f7ec1b89c e9a1db6b3df88352e574881da04facb393e7b82ff8fbc78c86ed8374389c8e160fde89f161872f5787fc39b74b3db873cfad345c8f52e9a8d3c93feae 473df93713196d6d36dacfae7571afb6a45caa840143e433dfe52c825cf5101f050fea512edc4818c986b241e6b8cf411daa880f7a0c3c04f94f29edc 3fd89eefc3b9673ae78b6f314bc5514176965e13adf0a3b1bfb12d07e100ce288e223443b6b82c69c5caa97d3a0d81d</EncryptedEmailAddress> <Locale>en_US</Locale> <UserName>nickname1</UserName> <UserID>718737491</UserID> <Products> <Product> <ExternalId>prod01</ExternalId> <Name>Product 1</Name> <ImageUrl>http://test.cimages/products/01.jpg</ImageUrl> <Price> 20.61 </Price> </Product> </Products> </Interaction> </Feed> |
FAQs
Is <UserName>field a PII?
No. Only <EmailAddress> and <PhoneNumber> fields are PII.
Do I need to encrypt <UserName> field?
No. You must encrypt only the <EmailAddress> and <PhoneNumber> fields. All other fields in your order data file must be sent as plain text, without encryption.