Recuadros de firma en el documento
Coloca las áreas de firma dibujándolas dentro del PDF, sin mandar coordenadas por API.
Hay dos formas de decirle a Firmame dónde va cada firma. La documentada en la referencia de API es el
arreglo stickers, con coordenadas explícitas. La otra es dibujar los recuadros dentro del documento
y dejar que Firmame los encuentre.
Esta casi siempre es mejor, ya que no se tienen que recalcular coordenadas y es especialmente útil si el documento lo produce alguien más — un área legal, una plantilla de Word, un generador de contratos.
También puedes generar los PDFs en la herramienta de tu preferencia, o usar nuestros Templates para generar estos recuadros
Cómo funciona
Al recibir un PDF, Firmame analiza las primeras 3 y las últimas 8 páginas buscando recuadros. Un
recuadro Firmame es cualquier rectángulo que contenga la palabra Firmamex seguida de los datos del
firmante, o de QR.
Cuando encuentra uno, lo borra y coloca en su lugar el área de firma o el código QR del documento
Si tus recuadros están fuera de ese rango de páginas, o quieres que el análisis sea más rápido, manda
sticker_pages en POST /developers/json. Empieza en cero y admite hasta 30 páginas: [0, 2, 4] son las
páginas 1, 3 y 5.
La sintaxis
Firmamex [datos del firmante] [configuración]Datos del firmante
Va el dato en sí, no el nombre del tipo. Firmame deduce la autoridad de la forma del dato:
| Dato | Autoridad por defecto |
|---|---|
RFC, p. ej. VECJ880326XXX | SAT. Agrega también un correo si quieres que Firmame mande la invitación |
| Correo | Correo por liga |
| Teléfono a 10 dígitos | SMS por liga |
Configuración
Todas opcionales, y se puede combinar una de cada categoría.
Cambiar la autoridad
| Palabra | Efecto |
|---|---|
sso | Correo por liga → Correo por Identity Provider |
certificado | Correo por liga → Correo; SMS por liga → SMS |
pin | Correo por liga → Correo por PIN; SMS por liga → SMS por PIN |
wa | SMS por liga → WhatsApp por liga |
waotp | SMS por liga → WhatsApp por PIN |
Proceso de firma
| Palabra | Efecto |
|---|---|
riv | Exige verificación de identidad antes de firmar |
Imagen de la firma
| Palabra | Efecto |
|---|---|
desc | Texto descriptivo |
dibujo | El firmante traza su firma o sube un PNG |
solo_dibujo | El firmante traza su firma, sin opción de subir imagen |
dibujo+desc | El trazo, con el texto descriptivo debajo |
hash | Un hash del documento como imagen |
name | El nombre del certificado, en cursiva |
desc_data | Emisor del certificado, número de serie y nombre del firmante |
qr | QR del documento, único para esa firma |
Alineación
| Palabra | Efecto |
|---|---|
linea | El trazo queda en la parte inferior del recuadro |
centrada | El trazo queda centrado en el recuadro |
Repetir en varias páginas
Páginas separadas por - o ,, por ejemplo 1-3,9. El recuadro aparece en esas páginas, en la misma
posición.
Ejemplos
Firmamex [email protected]Invitación por correo por liga, sin especificar trazo.
Firmamex VECJ880326XXX [email protected] dibujoInvitación a [email protected] para firmar con su certificado del SAT, dibujando su firma.
Firmamex 521234567890 pin nameInvitación por SMS por PIN, con el nombre del certificado como trazo.
En un template HTML
El mismo mecanismo sirve en los templates. Por ejemplo, con templates HTML, defines el recuadro en la posición donde quieres la firma:
<div id="signer1" class="signmage-template-field" style="
border: 1px solid black;
float: right;
width: 200px;
height: 120px;
color: white;
word-break: break-all;
font-size: 2px;
"></div>El texto va en blanco y a 2px a propósito: no es necesario que se vea el recuadro, solo tiene que existir para que Firmame lo encuentre.
Al generar el documento inyectas ahí el contenido del recuadro como cualquier otro campo:
const response = await services.request({
template_title: 'ejemploSticker',
sticker_pages: [0, 2, 4],
fields: [
{ id: 'signer1', value: 'Firmamex GOCF9002226A7 dibujo' },
],
tables: [],
});