Implementar transacciones
En esta guia te vamos a indicar los pasos que tienes que seguir para crear una transaccion desde tu platforma y recibir actualizaciones en tiempo real sobre el progreso de la misma
Previo a empezar esta guia, asegurate de haber creado una oauth application dentro de autosign. Para mas informacion 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 transaccion consta de 5 partes:
- Crear una transaccion en borrador
- Actualizar metadata de la transaccion (nombre, descripcion, destinatarios, etc)
- Agregar documentos a la transaccion
- Definir los campos a solicitarse en cada documento
- Enviar la transaccion
Crear una transaccion en borrador
Para crear una transaccion en borrador, solo necesitas realizar una solicitud a la api enviado opcionalmente el nombre que tendra la transaccion:
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 transaccion
Una vez la transaccion haya sido creada y se encuentre en estado borrador, podemos actualizar la metadata de la transaccion para definir atributos como nombre, descripcion, posicion de los documentos, etc
Asegurate que el destinatario con rol sender
tenga el mismo correo que el usuario que esta 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 transaccion
Luego de haber actualizado la metadata de la transaccion, 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 transaccion
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 aqui
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, seria la transaccion.
Agregar el documento a la transaccion
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 transaccion, podemos definir los campos que se van a solicitar en cada documento
En este ejemplo, vamos agregar dos campos:
- Un campo sera de tipo texto que tendra que completar el primer destinatario (remitente)
- El otro campo sera de tipo firma que tendra 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 transaccion
Una vez ya tengamos todo configurado para la transaccion, estamos en condiciones de empezar la transaccion
Al empezar la transaccion, el estado de la misma cambiaria de draft
a started
y se enviara las comunicaciones a los destinatarios pertenecientes a la transaccion
Desde el momento en que una transaccion se encuentra empezada, no podra 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 sera 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"
}