DevCenter

Apresentação​

API FlexExtractor possui um conjunto de funcionalidades que podem ser facilmente implementadas em seus sistemas, para que você possa usufruir de recursos de última geração no que se refere a tratamento de imagens, extração de dados, padronização de informações e comparação de dados entre documentos e imagens.

Para isso, basta seguir os passos iniciais descritos logo abaixo:

Passos iniciais

Para testes das funcionalidades disponibilizadas pela FLEXDOC-APIS, é necessário efetuar um cadastro prévio em nosso site para autorização de uso.

Este cadastro é simples e levará apenas alguns minutos para ser concluído.

Após a conclusão do cadastro, você receberá os dados para autorização de uso.

1. Efetuar cadastro no site

O cadastro é simples e rápido. Basta acessar o link abaixo para iniciar seu cadastramento:

Faça seu cadastro AQUI

Após a conclusão do cadastro, aguarde alguns minutos e verifique seu e-mail para seguir para o passo seguinte.

2. Receber dados de autorização

Após alguns minutos da conclusão do cadastro, você receberá um e-mail com os dados necessários para iniciar seus testes.

Neste e-mail, você receberá uma identificação (ApplicationName) e uma senha (Hash) que deverá ser utilizada no passo seguinte (Solicitar Token).

Guarde estas informações para que possa utilizá-las posteriormente.

3. Solicitar um Token para acesso as funcionalidades

Para geração do Token, será necessário inicialmente que faça um cadastro em nosso site para que possamos encaminhar no seu e-mail uma autorização de uso.

Esta autorização é essencial para que você possa autenticar suas requisições em nossos sistemas.

				
					//    
// Criando um Token para iniciar as requisições
//     
string applicationName = "FLEXDOC";
string hash = "ca241b02-3036-4874-b1b5-5419d30866bf";

JToken tokenGerado = null;


var client = new RestClient("https://hml.flexdoc-Apis.com.br/FlexExtractor/Token");


var request = new RestRequest(Method.POST);        


request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("grant_type", "password");
request.AddParameter("ApplicationName", applicationName);
request.AddParameter("Hash", hash);


IRestResponse response = client.Execute(request);


if (response.StatusCode != System.Net.HttpStatusCode.OK)
    throw new Exception(response.Content);


tokenGerado = JToken.Parse(response.Content);


return tokenGerado;
				
			

Resultado (response.Content):

				
					{
    "access_token": "ccZwmL....ZGy0cA",
    "token_type": "bearer",
    "expires_in": 86399,
    ".issued": "Wed, 24 Nov 2021 14:55:33 GMT",
    ".expires": "Thu, 25 Nov 2021 14:55:33 GMT",
    "ApplicationName": "FLEXDOC"
}
				
			

Caso seus dados de acesso não estejam corretos, um erro será apresentado, como o exemplo a seguir:

				
					{ "error": "invalid_grant",
"error_description": "The ApplicationName or Hash is incorrect."
}
				
			

Para maiores detalhes sobre tipos de erros, consulte o item TOKEN.

4. Executar funcionalidade desejada

Com o Token gerado, agora é possível solicitar o processamento de um documento através da execução de uma das funcionalidades disponibilizadas pela FLEXDOC-APIS.

No exemplo abaixo, iremos solicitar uma Extração de Dados completa. Este processo irá identificar o tipo de documento (TypeAlias) e, baseado neste tipo, extrair e formatar os dados inerentes ao documento.

Para iniciarmos o teste abaixo, é necessário substituir as informações delimitadas com “<< >>” pelos dados necessários para o processamento.

				
					string applicationName = "<>";
string hash = "<>";

JToken resultado;


string hash = tokenGerado["access_token"].ToString();


byte[] byteImagem = File.ReadAllBytes(@"c:\tmp\CNH_Flavio Portela.jpg");
string imagemBase64 = Convert.ToBase64String(byteImagem);


var client = new RestClient("https://hml.flexdoc-Apis.com.br/FlexExtractor/api/ExtractService");


client.Timeout = -1;


var request = new RestRequest(Method.POST);


request.AddHeader("Content-Type", "application/json");
request.AddHeader("ApplicationName", applicationName);
request.AddHeader("Authorization", "Bearer " + hash);


Dictionary body = new Dictionary();


body.Add("TypeAlias", "");
body.Add("ShowStats", "true");
body.Add("ShowInput", "true");
body.Add("ShowActions", "true");
body.Add("ImageBase64", imagemBase64);


JToken jBody = JToken.FromObject(body);


request.AddParameter("application/json", jBody, ParameterType.RequestBody);


IRestResponse response = client.Execute(request);


if (response.StatusCode != System.Net.HttpStatusCode.OK)
    throw new Exception(response.Content);


resultado = JToken.Parse(response.Content);


				
			

5. Processamento dos resultados obtidos

				
					JToken jtResult = new JToken( response.Content );

// Mostra o json completo
Console.WriteLine("Resultado   : " + resultado.ToString());

// Mostra um quadro estatístico do processamento e o TypeAlias (tipo de documento)
Console.WriteLine("Estatísticas: " + resultado["Stats"].ToString());
Console.WriteLine("TypeAlias   : " + resultado["Output"]["TypeAlias"].ToString());

// Lista todos os campos extraídos
foreach (JToken jt in resultado["Output"]["Fields"])
{
    Console.WriteLine( "    " + jt["Name"].ToString() + " : " + jt["Value"].ToString());
}
				
			

Métodos REST API

Token

Este método permite gerar um Token de autorização para utilização dos métodos de processamento (apresentados a seguir).

ExtractService

Método para processamento de documentos, identificando o seu tipo (RG, CNH, CIE, CIP,…) e extraindo todos os campos relativos ao documento.

A extração passa por um processo de tratamento de dados, de forma a permitir um melhor aproveitamento e padronização dos dados extraídos.

ProofOfLifeService

Método de análise de prova de vida. Utiliza uma sequência de imagens, analisando características e movimentação.

SelfieService

Método para análise de Selfie (foto do rosto). Efetua a comparação de uma imagem de selfie, confrontando-a com uma foto de um documento. O resultado gerado indica uma similaridade entre as duas imagens.

POST Token

				
					http://hmo.flexdoc.com.br/FlexExtractor/Token
				
			

Gera um Token de autorização, com tempo pré-determinado de utilização. Este token é essencial para utilização das demais ações desta Api (ExtractService).

Para gerar o Token, é necessário informar o username (ApplicationName) e password (ApplicationHash). Estas informações deverão ser criadas antecipadamente no site da aplicação.

HEADERS

Content-Type
				
					application/x-www-form-urlencoded
				
			
BODY urlencoded
grant_type
				
					password
				
			
ApplicationName
				
					<<ApplicationName>>
				
			
Hash
				
					<<Hash>>
				
			

Example Request

				
					<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://hmo.flexdoc.com.br/FlexExtractor/Token',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'grant_type=password&ApplicationName=%3C%3CApplicationName%3E%3E&Hash=%3C%3CHash%3E%3E',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
				
			

POST Extract Service

				
					http://hmo.flexdoc.com.br/FlexExtractor/api/ExtractPlugin
				
			

Extrai informações a partir da imagem de um documento.

Como parâmetros de envio, é obrigatório apenas um array base64 referente a imagem (imageBase64). Adicionalmente poderá ser enviado também o tipo do documento (typeAlias) e informações esperadas na extração (dados lógicos). Caso o tipo do documento seja enviado, a Api assumirá este tipo e efetuará apenas a extração dos dados. Caso os dados lógicos sejam enviados, a Api irá analisar cada informação enviada com o dado extraído, gerando um índice de similaridade entre eles.

A Api retornará um Json contendo informações do tipo de documento identificado, seus dados extraídos e estatísticas.

AUTHORIZATION - Bearer Token

Token
				
					<token>
				
			
HEADERS
Content-Type
				
					application/json
				
			
ApplicationName
				
					<<ApplicationName>>
				
			

BODY raw

				
					{
  "TypeAlias":"",
  "Fields":
    [
   	  {"name": "NOME", "reference": "MOMOMOMO MOMOM MOMO" },
  	  {"name": "CPF", "reference": "99988877733" }
    ], 
  "ImageBase64":"<<IMAGEM BASE64>>"
}
				
			

Example Request

				
					<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://hmo.flexdoc.com.br/FlexExtractor/api/ExtractPlugin',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
  "TypeAlias":"",
  "Fields":
    [
   	  {"name": "NOME", "reference": "MOMOMOMO MOMOM MOMO" },
  	  {"name": "CPF", "reference": "99988877733" }
    ], 
  "ImageBase64":"<<IMAGEM BASE64>>"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'ApplicationName: <<ApplicationName>>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
				
			

POST ProofOfLifeService

				
					http://hmo.flexdoc.com.br/FlexExtractor/api/ProofOfLifePlugin

				
			

Extrai informações a partir da imagem de um documento.

Como parâmetros de envio, é obrigatório apenas um array base64 referente a imagem (imageBase64). Adicionalmente poderá ser enviado também o tipo do documento (typeAlias) e informações esperadas na extração (dados lógicos). Caso o tipo do documento seja enviado, a Api assumirá este tipo e efetuará apenas a extração dos dados. Caso os dados lógicos sejam enviados, a Api irá analisar cada informação enviada com o dado extraído, gerando um índice de similaridade entre eles.

A Api retornará um Json contendo informações do tipo de documento identificado, seus dados extraídos e estatísticas.

AUTHORIZATION - Bearer Token

Token
				
					<token>
				
			
HEADERS
Content-Type
				
					application/json
				
			
ApplicationName
				
					<<ApplicationName>>
				
			

BODY raw

				
					{
    "ShowStats": true,
    "ShowInput": false,
    "ShowActions": true,
    "ImagesBase64": 
    [
      "<<IMAGEM BASE64"
      ]
}
				
			

Example Request

				
					<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://hmo.flexdoc.com.br/FlexExtractor/api/ProofOfLifePlugin',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "ShowStats": true,
    "ShowInput": false,
    "ShowActions": true,
    "ImagesBase64": 
    [
      "<<IMAGEM BASE64"
      ]
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'ApplicationName: <<ApplicationName>>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
				
			

POST SelfieService

				
					http://hmo.flexdoc.com.br/FlexExtractor/api/SelfiePlugin

				
			

Extrai informações a partir da imagem de um documento.

Como parâmetros de envio, é obrigatório apenas um array base64 referente a imagem (imageBase64). Adicionalmente poderá ser enviado também o tipo do documento (typeAlias) e informações esperadas na extração (dados lógicos). Caso o tipo do documento seja enviado, a Api assumirá este tipo e efetuará apenas a extração dos dados. Caso os dados lógicos sejam enviados, a Api irá analisar cada informação enviada com o dado extraído, gerando um índice de similaridade entre eles.

A Api retornará um Json contendo informações do tipo de documento identificado, seus dados extraídos e estatísticas.

AUTHORIZATION - Bearer Token

Token
				
					<token>
				
			
HEADERS
Content-Type
				
					application/json
				
			
ApplicationName
				
					<<ApplicationName>>
				
			

BODY raw

				
					{ "ShowStats":"true",
    "DocImageBase64": "<<IMAGEM BASE64"
}
				
			

Example Request

				
					<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://hmo.flexdoc.com.br/FlexExtractor/api/SelfiePlugin',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{ "ShowStats":"true",
    "DocImageBase64": "<<IMAGEM BASE64"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'ApplicationName: <<ApplicationName>>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;