Manual QI Sign
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
Introdução
Bem vindo à API de Assinaturas da QiTech! Esta API dá acesso ao serviço de assinatura eletrônica de documentos!
Problemas?
Caso tenha algum problema entre em contato com o nosso suporte (suporte@qitech.com.br) e nós responderemos o mais rápido possível.
Ambientes
Possuímos dois ambientes para os nossos clientes. A URL base das APIs são:
- Produção -
https://api.sign.qitech.com.br/ - Sandbox -
https://api.sandbox.sign.qitech.com.br/
Somente HTTPS
Por questão de segurança, toda a comunicação com as APIs da QI Tech devem ser realizadas utilizando a comunicação HTTPS. Para garantir que, por desatenção ou qualquer outro motivo, não ocorram chamadas HTTP, este servidor somente disponibiliza a porta 443 com comunicação TLS 1.2. Chamadas realizadas utilizando outros protocolos serão automaticamente negadas.
Autenticação
Para autenticar uma chamada, utilize o código seguinte:
# No shell, você somente precisa adicionar o header adequado em cada requisição
curl "api_endpoint_here"
-H "Authorization: EXAMPLE_API_KEY"
Substitua a API key 'EXAMPLE_API_KEY' com a sua chave adquirida com o nosso suporte.
Utilizamos uma API Key para permitir acesso a nossa API. Ela provavelmente já foi enviada por e-mail para você. Caso você ainda não tenha recebido a sua chave, envie um e-mail para suporte@qitech.com.br.
Nossa API espera receber a API Key em todas as requisições ao nosso servidor em um header como o abaixo:
Authorization: EXAMPLE_API_KEY
Envelopes são os objetos que contêm os documentos a serem assinados eletronicamente. Eles são criados a partir de um ou mais arquivos e podem ser enviados para assinatura por e-mail, SMS ou WhatsApp. Para criar um envelope, você deve enviar um arquivo ou um conjunto de arquivos para a API. O envelope será criado e você receberá um identificador único para ele.
Criando um Envelope
Para criar um Envelope, realize uma chamada POST para o endpoint /sign/envelope com os dados do(s) assinante(s).
curl -X POST \
https://api.sign.qitech.com.br/sign/envelope \
-H 'Content-Type: application/json' \
-H "Authorization: EXAMPLE_API_KEY" \
-d '{
"id": "814e7ed3-4080-4cae-a853-8e12812817ea",
"subject": "CCB QiTech",
"expiration_date": "2023-09-20",
"signers": [
{
"id": "1",
"name": "John Sample",
"email": "johnsample@test.com",
"birthdate": "1992-09-15",
"document_number": "111.111.111-11",
"phone": {
"international_dial_code": "55",
"area_code": "11",
"number": "988878722"
},
"document_submission_method": "email",
"authentication_submission_method": "sms"
}
]
}'
Definição do Objeto Envelope
Todas as trocas de informação de um envelope utilizam a seguinte definição para este objeto. Em alguns casos, para facilitar a implementação e diminuir o fluxo de dados entre as partes, algumas informações poderão ser omitidas.
| Nome | Tipo | Descrição |
|---|---|---|
| id | string | Identificador único do envelope. É essencial que este número seja único |
| subject | string | Título do envelope. Aparece no assunto do email. |
| expiration_date | string | Data de expiração do envelope no formato YYYY-MM-DD. |
| signers | list | Lista de objetos do tipo Signer que descreve os assinantes do envelope. |
Definição do Objeto Signer
| Nome | tipo | descrição |
|---|---|---|
| id | string | Identificador da transação do assinante. É essencial que este número seja único por envelope |
| string | Endereço de e-mail do assinante. | |
| name | string | Nome completo do assinante. |
| birthdate | string | Data de nascimento do assinante no formato YYYY-MM-DD. |
| document_number | string | Número do documento do assinante. |
| phone | object | Objeto que descreve o telefone do assinante. |
| phone.international_dial_code | string | Código do país do telefone do assinante. |
| phone.area_code | string | Código de área do telefone do assinante. |
| phone.number | string | Número do telefone do assinante. |
| document_submission_method | enum | Método de envio dos documentos para assinatura. Métodos disponíveis: _email, sms e whatsapp _ |
| authentication_submission_method | enum | Método de envio do token de autenticação para assinatura. Métodos disponíveis: _email, sms e whatsapp _ |
- Campo email e phone podem ser enviados juntos ou separados, mas ao menos um deles deve ser enviado.
- Todos os campos são obrigatórios.
Resposta da criação do envelope
Após o sucesso na criação do envelope, a resposta será um JSON contendo o id e status do envelope, conforme o exemplo ao lado:
Resposta exemplo
{
"id": "814e7ed3-4080-4cae-a853-8e12812817ea",
"status": "created"
}
Adicionando documentos de identificação ao assinante
Para adicionar documentos de identificação ao assinante, realize uma chamada POST para o endpoint /sign/envelope/\{envelope_id\}/signer/\{signer_id\}/personal_document para cada documento a ser adicionado. O arquivo deve ser enviado no corpo da requisição seguindo o seguinte formato:
{
"document_b64": "Q5YACgAAAABDlgAbAAAAAEOWAC0AAAAAQ5YAPwAAAABDlgdN...",
"template": "cnh_front",
"file_type": "jpeg"
}
Templates dispon íveis
Para cada tipo de documento de identificação, é necessário informar o template correspondente. Os templates disponíveis são:
| Template | Descrição |
|---|---|
| cnh_front | Carteira Nacional de Habilitação brasileira frente (Lado da foto). |
| cnh_back | Carteira Nacional de Habilitação brasileira frente (Lado da assinatura). |
| rg_front | Carteira de Identidade brasileira frente (Lado da foto). |
| rg_back | Carteira de Identidade brasileira verso (Lado dos dados). |
Descrição dos Atributos de Envio
| Atributo | Descrição |
|---|---|
| document_b64 | Documento de identificação codificado em base64. |
| template | Declara o template que deve ser aplicado para análise da imagem. |
| file_type | Identifica o formato do arquivo enviado, jpeg. Caso não seja enviado, o valor jpeg é assumido. |
- O tamanho máximo do documento de identificação deve ser de 10 MB
- Todos os campos são obrigatórios exceto o
file_type.