---

```markdown
# AWS-SNS-SMS

Un módulo simple y eficiente para enviar mensajes SMS utilizando **Amazon SNS** (Simple Notification Service) y **Convergia**. Ideal para integraciones rápidas en aplicaciones Node.js que requieren notificaciones SMS.

---

## Instalación

Instala el módulo usando npm:

```bash
npm install aws-sns-sms-service
```

---

## Requisitos

### Amazon SNS
- Necesitas una cuenta de [AWS](https://aws.amazon.com/).
- Crea un usuario IAM con permisos para enviar SMS a través de SNS.
- Obtén las credenciales (`key_id` y `access_key`) del usuario IAM.

### Convergia
- Necesitas una cuenta en [Convergia](https://www.convergia.com/).
- Obtén un token de autenticación para usar su API.

---

## Uso

### Enviar notificación usando Amazon SNS

```javascript
const SMSService = require('aws-sns-sms-service');

const parameters = {
    key_id: 'TU_AWS_ACCESS_KEY_ID', // Clave de acceso de AWS
    access_key: 'TU_AWS_SECRET_ACCESS_KEY', // Clave secreta de AWS
    message: 'Este es un mensaje de prueba.', // Mensaje a enviar
    mobiles: ['520000000000'] // Números de teléfono en formato internacional
};

SMSService.sendNotificationAmazonSNS(parameters)
    .then(response => {
        console.log('Respuesta:', response);
    })
    .catch(error => {
        console.error('Error:', error);
    });
```

#### Respuesta esperada:
```json
[
    {
        "mobile": "520000000000",
        "message_id": "8c3ed5ae-6dcc-5ba1-ab45-8c145409a148"
    }
]
```

---

### Enviar notificación usando Convergia

```javascript
const SMSService = require('aws-sns-sms-service');

const parameters = {
    token: 'TU_TOKEN_DE_CONVERGIA', // Token de autenticación de Convergia
    message: 'Este es un mensaje de prueba.', // Mensaje a enviar
    mobiles: ['520000000000'] // Números de teléfono en formato internacional
};

SMSService.sendNotificationConvergia(parameters)
    .then(response => {
        console.log('Respuesta:', response);
    })
    .catch(error => {
        console.error('Error:', error);
    });
```

#### Respuesta esperada:
```json
[
    {
        "group_id": 39681,
        "group_name": "30/01/2025",
        "id": "9d0e070b649640c0923867f6c6f0f009"
    }
]
```

---

## Manejo de errores

El módulo devuelve errores detallados en caso de que algo falle. Asegúrate de manejar los errores correctamente en tu aplicación.

```javascript
SMSService.sendNotificationAmazonSNS(parameters)
    .then(response => {
        console.log('Respuesta:', response);
    })
    .catch(error => {
        console.error('Error al enviar el SMS:', error);
    });
```

---

## Validación de parámetros

El módulo valida los parámetros antes de enviar los mensajes. Asegúrate de proporcionar los datos correctos:

- `key_id` y `access_key` son obligatorios para Amazon SNS.
- `token` es obligatorio para Convergia.
- `message` debe ser una cadena no vacía.
- `mobiles` debe ser un array de números de teléfono en formato internacional.

---

## Documentación oficial

### Amazon SNS
Para más detalles sobre cómo configurar Amazon SNS, consulta la [documentación oficial de AWS](https://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html).

### Convergia
Consulta la documentación de Convergia para obtener más información sobre su API.

---

## Contribución

¡Las contribuciones son bienvenidas! Si deseas mejorar este módulo, sigue estos pasos:

1. Haz un fork del repositorio.
2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`).
3. Haz commit de tus cambios (`git commit -m 'Añadir nueva funcionalidad'`).
4. Haz push a la rama (`git push origin feature/nueva-funcionalidad`).
5. Abre un Pull Request.

---

## Licencia

Este proyecto está licenciado bajo la [MIT License](LICENSE).

---

## Changelog

### v1.0.0
- Lanzamiento inicial del módulo.
- Soporte para Amazon SNS y Convergia.

---

## Soporte

Si tienes alguna pregunta o encuentras algún problema, por favor abre un [issue](https://github.com/tu-usuario/aws-sns-sms/issues) en el repositorio.

---