Templates
Una plantilla es un PDF (o DOCX) que reutilizas para emitir documentos. Si el PDF trae un formulario (AcroForm), sus widgets entran como campos con nombre, tipo y posición; tú les pones rol y, al crear cada documento, el firmante que toma ese rol hereda sus campos. Los campos también se dibujan por API (POST …/fields), se copian desde un documento ya armado (fields:from-document) y se versionan como un layout declarativo (PUT …/fields). La emisión vive en POST /v3/documents con templateId; la guía Formularios PDF recorre el proceso completo.
readiness resume el estado de la plantilla: empty (sin campos ni variables), pending (algún campo sin rol) o ready (todo asignado, lista para emitir).
GET …/file?format=form devuelve el PDF con los widgets vivos para revisarlo en Acrobat; format=flat lo hornea.
Las plantillas DOCX con variables {{ }} siguen funcionando (/variables, validate-values, templateValues al crear); las plantillas PDF con formulario usan campos y values.
Los ejemplos usan $ALLSIGN_API_KEY. Defínela una vez con tu key de sandbox: export ALLSIGN_API_KEY="allsign_test_sk_…" (en PowerShell: $env:ALLSIGN_API_KEY="allsign_test_sk_…").
El objeto Template
Atributos
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
idstring requeridoID de la plantilla (
tmpl_…). -
objectstring, siempre "template"Siempre
"template". -
namestring requeridoNombre de la plantilla.
-
descriptionstring puede ser nullDescripción de la plantilla.
-
fileTypestring requeridoTipo de archivo fuente (ej.
docx,pdf). -
originalFilenamestring puede ser nullNombre del archivo original subido.
-
aiEditablebooleanSi la edición asistida por IA está habilitada.
-
variableCountinteger requeridoNúmero de variables detectadas en la plantilla.
-
fieldCountintegerNúmero de campos del formulario PDF (nombres distintos).
-
unassignedFieldCountintegerCampos del formulario sin rol;
readinessespendingmientras haya alguno. -
roleCountintegerNúmero de roles de la plantilla.
-
pendingCandidatesintegerCandidatos del análisis vigente que aún no se confirmaron como variable (
0si no hay análisis). -
readinessenum requeridoready(≥1 variable y 0 pendientes, o ≥1 campo y todos con rol),pending(≥1 candidato sin confirmar o ≥1 campo sin rol) oempty(0 variables y 0 campos).Valores:
readypendingempty -
tagsarray de stringEtiquetas de la plantilla (arreglo vacío por default).
-
categorystring puede ser nullCategoría de la plantilla.
-
usageCountinteger requeridoCuántas veces se ha usado la plantilla.
-
lastUsedAtstring (fecha-hora ISO 8601) puede ser nullÚltimo uso (ISO 8601).
-
currentVersioninteger requeridoVersión actual de la plantilla.
-
previewUrlstring puede ser nullRuta v3 relativa (
/templates/{id}/preview) del PNG de la primera página.nullsi la plantilla no tiene una fuente renderizable (p.ej. DOCX). -
downloadUrlstring requeridoRuta v3 relativa (
/templates/{id}/download) del archivo original. -
createdAtstring (fecha-hora ISO 8601) requeridoFecha de creación (ISO 8601).
-
updatedAtstring (fecha-hora ISO 8601) requeridoÚltima actualización (ISO 8601).
List templates
GET /templates
Lista tus plantillas con paginación por cursor y filtros por tipo de archivo, categoría y texto libre.
Parámetros
-
limitinteger queryResultados por página (1–100, default
20). -
startingAfterstring queryCursor: plantillas después de este
id(tmpl_…). -
endingBeforestring queryCursor: plantillas antes de este
id(tmpl_…). -
sortenum queryOrden por fecha de creación:
createdAto-createdAt(default-createdAt).Valores:
createdAt-createdAtupdatedAt-updatedAtname-nameusageCount-usageCount -
fileTypestring queryFiltra por tipo de archivo (ej.
docx,pdf). -
categorystring queryFiltra por categoría.
-
tagsstring queryCSV de etiquetas — la plantilla debe tener TODAS.
-
searchstring queryBúsqueda por texto libre en el nombre (1–255 caracteres).
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Sobre de paginación por cursor (object: "list") con objetos Template.
Ver los 6 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
dataarray de objetos requeridoArreglo de objetos Template.
Ver 23 atributos hijos
-
data[].livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
data[].idstring requeridoID de la plantilla (
tmpl_…). -
data[].objectstring, siempre "template"Siempre
"template". -
data[].namestring requeridoNombre de la plantilla.
-
data[].descriptionstring puede ser nullDescripción de la plantilla.
-
data[].fileTypestring requeridoTipo de archivo fuente (ej.
docx,pdf). -
data[].originalFilenamestring puede ser nullNombre del archivo original subido.
-
data[].aiEditablebooleanSi la edición asistida por IA está habilitada.
-
data[].variableCountinteger requeridoNúmero de variables detectadas en la plantilla.
-
data[].fieldCountintegerNúmero de campos del formulario PDF (nombres distintos).
-
data[].unassignedFieldCountintegerCampos del formulario sin rol;
readinessespendingmientras haya alguno. -
data[].roleCountintegerNúmero de roles de la plantilla.
-
data[].pendingCandidatesintegerCandidatos del análisis vigente que aún no se confirmaron como variable (
0si no hay análisis). -
data[].readinessenum requeridoready(≥1 variable y 0 pendientes, o ≥1 campo y todos con rol),pending(≥1 candidato sin confirmar o ≥1 campo sin rol) oempty(0 variables y 0 campos).Valores:
readypendingempty -
data[].tagsarray de stringEtiquetas de la plantilla (arreglo vacío por default).
-
data[].categorystring puede ser nullCategoría de la plantilla.
-
data[].usageCountinteger requeridoCuántas veces se ha usado la plantilla.
-
data[].lastUsedAtstring (fecha-hora ISO 8601) puede ser nullÚltimo uso (ISO 8601).
-
data[].currentVersioninteger requeridoVersión actual de la plantilla.
-
data[].previewUrlstring puede ser nullRuta v3 relativa (
/templates/{id}/preview) del PNG de la primera página.nullsi la plantilla no tiene una fuente renderizable (p.ej. DOCX). -
data[].downloadUrlstring requeridoRuta v3 relativa (
/templates/{id}/download) del archivo original. -
data[].createdAtstring (fecha-hora ISO 8601) requeridoFecha de creación (ISO 8601).
-
data[].updatedAtstring (fecha-hora ISO 8601) requeridoÚltima actualización (ISO 8601).
-
-
hasMoreboolean requeridotruesi hay más resultados después de esta página. -
nextCursorstring puede ser nullCursor para la siguiente página (pásalo como
startingAfter). -
previousCursorstring puede ser nullCursor para la página anterior (pásalo como
endingBefore). -
limitinteger requeridoEl límite aplicado a esta página.
Create template
POST /templates
Da de alta una plantilla a partir de un PDF o un DOCX en base64 (máximo 10 MB decodificados). Es el arranque del dominio: si el PDF trae formulario, sus widgets entran como campos (GET …/fields, guía Formularios PDF); si es un DOCX con {{ variables }}, se detectan en el mismo paso (GET …/variables). La respuesta trae fieldCount, variableCount y readiness. Idempotency-Key es opcional pero se honra: un reintento devuelve la misma plantilla.
Parámetros
-
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring requeridoNombre visible de la plantilla.
-
fileobjeto requeridoArchivo DOCX o PDF en base64. Máximo 10 MB decodificados.
fileTypeesdocxopdf.Ver 3 atributos hijos
-
file.contentstring requeridoContenido del archivo codificado en Base64. Máximo 10 MB decodificados.
-
file.fileTypeenumTipo de archivo fuente:
docxopdf.Valores:
docxpdf -
file.namestring puede ser nullNombre del archivo (ej.
contrato.pdf). Se valida contra path traversal.
-
-
descriptionstring puede ser nullDescripción libre de la plantilla.
-
categorystring puede ser nullCategoría de la plantilla (ej.
legal). -
tagsarray de string puede ser nullEtiquetas de la plantilla.
Devuelve
201 La plantilla recién creada. — el objeto Template
Retrieve template
GET /templates/{template_id}
Consulta una plantilla por su id. Un id inexistente responde 404 (no 500).
Parámetros
-
template_idstring ruta requeridoID de la plantilla (
tmpl_…). -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 El objeto Template. — el objeto Template
Update template
PATCH /templates/{template_id}
Merge-patch de los metadatos: name, description, category, tags. Nunca cambia el archivo ni los campos/variables (para eso están …/fields y …/variables).
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring puede ser nullNuevo nombre de la plantilla.
-
descriptionstring puede ser nullNueva descripción.
-
categorystring puede ser nullNueva categoría.
-
tagsarray de string puede ser nullNuevo arreglo de etiquetas — reemplaza al anterior por completo.
Devuelve
200 La plantilla ya actualizada. — el objeto Template
Delete template
DELETE /templates/{template_id}
Borrado suave: la plantilla desaparece de las listas pero se conserva para auditoría. Responde 409 TEMPLATE_IN_USE si algún documento activo todavía la referencia; el detail trae el conteo.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
204 Plantilla eliminada.
Duplicate template
POST /templates/{template_id}:duplicate
Crea una copia independiente ("{name} (copia)") con el mismo archivo, campos, roles y variables. Idempotency-Key opcional: un reintento devuelve la primera copia.
Parámetros
-
template_idstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
201 La copia recién creada. — el objeto Template
Create a document from a template
POST /templates/{template_id}/documents
Crea un borrador a partir de la plantilla y, opcionalmente, lo deja listo en la misma llamada: fija values, adjunta signers y, con send: true, lo manda a firma. {} basta para obtener el borrador.
Equivale a POST /documents con templateId y mode: draft, seguido de PATCH /documents/{id}/values y, si se pide, de POST /documents/{id}/send — el mismo documento que devuelve GET /documents/{id}.
Con send: true, un valor obligatorio que llena el dueño y no viene en values es un 422 VALIDATION_ERROR con la lista en missingVariables, y no se crea nada: los valores quedan fijos al enviar. Las variables de un firmante y las opcionales no cuentan.
Si con values el PDF queda con menos páginas y alguna de las que se pierden tiene campos colocados, el borrador se crea con los valores pero su PDF no cambia, igual que en PATCH /documents/{id}/values, y POST /documents/{id}/send responde 409 DOCUMENT_NOT_SENDABLE hasta que muevas esos campos o cambies los valores. Con send: true ese 409 llega en esta misma llamada, con documentId, sin cobrar ni invitar.
values se valida contra la plantilla antes de crear nada. Si algo falla después de creado el borrador (un envío sin saldo, por ejemplo), el problem+json trae documentId: retómalo con POST /documents/{id}/send, no repitiendo esta llamada.
Idempotency-Key es obligatoria, igual que en POST /documents: un reintento con la misma clave repite la respuesta original (el 201 o un 4xx) en lugar de crear otro borrador. Un 402, un 429 o un 5xx liberan la clave, así que repetir esta llamada después de ellos crea otro borrador.
Parámetros
-
template_idstring ruta requeridoID de la plantilla desde la que se emite (
tmpl_…). -
Idempotency-Keystring header requeridoClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring puede ser nullNombre visible del documento. Si se omite, se toma el de la plantilla.
-
signersarray de objetos puede ser nullFirmantes a adjuntar al borrador. Pueden venir solo con
roleName(sin contacto) y completarse después; parasend: trueal menos uno necesitaemailophone.Ver 10 atributos hijos
-
signers[].emailstring puede ser nullCorreo del firmante. Manda
emailophone, no los dos: cada firmante recibe su invitación por un solo canal (422VALIDATION_ERRORsi llegan ambos). -
signers[].phonestring puede ser nullTeléfono del firmante (para invitación por WhatsApp). Excluye a
email: un firmante lleva un solo canal. -
signers[].namestring puede ser nullNombre del firmante.
-
signers[].roleNamestring puede ser nullRol semántico del firmante (ej.
proveedor), usado para auto-asignar variables de plantilla marcadas con ese rol. Opcional — si se omite, las variables deben asignarse manualmente. -
signers[].valuesobjeto (llave → valor) puede ser nullPrellenado de campos del formulario PDF por nombre de campo (texto o casilla). Sólo aplica a plantillas PDF con campos; las llaves nunca se camelizan.
-
signers[].readOnlyarray de string puede ser nullNombres de campos prellenados que el firmante no puede cambiar.
-
signers[].routingOrderinteger puede ser nullEtapa de firma (1 = primera). Firmantes con el mismo número firman en paralelo. Solo aplica con
signingOrder: "sequential". ConsigningOrder: "sequential"es obligatorio en todos los firmantes: si le falta a alguno, la creación se rechaza con 422VALIDATION_ERRORdiciendo en cuál falta, en vez de repartir etapas por su cuenta. Dentro del producto un firmante sin número cuenta como etapa 1, pero la API v3 no asume ese default: unsequentiala medio numerar sería un documento que firma todo el mundo a la vez sin decirlo. Después de crear, la etapa se cambia conPATCH /v3/documents/{documentId}/signers/{signerId}. Disponible sólo si el orden de firma está habilitado en el entorno; si no, pedirsequentialresponde 403SEQUENTIAL_NOT_AVAILABLEy todo documento firma en paralelo. -
signers[].kindenumsigner(default) firma.carbon_copyes un observador: nunca firma ni recibe campos, solo los avisos deeventsy, concapability: notify_and_view, un enlace de solo lectura. Un observador necesitaemaily no llevaroleName,routingOrder,valuesnireadOnly. Después de crear se administran con/v3/documents/{documentId}/observers.Valores:
signercarbon_copy -
signers[].capabilityenum puede ser nullSolo observadores:
notify(default) onotify_and_view.Valores:
notifynotify_and_view -
signers[].eventsarray de string puede ser nullSolo observadores: avisos que recibe.
document.completed(default),document.expired,document.voided.
-
-
valuesobjeto (llave → valor)Mapa nombre→valor de las variables de la plantilla que fija el remitente. Las llaves conservan su forma natural (
nombre_completo): nunca se camelizan. -
sendbooleanSi es
true, tras crear el borrador lo manda a firma comoPOST /documents/{id}/send(cobra créditos e invita a los firmantes pendientes). Exige al menos un firmante conemailophone.
Devuelve
201 El documento creado (borrador, o ya enviado si pediste send: true).
Ver los 20 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
idstring requeridoID del documento (
doc_…). -
objectstring, siempre "document"Siempre
"document". -
namestring requeridoNombre visible del documento.
-
statusenum requeridoEstado del ciclo de vida:
draft,collecting_data,awaiting_signatures,correcting,processing,completed,expired,voided,error.Valores:
draftcollecting_dataawaiting_signaturescorrectingprocessingcompletedexpiredvoidederror -
documentTypestring requeridoToken opaco del tipo de documento.
-
signerCountinteger requeridoNúmero total de firmantes.
-
signedCountinteger requeridoCuántos firmantes ya firmaron.
-
ownerIdstring requeridoDueño del documento (
usr_…). -
orgIdstring puede ser nullOrganización del documento (
org_…). -
folderIdstring puede ser nullCarpeta que contiene el documento (
fld_…). Esnullsi el documento no está en ninguna carpeta que esta credencial pueda abrir conGET /v3/folders/{id}. -
expiresAtstring (fecha-hora ISO 8601) puede ser nullFecha límite de firma (ISO 8601).
-
signingOrderenumparallelosequential(firmantes por etapas conroutingOrder). Disponible sólo si el orden de firma está habilitado en el entorno; si no, pedirsequentialresponde 403SEQUENTIAL_NOT_AVAILABLEy todo documento firma en paralelo.Valores:
parallelsequential -
currentStageinteger puede ser nullEtapa activa en un documento
sequentialmientras espera firmas;nullen paralelo o al terminar. Disponible sólo si el orden de firma está habilitado en el entorno; si no, pedirsequentialresponde 403SEQUENTIAL_NOT_AVAILABLEy todo documento firma en paralelo. -
expirationRemindersarray de integer puede ser nullHoras antes del vencimiento en las que se envían recordatorios.
-
templateIdstring puede ser nullPlantilla de la que nació el documento (
tmpl_…), onull. -
templateVersionIdstring puede ser nullVersión de esa plantilla cuyo layout se aplicó (
tv_…), onull. -
parentDocumentIdstring puede ser nullDocumento del que este es un anexo (
doc_…).nullsi es un documento raíz. VerPOST /documents/{id}/annexesyGET /documents/{id}/family. -
createdAtstring (fecha-hora ISO 8601) requeridoFecha de creación (ISO 8601).
-
updatedAtstring (fecha-hora ISO 8601) requeridoÚltima actualización (ISO 8601).
List template versions
GET /templates/{template_id}/versions
Las versiones guardadas de la plantilla, de la más reciente a la más antigua. Cada una trae su layout —orden de firma, roles con su etapa, firmantes habituales y ajustes del documento— y un summary para comparar dos versiones de un vistazo sin bajar el archivo. summary.fields cuenta los campos de firma de la plantilla (nombres distintos): los campos no se versionan, así que ese número es el mismo en todas las filas.
Parámetros
-
template_idstring ruta requeridoID de la plantilla (
tmpl_…). -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Las versiones, de la más reciente a la más antigua.
Ver los 3 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla a la que pertenecen (
tmpl_…). -
dataarray de objetos requeridoVersiones, de la más reciente a la más antigua.
Ver 6 atributos hijos
-
data[].idstring requeridoID de la versión (
tv_…). -
data[].versionNumberinteger requeridoNúmero de versión (1, 2, 3…).
-
data[].createdAtstring (fecha-hora ISO 8601) requeridoCuándo se guardó la versión (ISO 8601).
-
data[].createdBystring requeridoQuién la creó:
user,aiosystem. -
data[].summaryobjeto requeridoConteos de un vistazo.
Ver 4 atributos hijos
-
data[].summary.rolesinteger requeridoRoles que trae el layout de esta versión.
-
data[].summary.fieldsinteger requeridoCampos de firma de la plantilla (nombres distintos).
-
data[].summary.variablesinteger requeridoVariables de esta versión.
-
data[].summary.proposalsinteger requeridoCuántas de esas variables traen valor por defecto (
defaultValue).
-
-
data[].layoutobjeto puede ser nullLayout guardado, o
nullen versiones anteriores a plt_0001.Ver 3 atributos hijos
-
data[].layout.signingOrderModeenumparallelosequential. Disponible sólo si el orden de firma está habilitado en el entorno; si no, pedirsequentialresponde 403SEQUENTIAL_NOT_AVAILABLEy todo documento firma en paralelo.Valores:
parallelsequential -
data[].layout.rolesarray de objetosRoles del documento, en orden.
Ver 4 atributos hijos
-
data[].layout.roles[].namestring requeridoNombre del rol tal como lo verá el siguiente documento.
-
data[].layout.roles[].kindstringPapel del participante (token opaco):
signer,witness,notary,carbon_copy,approveroin_person_signer. -
data[].layout.roles[].stageinteger puede ser nullEtapa de firma (1 = primera).
nullen orden paralelo. Disponible sólo si el orden de firma está habilitado en el entorno; si no, pedirsequentialresponde 403SEQUENTIAL_NOT_AVAILABLEy todo documento firma en paralelo. -
data[].layout.roles[].habitualSignerobjeto puede ser nullPersona que suele tomar el rol, o
null.Ver 3 atributos hijos
-
data[].layout.roles[].habitualSigner.namestring puede ser nullNombre de la persona habitual.
-
data[].layout.roles[].habitualSigner.emailstring puede ser nullCorreo de la persona habitual.
-
data[].layout.roles[].habitualSigner.phonestring puede ser nullTeléfono de la persona habitual.
-
-
-
data[].layout.settingsobjetoVigencia, recordatorios, mensaje y vista del formulario del documento.
Ver 4 atributos hijos
-
data[].layout.settings.expiresInDaysinteger puede ser nullDías de vigencia desde que se crea el documento, o
nullsi no vence. -
data[].layout.settings.remindersobjeto puede ser nullConfiguración de recordatorios, o
null.Ver 2 atributos hijos
-
data[].layout.settings.reminders.enabledbooleanSi el documento manda recordatorios.
-
data[].layout.settings.reminders.everyDaysinteger puede ser nullCada cuántos días se recuerda.
-
-
data[].layout.settings.messagestring puede ser nullMensaje del remitente que acompaña la invitación.
-
data[].layout.settings.formViewenum puede ser nullVista con la que abre el formulario de los documentos que nacen de esta versión:
fill(Llenar) oedit(Editar campos).nullse trata comoedit.Valores:
filledit
-
-
-
List template facets
GET /templates/facets
Las categorías y etiquetas que usan tus plantillas, con conteos, para construir filtros en tu propia UI (GET /templates?category=…).
Parámetros
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Colección acotada de facetas con su conteo.
Ver los 2 atributos de la respuesta
-
categoriesarray de objetos requeridoCategorías presentes.
Ver 2 atributos hijos
-
categories[].namestring requeridoNombre de la categoría o etiqueta.
-
categories[].countinteger requeridoCuántas plantillas visibles tienen este valor.
-
-
tagsarray de objetos requeridoEtiquetas presentes.
Ver 2 atributos hijos
-
tags[].namestring requeridoNombre de la categoría o etiqueta.
-
tags[].countinteger requeridoCuántas plantillas visibles tienen este valor.
-
List catalog templates
GET /templates/catalog
El catálogo curado por AllSign (contratos y formatos mexicanos listos para usar). Cada entrada trae un slug estable y los planes que la incluyen; copia una a tu tenant con POST /templates/catalog/{slug}:copy.
Parámetros
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Colección acotada del catálogo publicado.
Ver los 2 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
dataarray de objetos requeridoArreglo de objetos CatalogTemplate.
Ver 10 atributos hijos
-
data[].slugstring requeridoIdentificador URL-friendly, único.
-
data[].displayNamestring requeridoNombre público en la galería.
-
data[].descriptionstring puede ser nullDescripción pública.
-
data[].categorystring requeridoCategoría: legal, admin, rrhh, inmobiliaria, financiero.
-
data[].iconstring puede ser nullEmoji o clave de ícono para la galería.
-
data[].isFeaturedboolean requeridotruesi se destaca en la galería. -
data[].variableCountinteger requeridoNúmero de variables detectadas en la plantilla fuente.
-
data[].includedInPlansarray de stringSlugs de los planes que incluyen esta plantilla.
-
data[].templateIdstring requeridoLa plantilla fuente (
tmpl_…). -
data[].displayOrderinteger requeridoOrden de despliegue en la galería.
-
Copy catalog template
POST /templates/catalog/{slug}:copy
Materializa una copia de la plantilla del catálogo dentro de tu tenant, con sus campos, roles y variables. A partir de ahí es tuya: edítala y emite documentos con su id.
Parámetros
-
slugstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
201 Tu copia, ya como plantilla del tenant. — el objeto Template
List template fields
GET /templates/{template_id}/fields
Los campos del formulario de una plantilla PDF: los que trajo el AcroForm al subirla (source: acroform), los que dibujaste por API (drawn) y los que copiaste de un documento (template). Cada campo tiene un name estable (el del widget del PDF), un type (text, date, checkbox, radio, select, signature, initials o stamp), sus areas (una o varias por página, en % del papel) y el role que lo llena — o null si nadie lo ha reclamado. unassignedCount dice cuántos siguen sin rol; mientras haya uno, la plantilla queda en readiness: "pending".
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Colección acotada (object: "list", hasMore siempre false) con todos los campos.
Ver los 7 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla dueña de los campos (
tmpl_…). -
pageCountinteger requeridoPáginas del PDF de la plantilla.
-
dataarray de objetos requeridoCampos de la plantilla.
Ver 15 atributos hijos
-
data[].objectstring, siempre "template_field"Siempre
"template_field". -
data[].namestring requeridoNombre del campo (clave estable, igual al widget del PDF).
-
data[].typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
data[].rolestring puede ser nullRol dueño del campo, o
nullsi nadie lo ha reclamado. -
data[].requiredbooleanSi el firmante debe llenarlo antes de firmar.
-
data[].labelstring puede ser nullEtiqueta que ve el firmante.
-
data[].optionsarray de string puede ser nullOpciones de
select/radio. -
data[].groupstring puede ser nullGrupo de exclusión mutua (
radio). -
data[].sourceenum puede ser nullDe dónde nació el campo.
Valores:
acroformdrawntemplate -
data[].valuestring puede ser nullValor que el emisor dejó puesto, o
null. En casillas,"true"o"false". -
data[].readOnlybooleanSi el valor queda fijo: el firmante lo ve y no lo puede cambiar. Sin
valuesiempre esfalse. -
data[].fixedWidthbooleanAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra (mínimo 6 pt).
-
data[].placeholderstring puede ser nullTexto de ejemplo que ve el firmante en el campo vacío, o
nullsi no tiene. -
data[].maxLengthinteger puede ser nullCuántos caracteres admite el campo, o
nullsi no tiene límite. -
data[].areasarray de objetos requeridoHuecos donde aparece el campo (uno o varios).
Ver 2 atributos hijos
-
data[].areas[].pageinteger requeridoPágina 1-based.
-
data[].areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
-
unassignedCountinteger requeridoCuántos campos no tienen rol todavía.
-
hasMorebooleanSiempre
falseen esta colección acotada.
Create template field
POST /templates/{template_id}/fields
Dibuja un campo nuevo sobre el PDF de la plantilla. Indica type, name (único en la plantilla) y al menos un área {page, rect}; opcionalmente el role que lo llenará (se crea si no existe), required, label para el firmante, options para select/radio y group para casillas excluyentes. Nace con source: "drawn".
Parámetros
-
template_idstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring requeridoNombre del campo.
-
typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
rolestring puede ser nullRol dueño (se crea si no existe).
-
requiredbooleanSi es obligatorio.
-
labelstring puede ser nullEtiqueta para el firmante.
-
optionsarray de string puede ser nullOpciones de
select/radio. -
groupstring puede ser nullGrupo de exclusión mutua.
-
valuestring puede ser nullValor que ya va puesto. En casillas,
"true"o"false". -
readOnlybooleanDeja el valor fijo. Se ignora si no mandas
value. -
fixedWidthboolean puede ser nullAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra. Solo
text,selectydate. -
placeholderstring puede ser nullTexto de ejemplo para el firmante. Solo campos de texto (
textyselect); en otros tipos se ignora. -
maxLengthinteger puede ser nullCuántos caracteres admite el campo (1 a 500). Solo campos de texto (
textyselect); en otros tipos se ignora. -
areasarray de objetos requeridoHuecos del campo en % del papel.
Ver 2 atributos hijos
-
areas[].pageinteger requeridoPágina 1-based.
-
areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
Devuelve
201 El campo creado, con sus áreas normalizadas.
Ver los 15 atributos de la respuesta
-
objectstring, siempre "template_field"Siempre
"template_field". -
namestring requeridoNombre del campo (clave estable, igual al widget del PDF).
-
typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
rolestring puede ser nullRol dueño del campo, o
nullsi nadie lo ha reclamado. -
requiredbooleanSi el firmante debe llenarlo antes de firmar.
-
labelstring puede ser nullEtiqueta que ve el firmante.
-
optionsarray de string puede ser nullOpciones de
select/radio. -
groupstring puede ser nullGrupo de exclusión mutua (
radio). -
sourceenum puede ser nullDe dónde nació el campo.
Valores:
acroformdrawntemplate -
valuestring puede ser nullValor que el emisor dejó puesto, o
null. En casillas,"true"o"false". -
readOnlybooleanSi el valor queda fijo: el firmante lo ve y no lo puede cambiar. Sin
valuesiempre esfalse. -
fixedWidthbooleanAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra (mínimo 6 pt).
-
placeholderstring puede ser nullTexto de ejemplo que ve el firmante en el campo vacío, o
nullsi no tiene. -
maxLengthinteger puede ser nullCuántos caracteres admite el campo, o
nullsi no tiene límite. -
areasarray de objetos requeridoHuecos donde aparece el campo (uno o varios).
Ver 2 atributos hijos
-
areas[].pageinteger requeridoPágina 1-based.
-
areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
Update template field
PATCH /templates/{template_id}/fields/{name}
Cambia una o varias cosas de un campo por su name: moverlo o redistribuir sus areas, renombrarlo (name, renombra todas sus áreas), cambiar su type, asignarle un role (o null para dejarlo sin rol), required, label, options o group. Es la llamada con la que asignas los campos importados del PDF a un rol antes de emitir.
Parámetros
-
template_idstring ruta requerido -
namestring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring puede ser nullNuevo nombre (renombra todas sus áreas).
-
typeenum puede ser nullNuevo tipo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
rolestring puede ser nullNuevo rol (
nulllo deja sin rol). -
requiredboolean puede ser nullSi es obligatorio.
-
labelstring puede ser nullEtiqueta para el firmante.
-
optionsarray de string puede ser nullOpciones de
select/radio. -
groupstring puede ser nullGrupo de exclusión mutua.
-
valuestring puede ser nullNuevo valor (
nulllo vacía y suelta el candado). -
readOnlyboolean puede ser nullDeja el valor fijo. Se ignora si el campo queda sin
value. -
fixedWidthboolean puede ser nullAncho fijo (
true);falseonulllo quita. Solotext,selectydate. -
placeholderstring puede ser nullTexto de ejemplo, solo en campos de texto (
textyselect). Vacío onulllo quita. -
maxLengthinteger puede ser nullCuántos caracteres admite (1 a 500), solo en campos de texto (
textyselect).nullquita el límite. -
areasarray de objetos puede ser nullReemplaza todos los huecos.
Ver 2 atributos hijos
-
areas[].pageinteger requeridoPágina 1-based.
-
areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
Devuelve
200 El campo ya actualizado.
Ver los 15 atributos de la respuesta
-
objectstring, siempre "template_field"Siempre
"template_field". -
namestring requeridoNombre del campo (clave estable, igual al widget del PDF).
-
typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
rolestring puede ser nullRol dueño del campo, o
nullsi nadie lo ha reclamado. -
requiredbooleanSi el firmante debe llenarlo antes de firmar.
-
labelstring puede ser nullEtiqueta que ve el firmante.
-
optionsarray de string puede ser nullOpciones de
select/radio. -
groupstring puede ser nullGrupo de exclusión mutua (
radio). -
sourceenum puede ser nullDe dónde nació el campo.
Valores:
acroformdrawntemplate -
valuestring puede ser nullValor que el emisor dejó puesto, o
null. En casillas,"true"o"false". -
readOnlybooleanSi el valor queda fijo: el firmante lo ve y no lo puede cambiar. Sin
valuesiempre esfalse. -
fixedWidthbooleanAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra (mínimo 6 pt).
-
placeholderstring puede ser nullTexto de ejemplo que ve el firmante en el campo vacío, o
nullsi no tiene. -
maxLengthinteger puede ser nullCuántos caracteres admite el campo, o
nullsi no tiene límite. -
areasarray de objetos requeridoHuecos donde aparece el campo (uno o varios).
Ver 2 atributos hijos
-
areas[].pageinteger requeridoPágina 1-based.
-
areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
Delete template field
DELETE /templates/{template_id}/fields/{name}
Quita el campo y todas sus áreas de la plantilla. Los documentos ya emitidos no cambian.
Parámetros
-
template_idstring ruta requerido -
namestring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
204 Campo eliminado.
Replace template fields
PUT /templates/{template_id}/fields
Reemplaza el layout completo de una vez (declarativo e idempotente): mandas la lista final de campos y AllSign crea, mueve, reasigna y borra lo que haga falta para que la plantilla quede exactamente así. Útil para versionar el layout en tu repositorio o para sincronizarlo desde tu propio editor.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
fieldsarray de objetos requeridoLayout completo; reemplaza el anterior.
Ver 13 atributos hijos
-
fields[].namestring requeridoNombre del campo.
-
fields[].typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
fields[].rolestring puede ser nullRol dueño (se crea si no existe).
-
fields[].requiredbooleanSi es obligatorio.
-
fields[].labelstring puede ser nullEtiqueta para el firmante.
-
fields[].optionsarray de string puede ser nullOpciones de
select/radio. -
fields[].groupstring puede ser nullGrupo de exclusión mutua.
-
fields[].valuestring puede ser nullValor que ya va puesto. En casillas,
"true"o"false". -
fields[].readOnlybooleanDeja el valor fijo. Se ignora si no mandas
value. -
fields[].fixedWidthboolean puede ser nullAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra. Solo
text,selectydate. -
fields[].placeholderstring puede ser nullTexto de ejemplo para el firmante. Solo campos de texto (
textyselect); en otros tipos se ignora. -
fields[].maxLengthinteger puede ser nullCuántos caracteres admite el campo (1 a 500). Solo campos de texto (
textyselect); en otros tipos se ignora. -
fields[].areasarray de objetos requeridoHuecos del campo en % del papel.
Ver 2 atributos hijos
-
fields[].areas[].pageinteger requeridoPágina 1-based.
-
fields[].areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
fields[].areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
fields[].areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
fields[].areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
fields[].areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
Devuelve
200 La lista completa de campos tal como quedó.
Ver los 7 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla dueña de los campos (
tmpl_…). -
pageCountinteger requeridoPáginas del PDF de la plantilla.
-
dataarray de objetos requeridoCampos de la plantilla.
Ver 15 atributos hijos
-
data[].objectstring, siempre "template_field"Siempre
"template_field". -
data[].namestring requeridoNombre del campo (clave estable, igual al widget del PDF).
-
data[].typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
data[].rolestring puede ser nullRol dueño del campo, o
nullsi nadie lo ha reclamado. -
data[].requiredbooleanSi el firmante debe llenarlo antes de firmar.
-
data[].labelstring puede ser nullEtiqueta que ve el firmante.
-
data[].optionsarray de string puede ser nullOpciones de
select/radio. -
data[].groupstring puede ser nullGrupo de exclusión mutua (
radio). -
data[].sourceenum puede ser nullDe dónde nació el campo.
Valores:
acroformdrawntemplate -
data[].valuestring puede ser nullValor que el emisor dejó puesto, o
null. En casillas,"true"o"false". -
data[].readOnlybooleanSi el valor queda fijo: el firmante lo ve y no lo puede cambiar. Sin
valuesiempre esfalse. -
data[].fixedWidthbooleanAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra (mínimo 6 pt).
-
data[].placeholderstring puede ser nullTexto de ejemplo que ve el firmante en el campo vacío, o
nullsi no tiene. -
data[].maxLengthinteger puede ser nullCuántos caracteres admite el campo, o
nullsi no tiene límite. -
data[].areasarray de objetos requeridoHuecos donde aparece el campo (uno o varios).
Ver 2 atributos hijos
-
data[].areas[].pageinteger requeridoPágina 1-based.
-
data[].areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
-
unassignedCountinteger requeridoCuántos campos no tienen rol todavía.
-
hasMorebooleanSiempre
falseen esta colección acotada.
Import fields from a document
POST /templates/{template_id}/fields:from-document
Copia los campos y los roles de un documento a la plantilla: es el "guardar como plantilla" del super editor, por API. Los firmantes del documento no viajan — la plantilla guarda estructura (campos + roles), nunca personas. Tampoco viajan los datos: de cada campo se copian nombre, tipo, rol, posición (convertida a % de la hoja), requerido, etiqueta, opciones y grupo, nunca el valor que tenía en el documento origen ni su candado (readOnly). Los campos existentes de la plantilla se reemplazan por los del documento.
Parámetros
-
template_idstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
documentIdstring requeridoDocumento (
doc_…) del que se copian campos y roles.
Devuelve
200 La lista de campos de la plantilla después de la importación.
Ver los 7 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla dueña de los campos (
tmpl_…). -
pageCountinteger requeridoPáginas del PDF de la plantilla.
-
dataarray de objetos requeridoCampos de la plantilla.
Ver 15 atributos hijos
-
data[].objectstring, siempre "template_field"Siempre
"template_field". -
data[].namestring requeridoNombre del campo (clave estable, igual al widget del PDF).
-
data[].typeenum requeridoTipo de campo.
Valores:
textdatecheckboxradioselectsignatureinitialsstamp -
data[].rolestring puede ser nullRol dueño del campo, o
nullsi nadie lo ha reclamado. -
data[].requiredbooleanSi el firmante debe llenarlo antes de firmar.
-
data[].labelstring puede ser nullEtiqueta que ve el firmante.
-
data[].optionsarray de string puede ser nullOpciones de
select/radio. -
data[].groupstring puede ser nullGrupo de exclusión mutua (
radio). -
data[].sourceenum puede ser nullDe dónde nació el campo.
Valores:
acroformdrawntemplate -
data[].valuestring puede ser nullValor que el emisor dejó puesto, o
null. En casillas,"true"o"false". -
data[].readOnlybooleanSi el valor queda fijo: el firmante lo ve y no lo puede cambiar. Sin
valuesiempre esfalse. -
data[].fixedWidthbooleanAncho fijo: si el texto no cabe, el campo no se alarga y se encoge la letra (mínimo 6 pt).
-
data[].placeholderstring puede ser nullTexto de ejemplo que ve el firmante en el campo vacío, o
nullsi no tiene. -
data[].maxLengthinteger puede ser nullCuántos caracteres admite el campo, o
nullsi no tiene límite. -
data[].areasarray de objetos requeridoHuecos donde aparece el campo (uno o varios).
Ver 2 atributos hijos
-
data[].areas[].pageinteger requeridoPágina 1-based.
-
data[].areas[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].areas[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].areas[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].areas[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].areas[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
-
unassignedCountinteger requeridoCuántos campos no tienen rol todavía.
-
hasMorebooleanSiempre
falseen esta colección acotada.
List template roles
GET /templates/{template_id}/roles
Los roles de la plantilla en orden, con cuántos campos tiene cada uno. Al crear un documento desde la plantilla, cada firmante toma un rol por roleName y hereda todos sus campos.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Colección acotada con los roles en orden.
Ver los 5 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla dueña de los roles (
tmpl_…). -
dataarray de objetos requeridoRoles de la plantilla, en orden.
Ver 4 atributos hijos
-
data[].objectstring, siempre "template_role"Siempre
"template_role". -
data[].namestring requeridoNombre del rol (ej.
Cliente). -
data[].orderinteger requeridoOrden de presentación, 0-based.
-
data[].fieldCountinteger requeridoCuántos campos tiene asignados.
-
-
hasMorebooleanSiempre
falseen esta colección acotada.
Replace template roles
PUT /templates/{template_id}/roles
Fija la lista de roles (nombre y orden). Los roles que ya no estén en la lista se quitan y sus campos quedan sin rol (unassignedCount sube); los nombres nuevos se crean vacíos, listos para asignarles campos con PATCH …/fields/{name}.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
rolesarray de string requeridoNombres de rol en orden; los que falten se quitan (sus campos quedan sin rol).
Devuelve
200 Los roles tal como quedaron.
Ver los 5 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla dueña de los roles (
tmpl_…). -
dataarray de objetos requeridoRoles de la plantilla, en orden.
Ver 4 atributos hijos
-
data[].objectstring, siempre "template_role"Siempre
"template_role". -
data[].namestring requeridoNombre del rol (ej.
Cliente). -
data[].orderinteger requeridoOrden de presentación, 0-based.
-
data[].fieldCountinteger requeridoCuántos campos tiene asignados.
-
-
hasMorebooleanSiempre
falseen esta colección acotada.
Download template file
GET /templates/{template_id}/file
El PDF de la plantilla. Con format=form conserva los widgets del formulario vivos (para revisarlo en Acrobat o en tu propio visor); con format=flat los hornea (aplanado, sin campos editables). Solo plantillas PDF: una plantilla DOCX responde 422.
Parámetros
-
template_idstring ruta requerido -
formatenum queryform(default) conserva los widgets;flatlos hornea.Valores:
formflat -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 El PDF (application/pdf, Content-Disposition: attachment).
Replace a PDF template's file
POST /templates/{template_id}/file
Sustituye el PDF de la plantilla —una cláusula nueva, otro logo— sin rehacer los campos que ya colocaste: sus áreas se guardan en porcentaje de página, así que un archivo con otro tamaño de hoja no las mueve. Lo único que sí puede romperse es el número de páginas: un campo que vivía en una página que el archivo nuevo ya no tiene se poda —se borra esa área, nunca la plantilla ni el resto de sus áreas— y la respuesta lo dice en prunedFields, con el nombre del campo, las páginas que perdió y removed en true si se quedó sin ninguna. Revísalo siempre después de reemplazar. Solo plantillas PDF (fileType: "pdf") y el reemplazo también debe ser PDF: este endpoint no convierte DOCX↔PDF. El archivo viaja en base64, máximo 10 MB decodificados, igual que al crear la plantilla.
Parámetros
-
template_idstring ruta requeridoID de la plantilla PDF cuyo archivo se reemplaza (
tmpl_…). -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
fileobjeto requeridoEl PDF nuevo en base64. Máximo 10 MB decodificados.
Ver 3 atributos hijos
-
file.contentstring requeridoContenido del archivo codificado en Base64. Máximo 10 MB decodificados.
-
file.fileTypeenumTipo de archivo fuente:
docxopdf.Valores:
docxpdf -
file.namestring puede ser nullNombre del archivo (ej.
contrato.pdf). Se valida contra path traversal.
-
Devuelve
200 La plantilla con el archivo ya reemplazado, las páginas del archivo nuevo y prunedFields.
Ver los 5 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_file_replace"Siempre
"template_file_replace". -
templateobjeto requeridoLa plantilla con el archivo ya reemplazado.
Ver 23 atributos hijos
-
template.livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
template.idstring requeridoID de la plantilla (
tmpl_…). -
template.objectstring, siempre "template"Siempre
"template". -
template.namestring requeridoNombre de la plantilla.
-
template.descriptionstring puede ser nullDescripción de la plantilla.
-
template.fileTypestring requeridoTipo de archivo fuente (ej.
docx,pdf). -
template.originalFilenamestring puede ser nullNombre del archivo original subido.
-
template.aiEditablebooleanSi la edición asistida por IA está habilitada.
-
template.variableCountinteger requeridoNúmero de variables detectadas en la plantilla.
-
template.fieldCountintegerNúmero de campos del formulario PDF (nombres distintos).
-
template.unassignedFieldCountintegerCampos del formulario sin rol;
readinessespendingmientras haya alguno. -
template.roleCountintegerNúmero de roles de la plantilla.
-
template.pendingCandidatesintegerCandidatos del análisis vigente que aún no se confirmaron como variable (
0si no hay análisis). -
template.readinessenum requeridoready(≥1 variable y 0 pendientes, o ≥1 campo y todos con rol),pending(≥1 candidato sin confirmar o ≥1 campo sin rol) oempty(0 variables y 0 campos).Valores:
readypendingempty -
template.tagsarray de stringEtiquetas de la plantilla (arreglo vacío por default).
-
template.categorystring puede ser nullCategoría de la plantilla.
-
template.usageCountinteger requeridoCuántas veces se ha usado la plantilla.
-
template.lastUsedAtstring (fecha-hora ISO 8601) puede ser nullÚltimo uso (ISO 8601).
-
template.currentVersioninteger requeridoVersión actual de la plantilla.
-
template.previewUrlstring puede ser nullRuta v3 relativa (
/templates/{id}/preview) del PNG de la primera página.nullsi la plantilla no tiene una fuente renderizable (p.ej. DOCX). -
template.downloadUrlstring requeridoRuta v3 relativa (
/templates/{id}/download) del archivo original. -
template.createdAtstring (fecha-hora ISO 8601) requeridoFecha de creación (ISO 8601).
-
template.updatedAtstring (fecha-hora ISO 8601) requeridoÚltima actualización (ISO 8601).
-
-
pageCountinteger requeridoPáginas del archivo nuevo.
-
prunedFieldsarray de objetosCampos que perdieron área(s) al reemplazar el archivo.
Ver 3 atributos hijos
-
prunedFields[].namestring requeridoNombre del campo.
-
prunedFields[].pagesarray de integer requeridoPáginas que ocupaba y que el archivo nuevo ya no tiene.
-
prunedFields[].removedboolean requeridotruesi el campo se eliminó por completo (ninguna de sus áreas cupo en el archivo nuevo);falsesi sólo perdió algunas de varias áreas.
-
Download original file
GET /templates/{template_id}/download
El archivo original tal como se subió (PDF o DOCX), sin marcar ni convertir. Se transmite directo, nunca por redirect. Para el PDF con widgets o aplanado usa GET …/file?format=form|flat.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 El archivo (Content-Disposition: attachment).
Get template preview
GET /templates/{template_id}/preview
PNG de la primera página, para mostrar la plantilla en tu propia lista. Solo plantillas PDF; un DOCX responde 404 PREVIEW_UNAVAILABLE. width reduce la imagen (nunca la agranda).
Parámetros
-
template_idstring ruta requerido -
widthinteger queryAncho máximo en píxeles; la imagen se reduce, nunca se agranda.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 La imagen (image/png).
Get template page image
GET /templates/{template_id}/pages/{page_number}
Imagen limpia de una página del PDF (sin widgets ni anotaciones), para pintar tu propio editor de campos encima; las coordenadas de areas son porcentajes de esta página.
Parámetros
-
template_idstring ruta requerido -
page_numberinteger ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 La imagen (image/png).
Ver los 7 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_page"Siempre
"template_page". -
templateIdstring requeridoLa plantilla (
tmpl_…). -
pageNumberinteger requeridoPágina 1-based.
-
imageUrlstring requeridoURL firmada de la imagen PNG de la página, con los widgets vacíos.
-
widthinteger requeridoAncho de la imagen en píxeles.
-
heightinteger requeridoAlto de la imagen en píxeles.
Get template layout
GET /templates/{template_id}/layout
Vista de solo lectura del layout completo: páginas con su tamaño y cada campo o variable con su posición. Útil para dibujar el editor; para cambiar campos usa …/fields.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 El layout por página.
Ver los 5 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_layout"Siempre
"template_layout". -
templateIdstring requeridoLa plantilla (
tmpl_…). -
pageCountinteger requeridoNúmero de páginas.
-
itemsarray de objetosDatos, decisiones y firmas posicionados.
Ver 3 atributos hijos
-
items[].namestring requeridoNombre del dato, decisión o campo de firma.
-
items[].kindenum requeridoTipo de ítem:
data,decisionosignature.Valores:
datadecisionsignature -
items[].slotsarray de objetos requeridoHuecos en el papel, en % de la página.
Ver 2 atributos hijos
-
items[].slots[].pageinteger requeridoPágina 1-based.
-
items[].slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
items[].slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
items[].slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
items[].slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
items[].slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
Download marked Word file
GET /templates/{template_id}/marked.docx
Solo plantillas DOCX: el Word original con {{nombre}} en cada dato ya confirmado, conservando los estilos. Sirve para revisar en Word qué detectó el análisis. Un PDF responde 422.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 El DOCX marcado (Content-Disposition: attachment).
List template variables
GET /templates/{template_id}/variables
Lista las variables de una plantilla — justo lo que necesitas para armar el mapa templateValues de Create document. Es una colección acotada (no paginada por cursor): el número de variables lo limita el propio archivo.
Parámetros
-
template_idstring ruta requeridoID de la plantilla (
tmpl_…). -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Colección acotada (object: "list", hasMore siempre false) con las variables de la plantilla.
Ver los 4 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla a la que pertenecen las variables (
tmpl_…). -
dataarray de objetos requeridoArreglo de variables de la plantilla.
Ver 14 atributos hijos
-
data[].namestring requeridoNombre de la variable — es la llave que usas en
templateValues. Se mantiene ensnake_casenatural, nunca se cameliza. -
data[].labelstring requeridoEtiqueta legible para mostrar.
-
data[].typestringTipo de dato (token opaco
snake_case):text,date,currency,textarea,select,number. -
data[].requiredbooleanSi la variable es obligatoria.
-
data[].defaultValuestring puede ser nullValor por default sugerido.
-
data[].optionsarray de string puede ser nullOpciones válidas cuando
typeesselect. -
data[].rolestring puede ser nullRol del firmante inferido del prefijo con doble guion bajo, o
nullsi la variable no está ligada a un rol. -
data[].sourcestring puede ser nullOrigen del dato (token opaco):
form_field,jinja,signalomanual. -
data[].pageinteger puede ser nullPágina 1-based del hueco principal.
-
data[].rectobjeto puede ser nullRectángulo del hueco principal, en % del papel.
Ver 4 atributos hijos
-
data[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
data[].slotsarray de objetos puede ser nullHuecos adicionales cuando el mismo dato aparece más de una vez.
Ver 2 atributos hijos
-
data[].slots[].pageinteger requeridoPágina 1-based.
-
data[].slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
data[].filledBystring puede ser nullQuién llena el dato:
owner(el remitente) onull. Por compatibilidad puede traersignero el nombre de un rol; esos valores ya no se aceptan en el body de crear, editar ni confirmar. -
data[].snippetstring puede ser nullTexto exacto del hueco detectado en el análisis (
______,[CIUDAD]), onull. -
data[].analysisIndexinteger puede ser nullÍndice del candidato del análisis del que se confirmó esta variable, o
nullsi se creó a mano.
-
-
hasMorebooleanSiempre
falseen esta colección acotada.
Create template variable
POST /templates/{template_id}/variables
Agrega una variable {{ }} a mano a una plantilla DOCX: nombre, etiqueta, tipo y, opcionalmente, su posición (page, rect, slots). mergeInto la une a una variable existente como hueco adicional. Todas las variables las llena el remitente: filledBy solo acepta owner, y signer responde 422. Lo que captura el firmante va en un campo del formulario PDF (guía Formularios PDF).
Parámetros
-
template_idstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring requeridoNombre de la variable — llave de
templateValues, ensnake_casenatural. -
labelstring puede ser nullEtiqueta legible. Si se omite, se deriva del nombre.
-
typestringTipo de dato (token opaco):
text,date,currency,textarea,select,number. -
requiredbooleanSi la variable es obligatoria.
-
defaultValuestring puede ser nullValor por default sugerido.
-
optionsarray de string puede ser nullOpciones válidas cuando
typeesselect. -
rolestring puede ser nullRol del firmante al que se asigna, o
null. -
pageinteger puede ser nullPágina 1-based del hueco.
-
rectobjeto puede ser nullRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
rect.widthnumber requeridoAncho en porcentaje de la página.
-
rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
slotsarray de objetos puede ser nullHuecos adicionales del mismo dato.
Ver 2 atributos hijos
-
slots[].pageinteger requeridoPágina 1-based.
-
slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
mergeIntostring puede ser nullNombre de una variable existente. Si se envía, este dato se une a ella como
slots. -
filledByenum puede ser nullQuién llena el dato:
owner(el remitente) u omítelo.signerresponde 422SIGNER_VARIABLE_NOT_SUPPORTED: lo que llena el firmante va en un campo del formulario PDF asignado a su rol (roleen los campos de la plantilla;roleosigneren los del documento).Valores:
ownersigner
Devuelve
201 La variable creada.
Ver los 4 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla a la que pertenecen las variables (
tmpl_…). -
dataarray de objetos requeridoArreglo de variables de la plantilla.
Ver 14 atributos hijos
-
data[].namestring requeridoNombre de la variable — es la llave que usas en
templateValues. Se mantiene ensnake_casenatural, nunca se cameliza. -
data[].labelstring requeridoEtiqueta legible para mostrar.
-
data[].typestringTipo de dato (token opaco
snake_case):text,date,currency,textarea,select,number. -
data[].requiredbooleanSi la variable es obligatoria.
-
data[].defaultValuestring puede ser nullValor por default sugerido.
-
data[].optionsarray de string puede ser nullOpciones válidas cuando
typeesselect. -
data[].rolestring puede ser nullRol del firmante inferido del prefijo con doble guion bajo, o
nullsi la variable no está ligada a un rol. -
data[].sourcestring puede ser nullOrigen del dato (token opaco):
form_field,jinja,signalomanual. -
data[].pageinteger puede ser nullPágina 1-based del hueco principal.
-
data[].rectobjeto puede ser nullRectángulo del hueco principal, en % del papel.
Ver 4 atributos hijos
-
data[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
data[].slotsarray de objetos puede ser nullHuecos adicionales cuando el mismo dato aparece más de una vez.
Ver 2 atributos hijos
-
data[].slots[].pageinteger requeridoPágina 1-based.
-
data[].slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
data[].filledBystring puede ser nullQuién llena el dato:
owner(el remitente) onull. Por compatibilidad puede traersignero el nombre de un rol; esos valores ya no se aceptan en el body de crear, editar ni confirmar. -
data[].snippetstring puede ser nullTexto exacto del hueco detectado en el análisis (
______,[CIUDAD]), onull. -
data[].analysisIndexinteger puede ser nullÍndice del candidato del análisis del que se confirmó esta variable, o
nullsi se creó a mano.
-
-
hasMorebooleanSiempre
falseen esta colección acotada.
Update template variable
PATCH /templates/{template_id}/variables
Cambia una variable por su name: renombrarla (newName), su etiqueta, tipo o su posición. Los documentos ya creados no cambian. filledBy solo acepta owner: todas las variables las llena el remitente, y signer responde 422.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
namestring requeridoNombre actual de la variable a modificar.
-
newNamestring puede ser nullNuevo nombre. Conserva el slot original.
-
labelstring puede ser nullNueva etiqueta legible.
-
typestring puede ser nullNuevo tipo de dato (token opaco).
-
requiredboolean puede ser nullSi la variable es obligatoria.
-
defaultValuestring puede ser nullNuevo valor por default.
-
optionsarray de string puede ser nullNuevas opciones cuando
typeesselect. -
rolestring puede ser nullNuevo rol, o
nullpara desligarlo. -
pageinteger puede ser nullNueva página 1-based del hueco.
-
rectobjeto puede ser nullNuevo rectángulo, en % del papel.
Ver 4 atributos hijos
-
rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
rect.widthnumber requeridoAncho en porcentaje de la página.
-
rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
slotsarray de objetos puede ser nullReemplaza los huecos adicionales.
Ver 2 atributos hijos
-
slots[].pageinteger requeridoPágina 1-based.
-
slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
mergeIntostring puede ser nullNombre de otra variable. Si se envía, esta se une a ella como
slots. -
filledByenum puede ser nullQuién llena el dato:
owner(el remitente) u omítelo.signerresponde 422SIGNER_VARIABLE_NOT_SUPPORTED: lo que llena el firmante va en un campo del formulario PDF asignado a su rol (roleen los campos de la plantilla;roleosigneren los del documento).Valores:
ownersigner
Devuelve
200 La variable ya actualizada.
Ver los 4 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla a la que pertenecen las variables (
tmpl_…). -
dataarray de objetos requeridoArreglo de variables de la plantilla.
Ver 14 atributos hijos
-
data[].namestring requeridoNombre de la variable — es la llave que usas en
templateValues. Se mantiene ensnake_casenatural, nunca se cameliza. -
data[].labelstring requeridoEtiqueta legible para mostrar.
-
data[].typestringTipo de dato (token opaco
snake_case):text,date,currency,textarea,select,number. -
data[].requiredbooleanSi la variable es obligatoria.
-
data[].defaultValuestring puede ser nullValor por default sugerido.
-
data[].optionsarray de string puede ser nullOpciones válidas cuando
typeesselect. -
data[].rolestring puede ser nullRol del firmante inferido del prefijo con doble guion bajo, o
nullsi la variable no está ligada a un rol. -
data[].sourcestring puede ser nullOrigen del dato (token opaco):
form_field,jinja,signalomanual. -
data[].pageinteger puede ser nullPágina 1-based del hueco principal.
-
data[].rectobjeto puede ser nullRectángulo del hueco principal, en % del papel.
Ver 4 atributos hijos
-
data[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
data[].slotsarray de objetos puede ser nullHuecos adicionales cuando el mismo dato aparece más de una vez.
Ver 2 atributos hijos
-
data[].slots[].pageinteger requeridoPágina 1-based.
-
data[].slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
data[].filledBystring puede ser nullQuién llena el dato:
owner(el remitente) onull. Por compatibilidad puede traersignero el nombre de un rol; esos valores ya no se aceptan en el body de crear, editar ni confirmar. -
data[].snippetstring puede ser nullTexto exacto del hueco detectado en el análisis (
______,[CIUDAD]), onull. -
data[].analysisIndexinteger puede ser nullÍndice del candidato del análisis del que se confirmó esta variable, o
nullsi se creó a mano.
-
-
hasMorebooleanSiempre
falseen esta colección acotada.
Delete template variable
DELETE /templates/{template_id}/variables
Quita una variable de la plantilla (por name). Los documentos ya creados conservan sus valores.
Parámetros
-
template_idstring ruta requerido -
namestring query requeridoNombre de la variable a quitar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
204 Variable eliminada.
Confirm variable candidates
POST /templates/{template_id}/variables:confirm
Convierte candidatos del análisis en variables de la plantilla, con nombre final y etiqueta. Todas las variables las llena el remitente: filledBy solo acepta owner, y signer responde 422. Lo que captura el firmante va en un campo del formulario PDF (guía Formularios PDF). Cuando no quedan candidatos pendientes la plantilla pasa a readiness: "ready".
Parámetros
-
template_idstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
allboolean puede ser nulltruepara confirmar todos los candidatos no-firma del análisis vigente. -
itemsarray de objetos puede ser nullCandidatos puntuales a confirmar, por índice.
Ver 6 atributos hijos
-
items[].indexinteger requeridoÍndice (1-based) del candidato del análisis a confirmar.
-
items[].namestring puede ser nullNombre a usar en vez del propuesto por el análisis.
-
items[].labelstring puede ser nullEtiqueta legible a usar en vez de la propuesta.
-
items[].typestring puede ser nullTipo de dato (token opaco) a usar en vez del propuesto.
-
items[].kindenum puede ser nulldataodecision. Un candidatosignaturenunca puede confirmarse aquí.Valores:
datadecision -
items[].filledBystring puede ser nullQuién llena el dato:
owner(el remitente) onull.signero el nombre de un rol responden 422SIGNER_VARIABLE_NOT_SUPPORTED: lo que llena el firmante va en un campo del formulario PDF asignado a su rol (roleen los campos de la plantilla;roleosigneren los del documento).
-
Devuelve
200 Las variables de la plantilla después de confirmar.
Ver los 4 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
templateIdstring requeridoLa plantilla a la que pertenecen las variables (
tmpl_…). -
dataarray de objetos requeridoArreglo de variables de la plantilla.
Ver 14 atributos hijos
-
data[].namestring requeridoNombre de la variable — es la llave que usas en
templateValues. Se mantiene ensnake_casenatural, nunca se cameliza. -
data[].labelstring requeridoEtiqueta legible para mostrar.
-
data[].typestringTipo de dato (token opaco
snake_case):text,date,currency,textarea,select,number. -
data[].requiredbooleanSi la variable es obligatoria.
-
data[].defaultValuestring puede ser nullValor por default sugerido.
-
data[].optionsarray de string puede ser nullOpciones válidas cuando
typeesselect. -
data[].rolestring puede ser nullRol del firmante inferido del prefijo con doble guion bajo, o
nullsi la variable no está ligada a un rol. -
data[].sourcestring puede ser nullOrigen del dato (token opaco):
form_field,jinja,signalomanual. -
data[].pageinteger puede ser nullPágina 1-based del hueco principal.
-
data[].rectobjeto puede ser nullRectángulo del hueco principal, en % del papel.
Ver 4 atributos hijos
-
data[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
data[].slotsarray de objetos puede ser nullHuecos adicionales cuando el mismo dato aparece más de una vez.
Ver 2 atributos hijos
-
data[].slots[].pageinteger requeridoPágina 1-based.
-
data[].slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
data[].slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
data[].slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
data[].slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
data[].slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
data[].filledBystring puede ser nullQuién llena el dato:
owner(el remitente) onull. Por compatibilidad puede traersignero el nombre de un rol; esos valores ya no se aceptan en el body de crear, editar ni confirmar. -
data[].snippetstring puede ser nullTexto exacto del hueco detectado en el análisis (
______,[CIUDAD]), onull. -
data[].analysisIndexinteger puede ser nullÍndice del candidato del análisis del que se confirmó esta variable, o
nullsi se creó a mano.
-
-
hasMorebooleanSiempre
falseen esta colección acotada.
Get template analysis
GET /templates/{template_id}/analysis
Solo plantillas DOCX: el análisis vigente de huecos (______, [CIUDAD], {{ }}) con sus candidatos a variable. Los candidatos no son variables hasta que los confirmas con POST …/variables:confirm; pendingCandidates en la plantilla dice cuántos faltan.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 El análisis con sus candidatos.
Ver los 8 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_analysis"Siempre
"template_analysis". -
templateIdstring requeridoLa plantilla analizada (
tmpl_…). -
statusenum requeridoEstado de la lectura:
reading,doneofailed.Valores:
readingdonefailed -
stagesarray de objetosEtapas de la lectura, para polling.
Ver 3 atributos hijos
-
stages[].namestring requeridoNombre de la etapa de lectura.
-
stages[].statusstring requeridoEstado de la etapa:
pending,running,doneofailed. -
stages[].detailstring puede ser nullDetalle legible de la etapa, o
null.
-
-
candidatesarray de objetosCandidatos detectados.
Ver 17 atributos hijos
-
candidates[].namestring puede ser nullNombre propuesto, o
nullsi aún no se nombra. -
candidates[].labelstring puede ser nullEtiqueta humana tal como aparece en el documento, o
null. -
candidates[].kindstring requeridoTipo de candidato (token opaco):
data,decisionosignature. -
candidates[].typestring puede ser nullTipo de dato inferido:
text,date,amount,rfc,email,phone,number,booleanochoice, onull. -
candidates[].confidencenumber puede ser nullConfianza 0–1, o
null. -
candidates[].whystring puede ser nullPor qué se propuso este candidato.
-
candidates[].slotsarray de objetosHuecos donde aparece el candidato.
Ver 2 atributos hijos
-
candidates[].slots[].pageinteger requeridoPágina 1-based.
-
candidates[].slots[].rectobjeto requeridoRectángulo del hueco, en % del papel.
Ver 4 atributos hijos
-
candidates[].slots[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
candidates[].slots[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
candidates[].slots[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
candidates[].slots[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
-
candidates[].indexinteger puede ser nullÍndice estable del candidato dentro del análisis, o
null. -
candidates[].paragraphinteger puede ser nullPárrafo (0-based) del DOCX fuente, o
nullsi no aplica. -
candidates[].runinteger puede ser nullRun (0-based) dentro del párrafo, o
nullsi no aplica. -
candidates[].startinteger puede ser nullOffset de inicio (0-based) dentro del párrafo del DOCX fuente, o
null. -
candidates[].endinteger puede ser nullOffset final (0-based) dentro del párrafo del DOCX fuente, o
null. -
candidates[].neighborTextstring puede ser nullTexto vecino o de párrafo alrededor de la señal detectada, o
null. -
candidates[].snippetstring puede ser nullTexto exacto del hueco detectado (p.ej.
______,[CIUDAD],( X )), onull. -
candidates[].optionsarray de string puede ser nullOpciones válidas cuando
kindesdecision, onull. -
candidates[].filledBystring puede ser nullQuién lo llena según el análisis:
owneronull. Si trae otro valor, no lo reenvíes enfilledByal confirmar: las variables son solo del remitente. -
candidates[].labeledBystring puede ser nullllmcuando el etiquetador IA ajustó nombre/tipo/parte;nullsi sólo el lector determinista.
-
-
partsarray de objetosPartes detectadas de las líneas de firma.
Ver 4 atributos hijos
-
parts[].indexinteger puede ser nullÍndice estable de la parte, o
null. -
parts[].textstring requeridoTexto de la parte detectada en una línea de firma.
-
parts[].paragraphinteger puede ser nullPárrafo (0-based) del DOCX fuente, o
nullsi no aplica. -
parts[].runinteger puede ser nullRun (0-based) dentro del párrafo, o
nullsi no aplica.
-
-
pageCountintegerNúmero de páginas del documento fuente.
Validate template values
POST /templates/{template_id}/validate-values
Comprueba un mapa templateValues contra las variables de la plantilla sin crear nada y sin consumir crédito. Es el ensayo previo de Create document: te dice qué falta antes de que el documento exista.
Por qué importa: si emites el documento sin una variable requerida, la respuesta es 422 y no se crea nada — pero ya escribiste el formulario, ya pediste los datos al usuario y ya armaste el request. Validar en cada guardado te deja corregir mientras el usuario sigue en la pantalla.
Siempre responde 200, incluso cuando el mapa está mal: es un diagnóstico, no un rechazo. Lo que te dice si puedes crear el documento es el campo valid.
La respuesta separa tres cosas que no pesan igual:
- errors — falta una variable requerida, llegó vacía, o mandaste una llave que la plantilla no declara (UNKNOWN_VARIABLE, casi siempre un typo como nombre_completoo). Cualquiera de ellos pone valid en false. POST /v3/templates/{id}/documents rechaza con 422 estos mismos errores; POST /v3/documents rechaza la requerida que falta, pero descarta sin imprimir las llaves desconocidas.
- warnings — el valor no cuadra con el type de la variable. Nunca bloquean. El type no se declara: se infiere del nombre, así que una variable llamada forma_de_pago se marca currency aunque contenga texto. Trátalos como una pista para revisar, no como un error.
- ignored — las mismas llaves desconocidas, en una lista simple de nombres. Cada una aparece también en errors con UNKNOWN_VARIABLE.
Parámetros
-
template_idstring ruta requeridoID de la plantilla (
tmpl_…) contra la que se validan los valores. -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
templateValuesobjeto (llave → valor)El mismo mapa que mandarías en
templateValuesal crear el documento. Las llaves son losnamede las variables y conservan su forma natural (nombre_completo): nunca se camelizan, porque son datos del negocio y no campos del protocolo.
Devuelve
200 El diagnóstico del mapa (object: "template_values_validation"), con valid y los tres bloques. 200 no significa que el mapa esté bien — revisa valid.
Ver los 7 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_values_validation"Siempre
"template_values_validation". -
templateIdstring requeridoLa plantilla contra la que se validó (
tmpl_…). -
validboolean requeridofalseúnicamente cuando hayerrors, incluida una llave que la plantilla no declara. Loswarningsno invalidan: eltypede una variable se infiere de su nombre, así que no puede bloquear. -
errorsarray de objetosProblemas que SÍ romperían el documento: una variable requerida ausente o vacía saldría como un espacio en blanco en el contrato, y una llave que la plantilla no declara (
UNKNOWN_VARIABLE) no se imprimiría en ningún lado.POST /v3/templates/{id}/documentsrechaza con 422 estos mismos errores.Ver 3 atributos hijos
-
errors[].namestring requeridoLa variable a la que se refiere el hallazgo.
-
errors[].codestring requeridoCódigo estable del hallazgo:
MISSING_REQUIRED_VARIABLE(falta),EMPTY_REQUIRED_VARIABLE(llegó vacía),UNKNOWN_VARIABLE(la plantilla no declara esa llave) oTYPE_MISMATCH_HINT(el valor no cuadra con el tipo inferido). -
errors[].detailstring requeridoExplicación legible de qué pasaría si envías así el documento.
-
-
warningsarray de objetosAvisos que no bloquean. El
typede cada variable se infiere de su nombre (monto_…→currency), no está declarado en la plantilla; por eso un desajuste se avisa pero nunca rechaza.Ver 3 atributos hijos
-
warnings[].namestring requeridoLa variable a la que se refiere el hallazgo.
-
warnings[].codestring requeridoCódigo estable del hallazgo:
MISSING_REQUIRED_VARIABLE(falta),EMPTY_REQUIRED_VARIABLE(llegó vacía),UNKNOWN_VARIABLE(la plantilla no declara esa llave) oTYPE_MISMATCH_HINT(el valor no cuadra con el tipo inferido). -
warnings[].detailstring requeridoExplicación legible de qué pasaría si envías así el documento.
-
-
ignoredarray de stringLlaves que mandaste y la plantilla no declara — normalmente un typo. Cada una sale también en
errorsconUNKNOWN_VARIABLE:POST /v3/templates/{id}/documentslas rechaza con 422 yPOST /v3/documentslas descarta sin imprimirlas.
Get signing layout (legacy)
GET /templates/{template_id}/signing
El layout de firma del modo anterior a los formularios: cajas de firma/iniciales/fecha por rol sobre una plantilla DOCX. Para plantillas PDF con formulario usa …/fields y …/roles, que lo sustituyen.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Roles con sus cajas.
Ver los 4 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_signing"Siempre
"template_signing". -
templateIdstring requeridoLa plantilla (
tmpl_…). -
rolesarray de objetosRoles y sus campos de firma.
Ver 2 atributos hijos
-
roles[].namestring requeridoNombre del rol (ej.
proveedor). -
roles[].fieldsarray de objetosCampos de firma de este rol.
Ver 8 atributos hijos
-
roles[].fields[].roleNamestring requeridoNombre del rol al que pertenece este campo.
-
roles[].fields[].kindenum requeridoTipo de campo:
signature,initials,name,dateovobo.Valores:
signatureinitialsnamedatevobo -
roles[].fields[].pageinteger requeridoPágina 1-based.
-
roles[].fields[].rectobjeto requeridoRectángulo del campo, en % del papel.
Ver 4 atributos hijos
-
roles[].fields[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
roles[].fields[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
roles[].fields[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
roles[].fields[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
roles[].fields[].ruleenum puede ser nullRegla de expansión.
all_pagesreplica el campo en cada página.Valores:
all_pages -
roles[].fields[].anchorstring puede ser nullTexto ancla en el PDF, o
nullsi va por coordenadas. -
roles[].fields[].expectinteger puede ser nullCuántas coincidencias del ancla se esperan.
-
roles[].fields[].onMissenum puede ser nullQué hacer si el ancla no aparece:
failoignore.Valores:
failignore
-
-
Replace signing layout (legacy)
PUT /templates/{template_id}/signing
Reemplaza el layout de firma completo (roles y cajas) de una plantilla DOCX. Declarativo. En plantillas PDF con formulario usa PUT …/fields.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
rolesarray de objetos requeridoDisposición completa de roles y campos. Reemplaza la anterior.
Ver 2 atributos hijos
-
roles[].namestring requeridoNombre del rol (ej.
proveedor). -
roles[].fieldsarray de objetosCampos de firma de este rol.
Ver 8 atributos hijos
-
roles[].fields[].roleNamestring requeridoNombre del rol al que pertenece este campo.
-
roles[].fields[].kindenum requeridoTipo de campo:
signature,initials,name,dateovobo.Valores:
signatureinitialsnamedatevobo -
roles[].fields[].pageinteger requeridoPágina 1-based.
-
roles[].fields[].rectobjeto requeridoRectángulo del campo, en % del papel.
Ver 4 atributos hijos
-
roles[].fields[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
roles[].fields[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
roles[].fields[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
roles[].fields[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
roles[].fields[].ruleenum puede ser nullRegla de expansión.
all_pagesreplica el campo en cada página.Valores:
all_pages -
roles[].fields[].anchorstring puede ser nullTexto ancla en el PDF, o
nullsi va por coordenadas. -
roles[].fields[].expectinteger puede ser nullCuántas coincidencias del ancla se esperan.
-
roles[].fields[].onMissenum puede ser nullQué hacer si el ancla no aparece:
failoignore.Valores:
failignore
-
-
Devuelve
200 El layout tal como quedó.
Ver los 4 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_signing"Siempre
"template_signing". -
templateIdstring requeridoLa plantilla (
tmpl_…). -
rolesarray de objetosRoles y sus campos de firma.
Ver 2 atributos hijos
-
roles[].namestring requeridoNombre del rol (ej.
proveedor). -
roles[].fieldsarray de objetosCampos de firma de este rol.
Ver 8 atributos hijos
-
roles[].fields[].roleNamestring requeridoNombre del rol al que pertenece este campo.
-
roles[].fields[].kindenum requeridoTipo de campo:
signature,initials,name,dateovobo.Valores:
signatureinitialsnamedatevobo -
roles[].fields[].pageinteger requeridoPágina 1-based.
-
roles[].fields[].rectobjeto requeridoRectángulo del campo, en % del papel.
Ver 4 atributos hijos
-
roles[].fields[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
roles[].fields[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
roles[].fields[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
roles[].fields[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
roles[].fields[].ruleenum puede ser nullRegla de expansión.
all_pagesreplica el campo en cada página.Valores:
all_pages -
roles[].fields[].anchorstring puede ser nullTexto ancla en el PDF, o
nullsi va por coordenadas. -
roles[].fields[].expectinteger puede ser nullCuántas coincidencias del ancla se esperan.
-
roles[].fields[].onMissenum puede ser nullQué hacer si el ancla no aparece:
failoignore.Valores:
failignore
-
-
List documents to seed the signing layout (legacy)
GET /templates/{template_id}/signing/documents
Documentos ya firmados creados desde esta plantilla, de los que puedes copiar las cajas de firma con POST …/signing:from-document.
Parámetros
-
template_idstring ruta requerido -
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Devuelve
200 Colección de documentos candidatos.
Ver los 2 atributos de la respuesta
-
objectstring, siempre "list"Siempre
"list". -
dataarray de objetos requeridoDocumentos candidatos, más recientes primero.
Ver 6 atributos hijos
-
data[].documentIdstring requeridoEl documento candidato (
doc_…). -
data[].namestring requeridoNombre del documento.
-
data[].completedAtstring (fecha-hora ISO 8601) puede ser nullCuándo terminó de firmarse, o
nullsi el documento aún no se completa (puede seguir listado si ya trae una disposición de firma original). -
data[].fieldCountinteger requeridoCampos de firma originales que tiene este documento.
-
data[].roleNamesarray de stringRoles con campos de firma en este documento.
-
data[].matchableboolean requeridotruesi el documento nació exactamente de esta plantilla (mapeo directo por rol);falsesi solo es comparable por archivo/hash.
-
Import signing layout from a document (legacy)
POST /templates/{template_id}/signing:from-document
Copia las cajas de firma (por rol) de un documento firmado al layout de la plantilla DOCX. El equivalente para formularios PDF es POST …/fields:from-document.
Parámetros
-
template_idstring ruta requerido -
Idempotency-Keystring headerClave única (UUID v4) que vuelve idempotente el POST: un reintento con la misma clave repite la respuesta original en lugar de volver a crear, cobrar o notificar.
-
AllSign-Versionenum headerFecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400
UNSUPPORTED_API_VERSION.Valores:
2026-07-11
Cuerpo de la petición
-
documentIdstring puede ser nullDocumento (
doc_…) del que se copian los campos de firma. -
consolidatebooleanSi es
true, consolida campos de documentos comparables en vez de copiar uno solo.
Devuelve
200 El layout tal como quedó.
Ver los 7 atributos de la respuesta
-
livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
objectstring, siempre "template_signing_import"Siempre
"template_signing_import". -
templateIdstring requeridoLa plantilla destino (
tmpl_…). -
matchedCountinteger requeridoCampos que encajaron.
-
totalCountinteger requeridoCampos considerados.
-
signingobjeto requeridoDisposición resultante.
Ver 4 atributos hijos
-
signing.livemodeboolean requeridotrueen entornolive,falseentest/dev(marca de agua, sin validez legal). -
signing.objectstring, siempre "template_signing"Siempre
"template_signing". -
signing.templateIdstring requeridoLa plantilla (
tmpl_…). -
signing.rolesarray de objetosRoles y sus campos de firma.
Ver 2 atributos hijos
-
signing.roles[].namestring requeridoNombre del rol (ej.
proveedor). -
signing.roles[].fieldsarray de objetosCampos de firma de este rol.
Ver 8 atributos hijos
-
signing.roles[].fields[].roleNamestring requeridoNombre del rol al que pertenece este campo.
-
signing.roles[].fields[].kindenum requeridoTipo de campo:
signature,initials,name,dateovobo.Valores:
signatureinitialsnamedatevobo -
signing.roles[].fields[].pageinteger requeridoPágina 1-based.
-
signing.roles[].fields[].rectobjeto requeridoRectángulo del campo, en % del papel.
Ver 4 atributos hijos
-
signing.roles[].fields[].rect.xnumber requeridoX izquierdo, porcentaje del ancho de la página.
-
signing.roles[].fields[].rect.ynumber requeridoY superior, porcentaje del alto de la página.
-
signing.roles[].fields[].rect.widthnumber requeridoAncho en porcentaje de la página.
-
signing.roles[].fields[].rect.heightnumber requeridoAlto en porcentaje de la página.
-
-
signing.roles[].fields[].ruleenum puede ser nullRegla de expansión.
all_pagesreplica el campo en cada página.Valores:
all_pages -
signing.roles[].fields[].anchorstring puede ser nullTexto ancla en el PDF, o
nullsi va por coordenadas. -
signing.roles[].fields[].expectinteger puede ser nullCuántas coincidencias del ancla se esperan.
-
signing.roles[].fields[].onMissenum puede ser nullQué hacer si el ancla no aparece:
failoignore.Valores:
failignore
-
-
-
-
unmatchedarray de objetosCampos que no encajaron, con su diferencia.
Ver 4 atributos hijos
-
unmatched[].roleNamestring requeridoRol del campo que no encajó.
-
unmatched[].kindenum requeridoTipo del campo que no encajó.
Valores:
signatureinitialsnamedatevobo -
unmatched[].pageinteger requeridoPágina 1-based del campo que no encajó.
-
unmatched[].detailstring requeridoPor qué quedó fuera (posición distinta, rol sin pareja, etc.).
-