Skip to main content
Firma te permite mostrarle a un firmante un valor antes de que abra el documento — ya sea un texto fijo que tú elijas, o un valor extraído automáticamente de los propios datos del destinatario (su correo electrónico, nombre, empresa, etc). Esta guía cubre las propiedades que controlan ese comportamiento y las que solo parecen hacerlo.
Problema conocido en la especificación: el esquema de campo documenta una propiedad de nivel superior prefilled_data con una enumeración de atributos del destinatario. El servidor la ignora silenciosamente — no tiene ningún efecto. La única propiedad que realmente autocompleta un campo con datos del destinatario es format_rules.prefilledData (camelCase, anidada dentro de format_rules), descrita más abajo. Si has probado prefilled_data y el campo volvió vacío, esta es la razón. La corrección de la especificación se está siguiendo por separado; mientras tanto, usa format_rules.prefilledData.

¿Qué propiedad necesito?

  • El firmante debe escribir su propio valor, y tú no necesitas tocarlo — no configures read_only. Simplemente posiciona el campo normalmente.
  • Quieres un valor fijo que nadie pueda editar (un número de contrato, un nombre de departamento, cualquier cosa que ya conozcas) — configura read_only: true y read_only_value: "...".
  • Quieres mostrar y bloquear los propios datos de perfil del destinatario (su correo electrónico, nombre, empresa, etc.) — configura read_only: true y format_rules: { prefilledData: "..." }.
  • Solo necesitas una etiqueta para identificar el campo más tarde (para tu propio control interno, o para hacer coincidir un campo al actualizar una solicitud de firma basada en una plantilla) — eso es variable_name. Nunca establece ni cambia lo que ve el firmante.
  • Estás leyendo un campo de vuelta (después de su creación, o después de la firma) y quieres el valor que realmente hay — lee value en la respuesta de la API.

Referencia de propiedades

read_only en sí mismo es solo un interruptor booleano: debe ser true para que read_only_value o format_rules.prefilledData surtan efecto. Un campo con read_only: false ignora ambos.

Creación de una solicitud de firma con campos precargados

Este ejemplo crea y envía un documento con dos campos bloqueados: una referencia de contrato estática, y el correo electrónico del destinatario extraído de su propio registro de destinatario.
recipient_id usa un id temporal (temp_1) aquí porque el destinatario está definido en la misma solicitud (creación basada en documento). Si estás agregando campos a una solicitud de firma existente o a una creada a partir de una plantilla, usa en su lugar el UUID real del destinatario.

Claves de prefilledData aceptadas

format_rules.prefilledData acepta estos atributos del destinatario: first_name, last_name, full_name, email, phone_number, company, title, street_address, city, state_province, postal_code, country También puedes hacer referencia a cualquier clave presente en el objeto custom_fields de un destinatario (la coincidencia no distingue mayúsculas de minúsculas) — configura esa clave al crear el destinatario, y luego haz referencia a ella de la misma manera:

Lectura de los valores de los campos

Cuando haces un GET de una solicitud de firma o listas sus campos, cada campo incluye una propiedad value — el valor real resuelto, ya sea que provenga de read_only_value, de datos precargados del destinatario, o de lo que escribió el firmante. final_value todavía aparece en las respuestas, pero es un alias en desuso; prefiere value en las integraciones nuevas.
El value de un campo precargado puede ser null hasta que se envíe la solicitud de firma — la resolución contra los datos del destinatario ocurre en el momento del envío, no en el momento de creación del campo.

Aspectos a tener en cuenta

variable_name es una etiqueta, no una fuente de datos

variable_name es una etiqueta orientada a la interfaz de usuario y un mecanismo de coincidencia usado al fusionar campos de una plantilla en una solicitud de firma — nunca se lee como la fuente de un valor mostrado. Establecer variable_name: "email" en un campo no precarga nada; para eso todavía necesitas format_rules.prefilledData. Trata variable_name puramente como un identificador que eliges para tu propia referencia.

Los firmantes no pueden anular campos de solo lectura o precargados

Si tu integración renderiza su propia interfaz de firma y envía los valores de los campos directamente, cualquier valor enviado para un campo read_only o precargado es rechazado del lado del servidor en lugar de aceptado silenciosamente — el envío del firmante se ignora para ese campo, y el intento se registra como un evento de seguridad. No dependas únicamente de ocultar estos campos del lado del cliente; el servidor lo aplica de forma independiente.

Los campos obligatorios precargados deben resolverse antes de poder enviar

Si un campo es a la vez required y precargado (o de solo lectura), la llamada /send de la solicitud de firma valida que realmente se haya resuelto un valor — desde read_only_value, desde datos del destinatario, o desde custom_fields. Si no se resuelve nada (por ejemplo, prefilledData hace referencia a una clave de custom_fields que el destinatario no tiene), el envío falla en la validación en lugar de enviar un documento con un campo obligatorio en blanco.

Próximos pasos

  • Envío de una Solicitud de Firma para conocer el flujo completo de creación de destinatarios y campos
  • Webhooks — suscríbete a signing_request.field.filled para reaccionar a medida que se completan los campos