Skip to main content

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:

  1. Crear una transacción en borrador
  2. Actualizar metadata de la transacción (nombre, descripción, destinatarios, etc)
  3. Agregar documentos a la transacción
  4. Definir los campos a solicitarse en cada documento
  5. 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"
}'
RESPONSE
{
"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

Destinatario Remitente

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"
}
]
}'
RESPONSE
{
"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:

  1. Subir el documento usando File API
  2. 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'
RESPONSE
{
"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"
}'
RESPONSE
{
"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": ""
}
]
}'
RESPONSE
{
"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"
}