Skip to content

Manual de Usuario para Plantillas de Firma

Este documento detalla las variables y funciones disponibles para personalizar las plantillas de firma en el sistema.

Introducción

Las plantillas de firma permiten personalizar la apariencia y el contenido de los documentos de certificación de firma. Utilizan el motor de plantillas de Go para insertar dinámicamente datos del firmante, documento y contexto de firma.

Variables disponibles

Las siguientes variables están disponibles en las plantillas de firma:

Información del Firmante (Parte)

VariableDescripción
.FirstNameNombre del firmante
.LastNameApellido del firmante
.IDTypeTipo de documento de identidad
.IDNumberNúmero de documento de identidad
.PhoneNúmero de teléfono
.EmailCorreo electrónico
.ImageImagen de perfil del firmante en formato base64 (data URI)
.IDImageFrontImagen frontal del documento de identidad en formato base64 (data URI)
.IDImageBackImagen posterior del documento de identidad en formato base64 (data URI)

Información del Apoderado (cuando aplica)

VariableDescripción
.ProxyImageImagen de perfil del apoderado en formato base64 (data URI)
.ProxyEntityDatos de la entidad que representa el apoderado
.ProxyProfileIDID del perfil del apoderado
.ProxyEntityIDID de la entidad del apoderado

Información del Documento

VariableDescripción
.DocumentObjeto completo del documento
.Document.TitleTítulo del documento
.Document.BodyCuerpo del documento
.Document.ReferenceReferencia única del documento
.Document.CreditorIDID del acreedor/propietario del documento
.DocumentIDID del documento firmado

Información de la Firma

VariableDescripción
.IDID único de la firma
.StatusEstado de la firma (1=pendiente, 2=aceptado)
.CertificateCódigo QR de certificado en formato base64 (data URI)
.IPDirección IP desde donde se realizó la firma
.VerifiedHTTPContextContexto HTTP verificado durante la firma
.CreatedAtFecha y hora de creación de la firma
.Base.UpdatedAtFecha y hora de actualización de la firma

Perfiles

VariableDescripción
.PartyProfilePerfil completo de la parte firmante
.PartyProfileIDID del perfil de la parte firmante
.PartyEntityIDID de la entidad de la parte firmante
.ProxyProfilePerfil completo del apoderado (si aplica)

Funciones disponibles

Las siguientes funciones están disponibles para usar en las plantillas:

FunciónDescripciónEjemplo
formatDateFormatea una fecha según un formato específico{ { formatDate .CreatedAt "2006-01-02" }}
formatDateTimeFormatea una fecha y hora{ { formatDateTime .CreatedAt "2006-01-02 15:04:05" }}
upperConvierte texto a mayúsculas{ { upper .FirstName }}
lowerConvierte texto a minúsculas{ { lower .LastName }}
titleConvierte la primera letra de cada palabra a mayúscula{ { title .FirstName }}
htmlMarca contenido como HTML seguro{ { html .Document.Body }}

Ejemplos de uso

Ejemplo básico de plantilla de firma

html
<div class="certificate">
  <h1>Certificado de Firma Digital</h1>

  <div class="header">
    <img src="{ { .Certificate }}" alt="Código QR de certificado" />
    <h2>{ { .Document.Title }}</h2>
    <p>Referencia: { { .Document.Reference }}</p>
  </div>

  <div class="signer-info">
    <h3>Información del Firmante</h3>
    <img src="{ { .Image }}" alt="Foto del firmante" />
    <p>
      <strong>Nombre:</strong> { { title .FirstName }} { { title .LastName }}
    </p>
    <p><strong>Identificación:</strong> { { .IDType }} { { .IDNumber }}</p>
    <p><strong>Correo:</strong> { { .Email }}</p>
  </div>

  <div class="document-info">
    <h3>Documento Firmado</h3>
    <p><strong>Título:</strong> { { .Document.Title }}</p>
    <p>
      <strong>Fecha de firma:</strong> { { formatDateTime .CreatedAt "2006-01-02
      15:04:05" }}
    </p>
    <p><strong>Dirección IP:</strong> { { .IP }}</p>
  </div>

  <div class="id-images">
    <h3>Documentos de Identidad</h3>
    <div class="id-front">
      <img src="{ { .IDImageFront }}" alt="Frente del documento de identidad" />
    </div>
    <div class="id-back">
      <img src="{ { .IDImageBack }}" alt="Reverso del documento de identidad" />
    </div>
  </div>
</div>

Ejemplo de firma con apoderado

html
<div class="certificate">
  <h1>Certificado de Firma Digital</h1>

  <div class="header">
    <img src="{ { .Certificate }}" alt="Código QR de certificado" />
    <h2>{ { .Document.Title }}</h2>
  </div>

  <div class="company-info">
    <h3>Entidad Representada</h3>
    <p><strong>Nombre:</strong> { { .PartyProfile.Legal.Name }}</p>
    <p><strong>NIT:</strong> { { .PartyProfile.CommonData.IDNumber }}</p>
  </div>

  <div class="signer-info">
    <h3>Firmante Apoderado</h3>
    <img src="{ { .ProxyImage }}" alt="Foto del apoderado" />
    <p>
      <strong>Nombre:</strong> { { title .FirstName }} { { title .LastName }}
    </p>
    <p><strong>Identificación:</strong> { { .IDType }} { { .IDNumber }}</p>
    <p><strong>Correo:</strong> { { .Email }}</p>
    <p><strong>Cargo:</strong> { { .ProxyProfile.Natural.JobTitle }}</p>
  </div>

  <div class="document-info">
    <h3>Documento Firmado</h3>
    <p><strong>Título:</strong> { { .Document.Title }}</p>
    <p>
      <strong>Fecha de firma:</strong> { { formatDateTime .CreatedAt "2006-01-02
      15:04:05" }}
    </p>
    <p><strong>Dirección IP:</strong> { { .IP }}</p>
  </div>
</div>

Consideraciones importantes

  1. Siempre verifique que todas las variables utilizadas estén disponibles en el contexto de la plantilla.
  2. Las imágenes se incluyen como data URIs en formato base64, no es necesario hacer conversiones adicionales.
  3. Utilice las funciones disponibles para dar formato adecuado a fechas y textos.
  4. Es recomendable usar HTML semántico y CSS para mejorar la presentación de los certificados.
  5. El certificado QR contiene un enlace verificable al documento.

Solución de problemas

Si encuentra problemas con las plantillas:

  • Verifique que todas las variables utilizadas existan en el contexto
  • Revise la sintaxis de las expresiones de plantilla
  • Verifique que no haya errores de tipeo en los nombres de variables o funciones
  • Pruebe la plantilla con datos de muestra antes de implementarla en producción

Para asistencia adicional, contacte al equipo de soporte técnico.