Criando um Documento

Como criar um documento/enviar um documento para assinatura.

A criação de documentos difere um pouco das outras mutations por ter o upload de um arquivo. Primeiramente, vamos precisar escrever a mutation:

mutation CreateDocumentMutation(
  $document: DocumentInput!, # Definição das variáveis $document,
  $signers: [SignerInput!]!, # $signers e $file, com seus respectivos
  $file: Upload!             # tipos. (Os "!" indicam que são
) {                          # parâmetros obrigatórios)      
  createDocument(
    document: $document,     # Passa para os parâmetros da mutation o 
    signers: $signers,       # valor das variáveis.
    file: $file,             #
    organization_id: 123,    # OPCIONAL: Cria em outras organizações do usuário, senão usa a atual
    folder_id: "a1b2c3"      # OPCIONAL: Cria arquivado em uma pasta
  ) {
    id
    name
    refusable
    sortable
    created_at
    signatures {
      public_id
      name
      email
      created_at
      action { name }
      link { short_link }
      user { id name email }
    }
  }
}

Após, precisamos dos valores das variáveis definidas na mutation em um JSON:

Percebeu que não foi colocado nenhum valor para a variável $file? Pois é, como é realizado o upload desse arquivo, a requisição precisa ser enviada como multipart/form-data, dessa forma o arquivo precisa ser um pouco diferente. Você pode fazer isso direto no Altair:

Criando documento em Sandbox

Nossa API também suporta o envio de documento de teste, que não consomem créditos de documentos, assim facilitando a integração para quem ainda não adquiriu um plano com documentos ilimitados. Para saber como faz acesse nossa página de sandbox.

Mais opções

Posicionar campos de assinatura "positions"

Como mostrado no exemplo acima, para adicionar campos de assinatura ao criar o documento você precisa adicionar o atributo "positions".

O "x" é posição horizontal de 0 a 100% O "y" é posição vertical de 0 a 100% O "z" é o número da página começando no 1

O "element" é o tipo de assinatura: "SIGNATURE": Assinatura "NAME": Nome do signatário "INITIALS": Rúbrica "DATE": Data de assinatura "CPF": CPF do signatário

Pra saber quais posições passar no x e y, você pode criar um documento de exemplo no painel do Autentique e buscar as posições ao resgatar o documento usando "positions":

Exigir verificação por SMS e/ou documento com foto "security_verifications"

Para exigir dos signatários a verificação por SMS e/ou documento com foto, é preciso adicionar o atributo "security_verifications" no signatário que você deseja que essas verificações sejam necessárias. Lembrando que você deve consultar no painel o custo de créditos de verificação adicionais necessários.

O "type" é o tipo de verificação: "SMS": Validação por SMS ("verify_phone" é opcional e exige celular especificado) "MANUAL": Exigir documento com foto (Aprovação manual) "UPLOAD": Exigir documento com foto (Documento com foto) "LIVE": Exigir documento com foto (Documento, selfie e prova de vida) "PF_FACIAL": Exigir documento com foto (Biometria SERPRO) "BIOMETRIC_AND_TEXT_EXTRACTION": Exigir documento com foto (Documento com foto e facematch)

Apesar de ser possível ter múltiplas verificações para o mesmo signatário, dentre as seguintes opções somente é possível escolher uma delas por signatário: MANUAL, UPLOAD, LIVE e PF_FACIAL.

Quando utilizar os tipos UPLOAD, LIVE, PF_FACIAL e BIOMETRIC_AND_TEXT_EXTRACTION , há o comportamento padrão de serem alterados para MANUAL quando o signatário exceder a quantidade máxima de tentativas no processo de validação documental. Para desativar esse comportamento é necessário utilizar o parâmetro fallback_behavior, que acusará falha no documento e o rejeitará automaticamente.

Criar documento a partir de modelo

Não há uma forma na API de você conseguir usar os modelos do painel para criar documentos, porém você consegue fazer algo parecido à partir do seu código:

  1. Criar um modelo fixo em HTML na máquina, demarcando os lugares com variáveis para substituir por valores. (Ex: "Eu, $NomeSignatario$ aceito esse contrato")

  2. Por código, duplicar esse HTML e nessa duplicata, substituir os campos de variáveis pelos valores reais. ( Ex: $NomeSignatario$ => Jorge Silva )

  3. Enviar esse arquivo HTML com os valores substituídos para a nossa API, através da mutation createDocument, igual como já funciona para outros tipos de arquivos

Exemplo de criação de documento com NodeJS

Se você usa o Postman, você pode gerar esses exemplos à partir da collection para o Postman disponibilizada aqui na documentação.

Desse exemplo é só substituir o token de API, email do signatário e caminho para o arquivo.

Exemplo de criação de documento com PHP

Se você usa o Postman, você pode gerar esses exemplos à partir da collection para o Postman disponibilizada aqui na documentação.

Desse exemplo é só substituir o token de API, email do signatário e caminho para o arquivo.

Exemplo de criação de documento com Python3

Se você usa o Postman, você pode gerar esses exemplos à partir da collection para o Postman disponibilizada aqui na documentação.

Desse exemplo é só substituir o token de API, email do signatário e caminho para o arquivo.

Exemplo de criação de documento com C#

Se você usa o Postman, você pode gerar esses exemplos à partir da collection para o Postman disponibilizada aqui na documentação.

Desse exemplo é só substituir o token de API, email do signatário e caminho para o arquivo.

Você pode conferir o que é cada um desses parâmetros direto na documentação completa da API GraphQL, no menu Docs do Altair. Se você não sabe como fazer isso, confira o nosso tutorial em Usando o Altair.

Para importar e usar no Postman

Atualizado

Isto foi útil?