Informações importantes antes da sua integração
Segurança do Token
Recomendamos aplicar as seguintes medidas para maior segurança do token:
-
Restringir o acesso apenas para determinados endereços de IP
-
Restringir o acesso apenas a determinadas fontes de consultas
-
Limitar o número de chamadas por hora
-
Limitar o número de chamadas por dia
-
Limitar o número de chamadas por semana
-
Limitar o número de chamadas por mês
Modelo de autenticação das APIs
Seguimos o mesmo modelo do Twilio e da Amazon.
Geramos um token de autenticação que deve ser informado em todas as chamadas. Este token é um segredo e deve ser tratado exatamente como uma senha.
Só são possíveis chamadas via SSL (TLS 1.2).
Autenticação por certificado digital
Opcionalmente, podemos configurar a autenticação por certificado digital, mas isto exige um endpoint dedicado ao cliente.
Resultado em JSON ou XML
Para qualquer API, caso queira o output em json ou xml, basta incluir ao final &format=json (ou xml)
Chamada assíncrona (ASYNC)
As APIs também funcionam de forma assíncrona, basta informar no final da URL os parâmetros: &options={async:true, async_run_persistent:true} e depois utilizar o UID retornado para obter o resultado da chamada.
Parâmetro async: Indica se deve executar a transação de forma assíncrona (false por padrão).
Valores:
-
true
-
false
Exemplo de uso: &options={async:true}
Exemplo com Sintegra Unificada:
-
Primeira chamada:
https://api.exato.digital/sintegra/unificada?uf={uf}&cpf={cpf}&token={token}&options={async:true}Retorno esperado: Execução em andamento. Execução assíncrona em andamento...
-
Segunda chamada:
https://api.exato.digital/sintegra/unificada?uid={uid}&token={token}
Parâmetro uid: primeiro campo retornando na primeira chamada: “UniqueIdentifier”Retorno esperado: A mensagem vai ser: "Execução em andamento." até a consulta completar.
Chamadas aos relatórios
Para os relatórios, é aceito somente chamada no modelo assíncrono, desta forma, a primeira chamada (https://api.exato.digital/exec-datasource?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&consulta_tipo_id=5025¶metros=12387530000113&options={async:true}) vai retornar um identificador único (UID) que deve ser passado como parâmetro no segundo endpoint: https://api.exato.digital/exec-datasource?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&consulta_tipo_id=5025&uid=[UID]
O segundo endpoint vai retornar código 12 (em execução) enquanto a consulta estiver sendo processada. Ao ser finalizada, este código deve mudar para 1 (sucesso) ou alguma outra situação.
Options
exec_mode: Modo de execução da consulta. (por padrão o modo é normal).
Tipo aceito: número inteiro
Valores:
-
1 = execute - Execução normal.
-
2 = test - Execução de teste, com dados simulados.
-
3 = status - Retorna apenas a situação da execução.
-
4 = result - Retorna o resultado de uma transação.
-
5 = params_and_price_check - Checa os parâmetros e o preço.
-
6 = balance - Retorna o saldo.
-
7 = statistics - Retorna estatísticas gerais da fonte (como tempo de acesso)
Exemplo: &options={exec_mode:1}
async: Indica se deve executar a transação de forma assíncrona (false por padrão).
Tipo aceito: booleano
Valores:
-
true
-
false
Exemplo: &options={async:true}
async_run_persistent: Indica se deve executar uma transação assíncrona até obter um resultado final (false por padrão).
Tipo aceito: booleano
Valores:
-
true
-
false
Exemplo: &options={async_run_persistent:true}
cache_limit_in_hours: Limite, em horas, que uma consulta é aceita do cache. Caso informado, o sistema tenta buscar a consulta com a mesma chave de entrada no cache interno, retornando os dados caso encontre no período informado. Atenção: Quando a consulta é lida do cache, a velocidade é bem superior a online pois vem direto da base de dados, porém, o dado não será online, e sim da data encontrada no cache. (null por padrão).
Tipo aceito: número inteiro
Valores:
-
null - Usa o tempo padrão da consulta
-
0 - desabilita
-
número inteiro - limite em horas
Exemplo: &options={cache_limit_in_hours:1}
cache_include_not_found: Indica se deve incluir resultados "Entidade não encontrada" na busca em cache (null por padrão).
Tipo aceito: booleano
Valores:
-
true
-
false
Exemplo: &options={cache_include_not_found:true}
generate_result_pdf: Indica que, se a fonte de dados possuir comprovante em PDF, ele deve ser obrigatoriamente retornado. Caso esta opção seja especificada como 'enable' e haja falha na geração do comprovante em PDF, a consulta apresentará erros. (null por padrão).
Tipo aceito: número inteiro
Valores:
-
null - Usa as configurações do cadastro do cliente
-
0 = default - Tenta gerar o PDF, mas não interrompe a transação/consulta caso ocorra erro
-
1 = enable - Exige o PDF para que a transação/consulta seja considerada sucesso.
-
2 = disable - Desabilita a geração de PDFs, geralmente para melhor performance.
Exemplo: &options={generate_result_pdf:true}
generate_pdf_sync: Indica se deve gerar o PDF de forma síncrona (false por padrão).
Tipo aceito: booleano
Valores:
-
true
-
false
Exemplo: &options={generate_pdf_sync:true}
allow_outdated_result: Indica se deve aceitar resultado desatualizado para alguns tipos de retorno, caso não seja possível realizar a consulta on-line ou do cache. (null por padrão)
Tipo aceito: número inteiro
Valores:
-
0 = default - Usa configurações do cadastro do cliente
-
1 = enable - Habilita resultado desatualizado
-
2 = disable - Desabilita resultado desatualizado
Exemplo: &options={allow_outdated_result:1}
timeout_ms: Indica o timeout da transação. O valor especificado pode ou não ser respeitado de acordo com os termos do contrato com o cliente (null por padrão).
Tipo aceito: número inteiro (em milisegundos)
Exemplo: &options={timeout_ms:60000}
read_from_cache: Indica que a chamada aceita leitura de resultados do cache (se existir). Por padrão, a consulta é executada usando o cache diário, ou seja, se a mesma consulta para a mesma entrada foi efetuada no mesmo dia com sucesso anteriormente, o resultado retornado será oriundo do cache.
Tipo aceito: número inteiro
Valores:
-
default = 0
-
enable = 1
-
disable = 2
Exemplo: &options={read_from_cache:10}
outdated_result_limit_in_hours: Tempo (em horas) que o sistema deve buscar a consulta no cache em caso de aceite de resultados antigos (datados). Este parâmetro só funciona caso o parâmetro 'allow_outdated_result' seja passado como enable.
Tipo aceito: número inteiro (valor em horas)
Exemplo: &options={outdated_result_limit_in_hours:10}
custom_parameters: Parâmetros customizados específicos para seu token de acesso.
Tipo aceito: string
Exemplo: &options={custom_parameters:’parametro_teste:1’}
callback_url: URL de callback de resultado da chamada (webhook). Ao ser informado, o resultado da consulta será postado (POST) para a URL informada.
Tipo aceito: string
Exemplo: &options={callback_url:url_de_callback}
result_html: Indica que deve retornar o bloco de informações em formato html. Utilizado para exibição do resultado da consulta direto em tela. (campo ResultHtml) (false por padrão).
Tipo aceito: boolean
Valores:
-
true = retorna o bloco de informações em formato HTML
-
false = não retorna o bloco (padrão)
Exemplo: &options={result_html:true}
Lentidão na chamada das APIs
Como automatizamos consultas diretamente das fontes oficiais de dados, algumas chamadas podem demorar mais do que o esperado para retornar ou até mesmo passarem por períodos de indisponibilidade. Caso ocorra lentidão, aguarde alguns minutos e execute novamente.
Se o erro persistir, entre em contato pelo e-mail suporte@exato.digital