Participantes

Datos, variables y firma de los participantes de un contrato.

GET/api/contract/participant/{contractId}/{participantId}

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

  • contractIdstringobligatorio

    ID del contrato.

  • participantIdstringobligatorio

    ID del participante (participantid en las respuestas).

Respuestas

  • 200object
    Campos de la respuesta
    • editableobjectobligatorio
      6 campos
      • emailstringobligatorio
      • last_namestringobligatorio
      • namestringobligatorio
      • obligationstringobligatorio

        Tipo de persona: individual, legal o vacío.

      • phonestringobligatorio
      • representativestringobligatorio
    • informationobjectobligatorio
      9 campos
      • addressstringobligatorio
      • attachmentsnumberobligatorio

        Número de anexos.

      • geolocationstringobligatorio
      • ipstringobligatorio
      • labelstringobligatorio
      • signatureLinkstringobligatorio

        Enlace de firma mientras el participante tiene la firma pendiente.

      • signedAtstringobligatorio
      • statusstringobligatorio

        Estado del participante (p. ej. RECEIVED_TO_SIGN, SENT_SIGNED).

      • variablesnumberobligatorio

        Nú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

GET
/api/contract/participant/{contractId}/{participantId}
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"
}
POST/api/contract/participant/{contractId}/{participantId}

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

  • contractIdstringobligatorio

    ID del contrato.

  • participantIdstringobligatorio

    ID del participante (participantid en las respuestas).

Cuerpo application/json

  • customMessagestring

    Mensaje personalizado en la invitación. Requiere el privilegio SET_CUSTOM_MESSAGE.

  • emailstring

    Correo del participante.

  • last_namestring

    Apellidos (persona física).

  • linkExpirationDatestring

    Caducidad del enlace de firma (fecha ISO 8601). Es el único campo que se puede cambiar cuando el contrato ya no está en borrador.

  • namestring

    Nombre (persona física) o razón social (persona moral).

  • obligationstring

    Tipo de persona.

    Valores: individual, legal

  • phonestring

    Teléfono con prefijo internacional.

  • representativestring

    Representante legal (persona moral).

  • requestCreditBureauboolean

    Pide consulta al buró de crédito. Requiere el privilegio REQUEST_CREDIT_BUREAU.

  • requestIneboolean

    Pide foto de la identificación (INE).

  • requestLocationboolean

    Pide la ubicación al firmar. Requiere el privilegio REQUEST_MANDATORY_LOCATION.

  • requestOneTimePasswordboolean

    Pide un código de un solo uso al firmar. Requiere el privilegio REQUEST_ONE_TIME_PASSWORD.

  • requestVeridocboolean

    Pide verificación de identidad (Veridoc).

  • rfcstring

    RFC 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

POST
/api/contract/participant/{contractId}/{participantId}
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
}
GET/api/contract/pending/{contractId}

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

  • contractIdstringobligatorio

    ID 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

GET
/api/contract/pending/{contractId}
curl "https://enterprise-stage.api.trato.io/api/contract/pending/{contractId}" \
  -H "apikey: $TRATO_API_KEY"

Respuesta

{
  "success": true
}
GET/api/contract/variables/{contractId}

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

  • contractIdstringobligatorio

    ID del contrato.

Respuestas

  • 200object
    Campos de la respuesta
    • contractidstringobligatorio
    • createdAtstring (date-time)obligatorio
    • extraAttachmentsarray<object>
    • namestringobligatorio
    • participantsarray<object>obligatorio
      9 campos
      • attachmentsarray<object>
        8 campos
        • _idstringobligatorio
        • createdAtstring (date-time)
        • fileSizenumber
        • namestringobligatorio
        • requiredboolean
        • updatedAtstring (date-time)
        • urlstring
        • validatedboolean
      • emailstring

        Vacío hasta que se rellena el participante.

      • labelstringobligatorio

        Rol del participante en el contrato.

      • last_namestring

        Persona física.

      • namestringobligatorio
      • obligationstringobligatorio

        Tipo de persona: individual o legal.

      • participantidstringobligatorio

        ID del participante, para las llamadas /{participantId}.

      • representativestring

        Persona moral.

      • variablesobjectobligatorio

        Variables del participante, por su nombre de API (apiName).

        1 campo
        • {Cualquier nombre de clave}object
          3 campos
          • namestringobligatorio

            Nombre visible de la variable.

          • typestringobligatorio

            Tipo: text, number, date, image, dynamictable...

          • valueobjectobligatorio

            Valor 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

GET
/api/contract/variables/{contractId}
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": {}
    }
  ]
}
POST/api/contract/variables/{contractId}/{participantId}

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

  • contractIdstringobligatorio

    ID del contrato.

  • participantIdstringobligatorio

    ID del participante (participantid en 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 | object
    2 campos
    • headersarray<string>obligatorio
    • rowsarray<object>obligatorio
      1 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

POST
/api/contract/variables/{contractId}/{participantId}
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
}
POST/api/contracts/{contractId}/participants/{participantId}/change-email

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

  • contractIdstringobligatorio

    ID del contrato.

  • participantIdstringobligatorio

    ID del participante (participantid en las respuestas).

Cuerpo application/json

  • emailstring

    Nuevo correo.

  • lastNamestring

    Apellidos.

  • namestring

    Nombre o razón social.

  • obligationstring

    Tipo de persona.

    Valores: individual, legal

  • phonestring

    Nuevo teléfono.

  • representativestring

    Representante 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

POST
/api/contracts/{contractId}/participants/{participantId}/change-email
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
}
GET/api/contracts/{contractId}/participants/{participantId}/video

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

  • contractIdstringobligatorio

    ID del contrato.

  • participantIdstringobligatorio

    ID del participante (participantid en las respuestas).

Parámetros de consulta

  • redirectstring

    false: devuelve la URL en JSON en lugar de redirigir.

    Valores: false

Respuestas

  • 200Con `redirect=false`.
    Campos de la respuesta
    • expiresAtstring (date-time)obligatorio

      Cuándo caduca url; null si la URL no está firmada.

    • urlstringobligatorio

      URL de descarga del archivo.

  • 302Redirección a la URL de descarga (`Location`).
    Cabeceras de la respuesta
    • Locationstring

      URL 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

GET
/api/contracts/{contractId}/participants/{participantId}/video
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"
}
POST/api/sign-url/renew

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

  • urlstringobligatorio

    Enlace de firma que se quiere renovar (.../sign/{contractId}/{sesión}).

Respuestas

  • 200object
    Campos de la respuesta
    • successbooleanobligatorio
    • urlstringobligatorio

      Enlace 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

POST
/api/sign-url/renew
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"
}