{"id":560809,"date":"2026-10-16T11:36:32","date_gmt":"2026-10-16T11:36:32","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=560809"},"modified":"2026-10-16T11:36:37","modified_gmt":"2026-10-16T11:36:37","slug":"erpnext-zkteco-attendance-integration","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/","title":{"rendered":"User Guide for ERPNext ZKTeco Attendance Integration"},"content":{"rendered":"\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\">Introduction<\/h2>\n<\/div><\/div>\n\n\n\n<p><strong><a href=\"https:\/\/store.webkul.com\/erpnext-zkteco-attendance-integration.html\">ERPNext ZKTeco Attendance Integration<\/a><\/strong> connects a ZKTeco device to ERPNext. It brings each punch from the device into ERPNext, so you no longer copy biometric attendance by hand.<\/p>\n\n\n\n<p>HR teams and system managers use it. They add each ZKTeco device, link device users to employees, and read every punch log in one place.<\/p>\n\n\n\n<p>By the end of this guide, you can add a device, receive punches, and check attendance, breaks and sync results.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\">Prerequisites for using ERPNext ZKTeco Attendance Integration<\/h2>\n<\/div><\/div>\n\n\n\n<p>ERPNext ZKTeco Attendance Integration works in conjunction with the following modules:<\/p>\n\n\n\n<p><strong>ERPNext<\/strong> and <strong>HRMS<\/strong><\/p>\n\n\n\n<p>You must install the above-mentioned modules to use the ERPNext ZKTeco Attendance Integration.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\">Features<\/h2>\n<\/div><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Add any number of ZKTeco device records, each with its own address and settings.<\/li>\n\n\n\n<li>Pull biometric attendance from a device on a schedule, or sync it at once.<\/li>\n\n\n\n<li>Receive punches from remote devices with ADMS Push.<\/li>\n\n\n\n<li>Link device users to employees, and enroll employees on a device.<\/li>\n\n\n\n<li>Keep every punch log without duplicates.<\/li>\n\n\n\n<li>Create an Employee Checkin for each punch.<\/li>\n\n\n\n<li>Track employee breaks with their length.<\/li>\n\n\n\n<li>Read punches and hours in the attendance reports.<\/li>\n\n\n\n<li>Check each sync run and the state of each ZKTeco device.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Installation<\/h3>\n<\/div><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>After purchasing the app from Webkul Store, you will receive a link to download the module ZIP file.<\/li>\n\n\n\n<li>Extract the ZIP file. You will see a folder named &#8216;erpnext_zkteco_attendance_integration&#8217;.<\/li>\n\n\n\n<li>Set up the module in your git repository, then fetch it using:<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\">bench get-app --branch main https:\/\/git.webkul.com\/erpnext-apps\/erpnext_zkteco_attendance_integration.git<\/pre>\n\n\n\n<p>(Replace &#8220;main&#8221; with your branch name and replace the &#8220;HTTPS URL&#8221; with your HTTPS clone URL.)<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Install the app on your site:<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\">bench --site &lt;your-site-name&gt; install-app erpnext_zkteco_attendance_integration<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Run bench migrate to complete the setup.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\"> Workflow<\/h2>\n<\/div><\/div>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Adding a ZKTeco Device<\/h3>\n<\/div><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Device<\/strong> list. It shows each device with its connection mode and status.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-1\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-1200x844.webp\" alt=\"ZKTeco Device \" class=\"wp-image-560826\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Click <strong>Add ZKTeco Device<\/strong>. The new device form opens.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-new-zkteco-device-form-2-1200x844.webp\" alt=\"Add ZKTeco Device\" class=\"wp-image-560828\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-new-zkteco-device-form-2-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-new-zkteco-device-form-2-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-new-zkteco-device-form-2-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-new-zkteco-device-form-2-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-new-zkteco-device-form-2.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Enter the <strong>Device Name<\/strong>, <strong>IP Address<\/strong> and <strong>Port<\/strong>. The default port is 4370.<\/li>\n\n\n\n<li>Click <strong>Save<\/strong>, then click <strong>Test Connection<\/strong>. ERPNext reads the model and serial number of the ZKTeco device.<\/li>\n\n\n\n<li>Click <strong>Sync Now<\/strong> to pull the punch log from the device.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"49\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-form-with-action-buttons-1200x49.webp\" alt=\"Sync Now  Button\" class=\"wp-image-560830\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-form-with-action-buttons-1200x49.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-form-with-action-buttons-300x12.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-form-with-action-buttons-250x10.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-form-with-action-buttons-768x31.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-form-with-action-buttons.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Receiving Punches With ADMS Push<\/h3>\n<\/div><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>ZKTeco Settings<\/strong>. The status panel shows if the library, HRMS and your devices are ready.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"932\" height=\"851\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-settings-status-panel.webp\" alt=\"ZKTeco Settings\" class=\"wp-image-560832\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-settings-status-panel.webp 932w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-settings-status-panel-300x274.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-settings-status-panel-250x228.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-settings-status-panel-768x701.webp 768w\" sizes=\"(max-width: 932px) 100vw, 932px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Tick <strong>Enable ADMS Push Mode<\/strong>. Use this when ERPNext cannot reach the device, for example behind a router.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"932\" height=\"161\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-adms-push-settings.webp\" alt=\"Enable ADMS Push Mode\" class=\"wp-image-560833\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-adms-push-settings.webp 932w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-adms-push-settings-300x52.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-adms-push-settings-250x43.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-adms-push-settings-768x133.webp 768w\" sizes=\"(max-width: 932px) 100vw, 932px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>On the device, enter your ERPNext address as the cloud server.<\/li>\n\n\n\n<li>On the <strong>ZKTeco Device<\/strong> form, set <strong>Connection Mode<\/strong> to <strong>ADMS Push<\/strong> and enter the <strong>Serial Number<\/strong>.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Linking Device Users to Employees<\/h3>\n<\/div><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open a <strong>ZKTeco Device<\/strong> and click the <strong>Users<\/strong> menu.<\/li>\n\n\n\n<li>Choose <strong>Fetch Machine Users<\/strong> to copy the device user list into ERPNext.<\/li>\n\n\n\n<li>Choose <strong>Enroll Employees<\/strong> to write employees onto the device, or <strong>Remove Employees<\/strong> to delete them.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"158\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-users-menu-on-a-device-1-1200x158.webp\" alt=\"Linking Device Users to Employees\" class=\"wp-image-560837\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-users-menu-on-a-device-1-1200x158.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-users-menu-on-a-device-1-300x40.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-users-menu-on-a-device-1-250x33.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-users-menu-on-a-device-1-768x101.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-users-menu-on-a-device-1.webp 1280w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Device User<\/strong> list. Each row shows the device user ID and the linked employee.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-users-list-1-1200x844.webp\" alt=\"ZKTeco Device User\" class=\"wp-image-560843\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-users-list-1-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-users-list-1-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-users-list-1-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-users-list-1-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-device-users-list-1.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Reading Attendance<\/h3>\n<\/div><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Attendance Log<\/strong> list. It holds every punch log with its device and employee.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"843\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-punch-log-list-3-1200x843.webp\" alt=\"ZKTeco Attendance Log\" class=\"wp-image-560845\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-punch-log-list-3-1200x843.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-punch-log-list-3-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-punch-log-list-3-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-punch-log-list-3-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-punch-log-list-3.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Attendance Feed<\/strong> report. Filter by date, device or employee.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-attendance-feed-report-2-1200x844.webp\" alt=\"ZKTeco Attendance Feed\" class=\"wp-image-560846\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-attendance-feed-report-2-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-attendance-feed-report-2-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-attendance-feed-report-2-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-attendance-feed-report-2-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-attendance-feed-report-2.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Daily Attendance<\/strong> report. It shows first in, last out, break hours and working hours for each day.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-daily-attendance-report-1-1200x844.webp\" alt=\"ZKTeco Daily Attendance \" class=\"wp-image-560847\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-daily-attendance-report-1-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-daily-attendance-report-1-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-daily-attendance-report-1-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-daily-attendance-report-1-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-daily-attendance-report-1.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Employee Break<\/strong> list to see each break and how long it lasted.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-employee-break-list-1200x844.webp\" alt=\"ZKTeco Employee Break\" class=\"wp-image-560848\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-employee-break-list-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-employee-break-list-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-employee-break-list-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-employee-break-list-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-employee-break-list.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Open the <strong>ZKTeco Sync Run<\/strong> list to see the result of each sync.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"844\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-sync-run-list-1200x844.webp\" alt=\"ZKTeco Sync Run\" class=\"wp-image-560849\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-sync-run-list-1200x844.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-sync-run-list-300x211.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-sync-run-list-250x176.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-sync-run-list-768x540.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-sync-run-list.webp 1210w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Need Help?<\/h3>\n<\/div><\/div>\n\n\n\n<p>Hope you find this guide helpful! Please feel free to share your feedback in the comments below.<\/p>\n\n\n\n<p>If you still have any issues\/queries, please create a ticket at the UV Desk.<\/p>\n\n\n\n<p>I hope this helps. In case of any further queries, contact us at our <a href=\"support@webkul.com\" data-type=\"link\" data-id=\"support@webkul.com\">support mail<\/a>.<\/p>\n\n\n\n<p>Thanks for paying attention!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ERPNext ZKTeco Attendance Integration connects a ZKTeco device to ERPNext. It brings each punch from the device into ERPNext, so you no longer copy biometric attendance by hand. HR teams and system managers use it. They add each ZKTeco device, link device users to employees, and read every punch log in one place. By the <a href=\"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":724,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16119],"tags":[14730],"class_list":["post-560809","post","type-post","status-publish","format-standard","hentry","category-erpnext","tag-erpnext"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>User Guide for ERPNext ZKTeco Attendance Integration - Webkul Blog<\/title>\n<meta name=\"description\" content=\"ERPNext ZKTeco Attendance Integration brings punches from a ZKTeco device into ERPNext for reliable biometric attendance\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"User Guide for ERPNext ZKTeco Attendance Integration - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"ERPNext ZKTeco Attendance Integration brings punches from a ZKTeco device into ERPNext for reliable biometric attendance\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-16T11:36:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-16T11:36:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-1200x844.webp\" \/>\n<meta name=\"author\" content=\"Prashant Saini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prashant Saini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/\"},\"author\":{\"name\":\"Prashant Saini\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/53a57eff87fe1f3e9e69c165efdabdc4\"},\"headline\":\"User Guide for ERPNext ZKTeco Attendance Integration\",\"datePublished\":\"2026-10-16T11:36:32+00:00\",\"dateModified\":\"2026-10-16T11:36:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/\"},\"wordCount\":600,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/the-zkteco-device-list-1200x844.webp\",\"keywords\":[\"ERPNext\"],\"articleSection\":[\"ErpNext\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/\",\"name\":\"User Guide for ERPNext ZKTeco Attendance Integration - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/the-zkteco-device-list-1200x844.webp\",\"datePublished\":\"2026-10-16T11:36:32+00:00\",\"dateModified\":\"2026-10-16T11:36:37+00:00\",\"description\":\"ERPNext ZKTeco Attendance Integration brings punches from a ZKTeco device into ERPNext for reliable biometric attendance\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/the-zkteco-device-list.webp\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/the-zkteco-device-list.webp\",\"width\":1210,\"height\":851},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/erpnext-zkteco-attendance-integration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Guide for ERPNext ZKTeco Attendance Integration\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/webkul.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/webkul\\\/\",\"https:\\\/\\\/x.com\\\/webkul\",\"https:\\\/\\\/www.instagram.com\\\/webkul\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/webkul\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/webkul\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/53a57eff87fe1f3e9e69c165efdabdc4\",\"name\":\"Prashant Saini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/90bd6382a7aa9ee0d5835bfaab3a739f91c37833f8e0d7cad51cd6a52b4914f0?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/90bd6382a7aa9ee0d5835bfaab3a739f91c37833f8e0d7cad51cd6a52b4914f0?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/90bd6382a7aa9ee0d5835bfaab3a739f91c37833f8e0d7cad51cd6a52b4914f0?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Prashant Saini\"},\"description\":\"Prashant, a passionate Machine Learning and AI enthusiast, specialized in building intelligent solutions using Python and Generative AI technologies.\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/author\\\/prashant-ml322\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"User Guide for ERPNext ZKTeco Attendance Integration - Webkul Blog","description":"ERPNext ZKTeco Attendance Integration brings punches from a ZKTeco device into ERPNext for reliable biometric attendance","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/","og_locale":"en_US","og_type":"article","og_title":"User Guide for ERPNext ZKTeco Attendance Integration - Webkul Blog","og_description":"ERPNext ZKTeco Attendance Integration brings punches from a ZKTeco device into ERPNext for reliable biometric attendance","og_url":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2026-10-16T11:36:32+00:00","article_modified_time":"2026-10-16T11:36:37+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-1200x844.webp","type":"","width":"","height":""}],"author":"Prashant Saini","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Prashant Saini","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/"},"author":{"name":"Prashant Saini","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/53a57eff87fe1f3e9e69c165efdabdc4"},"headline":"User Guide for ERPNext ZKTeco Attendance Integration","datePublished":"2026-10-16T11:36:32+00:00","dateModified":"2026-10-16T11:36:37+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/"},"wordCount":600,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-1200x844.webp","keywords":["ERPNext"],"articleSection":["ErpNext"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/","url":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/","name":"User Guide for ERPNext ZKTeco Attendance Integration - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list-1200x844.webp","datePublished":"2026-10-16T11:36:32+00:00","dateModified":"2026-10-16T11:36:37+00:00","description":"ERPNext ZKTeco Attendance Integration brings punches from a ZKTeco device into ERPNext for reliable biometric attendance","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/10\/the-zkteco-device-list.webp","width":1210,"height":851},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/erpnext-zkteco-attendance-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"User Guide for ERPNext ZKTeco Attendance Integration"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/53a57eff87fe1f3e9e69c165efdabdc4","name":"Prashant Saini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/90bd6382a7aa9ee0d5835bfaab3a739f91c37833f8e0d7cad51cd6a52b4914f0?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/90bd6382a7aa9ee0d5835bfaab3a739f91c37833f8e0d7cad51cd6a52b4914f0?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/90bd6382a7aa9ee0d5835bfaab3a739f91c37833f8e0d7cad51cd6a52b4914f0?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Prashant Saini"},"description":"Prashant, a passionate Machine Learning and AI enthusiast, specialized in building intelligent solutions using Python and Generative AI technologies.","url":"https:\/\/webkul.com\/blog\/author\/prashant-ml322\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/560809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/724"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=560809"}],"version-history":[{"count":7,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/560809\/revisions"}],"predecessor-version":[{"id":561107,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/560809\/revisions\/561107"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=560809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=560809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=560809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}