Enpoint:
POST https://e-api.massend.com/api/transaccionales
Headers
-
user: email de la cuenta API
-
clave: contraseña de la cuenta API
Body form-data mínimo
-
para ✅
-
asunto ✅
-
contenidoHTML ✅
Ejemplo cURL
curl -X POST "https://e-api.massend.com/api/transaccionales" \
-H "user: tu-email@example.com" \
-H "clave: tu-clave" \
-F "para=destinatario@dominio.com" \
-F "asunto=Confirmación de compra" \
-F "contenidoHTML=<h2>Gracias por tu compra</h2><p>Tu orden fue recibida.</p>"
Ejemplo Postman
Headers
-
user: tu-email@example.com
-
clave: tu-clave
Body form-data
-
para: destinatario@dominio.com
-
asunto: Confirmación de compra
-
contenidoHTML: <h2>Gracias</h2><p>Tu orden fue recibida.</p>
POST /api/transaccionales — Enviar correo transaccional
Envía correos uno a uno en HTML. Permite adjuntos. Los envíos se registran en base de datos.
Endpoint
POST https://e-api.massend.com/api/transaccionales
Autenticación
|
Header |
Tipo |
Descripción |
|---|---|---|
|
user |
string |
Email del usuario autenticado. |
|
clave |
string |
Contraseña del usuario autenticado. |
Body form-data
Campos requeridos
|
Campo |
Tipo |
Requerido |
Descripción |
|---|---|---|---|
|
para |
string |
✅ |
Dirección de correo del destinatario. |
|
asunto |
string |
✅ |
Asunto del correo. |
|
contenidoHTML |
string |
✅ |
Contenido del correo en HTML. |
Campos opcionales
|
Campo |
Tipo |
Descripción |
|---|---|---|
|
dni |
string |
Identificación del destinatario. |
|
eremitente |
string |
Correo del remitente. Si no se envía, se usa el de la cuenta API. |
|
nremitente |
string |
Nombre del remitente. Si no se envía, se usa el de la cuenta API. |
|
eresponder |
string |
Reply-To. Si no se envía, se usa eremitente. Si no existe, se usa user. |
|
nresponder |
string |
Nombre del Reply-To. Si no se envía, se usa nremitente. Si no existe, se usa el nombre de la cuenta API. |
|
cc |
string |
Correos en copia separados por coma. |
|
bcc |
string |
Correos en copia oculta separados por coma. |
Adjuntos
|
Campo |
Tipo |
Descripción |
|---|---|---|
|
file[] |
file |
Adjuntos múltiples. Límite total 3 MB sumando todos los archivos. |
Ejemplos
cURL con remitente, cc y bcc
curl -X POST "https://e-api.massend.com/api/transaccionales" \
-H "user: tu-email@example.com" \
-H "clave: tu-clave" \
-F "para=destinatario@dominio.com" \
-F "asunto=Seguimiento" \
-F "contenidoHTML=<p>Hola, te escribo para...</p>" \
-F "eremitente=ventas@dominio.com" \
-F "nremitente=Equipo Ventas" \
-F "cc=cc1@dominio.com,cc2@dominio.com" \
-F "bcc=bcc1@dominio.com"
cURL con adjuntos
curl -X POST "https://e-api.massend.com/api/transaccionales" \
-H "user: tu-email@example.com" \
-H "clave: tu-clave" \
-F "para=destinatario@dominio.com" \
-F "asunto=Documentos" \
-F "contenidoHTML=<p>Adjunto encontrarás los documentos.</p>" \
-F "file[]=@/ruta/al/archivo1.pdf" \
-F "file[]=@/ruta/al/archivo2.jpg"
Respuesta exitosa
{
"message": "Correo transaccional enviado correctamente",
"TransactionID": "a719da42-9d39-0156-e042-0f98471ba1d5",
"MessageID": ""
}
Errores
Formato
-
Error único: error
-
Varios errores: errors
400 Unauthorized
{ "error": "Faltan los headers de autenticación" }
401 Unauthorized
{ "error": "Credenciales incorrectas" }
422 Unprocessable Entity, faltan campos requeridos
{
"errors": {
"para": ["El campo para es obligatorio."],
"asunto": ["El campo asunto es obligatorio."],
"contenidoHTML": ["El campo contenidoHTML es obligatorio."],
"dni": ["El campo dni es obligatorio."]
}
}
422 Unprocessable Entity, valores inválidos
{
"errors": {
"para": ["El campo para debe ser una dirección de correo válida."],
"cc": ["El campo cc debe contener direcciones de correo válidas separadas por coma."],
"bcc": ["El campo bcc debe contener direcciones de correo válidas separadas por coma."]
}
}
422 Unprocessable Entity, adjuntos inválidos
{
"errors": {
"file.0": ["El archivo 0 debe ser un archivo válido."],
"file.1": ["El archivo 1 debe ser un archivo válido."]
}
}
429 Too Many Requests
{ "error": "Has superado el límite de solicitudes permitidas. Intenta de nuevo más tarde." }
500 Internal Server Error
{ "error": "Ocurrió un error inesperado. Por favor, intente nuevamente más tarde." }
404 Not Found
{ "error": "Recurso no encontrado." }
POST /api/campaigns — Crear campaña
Crea la campaña, registra en base de datos y envía correos.
Endpoint
POST https://e-api.massend.com/api/campaigns
Headers
-
user: email del usuario autenticado
-
clave: contraseña del usuario autenticado
Body form-data
|
Campo |
Tipo |
Requerido |
Descripción |
|---|---|---|---|
|
asunto |
string |
✅ |
Asunto de la campaña. |
|
contenidoHTML |
string |
✅ |
Contenido del correo en HTML con variables como {nombre}. |
|
generales |
JSON |
Campos generales aplicados a toda la campaña. |
|
|
destinatarios |
JSON |
✅ |
Lista de destinatarios con campos personalizados. |
|
file[] |
file |
Adjuntos múltiples. |
Formato de generales
{ "motivo": "Promoción de prueba" }
Formato de destinatarios
[
{
"email": "email1@dominio.com",
"dni": "9999999999",
"campos": { "nombre": "Nombre 1", "ciudad": "Guayaquil" }
},
{
"email": "email2@dominio.com",
"dni": "9999999999999",
"campos": { "nombre": "Nombre 2", "ciudad": "Cuenca" }
}
]
Ejemplo cURL
curl -X POST https://e-api.massend.com/api/campaigns \
-H "user: tu-email@example.com" \
-H "clave: tu-contraseña" \
-F "asunto=Promoción Especial" \
-F "contenidoHTML=Hola {nombre}, aprovecha esta promoción" \
-F "generales={\"motivo\": \"Promoción de fin de año\"}" \
-F "destinatarios=[{\"email\":\"cliente1@dominio.com\",\"dni\":\"9999999999\",\"campos\":{\"nombre\":\"Cliente 1\",\"ciudad\":\"Guayaquil\"}}]" \
-F "file[]=@/ruta/al/archivo1.pdf" \
-F "file[]=@/ruta/al/archivo2.jpg"
Respuesta exitosa
{
"message": "Campaña enviada y actualizada exitosamente",
"response": {
"TransactionID": "a719da42-9d39-0156-e042-0f98471ba1d5",
"MessageID": ""
}
}
Errores comunes
-
400 faltan headers
-
401 credenciales incorrectas
-
422 validación
-
500 error interno