¿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: trueyread_only_value: "...". - Quieres mostrar y bloquear los propios datos de perfil del destinatario (su correo electrónico, nombre, empresa, etc.) — configura
read_only: trueyformat_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
valueen 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 propiedadvalue — 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 camporead_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 vezrequired 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.filledpara reaccionar a medida que se completan los campos