Home / Sviluppatori

Sviluppa in un pomeriggio

Autenticati, recupera le presenze, registra un'impronta e apri una porta — con esempi da copiare e incollare nel linguaggio che già usi.

Guida rapida

Tre passaggi per la tua prima chiamata

Ottieni una chiave API

Crea un account sul portale sviluppatori e associa il tuo dispositivo tramite il numero di serie. Riceverai un AuthToken.

Autentica ogni richiesta

Passa AuthToken a ogni chiamata. Limita l'accesso al tuo account e allo specifico dispositivo.

Chiama un endpoint

Inizia con GetAttendanceByDate per verificare che i dati arrivino, poi passa a registrazione e controllo accessi.

URL di 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();

Lo stesso schema vale per ogni operazione: cambiano solo il percorso e i parametri.

Ricette comuni

Copia, incolla, rilascia

POST

Registra un utente

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

Apri una porta

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

Registra un webhook

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

Tieni le chiavi lato server

Non incorporare mai un AuthToken nel codice lato client. Instrada le chiamate attraverso il tuo backend.

🔄

Rendi i webhook idempotenti

Il gateway riprova finché non restituisci 200. Elimina i duplicati in base all'ID dell'evento, così i nuovi tentativi sono sicuri.

⏳

Gestisci i comandi in coda

Se un dispositivo è offline riceverai 409; il comando viene messo in coda. Esegui il polling di GetCommandStatus.

Test in locale

Testa i callback URL dal tuo computer

Il tuo computer di sviluppo è dietro un firewall, quindi il gateway non può raggiungere localhost direttamente. Esponilo con un tunnel, punta il tuo Callback URL all'indirizzo pubblico e genera una timbratura di prova.

  • Usa sempre un callback URL HTTPS
  • Mantieni attivo il tunnel per tutta la sessione di test
  • Gli URL gratuiti di ngrok cambiano a ogni riavvio — aggiorna il callback quando succede
  • Rendi idempotente il tuo handler — il gateway riprova finché non riceve 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

Collega un dispositivo

Punta un terminale verso il gateway

La maggior parte dei terminali di presenza (ZKTeco, eSSL e compatibili) usa il protocollo ICLOCK / push. Imposta i campi del server cloud sul dispositivo e questo invia le presenze al tuo account — senza PC né software locale.

⚙
Sul dispositivo: Menu → COMM → Cloud Server / ADMS, inserisci il server indicato sotto, poi verifica che nella schermata iniziale compaia l'icona di connessione al server.

Impostazioni del server del dispositivo

IP del server
152.53.172.248
Porta
8123 (sviluppo / test) · 80 (produzione)
Enable Domain Name
OFF
Proxy Server
OFF
Protocollo
ICLOCK / Push

Prima di impostare il server cloud, allinea IP / subnet / gateway / DNS del dispositivo alla tua LAN (oppure usa il DHCP).

Hai a portata di mano il numero di serie del dispositivo?

Associalo sul portale sviluppatori e fai una chiamata live in pochi minuti.