Implementar transacciones
En esta guía te vamos a indicar los pasos que tienes que seguir para crear una transacción desde tu plataforma y recibir actualizaciones en tiempo real sobre el progreso de la misma
Previo a empezar esta guía, asegúrate de haber creado una oauth application dentro de autosign. Para más información sobre como crear una oauth application, visita OAuth Docs
Es importante asegurarse que el token intercambiado luego del flujo OAuth, tenga los siguientes scopes: transaction:create, transaction:read, transaction:update, file:create
Flow Overview
El proceso de crear una transacción consta de 5 partes:
- Crear una transacción en borrador
- Actualizar metadata de la transacción (nombre, descripción, destinatarios, etc)
- Agregar documentos a la transacción
- Definir los campos a solicitarse en cada documento
- Enviar la transacción
Crear una transacción en borrador
Para crear una transacción en borrador, solo necesitas realizar una solicitud a la API enviado opcionalmente el nombre que tendrá la transacción:
curl -X POST 'https://api.autosign.io/v1/transaction' \
-H 'Authorization: Bearer ${OAUTH_ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Transaction sample"
}'
{
"id": "clr5qcvc80004ske5syh16onk"
}
Actualizar metadata de la transacción
Una vez la transacción haya sido creada y se encuentre en estado borrador, podemos actualizar la metadata de la transacción para definir atributos como nombre, descripción, posición de los documentos, etc
Asegúrate que el destinatario con rol sender tenga el mismo correo que el usuario que está realizando la solicitud
curl -X PUT 'https://api.autosign.io/v1/transaction/clr5qcvc80004ske5syh16onk' \
-H 'Authorization: Bearer ${OAUTH_ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"edit_navigation": true,
"documents": [
{
"index": 0,
"id": "clsqwmlwd0041lgn3c298zc5l",
"isLoading": false
}
],
"email_alias": "",
"name": "MY SAMPLE PDF",
"description": "",
"email_body": "",
"email_subject": "",
"recipients": [
{
"id": "clsqwmefn003ulgn3mkxt14fk",
"role": "sender",
"color": "pink",
"index": 0,
"name": "Luciano Alvarez",
"email": "dev@autosign.io"
},
{
"id": "_-yyQ1lLsPUEx6L017xC_",
"role": "signer",
"color": "slate",
"index": 1,
"name": "Another User",
"email": "johndoe@gmail.com"
}
]
}'
{
"id": "clr5qcvc80004ske5syh16onk"
}
Agregar documentos a la transacción
Luego de haber actualizado la metadata de la transacción, podemos agregar los documentos que se van a firmar
Para esto, tenemos que realizar dos solicitudes:
- Subir el documento usando File API
- Agregar el documento a la transacción
Subir el documento
Para subir el documento, debemos realizar una solicitud a File API. El documento puede ser un pdf, imagen o documento (.docx)
Si necesitas un documento de prueba, puedes descargar uno de prueba haciendo click aquí
curl -X POST 'https://api.autosign.io/v1/file/upload' \
-H 'Authorization: Bearer ${OAUTH_ACCESS_TOKEN}' \
-F 'file=@/path/to/your/file.pdf' \
-F 'name=file.pdf'
{
"presigned_url": "https://autosign-private.s3.amazonaws.com/cd99b1bd-4451-49ea-b72b-d1d679851d56-example.pdf?AWSAccessKeyId=AKIASZTRMMJUN2TKNHWH&Expires=1706207887&Signature=Eq%2BGiaC12OBKJYcLTpoUSxDv4Fs%3D",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
Luego de subir el archivo, recibiremos un token que representa el archivo subido. Este token lo vamos a utilizar luego para asociarlo con otro recurso, en este contexto, sería la transacción.
Agregar el documento a la transacción
Una vez hayamos subido el documento al cloudstorage de autosign, podemos agregar el documento enviando el token obtenido en la solicitud anterior:
curl -X POST 'https://api.autosign.io/v1/transaction/clr5qcvc80004ske5syh16onk/document' \
-H 'Authorization: Bearer ${OAUTH_ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}'
{
"id": "clr5qcvc80004ske5syh16onk"
}
Definir campos
Luego de haber agregado los documentos a la transacción, podemos definir los campos que se van a solicitar en cada documento
En este ejemplo, vamos agregar dos campos:
- Un campo será de tipo texto que tendrá que completar el primer destinatario (remitente)
- El otro campo será de tipo firma que tendrá que completar el segundo destinatario (firmante)
curl -X PUT 'https://api.autosign.io/v1/transaction/clr5qcvc80004ske5syh16onk/fields' \
-H 'Authorization: Bearer ${OAUTH_ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"fields": [
{
"document_id": "clr5qcvc80004ske5syh16onk",
"page": 0,
"height": 7.96,
"width": 32.19,
"positionX": 30.04,
"positionY": 47.25,
"type": "text",
"label": "Texto",
"recipient_id": "clsqwmefn003ulgn3mkxt14fk",
"italic": false,
"is_required": false,
"bold": false,
"font_family": "roboto",
"font_size": 14,
"font_color": "#000000",
"helper_text": ""
},
{
"document_id": "clr5qcvc80004ske5syh16onk",
"page": 0,
"height": 7.96,
"width": 32.19,
"positionX": 31.33,
"positionY": 65.48,
"type": "signature",
"label": "Firma",
"recipient_id": "clsqx4ykt0001nm580ite68mi",
"italic": false,
"is_required": true,
"bold": false,
"font_family": "roboto",
"font_size": 14,
"font_color": "#000000",
"helper_text": ""
}
]
}'
{
"updated": true
}
Enviar la transacción
Una vez ya tengamos todo configurado para la transacción, estamos en condiciones de empezar la transacción
Al empezar la transacción, el estado de la misma cambiaría de draft a started y se enviarán las comunicaciones a los destinatarios pertenecientes a la transacción
Desde el momento en que una transacción se encuentra empezada, no podrá ser editada.
En la respuesta, vamos a recibir la signing url perteneciente al destinatario actual pendiente. En el ejemplo presentado, el primer destinatario es el remitente, por lo que la url de firma será la del remitente.
curl -X PUT 'https://api.autosign.io/v1/transaction/clr5qcvc80004ske5syh16onk/start' \
-H 'Authorization: Bearer ${OAUTH_ACCESS_TOKEN}'
{
"url": "https://app.autosign.io/sign/clsqlgnij000fjele82l3lxz2?token=clsqlgnij000fjele82l3lxz2clsqlgnij000fjele82l3lxz2clsqlgnij000fjele82l3lxz2"
}