SET: Nueva solicitud de firma
Este servicio permite crear una nueva solicitud de firma (SET) para uno o varios documentos, que pueden ser firmados por uno o varios destinatarios.
Solicitud (Request)
Método y URL POST https://{urlbase}/documents/api/v3/set
Cabeceras (Headers)
| Clave | Valor |
|---|---|
| Content-Type | application/json |
El cuerpo de la solicitud de firma debe contener un objeto JSON
JSON del SET(Solicitud de firma)
A continuación se describen las claves utilizadas en el cuerpo en la solicitud de firma.
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
groupCode |
string | ✅ Sí | Código del grupo o entidad que identifica el contexto del SET. |
title |
string | No | Título descriptivo de la solicitud. |
description |
string | No | Descripción detallada de la solicitud. |
expires |
integer (epoch ms) | No | Fecha de expiración en milisegundos desde época Unix. |
retryTime |
integer | No | Intervalo de tiempo (en días) entre recordatorios automáticos. |
retryCount |
integer | No | Número máximo de recordatorios automáticos. |
recipients |
array[Recipient] | No | Lista de destinatarios o firmantes. |
customization |
object | ✅ Sí | Personalización de notificaciones (correo, SMS, etc.). |
messages |
array[Message] | ✅ Sí | Documentos que conforman el conjunto de firma. |
metadataList |
array[Param] | No | Metadatos asociados al SET. |
externalCode |
string | No | Código externo para correlación con sistemas externos. |
externalStatus |
string | No | Estado externo de control o sincronización. |
userCode |
string | No | Código del usuario que envía la solicitud. |
autoFinalize |
boolean | No | Si true, el proceso se finaliza automáticamente al completar todas las firmas. |
callbackMails |
string | No | Correos electrónicos para recibir notificación y/o documento final. |
callbackURL |
string | No | URL a la que se enviará un POST al cambiar el estado del SET. |
callbackAuthorization |
string | No | Token o credencial usada en el callback. |
callbackRedirectURL |
string | No | URL externa de redirección al finalizar el proceso. |
callbackRedirectURLTargetWindow |
string | No | Ventana destino para la redirección (ej. _blank, _self). |
workflowCode |
string | No | Flujo de firmantes que sustituye la configuración de una lista de recipients, siendo reutilizable en nuestras peticiones.Para más información de como crear un flujo y como obtener el código necesario, pulsa el siguiente enlace. |
Clave Recipient
Define a cada uno de los firmantes o destinatarios de la solicitud.
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
key |
string | ✅ Sí | Identificador único del destinatario o firmante. |
mail |
string | No | Correo electrónico del firmante. |
mailCc |
string | No | Correo en copia (CC). |
mailBcc |
string | No | Correo en copia oculta (BCC). |
phone |
string | No | Teléfono de contacto con prefijo internacional. |
name |
string | No | Nombre completo del destinatario. |
id |
string | No | Documento de identidad del firmante (DNI, cédula, pasaporte, etc.). |
order |
integer | No | Orden en el flujo de firma (para procesos secuenciales). |
presential |
boolean | No | Indica si el firmante es presencial (firma en punto físico). |
userCode |
string | No | Código de usuario en Viafirma. |
deviceCode |
string | No | Código del dispositivo asociado al usuario. |
appCode |
string | No | Código de la aplicación de Viafirma asociada. |
notificationType |
string | No | Tipo de notificación (MAIL, MAIL_SMS, SMS, NONE). |
callbackType |
string | No | Canal del callback al firmante (correo, SMS, etc.). |
smsType |
string | No | Tipo de SMS o canal (SMS, WHATSAPP, SMS_WHATSAPP). |
label |
string | No | Etiqueta descriptiva o alias del firmante. |
optional |
boolean | No | Si true, su firma es opcional (firma solidaria). |
Clave Message
Contiene la información del documento a firmar.
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
document |
object (Document) | ✅ Sí | Documento principal a firmar. |
metadataList |
array[Param] | No | Metadatos asociados al documento. |
policies |
array[Policy] | No | Políticas de firma aplicadas al documento. |
Clave Document
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
templateType |
string | ✅ Sí | Define el tipo de origen del documento (uploaded, url, pdf, etc.). |
templateReference |
string | Depende del tipo | Referencia del documento: token de carga o URL. |
templateCode |
string | No | Código de una plantilla predefinida en Viafirma. |
items |
array | No | Valores dinámicos para los campos de una plantilla. |
formRequired |
boolean | No | Indica si el formulario debe completarse antes de firmar. |
watermarkText |
string | No | Texto a mostrar como marca de agua (solo para previsualización). |
policyCode |
string | No | Código de política preconfigurada en Viafirma. |
Respuestas (Responses)
Ejemplos de solicitud de firma.
A continuación se muestra un ejemplo para crear una solicitud con dos documentos y dos firmantes. Esta solicitud usa una plantilla de configuración del documento. Puedes ver como configurar tu propia plantilla en la web de Viafirma Documents usando el siguiente enlace.
{
"groupCode": "MY_GROUP_001",
"title": "Acuerdo de servicio - Lote 123",
"description": "Solicitud de firma con dos documentos y dos firmantes",
"recipients": [
{
"key": "signer01",
"name": "Ana Pérez",
"mail": "[email protected]",
"phone": "+34123456789"
},
{
"key": "signer02",
"name": "Luis García",
"mail": "[email protected]",
"phone": "+34987654321"
}
],
"customization": {
"requestMailSubject": "Contrato listo para firmar",
"requestMailBody": "Hola {{recipient.name}}, revisa y firma el documento.",
"requestSmsBody": "Por favor firma tu contrato en el enlace recibido"
},
"messages": [
{
"document": {
"templateType": "pdf",
"templateCode": "TEMPLATE_CONTRATO_V1"
},
"metadataList": [
{ "key": "orderId", "value": "123-XYZ" }
],
"policies": [
{
"signatures": [
{ "type": "CLIENT", "recipientKey": "signer01" },
{ "type": "CLIENT", "recipientKey": "signer02" }
]
}
]
},
{
"document": {
"templateType": "pdf",
"templateCode": "ANEXO_01"
},
"policies": [
{
"signatures": [
{ "type": "CLIENT", "recipientKey": "signer01" },
{ "type": "CLIENT", "recipientKey": "signer02" }
],
"attachments": []
}
]
}
]
}
Respuesta Exitosa (Success)
Código de estado: 200 OK
Cuerpo de la respuesta:
{
"code": "string",
"status": "string",
"messages": [
{
"code": "string",
"status": "string",
"policies": []
}
]
}
Respuesta de Error (Error)
Código de estado: 4xx o 5xx (distinto de 200)
Cuerpo de ejemplo:
{
"code": 999,
"type": "String",
"message": "Descripción del error",
"trace": "Detalles del error"
}
Para consultar el listado de errores, visita el siguiente enlace.
En el siguiente enlace puedes ver ejemplos de las diferentes solicitudes de fima que puedes realizar y las respuestas que debes recibir.
Notas y buenas prácticas
- Para firma desatendida (server-side) se utiliza el mismo endpoint, ajustando las políticas a tipo
SERVER. - Se recomienda usar
callbackURLpara recibir notificaciones automáticas de cambio de estado. También podrás consultar el estado de un callbackURL e incluso realizar un reenvío en caso de error. - Para pruebas rápidas, puede usarse
templateType: "url"apuntando a un PDF público. - Si se sube un archivo al entorno sandbox, primero se solicita el enlace (
GET /uploads/link/pdf), se realiza elPUTdel archivo y luego se usa el token devuelto comotemplateReference.
results matching ""
No results matching ""