Integraciones
Por sistema: cinco recetas
La misma solicitud cada vez; solo cambian el momento y el evento.
ERP y back office
- 1CuándoSe despacha un pedido o se registra una factura.
- 2Envía
POST /api/v1/reportscon tu plantilla de factura, el registro comopayloady su número comoIdempotency-Key, para que un reintento nunca genere dos. - 3Recibe
urlypdf_url. Guárdalos en el registro. - 4Escucha
report.failed, para marcar el registro para una persona.
CRM
- 1CuándoSe cierra una venta o toca una revisión de cuenta.
- 2EnvíaUna solicitud con las cifras de la cuenta y tu plantilla de ficha o de revisión.
- 3RecibeEl enlace alojado. Compártelo con los contactos, un enlace con vencimiento para cada uno.
- 4Escucha
report.ready, para escribir el enlace en la cuenta.
Apps de inspección y de campo
- 1CuándoEl inspector envía la lista de verificación.
- 2EnvíaLas respuestas, con fotos como URL https o subidas antes con
POST /api/v1/assets. - 3RecibeEl enlace, o un
422que indica el campo que falta, para que la app se lo pida al inspector. - 4Escucha
report.ready, y luego compartirlo con el cliente.
Tu propio backend
- 1CuándoCualquier evento que tu producto ya tenga.
- 2EnvíaLa misma solicitud desde cualquier lenguaje. Fija una versión con
template@Npara que una publicación nunca cambie lo que envía producción. - 3Recibe
200cuando el render terminó en menos de 2.5 segundos,202mientras sigue generándose. - 4Escucha
report.readypara el caso 202,report.failedcon el motivo.
Agentes de IA
- 1CuándoAlguien le pide un informe a su asistente.
- 2EnvíaEl agente lee el contrato de la plantilla y llama a
create_report, que hace la misma solicitud. - 3RecibeEl enlace, el PDF y una versión en Markdown que el agente puede leer.
- 4EscuchaNada nuevo: sus informes llegan a tus endpoints como cualquier otro informe de la API.
La solicitud
Una llamada con la clave de una plantilla y tus datos. Los datos se revisan primero contra la plantilla: unos datos rechazados nunca se convierten en informe, y recibes un 422 que indica el campo.
- Las claves de prueba (
pf_test_) generan informes con marca de agua, gratis y guardados 24 horas, para que puedas conectarlo todo antes de salir en vivo. - Idempotency-Key hace que un reintento devuelva el mismo informe en lugar de uno segundo.
- Contraseña del PDF (
pdf_password) protege el propio PDF con una contraseña que tu lector conoce, desde Standard; la respuesta indicapdf_protected. - Verificar un documento: cualquiera puede comprobar un PDF en
/verify, desde Standard. La página calcula la huella en el navegador y consultaGET /api/verification/check/{sha256}, que es público y tiene límites de uso.
curl https://api.pressfox.io/api/v1/reports \
-H "Authorization: Bearer pf_test_…" \
-H "Content-Type: application/json" \
-d '{ "template": "clinic-visit-summary",
"payload": { "patient": { "name": "A. Rivera" } } }' const res = await fetch("https://api.pressfox.io/api/v1/reports", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PRESSFOX_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ template: "clinic-visit-summary", payload: { patient: { name: "A. Rivera" } } }),
});
const { url, pdf_url } = await res.json(); import os, requests
r = requests.post("https://api.pressfox.io/api/v1/reports",
headers={"Authorization": f"Bearer {os.environ['PRESSFOX_API_KEY']}"},
json={"template": "clinic-visit-summary", "payload": {"patient": {"name": "A. Rivera"}}})
print(r.json()["url"], r.json()["pdf_url"]) {
"report_id": "rpt_01j9xk7q4",
"status": "ready",
"mode": "test",
"url": "https://app.pressfox.io/report/k7Qm2Zb9…",
"pdf_url": "https://app.pressfox.io/report/k7Qm2Zb9…/pdf",
"pages": 2,
…
} Webhooks
Eventos cuando un informe está listo, falla o lo sustituye una versión corregida. Los envíos llevan ids, estado, etiquetas y enlaces, nunca datos del informe.
report.readyreport.failedreport.supersededCada envío se firma en el formato Standard Webhooks.
Un envío fallido se reintenta después de
- 1 minuto
- 5 minutos
- 30 minutos
- 2 horas
- 6 horas
- 12 horas
- 24 horas
Un endpoint que falla 3 días sin un solo éxito se desactiva; un propietario o administrador puede reactivarlo una vez corregido, con la misma URL y el mismo secreto.
Referencia de webhooksCada envío lleva
webhook-idEl id del envío, el mismo en cada reintentowebhook-timestampCuándo se envió; rechaza todo lo que difiera más de cinco minutoswebhook-signatureUn HMAC-SHA256 del id, la marca de tiempo y el cuerpo sin procesar, con el secreto de tu endpoint
Cualquier biblioteca de Standard Webhooks puede verificarlo. La documentación tiene una función de verificación para copiar.
Verificar un envíoEnvíos por correo y tu propio dominio
Envíos por correo Todos los planes
Envía un informe listo a hasta 50 personas. Cada una recibe su propio correo y su propio enlace, que se puede revocar solo para esa persona.
- Los enlaces vencen cuando tú eliges: de 24 horas a 30 días, o junto con el informe.
- Sin píxel de rastreo en el correo.
Dominios propios
Enlaces de informes en un subdominio tuyo, como reports.tollandreese.com (no un dominio raíz). Standard o superior: 1 en Standard, 25 en Pro. Un subdominio de pressfox.app viene con Standard. Agregas tres registros:
- TXT
_cf-custom-hostname.reports.tollandreese.comEl token de propiedad que te muestra la app - TXT
_acme-challenge.reports.tollandreese.comEl token de validación del certificado que te muestra la app - CNAME
reports.tollandreese.comhosts.pressfox.app (solo DNS: en Cloudflare, nube gris)
Agentes de IA por MCP
Claude y otros clientes MCP se conectan de dos formas, con las mismas herramientas. Por URL: inicias sesión en Pressfox y apruebas al asistente para un espacio de trabajo, en modo de prueba o real. Localmente: un paquete pequeño se ejecuta en tu computadora con una clave de API.
Puede
- Encontrar plantillas
- Crear informes
- Leerlos y compartirlos
No puede
- Borrar informes
- Cambiar plantillas
- Administrar miembros, claves o facturación
Desconéctalo cuando quieras en Settings, Security.
En vista previa: escribe a hello@pressfox.io y lo activamos para tu espacio de trabajo.
Configuración y herramientas de MCPclaude mcp add --transport http pressfox \
https://mcp.pressfox.io/mcp Otros clientes, y el paquete local con una clave de API: configuración de MCP.
Sin código
- Llena un formulario en la app. Un miembro escribe los datos y obtiene el mismo informe. Los webhooks igual se disparan, marcados con
"source": "dashboard". - El Playground. Elige una plantilla, edita los datos con revisión en vivo y ve la página alojada, el PDF y la solicitud exacta como curl, Node o Python. Solo informes de prueba.
Límites de solicitudes
| Por minuto | Por clave | Por espacio de trabajo |
|---|---|---|
| Todas las solicitudes | 600 | 1,200 |
| Creación de informes | 120 | 240 |
Al pasar un límite: 429 rate_limited con Retry-After en segundos. ¿Necesitas más? Escríbenos.
Cada integración, y lo que viene
5 disponibles, 12 en camino. Los planes para lo que viene son nuestra intención, no una promesa. Dinos qué necesitas y sube en la lista.
Disponible hoy
- API RESTCrea, lee, lista y comparte informes; lee plantillas y sus contratos; sube imágenes.Free genera informes reales con marca de agua. Construir y conectarTodos los planes Cómo funciona
- Webhooks firmadosreport.ready, report.failed y report.superseded, firmados en el formato Standard Webhooks, con reintentos durante un día. Construir y conectarStarter o superior Cómo funciona
- MCP para agentes de IAClaude y otros asistentes encuentran plantillas, crean informes y los leen.En vista previa: escríbenos y lo activamos para tu espacio de trabajo. Construir y conectarTodos los planes Cómo funciona
- Envíos por correoHasta 50 destinatarios por envío, cada uno con su propio enlace con vencimiento. EntregaTodos los planes Cómo funciona
- Dominios propiosEnlaces de informes en reports.yourcompany.com. Un subdominio de pressfox.app desde Standard. EntregaStandard o superior: 1 en Standard, 25 en Pro Cómo funciona
Próximamente
Notificaciones en chatPlaneado para Standard o superior
- SlackUn mensaje en un canal cuando un informe está listo o falla. Avísanos que necesitas Slack
- Microsoft TeamsEl mismo mensaje, a través de un flujo de Teams. Avísanos que necesitas Microsoft Teams
- Google ChatEl mismo mensaje, en un espacio. Avísanos que necesitas Google Chat
- DiscordEl mismo mensaje, en un canal. Avísanos que necesitas Discord
EntregaPlaneado para Pro o superior
- Correos de informes desde tu propio dominioEnvíos desde reports@ tu dominio, una vez que lo verifiques. Avísanos que necesitas Correos de informes desde tu propio dominio
Entrega a almacenamientoPlaneado para Standard o superior
- S3, R2 y GCSCada PDF terminado se copia a tu propio bucket. Avísanos que necesitas S3, R2 y GCS
- Google DriveCada PDF terminado se guarda en una carpeta que elijas. Avísanos que necesitas Google Drive
- OneDrive y SharePointLo mismo, en Microsoft 365. Avísanos que necesitas OneDrive y SharePoint
- DropboxLo mismo, en una carpeta de Dropbox. Avísanos que necesitas Dropbox
Plataformas de automatizaciónLos disparadores requieren webhooks (Starter o superior)
- ZapierPrimero recetas en la documentación, después una app nativa. Avísanos que necesitas Zapier
- MakePrimero recetas en la documentación, después una app nativa. Avísanos que necesitas Make
- n8nPrimero recetas en la documentación, después un nodo nativo. Avísanos que necesitas n8n
Lo que no hace
- No extrae datos de tus sistemas. Tú los envías.
- Todavía no hay apps nativas para Zapier, Make o n8n, ni mensajes de chat, ni entrega a almacenamiento.
- Todavía no hay SDK oficiales: la solicitud es JSON simple sobre HTTPS.
- Los envíos de webhook llevan enlaces, no datos del informe, y los secretos de firma todavía no rotan.
- Los dominios propios tienen que ser un subdominio, no un dominio raíz.
¿Te falta algo?
Dinos el sistema y qué debería pasar. Las solicitudes deciden qué construimos después.