Saltar a contenido

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 lead creado 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_email es true).
  • validated_phone: Teléfono a validar (si otp_sms o otp_whatsapp son true).

📩 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
  }
]