Home / Developers

Bouw in een middag

Authenticeer, haal aanwezigheid op, registreer een vingerafdruk en open een deur — met voorbeelden om te kopiëren en plakken in de taal die u al gebruikt.

Quickstart

Drie stappen naar uw eerste aanroep

Haal een API-sleutel op

Maak een account aan op het developerportaal en koppel uw apparaat via het serienummer. U ontvangt een AuthToken.

Authenticeer elk verzoek

Geef AuthToken mee bij elke aanroep. Daarmee wordt de toegang afgebakend tot uw account en het specifieke apparaat.

Roep een endpoint aan

Begin met GetAttendanceByDate om te bevestigen dat de data binnenkomt en ga daarna verder met registratie en toegangscontrole.

Basis-URL

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

Hetzelfde patroon geldt voor elke operatie — wijzig het pad en de parameters.

Veelgebruikte recepten

Kopiëren, plakken, live

POST

Een gebruiker registreren

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

Een deur openen

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

Een webhook registreren

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

Houd sleutels server-side

Sluit nooit een AuthToken in client-side code in. Laat aanroepen via uw backend lopen.

🔄

Maak webhooks idempotent

De gateway probeert het opnieuw totdat u 200 teruggeeft. Ontdubbel op basis van de event-id, zodat nieuwe pogingen veilig zijn.

⏳

Ga om met commando's in de wachtrij

Als een apparaat offline is, ontvangt u 409; het commando komt in de wachtrij. Poll GetCommandStatus.

Lokaal testen

Test callback-URL's vanaf uw eigen machine

Uw ontwikkelmachine zit achter een firewall, dus de gateway kan localhost niet rechtstreeks bereiken. Maak hem bereikbaar met een tunnel, richt uw Callback-URL op het publieke adres en activeer een test-punch.

  • Gebruik altijd een HTTPS-callback-URL
  • Laat de tunnel draaien tijdens de hele testsessie
  • Gratis ngrok-URL's veranderen bij een herstart — werk de callback bij wanneer dat gebeurt
  • Maak uw handler idempotent — de gateway probeert het opnieuw totdat hij een 200 ontvangt
# 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

Een apparaat koppelen

Richt een terminal op de gateway

De meeste aanwezigheidsterminals (ZKTeco, eSSL en compatibele) spreken het ICLOCK-/pushprotocol. Stel de cloudserver-velden op het apparaat in en het streamt aanwezigheid naar uw account — geen pc of lokale software nodig.

⚙
Op het apparaat: Menu → COMM → Cloud Server / ADMS, voer de onderstaande server in en controleer daarna of het pictogram voor de serververbinding op het startscherm verschijnt.

Serverinstellingen van het apparaat

Server-IP
152.53.172.248
Poort
8123 (developer / testen) · 80 (productie)
Enable Domain Name
OFF
Proxy Server
OFF
Protocol
ICLOCK / Push

Pas het IP-adres / subnet / de gateway / DNS van het apparaat aan op uw LAN (of gebruik DHCP) voordat u de cloudserver instelt.

Heeft u het serienummer van uw apparaat bij de hand?

Koppel het op het developerportaal en doe in enkele minuten een live aanroep.