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.
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
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"
}
Crear V2
Permite crear los documentos en formato PDF o WORD en una sola llamada.
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
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"
}
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
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': ''
}
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
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
}
}
}
]
}
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
{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 1 | Encabezado 2 | Encabezado 3 | Encabezado 4 |
---|---|---|---|
Columna 1 Fila 1 | Columna 2 Fila 1 | Columna 3 Fila 1 | Columna 4 Fila 1 |
Columna 1 Fila 2 | Columna 2 Fila 2 | Columna 3 Fila 2 | Columna 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
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": ""
}
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
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'
}
}
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
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"
}
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
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': ''
}
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
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...'
}]
}
}
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
curl -G https://enterprise.api.trato.io/api/contract/documents/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}
Request con filtros
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'
}]
}
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
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"
}
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
curl -G https://enterprise.api.trato.io/api/contracts/{:contractId}/confidential-attachments/{:attachmentId} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true,
'error': ""
}
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
curl -G https://enterprise.api.trato.io/api/list/contracts \
-H Authorization: Bearer {TOKEN_AUTH}
Request con filtros
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"
}
]
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
curl -G https://enterprise.api.trato.io/api/contract/pending/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
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
curl -G https://enterprise.api.trato.io/api/contract/archive/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
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
curl -G https://enterprise.api.trato.io/api/contract/cancel/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
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
curl -G https://enterprise.api.trato.io/api/contract/finalize/{:contractID} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
Validar NOM-151
Atributos
- Name
contractID
- Type
- string
- Description
Indica el Id del contrato
Request
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": "..."
}
}
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
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
}
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
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"
}
]
}
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
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
}
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
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/{:propertyID}/customproperties \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
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
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"
}
]
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
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
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
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators/{:spectatorID} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true
}
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
curl -G https://enterprise.api.trato.io/api/contracts/{:contractID}/spectators/{:spectatorID} \
-H Authorization: Bearer {TOKEN_AUTH}
Response
{
'success': true,
'error': ""
}