Endpoints de la API REST¶
Autenticación¶
Registrar usuario¶
Crea una nueva cuenta de usuario en el sistema.
Datos requeridos: - email - Correo electrónico - password - Contraseña - name - Nombre completo
Respuesta exitosa: - jwtToken - Token de acceso (24 horas de validez) - refreshToken - Token para renovar el acceso (7 días de validez)
Iniciar sesión¶
Obtén tokens de acceso usando credenciales existentes.
Datos requeridos: - email - Tu correo electrónico - password - Tu contraseña
Renovar token¶
Obtén nuevos tokens cuando el access token expire.
Header requerido:
Grupos de Proceso de Firma¶
Un grupo de firma es un contenedor que agrupa varios documentos para firmarlos juntos. Todos los endpoints de grupos requieren autenticación.
Iniciar grupo de firma¶
Crea un nuevo grupo y sube los documentos a firmar.
Datos requeridos: - idFirmante - Identificador único del firmante (DNI, RUC, etc.) - idProceso - ID del proceso de negocio - documentos - Lista de documentos a firmar
Cada documento incluye: - nombre - Nombre del archivo PDF - codigo - Código interno de referencia - contenido - Archivo PDF en Base64 - configuraciones - Configuraciones específicas de firma (opcional) - imagen - Imagen de firma en Base64 (opcional)
Respuesta: - gruProFirId - ID del grupo creado (guarda este valor) - propiedades - Configuración aplicada al grupo
Iniciar grupo (versión formulario)¶
Igual que el anterior pero usando multipart/form-data en lugar de JSON.
Útil cuando necesitas subir archivos grandes sin codificarlos en Base64.
Partes esperadas por el controlador: - idFirmante como parametro de formulario. - idProceso como parametro de formulario. - nombres como lista de nombres de documentos. - configuraciones como lista de configuraciones por documento. - archivos como lista de PDFs. - imagen opcional, con limite de 2 MB.
Consultar estado del grupo¶
Revisa cómo va el proceso de firma de un grupo.
Respuesta incluye: - estadoGrupo - Estado actual (INITIATED, DICHARGED, UPLOADED, etc.) - totalDocs - Total de documentos - docsListos - Documentos ya firmados - docsPendientes - Documentos pendientes - readyToDownload - Si los documentos están listos para descargar
Verificar si está firmado¶
Confirma si todos los documentos del grupo fueron firmados correctamente.
Solo funciona cuando el grupo está en estado UPLOADED.
Respuesta incluye: - gpf.documentos - Lista de documentos con su estado de firma - documento.contenido - Archivo firmado en Base64 (descargable)
Ver documentos del grupo¶
Obtén la lista de documentos asociados a un grupo.
Respuesta incluye: - Nombre original y nombre del archivo firmado - URL de descarga para cada documento - Estado de confirmación
Cancelar grupo¶
Cancela un grupo de firma que aún está en proceso.
Solo funciona si el grupo está en estado INITIATED o DICHARGED.
Nombre de estado
DICHARGED conserva la ortografia usada en Constants.GroupDocsStates.
SSigner (Motor de Firma)¶
Estos endpoints interactúan con el motor de firma digital.
Generar hashes de prefirma¶
Genera los hashes que el cliente debe firmar con su certificado digital.
Datos requeridos: - idGP - ID del grupo de proceso - idFirmante - Identificador del firmante - certifcadoPublicoFirmante - Certificado público del firmante en Base64 - userMotivo - Motivo de la firma (opcional) - userLocacion - Ubicación de la firma (opcional)
Respuesta incluye: - hashes - Lista de hashes a firmar (en Base64) - algoritmo - Algoritmo de hash usado (ej: SHA256) - nombresDocumentos - Nombres de los documentos - propiedades - Configuración de firma a aplicar
¿Qué sigue? El cliente debe firmar estos hashes localmente con su certificado y luego enviar los hashes firmados.
Insertar hashes firmados¶
Envía los hashes ya firmados por el cliente para insertarlos en los documentos.
Datos requeridos: - idpg - ID del grupo de proceso - hashesFirmados - Lista de hashes firmados en Base64
¿Qué hace? El motor combina los hashes firmados con los documentos originales y genera los PDF finales.
Obtener configuración¶
Recupera la configuración de firma definida para un firmante.
Datos requeridos: - idFirmante - Identificador del firmante
Respuesta incluye: - propiedades - Configuración completa del firmante - idGrupo - ID del grupo asociado
Documentos¶
Descargar documento firmado¶
Descarga un documento ya firmado.
Respuesta: - Flujo binario del PDF - Content-Type: application/pdf - Content-Disposition: attachment; filename="documento.pdf"
Tambien existe:
Ese endpoint devuelve una respuesta JSON con el documento firmado codificado en Base64.
La entrega del flujo no marca por sí sola una descarga como exitosa. Después de validar el archivo recibido, el cliente debe confirmar el resultado:
POST /api/v2/documento/{id}/confirmar-descarga
Content-Type: application/json
{
"resultado": "OK",
"sha256Cliente": "<sha256_del_archivo>",
"sizeCliente": 123456
}
Una confirmación OK o SUCCESS registra la primera fecha/hora de descarga exitosa. Todos los intentos, incluidos los fallidos, actualizan la fecha del último intento y el contador de descargas.
Usuarios¶
Listar usuarios¶
Devuelve todos los usuarios registrados en el sistema.
Clientes¶
Listar clientes¶
Devuelve todos los clientes del sistema.
Crear cliente¶
Registra un nuevo cliente.
Datos requeridos: - name - Nombre del cliente - email - Correo electrónico - password - Contraseña inicial
Cambiar estado del cliente¶
Activa o desactiva un cliente.
Datos: - enabled - true/false (cuenta activa) - authorized - true/false (autorizado para operar)
Obtener cliente¶
Devuelve un cliente por ID.
Actualizar cliente¶
Actualiza los datos editables de un cliente.
Resumen de Rutas Protegidas¶
Todas las rutas excepto las de autenticación requieren el header:
| Ruta | ¿Requiere Auth? |
|---|---|
/auth/* | No |
/api/v2/* | Sí |
Estados de Respuesta HTTP¶
| Código | Significado |
|---|---|
| 200 | OK - Solicitud exitosa |
| 201 | Creado - Recurso creado |
| 400 | Bad Request - Datos inválidos |
| 401 | Unauthorized - Token inválido o expirado |
| 403 | Forbidden - Sin permisos |
| 404 | Not Found - Recurso no existe |
| 500 | Internal Server Error - Error en el servidor |