<h1>{{empresa/nombre}}</h1><p>Folio {{folio}}</p><p>Total {{total}}</p>Diseña tu plantilla
HTML normal con variables {{variable}}. Editor en el portal con preview en vivo. Sirven plantillas existentes o las que ya tengas.
DocLayer convierte tu plantilla HTML + tus datos (JSON, XML o Excel) en PDFs listos para enviar. Sin pagar por usuario, sin aprender un SDK propietario.
Cómo funciona
El proceso completo cabe en una pantalla. Sin curva de aprendizaje, sin SDK propietario, sin webhooks que configurar para el primer documento.
<h1>{{empresa/nombre}}</h1><p>Folio {{folio}}</p><p>Total {{total}}</p>HTML normal con variables {{variable}}. Editor en el portal con preview en vivo. Sirven plantillas existentes o las que ya tengas.
{
"plantilla_id": 12,
"data": {
"empresa": { "nombre": "ACME" },
"folio": "2026-001",
"total": "$149,000"
}
}JSON o XML al endpoint. Una API key, un POST. Los campos se reemplazan automáticamente en la plantilla.
Render con Chromium headless en menos de 2 segundos. Descarga directa o cache para servirlo después sin re-render.
Para quién es
Si te ves en alguno de estos, DocLayer paga su renta el primer mes. Cada perfil tiene su caso detallado en /casos-de-uso con dolor cuantificado, flujo y plan recomendado.
Cierres, estados de cuenta, cartas de opinión, constancias. Hoy un contador junior hace 300 hrs/mes copiando Word. Con DocLayer, son 4 hrs subiendo un Excel.
Setup nuevo cliente pasa de 2-3 días configurando Puppeteer a 30 minutos. API REST sin SDK propietario — funciona desde Node, Python, .NET o Go. Cero deuda técnica de PDF infra.
Webhook de tu tienda → DocLayer → PDF al cliente. Plantillas con tus colores, RFC y régimen fiscal MX. Apps de Shopify cuestan más y no entienden CFDI.
Stripe dispara checkout → tu backend dispara DocLayer → factura branded en el email transaccional. Reporte mensual de uso en un cron. Cero mantenimiento de Puppeteer.
Plantillas listas
Empiezas con plantillas hechas a mano para el mercado MX, con datos demo realistas. Las editas en el portal con HTML estándar o las usas tal cual desde el día 1.
Layout SAT con emisor, receptor, conceptos, impuestos, sello digital, cadena original y QR de verificación. Lista para timbrar.
Cotización formal con vigencia, alcance, inversión desglosada, condiciones de pago, términos y espacio de firma del cliente.
Estilo SAP/Oracle: bill-to vs ship-to, condiciones de pago, incoterm, tabla SKU/cantidad/precio, 3 firmas de autorización.
Origen → destino con bultos, peso, volumen, guía de paquetería. Tabla con SKU + número de serie. 2 firmas: despacha y recibe.
Complemento SAT vigente con IdCCP, partes, ruta con kilómetros, vehículo y operador, mercancía con clave SAT, pólizas de seguro.
Estilo bancario con 4 KPI cards, movimientos del periodo con saldo corrido, aging buckets (0-30, 31-60, 61-90, +90) e instrucciones de pago.
Recibo profesional para anticipos u honorarios con monto en letra, forma de pago, referencia bancaria y espacio de firma manuscrita.
Carta corporativa formal 'A QUIEN CORRESPONDA' con cláusula explícita sin vínculo laboral (LFT) y firma del representante.
Póliza administrativa CNSF/LISF estilo Sofimex/Aserta. Carátula con monto cifra+letra, fiado y beneficiario, cláusulas A-E, sello digital.
Cómo está hecho
Aquí lo que sí podemos sostener hoy. Nada de ISO 27001 ni SOC 2 — eso lo dejamos para cuando lo tengamos firmado. Solo lo verificable en el código.
Servidor en Hetzner (UE). Aviso de privacidad publicado conforme a la LFPDPPP mexicana, con procedimiento de derechos ARCO. Todo el tráfico va por HTTPS — HTTP redirige con 301.
Snapshot de Postgres diario a Backblaze B2. Workflow de GitHub Actions verifica todos los días que el último backup existe y es legible. 3 monitores HTTP cada 5 min con alerta por email si algo cae — uptime visible en vivo en stats.uptimerobot.com/kX11Trw0c1.
Cada webhook saliente incluye un header X-DocLayer-Signature. Tú verificas en tu servidor con timing-safe compare. Reintentos exponenciales 10s → 1m → 5m → 30m → 2h, hasta 5 intentos antes de marcar el delivery como fallido.
Por plan: 10-1,000 req/min. Cuota mensual con UPDATE atómico en DB (no hay race condition entre requests paralelos). Respuestas 429 con header Retry-After estándar.
Solo guardamos sha256(key) en la base. La key real se muestra una sola vez al crearla y nunca se vuelve a ver. Revocación inmediata desde el portal, sin caché entre nuestros servicios.
Errores no triviales se reportan a Sentry. Cada request lleva un Correlation-Id que cruza middleware, logs y errores. Cuando reportas un problema, podemos seguir la traza completa.
Servicios pro
Si tu documento es complejo —CFDI con addenda, layout fiscal específico, reportes con tablas dinámicas, branding corporativo— te ayudamos con consultoría, diseño y desarrollo de la plantilla HTML.
Por qué DocLayer
Sin comparativas raras. Esto es lo que hace DocLayer distinto cuando lo conectas a tu sistema.
Tu plantilla es HTML normal con variables {{var}}. Sin DSL nuevo que aprender, sin builder visual cerrado. Si sabes HTML, ya sabes usar DocLayer.
Un POST con tu data y recibes el PDF binario. Funciona desde cualquier lenguaje (curl, Python, Node, .NET, Go). Sin librerías client obligadas.
Tu equipo puede tener 2 personas o 200, no afecta el precio. El costo escala con uso real (PDFs generados/mes), no con tamaño del equipo.
Planes
Cobramos por documentos generados, no por miembros del equipo. Empieza gratis con 100 PDFs/mes — sin tarjeta.
Para siempre. Sin tarjeta de crédito.
Empezar gratisPara flujos pequeños que ya producen valor.
Probar StarterPara operaciones que dependen del producto a diario.
Probar ProPara volumen alto. Servicios de integración bajo cotización.
Contactar ventasPreguntas frecuentes
Cada plan incluye un cupo mensual de documentos generados. El cupo se reinicia automáticamente al cumplirse 30 días desde tu fecha de alta. Eliminar PDFs no libera cupo, pero descargarlos varias veces tampoco lo consume — el cupo cuenta solo generaciones.
Sí. El editor del portal acepta HTML estándar con variables {{variable}}. Tienes preview en vivo, click-to-insert de variables, y atajos de teclado (⌘S guardar, ⌘P alternar vista). Si tu HTML viene de Word, InDesign o un sistema legacy, podemos ayudarte a migrarlo (ver Servicios pro).
Los PDFs generados se cachean en filesystem para servirlos sin re-renderizar. Tu input (JSON/XML) se guarda asociado al documento por si necesitas regenerarlo. Toda la infra corre en Hetzner Frankfurt — los datos no salen de la UE/MX. Cifrado en tránsito (HTTPS) y en reposo (volumen encriptado).
Sí. API REST con auth por API key, acepta JSON o XML. Cualquier lenguaje que pueda hacer un POST funciona: curl, Python, Node, .NET, Go. Documentación en /docs (próximamente). Ejemplos de integración bajo demanda.
Sí, sin penalizaciones. Cancelas desde el portal o desde el portal de Stripe. Conservas acceso hasta el final del ciclo pagado. Sin cobros automáticos sorpresa.
Los nuevos POST devuelven 402 Payment Required hasta que hagas upgrade o se reinicie el ciclo (cada 30 días). Los documentos ya generados siguen accesibles para descarga sin consumir cupo.
100 documentos gratis al mes, para siempre. Sin tarjeta de crédito, sin trial que caduca.