Browse software

How to connect a ZKTeco machine to a cloud server

Five settings on the machine, about five minutes, no fixed IP needed at the office. Works for most ZKTeco and eSSL fingerprint, face and card machines with a push (ADMS) menu.

Updated 4 October 2026 · 6 min read

How it works (in one minute)

Older attendance setups use desktop software on an office PC that pulls punches from the machine over the local network. That PC must stay on, and every branch needs its own copy.

Modern ZKTeco and eSSL machines can work the other way round: the machine itself calls a server on the internet and pushes each punch as it happens. This is called ADMS or push mode. Because the machine makes the call, you do not need a fixed IP address or port forwarding at the office — a normal internet connection is enough. If the internet drops, the machine keeps its punches and sends them when it is back.

Before you start

Step 1 — Put the machine on the network

Open Menu → Comm → Ethernet (or WiFi). The IP address shown must be a real address such as 192.168.1.50.

If it shows 0.0.0.0, the machine is not on the network at all. Check the cable, or join the WiFi, and look again. No other setting will work until this shows a real address.

Step 2 — Open the cloud server menu

Go to Menu → Comm → Cloud Server Setting (or ADMS / Cloud, depending on the model).

Step 3 — Enter the five settings

SettingValueNote
Enable Domain NameONLets you type a name instead of an IP
Server Addressyour server, e.g. attendance.yourcompany.comWithout http://
Server Port80Or the port your server uses
Enable Proxy ServerOFFAlmost never needed
HTTPSOFFMust be OFF with port 80 — see below

Save, then restart the machine. A correctly set machine calls the server within a minute.

Step 4 — Check that it arrives

On your server, the machine should appear (often as "new" or "waiting for approval" — a good server does not accept punches from unknown machines until you approve them). Punch once with a test finger or card and check that it shows up.

The usual problems, and their fixes

HTTPS is ON

This is the most common reason a machine never connects, even with perfect internet. Port 80 is for plain connections; with HTTPS switched on, the secure handshake cannot work on that port and the machine silently gives up. Turn HTTPS OFF and it calls in within a minute. Many machines arrive from the factory with HTTPS ON, so always check it.

The keypad cannot type a dot (.)

Some keypads have no dot key, so you cannot type a domain name. Turn Enable Domain Name OFF: the Server Address changes into four small boxes with the dots already in place, and you type your server's IP address. Use the name whenever you can, though — if your server ever moves to a new IP, a name keeps working and an IP does not.

Server Address is empty, or the port changed

Settings sometimes get cleared by someone exploring the menu. Type them again exactly as above.

The machine shows up, but punches do not count

New machines usually wait for approval on the server. Approve it; the punches it already sent then count too.

Old punches are missing

The machine keeps its punches in memory. Most servers can ask it to send everything again — for example a "re-send all stored punches" command. Punches that already arrived are not doubled.

The punch times are wrong

The machine stamps each punch with its own clock. Set the date and time on the machine (Menu → System → Date/Time) to your local time.

Quick checklist

  1. IP address is real, not 0.0.0.0
  2. Server Address and Port are correct
  3. HTTPS is OFF
  4. Proxy is OFF
  5. Machine approved on the server
  6. Machine clock is correct
Need the server side? PunchSync is a self-hosted attendance server for ZKTeco and eSSL push machines. It shows these five settings filled in for your own server, turns green the moment the machine calls in, and lists these same fixes on screen.
Topics:ZKTecoeSSLCloud serverADMS settingsTroubleshooting

Related guides

ZKTeco and eSSL are trademarks of their respective owners. Menu names can differ slightly between models and firmware versions.