Desarrolladores · Capítulo 08

Enviar emails

Enviar correos desde la API con adjuntos base64, archivos o PDFs de documentos

08 - Enviar emails

sendEmail permite enviar correos desde una instancia Beply usando la configuracion SMTP del propio servicio. Es el endpoint pensado para automatizaciones como enviar la factura al cliente, remitir un presupuesto firmado o mandar un justificante adjunto desde tu software.

A diferencia del CRUD generico, este endpoint recibe JSON.

Peticion

POST https://<tu-instancia>.beply.es/api/3/sendEmail
Content-Type: application/json
Token: <tu-api-key>

Body

CampoTipoRequeridoDescripcion
tostring o string[]SiDestinatario principal. Acepta un email o un array de emails
subjectstringSiAsunto del correo
bodystringSiCuerpo del correo. Puede contener HTML
ccstring o string[]NoCopia visible
bccstring o string[]NoCopia oculta
replyTostringNoEmail de respuesta
attachmentsarrayNoAdjuntos. Ver tipos soportados abajo

Ejemplo minimo

curl https://example.beply.es/api/3/sendEmail \
  -H "Token: a1b2c3d4..." \
  -H "Content-Type: application/json" \
  --data '{
    "to": "cliente@example.com",
    "subject": "Gracias por tu compra",
    "body": "<p>Hemos recibido tu pedido correctamente.</p>"
  }'

Enviar una factura PDF adjunta

Para adjuntar un documento Beply como PDF usa type: "document". El PDF se genera en el momento con el mismo motor de exportacion que usa el panel.

curl https://example.beply.es/api/3/sendEmail \
  -H "Token: a1b2c3d4..." \
  -H "Content-Type: application/json" \
  --data '{
    "to": "cliente@example.com",
    "subject": "Factura FAC2026A1",
    "body": "<p>Adjuntamos tu factura en PDF.</p>",
    "attachments": [
      {
        "type": "document",
        "modelClassName": "FacturaCliente",
        "modelCode": "1",
        "format": 0,
        "lang": "es_ES"
      }
    ]
  }'

modelCode es el ID interno del documento (idfactura, idpresupuesto, etc.), no necesariamente el codigo visible impreso como FAC2026A1.

Tipos de adjunto

Documento Beply convertido a PDF

{
  "type": "document",
  "modelClassName": "FacturaCliente",
  "modelCode": "1",
  "format": 0,
  "lang": "es_ES"
}

Modelos soportados:

DocumentomodelClassName
Factura de clienteFacturaCliente
Factura de proveedorFacturaProveedor
Albaran de clienteAlbaranCliente
Albaran de proveedorAlbaranProveedor
Pedido de clientePedidoCliente
Pedido de proveedorPedidoProveedor
Presupuesto de clientePresupuestoCliente
Presupuesto de proveedorPresupuestoProveedor

Campos opcionales:

CampoDescripcion
formatID numerico de formato de impresion. 0 usa el formato predeterminado
langCodigo de idioma. Si se omite, Beply intenta usar el idioma del sujeto del documento

Archivo ya subido a Beply

Si antes subiste un archivo con uploadFiles, puedes adjuntarlo por idfile:

{
  "type": "attachedFile",
  "idfile": 432
}

Ver 06 - Archivos adjuntos para subir y vincular archivos.

Contenido base64

Para adjuntar un archivo generado por tu integracion:

{
  "type": "base64",
  "filename": "resumen.txt",
  "content": "SG9sYSwgY2xpZW50ZQ=="
}

content debe ser base64 valido. Beply sanea el nombre del archivo antes de adjuntarlo.

Respuesta de exito

{
  "status": "success",
  "message": "email-sent-successfully",
  "data": {
    "uuid": "itbHCk7lGqOASWSxr3uG",
    "recipients": ["cliente@example.com"],
    "attachments": ["FAC2026A1.pdf"],
    "sent_at": "2026-06-01 13:30:21"
  }
}
CampoSignificado
data.uuidCodigo interno de verificacion del envio
data.recipientsDestinatarios principales normalizados
data.attachmentsNombres de los adjuntos enviados
data.sent_atFecha/hora de envio generada por el servidor

Seguridad de documentos y archivos

Con una API key de acceso completo (fullaccess) puedes adjuntar documentos y archivos de la instancia.

Con una API key limitada, Beply solo permite adjuntar:

  • documentos cuyo nick coincida con el usuario de la API key;
  • archivos vinculados a ese usuario por una relacion interna de Beply;
  • adjuntos autorizados por una capability firmada de plataforma.

Si el adjunto no cumple estas reglas, la API devuelve 500 SEND_ERROR y el motivo queda registrado en los logs internos. Esta restriccion evita que conceder permiso a sendEmail permita extraer documentos arbitrarios.

Requisitos SMTP

La instancia debe tener el envio de correo configurado en FacturaScripts/Beply. Si no hay SMTP o el servidor no puede conectar con el proveedor de correo, el endpoint devuelve email-send-failed.

En servicios Beply SaaS, la plataforma debe permitir salida SMTP a los puertos habituales 465 o 587.

Errores habituales

HTTPmessageCausa
400invalid-json-bodyBody vacio, JSON invalido o Content-Type incorrecto
400to-is-requiredFalta to
400subject-is-requiredFalta subject
400body-is-requiredFalta body
400invalid-email-address: ...Email de destinatario no valido
400attachments-must-be-arrayattachments no es un array
400attachment[0]: invalid type ...Tipo de adjunto distinto de document, base64 o attachedFile
400attachment[0]: invalid modelClassName...Modelo de documento no soportado
500email-send-failedSMTP sin configurar, fallo de envio, documento inexistente o adjunto no autorizado

Ver 07 - Errores y validaciones para la estructura comun de errores.

Flujo recomendado

  1. Crea o localiza el documento con la API (crearFacturaCliente, facturaclientes, etc.).
  2. Guarda su ID interno (idfactura, idpresupuesto, etc.).
  3. Llama a sendEmail con un adjunto document.
  4. Guarda data.uuid en tu sistema para trazabilidad del envio.

Siguientes pasos

¿Te ha resultado útil esta página?

¿Aún tienes dudas?

Habla con nuestro equipo y te resolvemos cualquier duda al instante.