Un editor que cuida cada milímetro. Plantillas que se reutilizan en segundos. Cumplimiento que no estorba.
Estipula· no es otra app de firma genérica. Está pensada desde el primer pixel para equipos que firman lo mismo a diario: convenios, anexos, presupuestos, consentimientos. Hacemos rápido lo repetitivo y serio lo que tiene que serlo.
Lo que parece simple por fuera tiene mucho trabajo por dentro.
Cada capacidad existe porque alguien — clínica, despacho, centro — nos dijo que sin ella la firma digital no funcionaba en su día a día.
Editor de plantillas al milímetro.
Coloca cualquiera de los 13 tipos de campo en el sitio exacto. Drag & drop fluido, snap a rejilla de 4 pt, multi-selección, undo/redo, atajos de teclado.
Firma · Iniciales · Sello · Fecha · Nombre · Apellidos · Email · DNI/NIF · Empresa · Cargo · Texto libre · Casilla · Fecha de firma
Multi-selección con Shift-click + alineación automática
Auto-save con debounce 1 s y rollback si el server rechaza
Plantillas reutilizables que entienden tu día a día.
Una plantilla bien hecha vale por cien firmas. Versionado, tags, búsqueda full-text en español, archivado preservando histórico, duplicación rápida.
Versionado con `parentTemplateId` y label libre (v1, v2, 2026-Q2)
Tags multi-asignables + filtro por etiqueta
Búsqueda full-text con tsvector español (acentos, plurales)
Firma en lote hasta 50 PDFs en 5 minutos.
Selecciona una plantilla single-self, arrastra hasta 50 PDFs casi-idénticos y firma todos a la vez. Barra de progreso, fallos parciales tolerados, ZIP final.
Chunks paralelos de 10 docs / segundo
Items que fallan no abortan el lote
Audit chain coherente per-doc + per-tenant
Multi-firmante internos y externos sin fricción.
Asigna roles abstractos en la plantilla y el preparador resuelve a personas concretas en cada documento. Internos firman con sesión, externos con magic link de 7 días.
Roles con colores accesibles para distinguir cada parte
Externos sin cuenta: solo hace falta el link del email
Orden de firma configurable o paralelo
Match difuso de plantillas reconoce lo conocido.
Cuando subes un PDF nuevo, Estipula busca plantillas tuyas estructuralmente parecidas. Si encuentra una con score alto, te ofrece reutilizarla en un click.
SimHash 128-bit sobre layout + texto normalizado
Confirmación humana siempre obligatoria, nunca silenciosa
Tres bandas: match · similar · sin coincidencia
Envío por email PDF firmado adjunto, no enlace.
El email lleva el PDF firmado como attachment, no un link que caduca. El destinatario puede archivarlo en su gestor sin pasos extra.
Adjunto hasta 30 MB; resto vía signed URL TTL 7 días
Plantilla de email personalizable por tenant (branding)
Copia opcional al usuario que firmó
Audit hash chain cada evento enlazado al anterior.
Cada acción (subida, configuración, firma, envío) genera un evento con hash SHA-256 enlazado al evento previo. Si alguien manipula la BD, la cadena se rompe y se detecta.
Logs anonimizados con redacción de DNI, tarjetas, tokens
Certificate of Completion evidencia legible y verificable.
Cada documento completado genera un PDF auto-firmado con resumen de firmantes (con DNI enmascarado por defecto), audit chain, hashes y QR al verify endpoint.
DNI masking opt-in por tenant (LOPDGDD - minimización)
QR escaneable que lleva al `/verify` público
Adjuntado al email final junto al PDF firmado
Verify público cualquiera puede comprobar.
Endpoint público sin autenticación: arrastra un PDF firmado y obtienes confirmación de autenticidad o aviso de modificación, comparando hashes SHA-256.
SHA-256 cliente-side via Web Crypto, cero upload del contenido
Throttle 30 req/min/IP contra brute-force
No expone metadata sensible: solo `originalHash`, `signedHash`, `completedAt`, `tenantName`
Editor
Coloca firmas donde tienen que ir.
Drag & drop con dnd-kit, multi-página con thumbnails laterales, snap a rejilla de 4 pt, alineación con otros campos del mismo rol. Atajos de teclado completos (Del, Ctrl+D, Ctrl+Z/Y, flechas con paso 1 px / 10 px Shift).
13 tipos de campo cubriendo todo el formulario español típico
Roles abstractos con colores · resolución a personas en el dispatch
Auto-save con debounce 1 s + indicador "guardado hace 2 s"
Vista previa con composeSigned + cajas overlay
estipula.app/templates/convenio-practicas/edit
Campos
Firma
Iniciales
Nombre
Email
DNI/NIF
Fecha
Texto
Convenio de prácticas formativas
L. Vidal
Firma · Empresa
Email
DNI/NIF
Fecha
Biblioteca de plantillas
Convenio prácticas FP
centros · usada 47 veces
Consentimiento informado
clínicas · usada 132 veces
Anexo presupuesto
despachos · usada 28 veces
Acuerdo confidencialidad
general · usada 19 veces
Plantillas
Configura una vez, firma cien veces.
Una clínica que firma 30 consentimientos al día solo necesita preparar la plantilla una vez. Cada PDF nuevo se reconoce, se reutiliza la posición de las firmas y se firma en segundos.
Vista de biblioteca con thumbnail, conteo de uso, archivado
Tags y búsqueda full-text en español
Versiones con `parentTemplateId` preservando histórico
Documentos firmados con la versión vieja siguen válidos
Multi-firmante
Internos y externos, cada uno con su flujo.
Empleados firman con su sesión activa: cero passwords ni OTPs. Externos — pacientes, alumnos, contratistas — reciben un magic link de 7 días que les abre un wizard de 3 pasos: consentimiento, firma manuscrita, revisión.
Roles abstractos en plantilla → resolución concreta en dispatch
Externos sin cuenta: solo email + magic link
Orden de firma configurable o paralelo
Notificaciones automáticas tras cada apply (opt-in)
Flujo de firmas · Convenio FP 2026/27
CS
Carmen Sotointerno
Director · Centro
hace 2 min
LV
Laura Vidalinterno
Tutora empresa
hace 1 min
MB
Martín Brand
Responsable empresa
magic link enviado
Cuando todos firmen → email automático con PDF + Certificate of Completion
Auditoría
Cada acción enlazada a la anterior.
Cada evento (subida, configuración, firma, envío, completion) genera una fila con hash SHA-256 enlazado al evento previo. Si alguien manipula la BD, la cadena se rompe y la función `validate_audit_chain` lo detecta inmediatamente.
Triggers append-only en Postgres: ni el admin del tenant puede modificar
Logs Pino con redacción automática de PII (DNI, tarjetas, tokens)
Certificate of Completion auto-firmado con QR al verify endpoint
Endpoint `/verify` público comprueba SHA-256 del PDF firmado