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

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

Аутентификация, получение данных посещаемости, регистрация отпечатка и открытие двери — с примерами для копирования на языке, который вы уже используете.

Быстрый старт

Три шага до первого вызова

Получите ключ API

Создайте учётную запись на портале разработчика и привяжите устройство по серийному номеру. Вы получите AuthToken.

Аутентифицируйте каждый запрос

Передавайте AuthToken с каждым вызовом. Он ограничивает доступ вашей учётной записью и конкретным устройством.

Вызовите endpoint

Начните с GetAttendanceByDate, чтобы убедиться, что данные поступают, а затем переходите к регистрации и контролю доступа.

Базовый 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. Дедуплицируйте по id события, чтобы повторы были безопасными.

⏳

Обрабатывайте команды в очереди

Если устройство офлайн, вы получите 409; команда будет поставлена в очередь. Опрашивайте GetCommandStatus.

Локальное тестирование

Тестируйте callback URL со своего компьютера

Ваш компьютер разработчика находится за файрволом, поэтому шлюз не может напрямую обратиться к localhost. Откройте доступ через туннель, укажите публичный адрес в Callback URL и запустите тестовую отметку.

  • Всегда используйте callback URL с HTTPS
  • Держите туннель запущенным в течение всей тестовой сессии
  • Бесплатные 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. Укажите на устройстве поля облачного сервера, и оно начнёт передавать данные посещаемости в вашу учётную запись — без ПК и локального ПО.

⚙
На устройстве: Меню → COMM → Cloud Server / ADMS, введите сервер из таблицы ниже, затем убедитесь, что на главном экране появился значок подключения к серверу.

Настройки сервера на устройстве

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

Перед настройкой облачного сервера задайте IP устройства, маску подсети, шлюз и DNS в соответствии с вашей LAN (или используйте DHCP).

Серийный номер устройства под рукой?

Привяжите его на портале разработчика и сделайте живой вызов за считаные минуты.