IntroduçãoIntrodução à API
Esta é a documentação da API do REP iDClass. Para conferir nossa Coleção do Postman, com exemplos de todas as requisições apresentadas aqui, acesse este link.
*** ATENÇÃO! ***
Algumas chamadas da API foram adaptadas para compatibilidade com a Portaria 671 e agora recebem um parâmetro pela query string chamado "mode".
Se esse valor for 671, as chamadas consideram as mudanças da Portaria 671. Para qualquer outro valor ou na ausência do parâmetro, é levado em consideração o funcionamento anterior do REP.
Esta API é composta de Web Services RESTful. Cada comando é uma chamada HTTPS POST com Content-Type: application/json e possui uma URL própria. Seus parâmetros e seus retornos são passados preferencialmente por JSON, exceto em menção contrária. Como exemplo, o comando login pode possuir a URL:
https://192.168.0.129/login.fcgi
e os seguintes parâmetros:
{
login: 'admin',
password: 'admin'
}
*** ATENÇÃO! ***
Seguindo as exigências do INMETRO, o relógio comunica-se usando SSL (HTTPS).
Como o relógio usa certificados auto-assinados, este fato pode gerar alguns problemas, como erros de comunicação inesperados.
No final do documento há instruções de como evitar esse problema em algumas linguagens.
Todos os comandos requerem uma sessão válida, exceto session_is_valid e login. O corpo da requisição deve possuir a codificação UTF-8. Caso os caracteres enviados não possuam nenhum caractere especial (ASCII), o corpo da requisição não precisa ser codificado.Por padrão, a codificação utilizada por sistemas Windows é a Windows-1252 (também conhecida como CP-1252). Verificar como utilizar a codificação correta.Valores Padrão
A porta de comunicação é 443.
O usuário é "admin".
A senha é "admin".
Executando os Exemplos
Os exemplos dessa documentação são escritos em JavaScript, utilizando a biblioteca jQuery. Para testá-los, acesse o endereço IP do equipamento em um navegador web e use as ferramentas do desenvolvedor (developer tools) deste para realizar requisições. Todos os exemplos fornecidos podem ser verificados copiando seus códigos e colando no console das ferramentas de desenvolvimento.
Devido ao fato das requisições virem de uma fonte diferente do relógio, a maioria dos browsers modernos bloqueia a requisição (CORS).
No Google Chrome, isso pode ser ignorado executando-o com as flags --disable-web-security --ignore-certificate-errors
Um exemplo completo de um comando
No código abaixo há um primeiro exemplo funcional para testar a conexão com o equipamento.
$.ajax({
url: "/login.fcgi",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
login: 'admin',
password: 'admin'
}),
success: function(data) {
session = data.session;
}
});
Para mais detalhes sobre o login, favor verificar a sua documentação aqui.
Executando os Exemplos em Outras Linguagens
Seguem abaixo alguns exemplos que ilustram como a API pode ser usada em outras linguagens de programação. Nesses exemplos, o endereço 192.168.0.129, quando aparecer, representa o endereço IP do equipamento.
Para conexões com o relógio em .NET e Delphi, deve-se adicionar o arquivo de configuração a seguir.
Ex.: Se o executável for App.exe, o arquivo de configurações deve ser App.exe.config
Atenção: a opção HTTP "Expect: 100- continue" deve estar desabilitada para as chamadas funcionarem. O único dos exemplos abaixo que o faz explicitamente é o em C#. Por favor, verifique a necessidade de fazê-lo em sua linguagem de preferência.procedure TFrmTTWebserviceTester.Button1Click(Sender: TObject);
var
lJSO : ISuperObject;
lRequest: TStringStream;
lResponse: String;
begin
lJSO := SO('{"login": "admin", "password": "admin"}');
lRequest := TStringStream.Create(lJSO.AsString, TEncoding.UTF8);
try
IdHTTP.Request.ContentType := 'application/json';
IdHTTP.Request.Charset := 'utf-8';
try
lResponse := IdHTTP.Post('https://192.168.0.129/login.fcgi', lRequest);
ShowMessage(lResponse);
except
on E: Exception do
ShowMessage('Error on request:'#13#10 + E.Message);
end;
finally
lRequest.Free;
end;
lJSO := nil;
end;
Esse exemplo em Delphi utiliza a biblioteca de código aberto Indy.System.Net.ServicePointManager.Expect100Continue = false;
try
{
var request = (HttpWebRequest)WebRequest.Create("https://192.168.0.129/login.fcgi");
request.ContentType = "application/json";
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write("{\"login\":\"admin\",\"password\":\"admin\"}");
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
Console.WriteLine(streamReader.ReadToEnd());
}
}
catch (WebException e)
{
using (WebResponse response = e.Response)
{
HttpWebResponse httpResponse = (HttpWebResponse)response;
Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
using (Stream data = response.GetResponseStream())
using (var reader = new StreamReader(data))
{
string text = reader.ReadToEnd();
Console.WriteLine(text);
}
}
}
public String Conecta_iDClass(String session) throws Exception {
// método utilizado para ignorar certificado SSL
Ignore_SSL();
try {
URL url = new URL("https://192.168.2.185:443/login.fcgi");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-type", "application/json");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write("{\"login\":\"admin\",\"password\":\"admin\"}".getBytes());
if (conn.getResponseCode() != 200) {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
String output, result = "";
System.out.println("Não conectado");
while ((output = br.readLine()) != null) {
System.out.println(result += output);
}
throw new RuntimeException("Falha na conexão: " + result);
} else {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output;
System.out.println("Conectado, código da sessão: \n");
while ((output = br.readLine()) != null) {
session = output;
System.out.println(output);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return session;
}
// ignorar certificado SSL
public void Ignore_SSL() throws Exception {
// fazendo uma requisição SSL sem registrar o certificado na JVM.
final X509TrustManager ignore = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
// "valida" o certificado
public void checkServerTrusted(X509Certificate[] certs,
String authType)
throws java.security.cert.CertificateException {
return;
}
public void checkClientTrusted(X509Certificate[] certs,
String authType)
throws java.security.cert.CertificateException {
return;
}
};
// cria socket ssl
SSLContext _ssl = SSLContext.getInstance("SSL");
_ssl.init(null, new TrustManager[]{ignore}, null);
// ativa o socket para a requisicao
HttpsURLConnection.setDefaultSSLSocketFactory(_ssl.getSocketFactory());
final HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
}
ChangelogChangelog da API iDClass
Esta é a relação de alterações da API do REP iDClass para cada versão de firmware. Para obter a versão de firmware de seu REP, utilize a API get_about, cuja documentação se encontra em Sistema >Informações do REP nesta mesma página. O parâmetro versionFW conterá o resultado em base decimal.
Changelog API iDClass - versão 102 (ou 258 decimal):- [Facial] Novas APIs user_set_image, user_get_image e user_destroy_image para gerenciamento de fotos de usuários;
- [Facial] Nova API user_import_image para gerenciamento de importação de fotos de usuários durante procedimento de backup;
- [Facial] Novas APIs remote_enroll, facial_enroller_state e cancel_remote_enroll para gerenciamento de cadastro facial remoto;
- [Facial] Novas APIs get_facial_module_config e set_facial_module_config para gerenciamento de configurações faciais;
- [Facial] Nova API get_about_facial para obter informações do módulo facial;
- [Facial] Nova API set_facial_limit para realização de upgrade para 10k faces do REP Facial;
- [Facial] APIs add_users e update_users recebem novo parâmetro geral "do_match" (booleano) e novos parâmetros específicos de cada usuário "remove_faces" (booleano), "image" (em base 64) e "image_timestamp" (inteiro);
- [Facial] API load_users retorna "face" (booleano) e "image_timestamp" (inteiro);
- [Facial] API get_system_information retorna "number_of_faces" (string) em vez de "template_count" (inteiro);
- API get_about retorna "isFacial" (booleano);
- API get_system_network retorna "use_dhcp" (booleano) e "port" (inteiro);
- API set_system_network recebe "use_dhcp" (booleano que, sempre que não informado, é assumido como falso).
Changelog API iDClass - versão 101 (ou 257 decimal):- API get_afd retorna o AFD em formato da Portaria 671 caso informado mode=671;
- API get_system_date_time retorna o "timezone" (fuso horário) caso informado mode=671;
- API set_system_date_time permite definir o "timezone" (fuso horário) caso informado mode=671;
- (Uso opcional) API add_users recebe o campo "cpf" em vez de "pis" caso informado mode=671;
- (Uso opcional) API update_users recebe os campos "cpf" e "new_cpf" caso informado mode=671;
- (Uso opcional) API load_users retorna usuários com "cpf" em vez de "pis" caso informado mode=671;
- (Uso opcional) API template_merge recebe o campo "user_cpf" em vez de "user_pis" caso informado mode=671.
LoginComando para criar uma sessãologin Cria a sessão, que é necessária para todos os outros comandos, exceto session_is_valid. O método HTTP usado para o envio dos dados é o POST.
loginstringO valor padrão é admin.passwordstringO valor padrão é admin.sessionstringCódigo da sessão iniciada.$.ajax({
url: "/login.fcgi",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
login: 'admin',
password: 'admin'
}),
success: function(data) {
session = data.session;
}
});
Validade da sessãoComando para verificar a validade de uma sessãosession_is_valid Indica se a sessão é válida.
Essa chamada não possui parâmetros.
session_is_validbooleanoRetorna 'true' se a sessão é válida e 'false' se a sessão estiver inválida.$.ajax({
url: "/session_is_valid.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json'
});
Alterar usuário e/ou senha de loginComando para alterar o usuário e/ou a senha de loginchange_login Altera o usuário e/ou a senha utilizados para o login no equipamento.
loginstring Nome do usuário a ser usado para o login no equipamento.
passwordstring Senha do usuário a ser usada para o login no equipamento. Deve ser um texto simples, sem Hash.
confirmationstring Confirmação da senha do usuário. Deve possuir o mesmo valor que o parâmetro password.
$.ajax({
url: "/change_login.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
login: 'WalterWhite',
password: 'Heisenberg',
confirmation: 'Heisenberg'
});
});
LogoutComando para finalizar uma sessãologout Finaliza a sessão. O método HTTP usado para o envio dos dados é o POST.
Obs: Essa chamada não retorna nada, somente invalida a sessão.
$.ajax({
url: "/logout.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
CadastrarCadastrar usuáriosadd_users Adiciona usuários. O método HTTP usado é o POST.
do_matchbooleano Parâmetro que define se as fotos enviadas nessa requisição serão comparadas com as fotos já cadastradas no dispositivo. Se true, o REP iDClass Facial acusará imagens de usuários repetidas, e se false, não acusará e a requisição será muito mais rápida, porém será responsabilidade do cliente garantir que não existem fotos repetidas de uma mesma pessoa. Recomendamos que seja usado do_match = false. Apenas se aplica ao REP iDClass Facial.
usersArray de objetos Lista de objetos do tipo usuário, contendo os parâmetros listados abaixo:
pisinteiro PIS do funcionário. Este parâmetro é o padrão para Portarias anteriores. Para utilizá-lo no modelo 671, basta passar um valor de modo diferente de 671 na query_string, através do parâmetro mode ou não informar modo algum (ver exemplo).
cpfinteiro CPF do funcionário. Este parâmetro só estará acessível quando o REP for um modelo homologado com a Portaria 671 e caso o usuário passe explicitamente o valor 671 para o parâmetro mode na query_string (ver exemplo).
namestring Nome do funcionário.
registrationinteiro Matrícula do funcionário.
rfidinteiro Valor do cartão de proximidade.
barsstring Valor do cartão de código de barras.
codeinteiro Código do funcionário utilizado com senha para emitir comprovante.
passwordstring String com senha do funcionário contendo apenas valores numéricos.
adminbooleano Se true, o usuário terá privilégios de administrador.
templatesArray de strings Lista de templates biométricos a serem adicionados ao usuário, encodados em base 64.
image_timestampinteiro Inteiro em formato Unix Timestamp referente à foto sendo cadastrada (apenas para REP iDClass Facial).
imagestring String da nova imagem do usuário encodada em base 64 (apenas para REP iDClass Facial).
$.ajax({
url: "/add_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[{
admin:true,
bars:'1345674',
code:112233,
name:'MauroL',
password:'123',
pis:2233445548,
rfid:1234,
templates: ['UHUSn+kfauhas34uh/fasiuj...dsa',
'UHUqwefda+/sa7ddsiz2...3r3']
}]
})
});
$.ajax({
url: "/add_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[{
admin:true,
bars:'1345674',
code:112233,
name:'MauroL',
password:'123',
cpf:2233445548,
rfid:1234,
templates: ['UHUSn+kfauhas34uh/fasiuj...dsa',
'UHUqwefda+/sa7ddsiz2...3r3']
}]
})
});
$.ajax({
url: "/add_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
do_match: false,
users:[{
admin:true,
code:112233,
name:'MauroL',
password:'123',
cpf:2233445548,
registration:112233,
rfid:1234,
image_timestamp:1712930699,
image:"base_64_da_sua_imagem_aqui"
}]
})
});
Contar usuáriosQuantidade de usuários cadastradoscount_users Retorna a quantidade de usuários cadastrados. O método HTTP usado é o POST.
countinteiro Retorna a quantidade de usuários cadastrados no REP.
$.ajax({
url: "/count_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
ListarLista usuários - máximo de 100load_users Carrega todos os dados do tipo especificado. O método HTTP usado é o POST.
Deve ser passado o parâmetro user_pis/user_cpf OU limit e offset.
users_pis (opcional)Array de inteiros de 64 bits Lista de PIS de usuários a serem listados (máximo de 100). Este parâmetro é o padrão para Portarias anteriores. Para utilizá-lo no modelo 671, basta passar um valor de modo diferente de 671 na query_string, através do parâmetro mode ou não informar modo algum (ver exemplo).
users_cpf (opcional)Array de inteiros de 64 bits Lista de CPFs de usuários a serem listados (máximo de 100). Este parâmetro só estará acessível quando o REP for um modelo homologado com a Portaria 671 e caso o usuário passe explicitamente o valor 671 para o parâmetro mode na query_string (ver exemplo).
limit (opcional)inteiro O número máximo de usuário a adquirir (máximo de 100).
offset (opcional)inteiro A partir de qual usuário deve-se listar. Exemplo: se offset = 200, começará a listar a partir do usuário 200.
templates (opcional)booleano Se true, retorna templates biométricos.
countinteiroRetorna a quantidade de usuários.usersArray de objetos Lista de objetos do tipo usuário, contendo os parâmetros listados abaixo:
pisinteiro PIS do funcionário. Este parâmetro é o padrão para Portarias anteriores. Para utilizá-lo no modelo 671, basta passar um valor de modo diferente de 671 na query_string, através do parâmetro mode ou não informar modo algum (ver exemplo).
cpfinteiro CPF do funcionário. Este parâmetro só estará acessível quando o REP for um modelo homologado com a Portaria 671 e caso o usuário passe explicitamente o valor 671 para o parâmetro mode na query_string (ver exemplo).
namestring Nome do funcionário.
rfidinteiro Valor do cartão de proximidade.
barsstring Valor do cartão de código de barras.
codeinteiro Código do funcionário utilizado com senha para emitir comprovante.
passwordstring String com senha do funcionário contendo apenas valores numéricos.
adminbooleano Se true, o usuário terá privilégios de administrador.
templatesArray de strings Lista de templates biométricos a serem adicionados ao usuário, encodados em base 64.
image_timestampinteiro Inteiro em formato Unix Timestamp referente à foto sendo cadastrada (apenas para REP iDClass Facial).
facebooleano Diz se o usuário possui uma face cadastrada. Se true o usuário possui uma imagem cadastrada, false caso contrário (apenas para REP iDClass Facial).
$.ajax({
url: "/load_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
limit:100,
offset:300
})
});
$.ajax({
url: "/load_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users_pis: [54654545878, 8976546546545]
})
});
$.ajax({
url: "/load_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
limit:100,
offset:300
})
});
$.ajax({
url: "/load_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users_cpf: [54654545878, 8976546546545]
})
});
RemoverRemover usuários especificando o CPF (modelo 671) ou PIS (outros modelos)remove_users Remove o usuário, esse método não tem retorno. O método HTTP usado é o POST.
usersArray de inteiros de 64 bits Lista de PIS ou de CPFs dos usuários a serem removidos. Por padrão, utiliza-se o PIS. Se o equipamento for homologado com a Portaria 671 e o valor de mode for 671 na query_string (ver exemplo), passa-se a usar o CPF como parâmetro.
$.ajax({
url: "/remove_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[223344554, 17033259504, 12312314]
})
});
AtualizarAtualiza cadastro de usuáriosupdate_users Atualiza usuários de PIS ou CPF correspondente, esse método não tem retorno. O método HTTP usado é o POST.
do_matchbooleano Parâmetro que define se as fotos enviadas nessa requisição serão comparadas com as fotos já cadastradas no dispositivo. Se true, o REP iDClass Facial acusará imagens de usuários repetidas, e se false, não acusará e a requisição será muito mais rápida, porém será responsabilidade do cliente garantir que não existem fotos repetidas de uma mesma pessoa. Recomendamos que seja usado do_match = false. Apenas se aplica ao REP iDClass Facial.
usersArray de objetos Lista de objetos do tipo usuário, contendo os parâmetros listados abaixo:
pisinteiro PIS do funcionário a ser modificado. Este parâmetro é o padrão para Portarias anteriores. Para utilizá-lo no modelo 671, basta passar um valor de modo diferente de 671 na query_string, através do parâmetro mode ou não informar modo algum (ver exemplo).
new_pisinteiro Novo PIS do funcionário (opcional). Este parâmetro é o padrão para Portarias anteriores. Para utilizá-lo no modelo 671, basta passar um valor de modo diferente de 671 na query_string, através do parâmetro mode ou não informar modo algum (ver exemplo).
cpfinteiro CPF do funcionário a ser modificado. Este parâmetro estará disponível quando o REP for um modelo homologado com a Portaria 671 e caso o usuário passe explicitamente o valor 671 para o parâmetro mode na query_string (ver exemplo).
new_cpfinteiro Novo CPF do funcionário (opcional). Este parâmetro estará disponível quando o REP for um modelo homologado com a Portaria 671 e caso o usuário passe explicitamente o valor 671 para o parâmetro mode na query_string (ver exemplo).
namestring Nome do funcionário.
rfidinteiro Valor do cartão de proximidade.
barsstring Valor do cartão de código de barras.
codeinteiro Código do funcionário utilizado com senha para emitir comprovante.
passwordstring String com senha do funcionário contendo apenas valores numéricos.
adminbooleano Se true, o usuário terá privilégios de administrador.
templatesArray de strings Lista de templates biométricos a serem adicionados ao usuário, encodados em base 64.
remove_templatesbooleano Se true, remove todos os templates biométricos do usuário.
remove_facesbooleano Se true, remove todas as faces cadastradas do usuário (apenas para REP iDClass Facial).
image_timestampinteiro Inteiro em formato Unix Timestamp referente à foto sendo cadastrada (apenas para REP iDClass Facial).
imagestring String da nova imagem do usuário encodada em base 64 (apenas para REP iDClass Facial).
$.ajax({
url: "/update_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[{
pis: 2233445548,
name: 'Jesse Pinkman',
bars: '1345674',
code: 112233,
password: '123',
rfid: 1007524,
admin: true
}]
})
});
$.ajax({
url: "/update_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[{
cpf: 2233445548,
name: 'Jesse Pinkman',
bars: '1345674',
code: 112233,
password: '123',
rfid: 1007524,
admin: true
}]
})
});
$.ajax({
url: "/update_users.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[{
pis:225000000004,
remove_templates:true
}]
})
});
$.ajax({
url: "/update_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
do_match: false,
users:[{
cpf: 98278123892,
image_timestamp: 1712930699,
image: "base_64_da_sua_imagem_aqui"
}]
})
});
$.ajax({
url: "/update_users.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
users:[{
cpf: 98278123892,
remove_faces: true
}]
})
});
Importar usuáriosImportar funcionários, caso eles não existamimport_users_csv Verifica se o usuário está cadastrado - caso ele não esteja, adiciona. O corpo da requisição é um binário contendo os dados dos usuários. O campo Content-Length do cabeçalho representa o tamanho do corpo da requisição em número decimal de OCTETs. O método HTTP usado é o POST.
imported_users_numinteiro Indica a quantidade de usuários que foram importados.
imported_templates_numinteiro Indica a quantidade de templates que foram importados.
error_in_rowsArray de Inteiros Indica em quais linhas ocorreu erros.
$.ajax({
url: "/import_users_csv.fcgi?session=" + session,
type: 'POST',
contentType: 'application/octet-stream',
contentLength: quantidade_de_bytes,
data: arquivo_csv
});
$.ajax({
url: "/import_users_csv.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/octet-stream',
contentLength: quantidade_de_bytes,
data: arquivo_csv
});
Exportar os usuáriosExporta todos os usuários que estão na base de dados do REP iDClassexport_users_csv Exporta todos os usuários que estão na base de dados do REP iDClass. O método HTTP usado é o POST.
Esse método retorna os dados dos usuários organizados da seguinte forma: pis (ou cpf);nome;administrador;matricula;rfid;codigo;senha;barras;digitais.
$.ajax({
url: "/export_users_csv.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json'
});
$.ajax({
url: "/export_users_csv.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json'
});
Remover AdministradoresRemove todos os administradores do equipamentoremove_admins Remove todos os administradores do equipamento.
Obs: Esse método não tem retorno.
$.ajax({
url: "/remove_admins.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
CadastrarCadastra empregadoredit_company Edita o empregador do REP. O método HTTP usado é o POST.
companyObjeto JSON Objeto JSON contendo todos os seguintes parâmetros:
namestring Campo utilizado para cadastrar o nome da empresa.
addressstring Campo utilizado para cadastrar o endereço da empresa.
tipo_docinteiro Se 1, cadastra campo cpf_cnpj como CNPJ, se 2, cadastra CPF.
cpf_cnpjinteiro Campo utilizado para cadastrar o CPF ou CNPJ, vai depender do valor atribuido ao campo tipo_doc.
ceiinteiro Campo utilizado para cadastrar o CEI (Cadastro Específico do INSS). Se o equipamento for homologado com a Portaria 671, este mesmo campo é utilizado para se informar o CAEPF (Cadastro de Atividades Econômicas da Pessoa Física) ou CNO (Cadastro Nacional de Obras), também como valores inteiros.
cpfinteiro Campo utilizado para cadastrar o CPF.
$.ajax({
url: "/edit_company.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
company: {
tipo_doc: 1,
cpf_cnpj: 4545454,
cei: 11111111111,
cpf: 12232115412,
name: 'Control iD',
address:'Rua Hungria 888'
}
})
});
ListarCarrega os dados do empregadorload_company Retorna os dados do empregador. O método HTTP usado é o POST.
companyObjeto JSON O método retorna um objeto JSON contendo todos os seguintes parâmetros:
namestring Nome da empresa.
addressstring Endereço da empresa.
tipo_docinteiro Se 1, campo cpf_cnpj é CNPJ, se 2, é CPF.
cpf_cnpjinteiro CPF ou CNPJ dependendo do campo tipo_doc.
ceiinteiro CEI (Cadastro Específico do INSS) da empresa. Se o equipamento for homologado com a Portaria 671, este mesmo campo é utilizado para se informar o CAEPF (Cadastro de Atividades Econômicas da Pessoa Física) ou CNO (Cadastro Nacional de Obras), também como valores inteiros.
cpfinteiro CPF do responsável.
"company": {
"name": "Control iD",
"address": "Rua Hungria 888",
"cpf": 45623245623,
"tipo_doc": 1,
"cpf_cnpj": 89765478985464,
"cei": 123456789874
}
Informações do SistemaObtém informações e estatísticas do REPget_system_information
Obtém as informações e estatísticas do REP: tempo ligado, quantidade de usuários, templates, tickets, quantidade de bobina, total de bobina, memória do REP, a última NSR etc.
O resultado é um objeto JSON que contém as seguintes chaves:
uptimeinteiro Indica há quanto tempo o equipamento está ligado.
user_countinteiro Contém a quantidade de digitais de todos os usuários cadastrados no equipamento.
template_countinteiro Contém a quantidade de digitais de todos os usuários cadastrados no equipamento (apenas para modelos diferentes do REP iDClass Facial).
number_of_facesstring Contém a quantidade de faces de todos os usuários cadastrados no equipamento (apenas para REP iDClass Facial).
ticksinteiro Indica há quanto tempo o REP está ligado.
cutsinteiro Retorna a quantidade de tickets gerados até o momento em que o método foi utilizado.
coil_paperinteiro Retorna a quantidade de bobina que ainda tem no REP.
total_paperinteiro Retorna a quantidade total de bobina antes do REP ser utilizado.
paper_okbooleano Indica se o REP está, ou não, pronto pra imprimir.
low_paperbooleano Indica se tem ou não pouco papel, caso o retorno seja 'null' o REP não possui sensor de pouco papel.
memoryinteiro Retorna a quantidade de memória utilizada.
used_mrpinteiro Retorna a quantidade de MRP utilizada, baseado na quantidade de informações armazenadas no REP.
last_nsrinteiro Retorna o número da última marcação realizada no REP, ou seja, a última vez que foi emitido o comprovante.
$.ajax({
url: "/get_system_information.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Informações do REPObtém informações do REPget_about Obtém as seguintes informações do REP: mac, nSerie, versionFW (firmware), versionMRP.
O resultado é um objeto JSON que contém as seguintes chaves:
macstring Indica o endereço do MAC do REP.
nSeriestring Indica o número de série do REP.
versionFWinteiro Indica a versão do firmware do REP.
versionMRPinteiro Indica a versão da MRP.
isFacialbooleano Diz se o REP é do tipo facial ou não. Se isFacial = true, trata-se de um REP iDClass Facial, caso contrário, o REP não possui reconhecimento facial.
$.ajax({
url: "/get_about.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Ativar o iDCloudEsse método executa o iDCloudset_idcloud Esse método é utilizado para ativar ou desativar o iDCloud no REP.
enablebooleano Deixar o valor de "enable" = true para ativar o iDCloud
$.ajax({
url: "/set_idcloud.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
enable: true
})
});
Status iDCloudRetorna o status do iDCloudget_idcloud Retorna o status do iDCloud; se enable = true, o iDCloud está ativado.
enableBooleano Retorna o status do iDCloud.
$.ajax({
url: "/get_idcloud.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Alterar a data e horaAltera a data e a hora do sistemaset_system_date_time Altera a data e a hora do sistema. O método HTTP usado é o POST.
dayinteiro Valor numérico representando o dia do mês.
monthinteiro Valor numérico representando o mês. Valores válidos entre 1 e 12.
yearinteiro Valor numérico representando o ano. Exemplo: 2014
hourinteiro Valor numérico representando a hora. Valores válidos entre 0 e 23.
minuteinteiro Valor numérico representando os minutos. Valores válidos entre 0 e 59.
secondinteiro Valor numérico representando os segundos. Valores válidos entre 0 e 59.
timezonestring String que representa o fuso horário. O formato a ser seguido é sHHMM, em que "s" representa o sinal (+ ou -), "H" as horas e "M" os minutos (apenas múltiplos de 15). O usuário precisa especificar que o modelo utilizado é o 671 a fim de se evitar conflito com as versões legadas.$.ajax({
url: "/set_system_date_time.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
day: 10,
month: 12,
year: 1983,
hour: 21,
minute: 30,
second: 00
})
});
$.ajax({
url: "/set_system_date_time.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
day: 10,
month: 03,
year: 2023,
hour: 21,
minute: 30,
second: 00,
timezone: "-0300"
})
});
Retorna data e horaRetorna a data e hora do REPget_system_date_time Retorna a data e hora do REP. O método HTTP usado é o POST.
dayinteiro Retorna o valor numérico representando o dia do mês.
monthinteiro Retorna o valor numérico representando o mês.
yearinteiro Retorna o valor numérico representando o ano.
hourinteiro Retorna o valor numérico representando a hora.
minuteinteiro Retorna o valor numérico representando os minutos.
secondinteiro Retorna o valor numérico representado os segundos.
timezone (opcional)string Retorna o fuso horário caso o modelo do equipamento siga a Portaria 671.
$.ajax({
url: "/get_system_date_time.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Animação do REPEsse método executa a animação do REPset_animation_screen Setar a animação do REP.
enabledbooleanoSe enabled = true, a animação do REP está ativada.$.ajax({
url: "/set_animation_screen.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
enabled: true
})
});
Baixar AFDObtém o arquivo AFD do REPget_afd Obtém o arquivo AFD do REP com todas as marcações realizadas até o momento da execução do método.
FORMATO DO ARQUIVO AFD
Para REPs homologados com a Portaria 671 (MTP 2021), o retorno pode seguir tanto o formato legado das Portarias anteriores (MTE 1510/2009, Inmetro 595/2013) quanto o novo formato definido pela Portaria 671.
Caso a requisição contenha o parâmetro mode na query_string com o valor 671, o retorno seguirá o formato definido pela Portaria 671.
Para qualquer outro valor, ou na ausência do parâmetro mode, o AFD retornado seguirá o formato legado já praticado pelo iDClass de modelos mais antigos.
Veja os exemplos de código no final da página.
initial_dateObjeto JSON initial_date é um objeto JSON, que contém os seguintes parâmetros:
yearinteiro Retorna o valor numérico representando o ano.
monthinteiro Retorna o valor numérico representando o mês.
dayinteiro Retorna o valor numérico representando o dia.
initial_nsrinteiro Retorna as marcações a partir da NSR informada até o final.
$.ajax({
url: "/get_afd.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
$.ajax({
url: "/get_afd.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
initial_date:{
day: 1,
month: 1,
year: 2023
}
})
});
$.ajax({
url: "/get_afd.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
initial_nsr: 14
}
})
});
$.ajax({
url: "/get_afd.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Beep do equipamentoAtiva ou desativa o beep do equipamentoset_buzzer_beep Ativa o som de beep do equipamento.
enabledBooleano Se enabled = true, o REP está com o beep ligado.
$.ajax({
url: "/set_buzzer_beep.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
enabled: true
})
});
Chave públicaRetorna a chave pública do REPget_public_key Chave pública do REP.
base32string Retorna a chave pública em base32.
base64string Retorna a chave pública em base 64.
$.ajax({
url: "/get_public_key.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Configurações de redeRetorna ou altera as configurações de rede do REPget_system_network Obtém as configurações de rede previamente definidas no REP. O método HTTP usado é o POST.
IPstring Texto representando o IP que o equipamento deve assumir, por exemplo: "192.168.2.185".
netmaskstring Texto representando a máscara de rede que o equipamento deve assumir. Exemplo: "255.255.128.0".
gatewaystring Endereço IP do gateway da rede. Exemplo: "192.168.2.1".
DNSstring Endereço do DNS da rede. Exemplo: "8.8.8.8".
portinteiro Porta utilizada para acessar a API de seu REP. Exemplo: 443.
use_dhpcbooleano Diz se o DHCP está ativo no REP. Caso o DHCP esteja ativo, use_dhcp = true; caso contrário, use_dhcp = false.
set_system_network Altera as configurações de rede do equipamento. O método HTTP usado é o POST.
IPstring Texto representando o IP que o equipamento deve assumir, por exemplo: "192.168.0.1".
netmaskstring Texto representando a máscara de rede que o equipamento deve assumir. Exemplo: "255.255.255.0".
gatewaystring Endereço IP do gateway da rede. Exemplo: "192.168.0.1".
DNSstring Endereço do DNS da rede. Exemplo: "8.8.8.8".
portinteiro Porta utilizada para acessar a API de seu REP. Exemplo: 443.
use_dhpcbooleano Ativa ou desativa o DHCP em seu REP. Caso queira utilizar DHCP, use_dhcp = true; caso contrário, use_dhcp = false.
Importante: caso esse parâmetro não seja informado na requisição, é assumido use_dhpc = false.
$.ajax({
url: "/set_system_network.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
ip: '192.168.2.185',
netmask: '255.255.128.0',
gateway: '192.168.0.1',
dns: '8.8.8.8',
port: 443,
use_dhcp: false
})
});
Setar o tamanho da bobinaSetar o tamanho da bobina inserida no REPset_coil_paper O método seta a quantidade de bobina que há no REP.
O resultado é um objeto JSON que contém as seguintes chaves:
coil_paperinteiro Define a quantidade de bobina do REP.
$.ajax({
url: "/set_coil_paper.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
"coil_paper":200
})
});
Quantidade de bobina no REPRetorna a quantidade de bobina do REPget_coil_paper O método retorna a quantidade de bobina que há no REP.
O resultado é um objeto JSON que contém as seguintes chaves:
coil_paperinteiro Retorna a quantidade de bobina que há no REP.
$.ajax({
url: "/get_coil_paper.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Tamanho do ticketSetar o tamanho do ticketset_ticket_size Setar o tamanho do ticket do equipamento.
economic_receipt_enabledBooleano Se economic_receipt_enabled = true, o ticket está com tamanho curto.
$.ajax({
url: "/set_ticket_size.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
economic_receipt_enabled: true
})
});
Tipo de identificaçãoAltera a forma de identificação no REPset_identification_type Setar a forma como o usuário vai se identificar no REP.
one_to_one_enabledbooleano Se one_to_one_enabled = true, estará mudando para a forma de identificação 1:1, os usuários precisarão se identificar por senha ou cartão antes de usar o leitor biométrico, caso contrário a forma de identificação é 1:N, podendo se identificar somente por uma forma específica (biometria, senha ou cartão).
$.ajax({
url: "/set_identification_type.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
one_to_one_enabled: true
})
});
Horário de verãoAltera o horário de verão do REPset_system_daylight_saving_time Altera o horário de verão do REP. O método HTTP usado é o POST.
start_date_timeObjeto JSON start_date_time é um objeto JSON, que contém os seguintes parâmetros:
yearinteiro Valor numérico representando o ano.
monthinteiro Valor numérico representando o mês. Valores válidos entre 1 e 12.
dayinteiro Valor numérico representando o dia. Exemplo: 3
end_date_timeObjeto JSON end_date_time é um objeto JSON, que contém os seguintes parâmetros:
yearinteiro Valor numérico representando o ano. Exemplo: 2014
monthinteiro Valor numérico representando o mês. Valores válidos entre 1 e 12.
dayinteiro Valor numérico representando o dia. Valores válidos entre 1 e 31.
$.ajax({
url: "/set_system_daylight_saving_time.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
"start_date_time": {
year: 2016,
month: 3,
day: 1
},
"end_date_time": {
"year": 2016,
"month": 4,
"day": 1
}
})
});
Retorna horário de verãoRetorna o horário de verão do REPget_system_daylight_saving_time Retorna o horário de verão do REP. O método HTTP usado é o POST.
start_date_timeObjeto JSON start_date_time é um objeto JSON, que contém os seguintes parâmetros:
yearinteiro Retorna o valor numérico representando o ano.
monthinteiro Retorna o valor numérico representando o mês.
dayinteiro Retorna o valor numérico representando o dia.
end_date_timeObjeto JSON end_date_time é um objeto JSON, que contém os seguintes parâmetros:
yearinteiro Retorna o valor numérico representando o ano.
monthinteiro Retorna o valor numérico representando o mês.
dayinteiro Retorna o valor numérico representando o dia.
$.ajax({
url: "/get_system_daylight_saving_time.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Informações de usuários do REPObtém informações de usuários do REPget_info Obtém as seguintes informações do REP: número de série, número de usuários, administradores, quantidade de digitais, senhas, código de barras, rfid, tempo ligado etc.
O resultado é um objeto JSON que contém as seguintes chaves:
num_seriestring Indica o número de série do REP.
user_countinteiro Indica a quantidade de usuários.
administrator_countinteiro Indica a quantidade de usuários que são administradores.
template_countinteiro Contém a quantidade de digitais de todos os usuários cadastrados no equipamento.
password_countinteiro Contém a quantidade de senhas de todos os usuários cadastrados no equipamento.
bars_countinteiro Contém a quantidade de códigos de barras cadastrados no REP.
rfid_countinteiro Contém a quantidade de cartões cadastrados.
uptimeinteiro Retorna o tempo que o REP está ligado.
low_on_paperbooleano Indica se tem ou não pouco papel, caso o retorno seja 'null' o REP não possui sensor de pouco papel.
Atenção: Esse campo está obsoleto.cutsinteiro Indica o total de tickets impressos.
total_printedinteiro Indica o total de tickets impressos (em decímetros).
$.ajax({
url: "/get_info.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Configurações específicas do REPObtém informações de configuração do REPget_system_configuration Obtém as configurações específicas do REP.
beep_enabledbooleano Indica se o REP está com o beep ligado.
animation_enabledbooleano Indica se o REP está com a animação ativada.
economic_receipt_enabledbooleano Indica se a opção ticket curto está ativada.
one_to_one_enabledbooleano Indica se a identificação 1:1 está ativada.
$.ajax({
url: "/get_system_configuration.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Combinar TemplatesCombinar os templatesO template é um conjunto de bytes obtidos pelo algoritmo Innovatrics existente dentro do equipamento que representa uma digital.template_merge Transforma 3 templates de base 64 em um template final. O método HTTP usado é o POST.
templatesarray de string Esse campo deve conter três templates, um para cada digital extraída.
user_pisinteiro Esse campo deve conter o PIS do usuário que está sendo gerado o template final. Este parâmetro é o padrão para Portarias anteriores. Para utilizá-lo no modelo 671, basta passar um valor de modo diferente de 671 na query_string, através do parâmetro mode ou não informar modo algum (ver exemplo).
user_cpfinteiro Esse campo deve conter o CPF do usuário que está sendo gerado o template final e só estará acessível quando o REP for um modelo homologado com a Portaria 671 e caso o usuário passe explicitamente o valor 671 para o parâmetro mode na query_string (ver exemplo).
new_templatesarray de string Esse campo deve conter os templates combinados e que ainda não foram salvos no equipamento. Entretanto, pode ser passado vazio.
removebooleano Este campo indica se os templates previamente cadastrados para o usuário em questão devem ser considerados durante a checagem ou não. Setar para true se desejar ignorar os templates já cadastrados.
$.ajax({
url: "/template_merge.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
"new_templates":[],
"remove":false,
"templates":[
"SUNSUzIxAAAE8"
],
"user_pis":12341234123
})
});
$.ajax({
url: "/template_merge.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
"new_templates":[],
"remove":false,
"templates":[
"SUNSUzIxAAAE8"
],
"user_cpf":12341234123
})
});
Alterar ConfiguraçõesPermite alterar diversas configurações faciaisset_facial_module_config Permite alterar diversas configurações de câmera e de reconhecimento facial (apenas para REP iDClass Facial). Todos os parâmetros da requisição são obrigatórios, portanto, antes de alterar os valores dos parâmetros pode ser útil consultar os parâmetros atuais com o endpoint get_facial_module_config.
Deve-se utilizar o método POST e a requisição deve conter os seguintes campos:
identification_distanceinteiro Altera a partir de qual distância a câmera deve passar a identificar rostos. A distância é dada em centímetros e deve estar entre 30 cm e 200 cm. Por padrão, o valor é de 100 cm.
leds_brightnessinteiro Porcentagem de luminosidade dos LEDs que acendem quando o ambiente estiver escuro. Deve ser um número de 0 a 100. Por padrão, o valor é 100.
led_activation_ambient_brightnessinteiro Define a partir de qual luminosidade os LEDs de identificação se acenderão. Os únicos valores possíveis são: 0 (acenderão em luminosidade baixa), 1 (acenderão em luminosidade média), 2 (acenderão em luminosidade alta), 3 (sempre acenderão). Por padrão, o valor é 0.
$.ajax({
url: "/set_facial_module_config.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
identification_distance: 100,
leds_brightness: 100,
led_activation_ambient_brightness: 0
})
});
Obter ConfiguraçõesObtém as configurações faciaisget_facial_module_config
Obtém os valores das configurações relacionadas ao reconhecimento facial.
O resultado é um objeto JSON que contém as seguintes chaves:
identification_distanceinteiro Indica a partir de qual distância (em centímetros) o rosto de uma pessoa deve estar para que a identificação facial inicie.
leds_brightnessinteiro Indica, em porcentagem, a luminosidade dos LEDs que se acendem para auxiliar na identificação facial.
led_activation_ambient_brightnessinteiro Indica a partir de qual luz ambiente os LEDs se acenderão, os valores possíveis são: 0 (acenderão em luminosidade baixa), 1 (acenderão em luminosidade média), 2 (acenderão em luminosidade alta), 3 (sempre acenderão).
calibration_statestring Indica o valor da calibração das câmeras. Será a string "-1" se não estiverem calibradas, e será o valor calibrado, caso contrário.
$.ajax({
url: "/get_facial_module_config.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Licença facialAumenta o limite de faces cadastráveis para 10 milset_facial_limit Use esse endpoint para aplicar sua licença facial e ser capaz de cadastrar até 10 mil faces. Para obter sua licença, entre em contato com a Control iD.
facial_limitstring String com o novo limite de faces cadastráveis, sempre deverá ser "10000".
passwordstring Sua senha da licença - para obter a senha, entre em contato com a Control iD.
$.ajax({
url: "/set_facial_limit.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
facial_limit: "10000",
password: "ColoqueAquiSuaSenha"
})
});
Informações do módulo facialObtém as informações do módulo facialget_about_facial
Obtém informações sobre o módulo facial. O módulo facial é um componente parte do REP iDClass Facial responsável pela detecção de faces. As informações contidas aqui são referentes apenas a este módulo, e são diferentes das informações do Relógio de Ponto em si.
O resultado é um objeto JSON que contém as seguintes chaves:
serial_numberstring Número de série de seu módulo facial - esse número é diferente do número de série de seu REP.
fw_versionstring Versão de firmware de seu módulo facial - essa versão se refere apenas ao módulo facial e é diferente da versão de firmware de seu REP.
number_of_facesstring Indica o número de faces atualmente cadastradas em seu REP.
max_number_of_facesstring Indica o máximo número de faces que podem ser cadastradas em seu REP. Para aumentar esse valor a 10 mil, entre em contato com a Control iD para obter a licença de upgrade facial.
$.ajax({
url: "/get_about_facial.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Estado do cadastro facialRetorna o estado do cadastro de uma facefacial_enroller_state
Esse endpoint indica se está ocorrendo ou não um cadastro facial pela tela do REP iDClass Facial.
O resultado é um objeto JSON que contém as seguintes chaves:
enrollingbooleano Indica se nesse momento está ocorrendo um cadastro facial pela tela do REP iDClass Facial. Será true caso esteja ocorrendo um cadastro, e false caso contrário.
remote_enrollingbooleano Indica se nesse momento está ocorrendo um cadastro remoto facial pela tela do REP iDClass Facial. Será true caso esteja ocorrendo um cadastro desse tipo, e false caso contrário.
$.ajax({
url: "/facial_enroller_state.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Cadastro facial remotoPermite cadastrar uma face de usuário remotamenteremote_enroll Use esse endpoint para iniciar o processo de cadastro remoto de foto em seu REP iDClass Facial. Ao realizar uma requisição a esse endpoint, a tela de seu REP iniciará o procedimento de cadastro e o usuário poderá se cadastrar seguindo as instruções mostradas na tela. Para saber se o cadastro já foi finalizado, é possível utilizar o endpoint facial_enroller_state.
cpfinteiro CPF do funcionário para o qual será cadastrada a foto. Obrigatoriamente deve ser enviada a query string mode=671 para se utilizar esse parâmetro.
$.ajax({
url: "/remote_enroll.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
cpf: 49885326820
})
});
Cancelar cadastro facial remotoPermite cancelar um cadastro facial remoto em andamentocancel_remote_enroll Use esse endpoint para finalizar o processo de cadastro remoto de face em seu REP iDClass Facial. Para saber se o cadastro já foi finalizado, é possível utilizar o endpoint facial_enroller_state.
$.ajax({
url: "/cancel_remote_enroll.fcgi?session=" + session,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
})
});
Cadastro de foto de usuárioCadastra uma foto para um usuário já existenteuser_set_image Use esse endpoint para cadastrar uma foto para o usuário - para isso, o usuário já deve ter sido criado anteriormente.
A imagem deve mostrar todo o rosto do usuário enquanto olha para a câmera, e deve ter no mínimo 160 x 160 px e no máximo 1920 x 1080 px de tamanho.
rawbooleano Query string que define se a imagem será enviada como um binário (octet-stream) ou como uma string encodada em base 64. Caso vá enviar um binário, raw = true, e caso vá enviar a imagem encodada em base 64, raw = false.
cpfinteiro Query string que representa o CPF do funcionário para o qual será cadastrada a foto. Obrigatoriamente deve ser enviada a query string mode=671 para se utilizar esse parâmetro.
image_timestampinteiro Query string que informa o inteiro em formato Unix Timestamp referente à foto sendo cadastrada.
do_matchbooleano Query string que representa se deverá ser realizado o processo de match ao cadastrar a foto. O processo de match compara a nova imagem cadastrada com todas as imagens já presentes no dispositivo, e não cadastrará a foto caso uma foto desse usuário já esteja cadastrada; porém, esse processo consome mais tempo de processamento.
imagestring Caso o parâmetro raw seja false, o corpo da requisição deverá ser um JSON com a chave image, cujo valor deverá ser uma string que representa a imagem do usuário encodada em base 64.
$.ajax({
url: "/user_set_image.fcgi?session=" + session + "&do_match=false&cpf=48192834820&image_timestamp=712930658&raw=false&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
image: "base_64_da_sua_imagem_aqui"
})
});
$.ajax({
url: "/user_set_image.fcgi?session=" + session + "&do_match=true&cpf=48192834820&image_timestamp=712930658&raw=true&mode=671",
type: 'POST',
contentType: 'application/octet-stream',
contentLength: quantidade_de_bytes,
data: dados_binarios_da_imagem_aqui
});
Obter foto de usuárioRetorna a foto já cadastrada de um usuáriouser_get_image Use esse endpoint para obter a foto já cadastrada de um usuário (se existir). Caso o parâmetro raw seja false, o base 64 da imagem será retornado no parâmetro image da resposta, caso contrário, a resposta retornará diretamente o binário da imagem.
Retorna status 400 caso o usuário não possua foto cadastrada.
rawbooleano Parâmetro que deve ser enviado para definir se a imagem deverá ser retornada como um binário (octet-stream) ou como uma string encodada em base 64. Caso espere que retorne um binário, raw = true, e caso espere que retorne a imagem encodada em base 64, raw = false.
cpfinteiro Parâmetro que representa o CPF do funcionário do qual se deseja buscar a foto. Obrigatoriamente deve ser enviada a query string mode=671 para se utilizar esse parâmetro.
$.ajax({
url: "/user_get_image.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
cpf: 48192834820,
raw: false
})
});
$.ajax({
url: "/user_get_image.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
cpf: 48192834820,
raw: true
})
});
Deletar foto de usuárioDeleta a foto já cadastrada de um usuáriouser_destroy_image Use esse endpoint para deletar a foto já cadastrada de um usuário (se existir).
Caso o usuário não possua foto cadastrada, a resposta terá status 400.
cpfinteiro Parâmetro que representa o CPF do funcionário do qual se deseja deletar a foto. Obrigatoriamente deve ser enviada a query string mode=671 para se utilizar esse parâmetro.
$.ajax({
url: "/user_destroy_image.fcgi?session=" + session + "&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
cpf: 48192834820
})
});
Importar foto de usuárioImporta uma foto de usuário durante procedimento de backupuser_import_image Use esse endpoint para importar uma foto de usuário durante procedimento de backup, após a importação do respectivo CSV.
A imagem deve mostrar todo o rosto do usuário enquanto olha para a câmera, e deve ter no mínimo 160 x 160 px e no máximo 1920 x 1080 px de tamanho.
cpfinteiro Query string que representa o CPF do funcionário para o qual será cadastrada a foto. Obrigatoriamente deve ser enviada a query string mode=671 para se utilizar esse parâmetro.
imagestring String que representa a imagem do usuário encodada em base 64.
$.ajax({
url: "/user_import_image.fcgi?session=" + session + "&cpf=48192834820&mode=671",
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
image: "base_64_da_sua_imagem_aqui"
})
});