Configuración JSON
Referencia completa para el archivo de configuración JSON — estructura raíz, tipos de pregunta, validaciones, condicionales y perfiles de firma.
Localización y defaults
La plataforma asume Colombia por defecto en varios tipos. Algunos aceptan override vía el atributo country; otros están fijos.
| Tipo | Default | Override |
|---|---|---|
currency | COP | No soportado — siempre formatea en pesos colombianos |
nit | Colombia | No soportado — formato NIT colombiano fijo (XXXXXX-X) |
identification | CO | country: "MX" | "CL" | "SV" | ... (ver la sección Identificación más abajo) |
phone | Detecta automáticamente | country: "co" | "mx" | ... (ISO2 en minúscula) |
department | CO | country: "CO" | "MX" | ... |
date | Español, calendario gregoriano | No localizable — se renderiza como "15 de enero de 2024" |
Si tu caso de uso requiere USD u otro formato monetario, currency no es el tipo indicado — usa number y formatea el prefijo manualmente en el HTML. De forma similar, nit solo aplica a Colombia; para tax IDs de otros países usa text con una regex apropiada.
Propiedades Principales del Objeto Raíz
{
"name": "Mi Primera Automatización",
"description": "Contrato de servicios con un firmante, para el equipo comercial",
"preBuild": false,
"config": [],
"signatureProfile": [],
"sign": []
}
| Propiedad | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Requerido | Nombre de la automatización |
description | string | Opcional | Texto que describe la plantilla, máximo 500 caracteres. Solo informativo: lo devuelve GET /template y no afecta el diligenciamiento |
config | array | Requerido | Array de preguntas para el usuario |
signatureProfile | array | Requerido | Definición de firmantes y aprobadores |
sign | array | Requerido | Nombres de preguntas obligatorias |
preBuild | boolean | Opcional | Si es true, incluye prellenado automático |
files | array | Opcional | Documentos adjuntos que se piden a los participantes con package: true. Ver Documentos adjuntos |
build | number | Gestionado por el servidor | Versión de caché del SDK. No lo envíes: la API rechaza la petición si lo incluyes. El servidor lo incrementa automáticamente cuando actualizas la plantilla para invalidar la caché del SDK en clientes. |
Propiedad preBuild — Prellenado Automático
Cuando preBuild es true, debes incluir preBuildData. Este campo habilita un prellenado automático de la plantilla: algunos campos se completan previamente para que el usuario solo termine de diligenciar el documento.
En preBuildData se declaran las preguntas que se prellenarán en esta primera instancia. El último elemento del arreglo debe ser el correo del usuario final, quien recibirá la solicitud de diligenciamiento por correo electrónico.
{
"preBuild": true,
"preBuildData": ["nombre_comprador", "email_comprador", "correo_usuario_final"]
}
Documentos adjuntos (files)
Lista los documentos que se le piden al participante que tenga package: true en signatureProfile: una copia de la cédula, un certificado, un comprobante.
"files": [
{ "name": "Copia de la cédula", "approve": "pending" },
{ "name": "Certificado bancario", "approve": "pending", "optional": true },
{ "name": "Cédula del codeudor", "approve": "pending", "preReq": "tiene_codeudor" }
]
| Nombre | Tipo | Descripción |
|---|---|---|
name | String requerido | Nombre del documento, tal como lo ve el participante. |
approve | String requerido | Siempre "pending". |
optional | Boolean opcional | true para que el participante pueda continuar sin subirlo. Sin optional, el adjunto es obligatorio. |
preReq | String opcional | Nombre de una pregunta clausula de Sí/No (opciones s y n). El adjunto solo se pide si la respuesta es s. |
config y sus tipos de preguntas
En esta sección se agregan todas las preguntas que debe diligenciar el usuario para generar el documento para firma.
- Cada pregunta en
configes un objeto con propiedades específicas. Siempre requierename,descriptionytype. - Las preguntas también pueden tener un valor por defecto añadiendo el atributo
value(solo tiene sentido enclausula,selectysearchlist).
{
"name": "identificador_unico",
"description": "Texto que ve el usuario",
"type": "tipo_pregunta"
}
Resumen de Tipos de Pregunta
| Tipo | UI de entrada | Valor almacenado | Renderizado en el span |
|---|---|---|---|
text | texto libre | "str" | tal cual |
name | texto | "str" | EN MAYÚSCULAS |
email | "lower@x.com" | tal cual | |
phone | teléfono internacional | "+573001234567" | tal cual |
number | entrada numérica | "50000" | "50.000" (o con texto escrito si addText) |
currency | entrada numérica | "50000" | "$50.000 (CINCUENTA MIL PESOS)" |
date | selector de fecha | "2024-01-15" | "15 de enero de 2024" |
nit | entrada numérica | "9001234567" | "900123456-7" (auto-formateado) |
identification | país + tipo de doc + número | "CC 1084340519" (dos partes) | cadena completa |
department | dropdown territorial | "Antioquia" | tal cual |
select | dropdown simple | "valor_opcion" | options[i].label coincidente |
searchlist | dropdown con búsqueda | "valor_opcion" | options[i].label coincidente |
clausula | dropdown con spans condicionales | "valor_opcion" | muestra <span name="pregunta_valor"> |
check | checkboxes múltiples | select: ["a","b"] arreglo | "a, b" (unidos por coma) |
image | subida de archivo | data URI base64 | <img src="..." class="object-contain"/> |
signature | firma dibujada / tipeada | base64 o cadena | <img> o <span class="text-sign"> |
request | texto + validación externa | "str" | tal cual (más los campos prellenados por el servicio) |
request requiere integración adicional con un backend y se cubre en su propia página: consulta Tipo Request.
Texto Libre (text)
Acepta cualquier texto sin restricciones.
{
"name": "descripcion_producto",
"description": "Describa brevemente el producto",
"type": "text"
}
Soporta las validaciones maxlength y regex (ver Propiedades de Validación).
Nombre (name)
Igual a texto, pero convierte a mayúsculas automáticamente en el HTML.
{
"name": "nombre_comprador",
"description": "Ingrese su nombre completo",
"type": "name"
}
Ejemplo de salida:
- Usuario ingresa:
juan pérez - Se muestra en HTML:
JUAN PÉREZ
Número (number)
Solo acepta valores numéricos. Se renderiza con separadores de miles.
{
"name": "cantidad_articulos",
"description": "¿Cuántos artículos desea?",
"type": "number"
}
Con texto escrito (addText):
{
"name": "cantidad_articulos",
"description": "¿Cuántos artículos desea?",
"type": "number",
"addText": true
}
Soporta límites numéricos min y max.
addText | Usuario ingresa 5000 | Se renderiza como |
|---|---|---|
| (omitir) | 5000 | 5.000 |
true | 5000 | 5.000 (CINCO MIL) |