Workflow
Criação e manipulação do workflow
Na criação de um workflow é definido todos os passos que serão realizados durante a aprovação/assinatura de um documento ou mais documentos.
O workflow seguirá respectivamente a sequência de envio dos steps definidos na chave “workflowSteps”.
Criar um workflow
POST
https://api-v1.assine.online/v1/workflow
Montagem do workflow com quais arquivos queremos e quais pessoas queremos que assinem, definindo onde a assinatura ficará no documento.
Headers
Authorization
string
Bearer <access-token>
Content-Type
string
application/json
Accept
string
application/json
Request Body
files[].idFolder
string
ID da pasta para salvar o arquivo usado no workflow. Padrão: 0.
autoRemind
integer
Notificações de email quando está pendente de assinatura de alguém. 0 - Desativa (Default) 1 - Ativa
autoInitiate
integer
Além de criar, também inicia o fluxo, fazendo os envios de emails para os assinantes. 0 - Desativa (Default) 1 - Ativa
dueDate
string
Data de vencimento do fluxo, não será possível assinar os documentos após esta data definida. Exemplo: 2023-01-01 23:59:59
message
string
Uma mensagem para identificar este fluxo, do qual será exibida para o assinante.
priority
integer
Simboliza uma prioridade para o fluxo. 0 - Normal (Default) 1 - Alta 2 - Muito Alta
sla
String
Valor em horas em que será notificado a pendência de assinatura à pessoa. O valor 1 significa uma hora, 2 significa duas horas, sendo o valor máximo 720 horas (30 dias).
files
array
Um array de arquivos que vamos escolher para este fluxo.
files[].idFile
integer
ID do arquivo que queremos usar no fluxo. Este id se adquire ao fazer o upload do documento.
files[].name
string
Nome de identificação para o documento.
files[].specialFields
array
Campos especiais que devem aparecer no documento como, por exemplo, um QR Code com o link de validação do documento.
files[].specialFields[].type
integer
Tipo do campo: 9 - QR Code de validação 10 - QR Code de compartilhamento do documento.
files[].specialFields[].x
integer
Eixo x em relação ao topo do documento em que o campo irá aparecer.
files[].specialFields[].y
integer
Eixo y em relação ao topo do documento em que o campo irá aparecer.
files[].specialFields[].height
integer
Altura que o campo terá dentro do documento.
files[].specialFields[].width
integer
Largura que o campo terá dentro do documento.
files[].specialFields[].page
integer
Página do documento em que este campo irá aparecer.
files[].workflowSteps
array
Passos, ou seja, assinantes na ordem que queremos que assinem.
files[].workflowSteps[].idUser
integer
ID do usuário que queremos que assine, ou opcionamente troque este valor pelo valor abaixo.
files[].workflowSteps[].user
object
Caso não queira, não possui o id do usuário que queira ser assinante, crie este objeto no lugar. { "name": "Nome da pessoa", "email": "[email protected]",
"whatsappNumber": "5511999999999",
"notifyWhatsapp": true }
files[].workflowSteps[].user.name
string
Nome da pessoa que queremos que assine neste step.
files[].workflowSteps[].user.email
string
Email da pessoa que queremos que assine neste step.
files[].workflowSteps[].action
integer
A ação que queremos deste assinante: 0 - Assinante (Default) 1 - Aprovador 2 - Visualizador
files[].workflowSteps[].signatureType
string
O tipo da assinatura que queremos desta pessoa. 0 - Eletrônica (Default) 1 - Digital 2 - Presencial
files[].workflowSteps[].fields
array
Campos que queremos no documento a respeito deste assinante.
files[].workflowSteps[].fields.type
integer
Tipo do campo: 0 - O nome do assinante; 1 - O email do assinante; 4 - Um campo de data; 6 - Um campo de input de texto de preenchimento opcional; 7 - Um campo de input de texto de preenchimento obrigatório; 8 - A assinatura visível, ou seja, o desenho da assinatura da pessoa; 11 - Um campo de data da assinatura; 16 - Uma assinatura invisível, ou seja, que consta do documento final mas não existe uma representação visual no documento. 17 - A assinatura visível, porém esta ficará na última página do documento no rodapé do lado direito, com essa assinatura não é necessário informar os eixos x e y.
files[].workflowSteps[].fields.x
string
Distância do eixo X em relação ao lad esquedo do documento em que o campo deve aparecer.
files[].workflowSteps[].fields.y
string
Distância do eixo Y em relação ao topo do documento em que o campo deve aparecer.
files[].workflowSteps[].fields.height
string
Altura do campo que será exibido no documento.
files[].workflowSteps[].fields.width
string
Largura do campo que será exibido no documento.
files[].workflowSteps[].fields.page
string
Página no documento do qual o campo será exibido.
files[].workflowSteps[].hasPhotoSign
boolean
Se deve ou não pegar a foto do assinante
{
"id": 1259,
"autoRemind": 0,
"dueDate": {
"date": "2023-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"name": null,
"message": "",
"priority": 0,
"sla": 1,
"status": 0,
"_embedded": {
"user": {
"id": 474,
"username": "[email protected]",
"password": "$2y$10$Vw9uEiHuza.CaPHvmqXmi..PXIKQe/uyuDCnqkJOYWNpagU3X6IWm",
"status": "1",
"name": "Jhon Doe",
"email": "[email protected]",
"cellphone": "+5562991838359",
"document": "12312312312",
"country": "Brazil",
"state": "GO",
"city": "Goiânia",
"address": "Av 136, Ed. New York Square 19/20",
"zipCode": "74000000",
"dateCreated": {
"date": "2020-02-20 13:28:28.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateLastUpdated": {
"date": "2020-02-20 13:29:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"_embedded": {
"businessUnit": {
"id": 24,
"name": "Soluti Soluções em negocios inteligentes",
"document": "cnpj",
"status": null,
"country": "Brazil",
"state": "GO",
"city": "Goiânia",
"address": "Av 136, Ed. New York Square 19/20",
"zipCode": "74000000",
"_links": {
"self": {
"href": "https://api.assine.online/business-unit/24"
}
}
}
},
"_links": {
"self": {
"href": "https://api.assine.online/user/474"
}
}
}
},
"_links": {
"self": {
"href": "https://api.assine.online/workflow/1259"
}
}
}
Caso precise de mais detalhes sobre a criação do workflow, veja nossa documentação do quickstart.
Buscar um workflow
GET
https://api-v1.assine.online/v1/workflow/:id
Busca informações sobre o workflow, seu status, quem já assinou ou ainda está pendente e etc.
Path Parameters
id
integer
ID do workflow que deseja consultar.
Headers
Authorization
string
Bearer <access-token>
Accept
string
application/json
{
"id": 1240,
"autoRemind": 0,
"dueDate": {
"date": "2023-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"name": null,
"message": "Uma mensagem de identificação",
"priority": 0,
"sla": 1,
"status": 6,
"dateCreated": {
"date": "2020-02-26 13:10:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateStatus": {
"date": "2020-02-26 13:12:04.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateFineshed": null,
"_embedded": {
"documents": [
{
"id": 1333,
"name": "Um documento de exemplo",
"status": 1,
"dueDate": null,
"specialFields": [],
"workflowSteps": [
{
"id": 1459,
"action": 0,
"signatureType": 0,
"status": 4,
"extraMetadata": null,
"dateStatus": {
"date": "2020-02-26 13:11:18.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"latitude": "-1.0",
"longitude": "-1.0",
"reason": ".",
"fields": [
{
"type": 8,
"x": 51,
"y": 29,
"height": 46,
"width": 200,
"page": 1,
"value": "",
"name": ""
}
],
"_embedded": {
"user": {
"id": 483,
"name": "João Carlos Santos",
"email": "[email protected]"
}
}
}
],
"_embedded": {
"folder": {
"id": 174,
"name": "default",
"path": "default"
},
"originalFile": {
"id": 5575,
"checksum": "6703901978dcb3dbf2d9915e1d3e066cfe712b0a",
"_links": {
"download": {
"href": "https://api.assine.online/file?q=e2dvb2RfbG9va317ImRhdGEiOnsidXVpZCI6IjVhOGQyMjcyLTU0MGMtMTFlYS04ZjgyLTAyNDJhYzE0MDAwNyJ9LCJobWFjIjoiMjI0YmJkNTkyMGYyNTRhOTg3MGYxMWZhMTY4YTE4Yzc3YzY2NTgzZWNiYWY4MThhYTc5MTg5ZGRjMWJmZDYzMyIsIm5vbmNlIjoiNjc4NzE1ODI4Mjc1NjUifQ=="
}
}
},
"file": {
"id": 5586,
"checksum": "d02813a2f4e1356dcb818a7edb6d4f0b3452a8a2",
"_links": {
"download": {
"href": "https://api.assine.online/file?q=e2dvb2RfbG9va317ImRhdGEiOnsidXVpZCI6Ijc5Y2QzZWJhLTU4OTktMTFlYS1iMWEwLTAyNDJhYzE0MDAwNyJ9LCJobWFjIjoiYzBmMDVmMGE0YmYwNDQyNDgyOTUyNmRmZTIxMDBmMTI5ODhmY2E3MTAxMjY0NGZkNjJiZDc2Mzc0NDRiYWQ3ZSIsIm5vbmNlIjoiNjQ0MTE1ODI4Mjc1NjUifQ=="
}
}
}
}
}
]
},
"_links": {
"self": {
"href": "https://api.assine.online/workflow/1240"
}
}
}
Possíveis status do workflow:
0
: Rascunho, ou seja, ainda não iniciou-se.1
: Circulando, ou seja, o fluxo se iniciou e está aguardando que as pessoas assinem.2
: Cancelado, ou seja, a pessoa que criou o fluxo cancelou.3
: Expirado, ou seja, o fluxo passou da data de vencimento definida.4
: Processando, ou seja, o documento está sendo processado com o cálculo de criptografia da assinatura.5
: Rejeitado, ou seja, algum dos assinantes rejeitou assinar este workflow.6
: Completado, ou seja, todos os assinantes efetuaram a assinatura e o documento está totalmente assinado.
Possíveis status do step do workflow, ou seja, status do assinante se foi aprovado ou não (Propriedade: _embedded.documents[].workflowSteps[].status
):
0
: Não iniciado, ou seja, o fluxo ainda não se iniciou e a pessoa ainda não recebeu o email pedindo a assinatura.1
: Aguardando assinatura, ou seja, aguardando que o assinante peça para assinar.2
: Na fila de processamento, ou seja, está na fila para processar a assinatura.3
: Processando, ou seja, está no processo de gerar as chaves e cálculos para realizar a assinatura.4
: Aprovado, ou seja, já foi processado e o usuário aprovou que o documento possa ser assinado, podendo avançar para o próximo passo que no nosso caso, o próximo passo é pedir a assinatura de Maria.5
: Rejeitado, ou seja, o assinante rejeitou assinar o documento, abortando todo o fluxo.
Listar workflows
GET
https://api-v1.assine.online/v1/workflow
Lista todos os workflow criados
Query Parameters
page
integer
Página que deseja lista. Default: 1
Headers
Authorization
string
Bearer <access-token>
Accept
string
application/json
{
"_links": {
"self": {
"href": "https://api.assine.online/workflow?page=1"
},
"first": {
"href": "https://api.assine.online/workflow"
},
"last": {
"href": "https://api.assine.online/workflow?page=1"
}
},
"_embedded": {
"workflow": [
{
"id": 1232,
"autoRemind": 0,
"dueDate": {
"date": "2023-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"name": null,
"message": "Uma mensagem de identificação",
"priority": 0,
"sla": 1,
"status": 1,
"dateCreated": {
"date": "2020-02-20 18:11:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateStatus": {
"date": "2020-02-20 18:49:41.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateFinished": null,
"_embedded": {
"user": {
"id": 474,
"name": "Jhon Doe",
"email": "[email protected]",
"_links": {
"self": {
"href": "https://api.assine.online/user/474"
}
}
}
},
"_links": {
"self": {
"href": "https://api.assine.online/workflow/1232"
}
}
},
...
]
},
"page_count": 1,
"page_size": 25,
"total_items": 20,
"page": 1
}
Iniciar um workflow
PATCH
https://api-v1.assine.online/v1/workflow/:id
Quando o workflow é criado, o fluxo não se inicia automaticamente por padrão, ou seja, nenhum dos assinantes recebe o email com o pedido de assinatura, para isso precisamos inicializá-lo.
Path Parameters
id
integer
ID do workflow
Headers
Authorization
string
Bearer <access-token>
Content-Type
string
application/json
Accept
string
application/json
Request Body
status
number
1
{
"id": 1259,
"autoRemind": 0,
"dueDate": {
"date": "2023-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"name": null,
"message": "",
"priority": 0,
"sla": 1,
"status": 1,
"_embedded": {
"user": {
"id": 474,
"username": "[email protected]",
"status": "1",
"name": "Jhon Doe",
"email": "[email protected]",
"cellphone": "+5562991838359",
"document": "12312312312",
"country": "Brazil",
"state": "GO",
"city": "Goiânia",
"address": "Av 136, Ed. New York Square 19/20",
"zipCode": "74000000",
"dateCreated": {
"date": "2020-02-20 13:28:28.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateLastUpdated": {
"date": "2020-02-20 13:29:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"_embedded": {
"businessUnit": {
"id": 24,
"name": "Soluti Soluções em negocios inteligentes",
"document": "cnpj",
"status": null,
"country": "Brazil",
"state": "GO",
"city": "Goiânia",
"address": "Av 136, Ed. New York Square 19/20",
"zipCode": "74000000",
"_links": {
"self": {
"href": "https://api.assine.online/business-unit/24"
}
}
}
},
"_links": {
"self": {
"href": "https://api.assine.online/user/474"
}
}
}
},
"_links": {
"self": {
"href": "https://api.assine.online/workflow/1259"
}
}
}
O corpo da requisição é literalmente:
{
"status": 1
}
Cancelar workflow
PATCH
https://api-v1.assine.online/v1/workflow/:id
Path Parameters
id
integer
ID do workflow
Headers
Authorization
string
Bearer <access-token>
Content-Type
string
application/json
Accept
string
application/json
Request Body
status
integer
2
{
"id": 1259,
"autoRemind": 0,
"dueDate": {
"date": "2023-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"name": null,
"message": "",
"priority": 0,
"sla": 1,
"status": 2,
"_embedded": {
"user": {
"id": 474,
"username": "[email protected]",
"status": "1",
"name": "Jhon Doe",
"email": "[email protected]",
"cellphone": "+5562991838359",
"document": "12312312312",
"country": "Brazil",
"state": "GO",
"city": "Goiânia",
"address": "Av 136, Ed. New York Square 19/20",
"zipCode": "74000000",
"dateCreated": {
"date": "2020-02-20 13:28:28.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"dateLastUpdated": {
"date": "2020-02-20 13:29:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"_embedded": {
"businessUnit": {
"id": 24,
"name": "Soluti Soluções em negocios inteligentes",
"document": "cnpj",
"status": null,
"country": "Brazil",
"state": "GO",
"city": "Goiânia",
"address": "Av 136, Ed. New York Square 19/20",
"zipCode": "74000000",
"_links": {
"self": {
"href": "https://api-hom.assine.online/business-unit/24"
}
}
}
},
"_links": {
"self": {
"href": "https://api-hom.assine.online/user/474"
}
}
}
},
"_links": {
"self": {
"href": "https://api-hom.assine.online/workflow/1259"
}
}
}
O corpo da requisição é literalmente:
{
"status": 2
}
Last updated
Was this helpful?