Download the PHP package tanemrahman/zkteco-adms without Composer

On this page you can find all versions of the php package tanemrahman/zkteco-adms. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package zkteco-adms

tanemrahman/zkteco-adms

ZKTeco ADMS / iClock Push protocol server for Laravel.

Your biometric device dials out to your Laravel app at /iclock/* and pushes attendance in real time.
No ZKBioTime server, no ZKPush.exe, no TCP SDK required.

Works with SenseFace, K40, MB series, and most ZKTeco Push-SDK devices.


Requirements


Installation (Composer)

Option A — from GitHub (current)

Add the VCS repository, then require the package.

composer.json

Or one-liner style:

Option B — path / local copy (offline)

Laravel auto-discovers ZktecoAdmsServiceProvider — no manual register needed.


What this package gives you

Piece Purpose
Routes /iclock/* Device protocol endpoints
Migrations Tables listed below
Models Eloquent models for devices, punches, logs
Events Hook punches into your HRM / attendance
Config Tunable protocol options
Artisan List devices, prune logs, requeue commands

This package does not ship an admin UI.
You design pages in your own app (Blade / Inertia / Livewire / Filament) on top of the tables & models.


Database tables

Created automatically on php artisan migrate:

Table Purpose
zkteco_devices Registered devices (by serial SN)
zkteco_transactions Attendance punches (includes workcode)
zkteco_device_commands Commands waiting for the device
zkteco_device_users USERINFO roster (verify_mode, is_blocked, template flags; updated after device confirms commands, or via OPERLOG)
zkteco_attphotos Attendance photos saved from ATTPHOTO uploads
zkteco_heartbeat_logs getrequest polls (liveness)
zkteco_adms_logs Raw protocol audit trail

Important columns

zkteco_transactions

Column Meaning
device_id FK → zkteco_devices.id
user_id Device PIN (enrolment id)
timestamp Punch time
status Punch state (in/out/…)
verify Verify type (fingerprint/face/…)
workcode Optional work code from ATTLOG
source Always adms for this package
terminal_sn Device serial

Map user_id (PIN) to your employees.biometric_emp_id (or similar) in your app.


Device configuration

On the device: Menu → Comm → Cloud Server / ADMS

Setting Value
Server Address attendance.yourdomain.com
Server Port 443
Enable Domain Name On (if using hostname)
Protocol / HTTPS On
Communication ADMS (Push)
Comm Key (optional) Must match ZKTECO_ADMS_COMM_KEY

The device will call:

Use a real TLS certificate (Let's Encrypt is fine). Some firmwares reject self-signed certs.

Local / XAMPP testing

Expected reply: OK: 1


Protocol endpoints (auto-registered)

Method Path Purpose
GET /iclock/cdata Handshake / options
POST /iclock/cdata ATTLOG / OPERLOG upload
GET /iclock/getrequest Command poll + heartbeat
POST /iclock/devicecmd Command result
GET /iclock/ping Liveness
POST /iclock/fdata Template / photo upload
* /iclock/registry, /iclock/push Push 2.x probes

Prefix is configurable via ZKTECO_ADMS_PREFIX (default iclock).
Do not change it unless every device is reconfigured — firmware expects iclock.


Config (.env)

Publish first:

Useful keys:


How to design your app around this package

Think of this package as the ingestion + device control layer. Your Laravel app owns UX & business rules.

Facade API (recommended)

Device picks commands on the next getrequest poll (~every 10 seconds).
zkteco_device_users is updated only after the device returns Return≥0 on /iclock/devicecmd (or when the device pushes USERINFO via OPERLOG).

Suggested screens (you build these)

  1. Devices — list ZktecoDevice, show online/offline from last_seen_at
  2. Live punches — paginate ZktecoTransaction where source = adms
  3. Device users — show ZktecoDeviceUser roster + “Add user” form that calls ZktecoAdms::addUser
  4. Biometrics — enroll face/finger on device, or push templates via addFace / addFingerprint
  5. Attendance photos — browse ZktecoAttphoto (files under storage/app/zkteco/attphotos by default)
  6. Protocol logs — debug with ZktecoAdmsLog (dev only)
  7. Commands — show pending queue from ZktecoDeviceCommand

Example: Devices index (controller sketch)

Example: Add user from your admin form

Example: Today's punches

Example: Map PIN → Employee in your HRM

React to punches in real time (recommended)

Set ZKTECO_ADMS_QUEUE_PROCESSING=true to fire TransactionsReceived on a queue worker instead of inline.


Artisan

Scheduled automatically:


Full ADMS feature list (this package)

Feature Status
/iclock handshake + options ✅
ATTLOG punch ingest + dedupe ✅
ATTLOG workcode column ✅
OPERLOG / USERINFO sync → DB ✅
ATTPHOTO save to disk + zkteco_attphotos ✅
FP / Face template flags from device ✅
fdata / registry / push / ping ✅
Auto-register device by SN ✅
Comm key auth ✅
Protocol + heartbeat logs ✅
Command queue (getrequest / devicecmd) ✅
Add / update / delete user (DB after device ack) ✅
Push fingerprint template ✅
Push face template ✅
Query users / attlog from device ✅
Reboot / CHECK / INFO / sync time ✅
Clear log / clear data ✅
Reset sync stamps ✅
Pre-register / delete device (artisan) ✅
Facade ZktecoAdms::… ✅
Admin UI ❌ (build in your app)

Using with BioTime package

You can install both:

They share zkteco_transactions. Filter by source:


Publishable tags


License

MIT


All versions of zkteco-adms with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/support Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/routing Version ^11.0|^12.0|^13.0
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/events Version ^11.0|^12.0|^13.0
illuminate/bus Version ^11.0|^12.0|^13.0
illuminate/queue Version ^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package tanemrahman/zkteco-adms contains the following files

Loading the files please wait ...