Message-Level Encryption {#wh-fg-mle-intro}
===========================================

> IMPORTANT
> Payment and Unified Checkout events require message-level encryption. To see the event types and product IDs for Payment and Unified Checkout events, see [Supported Products and Event Types](/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro/wh-fg-product-event-types.md "").  
> Message-level encryption (MLE) encrypts the payload of a message to prevent tampering. This section explains how to create the key that is necessary to decrypt encrypted payloads.  
> The webhook notification service requires X.509 certificates instead of raw public keys for MLE. The service uses:

* **Symmetric Encryption**: AES-GCM with 256-bit keys
* **Asymmetric Encryption**: RSA-OAEP with 2048-bit keys
* **Format**: JSON Web Encryption
* Separate key pairs for request and response transactions

Prerequisite
------------

* OpenSSL must be installed on your system.
* You must have access to terminal/command line.
* You must have appropriate permissions to create the asymmetric key in the `Cybersource` system.

