To securely encrypt and transmit ‘Report Ghosting’ data using our API, you must fulfill specific prerequisites and obtain necessary encryption keys directly from your account on our platform. This step is crucial for setting up a secure environment for data encryption and transmission.


2.1 Prerequisites

2.1.1. **Account Registration**:


Ensure you have an active account registered on [] ( Your account provides access to the API credentials necessary for data encryption and API communication.


2.1.2 **Secure Storage for Keys**: 

Plan for secure storage of your API keys (`pluginKey` and `subscriptionKey`). These keys are sensitive and should be protected to prevent unauthorized access.

  2.1.3. **Development Environment**:

While our API can be used with various programming languages, this documentation focuses on JavaScript for its widespread adoption and ease of use in web-based environments.

   2.1.4. **Encryption Support**: 

Ensure your development environment supports AES encryption, specifically in ‘AES-CBC’ mode. This is a widely supported encryption standard, but verifying compatibility is essential.

 2.2 Key Acquisition

Upon logging into your account at [](, you will be provided with two crucial pieces of information:

2.2.1. **Plugin Key (`pluginKey`)**: 

This key is used exclusively for encrypting your data before it is sent to our server. The encryption standard used is ‘AES-CBC’, which requires this key to be 256 bits (32 bytes) in length.

2.2.2. **Subscription Key (`subscriptionKey`)**: 

This key is used to authenticate your API requests to our server. It should be included in the headers of your HTTP requests to identify and authorize your access to the API.

   2.3 Encryption Standards and Requirements

For encrypting your ‘Report Ghosting’ data, the following standards and parameters must be adhered to:

– **Encryption Algorithm**: ‘AES-CBC’

– **Key Length**: 256 bits (32 bytes), corresponding to the provided `pluginKey`.
– **Initialization Vector (IV)**: A unique IV must be generated for each encryption operation. The IV should be 16 bytes (128 bits) long and securely randomized.
– **Data Format**: The data to be encrypted should be formatted to a base64 and passed as a stringified JSON object.


It’s crucial that the encryption is performed correctly to ensure the security of the data and the interoperability with our API.


2.4 Preparing for Encryption

Before proceeding with data encryption, ensure you have completed the following:

   2.4.1. **Securely Store Your Keys**:

Store your `pluginKey` and `subscriptionKey` in a secure location within your application’s environment. Avoid hardcoding these keys directly in your source code, especially if your codebase is stored in a version control system accessible by others.

   2.4.2. **Environment Configuration**: 

If you are using a Node.js environment or a web-based JavaScript environment, ensure that it is configured to support the necessary cryptographic functions. For Node.js, the built-in `crypto` module provides the necessary functionality for AES-CBC encryption. As such for other platform use an appropriate library that can provide the AES-CBC encryption.


With these prerequisites and setup steps complete, you’re now ready to encrypt your data securely and prepare it for transmission to our server, as outlined in the following steps of this documentation.