Beranda / Pengembang

Bangun dalam hitungan jam

Autentikasi, tarik data absensi, daftarkan sidik jari, dan buka pintu — dengan contoh salin-tempel dalam bahasa yang sudah Anda gunakan.

Panduan cepat

Tiga langkah menuju panggilan pertama

Dapatkan kunci API

Buat akun di portal pengembang dan pasangkan perangkat Anda dengan nomor seri. Anda akan menerima AuthToken.

Autentikasi setiap permintaan

Sertakan AuthToken pada setiap panggilan. Token ini membatasi akses ke akun Anda dan perangkat tertentu.

Panggil sebuah endpoint

Mulai dengan GetAttendanceByDate untuk memastikan data mengalir, lalu lanjutkan ke pendaftaran dan kontrol akses.

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

Pola yang sama berlaku untuk setiap operasi — cukup ubah path dan parameternya.

Resep umum

Salin, tempel, rilis

POST

Daftarkan pengguna

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

Buka pintu

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

Daftarkan webhook

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

Simpan kunci di sisi server

Jangan pernah menyematkan AuthToken di kode sisi klien. Teruskan panggilan melalui backend Anda.

🔄

Buat webhook idempoten

Gateway mencoba ulang hingga Anda mengembalikan 200. Hapus duplikat berdasarkan id event agar percobaan ulang aman.

⏳

Tangani perintah yang diantrekan

Jika perangkat offline, Anda akan mendapat 409; perintah diantrekan. Lakukan polling GetCommandStatus.

Pengujian lokal

Uji callback URL dari komputer Anda

Komputer pengembangan Anda berada di balik firewall, sehingga gateway tidak dapat menjangkau localhost secara langsung. Ekspos dengan tunnel, arahkan Callback URL Anda ke alamat publik, lalu picu absen uji.

  • Selalu gunakan callback URL HTTPS
  • Biarkan tunnel tetap berjalan selama seluruh sesi pengujian
  • URL ngrok gratis berubah saat dimulai ulang — perbarui callback saat itu terjadi
  • Buat handler Anda idempoten — gateway mencoba ulang hingga menerima 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

Hubungkan perangkat

Arahkan terminal ke gateway

Sebagian besar terminal absensi (ZKTeco, eSSL, dan yang kompatibel) menggunakan protokol ICLOCK / push. Isi kolom cloud server di perangkat dan perangkat akan mengalirkan absensi ke akun Anda — tanpa PC atau perangkat lunak lokal.

⚙
Di perangkat: Menu → COMM → Cloud Server / ADMS, masukkan server di bawah, lalu pastikan ikon koneksi server muncul di layar utama.

Pengaturan server perangkat

IP Server
152.53.172.248
Port
8123 (pengembangan / pengujian) · 80 (produksi)
Enable Domain Name
OFF
Proxy Server
OFF
Protokol
ICLOCK / Push

Sesuaikan IP / subnet / gateway / DNS perangkat dengan LAN Anda (atau gunakan DHCP) sebelum mengatur cloud server.

Sudah punya nomor seri perangkat?

Pasangkan di portal pengembang dan lakukan panggilan langsung dalam hitungan menit.