Appearance
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)
| Variable | Descripción |
|---|---|
.FirstName | Nombre del firmante |
.LastName | Apellido del firmante |
.IDType | Tipo de documento de identidad |
.IDNumber | Número de documento de identidad |
.Phone | Número de teléfono |
.Email | Correo electrónico |
.Image | Imagen de perfil del firmante en formato base64 (data URI) |
.IDImageFront | Imagen frontal del documento de identidad en formato base64 (data URI) |
.IDImageBack | Imagen posterior del documento de identidad en formato base64 (data URI) |
Información del Apoderado (cuando aplica)
| Variable | Descripción |
|---|---|
.ProxyImage | Imagen de perfil del apoderado en formato base64 (data URI) |
.ProxyEntity | Datos de la entidad que representa el apoderado |
.ProxyProfileID | ID del perfil del apoderado |
.ProxyEntityID | ID de la entidad del apoderado |
Información del Documento
| Variable | Descripción |
|---|---|
.Document | Objeto completo del documento |
.Document.Title | Título del documento |
.Document.Body | Cuerpo del documento |
.Document.Reference | Referencia única del documento |
.Document.CreditorID | ID del acreedor/propietario del documento |
.DocumentID | ID del documento firmado |
Información de la Firma
| Variable | Descripción |
|---|---|
.ID | ID único de la firma |
.Status | Estado de la firma (1=pendiente, 2=aceptado) |
.Certificate | Código QR de certificado en formato base64 (data URI) |
.IP | Dirección IP desde donde se realizó la firma |
.VerifiedHTTPContext | Contexto HTTP verificado durante la firma |
.CreatedAt | Fecha y hora de creación de la firma |
.Base.UpdatedAt | Fecha y hora de actualización de la firma |
Perfiles
| Variable | Descripción |
|---|---|
.PartyProfile | Perfil completo de la parte firmante |
.PartyProfileID | ID del perfil de la parte firmante |
.PartyEntityID | ID de la entidad de la parte firmante |
.ProxyProfile | Perfil completo del apoderado (si aplica) |
Funciones disponibles
Las siguientes funciones están disponibles para usar en las plantillas:
| Función | Descripción | Ejemplo |
|---|---|---|
formatDate | Formatea una fecha según un formato específico | { { formatDate .CreatedAt "2006-01-02" }} |
formatDateTime | Formatea una fecha y hora | { { formatDateTime .CreatedAt "2006-01-02 15:04:05" }} |
upper | Convierte texto a mayúsculas | { { upper .FirstName }} |
lower | Convierte texto a minúsculas | { { lower .LastName }} |
title | Convierte la primera letra de cada palabra a mayúscula | { { title .FirstName }} |
html | Marca 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
- Siempre verifique que todas las variables utilizadas estén disponibles en el contexto de la plantilla.
- Las imágenes se incluyen como data URIs en formato base64, no es necesario hacer conversiones adicionales.
- Utilice las funciones disponibles para dar formato adecuado a fechas y textos.
- Es recomendable usar HTML semántico y CSS para mejorar la presentación de los certificados.
- 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.