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 Altairarrow-up-right:

circle-exclamation

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

Validações adicionais

Você pode implementar validações adicionais em seus documentos. Estas configurações devem ser inseridas na lista security_verifications do objeto do signatário, utilizando o campo type para definir a modalidade de desafio desejada. Além dos tipos, campos como verify_phone e cpf auxiliam na entrega dos códigos de segurança e na identificação precisa da parte.

Campo / Tipo de Verificação
Como funciona

verify_phone

O signatário precisará validar um número de celular através de um código enviado por SMS. Você pode preencher o número ou deixar em branco para que o próprio signatário informe

cpf

Configuração que garante que apenas o signatário com o CPF especificado possa assinar o documento. Se definido, o sistema obriga o preenchimento ou validação desse dado na conta do signatário.

MANUAL

O signatário anexará um documento de identificação com foto, e tirará uma selfie. Você ou algum membro da sua organização poderão aprovar ou rejeitar os documentos e selfie enviados.

UPLOAD

O signatário precisará anexar frente e verso de um documento de identificação com foto, com seu smartphone ou computador.

LIVE

O signatário precisará anexar um documento de identificação com foto, tirar uma selfie com seu smartphone e realizar uma prova de vida. A foto do documento será automaticamente comparada com a selfie para verificar o grau de semelhança

PF_FACIAL

O signatário tira uma selfie que é validada pelo SERPRO, comparando-a com as fotos de registro do governo brasileiro vinculadas ao CPF informado

BIOMETRIC_AND_TEXT_EXTRACTION

O signatário precisará fotografar um documento de identificação e tirar uma selfie, a foto do documento será comparada com a selfie para determinar o grau de semelhança.

LIVENESS_AND_TEX_ESTRACTION

O signatário precisará realizar uma prova de vida e fotografar um documento de identificação com foto. As informações do documento serão extraídas automaticamente e comparadas para verificar o grau de semelhança.

chevron-rightPosicionar campos de assinatura "positions"hashtag

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":

chevron-rightExigir verificação por SMS e/ou documento com foto "security_verifications"hashtag

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.

chevron-rightCriar documento a partir de modelohashtag

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

chevron-rightExemplo de criação de documento com NodeJShashtag

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.

chevron-rightExemplo de criação de documento com PHPhashtag

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.

chevron-rightExemplo de criação de documento com Python3hashtag

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.

chevron-rightExemplo de criação de documento com C#hashtag

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.

circle-info

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

Para importar e usar no Postman

Atualizado