Participantes
Datos, variables y firma de los participantes de un contrato.
Consultar un participante
Datos editables, estado y enlace de firma de un participante.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
participantIdstringobligatorioID del participante (
participantiden las respuestas).
Respuestas
- 200object
Campos de la respuesta
editableobjectobligatorio6 campos
emailstringobligatoriolast_namestringobligatorionamestringobligatorioobligationstringobligatorioTipo de persona:
individual,legalo vacío.phonestringobligatoriorepresentativestringobligatorio
informationobjectobligatorio9 campos
addressstringobligatorioattachmentsnumberobligatorioNúmero de anexos.
geolocationstringobligatorioipstringobligatoriolabelstringobligatoriosignatureLinkstringobligatorioEnlace de firma mientras el participante tiene la firma pendiente.
signedAtstringobligatoriostatusstringobligatorioEstado del participante (p. ej.
RECEIVED_TO_SIGN,SENT_SIGNED).variablesnumberobligatorioNúmero de variables.
participantidstringobligatorio
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl "https://enterprise-stage.api.trato.io/api/contract/participant/{contractId}/{participantId}" \
-H "apikey: $TRATO_API_KEY"Respuesta
{
"editable": {
"email": "string",
"last_name": "string",
"name": "string",
"obligation": "string",
"phone": "string",
"representative": "string"
},
"information": {
"address": "string",
"attachments": 0,
"geolocation": "string",
"ip": "string",
"label": "Arrendatario",
"signatureLink": "string",
"signedAt": "string",
"status": "string",
"variables": 0
},
"participantid": "string"
}Actualizar un participante
Datos y requisitos de firma de un participante de un contrato en borrador. Con el contrato ya enviado solo se puede cambiar linkExpirationDate.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
participantIdstringobligatorioID del participante (
participantiden las respuestas).
Cuerpo application/json
customMessagestringMensaje personalizado en la invitación. Requiere el privilegio SET_CUSTOM_MESSAGE.
emailstringCorreo del participante.
last_namestringApellidos (persona física).
linkExpirationDatestringCaducidad del enlace de firma (fecha ISO 8601). Es el único campo que se puede cambiar cuando el contrato ya no está en borrador.
namestringNombre (persona física) o razón social (persona moral).
obligationstringTipo de persona.
Valores:
individual,legalphonestringTeléfono con prefijo internacional.
representativestringRepresentante legal (persona moral).
requestCreditBureaubooleanPide consulta al buró de crédito. Requiere el privilegio REQUEST_CREDIT_BUREAU.
requestInebooleanPide foto de la identificación (INE).
requestLocationbooleanPide la ubicación al firmar. Requiere el privilegio REQUEST_MANDATORY_LOCATION.
requestOneTimePasswordbooleanPide un código de un solo uso al firmar. Requiere el privilegio REQUEST_ONE_TIME_PASSWORD.
requestVeridocbooleanPide verificación de identidad (Veridoc).
rfcstringRFC del participante.
signaturesarray<object>Firmas del participante.
Respuestas
- 200object
Campos de la respuesta
successbooleanobligatorio
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl -X POST "https://enterprise-stage.api.trato.io/api/contract/participant/{contractId}/{participantId}" \
-H "apikey: $TRATO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customMessage": "string",
"email": "ana@example.com",
"last_name": "García López",
"linkExpirationDate": "2026-12-31T23:59:59Z",
"name": "Ana",
"obligation": "individual",
"phone": "+525512345678",
"representative": "Luis Pérez",
"requestCreditBureau": true,
"requestIne": true,
"requestLocation": true,
"requestOneTimePassword": true,
"requestVeridoc": true,
"rfc": "GALA800101XXX",
"signatures": [
{}
]
}'Respuesta
{
"success": true
}Recordar a los firmantes pendientes
Vuelve a enviar la invitación a los participantes que aún no han firmado.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
Respuestas
- 200object
Campos de la respuesta
successbooleanobligatorio
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl "https://enterprise-stage.api.trato.io/api/contract/pending/{contractId}" \
-H "apikey: $TRATO_API_KEY"Respuesta
{
"success": true
}Consultar participantes y variables
Participantes del contrato con sus variables (por apiName) y anexos. Úsalo para saber qué variables rellenar.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
Respuestas
- 200object
Campos de la respuesta
contractidstringobligatoriocreatedAtstring (date-time)obligatorioextraAttachmentsarray<object>namestringobligatorioparticipantsarray<object>obligatorio9 campos
attachmentsarray<object>8 campos
_idstringobligatoriocreatedAtstring (date-time)fileSizenumbernamestringobligatoriorequiredbooleanupdatedAtstring (date-time)urlstringvalidatedboolean
emailstringVacío hasta que se rellena el participante.
labelstringobligatorioRol del participante en el contrato.
last_namestringPersona física.
namestringobligatorioobligationstringobligatorioTipo de persona:
individualolegal.participantidstringobligatorioID del participante, para las llamadas
/{participantId}.representativestringPersona moral.
variablesobjectobligatorioVariables del participante, por su nombre de API (
apiName).1 campo
{Cualquier nombre de clave}object3 campos
namestringobligatorioNombre visible de la variable.
typestringobligatorioTipo:
text,number,date,image,dynamictable...valueobjectobligatorioValor actual. Las tablas dinámicas devuelven
{headers, rows}.
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl "https://enterprise-stage.api.trato.io/api/contract/variables/{contractId}" \
-H "apikey: $TRATO_API_KEY"Respuesta
{
"contractid": "string",
"createdAt": "2026-01-01T00:00:00.000Z",
"extraAttachments": [
{}
],
"name": "string",
"participants": [
{
"attachments": [
{
"_id": "string",
"createdAt": "2026-01-01T00:00:00.000Z",
"fileSize": 0,
"name": "Identificación oficial",
"required": true,
"updatedAt": "2026-01-01T00:00:00.000Z",
"url": "string",
"validated": true
}
],
"email": "ana@example.com",
"label": "Arrendatario",
"last_name": "string",
"name": "Ana",
"obligation": "string",
"participantid": "string",
"representative": "string",
"variables": {}
}
]
}Rellenar variables
Da valor a las variables de un participante de un contrato en borrador.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
participantIdstringobligatorioID del participante (
participantiden las respuestas).
Cuerpo application/json
Variables del participante por su nombre de API (apiName): texto, número o booleano; las tablas dinámicas, como {headers, rows}; las imágenes, en Base64 (PNG o JPG).
{Cualquier nombre de clave}string | number | boolean | object2 campos
headersarray<string>obligatoriorowsarray<object>obligatorio1 campo
colsarray<string>obligatorio
Respuestas
- 200object
Campos de la respuesta
successbooleanobligatorio
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl -X POST "https://enterprise-stage.api.trato.io/api/contract/variables/{contractId}/{participantId}" \
-H "apikey: $TRATO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domicilio": "Av. Reforma 222, CDMX",
"productos": {
"headers": [
"Concepto",
"Cantidad"
],
"rows": [
{
"cols": [
"Laptop",
"2"
]
}
]
},
"rfc": "GALA800101XXX"
}'Respuesta
{
"success": true
}Cambiar el firmante
Sustituye los datos de contacto de un participante que aún no ha firmado (contrato enviado). Los campos que no se envían se conservan.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
participantIdstringobligatorioID del participante (
participantiden las respuestas).
Cuerpo application/json
emailstringNuevo correo.
lastNamestringApellidos.
namestringNombre o razón social.
obligationstringTipo de persona.
Valores:
individual,legalphonestringNuevo teléfono.
representativestringRepresentante legal (persona moral).
Respuestas
- 200object
Campos de la respuesta
successbooleanobligatorio
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl -X POST "https://enterprise-stage.api.trato.io/api/contracts/{contractId}/participants/{participantId}/change-email" \
-H "apikey: $TRATO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "ana.garcia@example.com",
"lastName": "García López",
"name": "Ana",
"obligation": "individual",
"phone": "+525512345678",
"representative": "string"
}'Respuesta
{
"success": true
}Descargar el vídeo de un participante
Enlace estable al vídeo de la firma de un participante: redirige a una URL de descarga recién firmada.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Parámetros de ruta
contractIdstringobligatorioID del contrato.
participantIdstringobligatorioID del participante (
participantiden las respuestas).
Parámetros de consulta
redirectstringfalse: devuelve la URL en JSON en lugar de redirigir.Valores:
false
Respuestas
- 200Con `redirect=false`.
Campos de la respuesta
expiresAtstring (date-time)obligatorioCuándo caduca
url;nullsi la URL no está firmada.urlstringobligatorioURL de descarga del archivo.
- 302Redirección a la URL de descarga (`Location`).
Cabeceras de la respuesta
LocationstringURL de descarga.
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
- 404Documento desconocido.
Petición
curl "https://enterprise-stage.api.trato.io/api/contracts/{contractId}/participants/{participantId}/video" \
-H "apikey: $TRATO_API_KEY"Respuesta
{
"expiresAt": "2026-01-01T00:00:00.000Z",
"url": "string"
}Renovar un enlace de firma
Devuelve un enlace de firma vigente a partir de uno caducado.
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Cuerpo application/json
urlstringobligatorioEnlace de firma que se quiere renovar (
.../sign/{contractId}/{sesión}).
Respuestas
- 200object
Campos de la respuesta
successbooleanobligatoriourlstringobligatorioEnlace de firma vigente (el mismo si no había caducado).
- 400Petición no válida: parámetros, contrato inexistente o en un estado que no lo permite.
- 401Credencial ausente, caducada o de otro entorno.
- 403Al usuario le falta un privilegio (p. ej. API_ACCESS).
Petición
curl -X POST "https://enterprise-stage.api.trato.io/api/sign-url/renew" \
-H "apikey: $TRATO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://clm-stage.trato.io/sign/65f1c2a9e4b0a1b2c3d4e5f6/2b1c..."
}'Respuesta
{
"success": true,
"url": "string"
}