Envía WhatsApp y SMS desde tu sistema

Una API REST para que tu intranet, tu ERP o tu app avisen por WhatsApp sin que nadie copie y pegue números. Empieza con una clave de prueba: simula envíos completos sin gastar un peso ni molestar a nadie.

Obtén tu clave de prueba Ver la referencia

En tres pasos

1

Pide tu clave de prueba

Desde el panel, en Configuración → API pública. Empieza con md_sandbox_.

2

Prueba hasta que te guste

El sandbox valida igual que producción y simula la entrega. Nada sale de la plataforma.

3

Cambia la clave

Pasar a producción es reemplazar md_sandbox_ por md_live_. Nada más.

La primera llamada

Comprueba que tu clave funciona. No necesita parámetros.

# ¿Funciona mi clave?
curl https://api.mensajedirecto.cl/v1/api-publica/estado \
  -H "X-API-Key: md_sandbox_TU_CLAVE"

Enviar un WhatsApp

Dos llamadas: das de alta el contacto con su consentimiento, y después envías por una plantilla aprobada.

# 1. El contacto, con su consentimiento declarado
curl -X POST https://api.mensajedirecto.cl/v1/api-publica/contactos \
  -H "X-API-Key: md_sandbox_TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{"telefono":"+56912345678","nombre":"Ana","whatsapp_opt_in":true}'

# 2. El envío. Responde 202 con un id_envio para rastrearlo
curl -X POST https://api.mensajedirecto.cl/v1/api-publica/mensajes \
  -H "X-API-Key: md_sandbox_TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{"telefono":"+56912345678","plantilla":"tu_plantilla","variables":["Ana","12345"]}'

# 3. ¿Llegó? El estado avanza solo: ENCOLADO → ENVIADO → ENTREGADO
curl https://api.mensajedirecto.cl/v1/api-publica/mensajes/EL_ID_ENVIO \
  -H "X-API-Key: md_sandbox_TU_CLAVE"
Un 202 significa «aceptado», no «entregado». La entrega real la sabes consultando el id_envio o recibiendo un webhook. Nadie puede prometerte la entrega en el momento del envío: eso lo decide la red del destinatario.

Números que fuerzan un resultado

En sandbox, estos destinos provocan el resultado que necesites probar. No tienes que esperar a que algo falle solo para escribir tu manejo de errores.

TeléfonoQué pasa
cualquiera válidoSe entrega a los ~5 segundos
+56900000001Falla con 131026 — número no entregable
+56900000002Falla con 131047 — fuera de la ventana de 24 h
+56900000003Se queda en ENVIADO para siempre — para probar tu timeout
+56900000004SMS no ruteable (solo por el canal SMS)

El sandbox permite 500 mensajes al día. Los contactos que crees ahí son reales: lo simulado es el envío, no tu base de datos.

Que te avisemos nosotros

En vez de preguntar por el estado, registra una URL y te avisamos cuando cambie. Usamos la spec Standard Webhooks, así que verificas la firma con una librería que ya existe en tu lenguaje — no tienes que escribir criptografía leyendo esta página.

Reintentamos los errores con espera creciente durante unas 6 horas. Un 4xx tuyo no se reintenta: significa que algo está mal configurado, y eso no se arregla esperando.

Antes de integrar, lee la política de cambios. Dice qué podemos cambiar sin romperte y qué te prometemos avisar, y te pide dos cosas a cambio: ignorar los campos que no conozcas y tratar los estados como lista abierta. Términos · Privacidad

Referencia completa

Puedes probar cada endpoint desde acá pegando tu clave. Solo funcionan las claves md_sandbox_: una clave de producción usada desde el navegador se rechaza, para que nadie mande mensajes de verdad sin querer. Tampoco guardamos la clave que pegues.