Business Encryption

Set Business Encryption Public Key

Upload and configure a business public key for message payload encryption.

This endpoint accepts a business public key in PEM format, validates it, and stores it with a cryptographic signature for future use in encrypting message payloads and data channel requests.

Use Cases:

  • Initial setup of encryption for WhatsApp Business messaging
  • Update existing public key for key rotation
  • Enable secure payload encryption for sensitive business communications
  • Configure encryption keys for compliance requirements

Key Requirements:

  • Must be a valid RSA public key in PEM format
  • Key must meet Meta's security standards for encryption
  • Only one active public key per phone number at a time
  • Previous keys are replaced when new ones are uploaded

Rate Limiting: Standard Graph API rate limits apply. Key uploads may have additional security-related rate limiting to prevent abuse.

post/{Version}/{Phone-Number-ID}/whatsapp_business_encryption

Request

  • Base URL
    https://graph.facebook.com
  • URL
    https://graph.facebook.com/{Version}/{Phone-Number-ID}/whatsapp_business_encryption
  • Auth
    HTTP bearer

Path parameters

Versionstring required

Graph API version to use for this request. Determines the API behavior and available features.

Phone-Number-IDstring required

Your WhatsApp Business phone number ID. This ID represents the phone number entity and can be obtained from your WhatsApp Business Account phone numbers list.

Headers

User-Agentstring
Example:Meta-Business-Messaging-OpenAPI/1.0.0;spec=2025-10-21

The user agent string identifying the client software making the request.

Authorizationstring required
Example:Bearer EAABwzLixnjYBOzYmNMJJGfHq9DgNh...

Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token.

Request body multipart/form-data

business_public_keystring required

The business public key in PEM format to be uploaded and signed. Must be a valid RSA public key that will be used for payload encryption.

Example request

{
  "business_public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...\n-----END PUBLIC KEY-----\n"
}

Response

Successfully uploaded and configured business encryption public key

successboolean required

Indicates whether the public key was successfully uploaded and signed

Example response

{
  "success": true
}

Changes

No recorded changes to this operation across all 5 revisions of this API.