Almacenamiento local de la API de la nube

El almacenamiento local de la API de la nube te da la opción de controlar dónde se almacenan los datos de tus mensajes en reposo. Si tu empresa es parte de una industria regulada, como las finanzas, el gobierno o la asistencia sanitaria, es posible que prefieras que los datos de tus mensajes se almacenen en un país específico cuando están en reposo debido a las políticas reglamentarias o empresariales.

El almacenamiento local de la API de la nube proporciona una capa adicional de protección de datos, ya que implementa controles adicionales de administración de datos. La característica de almacenamiento local comprende dos restricciones adicionales en el entorno de ejecución de la API de la nube:

  • TTL (tiempo de vida) de los datos en uso: se implementó una nueva restricción de retención de datos, que establece el tiempo durante el cual la API de la nuble puede acceder al contenido del mensaje en centros de datos de Meta que están fuera de la jurisdicción objetivo mientras se procesa. Cuando se utilice el almacenamiento local, la API de la nube eliminará automáticamente el contenido de los mensajes de los centros de datos de Meta después de un TTL de 60 minutos. Una vez transcurrido el TTL, no habrá ningún contenido de mensajes en los servidores de Meta que están fuera de la jurisdicción objetivo cuando se utilice el almacenamiento local.
  • Ubicación de datos en reposo: se implementa una nueva restricción de ubicación de datos, que indica qué ubicación física API de la nube se puede usar como almacenamiento persistente para contenido del mensaje. El texto y la carga útil del contenido multimedia tanto de los mensajes entrantes como de los salientes se conservarán en los almacenamientos de datos de la API de la nube dentro del país (fuera de los EE. UU.).

Una vez que el almacenamiento local se activa para un número de teléfono de negocio, el almacenamiento local de la API de la nube utiliza un almacenamiento localizado en el país especificado en relación con el contenido del mensaje persistente, en lugar de usar el almacenamiento predeterminado ubicado en los EE. UU.

La función de almacenamiento local complementa otros controles de privacidad y seguridad de la API de la nube, y permite a los clientes garantizar un mayor nivel de cumplimiento de las regulaciones locales de protección de datos.

Datos localizados

La API de la nube implementa la localización del contenido del mensaje. Los siguientes flujos de mensajes se encuentran comprendidos en la función de almacenamiento local:

  • Mensajes salientes: mensajes que se envían a los destinatarios a través de la API de la nube
  • Mensajes entrantes: mensajes que se reciben a través de la API de la nube

Los siguientes tipos de mensajes se encuentran comprendidos en la función de almacenamiento local:

  • Mensajes de texto: la carga útil textual (cuerpo del mensaje) está localizada
  • Mensajes de contenido multimedia: la carga útil del contenido multimedia (audio, imagen de documento o video) está localizada
  • Mensajes de plantilla: los componentes con carga útil de texto o contenido multimedia están localizados

Además, se incluye un conjunto limitado de atributos de metadatos en el conjunto de datos localizado, con el fin de asociar correctamente la carga útil de los mensajes localizados cifrados al mensaje procesado originalmente y de auditar el hecho de la localización. Los metadatos almacenados están protegidos con tokenización y cifrado.

El objetivo de la función de almacenamiento local de la API de la nube es permitir que tu negocio controle directamente dónde se almacenan tus datos sensibles en reposo al configurar la API de la nube. Al mismo tiempo, brinda flexibilidad a la hora de elegir ubicaciones de datos a nivel mundial.

Regiones disponibles

Las regiones permitidas por el almacenamiento local de la API de la nube se incluyen en las Condiciones de hosting de Meta para la API de la nube. Las regiones actualmente disponibles para el almacenamiento local se encuentran en el parámetro data_localization_regionconfigurado durante el registro del número de teléfono.

Requisitos

El almacenamiento local solo se puede activar o desactivar en números de teléfono de negocios cuando su estado es "no registrado".

Limitaciones

A los archivos multimedia cargados por un número de teléfono con almacenamiento local activado solo puede acceder ese número de teléfono específico, y no se pueden compartir con otros números asociados con el negocio.

Activar el almacenamiento local

Sigue los pasos que se indican a continuación para activar el almacenamiento local en un número de teléfono de negocio no registrado usando la versión 21.0 de la API o una más reciente. Si usas una versión anterior de la API, consulta Activar el almacenamiento local (versión 20 y anteriores).

Paso 1: Activar el almacenamiento local en el número

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings para activar el almacenamiento local en el número de teléfono de negocio no registrado:

Sintaxis de la solicitud

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings

{
  "storage_configuration": {
    "status": "IN_COUNTRY_STORAGE_ENABLED", 
    "data_localization_region": "<COUNTRY_CODE>"
  }
}

Configura <COUNTRY_CODE> en el código del país donde se almacenarán los datos en reposo.

Sintaxis de la respuesta

{
  "success": <SUCCESS>
}

Si la operación se procesa correctamente, <SUCCESS> se configurará en true.

Ejemplo de solicitud

curl 'https://graph.facebook.com/v21.0/106540352242922/settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "storage_configuration": {
    "status": "IN_COUNTRY_STORAGE_ENABLED", 
    "data_localization_region": "BR"
  }
}'

Ejemplo de respuesta

{
  "success": true
}

Paso 2: Registrar el número

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/register para registrar el número de teléfono del negocio.

Sintaxis de la solicitud

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/register

{
  "messaging_product": "whatsapp",
  "pin": "<TWO_STEP_PIN>"
}

Configura <TWO_STEP_PIN> en el PIN de verificación en dos pasos deseado para el número de teléfono del negocio.

Sintaxis de la respuesta

{
  "success": <SUCCESS>
}

Si la operación se procesa correctamente, <SUCCESS> se configurará en true.

Ejemplo de solicitud

curl 'https://graph.facebook.com/v21.0/v21.0/register' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "messaging_product": "whatsapp",
  "pin": "123456"
}'

Ejemplo de respuesta

{
  "success": true
}

Obtener la configuración de almacenamiento local

Usa el punto de conexión GET /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings para obtener la configuración de almacenamiento local de un número de teléfono de WhatsApp Business. Por ejemplo:

curl 'https://graph.facebook.com/v21.0/179776755229976/settings' \
-H 'Authorization: Bearer EAAJB...'

Esta acción devuelve un nodo que representa la configuración de almacenamiento local en el número de teléfono comercial. Por ejemplo:

{
  "storage_configuration": {
    "status": "IN_COUNTRY_STORAGE_ENABLED",
    "data_localization_region": "BR"
  }
}

Desactivar el almacenamiento local

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings para desactivar el almacenamiento local en un número de teléfono de negocio no registrado usando la versión 21.0 de la API o una más reciente. Si usas una versión anterior de la API, consulta Desactivar el almacenamiento local (versión 20 y anteriores).

Sintaxis de la solicitud

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID/>settings

{
  "storage_configuration": {
    "status": "IN_COUNTRY_STORAGE_DISABLED"
  }
}

Configura <COUNTRY_CODE> en el código del país donde se almacenarán los datos en reposo.

Sintaxis de la respuesta

{
  "success": <SUCCESS>
}

Si la operación se procesa correctamente, <SUCCESS> se configurará en true.

Ejemplo de solicitud

curl 'https://graph.facebook.com/v21.0/106540352242922/settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "storage_configuration": {
    "status": "IN_COUNTRY_STORAGE_DISABLED"
  }
}'

Ejemplo de respuesta

{
  "success": true
}

Activar el almacenamiento local (versión 20 y anteriores)

Para activar el almacenamiento local en un número de teléfono de negocio no registrado usando la versión 20.0 de la API o una más reciente:

Paso 1: Revisar el estado de verificación

Usa el punto de conexión GET /<WHATSAPP_BUSINESS_PHONE_NUMBER> y solicita el campo code_verification_status. Si el estado de verificación del código es VERIFIED, sigue directamente en el paso 4. De lo contrario, continúa en el paso 2.

Paso 2: Solicita un código de verificación

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/request_code y solicita un código de verificación. Si la solicitud se procesa correctamente, la API responderá con true y se enviará un código de verificación al número de teléfono del negocio a través del método especificado en el parámetro code_method.

Por ejemplo, esta consulta solicita que se envíe un código de verificación a través de SMS en idioma inglés (de EE. UU.).

curl -X POST 'https://graph.facebook.com/v21.0/110200345501442/request_code?code_method=SMS&language=en_US' \
-H 'Authorization: Bearer EAAJB...'

Usa el código del mensaje entregado en el siguiente paso.

Paso 3: Verifica el número de teléfono del negocio

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/verify_code para verificar el número de teléfono del negocio con el código de verificación incluido en el mensaje que recibiste en el paso anterior.

Por ejemplo:

curl -X POST 'https://graph.facebook.com/v21.0/110200345501442/verify_code?code=123830' \
-H 'Authorization: Bearer EAAJB...'

Paso 4: Registra el número de teléfono del negocio

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/register para registrar el número de teléfono del negocio. Indica el país en el que se deben almacenar los datos en reposo con el parámetro data_localization_region.

Por ejemplo, esta solicitud permite implementar el almacenamiento local en un número de teléfono del negocio y configurar "India" como el país donde se deben almacenar los datos:

curl 'https://graph.facebook.com/v21.0/110200345501442/register' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "messaging_product": "whatsapp",
  "pin": "123456",
  "data_localization_region": "IN"
}'

Desactivar el almacenamiento local (versión 20 y anteriores)

Usa el punto de conexión POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/deregister para desactivar el almacenamiento local en un número de teléfono de negocio usando la versión 20.0 de la API o una más reciente.

Por ejemplo:

curl -X POST 'https://graph.facebook.com/v21.0/110200345501442/deregister' \
-H 'Authorization: Bearer EAAJB...'

Ten en cuenta que con esto se anula el registro del número de teléfono del negocio, de modo que no se puede usar con la API de la nube de WhatsApp. Si deseas continuar usándolo con la API de la nube, pero sin el almacenamiento local activado, debes registrarlo sin incluir el parámetro data_localization_region.

Preguntas frecuentes

P.: ¿Cuáles son las rutas de migración para pasar un número de teléfono a la versión de la API de la nube con almacenamiento local?

Admitimos las rutas de migración a la versión de la API de la nube con almacenamiento local. Aquí se incluye lo siguiente:

  • Número actual de la API de instalaciones locales que migra a la versión de la API de la nube con almacenamiento local
  • Número actual la de API de la nube que migra a la versión de la API de la nube con almacenamiento local
  • Número nuevo de la API de la nube que permite el almacenamiento local

En todos estos escenarios, necesitarás enviar una solicitud POST al punto de conexión /register relacionado con el número de teléfono seleccionado, y, al hacerlo, especifica en un nuevo parámetro data_localization_region el país de destino para el que los datos se deben localizar.

P.: ¿Hay algún riesgo que afecte la migración? ¿Existe algún tiempo de inactividad asociado?

No hay riesgos que afecten la migración. Se trata de un proceso similar al de migrar de la API de instalaciones locales a la API de la nube. Consulta nuestra documentación para desarrolladores aquí. El tiempo de inactividad suele ser inferior a 5 minutos, y no se requiere una nueva verificación del número de teléfono.