ZKTeco setup guide
ZKTeco K40 Pro Cloud Setup: Push Attendance to the Cloud
The K40 Pro is a keypad terminal, so every setting below is typed on the device itself. The same steps work for the K40, K50, F18 and F19 fingerprint readers, which share the same menu layout.
Menu path on the device
M/OK > Comm. > Cloud Server Setting
Also covers: K40, K50, F18, F19
Connect the ZKTeco K40 Pro in four steps
- 1
Add the terminal to your workspace
In Asaanex, open Devices and add the K40 Pro with its serial number, which you will find under M/OK, System Info, Device Info.
- 2
Open the communication menu
Press M/OK to open the main menu, scroll to Comm., then choose Cloud Server Setting. Use the arrow keys to move between fields.
- 3
Type the gateway address
Set Enable Domain Name to ON, type biobackend.asaanex.com in the server address field, set the port to 80, and set Enable Proxy Server to OFF.
- 4
Save and restart
Press M/OK to save, then press ESC until you leave the menu. Restart the terminal so it registers with the gateway, then scan a finger to confirm the punch appears in your dashboard.
Settings to enter
| Setting on the device | Value to enter | Notes |
|---|---|---|
| Enable Domain Name | ON | Lets you type a web address instead of an IP. |
| Server Address | biobackend.asaanex.com | The Asaanex gateway. No static IP needed at your office. |
| Server Port | 80 | Outgoing connection from the device. |
| Enable Proxy Server | OFF | A proxy blocks the push connection. |
| HTTPS / SSL | OFF | Push traffic runs over HTTP on port 80. |
- On the keypad, use the up and down arrows to switch between letters and numbers while typing the address.
- If the device is also wired to older local attendance software, stop that software from polling first, so both systems do not clear the same punch records.
Check that punches are arriving
Open your Asaanex console. The terminal shows its serial number, last seen time and connection state. Scan a finger, face or card on the device: the punch appears in the live feed with the employee number, the time and the verification method.
The same punch is immediately available to your own software. This call returns the ten most recent records:
curl -X GET "https://biometric.asaanex.com/api/v1/attendance?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"To push events into your HR or payroll system as they happen, add a webhook endpoint instead of polling. See the webhook documentation.
If the device does not connect
- Check the site has working internet. Open a browser on any device on the same network.
- Re-enter the server address carefully. A trailing space or a missing letter stops registration.
- Confirm the port is 80 and the proxy is off.
- Restart the terminal from its own menu so the settings are saved to memory.
- Confirm the serial number in your workspace matches the one on the device, character for character.
Still stuck? Email contact@aviecho.com or message us on WhatsApp with the model and a photo of the settings screen.
Connect your ZKTeco K40 Pro free for 3 months
Create a workspace, add the serial number, and watch the first punch land in the live console. No credit card required.
Questions about this device
Do existing fingerprint enrolments still work?
Yes. Employees keep their fingerprints and employee numbers on the terminal. Asaanex reads the punch events that the device pushes, so nobody needs to enrol again.
Do I need a static IP or port forwarding?
No. The terminal opens an outgoing connection to the Asaanex gateway, the same way a phone reaches a website. It works behind an ordinary office router, a DSL line or a 4G modem, and nothing needs to be opened on your firewall.
What happens to punches when the internet goes down?
The terminal stores punches in its internal memory. When the connection returns it pushes the stored records to your workspace automatically, so no attendance is lost during a power cut or an internet outage.
How long until punches appear in the dashboard?
Once the device registers, a scan appears in the live console within seconds. Every punch is timestamped, matched to the employee number, and made available through the REST API and webhooks.