- contactId: The unique ID for the contact in Engage, used for subsequent API-calls to get all relevant information about a contact
- email: The contact’s email address
- id: The contact’s identification key as defined in Engage (for example, “email”)
- dateTime: The time and date the link was generated (V.5)
- discoveryKey: The contact’s identifier for Voyado Elevate (optional)
discoveryKey from Voyado Elevate, ask your Voyado team to set it up for you.
Decoding the message
1
Extracting the value
Extract the value string from the parameter “eClub”
2
Decoding the string
Decoding the string from URL-safe Base64”:
- Replace all “-” with “+”
- Replace all “_” with “/”
- Add padding characters, based on the length
- Decode the string using normal Base64 decoding
3
Extracting the data
The initialization vector is stored in the first 16 bytes; the remainder is the encoded message”
4
Decrypting the message
With the shared key and initialization vector from step 3, decrypt the message using AES-256 (CBC)
Encoding the message
1
Data format
The data is sent as a JSON with the structure shown in the example above.
2
Encrypting data
This JSON string is then encrypted using AES-256 and the shared key which both the customer and Voyado have (it was exchanged during implementation) and a unique initialization vector for each message.
3
Preparing data
The initialization vector and the encrypted string are concatenated, Base64 encoded and modified for URL inclusion (URL-safe Base64).
4
Sending data
The complete encoded string is then sent as the query-string parameter “eClub”.
DaqfT7Ys6tGqM3zbesEKpmacTJEqBCp2.
There are online tools available for creating keys, such as Strong Random Password Generator.
C# code example
C# code example
Perl code example
Perl code example
PHP code example
PHP code example
node.js code example
node.js code example

