# Início
Disponibilizamos uma API caso queira uma integração mais personalizada com possibilidade de acesso direto de sua aplicação aos serviços do BioDoc, permitindo personalização de fluxo e visualizações, sendo possível integrar a qualquer solução que desejar como por exemplo autenticação em aplicativos mobile, autenticação para acesso restrito de locais, autenticação para pagamentos, livro de registro de pessoas visitantes, etc.
# Autenticação
É obrigatório o envio do Token através do header Authorization incluindo a palavra 'Bearer'.
# Exemplo
- Respostas - Status Code:
Code | Descrição |
---|---|
200 | Requisição processada com sucesso |
201 | Requisição processada, dados criados com sucesso |
400 | Requisição mal formada, parâmetros inválidos |
401 | Erro de autorização |
403 | Acesso não permitido |
422 | Requisição recebida, no entanto, não foi possível concluir o processamento com êxito |
500 | Erro interno |
// ajax
$.ajax({
url: 'ENDPOINT',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
},
method: 'MÉTODO DO ENDPOINT',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'MÉTODO DO ENDPOINT',
url: ENDPOINT,
data: PARAMETROS,
headers: { 'Authorization': `Bearer ${TOKEN DA EMPRESA}` }
});
# Ambientes de Integração
# Sandbox
Ambiente de testes e desenvolvimento:
URL
https://api.sandbox.biodoc.com.br/api
# Produção
Ambiente de produção:
URL
https://api.biodoc.com.br/api
# Endpoints
Nesta sessão, abordaremos os Endpoints disponíveis para a troca de informação entre seu sistema e o BioDoc.
ATENÇÃO
Caso necessite de alguma informação não disponível nos endpoints da API, entre em contato com nosso Suporte para que possamos evoluir os retornos de nossa API.
# /card/integration/mainimage
- Descrição: Endpoint responsável por realizar a busca da imagem principal de um cartão.
- Método: GET
- Formato dos parâmetros: query
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
idCard | Número Identificador do Cartão | string | Sim |
procedure | Código do Procedimento | string | Não |
// Exemplo da chamada
const PARAMETROS = {
idCard: "12345678901234567",
procedure: "1234567"
}
// ajax
$.ajax({
url: URL + '/card/integration/mainimage',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`
},
method: 'GET',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'GET',
url: URL + '/card/integration/mainimage',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
Parâmetro | Descrição | Formato | Retorno / Observação |
---|---|---|---|
cardStatus | Status do cartão informado | int | Enum de Status |
name | Nome do Beneficiário | string | |
mainImage | URL temporária da imagem de verificação do cartão | string | A URL possuí prazo de expiração |
quantityJustifies | Quantidade de Justificativas | int | Justificativas totais já realizadas pelo beneficiario |
base64Image | Base64 da imagem do beneficiario | string | |
releaseBiometric | Isento de Biometria | bool | Caso true a biometria deve ser dispensada |
closeTopLocation | Atualizar a url do frame | bool | |
markFace | Adicionar identificador para centralizar face | bool | Configuração da empresa, caso true no atendimento deve aparecer uma marcação onde deve centralizar a face |
livenessActive | Adicionar camada de verificação de foto de foto | bool | Configuração da empresa, caso true a verificação passará por uma análise, verificando se é uma foto de foto ou uma foto real do beneficiário |
livenessVersion | Selecionar modelo do Liveness, ativo ou passivo. | string | Configuração da empresa, caso 1.0 a verificação do Liveness será no modelo passivo, caso 2.0 será no modelo ativo |
automaticAprove | Atualização de imagem automatica | bool | Configuração da empresa, caso true a solicitação será aprovada autamaticamente |
verifyCardCompany | Verificar regra de intercâmbio | bool | Configuração da empresa, caso true será verificado a regra de intercâmbio |
registerNoImage | Registrar sem imagem | bool | Configuração da empresa, caso true poderá fazer um cadastro sem o envio de uma imagem |
changeImage | Atualizar imagem | bool | Configuração da empresa, caso true o local de atendimento pode abrir uma solicitação de troca de imagem |
justify | Justificar | bool | Configuração da empresa, caso true o local de atendimento pode realizar justificativa |
justifyAfterAttempts | Justificativa na verificação | bool | Configuração da empresa, caso true após três falhas consecutivas de verificação, terá a possibilidade de realizar uma justificativa e prosseguir sem biometria |
ENUM DE STATUS
1 = Biometria com imagem;
2 = Beneficiário não cadastrado;
3 = Biometria sem imagem;
4 = Solicitação de troca de imagem obrigatória;
5 = Alteração de biometria pendente;
6 = Alteração de biometria obrigatória pendente;
// Exemplo de resposta da chamada
{
data: {
"cardStatus": 1,
"name": "NOME DO BENEFICIÁRIO",
"mainImage": "URL TEMPORÁRIA DA IMAGEM",
"quantityJustifies": 2,
"releaseBiometric": false,
"base64Image": "BASE DA IMGEM",
"closeTopLocation": false,
"markFace": false,
"livenessActive": true,
"livenessVersion": "2.0",
"automaticAprove": false,
"verifyCardCompany": false,
"registerNoImage": false,
"changeImage": false,
"justify": false,
"justifyAfterAttempts": true
}
}
# /integrations/justify
- Descrição: Endpoint Realiza a busca de justificativas cadastradas para o token informado.
- Método: GET
- Formato dos parâmetros: QueryString
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
message | Quando informado realiza filtro entre as justificativas cadastradas | String | Não |
// Exemplo da chamada
// ajax
$.ajax({
url: URL + '/integrations/justify?message=TEXTO',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'GET',
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'GET',
url: URL + '/integrations/justify?message=TEXTO',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
[
{
id: 1,
message: "Urgência",
id_Company: 1,
active: true,
company: null,
cardImage: null,
logs: null,
},
{
id: 2,
message: "Problema na câmera",
id_Company: 1,
active: true,
company: null,
cardImage: null,
logs: null,
},
];
# /card/register
- Descrição: Endpoint responsável pelo cadastro do cartão do beneficiário
- Método: POST
- Formato dos parâmetros: json
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
id | Número Identificador do Cartão | string | Sim |
name | Nome do beneficiário | string | Sim |
image | Imagem capturada em Base64 | string / Base64 | Sim |
detail | JSON com chave/valor com detalhes e maiores informações que gostaria de guardar no cadastro | string / JSON | Não |
// Exemplo da chamada
const PARAMETROS = {
"id": "123456781100",
"name": "Usuario para Testes",
"image": "Base64String",
"detail": "{'guia': '123456', 'prestador' : '123'}",
};
// ajax
$.ajax({
url: URL + '/integrations/register',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/integrations/register',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
{
"data": {
"reference_Id": "a7601509-6dd6-4b4a-9a05-2e751305f046"
},
"token": null
};
# /card/integration/verify'
- Descrição: Endpoint responsável por realizar a verificação de face.
- Método: POST
- Formato dos parâmetros: formData
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
id | Número Identificador do Cartão | string | Sim |
image | Imagem capturada em Base64 | string / Base64 | Sim |
detail | JSON com chave/valor com detalhes e maiores informações que gostaria de guardar no cadastro | string / JSON | Não |
// Exemplo da chamada
// criando o formData para enviar na requisição
const PARAMETROS = {
"id": "123456781100",
"image": "Base64String",
"detail": "{'guia': '123456', 'prestador' : '123'}",
};
// ajax
$.ajax({
url: URL + '/integrations/verify',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'multipart/form-data'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/card/integration/verify',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'multipart/form-data'
}
});
# Resposta
{
"percentage": "100%",
"response": {
"id_Log": 1,
"percentage": "100%",
"success": true,
"status": 2,
"message": "Sucesso ao realizar autenticação, nível de similaridade 100% e qualidade 86,86%.",
"url": "https://api.sandbox.biodoc.com.br/api/file/1",
"reference_Id": "ffe92be9-46cf-44e4-ac38-9190cd34d1f3"
}
};
# /integrations/verify
- Descrição: Endpoint responsável por realizar a verificação de face.
- Método: POST
- Formato dos parâmetros: Body
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
id | Número Identificador do Cartão | string | Sim |
image | Imagem capturada em Base64 | Base64 | Sim |
detail | JSON com chave/valor com detalhes e maiores informações que gostaria de guardar no cadastro | string | Sim |
// Exemplo da chamada
const PARAMETROS = {
id: "12345678901234567",
image: "Base64 Image",
detail: "{'guia': '123456', 'prestador' : '123'}",
}
// ajax
$.ajax({
url: URL + '/integrations/verify',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/integrations/verify',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
{
"id_Log": 1000,
"percentage": "100%",
"success": true,
"status": 2,
"message": "Sucesso ao realizar autenticação, nível de similaridade 100% e qualidade 100%.",
"url": "https://api.sandbox.com.br/api/file/305",
"reference_Id": "0c19bfff-9aba-4517-afd7-56e77ea1faeb"
};
# /card/release
- Descrição: Endpoint responsável por realizar a isenção do beneficiário.
- Método: POST
- Formato dos parâmetros: json
- Observação: O beneficiário deve ser isento se após a consulta o parâmetro releaseBiometric vier como true.
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
id_card | Número Identificador do Cartão | string | Sim |
name | Nome do beneficiário | string | Sim |
// Exemplo da chamada
const PARAMETROS = {
id_card: "12345678901234567",
name: "Nome do Beneficiário",
}
// ajax
$.ajax({
url: URL + '/card/release',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/card/release',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
{
"data": {
"id_Log": 1111,
"message": "Realizado por meio da isenção!",
"reference_Id": "66523b92-ff52-49ea-96a3-4d0d47956c10"
},
"token": null
};
# /card/integration/setnewimage
- Descrição: Endpoint seta a obrigatoriedade de uma nova foto.
- Método: POST
- Formato dos parâmetros: body
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
id | Número Identificador do Cartão | string | Sim |
// Exemplo da chamada
const PARAMETROS = {
id: "12345678901234567",
}
// ajax
$.ajax({
url: URL + '/card/integration/setnewimage',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/card/integration/setnewimage',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# /card/integration/justify
- Descrição: Endpoint reponsável por realizar uma justificativa (sem foto).
- Método: POST
- Formato dos parâmetros: body
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
id | Número Identificador do Cartão | string | Sim |
name | Nome do Beneficiário do Cartão | string | Sim |
IdJustifyMessage | Id retornado do endpoint ### /integrations/justify | Integer | Não |
justify | Justificativa de Verificação sem captura de Formato | string | Sim |
detail | JSON com chave/valor com detalhes e maiores informações que gostaria de guardar no cadastro | string / JSON | Não |
// Exemplo da chamada
const PARAMETROS = {
id: "12345678901234567",
name: "Nome do Beneficiario"
IdJustifyMessage: 1
justify: "Justificativa para o cadastro sem foto",
detail: "{'guia': '123456', 'prestador' : '123'}",
}
// ajax
$.ajax({
url: URL + '/card/integration/justify',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/card/integration/justify',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
{
"data": {
"reference_Id": "a7601509-6dd6-4b4a-9a05-2e751305f046"
},
"token": null
};
# /requestnewimage
- Descrição: Endpoint responsável por sugerir uma nova foto para autenticação.
- Método: POST
- Formato dos parâmetros: Form Data
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
idCard | Número Identificador do Cartão | string | Sim |
image | Imagem capturada em Base64 | Base64 | Sim |
description | Justificativa da sugestão de troca de foto | string | Sim |
// Exemplo da chamada
// criando o formData para enviar na requisição
const PARAMETROS = {
idCard: "12345678901234567",
image: "Base64 Image",
description: "Solicitação de nova imagem",
}
// ajax
$.ajax({
url: URL + '/requestnewimage',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'multipart/form-data'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/requestnewimage',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'multipart/form-data'
}
});
# Resposta
{
"data": null,
"token": null
};
# /integrations/log/{reference_Id}
- Descrição: Endpoint responsável por consultar uma interação pelo reference_Id.
- Método: GET
// Exemplo da chamada
// ajax
$.ajax({
url: URL + '/integrations/log/' + reference_Id,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'GET',
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: `${URL}/integrations/log/${reference_Id}`,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
{
"id": 1,
"id_Card": "12345678901234567",
"description": "Descrição da Interação",
"observation": null,
"date": "Data da interação",
"status": 2,
"path": "URL Temporária da imagem",
"id_Company": 100,
"required": null,
"detail": null,
"mainImage": "URL Temporária da imagem",
"name": "Nome do Beneficiário",
"userName": null,
"lastUpdate": null,
"auditor": null,
"containsHistory": false,
"thumbNail": null,
"reguiredName": "Nome da empresa que realizou a interação",
"json": null
};
# /card/integration/deleteMany
- Descrição: Endpoint para exclusão de cadastros de beneficiários na aplicação. Podem ser utilizados para exclusão de 1 ou mais registros, limitados a 50.
- Método: POST
- Formato dos parâmetros: body
# Parâmetros da Requisição (Limitado à 50 Id's):
Parâmetro | Descrição | Formato | obrigatório |
---|---|---|---|
idCard | Número Identificador do Cartão | array | Sim |
// Exemplo da chamada
const PARAMETROS = {
idList: [ "12345678901234567" ]
}
// ajax
$.ajax({
url: URL + '/card/integration/deleteMany',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'POST',
data: PARAMETROS,
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'POST',
url: URL + '/card/integration/deleteMany',
data: PARAMETROS,
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
- Descrição: Objeto data com o seguinte conteúdo:
Parâmetro | Descrição | Formato |
---|---|---|
allSuccess | Retorna false se ocorreu algum erro | boolean |
menssage | Se todos os registros foram removidos com sucesso, será retornado: "Todos os registros foram removidos com sucesso." Caso não for possível remover algum registro da lista, será retornado: "A solicitação de exclusão de registros foi finalizada com exceções." | string |
listStatus | Retorna uma lista com o status da remoção de cada registro | array |
idCard | identificador do registro | string |
deleted | caso true a carteirinha foi removida | boolean |
message | mensagem amigável do status dessa carteirinha | string |
imageList | Lista com status das imagens salvas dessa carteirinhaimagList | array |
key | Identificador da imagem | int |
deleted | true se a imagem foi removida | boolean |
{
"result": {
"allSuccess": true,
"listStatus": [
{
"idCard": "10574705971",
"deleted": true,
"message": "Registro removido com sucesso.",
"imageList": [
{
"key": 10047857,
"deleted": true
}
]
}
],
"message": "Todos os registros foram removidos com sucesso.""
}
}
# /logs/external-audits
- Descrição: Endpoint Realiza a busca de auditorias.
- Método: GET
- Formato dos parâmetros: QueryString
# Parâmetros da Requisição
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
idCard | Carteirinha do beneficiário para busca das auditorias | String | Sim |
initialDate | Quando informada realiza busca com este início de data | String | Não |
endDate | Quando informada realiza busca com este fim de data | String | Não |
// Exemplo da chamada
// ajax
$.ajax({
url: URL + '/logs/external-audits?idCard=CARTEIRINHA&initialDate=2023-11-01&endDate=2023-11-30',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
},
method: 'GET',
success: function(data){
console.log('success: '+data);
}
});
// axios
axios({
method: 'GET',
url: URL + '/logs/external-audits?idCard=CARTEIRINHA&initialDate=2023-11-01&endDate=2023-11-30',
headers: {
'Authorization': `Bearer ${TOKEN DA EMPRESA}`,
'Content-Type': 'application/json'
}
});
# Resposta
{
"data": {
"logs": [
{
"id": 677,
"id_Card": "123456789",
"name": "Nome Beneficiário",
"status": "Justificado",
"date": "2023-11-10T14:59:40.067569",
"observation": null,
"description": "teste teste",
"required": 28,
"required_Name": "Empresa que realizou"
}
]
},
"token": null
};