Início / Desenvolvedores

Crie em uma tarde

Autentique, consulte a frequência, cadastre uma impressão digital e abra uma porta — com exemplos para copiar e colar na linguagem que você já usa.

Início rápido

Três passos até a sua primeira chamada

Obtenha uma chave de API

Crie uma conta no portal do desenvolvedor e pareie seu dispositivo pelo número de série. Você receberá uma AuthToken.

Autentique cada requisição

Envie AuthToken em cada chamada. Ele restringe o acesso à sua conta e ao dispositivo específico.

Chame um endpoint

Comece com GetAttendanceByDate para confirmar que os dados estão fluindo e depois passe para cadastro e controle de acesso.

URL base

https://api.camsbiometrics.com/v3/

# Fetch attendance for a date range
curl https://api.camsbiometrics.com/v3/attendance/getbyscandate \
  -d "AuthToken=$API_KEY" \
  -d "StartDate=2026-06-01" \
  -d "EndDate=2026-06-21"
$ch = curl_init("https://api.camsbiometrics.com/v3/attendance/getbyscandate");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POSTFIELDS => [
    "AuthToken"  => $apiKey,
    "StartDate"  => "2026-06-01",
    "EndDate"    => "2026-06-21",
  ],
]);
$data = json_decode(curl_exec($ch), true);
import requests

r = requests.post(
    "https://api.camsbiometrics.com/v3/attendance/getbyscandate",
    data={
        "AuthToken": api_key,
        "StartDate": "2026-06-01",
        "EndDate": "2026-06-21",
    },
)
logs = r.json()["Attendance"]
const res = await fetch(
  "https://api.camsbiometrics.com/v3/attendance/getbyscandate",
  {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: new URLSearchParams({
      AuthToken: apiKey,
      StartDate: "2026-06-01",
      EndDate: "2026-06-21",
    }),
  }
);
const { Attendance } = await res.json();

O mesmo padrão vale para todas as operações — basta mudar o caminho e os parâmetros.

Receitas comuns

Copie, cole, publique

POST

Cadastrar um usuário

curl .../v3/user/add \
 -d "AuthToken=$K" \
 -d "DeviceSN=ZK6A2300583" \
 -d "EmployeeCode=1042" \
 -d "Name=Priya"
POST

Abrir uma porta

curl .../v3/access/opendoor \
 -d "AuthToken=$K" \
 -d "DeviceSN=ZK6A2300583" \
 -d "DoorNo=1"
CALLBACK

Registrar um webhook

curl .../v3/callback/register \
 -d "AuthToken=$K" \
 -d "Url=https://app/hook" \
 -d "Events=attendance.new"
🔒

Mantenha as chaves no servidor

Nunca incorpore uma AuthToken em código do lado do cliente. Faça as chamadas passarem pelo seu backend.

🔄

Torne seus webhooks idempotentes

O gateway tenta novamente até você retornar 200. Elimine duplicatas pelo id do evento para que as novas tentativas sejam seguras.

⏳

Trate comandos na fila

Se um dispositivo estiver offline, você receberá 409; o comando fica na fila. Consulte GetCommandStatus.

Testes locais

Teste URLs de callback a partir da sua máquina

Sua máquina de desenvolvimento fica atrás de um firewall, então o gateway não consegue acessar localhost diretamente. Exponha-a com um túnel, aponte sua Callback URL para o endereço público e dispare uma batida de teste.

  • Use sempre uma URL de callback HTTPS
  • Mantenha o túnel ativo durante toda a sessão de testes
  • As URLs gratuitas do ngrok mudam a cada reinício — atualize o callback quando isso acontecer
  • Torne seu handler idempotente — o gateway tenta novamente até receber 200
# 1. install & authenticate ngrok
ngrok config add-authtoken $TOKEN
# 2. expose your local app (e.g. port 3000)
ngrok http 3000
# Forwarding https://abc123.ngrok-free.app -> localhost:3000
# 3. set that HTTPS URL as your Callback URL
# Cams ngrok helper kit (Windows)
# download:
developer.camsbiometrics.com/setup/ngrok-helper-kit.rar
# then:
edit app.properties   # add your ngrok authtoken
run  check_ngrok.bat

Conectar um dispositivo

Aponte um terminal para o gateway

A maioria dos terminais de frequência (ZKTeco, eSSL e compatíveis) usa o protocolo ICLOCK / push. Configure os campos de servidor na nuvem no dispositivo e ele transmite a frequência para a sua conta — sem PC nem software local.

⚙
No dispositivo: Menu → COMM → Cloud Server / ADMS, informe o servidor abaixo e confirme que o ícone de conexão com o servidor aparece na tela inicial.

Configurações de servidor do dispositivo

IP do servidor
152.53.172.248
Porta
8123 (desenvolvimento / testes) · 80 (produção)
Enable Domain Name
OFF
Servidor proxy
OFF
Protocolo
ICLOCK / Push

Ajuste o IP / sub-rede / gateway / DNS do dispositivo à sua LAN (ou use DHCP) antes de configurar o servidor na nuvem.

Está com o número de série do dispositivo em mãos?

Pareie-o no portal do desenvolvedor e faça uma chamada real em minutos.