

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Mensajería de texto móvil con Amazon SNS
<a name="sns-mobile-phone-number-as-subscriber"></a>

**importante**  
Se ha actualizado la Guía para desarrolladores de SMS de Amazon SNS. Amazon SNS se ha integrado con [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) para la entrega de mensajes SMS. Esta guía contiene la información más reciente sobre cómo crear, configurar y administrar los mensajes SMS de Amazon SNS.

La mensajería de texto móvil (SMS) de Amazon SNS se ha diseñado para facilitar la entrega de mensajes a diversas plataformas, como aplicaciones web, móviles y empresariales que admitan SMS. Los usuarios pueden enviar mensajes a uno o varios números de teléfono suscribiéndolos a un tema, lo que simplifica el proceso de distribución.

Los mensajes de Amazon SNS se entregan mediante AWS End User Messaging SMS, lo que garantiza una transmisión fiable de los mensajes. En Amazon SNS APIs, puede configurar varias propiedades, como los tipos de mensajes (promocionales o transaccionales), los [límites de gastos mensuales](sms_preferences.md#sms_preferences_console), [las listas de exclusión](sms_manage.md#sms_manage_optout) y la optimización de la entrega de [mensajes](sms_preferences.md#sms_preferences_console).

AWS End User Messaging SMS gestiona la transmisión de mensajes al número de teléfono de destino a través de su red global de suministro de SMS. Administra el enrutamiento, el estado de la entrega y cualquier requisito exigido por las normativas regionales. Para acceder a características adicionales de SMS, como los permisos detallados, los grupos de teléfonos, los conjuntos de configuraciones, el simulador de SMS y las normas nacionales, consulte la [Guía del usuario de AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/configurations.html).

![\[Una ilustración de cómo Amazon SNS se integra AWS End User Messaging SMS para entregar mensajes de texto móviles de forma fiable. Los mensajes pueden enviarse directamente a destinatarios individuales o distribuirse a grupos a través de los temas de Amazon SNS. AWS End User Messaging SMS gestiona el enrutamiento, la entrega y el cumplimiento de los mensajes en toda su red global, lo que garantiza la escalabilidad y la confiabilidad. Esta configuración también permite configurar las preferencias de los mensajes, administrar los límites de gasto y rastrear el estado de la entrega para optimizar la AWS SMS mensajería.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/sns-sms-end-user-messaging.png)


Las siguientes características clave le ayudan a enviar mensajes SMS de Amazon SNS de forma escalable y extensible:

**[Personalice las preferencias de los mensajes](sms_preferences.md)**  
Personalice las entregas de SMS para Cuenta de AWS usted configurando las preferencias de SMS en función de su presupuesto y caso de uso. Por ejemplo, puede elegir si los mensajes deben optimizarse en función de la rentabilidad o la fiabilidad de la entrega.

**[Establezca cuotas de gasto](channels-sms-awssupport-spend-threshold.md)**  
Adapte sus entregas de SMS especificando cuotas de gasto de las entregas de mensajes individuales y las cuotas de gasto mensuales de su Cuenta de AWS. Cuando lo exijan las leyes y reglamentos locales (como los de EE. UU. y Canadá), los destinatarios de los SMS [pueden](sms_manage.md#sms_manage_optout) optar por no recibirlos, lo que significa que deciden dejar de Cuenta de AWS recibir sus mensajes SMS. Cuando un destinatario se da de baja en la recepción de mensajes, usted puede, dentro de unos límites, volver a dar de alta el número de teléfono para reanudar el envío de mensajes.

**[Envíe mensajes SMS a todo el mundo](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)**  
Amazon SNS admite la mensajería SMS en varias regiones, lo que le permite enviar mensajes a más de 240 países y regiones.

## ¿Cómo entrega Amazon SNS mis mensajes SMS?
<a name="sns-sms-pinpoint-integration"></a>

Cuando solicita a Amazon SNS que envíe SMS en su nombre, los mensajes se envían mediante AWS End User Messaging SMS. La integración entre Amazon SNS y Amazon AWS End User Messaging SMS ofrece las siguientes ventajas:

**[Políticas de IAM](sns-mobile-phone-number-getting-started.md#sns-mobile-phone-number-prerequisites)**  
Puede aprovechar las políticas de IAM y de recursos para controlar y distribuir el acceso a sus recursos de SMS entre otros AWS servicios y regiones.

**Configuraciones de [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/configurations.html)**  
Se utilizan todas las configuraciones relacionadas con el identificador de origen (creación, actualización de la configuración, aprovisionamiento de un nuevo origen IDs, cambio de plantillas de registro). AWS End User Messaging SMS

**[Facturación de AWS End User Messaging SMS](https://aws.amazon.com/sns/sms-pricing/)**  
Sin embargo, toda la facturación por SMS está lista. AWS End User Messaging SMS Puede consolidar sus AWS gastos en sus cargas de trabajo de SMS y, al mismo tiempo, adquirir y gestionar sus recursos de SMS en una ubicación central.

# Introducción a los SMS con Amazon SNS
<a name="sns-mobile-phone-number-getting-started"></a>

**importante**  
Se ha actualizado la Guía para desarrolladores de SMS de Amazon SNS. Amazon SNS se ha integrado con [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) para la entrega de mensajes SMS. Esta guía contiene la información más reciente sobre cómo crear, configurar y administrar los mensajes SMS de Amazon SNS.

Este tema lo guía a través de la administración de su entorno limitado de SMS y la configuración de IAM y políticas basadas en recursos para conceder a Amazon SNS los permisos necesarios para acceder y utilizar el. AWS End User Messaging SMS APIs 

## Requisitos previos
<a name="sns-mobile-phone-number-prerequisites"></a>

Amazon SNS recomienda que actualice su política de IAM para incluir las siguientes acciones a fin de garantizar un control y una visibilidad exhaustivos de sus recursos de Amazon SNS:
+ [`AmazonSNSFullAccess`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSNSFullAccess)
+ [`AmazonSNSReadOnly`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSNSReadOnlyAccess) 

# Uso del entorno de pruebas de SMS de Amazon SNS
<a name="sns-sms-sandbox"></a>

Las cuentas de SMS de Amazon SNS recién creadas se colocan automáticamente en el entorno de pruebas de SMS para garantizar la seguridad tanto de los clientes como de los destinatarios de AWS, lo que mitiga el riesgo de fraude y abuso. Este entorno sirve como un espacio seguro para fines de prueba y desarrollo. Mientras trabaje dentro del entorno de pruebas de SMS, tendrá acceso a todas las características de Amazon SNS, pero se aplicarán determinadas limitaciones:
+ Solo puede enviar mensajes SMS a números de teléfono de destino verificados.
+ Puede tener hasta 10 números de teléfono de destino verificados.
+ Solo puede eliminar números de teléfono de destino después de que hayan transcurrido 24 horas o más desde la verificación o el último intento de verificación.

Cuando su cuenta se mueve fuera del entorno de pruebas, estas restricciones se eliminan y puede enviar mensajes SMS a cualquier destinatario.

## Primeros pasos
<a name="sns-mobile-phone-number-getting-started-steps"></a>

Las nuevas cuentas de SMS de Amazon SNS se colocan en un entorno de pruebas de SMS. Siga estos pasos para crear y administrar números de teléfono en su entorno de pruebas, crear números de origen e ID de remitente y registrar su empresa.

1. Añada un **número de teléfono de destino** al entorno de pruebas de SMS. Para obtener más información sobre cómo añadir, administrar y mover números de teléfono fuera del entorno de pruebas de SMS de Amazon SNS, consulte [Cómo añadir y verificar números de teléfono en el entorno de pruebas de SMS de Amazon SNS](sns-sms-sandbox-verifying-phone-numbers.md).

1. Cree una **identidad de origen** que los destinatarios vean en los dispositivos cuando les envíe un mensaje SMS. Para obtener más información sobre las identidades de origen, incluidos los distintos tipos que puede utilizar, consulte la documentación de [Identidades de origen de los mensajes SMS en Amazon SNS](channels-sms-originating-identities.md).

1. **Registre** la empresa. Algunos países requieren que registre la identidad de su empresa para poder comprar números de teléfono o identificadores de remitentes y revisar los mensajes que envía a los destinatarios de sus países. Para obtener más información sobre los países que requieren registro, consulte [Regiones y países admitidos con AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) en la *Guía del usuario de AWS End User Messaging SMS*.

1. **Envíe** sus mensajes a un tema o a un teléfono móvil. Para obtener más información, consulte [Envío de mensajes SMS con Amazon SNS](sms_sending-overview.md).

# Cómo añadir y verificar números de teléfono en el entorno de pruebas de SMS de Amazon SNS
<a name="sns-sms-sandbox-verifying-phone-numbers"></a>

Para poder empezar a enviar mensajes SMS desde tu Cuenta de AWS entorno limitado de [SMS,](sns-sms-sandbox.md) debes completar los siguientes pasos de configuración. Esto garantiza que su cuenta esté lista para recibir mensajes SMS y que los números de teléfono de destino estén debidamente verificados.

1. Cree un **[ID de origen](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-number-types.html)**. Al igual que con las cuentas fuera del entorno de pruebas de SMS, se necesita un ID de origen para poder enviar mensajes SMS a destinatarios en algunos países o regiones.

1. Añada los **números de teléfono de destino** a los que quiera enviar mensajes en el entorno de pruebas de SMS.

1. Compruebe los **números de teléfono** para asegurarse de que los números de teléfono de destino son válidos para su uso en los mensajes SMS.

**Añadido y verificación de números de teléfono de destino**

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, elija una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. En el panel de navegación, elija **Text messaging (SMS) (Mensajería de texto (SMS))**.

1. En la sección **Números de teléfono de destino del entorno de pruebas**, elija **Agregar número de teléfono**.

1. En **Detalles del destino**, proporcione la siguiente información y, a continuación, seleccione **Agregar número de teléfono**:
   + **Código de país** y **número de teléfono** del destino.
   + El **idioma** en el que quiera que se envíe el mensaje de verificación.

1. Tras agregar el número de teléfono, Amazon SNS enviará una OTP al número de teléfono de destino proporcionado. Se requiere esta OTP para la verificación.

1. Recibirá la OTP como un mensaje SMS estándar en el **número de teléfono de destino** que proporcionó.
   + Si no recibe la OTP en 15 minutos, seleccione **Reenviar el código de verificación** en la consola de Amazon SNS.
   + Puede volver a enviar la OTP hasta cinco veces en un periodo de 24 horas.

1. Cuando reciba la OTP, introdúzcala en el cuadro **Código de verificación** y seleccione **Verificar número de teléfono**.

1. Compruebe el **estado de la verificación**.
   + Después de verificar correctamente el número de teléfono, el número de teléfono y su estado de verificación aparecerán en la sección **Números de teléfono de destino del entorno de pruebas**.
   + Si el estado es **Pendiente**, la verificación no se realizó de forma correcta. Esto puede suceder si, por ejemplo, no ha introducido el código de país correctamente.
   + Solo puede eliminar números de teléfono pendientes o verificados después de que hayan transcurrido 24 horas o más desde el último intento de verificación.

1. Si desea usar el mismo número de teléfono de destino en otras regiones, **repita** los pasos anteriores para cada región en la que pretenda usarlo.

## Solución de problemas de no recepción de un texto OTP
<a name="sns-sms-sandbox-troubleshooting-phone-numbers"></a>

Solucione los problemas comunes que pueden impedir que un número de teléfono reciba textos OTP.
+ **Límite de gasto de SMS de Amazon SNS:** si su Cuenta de AWS ha superado el límite de gasto para enviar mensajes SMS, es posible que no se entreguen más mensajes, incluidos los textos OTP, hasta que se aumente el límite o se resuelva el problema de facturación.
+ **Número de teléfono no dado de alta para recibir notificaciones por SMS:** en algunos países o regiones, los destinatarios deben darse de alta para recibir mensajes SMS de códigos cortos, que suelen utilizarse en los textos OTP. Si el número de teléfono del destinatario no se ha dado de alta, no recibirá el texto OTP.
+ **Restricciones o filtros del operador:** algunos operadores de telefonía móvil pueden tener restricciones o mecanismos de filtrado que impidan la entrega de determinados tipos de mensajes SMS, incluidos los textos OTP. Esto podría deberse a las políticas de seguridad o a las medidas antispam implementadas por el operador.
+ **Número de teléfono no válido o incorrecto:** si el número de teléfono proporcionado por el destinatario es incorrecto o no es válido, no se entregará el texto OTP.
+ **Problemas de red:** los problemas o interrupciones temporales de la red podrían impedir la entrega de mensajes SMS, incluidos los textos OTP, al teléfono del destinatario.
+ **Retraso en la entrega:** en algunos casos, los mensajes SMS pueden sufrir retrasos en la entrega debido a la congestión de la red u otros factores. Es posible que el texto OTP se acabe entregando, pero podría retrasarse más allá del plazo previsto.
+ **Suspensión o cancelación de la cuenta:** si hay problemas con su cuenta Cuenta de AWS, como la falta de pago o el incumplimiento de las AWS condiciones del servicio, las capacidades de mensajería de Amazon SNS, incluidos los mensajes de texto OTP, pueden suspenderse o cancelarse.

# Eliminación de números de teléfono del entorno de pruebas de SMS de Amazon SNS
<a name="sns-sms-sandbox-deleting-phone-numbers"></a>

Puede eliminar números de teléfono de destino pendientes o verificados desde el [entorno de pruebas de SMS](sns-sms-sandbox.md).

**importante**  
Solo puede eliminar un número de teléfono 24 horas después de [verificarlo](sns-sms-sandbox-verifying-phone-numbers.md) o 24 horas después de su último intento de verificación.

**Para eliminar números de teléfono de destino del entorno de pruebas de SMS, siga estos pasos:**

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, elija una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html) en la que añadió un número de teléfono de destino.

1. En el panel de navegación, elija **Mensajería de texto (SMS)**.

1. En la página **Mensajería de texto móvil (SMS)**, vaya a la sección **Números de teléfono de destino del entorno de pruebas**.

1. Elija el número de teléfono específico que desea eliminar y, a continuación, seleccione **Eliminar número de teléfono**.

1. Para confirmar que desea eliminar el número de teléfono, ingrese **delete me** y, a continuación, elija **Eliminar**.

   Asegúrese de que hayan transcurrido 24 horas o más desde que verificó o intentó verificar el número de teléfono de destino antes de continuar con la eliminación.

1. Repita estos pasos en cada región en la que haya agregado el número de teléfono de destino y que ya no tenga previsto utilizar.

# Cómo salir del entorno de pruebas de SMS de Amazon SNS
<a name="sns-sms-sandbox-moving-to-production"></a>

Para Cuenta de AWS salir del entorno limitado de los [SMS, primero](sns-sms-sandbox.md) tendrá que añadir, verificar y probar los números de teléfono de destino. Después de hacer esto, crea un caso con AWS Support.

**Para solicitar que tu AWS cuenta se retire del entorno limitado de SMS**

1. **Verificar números de teléfono**

   1. Mientras Cuenta de AWS se encuentre en el entorno limitado de SMS, abra la consola de [Amazon SNS](https://console.aws.amazon.com/sns/home).

   1. En el panel de navegación, bajo Móvil, elija **Mensajería de texto (SMS)**.

   1. En la sección de números de teléfono de destino del entorno de pruebas, [añada y verifique](sns-sms-sandbox-verifying-phone-numbers.md) uno o varios números de teléfono de destino. Esta verificación garantiza que pueda enviar y recibir mensajes correctamente.

1. **Probar la publicación de SMS**

   1. Confirme que puede enviar y recibir mensajes en al menos un número de teléfono de destino verificado. Para obtener instrucciones más detalladas sobre cómo publicar mensajes SMS, consulte [Publicación de mensajes SMS en un teléfono móvil mediante Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

1. **Iniciar la edición del entorno de pruebas**

   1. En la página **Mensajería de texto móvil (SMS)** de la consola de Amazon SNS, en **Información de la cuenta**, elija **Salir de entorno de pruebas de SMS**. Esta acción le redirige al [Centro de soporte de Amazon](https://support.console.aws.amazon.com/support/home?#/case/create?issueType=service-limit-increase) y crea automáticamente un caso de soporte con la opción **Aumento de la cuota de servicio** seleccionada.

1. **Rellenar el formulario**

   1. En el formulario de soporte, bajo **Aumento de la cuota de servicio**, haga lo siguiente:

     1. Elija **Mensajería de texto SNS** como servicio.

     1. Proporcione la **URL del sitio web** o el **nombre de la aplicación** desde la que desea enviar los mensajes SMS.

     1. Elija el tipo de mensajes que quiere enviar: **Contraseña de un solo uso**, **Promocional** o **Transaccional**.

     1. Elija la **Región de AWS** desde donde va a enviar los mensajes SMS.

     1. Especifique los **países** o las **regiones** donde piensa enviar mensajes SMS.

     1. Describa cómo sus clientes**se dan de alta para recibir mensajes**.

     1. Incluya cualquier **plantilla de mensaje** que desee utilizar.

1. **Especificar la cuota y la región**

   1. En **Requests** (Solicitudes), realice el siguiente procedimiento:

     1. Elija el **Región de AWS**lugar al que quiere mover su. Cuenta de AWS

     1. Elija **Límites generales** en **Tipo de recurso**.

     1. En **Cuota**, elija **Salir del entorno de pruebas de SMS**.

     1. (Opcional) Para solicitar aumentos adicionales u otros ajustes, elija **Agregar otra solicitud** y especifique los detalles necesarios.

     1. En **Nuevo valor de cuota**, especifique el **límite** en USD que va a solicitar.

1. **Detalles adicionales**

   1. En **Descripción del caso**, proporcione cualquier detalle adicional relevante para su solicitud.

   1. En **Opciones de contacto**, elija su **idioma de contacto preferido**.

1. **Enviar la solicitud**

   1. Elija **Enviar** para enviar la solicitud a Soporte.

El Soporte equipo proporcionará una respuesta inicial a su solicitud en un plazo de 24 horas.

Para evitar que nuestros sistemas se utilicen para enviar contenido no solicitado o malicioso, consideramos cada solicitud con detenimiento. Si podemos, accederemos a su solicitud dentro de ese plazo de 24 horas. Sin embargo, si necesitamos que nos brinde más información, puede que la solicitud tarde más tiempo en concederse.

Si su caso de uso no se ajusta a nuestras políticas, es posible que no podamos atender su solicitud.

# Identidades de origen de los mensajes SMS en Amazon SNS
<a name="channels-sms-originating-identities"></a>

**importante**  
Se ha actualizado la Guía para desarrolladores de SMS de Amazon SNS. Amazon SNS se ha integrado con [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) para la entrega de mensajes SMS. Esta guía contiene la información más reciente sobre cómo crear, configurar y administrar los mensajes SMS de Amazon SNS.

Las identidades de origen de los mensajes SMS son identificadores que se utilizan para representar al remitente de un mensaje SMS. Puede identificarse ante sus destinatarios mediante los siguientes tipos de identidades de origen:

**Números de origen**  
Una cadena numérica que identifica el número de teléfono del remitente de un mensaje SMS. Existen varios tipos de números de origen, como los códigos largos (números de teléfono estándar que suelen tener diez o más dígitos), los códigos largos de diez dígitos (10DLC), los números gratuitos (TFN) y los códigos cortos (números de teléfono que contienen entre cuatro y siete dígitos).  
La compatibilidad con los números de origen no está disponible en países donde las leyes locales exigen el uso del remitente IDs en lugar de los números de origen. Cuando envía un mensaje SMS con un número de origen, el dispositivo del destinatario muestra el número de origen como el número de teléfono del remitente. Puede especificar diferentes números de origen en función del caso de uso.  
Para obtener más información, consulte [Números de teléfono](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) en la *Guía del usuario de AWS End User Messaging SMS *.  
Para ver una lista de todos los números de origen existentes en su AWS cuenta, en el panel de navegación de la consola de [Amazon SNS](https://console.aws.amazon.com/sns/home), **seleccione** Números de origen.

**Remitente IDs**  
Un nombre alfabético que identifica al remitente de un mensaje SMS. Cuando se envía un mensaje SMS mediante un ID de remitente y el destinatario se encuentra en una zona donde se admite la autenticación mediante ID de remitente, este último aparece en el dispositivo del destinatario en lugar del número de teléfono. El ID de remitente proporciona al destinatario del SMS más información sobre el remitente que un número de teléfono, un código largo o un código corto.  
 IDs Los remitentes son compatibles en varios países y regiones de todo el mundo. En algunos lugares, si una empresa envía mensajes SMS a clientes individuales, es imprescindible usar un ID de remitente previamente registrado ante un organismo de control o un grupo del sector. Para obtener una lista completa de los países y regiones que admiten o requieren el envío de mensajes SMS IDs, consulte [los países y regiones compatibles con la mensajería SMS AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) en la *Guía del AWS End User Messaging SMS usuario*.  
El uso del remitente no conlleva ningún cargo adicional IDs. Sin embargo, la asistencia y los requisitos de autenticación del ID de remitente varían según el país. Varios mercados importantes (incluidos Canadá, China y Estados Unidos) no admiten el uso IDs del remitente. En algunas zonas, se exige que las empresas que envían mensajes SMS a clientes individuales utilicen un ID de remitente previamente registrado en un organismo de control o un grupo del sector.  
Para obtener información adicional, consulta la sección [Remitente IDs](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id.html) en la *Guía AWS End User Messaging SMS del usuario*.

# Configuración de mensajes SMS en Amazon SNS
<a name="channels-sms-configurations"></a>

**importante**  
Se ha actualizado la Guía para desarrolladores de SMS de Amazon SNS. Amazon SNS se ha integrado con [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) para la entrega de mensajes SMS. Esta guía contiene la información más reciente sobre cómo crear, configurar y administrar los mensajes SMS de Amazon SNS.

Puede utilizar las configuraciones de SMS en Amazon SNS para configurar las preferencias de SMS de forma que se adapten a sus necesidades, como ajustar las cuotas de gasto y configurar el registro del estado de entrega. En este tema también se proporciona información sobre cómo publicar mensajes SMS en los temas mediante la consola de Amazon SNS y AWS SDK, gestionar las cuotas de forma eficiente y obtener estadísticas detalladas sobre la actividad de mensajes SMS.

# Envío de mensajes SMS con Amazon SNS
<a name="sms_sending-overview"></a>

En esta sección se describe cómo enviar mensajes SMS con Amazon SNS, incluida la publicación en un tema, la suscripción de números de teléfono a los temas, la configuración de los atributos de los mensajes y la publicación directa en teléfonos móviles.

## Publicación de mensajes SMS en un tema de Amazon SNS
<a name="sms_publish-to-topic"></a>

Puede publicar un único mensaje SMS en muchos números de teléfono a la vez mediante la suscripción de dichos números de teléfono a un tema de Amazon SNS. Un tema de SNS es un canal de comunicación al que puede agregar suscriptores y publicar mensajes para todos ellos. El suscriptor recibe todos los mensajes publicados sobre el tema hasta que canceles la suscripción o hasta que el suscriptor opte por no recibir mensajes SMS de tu AWS cuenta.

### Enviar un mensaje a un tema mediante la consola AWS
<a name="sms_publish-to-topic_console"></a>

**Creación de un tema**

Ejecute los pasos siguientes si todavía no tiene un tema al que quiera enviar mensajes SMS.

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, elija una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. En el panel de navegación, elija **Temas**.

1. En la página **Temas**, elija **Crear tema**.

1. En la página **Crear tema**, en **Detalles**, haga lo siguiente:

   1. En **Tipo**, seleccione **Estándar**.

   1. En **Nombre**, ingrese un nombre para el tema.

   1. (Opcional) En **Nombre de visualización**, ingrese un prefijo personalizado para los mensajes SMS. Cuando envía un mensaje al tema, Amazon SNS anexa delante el nombre de visualización seguido de un corchete angular de cierre (>) y un espacio. Los nombres de visualización no distinguen entre mayúsculas y minúsculas, y Amazon SNS convierte los nombres de visualización en caracteres en mayúsculas. Por ejemplo, si el nombre de visualización de un tema es `MyTopic` y el mensaje es `Hello World!`, el mensaje aparecerá de la siguiente manera:

      ```
      MYTOPIC> Hello World!
      ```

1. Seleccione **Crear tema**. El nombre del tema y el nombre de recurso de Amazon (ARN) aparecen en la página **Temas**.

**Para crear una suscripción de SMS, siga estos pasos:**

Puede utilizar las suscripciones para enviar un mensaje SMS a varios destinatarios al publicar el mensaje una sola vez en su tema.
**nota**  
Cuando empiece a utilizar Amazon SNS para enviar mensajes SMS, su AWS cuenta estará en el entorno limitado de *SMS*. El entorno de pruebas de SMS proporciona un entorno seguro para que pruebe las características de Amazon SNS sin arriesgar su reputación como remitente de SMS. Mientras su cuenta se encuentre en el entorno de pruebas de SMS, puede utilizar todas las características de Amazon SNS, pero solo puede enviar mensajes SMS a números de teléfono de destino verificados. Para obtener más información, consulte [Uso del entorno de pruebas de SMS de Amazon SNS](sns-sms-sandbox.md).

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el panel de navegación, seleccione **Suscripciones**.

1. En la página **Subscriptions (Suscripciones)**, elija **Create subscription (Crear suscripción)**.

1. En la página **Crear suscripción**, en **Detalles**, haga lo siguiente:

   1. En **ARN de tema**, ingrese o elija el nombre de recurso de Amazon (ARN) del tema al que desea enviar mensajes SMS.

   1. En **Protocolo**, elija **SMS**.

   1. En **Punto de enlace**, ingrese el número de teléfono al que desea suscribirse al tema.

1. Seleccione **Crear subscripción**. La información de la suscripción aparece en la página **Suscripciones**.

   Para agregar más números de teléfono, repita estos pasos. También puede agregar otros tipos de suscripciones, como el correo electrónico.

**Cómo enviar un mensaje**

Cuando publica un mensaje en un tema, Amazon SNS intenta entregar dicho mensaje a todos los números de teléfono que están suscritos al tema.

1. En [Consola de Amazon SNS](https://console.aws.amazon.com/sns/home), en la página **Temas**, elija el nombre del tema al que desea enviar mensajes SMS.

1. En la página de detalles del tema, seleccione **Publish message (Publicar mensaje)**.

1. En la página **Publicar mensaje en el tema**, en **Detalles del mensaje**, haga lo siguiente:

   1. En **Asunto**, deje el campo en blanco a menos que el tema contenga suscripciones de correo electrónico y quiera publicar tanto en las suscripciones de correo electrónico como en las de SMS. Amazon SNS utiliza el **asunto** que ingresa como línea de asunto del correo electrónico.

   1. (Opcional) En **Período de vida (TLL)**, ingrese un número de segundos que Amazon SNS tiene para enviar su mensaje SMS a los suscriptores de terminales de aplicaciones móviles.

1. En **Cuerpo del mensaje**, haga lo siguiente:

   1. En **Estructura del mensaje**, elija **Carga idéntica para todos los protocolos de entrega** para enviar el mismo mensaje a todos los tipos de protocolo suscritos al tema. O bien, elija **Carga personalizada para cada protocolo de entrega** para personalizar el mensaje para suscriptores de diferentes tipos de protocolo. Por ejemplo, puede escribir un mensaje predeterminado para los suscriptores de números de teléfono y un mensaje personalizado para los suscriptores de correo electrónico.

   1. En **Cuerpo del mensaje para enviar al punto de enlace**, ingrese su mensaje o sus mensajes personalizados por protocolo de entrega.

      Si su tema tiene un nombre de visualización, Amazon SNS lo agrega al mensaje, lo que aumenta la longitud del mensaje. La longitud del nombre de visualización es el número de caracteres del nombre más dos caracteres para el corchete angular de cierre (>) y el espacio que Amazon SNS agrega.

      Para obtener información acerca de las cuotas de tamaño de los mensajes SMS, consulte [Publicación de mensajes SMS en un teléfono móvil mediante Amazon SNS](#sms_publish-to-phone).

1. (Opcional) En el caso de **los atributos** de los mensajes, añada metadatos del mensaje, como marcas de tiempo, firmas y. IDs

1. Elija **Publish message (Publicar mensaje)**. Amazon SNS envía el mensaje SMS y muestra un mensaje de confirmación.

### Enviar un mensaje a un tema mediante el AWS SDKs
<a name="sms_publish-to-topic_sdk"></a>

Para usar un AWS SDK, debe configurarlo con sus credenciales. Para obtener más información, consulte [Los archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) en la *Guía de referencia de herramientas AWS SDKs y herramientas*.

En el siguiente ejemplo de código, se muestra cómo:
+ Crear un tema de Amazon SNS
+ Suscribir números de teléfono al tema
+ Publique mensajes SMS en el tema para que todos los números de teléfono suscritos reciban el mensaje a la vez.

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 
Cree un tema y devuelva su ARN.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CreateTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicName>

                Where:
                   topicName - The name of the topic to create (for example, mytopic).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicName = args[0];
        System.out.println("Creating a topic with name: " + topicName);
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        String arnVal = createSNSTopic(snsClient, topicName);
        System.out.println("The topic ARN is" + arnVal);
        snsClient.close();
    }

    public static String createSNSTopic(SnsClient snsClient, String topicName) {
        CreateTopicResponse result;
        try {
            CreateTopicRequest request = CreateTopicRequest.builder()
                    .name(topicName)
                    .build();

            result = snsClient.createTopic(request);
            return result.topicArn();

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
}
```
Suscriba un punto de enlace a un tema.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.SubscribeRequest;
import software.amazon.awssdk.services.sns.model.SubscribeResponse;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SubscribeTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicArn> <phoneNumber>

                Where:
                   topicArn - The ARN of the topic to subscribe.
                   phoneNumber - A mobile phone number that receives notifications (for example, +1XXX5550100).
                """;

        if (args.length < 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        subTextSNS(snsClient, topicArn, phoneNumber);
        snsClient.close();
    }

    public static void subTextSNS(SnsClient snsClient, String topicArn, String phoneNumber) {
        try {
            SubscribeRequest request = SubscribeRequest.builder()
                    .protocol("sms")
                    .endpoint(phoneNumber)
                    .returnSubscriptionArn(true)
                    .topicArn(topicArn)
                    .build();

            SubscribeResponse result = snsClient.subscribe(request);
            System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Establezca atributos en el mensaje, como el ID del remitente, el precio máximo y su tipo. Los atributos de mensaje son opcionales.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Publique un mensaje en un tema. El mensaje se envía a cada suscriptor.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class PublishTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <message> <phoneNumber>

                Where:
                   message - The message text to send.
                   phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String message = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        pubTextSMS(snsClient, message, phoneNumber);
        snsClient.close();
    }

    public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) {
        try {
            PublishRequest request = PublishRequest.builder()
                    .message(message)
                    .phoneNumber(phoneNumber)
                    .build();

            PublishResponse result = snsClient.publish(request);
            System.out
                    .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```

------

## Publicación de mensajes SMS en un teléfono móvil mediante Amazon SNS
<a name="sms_publish-to-phone"></a>

Puede utilizar Amazon SNS para enviar mensajes SMS de forma directa a un teléfono móvil sin suscribir el número de teléfono a un tema de Amazon SNS.

**nota**  
Suscribir números de teléfono a un tema es útil si quiere enviar un mensaje a varios números de teléfono a la vez. Para obtener instrucciones sobre cómo publicar un mensaje SMS en un tema, consulte [Publicación de mensajes SMS en un tema de Amazon SNS](#sms_publish-to-topic).

Cuando se envía un mensaje, se puede controlar si el mensaje se optimiza en función del costo o de la fiabilidad de la entrega. También puede especificar un [ID de remitente o número de origen](channels-sms-originating-identities.md). Si envía el mensaje mediante programación mediante la API de Amazon SNS o AWS SDKs la, puede especificar un precio máximo para la entrega del mensaje.

Cada mensaje SMS puede contener hasta 140 bytes y la cuota de caracteres depende del esquema de codificación. Por ejemplo, un mensaje SMS puede contener:
+ 160 caracteres GSM
+ 140 caracteres ASCII
+ 70 caracteres UCS-2

Si publica un mensaje que exceda la cuota de tamaño, Amazon SNS lo envía como varios mensajes, cada uno de los cuales respetará la cuota. Los mensajes no se dividen en mitad de una palabra, sino en el espacio entre palabras. La cuota de tamaño total de una acción de publicación SMS es 1600 bytes.

Al enviar un mensaje SMS, especifique el número de teléfono mediante el formato E.164, una estructura de numeración de teléfono estándar utilizada para las telecomunicaciones internacionales. Los números de teléfono que siguen este formato pueden tener un máximo de 15 dígitos junto con el prefijo de un signo más (\$1) y el código del país. Por ejemplo, un número de teléfono de EE. UU. en formato E.164 aparece como \$11. XXX5550100

### Envío de un mensaje (consola)
<a name="sms_publish_console"></a>

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, elija una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. En el panel de navegación, elija **Text messaging (SMS) (Mensajería de texto (SMS))**.

1. En la página **Mensajería de texto móvil (SMS)**, elija **Publicar mensaje de texto**.

1. En la página **Publicar mensaje SMS**, para el **tipo de mensaje.**, elija una de las siguientes opciones:
   + **Promotional**: mensajes que no son de importancia, como mensajes de marketing.
   + **Transactional**: mensajes de importancia que admiten transacciones del cliente, como claves de acceso de un solo uso para la autenticación multifactor.
**nota**  
Esta opción de nivel de mensaje anula el tipo de mensaje predeterminado de nivel de cuenta. Puede establecer un tipo de mensaje predeterminado a nivel de cuenta desde la sección **Preferencias de mensajes de texto** de la página **Mensajería de texto móvil (SMS)**.

   Para obtener información sobre los mensajes promocionales y transaccionales, consulte [Precios de SMS en todo el mundo](https://aws.amazon.com/sns/sms-pricing/).

1. En **Número de teléfono de destino**, ingrese el número de teléfono al que desea enviar el mensaje.

1. En **Mensaje**, ingrese el mensaje que va a enviar.

1. (Opcional) En **Identidades de origen**, especifique cómo identificarse ante sus destinatarios:
   + Para especificar un **ID de remitente**, ingrese un ID personalizado que contenga 3 a 11 caracteres alfanuméricos, incluida al menos una letra y sin espacios. El ID de remitente se muestra como el remitente del mensaje en el dispositivo receptor. Por ejemplo, puede utilizar la marca de su negocio para facilitar el reconocimiento del origen del mensaje.

     El soporte para el remitente IDs varía según el país y and/or la región. Por ejemplo, los mensajes que se entregan a números de teléfono de los EE. UU. no mostrarán el ID de remitente. Para conocer los países y regiones que admiten remitentes IDs, consulta la [sección Países y regiones compatibles con la mensajería SMS AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) en la *Guía del AWS End User Messaging SMS usuario*.

     Si no especifica un ID de remitente, se mostrará una de las siguientes características como identidad de origen:
     + En los países que admiten códigos largos, se muestra el código largo.
     + *En los países en los que solo IDs se admiten remitentes, se muestra NOTICE.*

     Este ID de remitente de nivel de mensaje anula el ID de remitente predeterminado, que se establece en la página **Text messaging preferences (Preferencias de la mensajería de texto)**.
   + Para especificar un **número de origen**, ingrese una cadena de 5 a 14 números que se mostrará como número de teléfono del remitente en el dispositivo del receptor. Esta cadena debe coincidir con un número de origen que esté configurado en su página Cuenta de AWS para el país de destino. El número de origen puede ser un número de 10 DLC, un número gratuito, un código person-to-person largo o un código corto. Para obtener más información, consulte [Identidades de origen de los mensajes SMS en Amazon SNS](channels-sms-originating-identities.md).

     Si no especifica un número de origen, Amazon SNS selecciona un número de origen que se utilizará para el mensaje de texto SMS, en función de la configuración de su Cuenta de AWS .

1. Si envía mensajes SMS a destinatarios en India, expanda **Atributos específicos del país** y especifique los atributos siguientes:
   + **ID de la identidad**: ID entidad o ID de entidad principal (PE) para enviar mensajes SMS a destinatarios en la India. Este ID es una cadena única de 1 a 50 caracteres que la Autoridad Reguladora de las Telecomunicaciones de la India (TRAI) proporciona para identificar la entidad que ha registrado en la TRAI.
   + **ID de plantilla**: ID de plantilla para enviar mensajes SMS a destinatarios en la India. Este ID es una cadena única de 1 a 50 caracteres que proporciona la TRAI para identificar la plantilla que registró en la TRAI. El ID de plantilla debe estar asociado al ID de remitente que especificó para el mensaje.

   Para obtener más información sobre cómo enviar mensajes SMS a destinatarios en la India, consulte [India sender ID registration process](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-sms-senderid-india.html) en la *Guía del usuario de AWS End User Messaging SMS *.

1. Elija **Publish message (Publicar mensaje)**.

**sugerencia**  
Para enviar mensajes SMS desde un número de origen, también puede elegir **números de origen** en el panel de navegación de la consola de Amazon SNS. Elija un número de origen que incluya **SMS** en la columna **Capacidades** y, a continuación, elija **Publicar mensajes de texto**.

### Enviar un mensaje ()AWS SDKs
<a name="sms_publish_sdk"></a>

Para enviar un mensaje SMS mediante una de las AWS SDKs, utilice la operación de API de ese SDK que corresponda a la `Publish` solicitud de la API de Amazon SNS. Con esta solicitud, puede enviar un mensaje SMS directamente a un número de teléfono. También puede utilizar el parámetro `MessageAttributes` para establecer valores para los siguientes nombres de atributo:

**`AWS.SNS.SMS.SenderID`**  
Un ID personalizado que contiene entre 3 y 11 caracteres alfanuméricos o guiones (-), entre ellos al menos una letra, y ningún espacio. El ID de remitente aparece como el remitente del mensaje en el dispositivo receptor. Por ejemplo, puede utilizar la marca de su negocio para facilitar el reconocimiento del origen del mensaje.  
El soporte para el remitente IDs varía según el país o la región. Por ejemplo, los mensajes que se entregan a números de teléfono de los EE. UU. no muestra el ID de remitente. Para ver una lista de los países o regiones que admiten remitentes IDs, consulta [los países y regiones compatibles con la mensajería SMS AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) en la *Guía del AWS End User Messaging SMS usuario*.  
Si no especifica un ID de remitente, aparece un [código largo](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-long-code.html) como ID de remitente en los países o regiones admitidos. Para los países o regiones que requieren un ID de remitente alfabético, aparece *AVISO* como ID de remitente.  
Este atributo de nivel de mensaje anula el atributo de nivel de cuenta `DefaultSenderID`, que se puede establecer mediante la solicitud `SetSMSAttributes`.

**`AWS.MM.SMS.OriginationNumber`**  
Una cadena personalizada de 5 a 14 números, que puede incluir un signo más inicial opcional (`+`). Esta cadena de números aparece como el número de teléfono del remitente en el dispositivo receptor. La cadena debe coincidir con un número de origen que esté configurado en tu AWS cuenta para el país de destino. El número de origen puede ser un número de 10 DLC, un número gratuito, un código largo person-to-person (P2P) o un código corto. Para obtener más información, consulte [Phone numbers](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) en la *Guía del usuario de AWS End User Messaging SMS *.  
Si no especificas un número de origen, Amazon SNS elegirá un número de origen en AWS función de la configuración de tu cuenta.

**`AWS.SNS.SMS.MaxPrice`**  
El precio máximo en USD que estás dispuesto a gastar para enviar el mensaje SMS. Si Amazon SNS determina que el envío del mensaje supondría un costo superior a su precio máximo, no lo envía.  
Este atributo no tiene efecto si los costes de los month-to-date SMS ya han superado la cuota establecida para el atributo. `MonthlySpendLimit` Puede establecer el atributo `MonthlySpendLimit` con la solicitud `SetSMSAttributes`.  
Si envía el mensaje a un tema de Amazon SNS, el precio máximo se aplica a cada entrega de mensaje a cada número de teléfono que esté suscrito al tema.

**`AWS.SNS.SMS.SMSType`**  
El tipo de mensaje que envía:  
+ **`Promotional`** (predeterminado): mensajes que no son de importancia, como mensajes de marketing.
+ **`Transactional`**: mensajes de importancia que admiten transacciones del cliente, como claves de acceso de un solo uso para la autenticación multifactor.
Este atributo de nivel de mensaje anula el atributo de nivel de cuenta `DefaultSMSType`, que se puede establecer mediante la solicitud `SetSMSAttributes`.

**`AWS.MM.SMS.EntityId`**  
Este atributo solo es necesario para enviar mensajes SMS a destinatarios en la India.  
Se trata del ID entidad o ID de entidad principal (PE) para enviar mensajes SMS a destinatarios en la India. Este ID es una cadena única de 1 a 50 caracteres que la Autoridad Reguladora de las Telecomunicaciones de la India (TRAI) proporciona para identificar la entidad que ha registrado en la TRAI.

**`AWS.MM.SMS.TemplateId`**  
Este atributo solo es necesario para enviar mensajes SMS a destinatarios en la India.  
Se trata de la plantilla para enviar mensajes SMS a destinatarios en la India. Este ID es una cadena única de 1 a 50 caracteres que proporciona la TRAI para identificar la plantilla que registró en la TRAI. El ID de plantilla debe estar asociado al ID de remitente que especificó para el mensaje.

#### Envío de un mensaje
<a name="sms_publish_sdks"></a>

En los siguientes ejemplos de código, se muestra cómo publicar mensajes SMS mediante Amazon SNS.

------
#### [ .NET ]

**SDK para .NET**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples). 

```
namespace SNSMessageExample
{
    using System;
    using System.Threading.Tasks;
    using Amazon;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    public class SNSMessage
    {
        private AmazonSimpleNotificationServiceClient snsClient;

        /// <summary>
        /// Initializes a new instance of the <see cref="SNSMessage"/> class.
        /// Constructs a new SNSMessage object initializing the Amazon Simple
        /// Notification Service (Amazon SNS) client using the supplied
        /// Region endpoint.
        /// </summary>
        /// <param name="regionEndpoint">The Amazon Region endpoint to use in
        /// sending test messages with this object.</param>
        public SNSMessage(RegionEndpoint regionEndpoint)
        {
            snsClient = new AmazonSimpleNotificationServiceClient(regionEndpoint);
        }

        /// <summary>
        /// Sends the SMS message passed in the text parameter to the phone number
        /// in phoneNum.
        /// </summary>
        /// <param name="phoneNum">The ten-digit phone number to which the text
        /// message will be sent.</param>
        /// <param name="text">The text of the message to send.</param>
        /// <returns>Async task.</returns>
        public async Task SendTextMessageAsync(string phoneNum, string text)
        {
            if (string.IsNullOrEmpty(phoneNum) || string.IsNullOrEmpty(text))
            {
                return;
            }

            // Now actually send the message.
            var request = new PublishRequest
            {
                Message = text,
                PhoneNumber = phoneNum,
            };

            try
            {
                var response = await snsClient.PublishAsync(request);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error sending message: {ex}");
            }
        }
    }
}
```
+  Para obtener detalles sobre la API, consulte [Publish](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Publish) en la *Referencia de la API de AWS SDK para .NET *. 

------
#### [ C\$1\$1 ]

**SDK para C\$1\$1**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
/**
 * Publish SMS: use Amazon Simple Notification Service (Amazon SNS) to send an SMS text message to a phone number.
 * Note: This requires additional AWS configuration prior to running example. 
 * 
 *  NOTE: When you start using Amazon SNS to send SMS messages, your AWS account is in the SMS sandbox and you can only
 *  use verified destination phone numbers. See https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html.
 *  NOTE: If destination is in the US, you also have an additional restriction that you have use a dedicated
 *  origination ID (phone number). You can request an origination number using Amazon Pinpoint for a fee.
 *  See https://aws.amazon.com/blogs/compute/provisioning-and-using-10dlc-origination-numbers-with-amazon-sns/ 
 *  for more information. 
 * 
 *  <phone_number_value> input parameter uses E.164 format. 
 *  For example, in United States, this input value should be of the form: +12223334444
 */

//! Send an SMS text message to a phone number.
/*!
  \param message: The message to publish.
  \param phoneNumber: The phone number of the recipient in E.164 format.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::publishSms(const Aws::String &message,
                             const Aws::String &phoneNumber,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::PublishRequest request;
    request.SetMessage(message);
    request.SetPhoneNumber(phoneNumber);

    const Aws::SNS::Model::PublishOutcome outcome = snsClient.Publish(request);

    if (outcome.IsSuccess()) {
        std::cout << "Message published successfully with message id, '"
                  << outcome.GetResult().GetMessageId() << "'."
                  << std::endl;
    }
    else {
        std::cerr << "Error while publishing message "
                  << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Para obtener detalles sobre la API, consulte [Publish](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Publish) en la *Referencia de la API de AWS SDK para C\$1\$1 *. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class PublishTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <message> <phoneNumber>

                Where:
                   message - The message text to send.
                   phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String message = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        pubTextSMS(snsClient, message, phoneNumber);
        snsClient.close();
    }

    public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) {
        try {
            PublishRequest request = PublishRequest.builder()
                    .message(message)
                    .phoneNumber(phoneNumber)
                    .build();

            PublishResponse result = snsClient.publish(request);
            System.out
                    .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener detalles sobre la API, consulte [Publish](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Publish) en la *Referencia de la API de AWS SDK for Java 2.x *. 

------
#### [ Kotlin ]

**SDK para Kotlin**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun pubTextSMS(
    messageVal: String?,
    phoneNumberVal: String?,
) {
    val request =
        PublishRequest {
            message = messageVal
            phoneNumber = phoneNumberVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.publish(request)
        println("${result.messageId} message sent.")
    }
}
```
+  Para obtener detalles sobre la API, consulte [Publish](https://sdk.amazonaws.com/kotlin/api/latest/index.html) en la *Referencia de la API de AWS SDK para Kotlin*. 

------
#### [ PHP ]

**SDK para PHP**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Sends a text message (SMS message) directly to a phone number using Amazon SNS.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';

try {
    $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obtener más información, consulte la [Guía para desarrolladores de AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#publish-to-a-text-message-sms-message). 
+  Para obtener información sobre la API, consulte [Publicar](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Publish) en la *Referencia de la API de AWS SDK para PHP *. 

------
#### [ Python ]

**SDK para Python (Boto3)**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    def publish_text_message(self, phone_number, message):
        """
        Publishes a text message directly to a phone number without need for a
        subscription.

        :param phone_number: The phone number that receives the message. This must be
                             in E.164 format. For example, a United States phone
                             number might be +12065550101.
        :param message: The message to send.
        :return: The ID of the message.
        """
        try:
            response = self.sns_resource.meta.client.publish(
                PhoneNumber=phone_number, Message=message
            )
            message_id = response["MessageId"]
            logger.info("Published message to %s.", phone_number)
        except ClientError:
            logger.exception("Couldn't publish message to %s.", phone_number)
            raise
        else:
            return message_id
```
+  Para obtener detalles sobre la API, consulte [Publish](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Publish) en la *Referencia de la API de AWS SDK para Python (Boto3)*. 

------
#### [ SAP ABAP ]

**SDK para SAP ABAP**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    " iv_phone_number = '+12065550101' - Phone number in E.164 format
    TRY.
        oo_result = lo_sns->publish(              " oo_result is returned for testing purposes. "
          iv_phonenumber = iv_phone_number
          iv_message = iv_message ).
        MESSAGE 'Message published to phone number.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Phone number does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Para obtener información acerca de la API, consulte [Publish](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) (Publicar) en la *referencia de la API del SDK de AWS para SAP ABAP*. 

------

# Configuración de las preferencias de mensajería SMS en Amazon SNS
<a name="sms_preferences"></a>

Utilice Amazon SNS para especificar las preferencias de mensajería SMS. Por ejemplo, puede especificar si desea optimizar las entregas por costo o fiabilidad, el límite de gasto mensual, cómo se registran las entregas y si desea suscribirse a informes de uso de SMS diarios.

Estas preferencias se aplican en todos los mensajes SMS que envía desde su cuenta, pero puede anular algunas de ellas cuando envía un mensaje individual. Para obtener más información, consulte [Publicación de mensajes SMS en un teléfono móvil mediante Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

## Configuración de las preferencias de mensajería SMS mediante Consola de administración de AWS
<a name="sms_preferences_console"></a>

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Elija una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. En el panel de navegación, elija **Móvil** y después **Mensajería de texto (SMS)**.

1. En la página **Mensajería de texto a través del móvil (SMS)**, en la sección **Preferencias de mensajería de texto**, elija **Editar**.

1. En la página **Editar preferencias de mensajería de texto**, en la sección **Detalles**, haga lo siguiente:

   1. En **Default message type (Tipo predeterminado de mensaje)**, seleccione uno de los siguientes:
      + **Promocional**: mensajes no importantes (por ejemplo, marketing). Amazon SNS optimiza la entrega de mensajes para conseguir el costo más bajo.
      + **Transaccional** (predeterminado): mensajes de importancia que admiten transacciones del cliente, como claves de acceso de un solo uso para la autenticación multifactor. Amazon SNS optimiza el envío de mensajes para conseguir la máxima reputación.

      Para obtener información sobre los precios de los mensajes promocionales y transaccionales, consulte la página relacionada con los [precios globales de SMS](https://aws.amazon.com/sns/sms-pricing/).

   1. (Opcional) En **Account spend limit (Límite de gasto de la cuenta)**, escriba el importe (en USD) que desea gastar en mensajes SMS cada mes natural.
**importante**  
De forma predeterminada, la cuota de gasto se establece en 1,00 USD. Si desea aumentar la cuota de servicio, [envíe una solicitud](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sns).
Si el importe establecido en la consola supera la cuota del servicio, Amazon SNS deja de publicar mensajes SMS.
Como Amazon SNS es un sistema distribuido, deja de enviar mensajes SMS en cuestión de minutos en cuanto se ha excedido la cuota de gasto. Durante este intervalo, si sigue enviando mensajes SMS, podría incurrir en costos que superen la cuota.

1. (Opcional) En **Default sender ID (ID de remitente predeterminado)**, escriba un ID personalizado, como la marca de su negocio, que se muestra como el remitente en el dispositivo receptor.
**nota**  
El soporte para el remitente IDs varía según el país.

1. (Opcional) Ingrese el nombre del **nombre del bucket de Amazon S3 para informes de uso**.
**nota**  
La política de bucket de Amazon S3 debe conceder acceso de escritura a Amazon SNS.

1. Seleccione **Save changes (Guardar cambios)**.

## Configuración de preferencias (AWS SDKs)
<a name="sms_preferences_sdk"></a>

Para configurar sus preferencias de SMS mediante una de las AWS SDKs, utilice la acción de ese SDK que corresponda a la `SetSMSAttributes` solicitud en la API de Amazon SNS. Con esta solicitud, debe asignar valores a los diferentes atributos de SMS, como la cuota de gasto mensual o el tipo de SMS predeterminado (transaccional o promocional). Para ver todos los atributos de SMS, consulte [Establecer SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) en la *referencia de la API de Amazon Simple Notification Service*.

Los siguientes ejemplos de código muestran cómo utilizar `SetSMSAttributes`.

------
#### [ C\$1\$1 ]

**SDK para C\$1\$1**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 
Cómo utilizar Amazon SNS para establecer el atributo predeterminadoSMSType .  

```
//! Set the default settings for sending SMS messages.
/*!
  \param smsType: The type of SMS message that you will send by default.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::setSMSType(const Aws::String &smsType,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SetSMSAttributesRequest request;
    request.AddAttributes("DefaultSMSType", smsType);

    const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes(
            request);

    if (outcome.IsSuccess()) {
        std::cout << "SMS Type set successfully " << std::endl;
    }
    else {
        std::cerr << "Error while setting SMS Type: '"
                  << outcome.GetError().GetMessage()
                  << "'" << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Para obtener más información sobre la API, consulte [Establecer SMSAttributes](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/SetSMSAttributes) en la *referencia de AWS SDK para C\$1\$1 la API*. 

------
#### [ CLI ]

**AWS CLI**  
**Establecimiento de los atributos de los mensajes SMS**  
En el siguiente ejemplo de `set-sms-attributes`, se establece el ID de remitente predeterminado para los mensajes SMS a `MyName`.  

```
aws sns set-sms-attributes \
    --attributes DefaultSenderID=MyName
```
Este comando no genera ninguna salida.  
+  Para obtener más información sobre la API, consulte [Set SMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html) in *AWS CLI Command Reference*. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener más información sobre la API, consulta [Establecer SMSAttributes](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/SetSMSAttributes) en la *referencia AWS SDK for Java 2.x de la API*. 

------
#### [ JavaScript ]

**SDK para JavaScript (v3)**  
 Hay más información. GitHub Busque el ejemplo completo y aprenda a configurarlo y ejecutarlo en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Cree el cliente en un módulo separado y expórtelo.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importe el SDK y los módulos cliente, y llame a la API.  

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Para obtener información, consulte la [Guía para desarrolladores de AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-setattributes). 
+  Para obtener más información sobre la API, consulta [Establecer SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SetSMSAttributesCommand) en la *referencia AWS SDK para JavaScript de la API*. 

------
#### [ PHP ]

**SDK para PHP**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obtener más información, consulte la [Guía para desarrolladores de AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#set-sms-attributes). 
+  Para obtener más información sobre la API, consulta [Establecer SMSAttributes](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/SetSMSAttributes) en la *referencia AWS SDK para PHP de la API*. 

------

## Configuración de las preferencias de mensajería SMS para la entrega en un país específico
<a name="sms_preferences_country_specific"></a>

Puede administrar y controlar su tráfico de SMS enviando mensajes solo a países de destino específicos. Esto garantiza que sus mensajes se envíen solo a los países aprobados, lo que evita cargos por SMS no deseados. En las siguientes instrucciones se utiliza la configuración Proteger de Amazon Pinpoint para especificar los países que desea permitir o bloquear.

1. Abra la AWS SMS consola en [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. En el panel de navegación, en **Información general**, en la sección de **Inicio rápido**, elija **Crear una configuración de protección**.

1. En **los detalles de configuración de Protect**, introduzca **un nombre comercial** para su configuración de protección (por ejemplo, Allow-Only-AU).

1. En **Reglas de país de SMS**, activa la casilla de verificación **Región/País** para bloquear el envío de mensajes a todos los países admitidos.

1. Desactive las casillas de los países a los que desea enviar mensajes. Por ejemplo, para permitir que los mensajes solo lleguen a Australia, desactive la casilla de **Australia**.

1. En la sección **Asociaciones de configuraciones de protección**, en **Tipo de asociación**, seleccione **Cuenta predeterminada**. Esto garantizará que la configuración de AWS End User Messaging SMS Protect afecte a todos los mensajes enviados a través de Amazon SNS, [Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) Cognito y la llamada a la API Amazon Pinpoint. [https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html](https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html)

1. Elija **Crear configuración de protección** para guardar la configuración.

   Se muestra el siguiente mensaje de confirmación.

   ```
   Success Protect configuration protect-abc0123456789 has been created.
   ```

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. [**Publicación de un mensaje**](sns-publishing.md) en uno de los países bloqueados, como India.

   El mensaje no se entregará. Puede verificarlo en los registros de errores de entrega mediante. [CloudWatch](sms_stats_cloudwatch.md) Busque un grupo de registros **sns/region/AccountID/DirectPublishToPhoneNumber/Failure**para obtener una respuesta similar a la del siguiente ejemplo:

   ```
   {
   "notification": {
   "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217",
   "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“
   },
   "delivery": {
   "destination": "+91XXXXXXXXXX",
   "smsType": "Transactional",
   "providerResponse": "Cannot deliver message to the specified destination country",
   "dwellTimeMs": 85
   },
   "status": "FAILURE"
   }
   ```

# Administración de números de teléfono y suscripciones en Amazon SMS
<a name="sms_manage"></a>

Con Amazon SNS, se ofrecen varias opciones para administrar quién recibe mensajes SMS desde su cuenta. Con una frecuencia limitada, puede reactivar números de teléfono en los que se ha desactivado la recepción de mensajes SMS desde su cuenta. Para dejar de enviar mensajes a suscripciones a SMS, puede eliminar las suscripciones o los temas que se publican en ellos.

## Desactivación de la recepción de mensajes SMS
<a name="sms_manage_optout"></a>

Cuando la legislación y la normativa locales vigentes así lo exijan (como, por ejemplo, en los EE. UU. y Canadá), los destinatarios de SMS podrán utilizar sus dispositivos para cancelar su suscripción respondiendo al mensaje con cualquiera de las palabras siguientes: 
+ ARRET (francés)
+ CANCEL
+ END
+ OPT-OUT
+ OPTOUT
+ QUIT
+ REMOVE
+ STOP
+ TD
+ UNSUBSCRIBE

Para cancelar la suscripción, el destinatario debe responder al mismo [número de origen](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) que Amazon SNS utilizó para entregar el mensaje. Tras darse de baja, el destinatario dejará de recibir los mensajes SMS enviados por usted, Cuenta de AWS a menos que usted indique su número de teléfono.

Si el número de teléfono está suscrito a un tema de Amazon SNS, la cancelación la suscripción no la eliminará, pero los mensajes SMS no se entregarán a dicha suscripción a menos que dé de alta el número de teléfono.

## Administración de números de teléfono y suscripciones mediante la consola de Amazon SMS
<a name="sms_manage_console"></a>

Puede utilizar la consola de Amazon SNS para controlar qué números de teléfono recibirán mensajes SMS desde su cuenta.

### Reactivación de un número de teléfono que se ha dado de baja en la consola de Amazon SNS
<a name="sms_manage_optout_console"></a>

Puede ver qué números de teléfono se han dado de baja de la recepción de mensajes SMS desde su cuenta y puede reactivarlos para reanudar el envío de mensajes.

Puede dar de alta un número de teléfono solo una vez cada 30 días.

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, establezca el selector de regiones en una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. En el panel de navegación, elija **Text messaging (SMS) (Mensajería de texto (SMS))**.

1. En la página **Mensajería de texto a través de móvil (SMS)**, en la sección **Números de teléfono desactivados**, se muestran los números de teléfono que se han dado de baja.

1. Seleccione la casilla del número de teléfono que desea volver a dar de alta y, a continuación, elija **Activar**. El número de teléfono ya no estará dado de baja y recibirá los mensajes SMS que le envíe.

#### Eliminación de una suscripción a SMS mediante la consola de Amazon SNS
<a name="sms_manage_subscriptions_console"></a>

Elimine una suscripción a SMS para detener el envío de mensajes SMS a ese número de teléfono cuando publique en sus temas.

1. En el panel de navegación, seleccione **Subscriptions (Suscripciones)**.

1. Seleccione las casillas de verificación correspondientes a las suscripciones que desee eliminar. A continuación, elija **Actions (Acciones)** y después **Delete Subscriptions (Eliminar suscripciones)**.

1. En la ventana **Delete** (Eliminar), elija **Delete** (Eliminar). Amazon SNS elimina la suscripción y muestra un mensaje de confirmación.

#### Eliminación de un tema mediante la consola de Amazon SNS.
<a name="sms_manage_topic_console"></a>

Elimine un tema cuando ya no quiera publicar mensajes en sus puntos de enlace suscritos.

1. En el panel de navegación, elija **Temas**.

1. Seleccione las casillas de verificación correspondientes a los temas que desee eliminar. A continuación, elija **Actions (Acciones)** y después **Delete Topics (Eliminar temas)**.

1. En la ventana **Delete** (Eliminar), elija **Delete** (Eliminar). Amazon SNS elimina el tema y muestra un mensaje de confirmación.

### Administrar números de teléfono y suscripciones mediante el SDK AWS
<a name="sms_manage_sdk"></a>

Puede usarlo AWS SDKs para realizar solicitudes programáticas a Amazon SNS y administrar los números de teléfono que pueden recibir mensajes SMS de su cuenta.

Para usar un AWS SDK, debe configurarlo con sus credenciales. Para obtener más información, consulte los [archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) en la *Guía de referencia de herramientas AWS SDKs y herramientas*.

#### Visualización de todos los números de teléfono que se han excluido mediante el SDK AWS
<a name="sms_view_optout_sdk"></a>

Para ver todos los números de teléfono que se han dado de baja, envíe una solicitud `ListPhoneNumbersOptedOut` a través de la API de Amazon SNS.

Los siguientes ejemplos de código muestran cómo utilizar `ListPhoneNumbersOptedOut`.

------
#### [ CLI ]

**AWS CLI**  
**Mostrar exclusiones de mensajes SMS**  
El siguiente ejemplo de `list-phone-numbers-opted-out` muestra los números de teléfono excluidos de la recepción de mensajes SMS.  

```
aws sns list-phone-numbers-opted-out
```
Salida:  

```
{
    "phoneNumbers": [
        "+15555550100"
    ]
}
```
+  Para obtener más información sobre la API, consulte [ListPhoneNumbersOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-phone-numbers-opted-out.html)la *Referencia de AWS CLI comandos*. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.ListPhoneNumbersOptedOutRequest;
import software.amazon.awssdk.services.sns.model.ListPhoneNumbersOptedOutResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class ListOptOut {
    public static void main(String[] args) {
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        listOpts(snsClient);
        snsClient.close();
    }

    public static void listOpts(SnsClient snsClient) {
        try {
            ListPhoneNumbersOptedOutRequest request = ListPhoneNumbersOptedOutRequest.builder().build();
            ListPhoneNumbersOptedOutResponse result = snsClient.listPhoneNumbersOptedOut(request);
            System.out.println("Status is " + result.sdkHttpResponse().statusCode() + "\n\nPhone Numbers: \n\n"
                    + result.phoneNumbers());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener más información sobre la API, consulta [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/ListPhoneNumbersOptedOut)la *Referencia AWS SDK for Java 2.x de la API*. 

------
#### [ PHP ]

**SDK para PHP**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Returns a list of phone numbers that are opted out of receiving SMS messages from your AWS SNS account.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->listPhoneNumbersOptedOut();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obtener más información, consulte la [Guía para desarrolladores de AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#list-opted-out-phone-numbers). 
+  Para obtener más información sobre la API, consulta [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/ListPhoneNumbersOptedOut)la *Referencia AWS SDK para PHP de la API*. 

------

#### Comprobar si un número de teléfono está excluido mediante el SDK AWS
<a name="sms_check_optout_sdk"></a>

Para verificar si un número de teléfono se ha dado de baja, envíe una solicitud `CheckIfPhoneNumberIsOptedOut` con la API de Amazon SNS.

Los siguientes ejemplos de código muestran cómo utilizar `CheckIfPhoneNumberIsOptedOut`.

------
#### [ .NET ]

**SDK para .NET**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples). 

```
    using System;
    using System.Threading.Tasks;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    /// <summary>
    /// This example shows how to use the Amazon Simple Notification Service
    /// (Amazon SNS) to check whether a phone number has been opted out.
    /// </summary>
    public class IsPhoneNumOptedOut
    {
        public static async Task Main()
        {
            string phoneNumber = "+15551112222";

            IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient();

            await CheckIfOptedOutAsync(client, phoneNumber);
        }

        /// <summary>
        /// Checks to see if the supplied phone number has been opted out.
        /// </summary>
        /// <param name="client">The initialized Amazon SNS Client object used
        /// to check if the phone number has been opted out.</param>
        /// <param name="phoneNumber">A string representing the phone number
        /// to check.</param>
        public static async Task CheckIfOptedOutAsync(IAmazonSimpleNotificationService client, string phoneNumber)
        {
            var request = new CheckIfPhoneNumberIsOptedOutRequest
            {
                PhoneNumber = phoneNumber,
            };

            try
            {
                var response = await client.CheckIfPhoneNumberIsOptedOutAsync(request);

                if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
                {
                    string optOutStatus = response.IsOptedOut ? "opted out" : "not opted out.";
                    Console.WriteLine($"The phone number: {phoneNumber} is {optOutStatus}");
                }
            }
            catch (AuthorizationErrorException ex)
            {
                Console.WriteLine($"{ex.Message}");
            }
        }
    }
```
+  Para obtener más información sobre la API, consulta [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)la *Referencia AWS SDK para .NET de la API*. 

------
#### [ CLI ]

**AWS CLI**  
**Comprobar que se ha cancelado la recepción de mensajes SMS en un número de teléfono**  
En el siguiente `check-if-phone-number-is-opted-out` ejemplo, se comprueba si el número de teléfono especificado está excluido de la recepción de mensajes SMS de la AWS cuenta corriente.  

```
aws sns check-if-phone-number-is-opted-out \
    --phone-number +1555550100
```
Salida:  

```
{
    "isOptedOut": false
}
```
+  Para obtener más información sobre la API, consulte [CheckIfPhoneNumberIsOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/check-if-phone-number-is-opted-out.html)la *Referencia de AWS CLI comandos*. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CheckIfPhoneNumberIsOptedOutRequest;
import software.amazon.awssdk.services.sns.model.CheckIfPhoneNumberIsOptedOutResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CheckOptOut {
    public static void main(String[] args) {

        final String usage = """

                Usage:    <phoneNumber>

                Where:
                   phoneNumber - The mobile phone number to look up (for example, +1XXX5550100).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String phoneNumber = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        checkPhone(snsClient, phoneNumber);
        snsClient.close();
    }

    public static void checkPhone(SnsClient snsClient, String phoneNumber) {
        try {
            CheckIfPhoneNumberIsOptedOutRequest request = CheckIfPhoneNumberIsOptedOutRequest.builder()
                    .phoneNumber(phoneNumber)
                    .build();

            CheckIfPhoneNumberIsOptedOutResponse result = snsClient.checkIfPhoneNumberIsOptedOut(request);
            System.out.println(
                    result.isOptedOut() + "Phone Number " + phoneNumber + " has Opted Out of receiving sns messages." +
                            "\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener más información sobre la API, consulta [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)la *Referencia AWS SDK for Java 2.x de la API*. 

------
#### [ JavaScript ]

**SDK para JavaScript (v3)**  
 Hay más información. GitHub Busque el ejemplo completo y aprenda a configurarlo y ejecutarlo en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Cree el cliente en un módulo separado y expórtelo.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importe el SDK y los módulos cliente, y llame a la API.  

```
import { CheckIfPhoneNumberIsOptedOutCommand } from "@aws-sdk/client-sns";

import { snsClient } from "../libs/snsClient.js";

export const checkIfPhoneNumberIsOptedOut = async (
  phoneNumber = "5555555555",
) => {
  const command = new CheckIfPhoneNumberIsOptedOutCommand({
    phoneNumber,
  });

  const response = await snsClient.send(command);
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '3341c28a-cdc8-5b39-a3ee-9fb0ee125732',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   isOptedOut: false
  // }
  return response;
};
```
+  Para obtener información, consulte la [Guía para desarrolladores de AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-checkifphonenumberisoptedout). 
+  Para obtener más información sobre la API, consulta [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/CheckIfPhoneNumberIsOptedOutCommand)la *Referencia AWS SDK para JavaScript de la API*. 

------
#### [ PHP ]

**SDK para PHP**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Indicates whether the phone number owner has opted out of receiving SMS messages from your AWS SNS account.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$phone = '+1XXX5550100';

try {
    $result = $SnSclient->checkIfPhoneNumberIsOptedOut([
        'phoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obtener más información, consulte la [Guía para desarrolladores de AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#check-if-a-phone-number-has-opted-out). 
+  Para obtener más información sobre la API, consulta [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)la *Referencia AWS SDK para PHP de la API*. 

------

#### Reactivación de un número de teléfono que se ha dado de baja con la API de Amazon SNS
<a name="sms_manage_optin_sdk"></a>

Para dar de alta un número de teléfono, envíe una solicitud `OptInPhoneNumber` con la API de Amazon SNS.

Puede dar de alta un número de teléfono solo una vez cada 30 días.

#### Eliminar AWS una suscripción por SMS mediante el SDK
<a name="sms_manage_subscriptions_sdk"></a>

Para eliminar una suscripción a SMS desde un tema de Amazon SNS, obtenga el ARN de la suscripción al presentar una solicitud `ListSubscriptions` con la API de Amazon SNS. A continuación, pase el ARN a una solicitud `Unsubscribe`.

Los siguientes ejemplos de código muestran cómo utilizar `Unsubscribe`.

------
#### [ .NET ]

**SDK para .NET**  
 Hay más información sobre. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/TopicsAndQueues#code-examples). 
Darse de baja de un tema mediante un ARN de suscripción  

```
    /// <summary>
    /// Unsubscribe from a topic by a subscription ARN.
    /// </summary>
    /// <param name="subscriptionArn">The ARN of the subscription.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> UnsubscribeByArn(string subscriptionArn)
    {
        var unsubscribeResponse = await _amazonSNSClient.UnsubscribeAsync(
            new UnsubscribeRequest()
            {
                SubscriptionArn = subscriptionArn
            });
        return unsubscribeResponse.HttpStatusCode == HttpStatusCode.OK;
    }
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Unsubscribe) en la *Referencia de la API de AWS SDK para .NET *. 

------
#### [ C\$1\$1 ]

**SDK para C\$1\$1**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
//! Delete a subscription to an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param subscriptionARN: The Amazon Resource Name (ARN) for an Amazon SNS topic subscription.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::unsubscribe(const Aws::String &subscriptionARN,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::UnsubscribeRequest request;
    request.SetSubscriptionArn(subscriptionARN);

    const Aws::SNS::Model::UnsubscribeOutcome outcome = snsClient.Unsubscribe(request);

    if (outcome.IsSuccess()) {
        std::cout << "Unsubscribed successfully " << std::endl;
    }
    else {
        std::cerr << "Error while unsubscribing " << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Unsubscribe) en la *Referencia de la API de AWS SDK para C\$1\$1 *. 

------
#### [ CLI ]

**AWS CLI**  
**Cancelación de la suscripción a un tema**  
En el siguiente ejemplo de `unsubscribe`, se elimina la suscripción especificada de un tema.  

```
aws sns unsubscribe \
    --subscription-arn arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f
```
Este comando no genera ninguna salida.  
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/unsubscribe.html) en la *Referencia de comandos de la AWS CLI *. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.UnsubscribeRequest;
import software.amazon.awssdk.services.sns.model.UnsubscribeResponse;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class Unsubscribe {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <subscriptionArn>

                Where:
                   subscriptionArn - The ARN of the subscription to delete.
                """;

        if (args.length < 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String subscriptionArn = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        unSub(snsClient, subscriptionArn);
        snsClient.close();
    }

    public static void unSub(SnsClient snsClient, String subscriptionArn) {
        try {
            UnsubscribeRequest request = UnsubscribeRequest.builder()
                    .subscriptionArn(subscriptionArn)
                    .build();

            UnsubscribeResponse result = snsClient.unsubscribe(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode()
                    + "\n\nSubscription was removed for " + request.subscriptionArn());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Unsubscribe) en la *Referencia de la API de AWS SDK for Java 2.x *. 

------
#### [ JavaScript ]

**SDK para JavaScript (v3)**  
 Hay más información. GitHub Busque el ejemplo completo y aprenda a configurarlo y ejecutarlo en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Cree el cliente en un módulo separado y expórtelo.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importe el SDK y los módulos cliente, y llame a la API.  

```
import { UnsubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} subscriptionArn - The ARN of the subscription to cancel.
 */
const unsubscribe = async (
  subscriptionArn = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
) => {
  const response = await snsClient.send(
    new UnsubscribeCommand({
      SubscriptionArn: subscriptionArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '0178259a-9204-507c-b620-78a7570a44c6',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Para obtener más información, consulte la [Guía para desarrolladores de AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-unsubscribing). 
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/UnsubscribeCommand) en la *Referencia de la API de AWS SDK para JavaScript *. 

------
#### [ Kotlin ]

**SDK para Kotlin**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun unSub(subscriptionArnVal: String) {
    val request =
        UnsubscribeRequest {
            subscriptionArn = subscriptionArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        snsClient.unsubscribe(request)
        println("Subscription was removed for ${request.subscriptionArn}")
    }
}
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://sdk.amazonaws.com/kotlin/api/latest/index.html) en la *Referencia de la API de AWS SDK para Kotlin*. 

------
#### [ PHP ]

**SDK para PHP**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Deletes a subscription to an Amazon SNS topic.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$subscription = 'arn:aws:sns:us-east-1:111122223333:MySubscription';

try {
    $result = $SnSclient->unsubscribe([
        'SubscriptionArn' => $subscription,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obtener más información, consulte la [Guía para desarrolladores de AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-subscribing-unsubscribing-topics.html#unsubscribe-from-a-topic). 
+  Para obtener información sobre la API, consulte [Cancelar suscripción](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Unsubscribe) en la *Referencia de la API de AWS SDK para PHP *. 

------
#### [ Python ]

**SDK para Python (Boto3)**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def delete_subscription(subscription):
        """
        Unsubscribes and deletes a subscription.
        """
        try:
            subscription.delete()
            logger.info("Deleted subscription %s.", subscription.arn)
        except ClientError:
            logger.exception("Couldn't delete subscription %s.", subscription.arn)
            raise
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def unsubscribe(self, subscription_arn: str) -> bool:
        """
        Unsubscribe from an SNS topic.

        :param subscription_arn: The ARN of the subscription to remove.
        :return: True if successful.
        :raises ClientError: If the unsubscribe operation fails.
        """
        try:
            self.sns_client.unsubscribe(SubscriptionArn=subscription_arn)
            
            logger.info(f"Unsubscribed: {subscription_arn}")
            return True

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            
            if error_code == 'NotFound':
                logger.warning(f"Subscription not found: {subscription_arn}")
                return True  # Already unsubscribed
            else:
                logger.error(f"Error unsubscribing: {error_code} - {e}")
                raise
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Unsubscribe) en la *Referencia de la API de AWS SDK para Python (Boto3)*. 

------
#### [ SAP ABAP ]

**SDK para SAP ABAP**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    TRY.
        lo_sns->unsubscribe( iv_subscriptionarn = iv_subscription_arn ).
        MESSAGE 'Subscription deleted.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Subscription does not exist.' TYPE 'E'.
      CATCH /aws1/cx_snsinvalidparameterex.
        MESSAGE 'Subscription with "PendingConfirmation" status cannot be deleted/unsubscribed. Confirm subscription before performing unsubscribe operation.' TYPE 'E'.
    ENDTRY.
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) en la *Referencia de la API de AWS SDK para SAP ABAP*. 

------
#### [ Swift ]

**SDK para Swift**  
 Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples). 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        _ = try await snsClient.unsubscribe(
            input: UnsubscribeInput(
                subscriptionArn: arn
            )
        )

        print("Unsubscribed.")
```
+  Para obtener detalles sobre la API, consulte [Unsubscribe](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/unsubscribe(input:)) en la *Referencia de la API de AWS SDK para Swift*. 

------

#### Eliminar un tema con el AWS SDK
<a name="sms_manage_topic_sdk"></a>

Para eliminar un tema y todas sus suscripciones, obtenga el ARN del tema al presentar una solicitud `ListTopics` con la API de Amazon SNS y, a continuación, pase el ARN a la solicitud `DeleteTopic`.

Los siguientes ejemplos de código muestran cómo utilizar `DeleteTopic`.

------
#### [ .NET ]

**SDK para .NET**  
 Hay más en marcha GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/TopicsAndQueues#code-examples). 
Elimine un tema por su ARN de tema.  

```
    /// <summary>
    /// Delete a topic by its topic ARN.
    /// </summary>
    /// <param name="topicArn">The ARN of the topic.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> DeleteTopicByArn(string topicArn)
    {
        var deleteResponse = await _amazonSNSClient.DeleteTopicAsync(
            new DeleteTopicRequest()
            {
                TopicArn = topicArn
            });
        return deleteResponse.HttpStatusCode == HttpStatusCode.OK;
    }
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/DeleteTopic)la *Referencia AWS SDK para .NET de la API*. 

------
#### [ C\$1\$1 ]

**SDK para C\$1\$1**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
//! Delete an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param topicARN: The Amazon Resource Name (ARN) for an Amazon SNS topic.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::deleteTopic(const Aws::String &topicARN,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::DeleteTopicRequest request;
    request.SetTopicArn(topicARN);

    const Aws::SNS::Model::DeleteTopicOutcome outcome = snsClient.DeleteTopic(request);

    if (outcome.IsSuccess()) {
        std::cout << "Successfully deleted the Amazon SNS topic " << topicARN << std::endl;
    }
    else {
        std::cerr << "Error deleting topic " << topicARN << ":" <<
                  outcome.GetError().GetMessage() << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/DeleteTopic)la *Referencia AWS SDK para C\$1\$1 de la API*. 

------
#### [ CLI ]

**AWS CLI**  
**Eliminación de un tema de SNS**  
El siguiente ejemplo de `delete-topic` elimina el tema de SNS especificado.  

```
aws sns delete-topic \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"
```
Este comando no genera ninguna salida.  
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/delete-topic.html)la *Referencia de AWS CLI comandos*. 

------
#### [ Go ]

**SDK para Go V2**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/topics_and_queues#code-examples). 

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/sns"
	"github.com/aws/aws-sdk-go-v2/service/sns/types"
)

// SnsActions encapsulates the Amazon Simple Notification Service (Amazon SNS) actions
// used in the examples.
type SnsActions struct {
	SnsClient *sns.Client
}



// DeleteTopic delete an Amazon SNS topic.
func (actor SnsActions) DeleteTopic(ctx context.Context, topicArn string) error {
	_, err := actor.SnsClient.DeleteTopic(ctx, &sns.DeleteTopicInput{
		TopicArn: aws.String(topicArn)})
	if err != nil {
		log.Printf("Couldn't delete topic %v. Here's why: %v\n", topicArn, err)
	}
	return err
}
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/sns#Client.DeleteTopic)la *Referencia AWS SDK para Go de la API*. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.DeleteTopicRequest;
import software.amazon.awssdk.services.sns.model.DeleteTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class DeleteTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:     <topicArn>

                Where:
                   topicArn - The ARN of the topic to delete.
                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        System.out.println("Deleting a topic with name: " + topicArn);
        deleteSNSTopic(snsClient, topicArn);
        snsClient.close();
    }

    public static void deleteSNSTopic(SnsClient snsClient, String topicArn) {
        try {
            DeleteTopicRequest request = DeleteTopicRequest.builder()
                    .topicArn(topicArn)
                    .build();

            DeleteTopicResponse result = snsClient.deleteTopic(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/DeleteTopic)la *Referencia AWS SDK for Java 2.x de la API*. 

------
#### [ JavaScript ]

**SDK para JavaScript (v3)**  
 Hay más información. GitHub Busque el ejemplo completo y aprenda a configurarlo y ejecutarlo en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Cree el cliente en un módulo separado y expórtelo.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importe el SDK y los módulos cliente, y llame a la API.  

```
import { DeleteTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic to delete.
 */
export const deleteTopic = async (topicArn = "TOPIC_ARN") => {
  const response = await snsClient.send(
    new DeleteTopicCommand({ TopicArn: topicArn }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'a10e2886-5a8f-5114-af36-75bd39498332',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
};
```
+  Para obtener información, consulte la [Guía para desarrolladores de AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-managing-topics-deletetopic). 
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/DeleteTopicCommand)la *Referencia AWS SDK para JavaScript de la API*. 

------
#### [ Kotlin ]

**SDK para Kotlin**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun deleteSNSTopic(topicArnVal: String) {
    val request =
        DeleteTopicRequest {
            topicArn = topicArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        snsClient.deleteTopic(request)
        println("$topicArnVal was successfully deleted.")
    }
}
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://sdk.amazonaws.com/kotlin/api/latest/index.html)la *referencia sobre el AWS SDK para la API de Kotlin*. 

------
#### [ PHP ]

**SDK para PHP**  
 Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Deletes an SNS topic and all its subscriptions.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->deleteTopic([
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/DeleteTopic)la *Referencia AWS SDK para PHP de la API*. 

------
#### [ Python ]

**SDK para Python (Boto3)**  
 Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def delete_topic(topic):
        """
        Deletes a topic. All subscriptions to the topic are also deleted.
        """
        try:
            topic.delete()
            logger.info("Deleted topic %s.", topic.arn)
        except ClientError:
            logger.exception("Couldn't delete topic %s.", topic.arn)
            raise
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def delete_topic(self, topic_arn: str) -> bool:
        """
        Delete an SNS topic.

        :param topic_arn: The ARN of the topic to delete.
        :return: True if successful.
        :raises ClientError: If the topic deletion fails.
        """
        try:
            self.sns_client.delete_topic(TopicArn=topic_arn)
            
            logger.info(f"Deleted topic: {topic_arn}")
            return True

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            
            if error_code == 'NotFound':
                logger.warning(f"Topic not found: {topic_arn}")
                return True  # Already deleted
            else:
                logger.error(f"Error deleting topic: {error_code} - {e}")
                raise
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/DeleteTopic)la *AWS Referencia de API de SDK for Python (Boto3*). 

------
#### [ SAP ABAP ]

**SDK para SAP ABAP**  
 Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    TRY.
        lo_sns->deletetopic( iv_topicarn = iv_topic_arn ).
        MESSAGE 'SNS topic deleted.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Topic does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Para obtener más información sobre la API, consulte [DeleteTopic](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)la *referencia sobre la API ABAP del AWS SDK para SAP*. 

------
#### [ Swift ]

**SDK para Swift**  
 Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples). 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        _ = try await snsClient.deleteTopic(
            input: DeleteTopicInput(topicArn: arn)
        )
```
+  Para obtener más información sobre la API, consulta [DeleteTopic](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/deletetopic(input:))la *referencia sobre la API de AWS SDK for Swift*. 

------

# Supervisión de la actividad de SMS en Amazon SNS
<a name="sms_stats"></a>

Mediante la supervisión de la actividad de SMS, puede realizar un seguimiento de los números de teléfono de destino, las entregas realizadas correctamente o que han producido un error, los motivos del error, los costos y otra información. Amazon SNS le ayuda resumiendo las estadísticas en la consola, enviando información a Amazon CloudWatch y enviando informes de uso diario de SMS a un bucket de Amazon S3 que especifique.

# Consulta de las estadísticas de entrega de SMS en Amazon SNS
<a name="sms_stats_console"></a>

Puede utilizar la consola de Amazon SNS para ver estadísticas de sus entregas de SMS recientes.

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, establezca el selector de regiones en una [región que admita la mensajería SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).

1. En el panel de navegación, elija **Text messaging (SMS) (Mensajería de texto (SMS))**.

1. En la página **Text messaging (SMS) (Mensajería de texto (SMS))**, en la sección **Account stats (Estadísticas de la cuenta)**, vea los gráficos de las entregas de mensajes SMS transaccionales y promocionales. Cada gráfico muestra los siguientes datos de los últimos 15 días:
   + Tasa de entrega (porcentaje de entregas correctas)
   + Envíos (número de intentos de entrega)
   + Errores (número de entregas erróneas)

En esta página, también puede seleccionar el botón **Uso** para ir al bucket de Amazon S3 en el que almacena los informes de uso diarios. Para obtener más información, consulte [Suscripción a informes de uso diario de SMS en Amazon SNS](sms_stats_usage.md).

# Supervisión de la entrega de SMS de Amazon SNS con CloudWatch métricas y registros de Amazon
<a name="sms_stats_cloudwatch"></a>

Puedes usar Amazon CloudWatch y Amazon CloudWatch Logs para supervisar la entrega de tus mensajes SMS.

## Ver las CloudWatch métricas de Amazon
<a name="sms_stats_cloudwatch_metrics"></a>

Amazon SNS recopila automáticamente las estadísticas sobre la entrega de sus mensajes SMS y las envía a Amazon. CloudWatch Puede utilizarlas CloudWatch para supervisar estas métricas y crear alarmas que le avisen cuando una métrica supere un umbral. Por ejemplo, puedes monitorear CloudWatch las métricas para conocer tu tarifa de envío de SMS y tus cargos por month-to-date SMS.

Para obtener información sobre la supervisión de CloudWatch las métricas, la configuración de CloudWatch alarmas y los tipos de métricas disponibles, consulte[Supervisión de temas de Amazon SNS mediante CloudWatch](sns-monitoring-using-cloudwatch.md).

## Visualización CloudWatch de registros
<a name="sns-viewing-cloudwatch-logs"></a>

Puede recopilar información sobre las entregas de mensajes SMS realizadas correctamente y sin éxito si permite que Amazon SNS escriba en Amazon CloudWatch Logs. Por cada mensaje SMS que envíe, Amazon SNS escribirá un registro en el que se incluya el precio del mensaje, su estado (correcto o error), el motivo del error (si el mensaje generó un error), el tiempo de permanencia del mensaje y otra información.

**Para habilitar y ver CloudWatch los registros de sus mensajes SMS**

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. En el menú de la consola, establezca el selector de regiones en una [región que admita la mensajería SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. En el panel de navegación, elija **Text messaging (SMS) (Mensajería de texto (SMS))**.

1. En la página **Mensajería de texto a través del móvil (SMS)**, en la sección **Preferencias de mensajería de texto**, elija **Editar**.

1. En la siguiente página, expanda la sección **Registro de estado de entrega**.

1. En **Frecuencia de muestreo** correcta, especifique el porcentaje de envíos de SMS correctos para los que Amazon SNS escribirá registros en CloudWatch los registros. Por ejemplo:
   + Por ejemplo, para escribir registros únicamente para las entregas erróneas, establezca este valor en 0.
   + Para escribir logs para el 10% de las entregas de correctas, establézcalo en 10.

   Si no especifica ningún porcentaje, Amazon SNS escribirá registros para todas las entregas correctas.

1. Para proporcionar los permisos obligatorios, realice una de las siguientes acciones:
   + Para crear un nuevo rol de servicio, elija **Crear nueva función de servicio** y, a continuación, **Crear nuevos roles**. En la página siguiente, elija **Permitir** para dar acceso de escritura a Amazon SNS a los recursos de su cuenta.
   + Para utilizar una función de servicio existente, haga clic en **Usar función de servicio existente** y, a continuación, pegue el nombre de ARN en el cuadro **Rol de IAM para entregas exitosas y fallidas**.

     Mediante la función de servicio que especifique, se debe permitir el acceso de escritura a los recursos de su cuenta. Para obtener más información sobre la creación de funciones de IAM, consulte [Creación de una función para un AWS servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) en la Guía del usuario de *IAM*. 

1. Seleccione **Save changes (Guardar cambios)**.

1. De vuelta en la página **Mensajería de texto móvil (SMS))**, vaya a la sección **Registros de estado de entrega** para ver los registros disponibles.
**nota**  
Según el operador del número de teléfono de destino, los registros de entrega pueden tardar hasta 72 horas en aparecer en la consola de Amazon SNS. 

## Registro de ejemplo para una entrega de SMS correcta
<a name="example-log-successful-sms-delivery"></a>

El log de estado de una entrega de SMS correcta será similar al ejemplo siguiente:

```
{
    "notification": {
        "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf",
        "timestamp": "2016-06-28 00:40:34.558"
    },
    "delivery": {
        "phoneCarrier": "My Phone Carrier",
        "mnc": 270,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 310,
        "providerResponse": "Message has been accepted by phone carrier",
        "dwellTimeMs": 599,
        "dwellTimeMsUntilDeviceAck": 1344
    },
    "status": "SUCCESS"
}
```

## Registro de ejemplo para una entrega de SMS errónea
<a name="example-log-failed-sms-delivery"></a>

El log de estado de una entrega de SMS errónea será similar al ejemplo siguiente:

```
{
    "notification": {
        "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625",
        "timestamp": "2016-06-28 00:40:34.559"
    },
    "delivery": {
        "mnc": 0,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 0,
        "providerResponse": "Unknown error attempting to reach phone",
        "dwellTimeMs": 1420,
        "dwellTimeMsUntilDeviceAck": 1692
    },
    "status": "FAILURE"
}
```

## Motivos de error de entrega de SMS
<a name="sms_stats_delivery_fail_reasons"></a>

El motivo de un error se proporciona con el atributo `providerResponse`. Es posible que los mensajes SMS no se puedan entregar por los motivos siguientes:
+ El operador de telefonía lo bloquea por considerarlo spam.
+ El destino está en una lista bloqueada
+ Número de teléfono no válido.
+ Cuerpo de mensaje no válido.
+ El operador de telefonía ha bloqueado este mensaje.
+ El operador de telefonía no está disponible o no es posible ponerse en contacto con él.
+ El teléfono ha bloqueado los SMS.
+ El teléfono está en una lista bloqueada
+ El teléfono no está disponible o no es posible ponerse en contacto con él.
+ Se ha cancelado la suscripción del número de teléfono.
+ Esta entrega superaría el precio máximo.
+ Error desconocido al intentar ponerse en contacto con el teléfono

# Suscripción a informes de uso diario de SMS en Amazon SNS
<a name="sms_stats_usage"></a>

Puede monitorear sus entregas de SMS si se suscribe a los informes de uso diarios desde Amazon SNS. Todos los días que envía, como mínimo, un SMS, Amazon SNS entrega un informe de uso en formato CSV al bucket de Amazon S3 especificado. El informe de uso de SMS tarda 24 horas en estar disponible en el bucket de Amazon S3. 

## Información del informe de uso diario
<a name="daily_usage_info"></a>

El informe de uso contiene la siguiente información de cada mensaje SMS que envíe desde su cuenta.

 Tenga en cuenta que el informe no incluye los mensajes que se envían a los destinatarios que han desactivado la recepción de mensajes.
+ Hora de publicación del mensaje (en UTC)
+ Message ID
+ Número de teléfono de destino
+ Tipo de mensaje
+ Estado de entrega.
+ Precio del mensaje (en USD).
+ Número de parte (un mensaje se divide en varias partes si es demasiado largo para un único mensaje).
+ Número total de partes.

**nota**  
Si Amazon SNS no recibió el número de parte, establecemos su valor en cero.

## Suscripción a informes de uso diario
<a name="subscribe-to-daily-usage-reports"></a>

Para suscribirse a informes de uso diario, debe crear un bucket de Amazon S3 con los permisos pertinentes.

**Si quiere crear un bucket de Amazon S3 para sus informes de uso diario, siga estos pasos:**

1. Desde la Cuenta de AWS que envía los mensajes SMS, inicie sesión en la [consola de Amazon S3](https://console.aws.amazon.com/s3/).

1. Seleccione la opción **Crear bucket**.

1. En **Bucket Name (Nombre del bucket)**, le recomendamos que escriba un nombre único para su cuenta y su organización. Por ejemplo, use el patrón `<my-bucket-prefix>-<account_id>-<org-id>`. 

   Para obtener información sobre las convenciones y restricciones de los nombres de bucket, consulte [Reglas para la nomenclatura de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules) en la *Guía del usuario de Amazon Simple Storage Service*.

1. Seleccione **Crear**.

1. En la tabla **Todos los buckets**, elija el bucket.

1. En la pestaña **Permisos**, elija **Política de bucket**.

1. En la ventana **Editor de políticas de bucket**, indique una política que permita al principal del servicio de Amazon SNS escribir en el bucket. Para ver un ejemplo, consulta [Ejemplo de política de bucket](#example_bucket_policy).

   Si utilizas la política de ejemplo, recuerda *my-s3-bucket* sustituirla por el nombre del bucket que elegiste en el paso 3.

1. Seleccione **Save**.

**Para suscribirse a los informes de uso diario**

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/).

1. En el panel de navegación, elija **Text messaging (SMS) (Mensajería de texto (SMS))**.

1. En la página **Mensajería de texto (SMS)**, en la sección **Preferencias de mensajería de texto**, elija **Editar**.  
![\[Sección de preferencias de mensajería de texto en la consola de Amazon SNS\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/daily-usage-report1.png)

1. En la página **Edit text messaging preferences (Editar preferencias de mensajería de texto)**, en la sección **Details (Detalles)**, especifique el **Amazon S3 bucket name for usage reports (Nombre del bucket de Amazon S3 para los informes de uso)**.  
![\[Sección Detalles de la página Editar preferencias de mensajería de texto en la consola de Amazon SNS\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/daily-usage-report2.png)

1. Seleccione **Save changes (Guardar cambios)**.

### Ejemplo de política de bucket
<a name="example_bucket_policy"></a>

Con la siguiente política, la entidad principal del servicio de Amazon SNS puede ejecutar las acciones `s3:PutObject`, `s3:GetBucketLocation` y `s3:ListBucket`.

AWS proporciona herramientas para todos los servicios con los directores de servicio a los que se les ha dado acceso a los recursos de su cuenta. Cuándo la entidad principal de una instrucción de política de bucket de Amazon S3 es un [problema de suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Para limitar la región y la cuenta desde las que el bucket puede recibir informes de uso diarios, utilice `aws:SourceArn` tal como se muestra en el siguiente ejemplo. Si no desea limitar las regiones que pueden generar estos informes, utilice `aws:SourceAccount` para establecer límites en función de qué cuenta esté generando los informes. Si no conoce el ARN del recurso, utilice `aws:SourceAccount`.

Utilice el siguiente ejemplo que incluye protección contra suplente confuso cuando cree un bucket de Amazon S3 para recibir informes de uso diario de SMS desde Amazon SNS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

**nota**  
Puede publicar informes de uso en buckets de Amazon S3 que sean propiedad de la Cuenta de AWS que se especifica en el elemento `Condition` en la política de Amazon S3. Para publicar informes de uso en un bucket de Amazon S3 que Cuenta de AWS pertenece a otro, consulte [¿Cómo puedo copiar objetos de Amazon S3 de otro Cuenta de AWS?](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/) . 

### Ejemplo de informe de uso diario
<a name="example_report"></a>

Después de suscribirse a informes de uso diario, cada día Amazon SNS pone un archivo CSV con datos de uso en la siguiente ubicación:

```
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
```

Cada archivo puede contener hasta 50 000 registros. Si los registros de un día superan esta cuota, Amazon SNS agregará varios archivos. A continuación se muestra un informe de ejemplo:

```
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1
2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1
```

# Solicitud de asistencia para mensajería SMS en Amazon SNS
<a name="channels-sms-awssupport"></a>

**importante**  
Se ha actualizado la guía para desarrolladores de SMS de Amazon SNS. Amazon SNS se ha integrado con [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) para la entrega de mensajes SMS. Esta guía contiene la información más reciente sobre cómo crear, configurar y administrar los mensajes SMS de Amazon SNS.

En su cuenta de AWS, no podrá acceder a algunas opciones de SMS con Amazon SNS hasta que se comunique con Soporte. Abra un caso en el [centro de AWS Support](https://console.aws.amazon.com/support/home#/) para realizar cualquiera de las siguientes solicitudes:
+ Un aumento en su umbral de gasto mensual de SMS

  De forma predeterminada, el umbral de gasto mensual es de 1,00 USD. El umbral de gasto determina el volumen de mensajes que puede enviar con Amazon SNS. Puede solicitar un umbral de gasto con el que se obtenga el volumen mensual de mensajes esperado para su caso de uso de SMS.
+ Salir del [entorno de pruebas de SMS](sns-sms-sandbox.md) para que pueda enviar mensajes SMS sin restricciones. Para obtener más información, consulte [Cómo salir del entorno de pruebas de SMS de Amazon SNS](sns-sms-sandbox-moving-to-production.md).
+ Un [número de origen](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) dedicado
+ Un [ID de remitente](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id.html) dedicado Un ID de remitente es un ID personalizado que se muestra como remitente en el dispositivo del destinatario. Por ejemplo, puede utilizar la marca de su negocio para facilitar el reconocimiento del origen del mensaje. La compatibilidad con los ID de remitente varía según el país o la región. Para obtener más información, consulte el tema [Regiones y países admitidos con AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) en la *Guía del usuario de AWS End User Messaging SMS*.

# Solicitud de aumento de la cuota de gasto mensual de SMS de Amazon SNS
<a name="channels-sms-awssupport-spend-threshold"></a>

Amazon SNS proporciona cuotas de gastos para ayudarlo a administrar el costo máximo por mes en el que se incurre al enviar SMS a través de su cuenta. La cuota de gasto limita el riesgo en caso de un ataque malicioso e impide que la aplicación ascendente envíe más mensajes de los esperados. Puede configurar Amazon SNS para que deje de publicar mensajes SMS cuando determine que el envío de un mensaje SMS generará un costo que superará la cuota de gasto del mes actual. 

Para garantizar que sus operaciones no se vean afectadas, le recomendamos que solicite una cuota de gasto lo suficientemente alta como para admitir sus cargas de trabajo de producción. Para obtener más información, consulte [Paso 1: Abrir un caso de SMS de Amazon SNS](#channels-sms-awssupport-spend-threshold-open). Una vez que haya recibido la cuota, podrá administrar su riesgo aplicando la cuota completa o un valor menor, como se describe en [Paso 2: Actualizar la configuración de SMS](#channels-sms-awssupport-spend-threshold-settings). Si aplica un valor menor, podrá controlar el gasto mensual con la opción de aumentarlo si resultara necesario.

**importante**  
Como Amazon SNS es un sistema distribuido, deja de enviar mensajes SMS en cuestión de minutos si se supera la cuota de gasto. Durante este período, si sigue enviando mensajes SMS, podría incurrir en costos que superen su cuota.

Establecemos la cuota de gasto para todas las cuentas nuevas en 1,00 USD al mes. Esta cuota está pensada para probar las funcionaliades de envío de mensajes de Amazon SNS. Para solicitar un aumento de la cuota de gastos de SMS de su cuenta, abra un caso de aumento de cuota en el AWS Support Center.

**Topics**
+ [Paso 1: Abrir un caso de SMS de Amazon SNS](#channels-sms-awssupport-spend-threshold-open)
+ [Paso 2: Actualizar la configuración de SMS en la consola de Amazon SNS](#channels-sms-awssupport-spend-threshold-settings)

## Paso 1: Abrir un caso de SMS de Amazon SNS
<a name="channels-sms-awssupport-spend-threshold-open"></a>

Puede solicitar un aumento de su cuota de gasto mensual abriendo un caso de aumento de cuota en el AWS Support Center.

**nota**  
Algunos de los campos en el formulario de solicitud están marcados como opcionales. Sin embargo, Soporte requiere toda la información mencionada en los pasos siguientes con el fin de procesar su solicitud. Si no proporciona toda la información necesaria, puede experimentar retrasos en el procesamiento de su solicitud.

1. Inicie sesión Consola de administración de AWS en [https://console.aws.amazon.com/](https://console.aws.amazon.com/).

1. En el menú **Soporte**, elija **Centro de soporte**.

1. En la pestaña **Casos de soporte abiertos**, elija **Crear caso**.

1. Elija el enlace **¿Busca aumentos en el límite de servicio?** y, a continuación, complete lo siguiente:
   + En **Tipo de límite**, elija **Mensajería de texto SNS**.
   + (Opcional) En **Proporcionar un enlace al sitio o aplicación que enviará los mensajes SMS**, proporcione información sobre el sitio web, la aplicación o el servicio que enviará los mensajes SMS.
   + (Opcional) En **Tipo de mensaje que tiene previsto enviar**, elija el tipo de mensaje que tiene previsto enviar con el código largo:
     + **Contraseña de un solo uso**: mensajes que proporcionan contraseñas que sus clientes utilizan para autenticarse con su sitio web o aplicación.
     + **Promocional**: mensajes no importantes que promocionan su empresa o servicio, tales como anuncios u ofertas especiales.
     + **Transaccional**: mensajes informativos importantes que admiten transacciones del cliente, tales como confirmaciones de pedido o alertas de transacción. Los mensajes transaccionales no pueden incluir contenido promocional ni de marketing.
   + (Opcional) Para **saber desde qué AWS región vas a enviar los mensajes, selecciona la región desde** la que vas a enviar los mensajes.
   + (Opcional) En **Países a los que tiene previsto enviar mensajes**, introduzca el país o la región en el que quiere comprar códigos cortos.
   + (Opcional) En **Cómo deciden sus clientes recibir mensajes suyos**, facilite detalles sobre su proceso de suscripción.
   + (Opcional) En el campo **Indique la plantilla de mensajes que piensa utilizar para enviar mensajes a sus clientes**, incluya la plantilla que vaya a utilizar.

1. En **Solicitudes**, complete las secciones siguientes:
   + En **Región**, elija la región desde la que va a enviar los mensajes. 
**nota**  
La región es obligatoria en la sección **Solicitudes**. Incluso si proporcionó esta información en la sección **Detalles del caso**, también debe incluirla aquí.
   + En **Tipo de recurso**, elija **Límites generales**.
   + En **Límite**, elija **Aumento del umbral de gasto de cuenta**.

1. En Nuevo valor de límite, escriba el importe máximo (en USD) que desea gastar en SMS cada mes natural.

1. En **Descripción del caso**, en **Descripción del caso de uso**, proporcione la siguiente información:
   + El sitio web o la aplicación de la empresa o servicio que envía mensajes SMS.
   + El servicio que ofrece su sitio web o aplicación y cómo los mensajes SMS contribuyen a dicho servicio.
   + Cómo se inscriben los usuarios para recibir voluntariamente sus mensajes SMS en su sitio web, aplicación u otra ubicación.

   Si la cuota de gasto solicitada (el valor especificado para **Nuevo valor de cuota**) es superior a 10 000 USD, proporcione los siguientes datos adicionales para cada país al que envíe mensajes:
   + Si utiliza un ID de remitente o un código corto. Si utiliza un ID de remitente, proporcione:
     + El ID de remitente.
     + Si el ID de remitente está registrado con operadores inalámbricos en el país.
   + El máximo esperado transactions-per-second (TPS) para tus mensajes.
   + El tamaño medio del mensaje.
   + La plantilla para los mensajes que envía en el país.
   + (Opcional) Necesidades de codificación de caracteres, si procede.

1. (Opcional) Si desea enviar más solicitudes, elija **Agregar otra solicitud**. Si incluye varias solicitudes, proporcione la información necesaria para cada una de ellas. Para la información requerida, consulte las demás secciones en [Solicitud de asistencia para mensajería SMS en Amazon SNS](channels-sms-awssupport.md).

1. En **Opciones de contacto**, elija en **Idioma de contacto preferido** si prefiere recibir las comunicaciones de este caso.

1. Cuando haya terminado, elija **Enviar**.

El Soporte equipo proporcionará una respuesta inicial a tu solicitud en un plazo de 24 horas.

Para evitar que nuestros sistemas se utilicen para enviar contenido no solicitado o malicioso, consideramos cada solicitud con detenimiento. Si podemos, accederemos a su solicitud dentro de ese plazo de 24 horas. Sin embargo, si necesitamos que nos brinde más información, puede que la solicitud tarde más tiempo en concederse.

Si su caso de uso no se ajusta a nuestras políticas, es posible que no podamos atender su solicitud.

## Paso 2: Actualizar la configuración de SMS en la consola de Amazon SNS
<a name="channels-sms-awssupport-spend-threshold-settings"></a>

Cuando le avisemos del aumento de la cuota de gasto mensual, tendrá que ajustar la cuota de gasto de su cuenta en la consola de Amazon SNS.

**importante**  
Debe completar los siguientes pasos; de lo contrario, no se aumentará su límite de gasto en SMS.

**Para ajustar la cuota de gasto en la consola**

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Abra el menú de navegación de la izquierda, expanda **Móvil** y, a continuación, elija **Mensajería de texto (SMS)**.

1. En la página **Mensajería de texto a través del móvil (SMS)**, en la sección **Preferencias de mensajería de texto**, elija **Editar**.

1. En la página **Editar preferencias de mensajería de texto**, en la sección **Detalles**, introduzca su nuevo límite de gasto de SMS en el campo **Límite de gasto de la cuenta**.
**nota**  
Es posible que reciba una advertencia de que el valor especificado es mayor que el límite de gasto predeterminado. Puede omitirla. 

1. Seleccione **Save changes (Guardar cambios)**.
**nota**  
Si aparece un error de “parámetro no válido”, compruebe el contacto del servicio de asistencia de AWS y confirme que ha especificado el nuevo límite de gasto de SMS correcto. Si sigue teniendo problemas, abra un caso en el AWS Support Center. 

Al crear su caso en el Centro de Soporte, asegúrese de incluir toda la información obligatoria para el tipo de solicitud que está enviando. De lo contrario, Soporte tendrá que comunicarse con usted para obtener esta información antes de continuar. Al enviar un caso detallado, contribuye a garantizar que su caso se gestione sin retrasos. Para conocer los detalles para determinados tipos de solicitudes de SMS, consulte los siguientes temas.

 Para obtener más información sobre los ID de remitente, consulte la siguiente documentación en la *Guía del usuario de AWS End User Messaging SMS*:


| AWS End User Messaging SMSTema de  | Descripción | 
| --- | --- | 
|  [Solicitud de un aumento de la cuota de gasto](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html)  |  La cuota de gasto determina la cantidad de dinero que podrá dedicar a enviar mensajes SMS a través de AWS End User Messaging SMS al mes.  | 
|  [Abrir un caso en el centro de asistencia para obtener un ID de remitente](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-sender-id.html)  |  Si tiene previsto enviar mensajes a destinatarios de un país donde es obligatorio el uso de los ID de remitente, puede solicitar un ID de remitente creando un caso en el Centro de Soporte.  | 

# Prácticas recomendadas para mensajería SMS de Amazon SNS
<a name="channels-sms-best-practices"></a>

**importante**  
Se ha actualizado la Guía para desarrolladores de SMS de Amazon SNS. Amazon SNS se ha integrado con [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) para la entrega de mensajes SMS. Esta guía contiene la información más reciente sobre cómo crear, configurar y administrar los mensajes SMS de Amazon SNS.

Los usuarios de teléfonos móviles suelen tener una tolerancia muy baja a los mensajes SMS no solicitados. Las tasas de respuesta de las campañas de mensajes SMS no solicitados casi siempre serán bajas y, por tanto, obtendrá una baja rentabilidad de su inversión.

Además, los operadores de telefonía móvil auditan de forma continua a los remitentes de mensajes SMS masivos. Limitan o bloquean los mensajes de números que determinan que están enviando mensajes no solicitados. 

El envío de contenido no solicitado también es una infracción de la [política de uso aceptable de AWS](https://aws.amazon.com/aup/#No_E-Mail_or_Other_Message_Abuse). El equipo de Amazon SNS audita con regularidad las campañas de SMS y podría limitar o bloquear su capacidad de enviar mensajes si le consta que está enviando mensajes no solicitados.

Por último, en muchos países, regiones y jurisdicciones, existen diversas sanciones por el envío de mensajes SMS no solicitados. Por ejemplo, en Estados Unidos, la Ley federal de Protección al Usuario Telefónico (TCPA) establece que los consumidores tienen derecho a una indemnización de entre 500 y 1500 USD en concepto de daños (pagados por el remitente) por cada mensaje no solicitado que reciban.

En esta sección se describen diversas prácticas recomendadas que podrían ayudarle a mejorar la interacción con los clientes y evitar sanciones costosas. Sin embargo, tenga en cuenta que esta sección no contiene asesoramiento jurídico. Consulte siempre a un abogado para obtener asesoramiento jurídico.

## Cumpla las leyes, normativas y requisitos del operador.
<a name="channels-sms-best-practices-understand-laws"></a>

Puede enfrentarse a importantes multas y sanciones si infringe las leyes y normativas de los lugares en los que residen sus clientes. Por este motivo, es fundamental que conozca las leyes relacionadas con la mensajería SMS de cada país o región en los que haga negocios.

La lista siguiente incluye enlaces a las leyes más importantes que se aplican a las comunicaciones SMS en los principales mercados de todo el mundo.
+ **Estados Unidos**: la Ley Federal de Protección al Usuario Telefónico de 1991, también denominada TCPA, se aplica a ciertos tipos de mensajes SMS. Para obtener más información, consulte las [normativas y reglamentos](https://www.fcc.gov/document/telephone-consumer-protection-act-1991) en el sitio web de la Comisión Federal de Comunicaciones.
+ **Reino Unido**: las Normativas sobre la Privacidad y las Comunicaciones Electrónicas (directiva CE) de 2003, también denominada PECR, se aplican a ciertos tipos de mensajes SMS. Para obtener más información, consulte [What are PECR?](https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/what-are-pecr/) en el sitio web de la oficina del comisionado de información del Reino Unido.
+ **Unión Europea**: la Directiva sobre la Privacidad y las Comunicaciones Electrónicas de 2002, también denominada directiva ePrivacy, se aplica a algunos tipos de mensajes SMS. Para obtener más información, consulte el [texto completo de la ley](http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32002L0058) en el sitio web Europa.eu.
+ **Canadá**: la Ley de Lucha contra el Spam Inalámbrico y de Internet, más comúnmente denominada Legislación AntiSpam de Canadá o CASL, se aplica a ciertos tipos de mensajes SMS. Para obtener más información, consulte el [texto completo de la ley](http://www.parl.ca/DocumentViewer/en/40-3/bill/C-28/first-reading) en el sitio web del parlamento canadiense.
+ **Japón**: la Ley del Reglamento de Transmisión de Correo Electrónico Específico puede aplicarse a ciertos tipos de mensajes SMS. Para obtener más información, consulte las [contramedidas de Japón contra el spam](https://www.japaneselawtranslation.go.jp/en/laws/view/3767/en) en el sitio web del Ministerio Japonés de Asuntos Internos y Comunicaciones.

Como remitente, estas leyes pueden aplicarse a usted incluso si su empresa u organización no tiene su sede en uno de estos países. Algunas de las leyes de esta lista se crearon originalmente para abordar el problema de las llamadas telefónicas o del correo electrónico no solicitados, pero se han interpretado o ampliado también para su aplicación a los mensajes SMS. Otros países y regiones pueden tener sus propias leyes relacionadas con la transmisión de mensajes SMS. Consulte a un abogado de cada país o región en la que se encuentren sus clientes para obtener asesoramiento jurídico.

En muchos países, los operadores locales tienen, en última instancia, la autoridad para determinar qué tipo de tráfico fluye a través de sus redes. Esto significa que los operadores podrían imponer restricciones al contenido de los SMS que superen los requisitos mínimos de las leyes locales.

## Obtención de permiso
<a name="channels-sms-best-practices-obtain-permission"></a>

Nunca envíe mensajes a destinatarios que no hayan pedido de forma explícita recibir los tipos específicos de mensajes que tiene pensado enviar. No comparta listas de suscripciones voluntarias, ni siquiera entre organizaciones de la misma empresa. 

Si los destinatarios pueden inscribirse para recibir sus mensajes mediante un formulario en línea, añada sistemas que impidan que los scripts automatizados suscriban a las personas sin su conocimiento. También debe limitar el número de veces que un usuario puede enviar un número de teléfono en una sola sesión.

Si recibe una solicitud de susripción voluntaria por SMS, envíe un mensaje al destinatario para pedirle que confirme que desea recibir mensajes suyos. No envíe a dicho destinatario ningún mensaje adicional hasta que confirme su suscripción. Un mensaje de confirmación de suscripción podría tener un aspecto similar al siguiente:

`Text YES to join ExampleCorp alerts. 2 msgs/month. Msg & data rates may apply. Reply HELP for help, STOP to cancel.`

Mantenga registros que incluyan la fecha, la hora y el origen de cada solicitud de alta y confirmación. Esto puede ser útil si un operador o agencia reguladora lo solicita y también puede ayudarle a realizar auditorías rutinarias de su lista de clientes.

### Flujo de trabajo de suscripciones voluntarias
<a name="channels-sms-best-practices-obtain-permission-optin"></a>

En algunos casos (como en el registro mediante una llamada gratuita o código abreviado en EE. UU.), los operadores de telefonía móvil exigen que proporcione simulaciones o capturas de pantalla de todo el flujo de trabajo de suscripción voluntaria. Las simulaciones o la captura de pantalla deben parecerse mucho al flujo de trabajo de suscripción que completarán los destinatarios. 

Sus simulaciones o capturas de pantalla deben incluir todas las declaraciones obligatorias que se enumeran a continuación para mantener el nivel más alto de conformidad. 

**Declaraciones obligatorias**
+ Una descripción del caso de uso de mensajería que enviará a través de su programa.
+ La frase “Se podrían aplicar cargos por el uso de datos y el envío de mensajes”.
+ Una indicación de la frecuencia con la que los destinatarios recibirán sus mensajes. Por ejemplo, un programa de mensajería recurrente podría decir “un mensaje a la semana”. En el caso de uso de autenticación multifactor o contraseña de un solo uso, se podría indicar lo siguiente: “la frecuencia de los mensajes varía” o “un mensaje por intento de inicio de sesión”.
+ Enlaces a los documentos de términos y condiciones y la política de privacidad. 

**Motivos comunes de rechazo de sucripciones voluntarias no válidas**
+ Si el nombre de la empresa proporcionado no coincide con el que aparece en la simulación o captura de pantalla. Cualquier relación que no sea obvia debe explicarse en la descripción del flujo de trabajo de suscripción.
+ Si parece que se va a enviar un mensaje al destinatario, pero no se obtiene ningún consentimiento explícito para hacerlo. El consentimiento explícito es un requisito de todos los mensajes.
+ Si parece que es necesario recibir un mensaje de texto para suscribirse a un servicio. Esto no es válido si el flujo de trabajo no ofrece ninguna alternativa a recibir un mensaje de suscripción voluntaria en otro formato, como un correo electrónico o una llamada de voz. 
+ Si el texto de la suscripción voluntaria se encuentra en su totalidad en los términos de servicio. Las declaraciones siempre deben presentarse al destinatario en el momento de la suscripción, en lugar de incluirse en un documento de política vinculado. 
+ Si un cliente ha dado su consentimiento para recibir un tipo de mensaje y le envía otro tipo de mensaje de texto. Por ejemplo, ha aceptado recibir contraseñas de un solo uso, pero también se le envían mensajes de sondeo y encuestas.
+ Si las declaraciones obligatorias (indicadas anteriormente) no se presentan a los destinatarios.

El siguiente ejemplo cumple los requisitos de los operadores de telefonía móvil en un caso de uso de autenticación multifactor.

![\[Una step-by-step maqueta del flujo de trabajo de suscripción voluntaria para habilitar la autenticación multifactor (MFA) en una cuenta de usuario con. ExampleCorp El proceso comienza cuando el usuario proporciona la información básica de la cuenta, como el nombre y el correo electrónico. A continuación, el usuario decide si desea habilitar la MFA para mayor seguridad. Si la MFA está habilitada, el usuario selecciona cómo quiere recibir el token de MFA, con opciones como un mensaje de texto o una llamada telefónica. Si el usuario selecciona un mensaje de texto, recibirá un SMS con un código de verificación. El último paso requiere que el usuario introduzca el código recibido para confirmar su número de teléfono y completar el proceso de suscripción. Esta simulación garantiza que se proporcionen todas las declaraciones necesarias para cumplir los requisitos de los mensajes SMS.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/best-practices-usecase.png)


Contiene texto e imágenes finales y muestra todo el flujo de suscripción voluntaria con anotaciones. En el flujo de suscripción, el cliente debe tomar medidas claras e intencionadas para dar su consentimiento para recibir mensajes de texto y se incluyen todas las declaraciones obligatorias.

### Otros tipos de flujo de trabajo de suscripción voluntaria
<a name="channels-sms-best-practices-obtain-permission-other"></a>

Los operadores de telefonía móvil también aceptan flujos de trabajo de suscripción voluntaria fuera de las aplicaciones y sitios web, como las suscripciones verbales o por escrito, si cumplen lo que se ha indicado anteriormente. Un flujo de trabajo de suscripción voluntaria y un guion verbal o escrito conformes con los requisitos sirven para recoger el consentimiento explícito del destinatario para recibir un tipo de mensaje específico. Un ejemplo sería el guion verbal que utiliza un agente de asistencia para obtener el consentimiento antes de registrar a alguien en una base de datos de servicios o un número de teléfono que aparece en un folleto promocional. Para proporcionar una simulación de estos tipos de flujos de trabajo de suscripción voluntaria, puede incluir una captura de pantalla de su script de suscripción, material de marketing o base de datos donde se recojan los números. Los operadores de telefonía móvil podrían hacer preguntas adicionales sobre estos casos de uso si el proceso de suscripción voluntaria no está claro o si el caso de uso supera ciertos volúmenes.

## No enviar a listas antiguas
<a name="channels-sms-best-practices-old-lists"></a>

La gente cambia de número de teléfono con frecuencia. Es posible que el número de teléfono del que obtuvo el consentimiento para contactar con esa persona hace dos años pertenezca ahora a otra persona. No utilice una lista antigua de números de teléfono para un nuevo programa de mensajería; de lo contrario, es probable que algunos mensajes fallen porque el número ya no está en servicio y que algunas personas se den de baja por no recordar haberle dado nunca su consentimiento.

## Auditoría de las listas de clientes
<a name="channels-sms-best-practices-audit-lists"></a>

Si envía campañas de SMS recurrentes, audite periódicamente sus listas de clientes. La auditoría de su lista de clientes garantiza que los únicos clientes que reciban sus mensajes sean aquellos interesados en recibirlos. 

Al auditar su lista, envíe a cada cliente que ha solicitado el alta un mensaje que le recuerde que ya está suscrito y facilítele información sobre cómo anular la suscripción. Un mensaje de recordatorio podría tener un aspecto similar al siguiente:

`You're subscribed to ExampleCorp alerts. Msg & data rates may apply. Reply HELP for help, STOP to unsubscribe.`

## Mantenimiento de registros
<a name="channels-sms-best-practices-keep-records"></a>

Mantenga registros que muestren cuándo ha solicitado cada cliente que usted le envíe mensajes SMS y qué mensajes envía a cada cliente. Muchos países y regiones de todo el mundo requieren que los remitentes de SMS mantengan estos registros de forma que se puedan recuperar fácilmente. Los operadores de telefonía móvil también podrían pedirle esta información en cualquier momento. La información exacta que debe proporcionar varía según el país o la región. Para obtener más información sobre los requisitos de conservación de registros, lea la normativa sobre mensajería SMS de cada país o región en que se encuentren sus clientes.

En algunas ocasiones, un operador o una agencia reguladora nos solicita que proporcionemos una prueba de que un cliente aceptó recibir mensajes de usted. En estas situaciones, se pondrá en Soporte contacto con usted para proporcionarle una lista de la información que necesita el transportista o la agencia. Si no puede proporcionar la información necesaria, podemos suspender su capacidad de enviar mensajes SMS adicionales.

## Procure que sus mensajes sean claros, sinceros y concisos
<a name="channels-sms-best-practices-appropriate-content"></a>

Los SMS son un medio único. El character-per-message límite de 160 significa que tus mensajes deben ser concisos. Es posible que las técnicas que se utilizan en otros canales de comunicación, como el correo electrónico, no se apliquen al canal de SMS e incluso parezcan deshonestas o engañosas cuando se utilizan con mensajes SMS. Si el contenido de sus mensajes no se ajusta a las prácticas recomendadas, es posible que los destinatarios hagan caso omiso de sus mensajes. En el peor de los casos, los operadores de telefonía móvil podrían considerar sus mensajes como spam y bloquear los mensajes que procedan de su número de teléfono.

En esta sección se ofrecen algunos consejos e ideas para crear un cuerpo de mensaje SMS eficaz.

### Identifíquese como remitente
<a name="channels-sms-best-practices-appropriate-content-identify"></a>

Sus destinatarios deberían poder saber inmediatamente que el mensaje es suyo. Los remitentes que siguen esta práctica recomendada utilizan un nombre identificativo (“nombre del programa”) al principio de cada mensaje.

**No haga lo siguiente:**  
`Your account has been accessed from a new device. Reply Y to confirm.`

**Mejor, pruebe esto:**  
`ExampleCorp Financial Alerts: You have logged in to your account from a new device. Reply Y to confirm, or STOP to opt-out.`

### No intentes hacer que tu mensaje parezca un person-to-person mensaje
<a name="channels-sms-best-practices-appropriate-content-p2p"></a>

Algunos profesionales de marketing se sienten tentados a darle un toque personal a sus mensajes SMS haciendo que parezcan provenir de una persona. Sin embargo, esta técnica puede hacer que parezca un intento de suplantación de identidad.

**No haga lo siguiente:**  
`Hi, this is Jane. Did you know that you can save up to 50% at Example.com? Click here for more info: https://www.example.com.`

**Mejor, pruebe esto:**  
`ExampleCorp Offers: Save 25-50% on sale items at Example.com. Click here to browse the sale: https://www.example.com. Text STOP to opt-out.`

### Tenga cuidado cuando hable de dinero
<a name="channels-sms-best-practices-appropriate-content-money"></a>

Los estafadores suelen aprovecharse del deseo de las personas de ahorrar y ganar dinero. No haga que las ofertas parezcan demasiado buenas para ser verdad. No intente engañar a la gente con el cebo del dinero. No utilice símbolos de monedas para hacer referencia al dinero.

**No haga lo siguiente:**  
`Save big $$$ on your next car repair by going to https://www.example.com.`

**Mejor, pruebe esto:**  
`ExampleCorp Offers: Your ExampleCorp insurance policy gets you discounts at 2300+ repair shops nationwide. More info at https://www.example.com. Text STOP to opt-out.`

### Use solo los caracteres necesarios
<a name="channels-sms-best-practices-appropriate-content-characters"></a>

Las empresas suelen incluir símbolos de marca comercial como ™ o ® en sus mensajes para proteger sus marcas comerciales. Sin embargo, estos símbolos no forman parte del conjunto de caracteres estándar (conocido como alfabeto GSM) que se puede incluir en un mensaje SMS de 160 caracteres. Cuando envía un mensaje que contiene uno de estos caracteres, se utiliza automáticamente un sistema de codificación de caracteres diferente, que solo admite 70 caracteres por cada parte del mensaje. Como resultado, el mensaje podría dividirse en varias partes. Dado que se le factura por cada parte del mensaje, enviar el mensaje completo podría costarte más de lo que esperaba. Además, es posible que sus destinatarios reciban varios mensajes secuenciales en lugar de un solo mensaje. Para obtener más información acerca de la codificación de caracteres SMS, consulte [Límites de caracteres de SMS en Amazon SNS](#channels-sms-limitations-characters).

**No haga lo siguiente:**  
`ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget® at example.com and use the promo code WIDGET.`

**Mejor, pruebe esto:**  
`ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget(R) at example.com and use the promo code WIDGET.`

**nota**  
Los dos ejemplos anteriores son casi idénticos, pero el primero contiene un símbolo de marca registrada (®), que no forma parte del alfabeto GSM. Por consiguiente, el primer ejemplo se envía en dos partes, mientras que el segundo ejemplo se envía como un solo mensaje.

### Use enlaces válidos y seguros
<a name="channels-sms-best-practices-appropriate-content-links"></a>

Si el mensaje incluye enlaces, compruébelos para asegurarse de que funcionan. Pruebe los enlaces en un dispositivo fuera de la red corporativa para asegurarse de que se resuelven correctamente. Debido al límite de 160 caracteres de los mensajes SMS, los mensajes muy largos URLs pueden dividirse en varios mensajes. Deberías usar dominios de redireccionamiento para acortarlos. URLs Sin embargo, no debe utilizar servicios gratuitos de acortamiento de enlaces, como tinyurl.com o bitly.com, porque los operadores suelen filtrar los mensajes que incluyen enlaces de estos dominios. Sin embargo, puede usar servicios de acortamiento de enlaces de pago siempre que sus enlaces apunten a un dominio que esté dedicado a un uso exclusivo por parte de su empresa u organización. 

**No haga lo siguiente:**  
`Go to https://tinyurl.com/4585y8mr today for a special offer!`

**Mejor, pruebe esto:**  
`ExampleCorp Offers: Today only, get an exclusive deal on an ExampleCorp Widget. See https://a.co/cFKmaRG for more info. Text STOP to opt-out.`

### Limite la cantidad de abreviaturas
<a name="channels-sms-best-practices-appropriate-content-abbrev"></a>

La limitación de 160 caracteres del canal de SMS lleva a algunos remitentes a utilizar muchas abreviaturas en sus mensajes. Sin embargo, el uso excesivo de abreviaturas les puede resultar poco profesional a muchos lectores y algunos usuarios podrían marcar su mensaje como spam. Es totalmente posible escribir un mensaje coherente sin utilizar un número excesivo de abreviaturas.

**No haga lo siguiente:**  
`Get a gr8 deal on ExampleCorp widgets when u buy a 4-pack 2day.`

**Mejor, pruebe esto:**  
`ExampleCorp Alerts: Today only—an exclusive deal on ExampleCorp Widgets at example.com. Text STOP to opt-out.`

## Responda correctamente
<a name="channels-sms-best-practices-respond-appropriately"></a>

Cuando un destinatario conteste a sus mensajes, asegúrese de responder con información útil. Por ejemplo, cuando un cliente responde a uno de sus mensajes con la palabra clave "HELP", envíele información sobre el programa al que está suscrito, el número de mensajes que va a enviar cada mes y las formas en que puede ponerse en contacto con usted para obtener más información. Una respuesta a un mensaje HELP podría tener un aspecto similar al siguiente:

`HELP: ExampleCorp alerts: email help@example.com or call 425-555-0199. 2 msgs/month. Msg & data rates may apply. Reply STOP to cancel.`

Cuando un cliente responda con la palabra clave "STOP", hágale saber que ya no recibirá más mensajes. Una respuesta STOP podría tener un aspecto similar al siguiente:

`You're unsubscribed from ExampleCorp alerts. No more messages will be sent. Reply HELP, email help@example.com, or call 425-555-0199 for more info.`

## Ajuste el envío en función del interés
<a name="channels-sms-best-practices-adjust-engagement"></a>

Las prioridades de los clientes pueden cambiar a lo largo del tiempo. Si los clientes dejan de encontrar útiles sus mensajes, podrían darse de baja de sus mensajes o incluso registrar los mensajes como no solicitados. Por estas razones, es importante que ajuste sus prácticas de envío en función del interés de los clientes.

Para los clientes que no suelan interaccionar con sus mensajes, debe ajustar la frecuencia de los mismos. Por ejemplo, si envía mensajes semanales a clientes interesados, podría crear un resumen mensual independiente para los clientes menos interesados. 

Por último, elimine de su lista a aquellos clientes que no muestren ningún interés. Este paso evita que los clientes se sientan frustrados con sus mensajes. También le ahorra dinero y ayuda a proteger su reputación como remitente.

## Envíe los mensajes en los momentos apropiados
<a name="channels-sms-best-practices-appropriate-times"></a>

Envíe mensajes solo durante el horario laborable diurno normal. Si envía mensajes a la hora de la cena o a medianoche, hay muchas probabilidades de que sus clientes se den de baja de sus listas para evitar ser molestados. Además, no tiene sentido enviar mensajes SMS cuando los clientes no pueden responder a ellos de forma inmediata. 

Si envía campañas o recorridos a audiencias muy grandes, compruebe bien las tasas de rendimiento de sus números de origen. Divida el número de destinatarios entre su tasa de rendimiento para determinar cuánto tiempo tardará en enviar los mensajes a todos sus destinatarios.

## Evite la fatiga del uso de distintos canales
<a name="channels-sms-best-practices-cross-channel-fatigue"></a>

En sus campañas, si utiliza varios canales de comunicación (como, por ejemplo, correo electrónico, SMS y mensajes push), no envíe el mismo mensaje en cada canal. Al enviar el mismo mensaje a la vez en más de un canal, los clientes perciben su comportamiento de envío como molesto en lugar de útil.

## Utilice códigos cortos dedicados
<a name="channels-sms-best-practices-dedicated-short-codes"></a>

Si utiliza códigos cortos, mantenga un código corto independiente para cada marca y cada tipo de mensaje. Por ejemplo, si su empresa tiene dos marcas, utilice un código corto independiente para cada una de ellas. Del mismo modo, si se envían mensajes transaccionales y promocionales, utilice un código corto independiente para cada tipo de mensaje. Para obtener más información sobre la solicitud de códigos cortos, consulte [Solicitud de códigos cortos para la mensajería SMS con AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-short-code.html) en la *Guía del usuario de AWS End User Messaging SMS *.

## Verifique los números de teléfono de destino
<a name="channels-sms-best-practices-verify-destination-numbers"></a>

Cuando envía mensajes SMS a través de Amazon SNS, se le factura por cada parte del mensaje que envía. El precio que paga por cada parte del mensaje varía en función del país o la región del destinatario. Para obtener información acerca de los precios de SMS, consulte [AWS Worldwide SMS Pricing](https://aws.amazon.com/sns/sms-pricing).

Cuando Amazon SNS acepta una solicitud para enviar un mensaje SMS (como resultado de una llamada a la [SendMessages](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#SendMessages)API o como resultado del lanzamiento de una campaña o un viaje), se te cobrará por enviar ese mensaje. Esto es así incluso si el destinatario previsto no recibe el mensaje al final. Por ejemplo, aunque el número de teléfono del destinatario ya no esté en servicio o el número al que le ha enviado el mensaje no fuera un número de teléfono móvil válido, se le facturará por enviar el mensaje.

Amazon SNS acepta solicitudes válidas para enviar mensajes SMS e intenta entregarlos. Por este motivo, debe asegurarse de que los números de teléfono a los que envía los mensajes sean números de teléfono móviles válidos. Puedes usarlo AWS End User Messaging SMS para enviar un mensaje de prueba para determinar si un número de teléfono es válido y qué tipo de número es (por ejemplo, móvil, fijo o VoIP). Para obtener más información, consulte [Envío de un mensaje de prueba con el simulador de SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/getting-started-tutorial.html#getting-started-tutorial-step3) en la *Guía del usuario de AWS End User Messaging SMS *.

## Diseñe teniendo en cuenta la redundancia
<a name="channels-sms-best-practices-redundancy"></a>

Para los programas de mensajería de misión crítica, le recomendamos que configure Amazon SNS en más de una Región de AWS. Amazon SNS está disponible en varios. Regiones de AWS Para obtener una lista de las regiones en las que está disponible Amazon SNS, consulte la [Referencia general de AWS](https://docs.aws.amazon.com/general/latest/gr/sns.html). 

Los números de teléfono que usa para los mensajes SMS, incluidos los códigos cortos, los códigos largos, los números gratuitos y los números 10DLC, no se pueden replicar en las Regiones de AWS. Por lo tanto, para utilizar Amazon SNS en varias regiones, debe solicitar números de teléfono distintos en cada región en la que vaya a utilizarlo. Por ejemplo, si utilizas un código corto para enviar mensajes de texto a destinatarios en los Estados Unidos, tendrás que solicitar códigos cortos separados en cada uno de los Región de AWS que vayas a usar.

En algunos países, también puede usar varios tipos de números de teléfono para aumentar la redundancia. Por ejemplo, en los Estados Unidos, puede solicitar códigos cortos, números 10DLC y números gratuitos. Cada uno de estos tipos de números de teléfono llega al destinatario por una ruta diferente. Tener varios tipos de números de teléfono disponibles, ya sea en el mismo número Región de AWS o repartidos entre varios Regiones de AWS, proporciona una capa adicional de redundancia, que puede ayudar a mejorar la resiliencia.

## Límites y restricciones de SMS
<a name="channels-sms-best-practices-limits"></a>

Para conocer los límites y restricciones de SMS, consulte [Límites y restricciones de SMS y MMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations.html) en la *Guía del usuario de AWS End User Messaging SMS *.

## Administración de palabras clave de cancelación de la suscripción
<a name="channels-sms-best-practices-optout-keywords"></a>

Los destinatarios de los SMS pueden usar los dispositivos para cancelar la suscripción a los mensajes respondiendo con una palabra clave. Para obtener más información, consulte [Desactivación de la recepción de mensajes SMS](sms_manage.md#sms_manage_optout).

## CreatePool
<a name="channels-sms-best-practices-createpool"></a>

Utilice la acción de la API `CreatePool` para crear un grupo nuevo y asociar una identidad de origen especificada al grupo. Para obtener más información, consulte [CreatePool](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_CreatePool.html)la *referencia AWS End User Messaging SMS de la API*.

## PutKeyword
<a name="channels-sms-best-practices-putkeyword"></a>

Utilice la acción de la API `PutKeyword` para crear o actualizar una configuración de palabras clave en un número de teléfono o grupo de origen. Para obtener más información, consulta la Referencia de [PutKeyword](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_PutKeyword.html)la *AWS End User Messaging SMS API*.

## Administración de la configuración de números
<a name="channels-sms-best-practices-number-settings"></a>

Para administrar la configuración de los códigos cortos y largos dedicados que solicitó a AWS Support y que asignó a su cuenta, consulte [Cambiar las capacidades de un número de teléfono con AWS CLI la](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-change-capabilitiy.html) entrada *AWS End User Messaging SMS*.

## Límites de caracteres de SMS en Amazon SNS
<a name="channels-sms-limitations-characters"></a>

Cada mensaje SMS puede contener hasta 140 bytes de información. El número de caracteres que se pueden incluir en cada mensaje SMS depende del tipo de caracteres que contiene el mensaje.

Si el mensaje solo utiliza [caracteres del conjunto de caracteres GSM 03.38](#channels-sms-limitations-characters-gsm-alphabet), también conocido como alfabeto GSM de 7 bits, puede contener hasta 160 caracteres. Si el mensaje contiene caracteres que no pertenecen al conjunto de caracteres GSM 03.38, puede tener hasta 70 caracteres. Cuando se envía un mensaje SMS, Amazon SNS determina automáticamente la codificación más eficiente que puede utilizarse.

Cuando un mensaje supera el número máximo de caracteres, se divide en varias partes. Cuando los mensajes se dividen en varias partes, cada parte contiene información adicional sobre la parte del mensaje que la precede. Cuando el dispositivo del destinatario recibe partes de mensajes separados de esta forma, utiliza esta información adicional para asegurarse de que todas las partes del mensaje se muestran en el orden correcto. Según el operador móvil y del dispositivo del destinatario, es posible que se muestren varios mensajes como un solo mensaje o como una secuencia de mensajes separados. Como resultado, el número máximo de caracteres de cada parte del mensaje se reduce a 153 (para los mensajes que solo contienen caracteres GSM 03.38) o a 67 (para los mensajes que contienen otros caracteres). Puede calcular cuántas partes de mensajes contiene su mensaje antes de enviarlo utilizando las herramientas de calculadora de longitud de SMS, varias de las cuales están disponibles en línea. El tamaño máximo admitido de cualquier mensaje es de 1600 caracteres GSM o 630 caracteres no GSM. Para obtener más información acerca del rendimiento y el tamaño de los mensajes, consulte [SMS character limits in Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-limitations-mps.html) en la *Guía del usuario de Amazon Pinpoint*.

Para ver el número de partes del mensaje de cada mensaje que envíe, primero debe habilitar los [ajustes de streaming de eventos](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-event-streams.html). Al hacerlo, Amazon SNS produce un evento `_SMS.SUCCESS` cuando el mensaje se entrega al proveedor de telefonía móvil del destinatario. El registro de eventos `_SMS.SUCCESS` contiene un atributo llamado `attributes.number_of_message_parts`. Este atributo especifica el número de partes de mensaje que contiene el mensaje.

**importante**  
Cuando envía un mensaje que contiene más de una parte de mensaje, se le cobrará el número de partes de mensaje incluidas en él.

### Conjunto de caracteres GSM 03.38
<a name="channels-sms-limitations-characters-gsm-alphabet"></a>

En la tabla siguiente, se muestran todos los caracteres del conjunto de caracteres GSM 03.38. Si envía un mensaje que solo incluye los caracteres que se muestran en la tabla, el mensaje puede contener hasta 160 caracteres. 


| Caracteres estándar GSM 03.38 | 
| --- | 
| A | B | C | D | E | F | G | H | I | J | K | L | M | 
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 
| a | b | c | d | e | f | g | h | i | j | k | l | m | 
| n | o | p | q | r | s | t | u | v | w | x | y | z | 
| à | Å | å | Ä | ä | Ç | É | é | è | ì | Ñ | ñ | ò | 
| Ø | ø | Ö | ö | ù | Ü | ü | Æ | æ | ß | 0 | 1 | 2 | 
| 3 | 4 | 5 | 6 | 7 | 8 | 9 | & | \$1 | @ | : | , | ¤ | 
| \$1 | = | \$1 | > | \$1 | - | ¡ | ¿ | ( | < | % | . | \$1 | 
| £ | ? | " | ) | § | ; | ' | / | \$1 | ¥ | Δ | Φ | Γ | 
| Λ | Ω | Π | Ψ | Σ | Θ | Ξ |  |  |  |  |  |  | 

El conjunto de caracteres GSM 03.38 incluye varios símbolos además de los que se muestran en la tabla anterior. Sin embargo, cada uno de estos caracteres se cuenta como dos caracteres, ya que también incluye un carácter de escape invisible:
+ ^
+ \$1
+ \$1
+ \$1
+ [
+ ]
+ \$1
+ \$1
+ €

Por último, el conjunto de caracteres GSM 03.38 también incluye los siguientes caracteres no imprimibles:
+ Un carácter de espacio.
+ Un control de salto de línea, que indica el final de una línea de texto y el principio de otra.
+ Un control de retorno de carro, que cambia al principio de una línea de texto (normalmente después de un carácter de salto de línea).
+ Un control de escape, que se añade automáticamente a los caracteres de la lista anterior.

### Mensajes de ejemplo
<a name="channels-sms-limitations-characters-example-messages"></a>

Esta sección contiene varios mensajes SMS de ejemplo. Para cada ejemplo, esta sección muestra el número total de caracteres, así como el número de partes del mensaje.

**Ejemplo 1: mensaje largo que solo contiene caracteres en el alfabeto GSM 03.38**  
El siguiente mensaje solo contiene caracteres que están en el alfabeto GSM 03.38.

`Hello Carlos. Your Example Corp. bill of $100 is now available. Autopay is scheduled for next Thursday, April 9. To view the details of your bill, go to https://example.com/bill1.`

El mensaje anterior contiene 180 caracteres, por lo que debe dividirse en varias partes de mensaje. Cuando un mensaje se divide en varias partes de mensaje, cada una puede contener 153 caracteres GSM 03.38. Como resultado, este mensaje se envía como dos partes de mensaje.

**Ejemplo 2: mensaje que contiene caracteres de varios bytes**  
El siguiente mensaje contiene varios caracteres chinos, que no están incluidos en el alfabeto GSM 03.38. 

`亚马逊公司是一家总部位于美国西雅图的跨国电子商务企业，业务起始于线上书店，不久之后商品走向多元化。杰夫·贝佐斯于1994年7月创建了这家公司。`

El mensaje anterior contiene 71 caracteres. Sin embargo, debido a que casi todos los caracteres del mensaje no están incluidos en el alfabeto GSM 03.38, se envía como dos partes de mensaje. Cada una de estas partes de mensaje puede contener un máximo de 67 caracteres.

**Ejemplo 3: mensaje que contiene un único carácter que no es GSM**  
El siguiente mensaje contiene un único carácter que no forma parte del alfabeto GSM 03.38. En este ejemplo, el carácter es una comilla simple de cierre (’), que es un carácter diferente al apóstrofo normal ('). Las aplicaciones de procesamiento de textos como Microsoft Word suelen reemplazar automáticamente los apóstrofos por comillas simples de cierre. Si redacta sus mensajes SMS en Microsoft Word y los pega en Amazon SNS, debe quitar estos caracteres especiales y reemplazarlos por apóstrofos.

`John: Your appointment with Dr. Salazar’s office is scheduled for next Thursday at 4:30pm. Reply YES to confirm, NO to reschedule.`

El mensaje anterior contiene 130 caracteres. Sin embargo, debido a que contiene el carácter de comilla simple de cierre, que no forma parte del alfabeto GSM 03.38, se envía como dos partes de mensaje.

Si reemplaza el carácter de comilla simple de cierre en este mensaje por un apóstrofo (que forma parte del alfabeto GSM 03.38), el mensaje se envía como una sola parte de mensaje.