Contratos

Se tienen múltiples opciones a partir de las cuales se puede generar un contrato dentro de TRATO:

  • Plantilla de TRATO:

    Documento diseñado dentro de la plataforma de TRATO y que es accesible a través de un identificador único de plantilla.

  • Documento PDF:

    Cualquier documento en formato .pdf que podrá ser firmado y estampado digitalmente.

  • Documento de Microsoft Word:

    Cuando se carga un archivo .docx, el sistema lo convierte automáticamente a PDF. Sin embargo, pueden presentarse diferencias en el resultado, como una reducción en el número de páginas o variaciones en el formato.

    Esto puede deberse a fuentes no disponibles en el servidor, diferencias en márgenes, estilos o elementos no compatibles con el motor de conversión.

    Recomendación: para asegurar la fidelidad del documento, se recomienda cargar directamente archivos en formato PDF.

Dependiendo de la opción deseada para generar un contrato, variarán los parámetros requeridos para ser enviados al endpoint.

POSThttps://enterprise.api.trato.io/api/create/contract

Crear

  • Name
    source
    Type
    string
    Description

    Indica la fuente del contrato (template/document).

  • Name
    templateid
    Type
    string
    Description

    Se deberá de indicar el identificador único de la plantilla a utilizar. Independientemente de la fuente del contrato (plantilla o documento). Dicho identificador consta de 25 caracteres y es único, lo puedes encontrar ingresando a https://enterprise.app.trato.io en la sección de 'Mis Plantillas' o bien, podrá ser proporcionado por el Área de Soporte a Clientes de TRATO.

  • Name
    document.type
    Type
    string
    Description

    En caso de que el parámetro source sea document, se deberá de indicar si el origen del contrato será un PDF o un Documento de Microsoft Word. (pdf/word)

  • Name
    document.data
    Type
    string
    Description

    En caso de que el parámetro source sea document, se deberá de enviar el documento codificado en una cadena en Base64, omitiendo los headers que indican el MIME Type del archivo.


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica el estatus de la creación del contrato (true/false).

  • Name
    contractid
    Type
    string
    Description

    Identificador único del contrato recién creado. Este identificador deberá ser almacenado ya que servirá para realizar acciones adicionales sobre dicho contrato.

Request

POST
/api/create/contract
curl -G https://enterprise.api.trato.io/api/create/contract \
  -H Authorization: Bearer {TOKEN_AUTH} \
  -d "
        {
            'source': 'document',
            'document':
            {
                'type': 'word',
                'data': 'UEsDBBQABgAIABB7/kwViNHzWwEAAKEFAA.....'
            }
        }"

Response

{
    'success': true,
    'contractid': "5b66a320d37f14195bfe34b0"
}

POSThttps://enterprise.api.trato.io/api/v2/create/contract

Crear V2

Permite crear los documentos en formato PDF o WORD en una sola llamada.


GEThttps://enterprise.api.trato.io/api/contract/status/{:contractID}

Estatus

Retorna el estatus actual del contrato indicado. Se deberá enviar como parte de la URL, el identificador único de contrato que se desea verificar.

Atributos de respuesta

  • Name
    name
    Type
    string
    Description

    Indica el nombre del contrato

  • Name
    status
    Type
    string
    Description

    Indica el estatus de del contrato. Los valores posibles son:

    • '' (borrador)
    • 'RECEIVED_FILLED' (pendiente de validar)
    • 'SENT_TO_FILL' (pendiente de completar)
    • 'NEGOTIATION' (en negociación)
    • 'APPROVED' (aprobado)
    • 'SENT_TO_SIGN' (pendiente de firmar)
    • 'EXPIRED' (vencido)
    • 'AUTHORIZE' (pendiente de completar)
    • 'RECEIVED_SIGNED' (firmado)
    • 'NEGOTIATED' (negociado)
    • 'CANCELED' (cancelado)
    • 'SENT_TO_DOWNLOAD' (enviado a participantes)
    • 'FINALIZED' (finalizado)
    • 'SENT_TO_ACCEPT' (enviado a aceptación)
    • 'SENT_SIGNED' (firmado)
    • 'REJECTED' (rechazado)
  • Name
    createdAt
    Type
    string
    Description

    La fecha de creación del contrato.

  • Name
    pdf
    Type
    string
    Description

    La URL de acceso al contrato en formato PDF. En caso de no estar firmado o enviado para firma, retornará vacio ('').

  • Name
    signedAt
    Type
    string
    Description

    La fecha de firma del contrato. En caso de no estar firmado retornara vacio ('').

  • Name
    externalId
    Type
    string
    Description

    Campo de identificación externo.

Request

GET
/api/contract/status/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/status/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
    name: 'name',
    status: 'AUTHORIZE',
    createdAt: "2019-09-24T16:08:44.786Z",
    pdf: '',
    signedAt: '',
    externalId: "ID001"
}


POSThttps://enterprise.api.trato.io/api/contract/configuration/{:contractID}

Configurar

Configuración del contrato de acuerdo a los parámetros especificados. Este paso se debe realizar antes de la firma del contrato.

Atributos

  • Name
    name
    Type
    string
    Description

    Nombre del contrato

  • Name
    language
    Type
    string
    Description

    Idioma en el cual se realizará el envío de notificaciones. Las opciones disponibles son (es: Español/en: Inglés).

  • Name
    validationRequired
    Type
    string
    Description

    Indica si la firma del documento requerirá validación previa. Las opciones disponibles son (true/false).

  • Name
    hasShield3AutoValidation
    Type
    string
    Description

    Indica si el video de declaración sera validado automáticamente con una imagen. Las opciones disponibles son (true/false).

  • Name
    negotiate
    Type
    string
    Description

    Indica si el documento será negociable durante el proceso de la firma. Las opciones disponibles son (true/false).

  • Name
    allowAttachments
    Type
    string
    Description

    Permitir a los participantes añadir anexos adicionales a los configurados en la plantilla. Las opciones disponibles son (true/false).

  • Name
    stampNom
    Type
    string
    Description

    Incluir la constancia NOM-151 como parte del contrato. Las opciones disponibles son (true/false).

  • Name
    notificationType
    Type
    string
    Description

    Tipo de notificaciones a enviar en cada evento del contrato. Las opciones disponibles son (email/sms/email-sms).

  • Name
    signatureType
    Type
    string
    Description

    Tipo de firma con la cual se firmará el contrato. Las opciones disponibles son (autograph: Firma Electrónica/certificate: Firma Electrónica Avanzada/none: Sin Firma).

  • Name
    blockchainType
    Type
    string
    Description

    Tipo de blockchain que se utilizará al firmar el contrato. Las opciones disponibles son (basic: con Blockchain/none: Sin Blockchain).

  • Name
    password
    Type
    string
    Description

    Especifica si el documento se protegerá con contraseña. Esta deberá ser compartida a todos los participantes para que puedan acceder al mismo. Las opciones disponibles son (true/false). En caso de ser true, TRATO generará una contraseña aleatoria en automático.

  • Name
    expiryUndefined
    Type
    string
    Description

    Especifica si el documento tiene vigencia o no. Las opciones disponibles son (true/false). En caso de ser false, es necesario configurar expiryStartDate y expiryEndDate.

  • Name
    expiryStartDate
    Type
    string
    Description

    Determina la fecha de inicio de expiración del contrato. El formato de fecha debe ser: 'YYYY-MM-DD'. Ejemplo: '2020-01-01'

  • Name
    expiryEndDate
    Type
    string
    Description

    Determina la fecha de término de expiración del contrato. El formato de fecha debe ser: 'YYYY-MM-DD'. Ejemplo: '2021-01-01'

  • Name
    ownerSelfSign
    Type
    string
    Description

    En caso de seleccionar la opción true: Si el dueño del contrato tiene una firma configurada en su perfil, es uno de los participantes del contrato y no tiene variables por llenar, el contrato se firmará automáticamente por este participante. Las opciones disponibles son (true/false).

  • Name
    externalId
    Type
    string
    Description

    Campo de identificación externo. Tipo 'cadena'


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la configuración del contrato fue exitosa (true/false).

  • Name
    error
    Type
    string
    Description

    En caso de existir algún error, se indicará en este parámetro.

Request

POST
/api/contract/configuration/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/configuration/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH} \
-d "{
        name: 'Nombre del contrato',
        language: 'es',
        validationRequired: false,
        negotiate: true,
        allowAttachments: false,
        stampNom: true,
        notificationType: 'email',
        signatureType: 'autograph',
        password: 'C0ntRa5eÑ4',
        expiryUndefined: true,
        expiryStartDate: '2021-01-01',
        expiryEndDate: '2022-01-01',
        ownerSelfSign: false,
        webhook: 'https://test.url.com' (deprecated),
        externalId : 'ID001'
    }"

Response

{
  'success': true,
  'error': ''
}

GEThttps://enterprise.api.trato.io/api/contract/variables/{:contractID}

Obtener Variables/Información del Contrato

Devuelve las variables con las cuales fue configurado el contrato. Tomando como base este objecto, será posible realizar la actualización de variables.

Atributos de respuesta

  • Name
    contractid
    Type
    string
    Description

    Indica el identificador del contrato sobre el cual se muestra la información.

  • Name
    name
    Type
    string
    Description

    Dato de referencia que indica el nombre del contrato.

  • Name
    participants
    Type
    string
    Description

    Contiene un arreglo de objetos correspondiente a cada uno de los participantes involucrados en el contrato.

  • Name
    participants.participantid
    Type
    string
    Description

    Indica el identificador único del participante. Este valor será utilizado al realizar alguna actualización de los datos del participante o bien de la asignación de valores para las variables disponibles.

  • Name
    participants.name
    Type
    string
    Description

    Indica el nombre del participante.

  • Name
    participants.label
    Type
    string
    Description

    Indica la etiqueta del participante con la cual se configuró por default.

  • Name
    participants.variables
    Type
    string
    Description

    Objeto que contiene las variables asociadas al participante. El nombre del atributo para cada elemento dentro del objeto, corresponde al identificador con el cual se podrá hacer referencia a la variable al momento de actualizar su valor.

  • Name
    participants.variables.name
    Type
    string
    Description

    Nombre con el cual se hace referencia a la variable dentro del documento.

  • Name
    participants.variables.value
    Type
    string
    Description

    Valor actual de la variable.

  • Name
    participants.variables.type*
    Type
    string
    Description

    Esta propiedad solo será devuelta si la variable está configurada como tabla dinámica y tendrá el valor dynamictable.

Request

GET
/api/contract/variables/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/variables/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'contractid': "5b6bc8e0364cd702ec0b9a0d",
  'name': 'Nuevo contrato',
  'participants': [
      {
          'participantid': "5b6bc8e0813f75cc2a201a57",
          'name': 'Jose Morelos',
          'label': 'La Parte',
          'variables': {
              'p1_nombre': {
                  'name': '',
                  'value': ''
              }
          },
          attachments': {
            '_id':"5b6bc8e04d97a4b84c733cb3"
          }
      },
      {
          'participantid': "5b6bc8e04d97a4b84c733ca0",
          'name': 'Juan Perez',
          'label': 'La Contraparte',
          'variables': {
              'p2_nombre': {
                  'name': '',
                  'value': '',
                  'type: '', // Esta propiedad será devuelta únicamente para variables tipo tabla dinámica
              }
          }
      }
  ]
}

POSThttps://enterprise.api.trato.io/api/contract/configuration/{:contractID}

Establecer Variables

Permite actualizar las variables de un participante a partir de su identificador así como de la referencia de cada una de las variables a modificar.

Variables tipo texto

Se deberá enviar un objeto en el cual, los nombres de cada uno de los atributos, corresponde a la referencia de la variable obtenida a través del endpoint _[GET] https://enterprise.api.trato.io/api/contract/variables/{:contractID}_. Así mismo, será necesario especificar en la URL el identificador del contrato sobre el cual se está trabajando así como el identificador del participante al cual pertenecen las variables enviadas.

Authorization: Bearer {TOKEN_AUTH}
[POST] https://enterprise.api.trato.io/api/contract/variables/{:contractID}/{:participantID}

        {
          'p1_nombre': 'Juan',
          'p1_apellidos': 'Perez'
        }

Variables tipo imagen

Se deberán tener las mismas consideraciones que para las variables de tipo texto. Sin embargo, las variables de tipo imagen, vendrán especificadas en la respuesta de la llamada al endpoint _[GET] https://enterprise.api.trato.io/api/contract/variables/{:contractID}_ con una propiedad extra llamada type y tendrá el valor de image. Para este tipo de variables será necesario especificar el nombre de la variable, y como valor se deberá enviar el archivo en base 64.

Authorization: Bearer {TOKEN_AUTH}
[POST] https://enterprise.api.trato.io/api/contract/variables/{:contractID}/{:participantID}

        {
          'p1_imagen': 'iVBORw0KGgoAAAANSUhEUgAAAyAAAAH0CAYAAADFQEl4AAAgAE...',
        }

Variables tipo tabla dinámica

Se deberán tener las mismas consideraciones que para las variables de tipo texto. Sin embargo, las variables de tipo tabla dinámica, vendrán especificadas en la respuesta de la llamada al endpoint GET con una propiedad extra llamada type y tendrá el valor de dynamictable. Para este tipo de variables será necesario especificar el nombre de la variable, y como valor se deberá enviar un objeto con la estructura:

Request

POST
/api/create/contract
    {headers: [string , ...], rows:[ {cols:[string, ...] }, {cols:[string, ...] }, ... ]}

Atributos

  • Name
    headers (Encabezados de la tabla)
    Type
    string
    Description

    Es un arreglo de cadenas de texto.

  • Name
    rows (Filas)
    Type
    string
    Description

    Es un arreglo de objetos tipo cols.

  • Name
    cols (Columnas)
    Type
    string
    Description

    Son un arreglo de cadenas de texto.


Dentro del contrato se obtendrá una tabla que se verá de la siguiente manera:

Encabezado 1Encabezado 2Encabezado 3Encabezado 4
Columna 1 Fila 1Columna 2 Fila 1Columna 3 Fila 1Columna 4 Fila 1
Columna 1 Fila 2Columna 2 Fila 2Columna 3 Fila 2Columna 4 Fila 2

Nota: Si se desea que la tabla no aparezca en el contrato, es necesario enviar el nombre de la variable seguido por un objeto vacio:

Ejemplo

    { 'p1_tabla': {} }

Todas las llamadas a este endpoint, generarán una respuesta de la siguiente manera:

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la configuración del contrato fue exitosa (true/false).

  • Name
    error
    Type
    string
    Description

    En caso de existir algún error, se indicará en este parámetro.

Request

POST
/api/contract/variables/{:contractID}/{:participantID}
curl -G https://enterprise.api.trato.io/api/contract/variables/{:contractID}/{:participantID} \
-H Authorization: Bearer {TOKEN_AUTH} \
 -d "{
    'p1_tabla': {
            'headers': [
                'Encabezado 1...',
                'Encabezado 2...',
                'Encabezado 3...',
                'Encabezado 4...',
                ...
            ],
            'rows': [
                {
                    'cols': [
                        'Columna 1 Fila 1...',
                        'Columna 2 Fila 1...',
                        'Columna 3 Fila 1...',
                        'Columna 4 Fila 1...',
                        ...
                    ]
                },
                {
                    'cols': [
                        'Columna 1 Fila 2...',
                        'Columna 2 Fila 2...',
                        'Columna 3 Fila 2...',
                        'Columna 4 Fila 2...',
                        ...
                    ]
                },
                ...
            ]
    }
}"

Response

{
  "success": true,
  "error": ""
}

GEThttps://enterprise.api.trato.io/api/contract/participant/{:contractID}/{:participantID}

Obtener Participante

Permite consultar la información correspondiente a un participante del contrato.

Atributos de respuesta

  • Name
    participantid
    Type
    string
    Description

    Indica el identificador único del participante.

  • Name
    editable
    Type
    string
    Description

    Indica los campos que pueden ser editables y muestra los valores actuales.

  • Name
    editable.name
    Type
    string
    Description

    Nombre del participante

  • Name
    editable.email
    Type
    string
    Description

    Correo electrónico del participante.

  • Name
    editable.phone
    Type
    string
    Description

    Número celular del participante.

  • Name
    editable.obligation
    Type
    string
    Description

    Indica el tipo de persona del participante (Física: individual / Moral: legal).

  • Name
    editable.representative
    Type
    string
    Description

    En caso de que el participante sea Persona Moral, indicará el nombre del representante legal.

  • Name
    information
    Type
    string
    Description

    Indica los campos que son únicamente de referencia y no podrán ser editados.

  • Name
    information.label
    Type
    string
    Description

    Indica la etiqueta del participante con la cual se configuró por default.

  • Name
    information.variables
    Type
    string
    Description

    Número de variables que el participante tiene asociadas.

  • Name
    information.attachments
    Type
    string
    Description

    Número de anexos que el participante tiene asociados.

  • Name
    information.status
    Type
    string
    Description

    Estatus actual del participante dentro del flujo del contrato.

  • Name
    information.address
    Type
    string
    Description

    Dirección en la cual se encuentra el participante.

  • Name
    information.geolocation
    Type
    string
    Description

    Posición geográfica (latitud/longitud) en la cual el participante firmó el contrato. (Disponible únicamente cuando el contrato ha sido firmado).

  • Name
    information.ip
    Type
    string
    Description

    Dirección ip del equipo en el cual el participante firmó el contrato. (Disponible únicamente cuando el contrato ha sido firmado).

  • Name
    information.signedAt
    Type
    string
    Description

    Fecha en la cual el participante firmó el contrato. (Disponible únicamente cuando el contrato ha sido firmado).

  • Name
    information.signatureLink
    Type
    string
    Description

    Enlace único por participante del contrato en el cual podrán acceder a visualizar el contrato. (Disponible únicamente cuando el contrato ha sido enviado).

Request

GET
/api/contract/participant/{:contractID}/{:participantID}
curl -G https://enterprise.api.trato.io/api/contract/participant/{:contractID}/{:participantID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
    'participantid': "5b6bc8e0813f75cc7a201a57",
    'editable': {
        'name': 'Juan Perez',
        'email': 'correo@trato.io,
        'phone': "5555555555",
        'representative': '',
        'obligation': 'individual'
    },
    'information': {
        'label': 'La Parte',
        'variables': 1,
        'attachments': 1,
        'status': '',
        'address': '',
        'geolocation': {
        'latitude': 19.4341,
        'longitude': -99.1280
        },
        'ip': "200.100.50.25",
        'signedAt': "2018-08-14T07:05:38.391Z",
        'signatureLink': 'http://localhost:8000/sign/5b6bc8e0364cd702ef0b9a6d/eyJhbGciOiJIUzI1NiIsAR5cCI6IkpXVCJ9.eyJfaWQiOiI1YjZiYzhlMDgxM2Y3NWNjN2EyMDFhNTciLCJlbWFpbCI6Imt1cnR5YmFpbkBob3RtYWlsLmNvbSIsIm5hbWUiOiJDcmlzdGlhbiBIdXJ0YWRvIFJvbWVybyIsImluc3RhbnQiOnRydWUsImNoYW5uZWwiOiJwcml2YXRlLTViNmJjOGUwODEzZjc1Y2M3YTIwMWE1NyIsImlhdCI6MTUzNDIzMDI4OH0.GCL9eWDu9_pzjM5-nuWIMT2ip1EpZBuPPOuwBPoSS4Is'
    }
}

POSThttps://enterprise.api.trato.io/api/contract/attachments/{:contractID}/{:participantID}

Agregar Anexo a Participante

Permite agregar un anexo al participante.

Atributos

  • Name
    name
    Type
    string
    Description

    Nombre del anexo.

  • Name
    filename
    Type
    string
    Description

    Nombre del archivo.

  • Name
    validated
    Type
    string
    Description

    Indica si el anexo ha sido validado o no. (true/false) default: false.

  • Name
    required
    Type
    string
    Description

    Indica si el anexo es requerido para la firma del contrato o no. (true/false) default: false.

  • Name
    document
    Type
    string
    Description

    El parametro document es un objeto compuesto por:

    • type: Tipo del archivo. Los valores aceptados son pdf y docx(este último será convertido a PDF)
    • data: Se deberá de enviar el documento codificado en una cadena en Base64.

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el anexo se agregó exitosamente (true/false).

  • Name
    attachmentid
    Type
    string
    Description

    El Id del anexo.

Request

POST
/api/contract/attachments/{:contractID}/{:participantID}
curl -G https://enterprise.api.trato.io/api/contract/attachments/{:contractID}/{:participantID} \
-H Authorization: Bearer {TOKEN_AUTH} \
-d "{
        'name': 'Nombre Anexo',
        'filename':'IFE.pdf',
        'validated': true,
        'required': false,
        'document': {
            'type': 'pdf',
            'data':'UEsDBBQABgAIABB7/kwViNHzWwEAAKEFAA.....'
        }
    }"

Response

{
  'success': true,
  'attachmentid': "5c05fd2c31053054f1553b97"
}

POSThttps://enterprise.api.trato.io/api/contract/participant/{:contractID}/{:participantID}

Actualizar Participante

Permite actualizar la información básica de un participante.

Atributos

  • Name
    name
    Type
    string
    Description

    Nombre del participante.

  • Name
    email
    Type
    string
    Description

    Correo electrónico del participante.

  • Name
    phone
    Type
    string
    Description

    Número celular del participante.

  • Name
    rfc
    Type
    string
    Description

    RFC del participante.

  • Name
    customMessage
    Type
    string
    Description

    Mensaje personalizado del participante.

  • Name
    requestVeridoc
    Type
    string
    Description

    Pedir validación de INE con foto.

  • Name
    requestIne
    Type
    string
    Description

    Pedir validación de INE.

  • Name
    requestLocation
    Type
    string
    Description

    Pedir geolocalización.

  • Name
    requestOneTimePassword
    Type
    string
    Description

    Pedir contraseña de un solo uso.

  • Name
    obligation
    Type
    string
    Description

    Indica el tipo de persona del participante (Física: individual / Moral: legal).

  • Name
    representative
    Type
    string
    Description

    En caso de que el participante sea Persona Moral, indicará el nombre del representante legal.

  • Name
    selfie
    Type
    string
    Description

    En caso de que el "hasShield3AutoValidation" sea activado, se deberá mandar una imagen en base64 en este parametro.

  • Name
    linkExpirationDate
    Type
    string
    Description

    Configura una fecha limite en la que el participante podrá ingresar al contrato. Formato:Fecha (ISO DATE).


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la actualización del participante fue exitosa (true/false).

  • Name
    error
    Type
    string
    Description

    En caso de existir algún error, se indicará en este parámetro.

Request

POST
/api/contract/attachments/{:contractID}/{:participantID}
curl -G https://enterprise.api.trato.io/api/contract/participant/{:contractID}/{:participantID} \
-H Authorization: Bearer {TOKEN_AUTH} \
-d "{
        'name': 'Juan Perez',
        'email': 'correo@trato.io',
        'phone': '5555555555',
        'representative': '',
        "requestVeridoc": false,
        "requestIne": false,
        "requestLocation": false,
        'obligation': 'individual'
        'linkExpirationDate': '2019-11-28T20:27:11.976Z'
    }"

Response

{
  'success': true,
  'error': ''
}

POSThttps://enterprise.api.trato.io/api/contract/send/{:contractID}

Enviar a Firma

Una vez configurado adecuadamente el contrato, permitirá el envío a firma a cada uno de los participantes involucrados en el contrato. Este endpoint realizará una validación de la configuración del contrato, en caso de que algún parámetro o configuración no sea el adecuado, se notificará el detalle del error.

Atributos

  • Name
    showSignLinks
    Type
    string
    Description

    Indica si se desea obtener la liga de firma de los participantes como parte de la respuesta (true /false).

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la actualización del participante fue exitosa (true/false).

  • Name
    error
    Type
    string
    Description

    En caso de existir algún error, se indicará en este parámetro.

Request

POST
/api/contract/send/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/send/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true,
  'error': ''
}

Response (En caso de enviar el parametro en true, la llamada devolverá la siguiente respuesta)

{
   'success': true,
   contract: {
       participants: [{
           participantid: "5b423ba99d70c024fd8e81aa",
           signUrl: 'https://enterprise.app.trato.io/sign/5b423ba99d70c024fd8e81aa/JWT...'
       }]
   }
}

POSThttps://enterprise.api.trato.io/api/contract/documents/{:contractID}

Obtener Documentos Firmados

Posterior a la firma de un contrato, se podrán obtener los documentos firmados:

  • Contrato Firmado. Documento en formato PDF que incluye el contrato, anexos y document trail.
  • Constancia NOM 151. Documento en formato PDF que contiene los sellos electrónicos de la constancia de preservación de documentos electrónicos. (Sólo si se especificó en la configuración del contrato).
  • Videos de blindaje 3 Video de declaración de firma de cada participante en formato .webm

A dicha consulta, pueden añadirse diferentes querystrings (cadenas de consultas).

  • Name
    partial
    Type
    string
    Description

    Para pedir documentos parcialmente firmados (true/false).


Response attributes

  • Name
    contractid
    Type
    string
    Description

    Identificador único del contrato.

  • Name
    name
    Type
    string
    Description

    Nombre del contrato.

  • Name
    documents.signed_contract
    Type
    string
    Description

    URL del archivo PDF que contiene el contrato firmado.

  • Name
    documents.signed_certificate
    Type
    string
    Description

    URL del archivo PDF que contiene la constancia NOM 151 (Sólo si se especificó en la configuración inicial del contrato).

Request

GET
/api/contract/documents/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/documents/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Request con filtros

GET
/api/contract/documents/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/documents/{:contractID}?partial=true \
-H Authorization: Bearer {TOKEN_AUTH}

Response

    {
      'contractid': "5c05fd2c31053054f1553b97",
      'name': 'Contrato de Prestación de Servicios (Firmado)',
      'documents': {
        'signed_contract': 'https://uploads.trato.io/aa220-f77a-11e8-87a0-43a354fd2e17.pdf',
        'signed_certificate': 'https://uploads.trato.io/f77a-aa220-43a354fd2e17-87a0-11e8.pdf'
      },
      'participants':[{
        video: 'https://video.trato.io/video.webm',
        participantid: "5d04fd2c31053054f1661b99",
        email: 'prueba@trato.io'
      }]
    }


POSThttps://enterprise.api.trato.io/api/contracts/{:contractId}/confidential-attachments

Agregar Anexo Confidencial

Atributos

  • Name
    name
    Type
    string
    Description

    Nombre del anexo.

  • Name
    filename
    Type
    string
    Description

    Nombre del archivo.

  • Name
    validated
    Type
    string
    Description

    Indica si el anexo ha sido validado o no. (true/false) default: false.

  • Name
    required
    Type
    string
    Description

    Indica si el anexo es requerido para la firma del contrato o no. (true/false) default: false.

  • Name
    document
    Type
    string
    Description

    El parametro document es un objeto compuesto por:

    • type: Tipo del archivo. Los valores aceptados son pdf y docx(este último será convertido a PDF)
    • data: Se deberá de enviar el documento codificado en una cadena en Base64.

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el anexo se agregó exitosamente (true/false).

  • Name
    attachmentid
    Type
    string
    Description

    El Id del anexo.

Request

POST
/api/contracts/{:contractId}/confidential-attachments
curl -G https://enterprise.api.trato.io/api/contracts/{:contractId}/confidential-attachments \
-H Authorization: Bearer {TOKEN_AUTH} \
-d "{
        'name': 'Nombre Anexo',
        'filename':'IFE.pdf',
        'validated': true,
        'required': false,
        'document': {
            'type': 'pdf',
            'data':'UEsDBBQABgAIABB7/kwViNHzWwEAAKEFAA.....'
        }
    }"

Response

{
  'success': true,
  'attachmentid': "5c05fd2c31053054f1553b97"
}

DELETEhttps://enterprise.api.trato.io/api/contracts/{:contractId}/confidential-attachments/{:attachmentId}

Eliminar Anexo a Participante

Permite eliminar un anexo confidencial

Atributos

  • Name
    contractId
    Type
    string
    Description

    Id del contrato.

  • Name
    attachmentId
    Type
    string
    Description

    Id del anexo a eliminar.


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el anexo se eliminió exitosamente (true/false).

  • Name
    error
    Type
    string
    Description

    Indica si hubo un errorr al eliminar el anexo.

Request

DELETE
/api/contracts/{:contractId}/confidential-attachments/{:attachmentId}
curl -G https://enterprise.api.trato.io/api/contracts/{:contractId}/confidential-attachments/{:attachmentId} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true,
  'error': ""
}

GEThttps://enterprise.api.trato.io/api/list/contracts

Enlistar Contratos

Para consultar los contratos generados, basta con generar la siguiente llamada.

A dicha consulta, pueden añadirse diferentes querystrings (cadenas de consultas) para filtrar los contratos

Atributos

  • Name
    statusContract
    Type
    string
    Description

    Indica el estatus de del contrato. Los valores posibles son:

    • '' (borrador)
    • 'RECEIVED_FILLED' (pendiente de validar)
    • 'SENT_TO_FILL' (pendiente de completar)
    • 'NEGOTIATION' (en negociación)
    • 'APPROVED' (aprobado)
    • 'SENT_TO_SIGN' (pendiente de firmar)
    • 'EXPIRED' (vencido)
    • 'AUTHORIZE' (pendiente de completar)
    • 'RECEIVED_SIGNED' (firmado)
    • 'NEGOTIATED' (negociado)
    • 'CANCELED' (cancelado)
    • 'SENT_TO_DOWNLOAD' (enviado a participantes)
    • 'FINALIZED' (finalizado)
    • 'SENT_TO_ACCEPT' (enviado a aceptación)
    • 'SENT_SIGNED' (firmado)
    • 'REJECTED' (rechazado)
  • Name
    dateStart
    Type
    string
    Description

    Para filtrar por la fecha de cración los contratos. Fecha de creación minima del intervalo de contratos listados.

  • Name
    dateEnd
    Type
    string
    Description

    Para filtrar por la fecha de cración de los contratos. Fecha de creación máxima del intervalo de contratos listados.

  • Name
    emailParticipant
    Type
    string
    Description

    Para filtrar por el email de un participante.

  • Name
    statusParticipant
    Type
    string
    Description

    Para filtrar por el estado de los participantes.

  • Name
    participantVariables
    Type
    string
    Description

    Para filtrar por el nombre y valor exacto de las variables de los participantes de un contrato. Se puede filtrar por una o múltiples variables, haciendo uso de la nomenclatura nombre-valor de la variable, como en la siguiente nomenclatura: key1 var1;key2 var2;key3 var3

  • Name
    templateId
    Type
    string
    Description

    Para filtrar por plantilla.

Request

GET
/api/list/contracts
curl -G https://enterprise.api.trato.io/api/list/contracts \
-H Authorization: Bearer {TOKEN_AUTH}

Request con filtros

GET
/api/list/contracts
curl -G https://enterprise.api.trato.io/api/list/contracts?statusContract=status&dateStart=2018-01-26T20:57:27.182Z&dateEnd=2018-01-26T20:57:27.182Z&emailParticipant=email&statusParticipant=statusparticipant&participantVariables=key1|value1;key2|value2;key3|value3 \
-H Authorization: Bearer {TOKEN_AUTH}

Response

[
    {
        'createdAt': "2018-01-26T20:57:27.182Z",
        'name': "Contrato de Prueba",
        '_id': "5a6b96379efc240bca9b2fa5",
        'status': 'SENT_TO_DOWNLOAD',
        'externalId': "ID001"
    },
    {
        'createdAt': "2018-07-09T06:07:37.349Z",
        'name': 'Contrato Formato',
        '_id': "5b423ba99d70c024fd8e81aa",
        'status': 'FINALIZED'
    },
    {
        'createdAt': "2018-07-28T15:32:08.778Z",
        'name': 'Contrato de Prestación de Servicios',
        '_id': "5b5c8c786072482f26cfd5b1",
        'status': '',
        'externalId': "ID001"
    }
]

GEThttps://enterprise.api.trato.io/api/contract/pending/{:contractID}

Envío de recordatorio

Para enviar un recordatorio a los participantes que faltan de firmar un contrato, basta con generar la siguiente llamada. Los participantes pendientes de firmar recibirán una notificación mediane un email de recordatorio.

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica el recordatorio se envió exitosamente (true/false)

Request

GET
/api/contract/pending/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/pending/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

POSThttps://enterprise.api.trato.io/api/contract/archive/{:contractID}

Archivar contrato

Para archivar un contrato, es necesario hacer una llamada tipo POST al endpoint:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el contrato se archivó exitosamente (true/false)

Request

POST
/api/contract/archive/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/archive/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

DELETEhttps://enterprise.api.trato.io/api/contract/cancel/{:contractID}

Cancelar contrato

Para cancelar un contrato basta con generar la siguiente llamada. No se podrá cancelar un contrato que ya ha sido firmado por todos los participantes o que ya se encuentre cancelado.

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el contrato se canceló exitosamente (true/false)

Request

POST
/api/contract/cancel/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/cancel/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

POSThttps://enterprise.api.trato.io/api/contract/finalize/{:contractID}

Finalizar contrato

Para finalizar un contrato basta con generar la siguiente llamada. Solo se podrán finalizar los contratos con estatus RECEIVED_SIGNED (Firmado).

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el contrato se finalizó exitosamente (true/false)

Request

POST
/api/contract/finalize/{:contractID}
curl -G https://enterprise.api.trato.io/api/contract/finalize/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

POSThttps://enterprise.api.trato.io/api/contracts/{:contractID}/validate/nom151

Validar NOM-151

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

Request

POST
/api/contracts/{:contractID}/validate/nom151
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/validate/nom151 \
-H Authorization: Bearer {TOKEN_AUTH} \
-d "{
        'nom151': 'binary_file',
    }"

Response

 {
  "isValid": true,
  "data": {
    "number": "...",
    "caName": "...",
    "hash": "...",
    "hashAlg": "Sha256",
    "expeditionDate": "2021-02-09T23:06:48Z",
    "rsaSignature": "...",
    "policy": "..."
  }
}

POSThttps://enterprise.api.trato.io/api/contracts/{:contractID}/customproperties

Crear Propiedades Personalizadas

Para agregar Propiedades Personalizadas a un contrato, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la propiedad personalizada se creo correctamente (true/false)

Request

POST
/api/contracts/{:contractID}/customproperties
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/customproperties \
-H Authorization: Bearer {TOKEN_AUTH} \
-d '{
        "properties":[
            {
                "name":"propiedad1",
                "value":"valor1"
            },
            {
                "name":"propiedad2",
                "value":"valor2"
            },
            {
                "name":"propiedad3",
                "value":"valor3"
            }
        ]
    }'

Response

{
  'success': true
}

GEThttps://enterprise.api.trato.io/api/contracts/{:contractID}/customproperties

Obtener Propiedades Personalizadas

Para obtener las Propiedades Personalizadas en un contrato, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato


Atributos de respuesta

  • Name
    contractId
    Type
    string
    Description

    Indica el Id del contrato

  • Name
    properties
    Type
    string
    Description

    Indica el array de las propiedades del contrato

Request

GET
/api/contracts/{:contractID}/customproperties
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/customproperties \
-H Authorization: Bearer {TOKEN_AUTH}

Response

    {
        "contractId": "5b5c8c786072482f26cfd5b1",
        "properties":[
            {
                "name":"propiedad1",
                "value":"valor1"
            },
            {
                "name":"propiedad2",
                "value":"valor2"
            },
            {
                "name":"propiedad3",
                "value":"valor3"
            }
        ]
    }

PUThttps://enterprise.api.trato.io/api/contracts/{:contractID}/{:propertyID}/customproperties

Actualizar Propiedades Personalizadas

Para actualizar una propiedad, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

  • Name
    propertyID
    Type
    string
    Description

    Indica el Id de la propiedad


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la propiedad personalizada se actualizó correctamente (true/false)

Request

PUT
/api/contracts/{:contractID}/{:propertyID}/customproperties
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/{:propertyID}/customproperties \
-H Authorization: Bearer {TOKEN_AUTH} \
-d '{
        "name":"NombreActualizado",
        "value":"Valor Actualizado"
    }'

Response

{
  'success': true
}

DELETEhttps://enterprise.api.trato.io/api/contracts/{:contractID}/{:propertyID}/customproperties

Eliminar Propiedades Personalizadas

Para eliminar una propiedad, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato

  • Name
    propertyID
    Type
    string
    Description

    Indica el Id de la propiedad


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si la propiedad personalizada se eliminó correctamente (true/false)

Request

DELETE
/api/contracts/{:contractID}/{:propertyID}/customproperties
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/{:propertyID}/customproperties \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

GEThttps://enterprise.api.trato.io/api/contracts/{:contractID}/spectators

Obtener Espectadores

Para obtener los espectadores de un contrato, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato


Atributos de respuesta

  • Name
    name
    Type
    string
    Description

    Indica el nombre del espectador

  • Name
    email
    Type
    string
    Description

    Indica el email del espectador

  • Name
    phone
    Type
    string
    Description

    Indica el teléfono del espectador

  • Name
    linkExpirationDate
    Type
    string
    Description

    Indica la fecha de expiración del link del espectador

  • Name
    attachments
    Type
    string
    Description

    Indica si el espectador tiene archivos adjuntos

  • Name
    _id
    Type
    string
    Description

    Indica el Id del espectador

  • Name
    jwt
    Type
    string
    Description

    Indica el token de seguridad del espectador

Request

GET
/api/contracts/{:contractID}/spectators
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators \
-H Authorization: Bearer {TOKEN_AUTH}

Response

    [
        {
            "name": "Prueba espectador",
            "email": "test@test.com",
            "phone": "",
            "linkExpirationDate": null,
            "attachments": [],
            "_id": "655e7b9862312f1823367f",
            "jwt": "708f728d-afd4-43b4-a01b-982739823-5e0af92d-09230-41b2-0293h-1d7860110ac0"
        }
    ]

POSThttps://enterprise.api.trato.io/api/contracts/{:contractID}/spectators

Crear Espectador

Para agregar un espectador a un contrato, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    name
    Type
    string
    Description

    Indica el nombre del espectador

  • Name
    email
    Type
    string
    Description

    Indica el email del espectador

  • Name
    phone
    Type
    string
    Description

    Indica el teléfono del espectador

  • Name
    linkExpirationDate
    Type
    string
    Description

    Indica la fecha de expiración del link del espectador


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el espectador se creó correctamente (true/false)

Request

POST
/api/contracts/{:contractID}/spectators
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

PUThttps://enterprise.api.trato.io/api/contracts/{:contractID}/spectators/{:spectatorID}

Actualizar Espectador

Para actualizar un espectador en un contrato, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractID
    Type
    string
    Description

    Indica el Id del contrato.

  • Name
    spectatorID
    Type
    string
    Description

    Indica el Id del espectador.

  • Name
    name
    Type
    string
    Description

    Indica el nombre del espectador.

  • Name
    email
    Type
    string
    Description

    Indica el email del espectador.

  • Name
    phone
    Type
    string
    Description

    Indica el teléfono del espectador.

  • Name
    linkExpirationDate
    Type
    string
    Description

    Indica la fecha de expiración del link del espectador.


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el espectador se actualizó correctamente (true/false)

Request

PUT
/api/contracts/{:contractID}/spectators/{:spectatorID}
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators/{:spectatorID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true
}

DELETEhttps://enterprise.api.trato.io/api/contracts/{:contractID}/spectators/{:spectatorID}

Eliminar Espectador

Para eliminar un espectador en un contrato, se necesita hacer una llamada a la siguiente ruta:

Atributos

  • Name
    contractId
    Type
    string
    Description

    Id del contrato.

  • Name
    spectatorID
    Type
    string
    Description

    Id del espectador a eliminar.


Atributos de respuesta

  • Name
    success
    Type
    boolean
    Description

    Indica si el espectador se eliminió exitosamente (true/false).

  • Name
    error
    Type
    string
    Description

    Indica si hubo un error al eliminar el anexo.

Request

DELETE
/api/contracts/{:contractID}/spectators/{:spectatorID}
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators/{:spectatorID} \
-H Authorization: Bearer {TOKEN_AUTH}

Response

{
  'success': true,
  'error': ""
}