Almacenamiento local de la API de nube

El almacenamiento local de la API de nube te permite controlar dónde se almacenan en reposo los datos de tus mensajes. Si tu empresa pertenece a un sector regulado, como el de las finanzas, el gubernamental o el de la asistencia sanitaria, es posible que prefieras que los datos de los mensajes se almacenen en reposo en un país específico a causa de las políticas reglamentarias o de la empresa.

El almacenamiento local de la API de nube proporciona una capa adicional de protección de datos mediante la implementación de controles adicionales para administrar los datos. La función de almacenamiento local comprende dos restricciones adicionales en el entorno de ejecución de la API de nube:

  • TTL (tiempo de vida) de los datos en uso: se implementa una nueva restricción de retención de datos que impone la duración del acceso al contenido de los mensajes de la API de nube en los centros de datos de Meta fuera de la jurisdicción de destino mientras se tratan. Cuando se utilice el almacenamiento local, la API de nube eliminará automáticamente el contenido de los mensajes de los centros de datos de Meta tras un TTL de 60 minutos. No habrá contenido de los mensajes en los servidores de Meta fuera de la jurisdicción de destino pasado el TTL cuando se utilice el almacenamiento local.
  • Ubicación de los datos en reposo: se implementa una nueva restricción de ubicación de datos que impone qué ubicación física puede usar la API de nube como almacenamiento permanente para el contenido de los mensajes. La carga útil del texto y el contenido multimedia de los mensajes entrantes y salientes se almacenará en los almacenes de datos de la API de nube en el país (fuera de EE. UU.).

Cuando se habilita el almacenamiento local para un número de teléfono de empresa, el almacenamiento local de la API de nube utilizará un almacenamiento localizado en el país especificado para la permanencia del contenido de los mensajes en lugar de usar su almacenamiento predeterminado en los EE. UU.

La función de almacenamiento local complementa otros controles de privacidad y seguridad de la API de nube y permite que los clientes aseguren un mayor nivel de cumplimiento con las normativas locales sobre protección de datos.

Datos localizados

La API de nube implementa la localización para el contenido de los mensajes. La función de almacenamiento local cubre los siguientes procesos de mensajes:

  • Mensajes salientes: mensajes que envías a los destinatarios con la API de nube.
  • Mensajes entrantes: mensajes que recibes mediante la API de nube.

La característica de almacenamiento local cubre los siguientes tipos de mensajes:

  • Mensajes de texto: se localiza la carga útil textual (el cuerpo del mensaje).
  • Mensajes de contenido multimedia: se localiza la carga útil del contenido multimedia (audio, documento, imagen o vídeo).
  • Mensajes de plantilla: se localizan los componentes con carga útil de texto o contenido multimedia.

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

El objetivo de la función de almacenamiento local de la API de nube es permitir que tu empresa controle directamente mediante la configuración de la API de nube dónde se almacenan los datos confidenciales en reposo a la vez que te da la flexibilidad de elegir los lugares de ubicación de los datos a nivel mundial.

Regiones disponibles

Las regiones que admiten el almacenamiento local de la API de nube se detallan en las Condiciones de alojamiento de Meta para la API de nube. Puedes consultar las regiones que están disponibles actualmente para el almacenamiento local en el parámetro data_localization_regionestablecido 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 sin registrar.

Limitaciones

Los archivos multimedia subidos por un número de teléfono con el almacenamiento local activado solo son accesibles para ese número de teléfono específico y no se pueden compartir con otros números de teléfono asociados a la empresa.

Activar el almacenamiento local

Sigue los pasos que se detallan a continuación para activar el almacenamiento local en un número de teléfono de empresa sin registrar con la versión 21.0 de la API o una versión superior. Si estás usando 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

Utiliza el extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings para activar el almacenamiento local en el número de teléfono de empresa sin registrar.

Sintaxis de la solicitud

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings

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

Establece el valor de <COUNTRY_CODE> en el código del país donde se deben almacenar los datos en reposo.

Sintaxis de la respuesta

{
  "success": <SUCCESS>
}

Si la operación se realiza correctamente, el valor de <SUCCESS> se establecerá 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 extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/register para registrar el número de teléfono de empresa.

Sintaxis de la solicitud

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/register

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

Establece el valor de <TWO_STEP_PIN> en el PIN de verificación en dos pasos deseado del número de teléfono de empresa.

Sintaxis de la respuesta

{
  "success": <SUCCESS>
}

Si la operación se realiza correctamente, el valor de <SUCCESS> se establecerá 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

Utiliza el extremo 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...'

Esto devuelve un nodo que representa la configuración de almacenamiento local del número de teléfono de empresa. Por ejemplo:

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

Desactivar el almacenamiento local

Usa el extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/settings para desactivar el almacenamiento local en un número de teléfono de empresa sin registrar con la versión 21.0 de la API o una posterior. Si estás usando 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"
  }
}

Establece el valor de <COUNTRY_CODE> en el código del país donde se deben almacenar los datos en reposo.

Sintaxis de la respuesta

{
  "success": <SUCCESS>
}

Si la operación se realiza correctamente, el valor de <SUCCESS> se establecerá 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 empresa sin registrar con la versión 20.0 de la API o una anterior, haz lo siguiente:

Paso 1: Comprobar el estado de verificación

Usa el extremo GET /<WHATSAPP_BUSINESS_PHONE_NUMBER> y solicita el campo code_verification_status. Si el estado de verificación del código es VERIFIED, pasa al paso 4. De lo contrario, sigue con el paso 2.

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

Usa el extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/request_code para solicitar un código de verificación. Si la operación se lleva a cabo correctamente, la API responderá con true y se enviará un código de verificación al número de teléfono de empresa mediante el método especificado en el parámetro code_method.

Por ejemplo, esta consulta solicita el envío de un código de verificación mediante SMS en inglés (configuración regional 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 en el mensaje entregado en el siguiente paso.

Paso 3: Verificar el número de teléfono de empresa

Usa el extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/verify_code para verificar el número de teléfono de empresa con el código de verificación incluido en el mensaje que has recibido 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: Volver a registrar el número de teléfono de empresa

Usa el extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/register para registrar el número de teléfono de empresa. 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 activa el almacenamiento local en un número de teléfono de empresa y establece que el país en el que se deben almacenar los datos sea la India:

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 extremo POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/deregister para desactivar el almacenamiento local en un número de teléfono de empresa con la versión 20.0 de la API o una anterior.

Por ejemplo:

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

Ten en cuenta que, de esta forma, se anula el registro del número de teléfono de empresa, por lo que no podrá usarse con la API de nube de WhatsApp. Si quieres seguir usándolo con la API de nube pero sin tener habilitado el almacenamiento local, debes volver a registrarlo sin incluir el parámetro data_localization_region.

Preguntas frecuentes

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

Admitimos todas las rutas de migración a la versión de la API de nube con almacenamiento local, en las que se incluyen:

  • Número existente de la API local que se migra a la versión de la API de nube con almacenamiento local.
  • Número existente de la API de nube que se migra a la versión de la API de nube con almacenamiento local.
  • Nuevo número de la API de nube que permite el almacenamiento local.

En todos estos casos, tienes que enviar una solicitud POST al extremo /register del número de teléfono seleccionado y especificar el país de destino en el que se deben localizar los datos en un nuevo parámetro data_localization_region.

P. ¿La migración conlleva algún riesgo? ¿Hay algún tiempo de inactividad asociado?

La migración no conlleva ningún riesgo; se trata de un proceso parecido al de migrar de la API local a la API de nube. Consulta nuestra documentación para desarrolladores aquí. El tiempo de inactividad suele ser inferior a cinco minutos y no es necesario volver a verificar el número de teléfono de empresa.