Editor de solicitudes de firma incrustable
Incrusta el editor de solicitudes de firma de Firma dentro de tu aplicación usando autenticación JWT para un acceso seguro y de tiempo limitado. Esto es ideal para integraciones de marca blanca y aplicaciones multiempresa.Casos de uso
- Flujos de firma de marca blanca: gestiona solicitudes de firma bajo tu propia marca
- Aplicaciones multiempresa: acceso seguro por firmante sin exponer claves API
- Flujos de trabajo de documentos incrustados: gestión fluida de solicitudes de firma dentro de tu producto
- Acceso de tiempo limitado: los tokens caducan automáticamente por seguridad (expiración de 7 días)
Cómo funciona
- Tu servidor solicita un token JWT a la API de Firma usando tu clave API
- Firma devuelve un token JWT de corta duración con el ID de la solicitud de firma
- Tu frontend incrusta el editor con el token JWT
- El token caduca automáticamente después de 7 días
Límite de solicitudes: los endpoints JWT admiten 100 solicitudes por minuto por clave API para aplicaciones de alto volumen.
Autenticación JWT
Generar token JWT
Genera un token JWT para una solicitud de firma específica usando el endpoint/jwt/generate-signing-request.
Endpoint: POST /jwt/generate-signing-request
Cuerpo de la solicitud:
Guía de implementación
Backend: generar token JWT
Llama a la API de Firma desde tu backend para generar un token JWT. Tu endpoint de backend debe aceptar un ID de solicitud de firma y devolver el JWT a tu frontend. Ejemplo en Node.js:Implementación frontend — HTML / JavaScript nativo
Implementación frontend — React
Opciones de configuración
Métodos de instancia
Usa
triggerClose() cuando tu aplicación anfitriona necesite cerrar el editor desde su propia interfaz, por ejemplo, ante un evento de navegación del padre o un botón de “atrás”:
Eventos postMessage (editor → anfitrión)
El editor de solicitudes de firma de Firma emitirá eventos postMessage para acciones importantes del ciclo de vida. A continuación se muestra un esquema de eventos recomendado y mínimo que puedes implementar para reaccionar a los guardados y envíos del editor. Envoltorio del evento (payload de window.postMessage):Ejemplo de listener en el cliente (JS simple)
Gestión del ciclo de vida del token
Los tokens JWT se generan con un tiempo de expiración de 7 días para flujos de edición habituales. El editor gestionará automáticamente la caducidad del token.Caducidad automática
Los tokens JWT caducan automáticamente después de 7 días según la marca de tiempoexpires_at. Después de la caducidad:
- El editor incrustado rechazará el token
- Se debe solicitar un nuevo token para continuar
- No se necesita ninguna llamada API: los tokens caducan de forma pasiva
Renovación del token (opcional)
Para sesiones de edición de larga duración, puedes renovar el token antes de su caducidad usando el métodoupdateJWT():
Límite de solicitudes
Los endpoints JWT admiten 100 solicitudes por minuto por clave API. Encabezados de límite de solicitudes:- Almacena en caché los tokens y reutilízalos hasta su caducidad (7 días)
- Implementa un retroceso exponencial para los reintentos
- Supervisa el encabezado
X-RateLimit-Remaining - Genera tokens bajo demanda, no de forma anticipada
Buenas prácticas de seguridad
✅ Qué hacer
- ✅ Genera los tokens desde tu servidor backend
- ✅ Supervisa los límites de solicitudes (100 solicitudes/minuto)
- ✅ Usa HTTPS para todas las solicitudes API
- ✅ Usa
readOnly: truepara acceso de solo visualización
❌ Qué no hacer
- ❌ No expongas claves API en código frontend
- ❌ No reutilices tokens entre sesiones o firmantes
- ❌ No registres los tokens JWT en logs (riesgo de seguridad)
- ❌ No compartas tokens entre distintas solicitudes de firma
Solución de problemas
Error de token caducado
Síntoma: el editor muestra “Token expired” o un error de autenticación Solución:- Implementa la renovación del token antes de su caducidad (ventana de 7 días)
- Genera un nuevo token y llama a
editor.updateJWT(newToken) - Comprueba la sincronización del reloj del sistema
401 Unauthorized
Síntoma: la generación del JWT falla con un 401 Posibles causas:- Clave API inválida o ausente
- La clave API no tiene los permisos necesarios
- La clave API está deshabilitada
404 Not Found
Síntoma: no se encuentra la solicitud de firma al generar el JWT Posibles causas:- El ID de la solicitud de firma no existe
- La solicitud de firma pertenece a otro espacio de trabajo
- La solicitud de firma fue eliminada
Límite de solicitudes superado
Síntoma: 429 Too Many Requests Solución:- Implementa el almacenamiento en caché de tokens (la ventana de expiración de 7 días es generosa)
- Espera al restablecimiento del límite de solicitudes (comprueba el encabezado
X-RateLimit-Reset) - Implementa lógica de reintentos con retroceso exponencial
El editor no carga
Síntoma: el contenedor está vacío o muestra un indicador de carga indefinidamente Posibles causas:- El script no se cargó (comprueba el evento
script.onload) - JWT o ID de solicitud de firma inválidos
- Problemas de CORS (comprueba la consola del navegador)
- Verifica que el script se cargue desde
https://app.firma.dev/embed/signing-request-editor.js - Comprueba que el JWT sea válido y no haya caducado
- Asegúrate de que el backend devuelva los encabezados CORS correctos
Próximos pasos
- Incrustar el editor de plantillas para la creación de plantillas de marca blanca (120 solicitudes/min)
- Enviar solicitudes de firma mediante programación (100 solicitudes/min)
- Configurar webhooks para seguir eventos de solicitudes de firma (60 solicitudes/min)
- Configurar los ajustes del espacio de trabajo para aplicaciones multiempresa (100-200 solicitudes/min)