DEV Community

Cover image for Cómo Enviar SMS y WhatsApp Más Rápido con la API de Sent.dm
Roobia
Roobia

Posted on • Originally published at apidog.com

Cómo Enviar SMS y WhatsApp Más Rápido con la API de Sent.dm

TL;DR / Respuesta Rápida

La API de Sent.dm te ofrece un único punto de integración para la mensajería empresarial a través de SMS y WhatsApp. Si combinas Sent con Apidog, puedes almacenar tus credenciales en entornos, probar solicitudes sin escribir scripts desechables, validar cargas útiles de webhook y documentar tu flujo de trabajo de mensajería en un solo lugar.

Prueba Apidog hoy

Introducción

La mayoría de los proyectos de mensajería se ralentizan en el mismo punto: la API en sí no es difícil, pero los detalles operativos se acumulan rápidamente. Necesitas claves de API, una identidad de remitente, IDs de plantilla, seguridad de webhook, reglas de canal y una forma limpia de probar todo esto sin enviar mensajes reales a ciegas.

Esa es exactamente la razón por la que Sent.dm es interesante. Sent se posiciona como una API de mensajería unificada para SMS y canales basados en aplicaciones como WhatsApp, con lógica de enrutamiento y entrega gestionada detrás de una única interfaz orientada al desarrollador. Según la documentación pública de Sent revisada el 26 de marzo de 2026, la plataforma incluye verificación de cuenta, configuración de canal, envío basado en plantillas, contactos, eventos de webhook y un panel de control de pruebas.

💡Si quieres realizar esa configuración con menos fricción, Apidog es una herramienta complementaria sólida. Puedes importar la referencia de la API de Sent, crear entornos reutilizables para x-api-key y x-sender-id, construir escenarios de prueba en torno a la creación de mensajes y la gestión de webhooks, y compartir la colección terminada con tu equipo. Descarga Apidog gratis para seguir este tutorial.

Qué resuelve la API de Sent.dm

Sent.dm está diseñado para equipos que quieren llegar a los usuarios en más de un canal de mensajería sin tener que mantener integraciones separadas para cada proveedor. En vez de conectar APIs de SMS, incorporar WhatsApp, manejar formatos de carga útil específicos por canal y monitorizar entregas por tu cuenta, Sent abstrae esa complejidad en una sola plataforma.

Un diagrama ilustra la arquitectura de la API de Sent.dm, mostrando un front-end de aplicación conectándose a Sent.dm, que a su vez se conecta a varios canales como WhatsApp, SMS y un tablero de análisis.

Según la documentación oficial, el producto ofrece:

  • Una URL base de API para flujos de trabajo de mensajería
  • Autenticación basada en cabeceras con x-api-key
  • Modelo de identidad de remitente usando x-sender-id
  • Mensajería saliente basada en plantillas
  • Gestión de contactos y audiencias
  • Webhooks para eventos de entrega y plantilla
  • Enrutamiento inteligente y conmutación por error en la capa de plataforma

Además, necesitas:

  • Estructura de carga útil consistente
  • Reutilización segura de plantillas
  • Seguimiento de eventos de mensajes entregados, fallidos o en cola
  • Flujo de pruebas que mantenga los secretos fuera del front-end
  • Documentación reutilizable por desarrolladores y QA

El mayor reto suele ser la fragmentación del flujo:

Aplicación -> API de Mensajes -> Reglas de Canal -> Eventos de Entrega -> Lógica de Reintento / Estado
Enter fullscreen mode Exit fullscreen mode

Si cada parte vive en una herramienta diferente, la depuración es lenta. Modelar todo el flujo en una plataforma API como Apidog desde el principio acelera el desarrollo y la colaboración.

Cómo funciona la API de Sent.dm

Sent actúa como middleware inteligente entre tu app y los canales de mensajería. Envía una solicitud y Sent elige la mejor ruta de entrega según lógica de enrutamiento, contexto y disponibilidad.

1. Configuración de cuenta y cumplimiento

Crea tu cuenta, verifica KYC y configura la empresa. Estos pasos son obligatorios por cumplimiento y reputación de remitente.

2. Configuración del canal

Elige un número de teléfono y conecta WhatsApp Business. Recomendado: usar el mismo número para SMS y WhatsApp.

3. Plantillas

Antes de enviar mensajes, crea una plantilla. Sent requiere plantillas aprobadas para iniciar el envío, especialmente en WhatsApp.

4. Credenciales de la API

Necesitas dos cabeceras:

x-sender-id: TU_ID_DE_REMITENTE
x-api-key: TU_CLAVE_DE_API
Enter fullscreen mode Exit fullscreen mode

Verifica siempre en tu panel de Sent qué cabeceras requiere cada endpoint y versión.

5. Solicitud de mensaje

Ejemplo de endpoint:

POST https://api.sent.dm/v2/messages/phone
Enter fullscreen mode Exit fullscreen mode

Payload:

{
  "phoneNumber": "NUMERO_DE_TELEFONO_DEL_RECEPTOR",
  "templateId": "ID_DE_PLANTILLA"
}
Enter fullscreen mode Exit fullscreen mode

El primer objetivo es lograr el envío basado en plantillas, confiable y auditable.

Envía tu primera solicitud a la API de Sent.dm

Ejemplo de cURL

curl -X POST "https://api.sent.dm/v2/messages/phone" \
 -H "x-sender-id: TU_ID_DE_REMITENTE" \
 -H "x-api-key: TU_CLAVE_DE_API" \
 -H "Content-Type: application/json" \
 -d '{
   "phoneNumber": "NUMERO_DE_TELEFONO_DEL_RECEPTOR",
   "templateId": "ID_DE_PLANTILLA"
 }'
Enter fullscreen mode Exit fullscreen mode

Ejemplo de JavaScript

const response = await fetch("https://api.sent.dm/v2/messages/phone", {
  method: "POST",
  headers: {
    "x-sender-id": process.env.SENT_SENDER_ID,
    "x-api-key": process.env.SENT_API_KEY,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    phoneNumber: process.env.TEST_PHONE_NUMBER,
    templateId: process.env.SENT_TEMPLATE_ID
  })
});

if (!response.ok) {
  throw new Error(`La solicitud de Sent falló: ${response.status}`);
}

const data = await response.json();
console.log(data);
Enter fullscreen mode Exit fullscreen mode

Ejemplo de Python

import os
import requests

response = requests.post(
  "https://api.sent.dm/v2/messages/phone",
  headers={
    "x-sender-id": os.environ["SENT_SENDER_ID"],
    "x-api-key": os.environ["SENT_API_KEY"],
    "Content-Type": "application/json",
  },
  json={
    "phoneNumber": os.environ["TEST_PHONE_NUMBER"],
    "templateId": os.environ["SENT_TEMPLATE_ID"],
  },
  timeout=30,
)

response.raise_for_status()
print(response.json())
Enter fullscreen mode Exit fullscreen mode

Una respuesta exitosa devuelve HTTP 200 y un messageId. Ese messageId es clave para pruebas en Apidog, registros, soporte y conciliación de webhooks.

Prueba la API de Sent.dm en Apidog

Aquí Apidog destaca: la solicitud, variables, pruebas, documentación y colaboración viven en un solo espacio.

Una captura de pantalla que muestra la interfaz de Apidog, con un entorno Sent y una configuración de solicitud para la API de mensajes.

Paso 1: Crear un entorno Sent

Define variables:

base_url = https://api.sent.dm
sender_id = TU_ID_DE_REMITENTE
api_key = TU_CLAVE_DE_API
template_id = TU_ID_DE_PLANTILLA
test_phone = NUMERO_DE_TELEFONO_DEL_RECEPTOR
Enter fullscreen mode Exit fullscreen mode

Beneficios:

  1. No codificas secretos en ejemplos.
  2. Cambias entre entornos (sandbox, staging, producción) rápido.
  3. Tu equipo reutiliza la colección con sus propios valores.

Paso 2: Construir la solicitud una vez

Crea una nueva solicitud:

  • x-sender-id: {{sender_id}}
  • x-api-key: {{api_key}}
  • Content-Type: application/json
  • Método: POST
  • URL: {{base_url}}/v2/messages/phone
  • Cuerpo:
{
  "phoneNumber": "{{test_phone}}",
  "templateId": "{{template_id}}"
}
Enter fullscreen mode Exit fullscreen mode

Esto supera al testeo manual: todo el equipo ve la carga, autenticación y respuesta esperada en un solo lugar.

Paso 3: Añadir aserciones

Agrega pruebas para validar el éxito:

pm.test("El estado es 200", function () {
  pm.response.to.have.status(200);
});

pm.test("La respuesta contiene un messageId", function () {
  const json = pm.response.json();
  pm.expect(json.messageId).to.exist;
});
Enter fullscreen mode Exit fullscreen mode

Detectarás errores sutiles de inmediato si la API cambia o hay problemas de credenciales/plantillas.

Paso 4: Conviértelo en un escenario

Ejemplo de escenario:

  1. Enviar mensaje
  2. Capturar messageId
  3. Consultar estado posterior si tu flujo lo permite
  4. Comparar eventos recibidos por webhook

Un POST 200 no basta: también necesitas validar aprobaciones, entregas y reintentos.

Paso 5: Añade ejemplos de webhook a la colección

Guarda cargas útiles de webhook esperadas:

{
  "field": "message.status",
  "messageId": "msg_123",
  "status": "delivered",
  "channel": "whatsapp"
}
Enter fullscreen mode Exit fullscreen mode

Esto permite comparar eventos reales con ejemplos guardados, y ayuda a QA y soporte a entender los estados.

Paso 6: Publicar documentación interna

Publica documentación que incluya:

  • Cabeceras requeridas
  • Ejemplos de payload
  • Respuestas de error
  • Ejemplos de eventos de webhook
  • Notas de entorno

Mejor que compartir scripts sueltos por chat.

Maneja plantillas, contactos y webhooks de la manera correcta

Plantillas

Trata las plantillas como contenido versionado:

  1. IDs en variables/configuración
  2. Etiqueta por propósito, idioma, estado de aprobación
  3. Separa plantillas de test y campañas en vivo
  4. Documenta qué plantilla corresponde a cada flujo de usuario

Apidog te permite ejemplos de solicitud por plantilla.

Contactos

Aunque tu app ya gestione usuarios, aprovecha los objetos de contacto de Sent para segmentación y auditoría.

Documenta:

  • Fuente de la verdad
  • Normalización de números
  • Estado de consentimiento
  • Cambios de canal

Estos detalles afectan entregabilidad y cumplimiento.

Webhooks

Verifica la firma HMAC-SHA256 usando las cabeceras:

  • x-webhook-signature
  • x-webhook-id
  • x-webhook-timestamp

Sigue esta checklist:

  1. Lee el cuerpo en bruto
  2. Verifica la firma antes de parsear
  3. Rechaza timestamps antiguos
  4. Procesa eventos de forma idempotente
  5. Acusa recibo rápido; procesa en background

Ejemplo en Express:

import crypto from "crypto";
import express from "express";

const app = express();

app.post("/webhooks/sent", express.raw({ type: "*/*" }), (req, res) => {
  const signature = req.header("x-webhook-signature");
  const webhookId = req.header("x-webhook-id");
  const timestamp = req.header("x-webhook-timestamp");
  const secret = process.env.SENT_WEBHOOK_SECRET;
  const rawBody = req.body.toString("utf8");

  const signedContent = `${webhookId}.${timestamp}.${rawBody}`;
  const expected = crypto
    .createHmac("sha256", Buffer.from(secret.replace(/^whsec_/, ""), "base64"))
    .update(signedContent)
    .digest("base64");

  if (signature !== `v1,${expected}`) {
    return res.status(401).send("No autorizado");
  }

  const event = JSON.parse(rawBody);
  console.log("Evento de webhook recibido:", event.field);

  return res.sendStatus(200);
});
Enter fullscreen mode Exit fullscreen mode

Guarda ejemplos de carga útil en Apidog para alineación entre equipos.

Por qué Apidog se adapta a este flujo de trabajo

Sent.dm te da la capa de mensajería. Apidog te da la gestión colaborativa alrededor de esa API.

Tarea Sent.dm Apidog
Enviar mensajes SMS y WhatsApp No, pero prueba la API que lo hace
Gestionar plantillas y configuración del remitente Documenta y valida solicitudes relacionadas
Probar solicitudes autenticadas Básico a través de playground Potente constructor de solicitudes, entornos, aserciones, escenarios
Compartir documentación de API con el equipo Documentación de la plataforma Colecciones orientadas al equipo y documentos generados
Depurar el flujo de solicitud y respuesta Parcial Mejor para inspección y colaboración repetibles
Construir escenarios de prueba de extremo a extremo Centrado en la mensajería Mejor para pruebas de flujo de trabajo API de varios pasos

Si usas Sent para mensajería, Apidog resuelve:

  • Compartir colecciones de solicitudes
  • Validación de APIs sin scripts manuales para QA
  • Probar cambios de versión, nuevas plantillas o webhooks en un solo espacio

Descarga Apidog gratis para probar las solicitudes de Sent.dm, almacenar entornos de forma segura y transformar tu primer llamado exitoso en un flujo de trabajo de equipo reutilizable.

Consejos avanzados y errores comunes

Mejores prácticas

  1. Mantén credenciales solo en el servidor (no exponer en front-end).
  2. Registra el messageId en logs y herramientas de soporte.
  3. Separa plantillas de staging y producción.
  4. Verifica cada webhook antes de procesarlo.
  5. Usa entornos de Apidog para aislar credenciales.

Errores comunes a evitar

  1. Tratar un 200 como entrega final (no lo es).
  2. Codificar IDs de plantilla en varios servicios.
  3. Ignorar la configuración del remitente hasta último momento.
  4. No normalizar números de teléfono.
  5. Probar con credenciales reales en scripts no compartidos.

Puntos para troubleshooting

Si falla una solicitud, revisa:

  1. ¿La x-api-key es válida/activa?
  2. ¿El endpoint y la versión coinciden con tu espacio de Sent?
  3. ¿Requiere esa ruta x-sender-id?
  4. ¿La plantilla está aprobada y disponible?
  5. ¿El número de teléfono está en formato correcto?

Apidog agiliza comparar solicitudes fallidas con ejemplos funcionales.

Alternativas y comparaciones de Sent.dm

Si comparas Sent.dm puedes considerar proveedores directos, plataformas tipo Twilio o clientes API como Postman. La diferencia clave: control vs. simplicidad y pruebas.

Opción Punto fuerte Inconveniente
Proveedores directos de SMS + WhatsApp Control granular Mayor trabajo de integración y mantenimiento
Pila de comunicaciones estilo Twilio Ecosistema amplio Más componentes para la orquestación multicanal
Sent.dm Flujo de trabajo de mensajería unificado con abstracción de canales Depende de las convenciones de la plataforma de Sent y la estructura de la documentación
Sent.dm + Postman Flujo de prueba de solicitudes familiar La documentación, el diseño y la colaboración en el flujo de trabajo más amplio permanecen más fragmentados
Sent.dm + Apidog Mensajería unificada más potentes pruebas de API, documentación y flujo de trabajo colaborativo Dos herramientas en lugar de una

Para equipos que valoran velocidad y colaboración, suele ser mejor emparejar la plataforma de entrega con una capa API sólida como Apidog.

Conclusión

Sent.dm es una API de mensajería útil para equipos que buscan una plataforma única para SMS y WhatsApp. Su mayor ventaja: puedes probar y construir en torno a plantillas, identidad del remitente, contactos y webhooks de manera estructurada.

Avanza más rápido: construye la primera solicitud en Apidog, añade aserciones para messageId y documenta tu contrato de webhook en el mismo espacio. Así reduces scripts dispersos y dependencias de conocimiento tribal.

Preguntas Frecuentes

¿Para qué se utiliza la API de Sent.dm?

Para mensajería empresarial por SMS y WhatsApp mediante una única integración. Soporta configuración de remitente, plantillas, contactos y webhooks.

¿Sent.dm soporta WhatsApp y SMS en una sola API?

Sí. Es una API unificada, recomendando usar el mismo número para ambos canales.

¿Qué cabeceras necesito para las solicitudes a la API de Sent.dm?

x-api-key como autenticación principal, y x-sender-id en ejemplos de mensajes. Verifica la versión del endpoint antes de desplegar.

¿Necesito plantillas antes de enviar mensajes con Sent.dm?

Sí, para el flujo inicial. Debes crear una plantilla y usar su templateId en tu primer mensaje.

¿Cómo pruebo la API de Sent.dm sin escribir scripts personalizados?

Con Apidog puedes almacenar credenciales como variables, guardar solicitudes, añadir aserciones, construir escenarios, documentar webhooks y publicar documentación interna.

¿Cómo debo proteger los webhooks de Sent.dm?

Verifica la firma HMAC, valida la marca de tiempo y procesa eventos de forma idempotente usando las cabeceras x-webhook-signature, x-webhook-id y x-webhook-timestamp.

¿Es Sent.dm suficiente por sí solo para los flujos de trabajo API de un equipo?

Cubre la mensajería, pero para pruebas, documentación y validación colaborativa, Apidog añade el valor que falta.

Top comments (0)