El envío de mensajes SMS sigue siendo una herramienta clave en la comunicación empresarial, especialmente para notificaciones, alertas, y marketing.
La integración de SMS con C# utilizando la API de 360NRS permite automatizar este proceso, proporcionando flexibilidad y escalabilidad.
La API de 360NRS ofrece funcionalidades avanzadas como personalización de mensajes, programación, notificaciones de entrega, y soporte para mensajes certificados o flash.
En este artículo, aprenderás a realizar la integración paso a paso, incluyendo el manejo de errores y escenarios avanzados.
Contenidos
API de 360NRS para SMS #C
La API de 360NRS permite enviar SMS de forma sencilla mediante solicitudes HTTP. Entre sus principales características destacan:
- Autenticación: Se utiliza un token de autorización en formato Basic Auth.
- Seguridad: Todas las solicitudes deben enviarse a través de HTTPS.
- Manejo de parámetros: Permite personalizar mensajes con múltiples destinatarios, etiquetas y programación.
- Respuestas claras: Proporciona respuestas HTTP detalladas para validar el estado de las solicitudes.
Implementación básica: Enviar un SMS con #C
El siguiente ejemplo muestra cómo enviar un SMS utilizando la API. Este ejemplo básico incluye el envío de un mensaje simple a un destinatario.
using System;
using RestSharp;
namespace HelloWorldApplication {
  class HelloWorld {
    static void Main(string[] args) {
      var client = new RestClient("https://dashboard.360nrs.com/api/rest/sms");
      client.Timeout = -1;
      var request = new RestRequest(Method.POST);
      request.AddHeader("Authorization", "Basic YOUR_AUTH_TOKEN");
      request.AddHeader("Content-Type", "application/json");
      request.AddParameter("application/json", "{ \"to\": [\"34666555444\"], \"from\": \"TEST\", \"message\": \"SMS text message\" }", ParameterType.RequestBody);
      IRestResponse response = client.Execute(request);
      Console.WriteLine(response.Content);
    }
  }
}
Descripción paso a paso
- Cliente HTTP: Se utiliza la biblioteca RestSharp para gestionar las solicitudes HTTP.
- Autenticación: El encabezado Authorizationcontiene el token de acceso.
- Cuerpo de la solicitud: Se especifican los parámetros to,fromymessage.
- Respuesta del servidor: El contenido de la respuesta se imprime en consola.
Manejo de respuestas del servidor
La API devuelve diferentes códigos HTTP según el resultado de la solicitud:
Ejemplo de respuesta exitosa
Código HTTP 202 (ACCEPTED)
{
  "campaignId": 100000,
  "sendingId": 100001,
  "result": [
    {
      "accepted": true,
      "to": "34666555444",
      "id": "XXXXXXXXXXXXX",
      "parts": 1,
      "scheduledAt": null,
      "expiresAt": null
    }
  ]
}
- campaignId: ID de la campaña asociada.
- sendingId: ID único del envío.
- result: Detalles de cada destinatario.
Ejemplo de error en la solicitud
Código HTTP 400 (BAD REQUEST)
{
  "error": {
    "code": 102,
    "description": "No valid recipients"
  }
}
- code: Código del error.
- description: Descripción del problema.
Parámetros principales de la API
| Parámetro | Tipo | Obligatorio | Descripción | 
|---|---|---|---|
| message | string | Sí | Texto del mensaje. Máximo 160 caracteres (o más si es multipart). | 
| to | array | Sí | Lista de números de destinatarios (incluyendo prefijos). | 
| from | string | Sí | Remitente (hasta 11 caracteres alfanuméricos o 15 numéricos). | 
| encoding | string | No | Codificación: gsm,utf-16. | 
| scheduleDate | string | No | Fecha de envío programado en formato UTC (YYYYmmddHHiiss). | 
| notificationUrl | string | No | URL para recibir notificaciones de entrega. | 
| campaignName | string | No | Nombre de la campaña. | 
| sub | array | No | Variables de sustitución para personalización. | 
Ejemplos prácticos adicionales
Enviar un mensaje programado
request.AddParameter("application/json", "{ \"to\": [\"34666555444\"], \"from\": \"TEST\", \"message\": \"Scheduled SMS\", \"scheduleDate\": \"20240101120000\" }", ParameterType.RequestBody);
- scheduleDate: Envía el SMS el 1 de enero de 2024 a las 12:00:00 UTC.
Enviar mensajes personalizados con variables
request.AddParameter("application/json", "{ \"from\": \"TEST\", \"to\": [\"34666555444\"], \"message\": \"Hello {name}\", \"sub\": [{ \"name\": \"John\" }] }", ParameterType.RequestBody);
- sub: Personaliza el mensaje para cada destinatario.
Consultar estado de un SMS por ID
El siguiente código permite recuperar información detallada sobre un SMS enviado.
using System;
using RestSharp;
namespace HelloWorldApplication {
  class HelloWorld {
    static void Main(string[] args) {
      var client = new RestClient("https://dashboard.360nrs.com/api/rest/sms/<ID>");
      client.Timeout = -1;
      var request = new RestRequest(Method.GET);
      request.AddHeader("Authorization", "Basic YOUR_AUTH_TOKEN");
      IRestResponse response = client.Execute(request);
      Console.WriteLine(response.Content);
    }
  }
}
Respuesta exitosa
{
  "data": [
    {
      "id": "XXXXXXXXXXXXX",
      "from": "360NRS",
      "to": "34666555444",
      "message": "SMS text message",
      "isDelivered": true
    }
  ]
}
También te puede interesar:
API de envío de SMS
La integración de la API de 360NRS con C# simplifica el envío de SMS al permitir una gestión eficiente y escalable.
Con soporte para mensajes personalizados, programación y notificaciones, esta solución mejora la experiencia del usuario y aumenta la eficacia de la comunicación empresarial. Implementa esta integración para llevar tus procesos al siguiente nivel.

Jaime Martínez – Product Manager 360NRS
Jaime Martínez, Product Manager en 360NRS, experto en comunicaciones móviles, marketing online, diseño, usabilidad y gestión de producto. Con más de 20 años de experiencia en el sector, Jaime ha liderado el desarrollo y evolución de productos digitales, impulsando estrategias centradas en el usuario que optimizan tanto la experiencia como el rendimiento de las soluciones. Su amplia trayectoria en diseño, marketing digital y gestión de producto aporta una visión estratégica clave para la innovación y el éxito de nuestras soluciones multicanal.
 
	 


