Головна / Розробникам

Розробка за один вечір

Автентифікуйтеся, отримуйте відвідуваність, реєструйте відбиток і відчиняйте двері — з прикладами для копіювання тією мовою, якою ви вже користуєтеся.

Швидкий старт

Три кроки до першого виклику

Отримайте API-ключ

Створіть обліковий запис на порталі розробника та прив’яжіть пристрій за серійним номером. Ви отримаєте AuthToken.

Автентифікуйте кожен запит

Передавайте AuthToken з кожним викликом. Він обмежує доступ вашим обліковим записом і конкретним пристроєм.

Викличте endpoint

Почніть із GetAttendanceByDate, щоб переконатися, що дані надходять, а потім переходьте до реєстрації та контролю доступу.

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

Той самий шаблон застосовується до кожної операції — змінюйте шлях і параметри.

Типові рецепти

Скопіюйте, вставте, запустіть

POST

Зареєструвати користувача

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

Відчинити двері

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

Зареєструвати webhook

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

Зберігайте ключі на стороні сервера

Ніколи не вбудовуйте AuthToken у клієнтський код. Проксіюйте виклики через свій бекенд.

🔄

Робіть webhook ідемпотентними

Шлюз повторює спроби, доки ви не повернете 200. Усувайте дублікати за ідентифікатором події, щоб повтори були безпечними.

⏳

Обробляйте команди в черзі

Якщо пристрій офлайн, ви отримаєте 409; команду буде поставлено в чергу. Опитуйте GetCommandStatus.

Локальне тестування

Тестуйте callback URL зі свого комп’ютера

Ваш комп’ютер розробника розташований за брандмауером, тож шлюз не може напряму звернутися до localhost. Відкрийте його через тунель, вкажіть публічну адресу як Callback URL і ініціюйте тестову відмітку.

  • Завжди використовуйте HTTPS для callback URL
  • Тримайте тунель запущеним протягом усього сеансу тестування
  • Безкоштовні URL ngrok змінюються після перезапуску — оновлюйте callback, коли це станеться
  • Робіть свій обробник ідемпотентним — шлюз повторює спроби, доки не отримає 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

Підключення пристрою

Спрямуйте термінал на шлюз

Більшість терміналів обліку відвідуваності (ZKTeco, eSSL та сумісні) працюють за протоколом ICLOCK / push. Вкажіть на пристрої поля хмарного сервера, і він передаватиме відвідуваність у ваш обліковий запис — без ПК чи локального програмного забезпечення.

⚙
На пристрої: Menu → COMM → Cloud Server / ADMS, введіть наведений нижче сервер, а потім переконайтеся, що на головному екрані з’явився значок підключення до сервера.

Налаштування сервера на пристрої

IP-адреса сервера
152.53.172.248
Порт
8123 (розробка / тестування) · 80 (робоче середовище)
Enable Domain Name
OFF
Proxy Server
OFF
Протокол
ICLOCK / Push

Перед налаштуванням хмарного сервера узгодьте IP / маску підмережі / шлюз / DNS пристрою зі своєю LAN (або використайте DHCP).

Маєте під рукою серійний номер пристрою?

Прив’яжіть його на порталі розробника й зробіть живий виклик за лічені хвилини.