Flujo de trabajo
weetrust permite un flujo de firma digital muy sencillo y fácil de integrar a cualquier tipo de operación de negocio.
Paso 1: Obtener el access token
El primer paso en el flujo de firma de un documento es obtener un Token de Acceso con las credenciales.
Petición:
curl --location --request POST 'https://api-sandbox.weetrust.com.mx/access/token' \
--header 'user-id: [USER_ID]' \
--header 'api-key: [API_KEY]'
Respuesta:
{
"responseData": {
"accessToken": "[ACCESS_TOKEN]"
},
"message": "Token generated Successfully",
"success": true,
"responseCode": 200
}
El token solo es válido durante 5 min.
Paso 2: Subir un documento
Para el segundo paso, se deberá de Agregar el documento que se desea firmar en formato PDF o DOCX.
Para esta petición se requiere enviar el token previamente obtenido.
Petición:
curl --location 'https://api-sandbox.weetrust.com.mx/documents' \
--header 'token: [ACCESS_TOKEN]' \
--header 'user-id: [USER_ID]' \
--form 'document=@"sample.pdf"'
Respuesta:
{
"responseData": {
"documentID": "65d7d2a3867234003591c367",
"documentType": "OTHERS",
"status": "DRAFT",
"country": "Mexico",
"documentSignType": "ELECTRONIC_SIGNATURE",
"addedOn": 1708642980323,
"documentFileObj": {
"url": "[SIGNED_URL_DOCUMENT_UPLOADED]",
"size": "71.5 KB"
},
"signatory": [],
"sharedWith": [],
"pscCertificate": "",
"blockchainCertificate": ""
},
"message": "Saved Successfully",
"success": true,
"responseCode": 200
}
Paso 3: Fijar firma del documento (opcional)
Como tercer paso, de forma opcional, si se requiere posicionar la firma del usuario(s) en una coordenada especifica sobre el documento, por ejemplo en una linea al pie de pagina o en los laterales, se debe utilizar el endpoint de fixed-signatory.
Para obtener las coordenadas que se envian en el parametro de staticSignPositions usaremos la herramienta de PDF Coordinates
Si se omite este paso, el firmante podrá posicionar la firma en cualquier parte del documento.
Si se requiere posicionar mas de una firma, se debe enviar un arreglo de objetos en el parametro staticSignPositions
Petición:
curl --location --request PUT 'https://api-sandbox.weetrust.com.mx/documents/fixed-signatory' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'token: [ACCESS_TOKEN]' \
--header 'user-id: [USER_ID]' \
--data-raw '{
"documentID": "65d7d2a3867234003591c367",
"staticSignPositions": [
{
"user": {
"email": "[email protected]"
},
"coordinates": {
"x": 324,
"y": 314
},
"page": 1,
"pageY": 314,
"pageYv2": 314,
"color": "#FFD247",
"imageSize": {
"width": 101,
"height": 51
},
"parentImageSize": {
"width": 612,
"height": 792
},
"viewport": {
"width": 612,
"height": 792
}
}
]
}'
Respuesta:
{
"responseData": {
"documentID": "65d7d2a3867234003591c367",
"documentType": "OTHERS",
"status": "DRAFT",
"country": "Mexico",
"documentSignType": "ELECTRONIC_SIGNATURE",
"addedOn": 1708959160376,
"documentFileObj": {
"url": "[URL_DOCUMENT]",
"size": "71.5 KB"
},
"signatory": [],
"sharedWith": [],
"pscCertificate": "",
"blockchainCertificate": ""
},
"message": "Updated Successfully",
"success": true,
"responseCode": 200
}
Paso 4: Enviar documento a firma
Una vez configurado el documento, se deberá de enviar la solicitud a los firmantes que usted requiera en dicho documento. Puede ser ser uno o más, en este caso enviaremos un solo firmante.
Peticion
{
"documentID": "65d7d2a3867234003591c367",
"message": "Se le solicita la firma del siguiente contrato",
"title": "Firma de contrato",
"signatory": [
{
"emailID": "[email protected]",
"name": "José Pérez"
}
]
}
En caso de requerir verificación de identidad, es necesario enviar el parametro identification como se muestra a continuación:
{
"documentID": "65d7d2a3867234003591c367",
"message": "Se le solicita la firma del siguiente contrato",
"title": "Firma de contrato",
"signatory": [
{
"emailID": "[email protected]",
"name": "José Pérez",
"identification": "face"
}
]
}
Respuesta
{
"responseData": {
"documentID": "65d7d2a3867234003591c367",
"documentType": "OTHERS",
"status": "PENDING",
"country": "Mexico",
"documentSignType": "ELECTRONIC_SIGNATURE",
"addedOn": 1708959097626,
"documentFileObj": {
"url": "[DOCUMENT_FILE_URL]",
"size": "71.5 KB"
},
"signatory": [
{
"emailID": "[email protected]",
"name": "José Pérez",
"isSigned": 0,
"signatoryID": "65dca59c8f034d002a289ea2",
"signing": {
"url": "https://test.weetrust.com.mx/signatory/65dc45788f034d002a289e9bx/65dca59c8f034d002a289ea8/1708959132938/8b0015",
"expiry": 1709823132958
},
"imageURL": "",
"emailTracking": []
}
],
"sharedWith": [],
"pscCertificate": "",
"blockchainCertificate": ""
},
"message": "Updated Successfully",
"success": true,
"responseCode": 200
}
Paso 5: Configuración de webhooks (recomendado)
Se remienda el uso de webhooks para recibir notificaciones de los eventos relacionados a la trazabilidad de la firma del documento.
Para ello puede revisar la guia rapida de webooks en Guia Rapida de Webhooks
No se recomienda el uso de long polling.