Os templates permite que seja pré-configurado um documento e, opcionalmente, assinantes e demais valor de um fluxo. Com isso é possível fazer o reuso para criação de fluxos, existem dois tipos de templates: temporário e permanente.
O template temporário é utilizado para fazer integração com nossa página de configuração de documento, da qual é apagada depois de um tempo. O permanente é para reuso na criação de fluxos de assinatura, utilizaremos esse como exemplo deste tutorial.
Vamos montar um payload simples de um documento e um assinante e salvar este template. Antes de tudo, faça upload do documento que será utilizado para este template e guarde o id retornado, agora vamos construir o payload:
{"type": 1,"name": "Nome do template","settings": {"canAddSigners": true},"template": {...}}
type
: O tipo do template, do quais são:
0
: Temporário;
1
: Permanente.
name
: O nome de identificação do template.
settings
: Configurações para o template.
canAddSigners
: Configuração que define se a pessoa que está editando o template terá permissão de adicionar assinantes. Esta propriedade pode ser ocultada caso não esteja utilizando o template que usa a página de integração.
template
: O payload do workflow que desejamos guardar para reuso, faremos isso no próximo passo.
Neste momento estamos definindo somente a configuração do template em si, sem ainda informar o documento e os assinantes. Para fazer isso, vamos incluir os dados no nosso template:
{"type": 1,"name": "Nome do template","settings": {"canAddSigners": true},"template": {"message": "Comentário opcional","files": [{"idFile": 5583,"name": "Meu documento","specialFields": [],"workflowSteps": []}]}}
Todos os campos que vão para a propriedade template
são idênticas ao payload que criamos para o workflow. Caso queira, você já pode deixar pré-definido um assinante:
{"type": 1,"name": "Nome do template","settings": {"canAddSigners": true},"template": {"message": "Comentário opcional","files": [{"idFile": 5583,"name": "Meu documento","specialFields": [],"workflowSteps": [{"user": {"name": "Pedro Cavalcante","email": "pedrocavalcante@webbamail.com"},"action": 0,"signatureType": 0,"fields": []}]}]}}
Lembrando que para criar o workflow de fato, é necessário que o assinante tenha um ao menos uma field
de assinatura. Caso queira já deixar pré-definido onde deve aparecer a assinatura da pessoa:
{"type": 1,"name": "Nome do template","settings": {"canAddSigners": true},"template": {"message": "Comentário opcional","files": [{"idFile": 5583,"name": "Meu documento","specialFields": [],"workflowSteps": [{"user": {"name": "Pedro Cavalcante","email": "pedrocavalcante@webbamail.com"},"action": 0,"signatureType": 0,"fields": [{"type": 8,"x": 51,"y": 29,"height": 46,"width": 200,"page": 1}]}]}]}}
Concluído nosso payload, salvamos ele:
curl -X POST \-H 'Authorization: Bearer 41f7ff53c1dc5cf4f3db1f33e026b2908cdf88b4' \-H "Content-Type: application/json" \https://api.assine.online/v1/workflow-template -d '{"type": 1,"name": "Nome do template","settings": {"canAddSigners": true},"template": {"message": "Comentário opcional","files": [{"idFile": 5583,"name": "Meu documento","specialFields": [],"workflowSteps": [{"user": {"name": "Pedro Cavalcante","email": "pedrocavalcante@webbamail.com"},"action": 0,"signatureType": 0,"fields": [{"type": 8,"x": 51,"y": 29,"height": 46,"width": 200,"page": 1}]}]}]}}'
const token = '41f7ff53c1dc5cf4f3db1f33e026b2908cdf88b4';const body = {type: 0,name: 'Nome do template',settings: {canAddSigners: true},template: {message: 'Comentário opcional',files: [{idFile: 5583,name: 'Meu documento',specialFields: [],workflowSteps: [{user: {name: 'Pedro Cavalcante',email: 'pedrocavalcante@webbamail.com'},action: 0,signatureType: 0,fields: [{type: 8,x: 51,y: 29,height: 46,width: 200,page: 1}]}]}]}};const response = await fetch('https://api.assine.online/v1/workflow-template', {method: 'POST',headers: {Authorization: `Bearer ${token}`'Content-Type': 'application/json'},body: JSON.stringify(body)});const data = await response.json();
$token = '41f7ff53c1dc5cf4f3db1f33e026b2908cdf88b4';$client = new GuzzleHttp\Client();$res = $client->request('POST', 'https://api.assine.online/v1/workflow-template', ['headers' => ['Authorization' => 'Bearer ' . $token],'json' => ["type" => 1,"name" => "Nome do template","settings" => ["canAddSigners" => true],"template" => ["message" => "Comentário opcional","files" => [["idFile" => 5583,"name" => "Meu documento","specialFields" => [],"workflowSteps" => [["user" => ["name" => "Pedro Cavalcante","email" => "pedrocavalcante@webbamail.com"],"action" => 0,"signatureType" => 0,"fields" => [["type" => 8,"x" => 51,"y" => 29,"height" => 46,"width" => 200,"page" => 1]]]]]]]]]);echo $res->getBody();
POST https://api.assine.online/v1/workflow-template
Resposta:
{"id": 19,"type": 1,"token": "e2dvb2RfbG9va317ImRhdGEiOnsidHlwZSI6InRlbXBsYXRlIiwiaWQiOjE5fSwiaG1hYyI6ImIwZjhiZTFkOTI4M2Q0NThhODcwOGMzYWIwMDJkMWIxODk0NmRhNWZlZWUxODE2ZDkwZjBkNzg4YzdmMzlkMTAiLCJub25jZSI6IjkwNTkxNTgyODA0ODY0In0=","title": "Template created","status": 201,"detail": "Template created"}
O campo token
é usado caso precise da página para integração.
Com isso temos nosso template criado, caso queira consultá-lo:
curl -X GET \-H 'Authorization: Bearer 41f7ff53c1dc5cf4f3db1f33e026b2908cdf88b4' \https://api.assine.online/v1/workflow-template/19
const token = '41f7ff53c1dc5cf4f3db1f33e026b2908cdf88b4';const workflowTemplateId = 19;const response = await fetch(`https://api.assine.online/v1/workflow-template/${workflowTemplateId}`, {method: 'GET',headers: {Authorization: `Bearer ${token}`,'Content-Type': 'application/json'}});const data = await response.json();
$token = '41f7ff53c1dc5cf4f3db1f33e026b2908cdf88b4';$workflowTemplateId = 19;$client = new GuzzleHttp\Client();$res = $client->request('GET', 'https://api.assine.online/v1/workflow-template/' . $workflowTemplateId, ['headers' => ['Authorization' => 'Bearer ' . $token]]);echo $res->getBody();
GET https://api.assine.online/v1/workflow-template/:workflowTemplateId
Resposta:
{"id": 19,"template": {"message": "Comentário opcional","files": [{"idFile": 5583,"name": "Meu documento","specialFields": [],"workflowSteps": [{"user": {"name": "Pedro Cavalcante","email": "pedrocavalcante@webbamail.com"},"action": 0,"signatureType": 0,"fields": [{"type": 8,"x": 51,"y": 29,"height": 46,"width": 200,"page": 1}]}],"_embedded": {"file": {"_links": {"download": {"href": "https://api.assine.online/file?q=e2dvb2RfbG9va317ImRhdGEiOnsidXVpZCI6IjM3MTNmNDIwLTU5NTYtMTFlYS05Y2UzLTAyNDJhYzE1MDAwNyJ9LCJobWFjIjoiYjVlMzkzZjAyOWUwZjk1MzdhOGUwZmJiZTI2YzRlNzAwNGEwYzQ0YmRhZWYxOWQyODkxMDlkZDRhYjRiNmYxZCIsIm5vbmNlIjoiNTU0MjE1ODI4MDUwNjMifQ=="}}}}}]},"settings": {"canAddSigners": true},"token": "e2dvb2RfbG9va317ImRhdGEiOnsidHlwZSI6InRlbXBsYXRlIiwiaWQiOjE5fSwiaG1hYyI6ImE4YjJkMzIyZThkYzM1N2IwYjBiYWMwYmFmOWVkZjU3MGI1MGUzMWRlYzFjYjJkOGI1MWQxMzhkN2Y3N2RjN2MiLCJub25jZSI6Ijc4NTgxNTgyODA1MDYzIn0=","type": 1,"title": "","status": 200,"detail": ""}
Na resposta temos todo o payload para a criação de novos workflows bem como o link para upload do documento usado no template e o token caso deseje usar nossa página de integração.
Com essas informações você pode usar todo o conteúdo que está na propriedade template para criar o fluxo de assinatura.