Pular para conteúdo

Extrair dados do arquivo

URN

  • /ia/arquivo/extrair

Método:

  • POST

Headers

{
    "Content-Type": "multipart/form-data",
    "Authorization": "Token XXXXXXXXXXXXXXXX"
}

Body

  • file: Arquivo de imagem do documento (tipos aceitos: png, jpg, jpeg, webp).

  • fields: Array de objetos especificando os campos que devem ser extraídos da imagem.

    • name: Nome do campo a ser extraído, obrigatório e limitado a 255 caracteres.
    • description: Descrição do campo, obrigatória e limitada a 255 caracteres.
  • check_document: Booleano que ativa a validação do tipo de documento.

  • document: Objeto necessário se check_document for true, detalhando o documento esperado.

    • name: Nome do documento esperado, obrigatório e limitado a 255 caracteres.
    • description: Descrição do documento esperado, obrigatória e limitada a 255 caracteres.
  • quality_evaluation: Booleano que indica se a validação da qualidade da imagem é necessária.

  • quality_accept: Número entre 0 e 100, necessário se quality_evaluation for true, definindo o valor mínimo aceitável para a qualidade da imagem.

  • custom_rules: Array de strings para aplicar regras personalizadas durante a extração. Cada string pode ter até 255 caracteres.

Retorno

{
    "data": {
        "fields": {
            "vc_nome": "Valor do Campo",
            "vc_curso": "Valor do Campo"
        },
        "it_quality": 80
    },
    "message": "Campos extraídos com sucesso.",
    "status": "success"
}

Descrição

Este endpoint é usado para extrair campos específicos de um documento enviado como imagem. Ele fornece a opção de validar o tipo de documento e a qualidade da imagem, conforme configurado na requisição.

Exemplos - JQuery

Requisição com validação de documento e qualidade

Request:

$("form#data").submit(function(event){

  // Previne o comportamento padrão de envio do formulário
  event.preventDefault();

  // Cria um novo objeto FormData
  var formData = new FormData();

  // Adiciona o arquivo ao objeto FormData
  formData.append("file", arquivo);

  // Adiciona os campos definidos ao objeto FormData
  formData.append("fields[0][name]", "Número do contrato");
  formData.append("fields[0][description]", "Um número único que identifica o contrato");

  // Adiciona a verificação de documento ao FormData
  formData.append("check_document", true);

  // Adiciona a estrutura de 'document' ao FormData
  formData.append("document[name]", "Contrato");
  formData.append("document[description]", "Um documento oficial que firma um acordo entre partes");

  // Adiciona o campo 'quality_evaluation' ao formData
  formData.append("quality_evaluation", true);

  // Adiciona o campo 'quality_accept' ao formData
  formData.append("quality_accept", 75);

  // Adiciona o array 'custom_rules' ao formData
  formData.append("custom_rules[]", "Deve haver uma logo no contrato de um pássaro.");

  // Realiza a chamada AJAX
  $.ajax({
    // URL para onde os dados serão enviados 
    url: 'https://ws.guardiaodigital.com.br/versions/2.3.9/ia/arquivo/extrair',

    // Define o tipo de requisição HTTP como POST
    type: 'POST',

    // Define os dados que estão sendo enviados
    data: formData,

    // Configura cabeçalhos, caso necessários 
    headers: {
      "Authorization": "Token XXXXXXXXXXXXXXXX"
    },

    // Define opções para a requisição AJAX
    async: false,
    cache: false,
    contentType: false,  // Necessário para envio de arquivos
    processData: false,  // Necessário para enviar o objeto FormData

    // Função de callback a ser executada em caso de sucesso
    success: function (returndata) {
      // Alerta o usuário sobre o retorno do servidor
      alert(returndata);
    }
  });

  // Retorna false para garantir que o formulário não seja enviado da maneira tradicional
  return false;
});

Response:

{
    "data": {
        "fields": {
            "vc_invoice_number": "INV-2023-045"
        },
        "it_quality": 78
    },
    "message": "Campos extraídos com sucesso.",
    "status": "success"
}

Explicação dos Campos de Resposta:

  • data: Objeto principal da resposta contendo:

    • fields: Objeto onde cada chave representa o nome de um campo especificado no fields da requisição, e o valor associado é o conteúdo extraído desse campo.
    • it_quality: (Opcional) Número representando a qualidade da imagem avaliada, retornado apenas se quality_evaluation for true.
  • message: Mensagem que descreve o sucesso da operação de extração.

  • status: String que indica se a operação foi realizada com sucesso ou com falha.

Informações sobre o Campo vc_reject

Se você está procurando informações específicas relacionadas ao campo vc_reject, acesse a seção Documento Rejeitado na documentação. Essa aba detalha as possíveis causas e soluções para problemas que interrompem o processamento.