Criar documento

post
Criar documento

https://api.zapsign.com.br/api/v1/docs/?api_token={{seu_token_de_acesso}}
Esse endpoint permite que você crie um documento para assinatura. Você deverá enviar os dados em JSON, bem como receberá eles nesse mesmo formato.
Request
Response
Request
Body Parameters
name
required
string
Título do documento. String de até 255 caracteres.
base64_pdf
required
string
Defina o PDF a ser assinado. Aceitamos por enquanto apenas um arquivo no formato PDF, de até 10Mb. Você deve converter o arquivo para uma string em base64 e nos enviar neste parâmetro (mais detalhes abaixo).
signers[name]
required
string
O campo 'signers' representa os signatários do documento, ou seja, quem irá assinar. É um array de objetos. O parâmetro 'name' (nome do signatário) é obrigatório.
signers[email]
optional
string
(Opcional) Você pode definir o e-mail do signatário. Se definido, ele não poderá alterar o e-mail.
signers[auth_mode]
optional
string
(Opcional) Você pode escolher o método de autenticação do signatário. Valores possíveis são: "assinaturaTela" (default), "tokenEmail", "assinaturaTela-tokenEmail", "tokenSms", "assinaturaTela-tokenSms". Correspondem aos mesmos métodos disponíveis na interface web.
Response
200: OK
Documento criado com sucesso.
{
"open_id": 5,
"token": "eb9c367a-e62f-4992-8360-b0219deaeecc",
"status": "pending",
"name": "oi",
"original_file": "https://zapsign.s3.amazonaws.com/pdf/62c2b027-d8fc-4392-xas75-f3c46c3cfc7a/d33336-4182-8c8b-ded5287e4c0f.pdf",
"signed_file": null,
"created_at": "2020-04-16T03:33:46.241747Z",
"last_update_at": "2020-04-16T03:33:46.241775Z",
"signers": [
{
"token": "921c115d-4a6e-445d-bdca-03fadedbbc0b",
"status": "new",
"name": "João da Silva",
"email": "",
"phone_country": "",
"phone_number": "",
"times_viewed": 0,
"last_view_at": null,
"signed_at": null
},
{
"token": "07fb0a0a-4b7d-49a5-bd7b-4958265c4e46",
"status": "new",
"name": "Fulano Siclano",
"email": "",
"phone_country": "",
"phone_number": "",
"times_viewed": 0,
"last_view_at": null,
"signed_at": null
}
]
}

Exemplo de requisição

Os parâmetros devem estar em formato JSON no corpo da requisição

{
"name":"Contrato de Admissão João",
"signers":[
{
"name":"João da Silva"
},
{
"name":"Fulano Siclano",
"email":"fulano@gmail.com",
"auth_mode":"tokenEmail"
}
],
"base64_pdf":"JVBERi0xLjcNCiWhs8XXDQoxIDA..."
}

O que fazer com a resposta

Após uma requisição bem sucedida, você deverá receber uma resposta como essa:

{
"open_id": 5,
"token": "eb9c367a-e62f-4992-8360-b0219deaeecc",
"status": "pending",
"name": "Contrato de Admissão João",
"original_file": "https://zapsign.s3.amazonaws.com/pdf/62xxxxx-d8fc-4392-8575-f3c46c3cfc7a/df6bac91-2766-4182-8c8b-ded5287e4c0f.pdf",
"signed_file": null,
"created_at": "2020-04-16T03:33:46.241747Z",
"last_update_at": "2020-04-16T03:33:46.241775Z",
"signers": [
{
"token": "921c115d-4a6e-445d-bdca-03fadedbbc0b",
"status": "new",
"name": "João da Silva",
"email": "",
"phone_country": "",
"phone_number": "",
"times_viewed": 0,
"last_view_at": null,
"signed_at": null
},
{
"token": "07fb0a0a-4b7d-49a5-bd7b-4958265c4e46",
"status": "new",
"name": "Fulano Siclano",
"email": "",
"phone_country": "",
"phone_number": "",
"times_viewed": 0,
"last_view_at": null,
"signed_at": null
}
]
}

O que você deverá fazer com essa resposta é enviar o link de assinatura para os signatários através da sua aplicação.

O link de assinatura consiste na rota: https://app.zapsign.com.br/verificar/{{signer_token}}

Ou seja, no exemplo acima, em que temos dois signatários, você deve enviar dois links de assinatura, cada signatário com seu respectivo token: - João da Silva: https://app.zapsign.com.br/verificar/921c115d-4a6e-445d-bdca-03fadedbbc0b - Fulano Siclano: https://app.zapsign.com.br/verificar/07fb0a0a-4b7d-49a5-bd7b-4958265c4e46

E agora é só aguardar que os signatários assinem!

Sobre o base64

Base64 é uma maneira simples de converter um arquivo em texto. Veja aqui uma definição mais completa https://pt.wikipedia.org/wiki/Base64. Assim, converter o arquivo em base64 e enviar como texto no corpo da requisição é mais fácil do que lidar com multipart/form-data, por exemplo.

Para testar a API, você pode converter manualmente seu PDF em base64 através de vários sites, como esse: https://base64.guru/converter/encode/pdf

Quando a API já estiver integrada em seu sistema, procure a função adequada na sua linguagem de programação que pode converter o arquivo em base64.

Observação: você deve enviar o parâmetro base64_pdf apenas com a conversão do arquivo em base64. Não insira data:application/pdf;base64, na sua string.

Em breve, suportaremos outras formas de envio de arquivo na API, como URLs.

Exemplos de requisição em algumas linguagens de programação

PHP

<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.zapsign.com.br/api/v1/docs/?api_token=1e19d1f9-69e0-4a66-b93d-e515fdf081c693b8b613-25e9-4536-b5df-76d25120449a",
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\"name\":\"Contrato de Admissão João\",\"signers\":[{\"name\":\"João da Silva\"},{ \"name\":\"Fulano Siclano\"}],\"base64_pdf\":\"JVBERi0xLjcNCiWhs8XXDQoxIDA...\"}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;

Python

import requests
url = "https://api.zapsign.com.br/api/v1/docs/?api_token=1e19d1f9-69e0-4a66-b93d-e515fdf081c693b8b613-25e9-4536-b5df-76d25120449a"
payload = "{\"name\":\"Contrato de Admissão João\",\"signers\":[{\"name\":\"João da Silva\"},{ \"name\":\"Fulano Siclano\"}],\"base64_pdf\":\"JVBERi0xLjcNCiWhs8XXDQoxIDA...\"}"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))

Node.js

var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.zapsign.com.br/api/v1/docs/?api_token=1e19d1f9-69e0-4a66-b93d-e515fdf081c693b8b613-25e9-4536-b5df-76d25120449a',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({"name":"Contrato de Admissão João","signers":[{"name":"João da Silva"},{"name":"Fulano Siclano"}],"base64_pdf":"JVBERi0xLjcNCiWhs8XXDQoxIDA..."})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});