API v2
Crear y enviar un contrato en una sola llamada.
Crear y enviar a firmar (v2)
Crea y envia un documento para firma
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Cuerpo application/json
blockchainTypestringobligatorioTipo de blockchain que se utilizará al firmar el contrato.
Valores:
none,basicexpiryEndDatestringobligatorioDetermina la fecha de inicio de expiración del contrato. El formato de fecha debe ser: 'YYYY-MM-DD'
expiryStartDatestringobligatorioDetermina la fecha de inicio de expiración del contrato. El formato de fecha debe ser: 'YYYY-MM-DD'
expiryUndefinedbooleanobligatorioEspecifica si el documento tiene vigencia o no. En caso de ser false, es necesario configurar expiryStartDate y expiryEndDate
externalIdstringobligatorioCampo de identificación externo.
filestring (base64)obligatorioEl documento a enviar
isMedicalPrescriptionbooleanDetermina si el documento es una receta médica. En caso de seleccionar la opción true: Se debe de configurar las recetas medicas en la propiedad "medicalPrescriptions"
languagestringobligatorioIdioma en el cual se realizará el envío de notificaciones.
Valores:
en,esmedicalPrescriptionsarray<object>2 campos
medicinesarray<object>obligatorio3 campos
isUnlimitedbooleanobligatorioMarcar como ilimitado
namestringobligatorioNombre del medicamento
quantitynumberobligatorioCantidad necesaria del medicamento
namestringobligatorioNombre de la receta medica
namestringobligatorioNombre del contrato
notificationTypestringobligatorioTipo de notificaciones a enviar en cada evento del contrato.
Valores:
email,sms,email-sms,email-whatsapp,whatsapp,noneownerSelfSignbooleanobligatorioEn caso de seleccionar la opción true: Si el dueño del contrato tiene una firma configurada en su perfil y es uno de los participantes del contrato, el contrato se firmará automáticamente por este participante.
participantsarray<object>obligatorio18 campos
attachmentsarray<object>Arreglo de anexos
2 campos
namestringobligatorioNombre del anexo
requiredbooleanIndica si el anexo es requerido para la firma del contrato o no
customMessagestringobligatorioMensaje personalizado del participante
emailstringobligatorioCorreo del participante
labelstringobligatorioRol del participante
last_namestringobligatorioApellido del participante
namestringobligatorioNombre del participante o razón social
obligationstringobligatorioTipo de persona del participante. individual: persona física, legal: persona moral
Valores:
individual,legalphonestringCelular del participante (es necesario si se usa 'email-sms' o 'sms' o 'email-whatsapp' o 'whatsapp' como el tipo de notificación)
representativestringobligatorioRepresentante del participante
requestAgreementbooleanobligatorioPedir video de consentimiento al participante (Blindaje 3)
requestCreditBureaubooleanPedir buró de crédito
requestInebooleanPedir validación de INE
requestLocationbooleanPedir geolocalización
requestOneTimePasswordbooleanPedir contraseña de un solo uso
requestVeridocbooleanPedir validación de INE con foto
rfcstringRFC del participante (es necesario si se usa 'certificate' como el tipo de firma)
signOrdernumberobligatorioEn caso de seleccionar la opción true en la propiedad 'signInOrder': Especifica cuando le toca firmar al participante
signaturesarray<object>obligatorioArreglo de firmas
6 campos
customSizebooleanobligatorioheightnumberobligatorioleftnumberobligatoriopagenumberobligatoriotopnumberobligatoriowidthnumberobligatorio
shield3StatementstringobligatorioEl texto proporcionado en este campo se utiliza para personalizar el mensaje de Blindaje 3, cuenta con 3 campos que se pueden utilizar dentro del cuerpo del mensaje que seran reemplazados con el valor correspondiente {{contractName}} {{today}} y {{participantName}}, ver ejemplo:
shield3ValidationRequiredbooleanDetermina si el video del Blindaje 3 debe ser validado
signInOrderbooleanobligatorioEn caso de seleccionar la opción true: Se debe de configurar en cada participante la propiedad 'signOrder' para especificar que participante debe firmar primero.
signatureTypestringobligatorioTipo de firma con la cual se firmará el contrato. Las opciones disponibles son (autograph: Firma Autógrafa Digitalizada/certificate: Firma Electrónica Avanzada/none: Sin Firma). Si se escoge 'certificate' es necesario especificar el RFC en cada participante
Valores:
autograph,certificate,nonestampNombooleanobligatorioIncluir la constancia NOM-151 como parte del contrato.
validateEsignCertificatebooleanDetermina si el RFC debe ser validado con la firma FIEL
Respuestas
- 200Contrato enviado con éxito
Campos de la respuesta
contractobjectobligatorio2 campos
_idstringobligatorioID del contrato creado.
participantsarray<object>obligatorio3 campos
_idstringobligatorioID del participante.
emailstringobligatoriosignUrlstringobligatorioEnlace de firma (si se pidió
showSignLinks).
successbooleanobligatorio
- 400Error en la petición o error de validación
- 401Error de autenticación: API key ausente, no válida o de otro entorno.
Petición
curl -X POST "https://enterprise-stage.api.trato.io/api/v2/create/contract" \
-H "apikey: $TRATO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"blockchainType": "none",
"expiryEndDate": "2021-01-01",
"expiryStartDate": "2020-01-01",
"expiryUndefined": false,
"externalId": "ID0001",
"file": "data:application/pdf;base64,JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nB2KvQrCQBCE...",
"isMedicalPrescription": false,
"language": "es",
"medicalPrescriptions": [
{
"medicines": [
{
"isUnlimited": false,
"name": "Medicamento 1",
"quantity": "1"
}
],
"name": "Receta Medica"
}
],
"name": "Nombre Nuevo Contrato",
"notificationType": "email",
"ownerSelfSign": false,
"participants": [
{
"attachments": [
{
"name": "Nuevo anexo",
"required": true
}
],
"customMessage": 0,
"email": "pedro@trato.io",
"label": "La parte",
"last_name": "Apellido Participante (invididual)",
"name": "Nombre participante(individual) / Razón social(legal)",
"obligation": "individual",
"phone": "+525555555555",
"representative": "Nombre representante (legal)",
"requestAgreement": false,
"requestCreditBureau": false,
"requestIne": false,
"requestLocation": false,
"requestOneTimePassword": false,
"requestVeridoc": false,
"rfc": "TTTT950208TTT",
"signOrder": 0,
"signatures": [
{
"customSize": true,
"height": 100,
"left": 60,
"page": 1,
"top": 170,
"width": 200
}
]
}
],
"shield3Statement": "Yo {{participantName}} he leído y entiendo los términos y condiciones del contrato {{contractName}}, de fecha {{today}} y manifiesto mi aceptación en el uso de la firma electrónica en relación con el presente mensaje de datos y la evidencia digital para este contrato.",
"shield3ValidationRequired": true,
"signInOrder": false,
"signatureType": "autograph",
"stampNom": true,
"validateEsignCertificate": true
}'Respuesta
{
"contract": {
"_id": "string",
"participants": [
{
"_id": "string",
"email": "ana@example.com",
"signUrl": "string"
}
]
},
"success": true
}Firmar como el usuario de la API key (v2)
Firma un documento si el usuario que realiza la petición tiene que realizar una acción de firma
Autenticación. Cabecera apikey con tu API key, o Authorization: Bearer con un token.
Cuerpo application/json
contractIdstringobligatorioId del contrato a firmar
Respuestas
- 200Documento firmado con éxito
- 400Error en la petición o error de validación
- 401Error de autenticación: API key ausente, no válida o de otro entorno.
Petición
curl -X POST "https://enterprise-stage.api.trato.io/api/v2/sign/contract" \
-H "apikey: $TRATO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contractId": "5fc1270eb7b97ea03c618180"
}'Respuesta
{}