Creación de firmas
📄 Creación de la firma (/signatures/create/)
Este endpoint se utiliza para iniciar un proceso de firma digital. Se deben enviar los siguientes campos en un formulario multipart/form-data:
- document: Archivo PDF que se desea firmar.
- document_name: Nombre asignado al documento firmado.
- confirmation_text: Texto que el firmante debe aceptar antes de firmar.
- redirect_url_success: URL a la que se redirige al finalizar exitosamente el proceso de firma (ya sea con o sin biometría).
- redirect_url_error: URL a la que se redirige si ocurre un error durante el proceso.
- redirect_url_reject: URL a la que se redirige si el firmante decide rechazar el proceso.
- redirect_ok_biometric: Redirección posterior a una biometría exitosa. Si se deja vacío, el proceso continúa normalmente.
- redirect_ko_biometric: Redirección si la biometría falla. Si se omite, se utiliza
redirect_url_error. - terms_body: Texto de los términos y condiciones a mostrar antes de la firma.
- brand: UUID o slug de la marca asociada.
- location_required: Indica si es obligatorio capturar la geolocalización del firmante (valor booleano).
- send_to_blockchain: Si el documento debe ser registrado en blockchain (booleano).
- show_evidences: Si al finalizar se debe mostrar la opción de descargar el documento de evidencias (booleano).
- skip_terms: Permite saltear la pantalla de términos y condiciones (booleano).
- draw_signature: Si es obligatorio que el firmante dibuje su firma (booleano). Si es
false, se permite solo aceptar. - link_expiration_hours: Duración (en horas) del enlace generado para firmar.
- signers: Lista de firmantes con la configuración correspondiente (ver detalle siguiente).
✍️ Firmantes dentro del proceso de firma (signers)
Cada firmante se representa como un objeto JSON con los siguientes campos:
- national_id: Número de documento nacional del firmante, debe coincidir con un
leadcreado previamente. - signing_order: Orden en el que debe firmar esta persona dentro del flujo (entero).
- is_required_to_sign: Si este firmante es obligatorio o no (booleano).
- signature_box_page: Página del documento en la que debe insertarse la firma.
- signature_box_x: Coordenada horizontal (eje X) donde comienza la firma.
- signature_box_y: Coordenada vertical (eje Y) donde comienza la firma.
- signature_box_width: Ancho de la caja de firma.
- signature_box_height: Alto de la caja de firma.
- signature_box_all_pages: Si la firma debe replicarse en todas las páginas (booleano).
🔐 Configuración de OTP
Campo otp, que permite establecer opciones de verificación por código:
- otp_email: Enviar código de verificación al correo electrónico.
- otp_whatsapp: Enviar código vía WhatsApp.
- otp_sms: Enviar código vía SMS.
- validated_email: Correo a validar (si
otp_emailestrue). - validated_phone: Teléfono a validar (si
otp_smsootp_whatsappsontrue).
📩 Notificaciones
- send_email_notification: Enviar notificación inicial por email.
- send_sms_notification: Enviar notificación inicial por SMS.
- send_whatsapp_notification: Enviar notificación inicial por WhatsApp.
- send_finish_email_notification: Enviar notificación de finalización por email.
- send_finish_sms_notification: Enviar notificación de finalización por SMS.
- send_finish_whatsapp_notification: Enviar notificación de finalización por WhatsApp.
🧬 Seguridad avanzada
- biometric: Si se requiere una validación biométrica antes de permitir firmar.
- allow_failed_biometric: Si se permite que el firmante continúe con el proceso aunque la biometría falle.
- skip_otp: Omitir completamente la verificación OTP para este firmante.
👥 Firmantes dentro de la firma
"signers": [
{
"national_id": "12345678",
"signing_order": 1,
"is_required_to_sign": true,
"signature_box_page": 1,
"signature_box_x": 100,
"signature_box_y": 200,
"signature_box_width": 150,
"signature_box_height": 50,
"signature_box_all_pages": false,
"otp": {
"otp_email": true,
"otp_whatsapp": false,
"otp_sms": true,
"validated_email": "user@example.com",
"validated_phone": "+5491123456789"
},
"send_email_notification": true,
"send_sms_notification": false,
"send_whatsapp_notification": false,
"send_finish_email_notification": true,
"send_finish_sms_notification": false,
"send_finish_whatsapp_notification": false,
"biometric": true,
"allow_failed_biometric": false,
"skip_otp": false
}
]