# Criar documento via Upload

A plataforma da ZapSign permite configurar cada signatário individualmente, **definindo não apenas os dados de contato, mas também preferências de autenticação, mensagens e ordem de assinatura.**

Neste artigo, vamos detalhar cada campo configurável para signatários ao criar um documento por upload de PDF ou um DOCX.\
\
Nesta seção:\
[**Configurando o Documento;**](#configurando-documento)\
[**Configurando Signatários;**](#configurando-signatarios)\
[**Exemplos de requesições prontas;**](#exemplos-de-requisicao)\
[**O que faço com a resposta?**](#o-que-faco-com-a-resposta)\
[**Sobre o Base64**](#sobre-o-base64)[**;**](#sobre-o-base64)

***

### Configurando documento

\
Na configuração do documento, você define as propriedades básicas para criar e gerenciar um documento na plataforma. Esses campos incluem o nome, status inicial, e URLs do arquivo original e assinado, formando a estrutura essencial do documento. Essa etapa garante que o documento esteja corretamente identificado e acessível ao longo de todo o processo de assinatur&#x61;**.Você deverá enviar os dados em JSON, bem como receberá eles nesse mesmo formato.**<br>

<mark style="color:green;">`POST`</mark> `https://api.zapsign.com.br/api/v1/docs/`

#### Headers

| Name                                            | Type   | Description                                                                                     |
| ----------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | string | <p>Api token a frente do texto "Bearer". </p><p>Ex: Bearer c7f35c84-7893-4087-b4fb-d1f06c23</p> |

#### Request Body

<table><thead><tr><th>Name</th><th>Type</th><th width="274">Description</th></tr></thead><tbody><tr><td>name</td><td>string</td><td>Título do documento. String de até 255 caracteres</td></tr><tr><td>url_pdf</td><td>string</td><td>Defina o PDF a ser assinado, a partir de uma URL pública com o arquivo. Aceitamos por enquanto apenas um arquivo no formato PDF, de até 10Mb. </td></tr><tr><td>base64_pdf</td><td>string</td><td><strong>Alternativa ao url_pdf:</strong> Defina o PDF a ser assinado, a partir de um base64. Você deve converter o arquivo para uma string em base64 e nos enviar neste parâmetro (mais detalhes abaixo).</td></tr><tr><td>signers[name]</td><td>Array&#x3C;Signer></td><td><p>O campo 'signers' representa os signatários do documento, ou seja, quem irá assinar. A configuração de cada signatário esta abaixo.</p><p>É um array de objetos.</p></td></tr><tr><td>markdown_text</td><td>string</td><td><strong>Aternativa ao url_pdf:</strong> Permite enviar um texto em Markdown para a criação do documento, facilitando a integração com IA e automações.  Como exemplo, confira o <a href="https://github.com/renatohr/zapsign-agent-openai">ZapSign Agent OpenAI</a>, que demonstra como agentes de IA podem utilizar essa funcionalidade.</td></tr><tr><td>url_docx</td><td>string</td><td><strong>Alternativa ao url_pdf:</strong> Defina o Word (.docx) a ser assinado, a partir de uma URL pública com o arquivo. Aceita um arquivo no formato .docx, de até 10Mb. </td></tr><tr><td>base64_docx</td><td>string</td><td><strong>Alternativa ao url_pdf:</strong> Defina o Word (.docx) a ser assinado, a partir de um base64. Você deve converter o arquivo para uma string em base64 e nos enviar neste parâmetro (mais detalhes abaixo).</td></tr><tr><td>lang </td><td>string</td><td>idioma do documento. Valores possíveis: "pt-br" (português), "es" (espanhol), "en" (inglês). Default: "pt-br"</td></tr><tr><td>disable_signer_emails </td><td>boolean</td><td>para desativar os e-mails enviados aos signatários, envie esse parâmetro como true. Default: false</td></tr><tr><td>brand_logo </td><td>string</td><td><p>(se deseja personalizar a logomarca da experiência de assinatura deste documento específico, envie a URL da imagem (precisa ser um link publicamente acessível). </p><p>Default: ""</p></td></tr><tr><td>brand_primary_color </td><td></td><td><p>se deseja personalizar a cor primária (do botão) da experiência de assinatura deste documento específico, envie em rgb ou hexadecimal. </p><p>Ex: "#0011ee". </p><p>Default: ""</p></td></tr><tr><td>brand_name</td><td>string</td><td><p>se deseja personalizar o nome do remetente dos e-mails enviados ao signatário, insira aqui o nome da marca. Por exemplo, se inserido "XPTO Advogados", o remetente do e-mail será "XPTO Advogados via ZapSign". </p><p>Max-length: 100 caracteres. </p><p>Default: ""</p></td></tr><tr><td>external_id</td><td>string</td><td><p>ID do documento na sua aplicação.</p><p>Default: ""</p></td></tr><tr><td>folder_path</td><td>string</td><td><p>caminho da pasta dentro da ZapSign em que o documento será colocado. Se as pastas não existirem, serão criadas automaticamente. Requisitos: (1) o folder_path pode ter até 255 caracteres, (2) cada pasta pode ter até 50 caracteres, (3) há um limite de 5 níveis de pasta. </p><p>Ex.: "/api/" ou "/pasta1/pasta2/pasta3/". </p><p>Default: "/" (sem pasta).</p></td></tr><tr><td>created_by</td><td>string</td><td><p>e-mail do usuário que será definido como criador do documento, para fins de organização interna. Caso o e-mail não exista ou não seja usuário da sua conta, este parâmetro será ignorado. </p><p>Default: "" </p><p>(documento terá como criador o proprietário da conta)</p></td></tr><tr><td>date_limit_to_sign </td><td>DateTime</td><td><p>Data limite para assinatura do documento. </p><p>Formatos aceitos: </p><p>YYYY-MM-DD</p><p>YYYY-MM-DDTH:m:s.ssssssZ</p></td></tr><tr><td>signature_order_active</td><td>boolean</td><td><p>Se verdadeiro, as assinaturas do signatário serão solicitadas sequencialmente. </p><p>Default: false</p></td></tr><tr><td>observers </td><td>array&#x3C;string></td><td>Representa os observadores do documento (limite de 20), ou seja, endereços de e-mails que serão notificados após a conclusão do fluxo de assinatura. É um array de strings.</td></tr><tr><td>reminder_every_n_days </td><td>integer</td><td>Representa o intervalo de dias entre os lembretes que serão enviados para os signatários.</td></tr><tr><td>allow_refuse_signature </td><td>boolean</td><td>Se verdadeiro, os signatários tem a opção de se recusar a assinar. Default: false.</td></tr><tr><td>disable_signers_get_original_file </td><td>boolean</td><td><p>Se verdadeiro, os signatários não tem a opção de baixar o documento original. </p><p>Default: false.</p></td></tr><tr><td>Metadata</td><td>array</td><td>Metadados personalizados enviados na criação do documento, no formato de pares <code>key</code> e <code>value</code>. Essas informações aparecem apenas nos webhooks de criação, assinatura, recusa e exclusão.</td></tr><tr><td>folder_token</td><td>string</td><td><p>Se preenchido, este campo terá prioridade sobre <code>folder_path</code>. Ele define o diretório com base no <strong>token da pasta</strong>, que pode ser obtido acessando o seguinte endereço:<br><code>https://app.zapsign.com.br/conta/documentos?pasta=&#x3C;token_da_pasta></code></p><p>Se você ainda não souber o token, navegue até a pasta desejada a partir de:<br><code>https://app.zapsign.com.br/conta/documentos</code><br>e copie o valor do parâmetro <code>pasta</code> na URL após acessar a pasta.</p></td></tr><tr><td>has_simplified_signature</td><td>boolean</td><td>Se verdadeiro, ativa a assinatura simplificada para todos os signatários no local informado pelo parâmetro <code>simplified_signature_position</code></td></tr><tr><td>simplified_signature_position</td><td>string</td><td><p></p><p>Define onde inserir o campo de assinatura simplificada. Valores aceitos:<br></p><p>"left": insere na lateral esquerda das páginas.<br></p><p>"bottom": insere no rodapé das páginas.<br></p><p>"right": insere na lateral direita das páginas.</p></td></tr><tr><td>signature_placement</td><td>string</td><td><p>Permite posicionar a assinatura no documento usando um texto âncora (sem necessidade de coordenadas x, y). Configure signature_placement: "&#x3C;&#x3C;{identificador_da_assinatura}>>" e a assinatura será posicionada onde encontrar esse texto. Se o texto aparecer mais de uma vez, a assinatura será posicionada em todos os locais. </p><p></p><p><strong>Observação</strong>: o uso de <mark style="color:$danger;"><strong>&#x3C;&#x3C; >></strong></mark> é altamente recomendado para evitar conflitos com o texto, mas não é obrigatório. Ex: "&#x3C;>". Default: "". Caso não queira que o texto âncora fique visível no documento final, basta definir a cor do texto âncora igual à cor de fundo do documento.</p></td></tr><tr><td>rubrica_placement</td><td>string</td><td><p>Permite posicionar a rubrica no documento usando um texto âncora (sem necessidade de coordenadas x, y). Configure rubrica_placement: "&#x3C;&#x3C;{identificador_da_rubrica}>>" e a rubrica será posicionada onde encontrar esse texto. Se o texto aparecer mais de uma vez, a rubrica será posicionada em todos os locais. </p><p></p><p><strong>Observação</strong>: o uso de <mark style="color:$danger;"><strong>&#x3C;&#x3C; >></strong></mark> é altamente recomendado para evitar conflitos com o texto, mas não é obrigatório. Ex: "&#x3C;>". Default: "". Caso não queira que o texto âncora fique visível no documento final, basta definir a cor do texto âncora igual à cor de fundo do documento.</p></td></tr></tbody></table>

{% tabs %}
{% tab title="200 Documento criado com sucesso." %}

```javascript
{
    "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",
            "sign_url": "https://app.zapsign.com.br/verificar/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",
            "sign_url": "https://app.zapsign.com.br/verificar/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
        }
    ]
}
```

{% endtab %}
{% endtabs %}

#### Assinatura simplificada

A assinatura simplificada substitui o desenho da assinatura por um bloco de texto com dados do(s) signatário(s). Esse bloco é inserido automaticamente e costuma aparecer na margem lateral da página. Parâmetros aceitos:

`has_simplified_signature` (boolean): ativa a assinatura simplificada para todos os signatários.

* true: insere o bloco de texto; não há campo de desenho.
* false ou ausente: nenhum efeito de assinatura simplificada (fluxo normal de assinatura).

`simplified_signature_position` (string): posiciona o bloco de texto.

* "bottom": Insere a assinatura simplificada no rodapé das página.
* "left":  Insere a assinatura simplificada na lateral esquerda das páginas.
* "right"  Insere a assinatura simplificada na lateral direita das páginas.

### Configurando signatários

Esses campos permitem ajustar a experiência de assinatura para cada pessoa envolvida. Personalizando cada signatário, desde o método de autenticação até as preferências de contato, ordem de assinatura e mensagens automáticas.

**Documento** - raiz do JSON:

* **Signers**&#x20;

  * **auth\_mode** (string):\
    &#x20;

    <table><thead><tr><th width="262">auth_mode</th><th>Descrição</th><th>Custo</th></tr></thead><tbody><tr><td>"assinaturaTela"</td><td>Assinatura diretamente na tela.</td><td>Sem custo </td></tr><tr><td>"tokenEmail"</td><td>Envio de token via e-mail para autenticação.</td><td>Sem custo </td></tr><tr><td>"assinaturaTela-tokenEmail"</td><td>Combinação de assinatura na tela e token enviado por e-mail.</td><td>Sem custo </td></tr><tr><td>"tokenSms"</td><td>Envio de token via SMS para autenticação.</td><td>R$0,10 por envio</td></tr><tr><td>"assinaturaTela-tokenSms"</td><td>Combinação de assinatura na tela e token enviado por SMS.</td><td>R$0,10 por envio</td></tr><tr><td>"tokenWhatsapp"</td><td>Envio de token via WhatsApp para autenticação.</td><td>5 créditos</td></tr><tr><td>"assinaturaTela-tokenWhatsapp"</td><td>Combinação de assinatura na tela e token enviado por WhatsApp.</td><td>5 créditos</td></tr><tr><td>"certificadoDigital"</td><td>Autenticação com certificado digital.</td><td>5 créditos</td></tr></tbody></table>

  * **name** (string): O nome do signatário. Obrigatório.

  * **email** (string): Você pode definir o e-mail do signatário

  * **phone\_country** (string): Você pode definir o telefone (código do país) do signatário. Default: "" (sugestão: utilizar "55" para código do Brasil)

  * **phone\_number** (string): Você pode definir o telefone (DDD + número) do signatário. Exemplo: "11998989222". Default: ""

  * **signature\_placement** (string): Permite posicionar a assinatura no documento usando um texto âncora (sem necessidade de coordenadas x, y). Configure signature\_placement: "<<{identificador\_da\_assinatura}>>" e a assinatura será posicionada onde encontrar esse texto. Se o texto aparecer mais de uma vez, a assinatura será posicionada em todos os locais. Observação: o uso de << >> é altamente recomendado para evitar conflitos com o texto, mas não é obrigatório. Ex: "<\<signer1>>". Default: "". Caso não queira que o texto âncora fique visível no documento final, basta definir a cor do texto âncora igual à cor de fundo do documento.

  * **rubrica\_placement** (string): Permite posicionar a rubrica no documento usando um texto âncora (sem necessidade de coordenadas x, y). Configure rubrica\_placement: "<<{identificador\_da\_rubrica}>>" e a rubrica será posicionada onde encontrar esse texto. Se o texto aparecer mais de uma vez, a rubrica será posicionada em todos os locais. Observação: o uso de << >> é altamente recomendado para evitar conflitos com o texto, mas não é obrigatório. Ex: "<\<signer1Rubrica>>". Default: "". Caso não queira que o texto âncora fique visível no documento final, basta definir a cor do texto âncora igual à cor de fundo do documento.

  * **require\_cpf** (boolean): Você pedir o CPF do signatário. Se não preencher o número de CPF com o parâmetro "cpf", o signatário preencherá essa informação na assinatura do documento e ela será registrada no relatório de assinaturas.Default: false

  * **validate\_cpf** (boolean): se true valida o CPF, o nome e a data de nascimento na Receita Federal. Para utilizá-lo, é necessário preencher o campo "cpf", e o signatário preencherá a data de nascimento. Default: false.

  * **cpf** (string): Você informar o CPF do signatário. Default: ""

  * **send\_automatic\_email** (boolean): Se **true**, a ZapSign irá enviar um e-mail ao signatário com o link para assinar o documento. Se **false** (default), [você é quem se encarregará de compartilhar o link de assinatura com o signatário](https://docs.zapsign.com.br/documentos/criar-documento#o-que-fazer-com-a-resposta), seja pelo seu site, widget, WhatsApp, SMS, e-mail, chat etc. Observação: para isso funcionar, é obrigatório que o email do signatário seja definido.

  * **send\_automatic\_whatsapp** (boolean): Se **true**, a ZapSign irá enviar uma mensagem por WhatsApp ao signatário com o link para assinar o documento. Se **false** (default), [você é quem se encarregará de compartilhar o link de assinatura com o signatário](https://docs.zapsign.com.br/documentos/criar-documento#o-que-fazer-com-a-resposta), seja pelo seu site, widget, WhatsApp, SMS, e-mail, chat etc. \
    Observação: para isso funcionar, é obrigatório que o phone\_country e phone\_number do signatário sejam definidos e **cada envio automático via WhatsApp custa R$ 0,50. Adicione créditos em** [**Configurações > Plano**](https://app.zapsign.com.br/conta/configuracoes?tab=plans)**.**

  * **send\_automatic\_whatsapp\_signed\_file** (boolean): Se **true**, a ZapSign irá enviar uma mensagem por WhatsApp ao signatário com o link para o arquivo assinado. Se **false** (default), [você é quem se encarregará de compartilhar o link de assinatura com o signatário](https://docs.zapsign.com.br/documentos/criar-documento#o-que-fazer-com-a-resposta), seja pelo seu site, widget, WhatsApp, SMS, e-mail, chat etc. \
    Observação: para isso funcionar, é obrigatório que o phone\_country e phone\_number do signatário sejam definidos e **cada envio automático via WhatsApp custa R$ 0,50. Adicione créditos em** [**Configurações > Plano**](https://app.zapsign.com.br/conta/configuracoes?tab=plans)**.**

  * **order\_group** (integer)**:** Caso "signature\_order\_active" esteja ativo no document, esse campo controla a ordem de assinatura. Exemplo: Se o order\_group é 1, esse será o primeiro a assinar, se o order\_group for 2 esse será o segundo a assinar e assim por diante.

  * **custom\_message** (string): (se aplica para **send\_automatic\_email: true** e **send\_automatic\_whatsapp: true**). A custom\_message é a mensagem personalizada que você pode inserir no e-mail enviado pela ZapSign ao signatário. Exemplo: "Olá Fulano, \n Este é o seu contrato de trabalho. \n Abraços, Equipe XPTO". Envios por Whatsapp não devem conter quebras de linhas, tabs e mais de 4 espaços consecutivos". Default: ""

  * **lock\_email** (boolean): Você pode bloquear alterações ao e-mail do signatário. Default: false

  * **blank\_email** (boolean): Você pode não solicitar o email do signatário. Default: false

  * **hide\_email** (boolean): Você pode ocultar o email do signatário no relatório de assinaturas. Default: false

  * **lock\_phone** (boolean): Você pode bloquear alterações ao telefone do signatário. Default: false

  * **blank\_phone** (boolean): Você pode não solicitar o telefone do signatário. Default: false

  * **hide\_phone** (boolean): Você pode ocultar o telefone do signatário no relatório de assinaturas. Default: false

  * **lock\_name** (boolean): Você pode bloquear alterações ao nome do signatário. Default: false

  * **require\_selfie\_photo** (boolean): Você pode pedir que o signatário tire uma selfie enquanto assina. Default: false

  * **require\_document\_photo** (boolean): Você pode pedir que o signatário tire uma foto de seu documento pessoal enquanto assina (ex: RG ou CNH). Default: false

  * **selfie\_validation\_type (string):** Métodos avançados de biometria. Os disponíveis atualmente são:

  <table><thead><tr><th width="159">Selfie_validation_type</th><th width="290">Descrição</th><th width="109">Paises</th><th>Valor por validação</th></tr></thead><tbody><tr><td>"liveness-document-match"</td><td>Reconhecimento facial que solicita que o signatário faça o upload de uma foto do documento de identidade e grave o rosto. Valida que a pessoa é a mesma do documento e que está presente no momento da assinatura. Se você já tem o documento do signatário, leia a seção <strong>R</strong><a href="#reconhecimento-facial"><strong>econhecimento Facial</strong>.</a></td><td>Todos os países</td><td>15 creditos</td></tr><tr><td>"liveness-NXCD"</td><td>Valida que a pessoa está presente no momento da assinatura com um vídeo passivo (liveness)</td><td>Todos os países</td><td>15 creditos </td></tr><tr><td><p>“face-match-and-datavalid”</p><p><br></p></td><td>Autenticação via verificação facial com correspondência no banco de dados do governo (Serpro), confirmando o CPF e a CNH. Para utilizá-lo, é necessário preencher o parametro <strong>"cpf"</strong></td><td>Disponível somente para o Brasil.</td><td>35 créditos</td></tr><tr><td><p>“identity-verification-global”</p><p><br></p></td><td>Verificação global da identidade do signatário no momento da assinatura, incluindo autenticação do documento e correspondência facial.</td><td>Todos os países</td><td>50 créditos</td></tr></tbody></table>

  Para mais informações sobre os métodos de autenticação, consulte o artigo [Criando documento,](https://clients.zapsign.com.br/help/criando-documentos#autentica%C3%A7%C3%B5es) na nossa central de ajuda.

{% hint style="info" %}
Cada 1 crédito equivale a R$0,10. Assim, 35 créditos equivalem a R$3,50, por exemplo. Adicione créditos na sua conta em [Configurações > Plano > Créditos](https://app.zapsign.com.br/conta/configuracoes/plans?tab=credits) ou converse com a nossa [equipe comercial.](https://api.whatsapp.com/send?phone=551140401991\&text=Quero%20cancelar%20meu%20plano%20e%20gostaria%20de%20atendimento.)
{% endhint %}

Além de configurar seu método de autenticação para cada signatário, você também pode configurar:

* **qualification** (string): Qualificação para aparecer no relatório de assinaturas. Ex: valor "testemunha" irá resultar em "Assinou como testemunha". Default: ""
* **external\_id** (string): ID do signatário na sua aplicação. Default: ""
* **redirect\_link** (string): link para redirecionamento após signatário assinar. Por exemplo: "<https://www.seusite.com.br/agradecimento>". Irá aparecer como um botão "CONTINUAR" abaixo dos botões "Baixar original" e "Baixar assinado". Lembre-se de inserir o http\:// ou https\:// no começo do link.  Default: ""

***

### Exemplos de requisição

#### Criar documento a partir de um PDF

{% embed url="<https://www.postman.com/zapsign/zapsign-workspace/request/2iib1u6/create-doc-from-upload-pdf?ctx=documentation>" %}
Upload de documento PDF
{% endembed %}

#### Criar documento a partir de um DOCX

{% embed url="<https://www.postman.com/zapsign/zapsign-workspace/request/fbktel5/create-doc-from-upload-docx?ctx=documentation>" %}
Upload de documento DOCX
{% endembed %}

<details>

<summary>Exemplo de requisição em Delphi</summary>

```javascript
var
  json : string;
  ArraySigner : TJSONArray;
  ObjDoc, ObjSigner : TJSONObject;
begin
   ObjDoc := TJSONObject.Create;
   ObjDoc.AddPair('name', 'Contrato de Locação');
   ObjDoc.AddPair('base64_pdf', 'ASFASDFKÇLKÇGÇO#OP%$%#WERP#@&*OSADFJF...');  // Arquivo base64

   ArraySigner := TJSONArray.Create;

   ObjSigner := TJSONObject.Create;
   ObjSigner.AddPair('name', 'João da Silva');
   ObjSigner.AddPair('email', 'joaosilva@gmail.com.br');
   ObjSigner.AddPair('phone_country', '55');
   ObjSigner.AddPair('phone_number', '11888121111');
   // Opcional caso queira impedir alteração 
   ObjSigner.AddPair('lock_name', TJSONTrue.Create);
   ObjSigner.AddPair('lock_email', TJSONTrue.Create);
   ObjSigner.AddPair('lock_phone', TJSONTrue.Create);

   ArraySigner.AddElement(ObjSigner);

   ObjDoc.AddPair('signers', ArraySigner);
   json := ObjDoc.ToString;

   ObjDoc.DisposeOf;

   RESTClient.BaseURL := 'https://api.zapsign.com.br/api/v1/docs/?api_token=...seu token..';
   Request_remete.ClearBody;
   Request_remete.Body.Add(json,ContentTypeFromString('application/json'));
   Request_remete.Execute;
end;
```

</details>

***

### O que faço com a resposta?

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

```javascript
{
    "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",
            "sign_url": "https://app.zapsign.com.br/verificar/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,
            "resend_attempts": null
        },
        {
            "token": "07fb0a0a-4b7d-49a5-bd7b-4958265c4e46",
            "sign_url": "https://app.zapsign.com.br/verificar/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,
            "resend_attempts": null
        }
    ]
}
```

{% hint style="warning" %}
**Atenção**: os links retornados em **original\_file** e **signed\_file** são temporários e duram **60 minutos**. Caso seu sistema necessite salvar estes links é recomendado que sejam baixados em uma CDN própria ou que o endpoint de [Detalhar documento](https://docs.zapsign.com.br/documentos/detalhar-documento) seja consultado sempre para garantir que seu usuário sempre receberá um link válido.
{% endhint %}

O próximo passo é compartilhar os links de assinatura com cada signatário através da sua aplicação. Cada link é composto pela rota base:

```arduino
https://app.zapsign.com.br/verificar/{{signer_token}}
```

No exemplo acima, em que temos dois signatários, você deverá enviar dois links específicos, um para cada signatário, utilizando o 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>

Agora, basta aguardar que os signatários acessem os links e concluam a assinatura!

***

### **Reconhecimento Facial**

O método de autenticação valida a **presença física** da pessoa no momento da assinatura e garante que o rosto corresponde ao documento apresentado.

Se a empresa já possui a foto do documento de identidade do signatário, ela pode ser enviada na requisição para que o signatário apenas grave um vídeo do rosto, e esse vídeo será comparado com o documento que a empresa possui. Para isso, é necessário enviar os seguintes parâmetros:

* **document\_photo\_url** (string): URL pública da **frente** da foto do documento de identidade. Essa foto será comparada com o vídeo gravado pelo signatário durante a assinatura do documento.
* **document\_verse\_photo\_url** (string): URL pública do **verso** da foto do documento de identidade. Ambas as fotos, junto com uma captura do vídeo gravado pelo signatário, serão registradas no relatório de assinaturas.

{% hint style="warning" %}
**Importante**: Este método **não valida a autenticidade do documento de identidade**, apenas verifica a correspondência entre a pessoa e o documento apresentado. Para um nível maior de segurança, consulte o método de autenticação [**"Validação de Identidade"**.](https://clients.zapsign.com.br/help/valida%C3%A7%C3%A3o-de-identidade-da-zapsign)
{% endhint %}

Saiba mais sobre **reconhecimento facial** [clicando **aqui**.](https://clients.zapsign.com.br/help/como-funciona-o-reconhecimento-facial)

### 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://products.aspose.app/pdf/pt/conversion/word-to-base64>

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.&#x20;

{% hint style="warning" %}
**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.
{% endhint %}

Não quer trabalhar com base64? **Suba seu PDF em uma url pública e use o parâmetro url\_pdf.**

### Converse com o Gepeto!

Tem alguma duvida? Utilize nossa inteligência artificial treinada com toda a documentação da API =)

{% embed url="<https://n8n.zapsign.com.br/webhook/fee2c476-7f23-4a4f-8928-5c7ab081ffcd/chat>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zapsign.com.br/documentos/criar-documento.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
