Attendance check-in and check-out API

This API can be used to capture the check-in and check-out entries of an individual employee.The system will mark the attendance exit/entry of individual employees.It will automatically update the attendance status in the web portal for every check-in and check-out. 

Note:This API is ideal for minimal entries. For bulk entries, you can use Attendance Bulk Import API.

Request URL<dateFormat>&checkIn=<checkin time>&checkOut=<checkout time>&empId=<employeeId>&emailId=<emailId>&mapId=<mapId>


Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxx9be93.9b8xxxxxxf

Request Parameters

dateFormatSpecify the correct date format
checkInSpecify the check-in time of an employee
checkOutSpecify the check-out time of an employee
empIdSpecify the employee ID of an employee
emailIdSpecify the email ID of an employee
mapIdSpecify the mapper ID of an employee


  • Check-in and Check-out parameters should be in dd/MM/yyyy HH:mm:ss date format.
  • Out of the 3 parameters - Emp ID, Email ID & Map ID, at least one of them must be given as an input to map the entry of an employee. Mapper ID is the unique ID of your Attendance system like Biometric system which marks the attendance for a specific employee.

 Threshold Limit:  100 requests | Lock period: 5 minutes

Threshold Limit - Number of API calls allowed within a minute.
Lock Period - Wait time before consecutive API requests.

Attendance check-in and check-out Prerequisite

CopiedJDK 1.6
commons-codec-1.3.jar, commons-httpclient-3.0.1.jar and commons-logging-1.1.jar files are available in the CLASSPATH


CopiedAuthorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxx9be93.9b8xxxxxxf

Sample Response

import java.util.*;
import*; import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.StringPart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.PartSource;
import org.apache.commons.httpclient.methods.multipart.ByteArrayPartSource;
public class TestAPI
public static void main(String a[])
String targetURL = "";
String paramname = "content";
PostMethod post = new PostMethod(targetURL);
post.setParameter("dateFormat","dd/MM/yyyy HH:mm:ss");
post.setParameter("checkIn","09/09/2013 09:30:45");
post.setParameter("checkOut","09/09/2013 18:45:13");
HttpClient httpclient = new HttpClient();
PrintWriter myout = null;
/*-------------------------------------- Execute the http request--------------------------------*/
long t1 = System.currentTimeMillis();
int result = httpclient.executeMethod(post);
System.out.println("HTTP Response status code: " + result);
System.out.println(">> Time taken " + (System.currentTimeMillis() - t1));
/*-------------------------------------- Execute the http request--------------------------------*/
/* ---------------------------writing the response to a file--------------------*/
myout = new PrintWriter(new File("response.xml"));
/* ---------------------------writing the response to a file--------------------*/
/*-----------------------Get response as a string ----------------*/
String postResp = post.getResponseBodyAsString();
/* ---------------------Get response as a string ----------------------------*/
if(postResp.equals("Invalid Ticket Id"))
// generate new auth token and call the API
catch(Exception e)
catch(Exception e)