Enviar un archivo adjunto
Entregue como adjunto, no como enlace, el documento que su sistema creó hace unos segundos: una factura en PDF y una nota pueden viajar juntas en un mismo mensaje desde su dominio, y usted sabe si se entregó o rebotó. Pague por uso, sin suscripción.
Esta tarea no está disponible ahora mismo, así que no se puede contratar. No se cobra nada por ella.
Cómo funciona y APIEstá construido para el instante exacto en que un documento existe porque su sistema lo produjo hace segundos y ahora tiene que llegar a la bandeja de alguien.
Por qué un adjunto y no un enlace
Enviar un documento como enlace de descarga parece moderno, pero añade una dependencia: el enlace debe seguir vigente, el destinatario debe fiarse de pulsarlo y algunos filtros de empresa tratan los enlaces desconocidos con más dureza que un simple adjunto. Para lo que una persona necesita conservar, como un recibo para sus registros o un acuerdo firmado, un archivo dentro del mensaje sigue siendo lo que se espera y se archiva sin pensarlo. Esta herramienta toma el archivo que su sistema acaba de producir, una factura, un recibo o un contrato, y lo envía adjunto en un mensaje desde su propio dominio.
Usos adecuados y qué revisar
Encaja con contratos firmados que quedan como copia permanente en el buzón del firmante, informes semanales enviados como una pequeña hoja de cálculo o un resumen en PDF a una lista de interesados, y recibos de pago enviados en cuanto se completa la transacción. Usted indica el destinatario, el asunto, el texto y cada archivo con su nombre; el archivo se prepara para el correo y el mensaje entra en cola al instante. El resultado, aceptado, entregado, rebotado o fallido, le vuelve, así que sabe que la factura llegó y no solo que pidió enviarla. Dé a cada archivo un nombre claro con la extensión correcta, porque es lo que verá el destinatario.
Por qué el adjunto sigue siendo la opción más segura
Enviar un documento como enlace en vez de adjunto se siente moderno, pero introduce una dependencia: el enlace tiene que seguir siendo válido, el destinatario tiene que confiar lo suficiente como para hacer clic, y algunos filtros corporativos marcan enlaces desconocidos con más agresividad que un simple adjunto. Para todo lo que una persona necesita conservar —un recibo para sus registros, un acuerdo firmado— un adjunto que llega directo en el mensaje sigue siendo el formato que la gente espera y archiva sin pensarlo dos veces.
Qué puede hacer con ella
Contratos y acuerdos firmados
Una vez que un flujo de documentos finaliza un PDF firmado, se entrega como adjunto para que el firmante tenga una copia permanente en su bandeja.
Exportaciones de reportes semanales
Un proceso interno de reportes genera un resumen pequeño en CSV o PDF y lo envía por correo a una lista de interesados sin que nadie abra un panel.
Recibos de pagos puntuales
Una confirmación de pago dispara un recibo en PDF que se adjunta y se envía en el momento en que la transacción se acredita.
Preguntas frecuentes
¿Hay un límite de tamaño para los adjuntos?
Sí, aplican límites prácticos como en cualquier adjunto de correo; los archivos muy grandes deberían entregarse como enlace en vez de adjuntarse directamente.
¿Hay una forma gratuita de probarlo?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Puedo enviar el mismo archivo a varios destinatarios en una sola llamada?
Cada llamada apunta a un solo envío; para varios destinatarios, hay que emitir una solicitud por destinatario para que la entrega y los reintentos se rastreen de forma independiente.
¿Qué pasa si el adjunto no se puede enviar?
La tarea reintenta automáticamente hasta tres veces, y una tarea fallida nunca se cobra: solo se factura un intento de entrega que efectivamente sale.
¿Por qué no simplemente enviar un enlace de descarga?
Los enlaces dependen de seguir siendo válidos y de que el destinatario confíe lo suficiente para hacer clic; un adjunto llega directo en el mensaje, que sigue siendo lo que la gente espera para recibos y documentos firmados.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. Esta capacidad está disponible actualmente mediante la API, no como herramienta interactiva en la Web.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/notify/email-attachment \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"ada@example.com","subject":"Tu factura","attachments":["https://ejemplo.com/archivo.bin"]}'const res = await fetch("https://api.kit.forhosting.com/notify/email-attachment", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"to": "ada@example.com",
"subject": "Tu factura",
"attachments": [
"https://ejemplo.com/archivo.bin"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/notify/email-attachment",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"to": "ada@example.com",
"subject": "Tu factura",
"attachments": [
"https://ejemplo.com/archivo.bin"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/notify/email-attachment", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"to":"ada@example.com","subject":"Tu factura","attachments":["https://ejemplo.com/archivo.bin"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"to":"ada@example.com","subject":"Tu factura","attachments":["https://ejemplo.com/archivo.bin"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/notify/email-attachment", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"to": "ada@example.com",
"subject": "Tu factura",
"attachments": [
"https://ejemplo.com/archivo.bin"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "notify.email_attachment",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
POST /notify/email-attachment toma un archivo que acaba de generar —una factura, un recibo, un contrato firmado— y lo entrega como adjunto en un mensaje que sale desde su propio dominio.
La brecha entre generar un archivo y entregarlo
Muchos sistemas pueden renderizar una factura en PDF o exportar un reporte en CSV en milisegundos; muchos menos hacen trivial luego llevar ese archivo a una bandeja de entrada de forma confiable. Este endpoint cierra justo esa brecha: usted ya hizo la parte difícil de producir el documento, y esta llamada se encarga del último paso —empacarlo como adjunto y entregarlo— sin que tenga que gestionar conexiones SMTP ni codificación MIME a mano.
Cómo luce la solicitud
Junto con el destinatario, el asunto y el cuerpo habituales, incluyes el contenido del archivo y su nombre; la API lo codifica correctamente para el transporte de correo, encola el envío y devuelve un task_id de inmediato. La entrega real ocurre momentos después en nuestra red global, y el resultado —aceptado, entregado, rebotado, fallido— llega por un webhook firmado o un enlace firmado válido por 24 horas, así que su sistema sabe con certeza que la factura llegó a su destino y no solo que le pediste a alguien que la enviara.
Dónde entran el tamaño y el formato esperado
Los adjuntos funcionan mejor para los documentos que el correo fue pensado para transportar: PDFs, imágenes, hojas de cálculo pequeñas —el tipo de archivo que alguien abre una vez y guarda—. Los binarios muy grandes tensionan los límites de cualquier proveedor de correo sin importar la API de envío, así que el patrón práctico para exportaciones voluminosas es generarlas como archivo y referenciarlas por enlace, mientras este endpoint se mantiene enfocado en el adjunto tamaño factura que hace bien.
Su lugar dentro de un flujo de documentos
Como la llamada es asíncrona y se reintenta automáticamente hasta tres veces antes de devolver un error claro, encaja de forma limpia en un flujo donde un generador de PDF produce el archivo y este endpoint lo envía en el mismo ciclo de solicitud y respuesta, sin costo por un intento fallido.
Casos de integración
Facturas después del pago
En el momento en que su sistema de facturación renderiza una factura en PDF, este endpoint la envía por correo directo al cliente desde su propio dominio.
Preguntas técnicas
¿Qué tipos de archivo puedo adjuntar?
El endpoint está construido para los documentos que los adjuntos de correo fueron pensados para llevar: PDFs, imágenes, hojas de cálculo pequeñas y formatos similares generados al vuelo.
¿Cuánto cuesta?
$0.002 por solicitud más $0.0035 por correo enviado, el mismo precio que un email transaccional estándar, sin costo extra por el adjunto en sí.
¿Cómo sé que el adjunto realmente se entregó?
El webhook firmado o el enlace firmado reportan el evento de entrega —aceptado, entregado, rebotado o fallido— para que no le quede la duda.