WebClock API Documentation
Webclock API overview information, please access the latest documentation below.
Current Version: 02.00
Last Active Version: 01.00
Using the WebClock API to Retrieve data from WebClock
Using the WebClock API to Retrieve data from WebClock
General instructions for calling an end point
General Information
WebClock has several published API functions to allow authorized external users to retrieve data from WebClock.
These are RESTful API’s which return data in JSON format. WebClock does not support XML data formats through the API.
General instructions for calling an end point
To retrieve credentials to access the API you will need to have an active WebClock account or be given permission from an active WebClock account. You will then need to reach out to WebClock Support to receive a Client ID, Username, and Password to access the API.
The client ID can be found in an active site by logging in and navigating to the dashboard. If assistance is needed in finding the client ID you can reach out to WebClock support.
Beginning with Version 01.00, the version number must be included in call urls.
GET End Points
Calling the API end points is done via an http call formatted as follows, with the # portion being the version number. For example, version 02.00 is WebClock_Data_0200/.
http://www.itcs-webclock.com/rest/WebClock_Data_####/[endpoint]
Parameters belong in the header. Parameters are:
tc_Client=[ClientID]
username=[username]
token=[token returned from Login]
Additional parameters may be needed for some requests as specified below.
* Earlier API releases allowed credentials to be sent directly to individual endpoints. Beginning with version 02.00, endpoint authentication is tokenized. Call Login first using username and password, then pass the returned token to the target endpoint. Legacy URL-parameter credential calls should no longer be used.
Each call returns a JSON structure. Most endpoints return a success indicator, record count, and either a data array or an error/message explaining why the request could not be completed.
All non-Login endpoints, including both GET and PUT/POST-style endpoints, require tokenized authentication. First call Login to retrieve a token, then call the desired endpoint with tc_client, username, and token in the header. Tokens remain valid for 30 minutes.
Login
This endpoint returns a token required for 2-factor authentication to access all other endpoints. To call use:
http://www.itcs-webclock.com/rest/WebClock_Data_####/Login
No parameters are transmitted on the URL, instead you will send username and password in the header of the call.
Returns serialized array 1-1 of:
Token – Alpha/tokenized value between 21 and 40 characters
This token will remain valid for 30 minutes, after that you will need to re-call Login to get a new token.
EmployeeData
This call has no additional parameters, it simply retrieves all employees defined in WebClock regardless of status.
Returns serialized array 1-n of:
tc_Client – Alpha up to 50
EmpID – Integer
ExternalID – Alpha up to 50
Employee – Alpha up to 75, may include commas or other special
PayGroup – Alpha up to 50
Dept – Alpha up to 100
EmpType – ‘Hourly’, ‘Salary’, or ‘Contract’
Hire_Date – date format MM/DD/YYYY
Term_Date – date format MM/DD/YYYY
Updated – date format MM/DD/YYYY
JobCode – Alpha up to 255
OT_Type – ‘Weekly’ or ‘Daily’
OT_Parm – integer with number of hours to exceed for OT (Weekly/Daily)
EmpHome – Alpha formatted as phone number up to 20
PayRate - Decimal
TimeZone – ‘EASTERN’, ‘CENTRAL’, ‘MOUNTAIN’, ‘PACIFIC’ or ‘DST +/-‘
Email - Alpha up to 250
Payroll_EmpType – Alpha up to 20
TimeClock
This call has additional parameters:
Startdate=mm/dd/yyyy
Enddate=mm/dd/yyyy
Returns serialized array 1-n of:
Supervisor – alpha up to 100
StartTimeAct – date/time MM/DD/YYYY HH:MM:SS am/pm
StartTimeRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeOutAct – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeOutRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeInAct – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeInRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
EndTimeAct – date/time MM/DD/YYYY HH:MM:SS am/pm
EndTimeRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
Hours - Decimal
RegHours - Decimal
OTHours - Decimal
OtherHours - Decimal
Misc02 – this is LOCATION data, alpha up to 100
Client – alpha up to 255
Task – alpha up to 255
Job_Assignment_ID – alpha up to 255
MgrApproved – alpha up to 50
TimeApproved – alpha up to 50
ShiftDate – date MM/DD/YYYY
PayCode – alpha up to 50
PayWeek – integer, always 1 if semi-monthly
PayPeriod – integer
TimeSheetData
This call has additional parameters:
Startdate=mm/dd/yyyy
Enddate=mm/dd/yyyy
Returns serialized array 1-n of:
tc_Client – Alpha up to 50
EmpID – Integer
Employee – Alpha up to 75, may include commas or other special
PayGroup – Alpha up to 50
PayPeriod - integer
Source – one of AUTOENTRY, AUTOMATED, DEVICE, ENTHOURS, GRIDENTRY, INTERFACE, KEYED, ONLINE, PTO_ONLY, PUNCH
Supervisor – alpha up to 100
ForceOT – 1 if true 0 if not
ForceDT – 1 if true 0 if not
PayWeek – integer, always 1 if semi-monthly
Lock – either blank or one of N-M, Y-A, Y-H, Y-S
RecType – blank if worked record otherwise one of TCS-Holiday, TCS-NoCharge
RecDesc – date MM/DD/YYYY
Client – alpha up to 255
Task – alpha up to 255
Cost_Center – not actually used, always blank or 0
Paid – 1 if paid, 0 if not
tc_tbl_ShiftDef – integer value 1 - 6
Misc05 – alpha up to 50 (piecework counts)
Misc01 – alpha up to 50 (relational to time off, not really useful to external)
Misc02 – alpha up to 50 (location)
StartTimeAct – date/time MM/DD/YYYY HH:MM:SS am/pm
StartTimeRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeOutAct – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeOutRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeInAct – date/time MM/DD/YYYY HH:MM:SS am/pm
LunchTimeInRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
EndTimeAct – date/time MM/DD/YYYY HH:MM:SS am/pm
EndTimeRnd – date/time MM/DD/YYYY HH:MM:SS am/pm
PayCode – alpha up to 50
Reason – alpha up to 255
Updated – date/time MM/DD/YYYY HH:MM:SS am/pm
Hours – decimal
regWrkHol_Hr - decimal
regWrkNoHol_Hr - decimal
wrkHol_Hr - decimal
benHol_Hr - decimal
TimeApproved – alpha up to 50
MgrApproved – alpha up to 50
EmpApprDate – date/time MM/DD/YYYY HH:MM:SS am/pm
MgrApprName – alpha up to 50
MgrApprDate – date/time MM/DD/YYYY HH:MM:SS am/pm
EmpType1 – alpha up to 20 - employee’s default punch method
OT_Type – ‘Weekly’ or ‘Daily’
OT_Parm – integer with number of hours to exceed for OT (Weekly/Daily)
WeeklyOT – integer with number of Weekly hours to exceed for OT (Daily only)
ShiftDef – alpha up to 1, shift ID number (1, 2, 3, 4, 5, 6)
OT_Comp – Comptime or Overtime, determines whether OT is paid or sent directly to Accrued PTO
Request_Status – alpha up to 100 – long name of time off type, blank if worked
HolHour – decimal – hours worked on a holiday
Shift_Date - date MM/DD/YYYY
WeekTot – decimal – total hours worked in the week
WeekHolWrk – decimal – total hours worked on a holiday within the week
WeekBenHrs – decimal – total non-worked hours (PTO)
sum_Hours – decimal total hours
WeekOT – decimal – total OT hours on weekly basis
WeekShift1 – decimal – hours worked shift 1 in the week
WeekShift2 - decimal – hours worked shift 2 in the week
WeekShift3 - decimal – hours worked shift 3 in the week
WeekShift4 - decimal – hours worked shift 4 in the week
WeekShift5 - decimal – hours worked shift 5 in the week
DailyHours – decimal, this is the number of hours normally scheduled for a day
TimeOffData
This call has additional parameters:
Startdate=mm/dd/yyyy
Enddate=mm/dd/yyyy
This call also has two additional optional parameters:
Status – filters the results by status of request, defaults to ALL, may use Approved, Open, Rejected
Getempid – filters for the selected WebClock EmpID.
Returns serialized array 1-n of:
tc_Client – Alpha up to 50
EmpID – integer
ExternalID – Alpha up to 50
Employee – Alpha up to 75, may include commas or other special
Dept – Alpha up to 100
Request_Date – date/time MM/DD/YYYY HH:MM:SS am/pm
Update_Date – date/time MM/DD/YYYY HH:MM:SS am/pm
Request_Status – Alpha up to 100, Approved / Open / Rejected
Paid – integer 1 means paid request 0 means unpaid
Request_Type – Alpha up to 100
Hours – Decimal (8,2)
Location – Alpha up to 50
Client – Alpha up to 50
Task – Alpha up to 100
Job_ID – Alpha up to 50
LastUpdatedBy – Alpha up to 75
WhosInOut
Parameters (send in the header):
tc_Client
Username
token
Access_Authority - this will limit the returned data based on department name if desired (set this parameter to the name of the department). If you don't want it filtered, use the same value as you used for tc_Client.
Returns:
Success (Yes or No).
Error (if Success is Yes, the will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
access_authority – the string passed to the function for access_authority.
access_filter – the filter string calculated based on the access_authority passed to the function.
Array 1-numrecs of records with the following fields:
Employee – nvarchar(100)
EmployeeID - integer
Supervisor - nvarchar(75)
PayGroup - nvarchar(20)
PayType - nvarchar(10)
PunchMethod – nvarchar(20)
LastOut – date/time
LastIn – date/time
CurrentStatus – integer (1 for in, 2 for out)
Activity - varchar(155)
TimeOff - integer (1 if out on PTO, 0 if not)
License
Parameters (send in the header):
tc_Client
Username
token
Returns:
Success (Yes or No).
Error (if Success is Yes, the will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
Array 1-numrecs of records with the following fields:
tc_Client – nvarchar(50)
LicenseCount – integer
ActiveUsers – integer
TimeSummaryData
Parameters (send in the header):
tc_Client
Username
token
startDate – required (mm/dd/yyyy).
endDate - required (mm/dd/yyyy hh:mm:ss tt).
access_authority – optional, nvarchar(50) - if left blank will assume “ALL”
period – optional WEEKLY/MONTHLY/NONE.
Groupby – optional DEPARTMENT/NONE.
Returns:
Success (Yes or No).
Error (if Success is Yes, the will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
access_authority – the string passed to the function for access_authority.
access_filter – the filter string calculated based on the access_authority passed to the function.
Array 1-numrecs of records with the following fields:
tc_Client – nvarchar(50)
Department – nvarchar(150)
PeriodStart – mm/dd/yyyy
PeriodEnd – mm/dd/yyyy
ttlHours - float
If groupby is NONE, the Department column will show “AllDepts”
If period is NONE, the ttlHours column will show all hours for the entire period from startdate to enddate
If period is DAILY, periodstart and periodend will show each day between/including the dates with associated total hours.
If period is WEEKLY, periodstart and periodend will show the start/end date of the week with associated total hours
If period is MONTHLY, periodstart and periodend will show the start/end date of the month with associated total hours.
Anomaly
Parameters (send in the header):
tc_Client
Username
token
startDate – required (mm/dd/yyyy).
endDate - required (mm/dd/yyyy hh:mm:ss tt).
access_authority – optional, nvarchar(50) - if left blank will assume “ALL”
Returns:
Success (Yes or No).
Error (if Success is Yes, this will be empty, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
access_authority – the string passed to the function for access_authority.
access_filter – the filter string calculated based on the access_authority passed to the function.
Array 1-numrecs of records with the following fields:
tc_Client – nvarchar(50)
EmpID - integer
EmployeeName - nvarchar(250)
Supervisor - nvarchar(150)
ShiftDate – mm/dd/yyyy
ShiftStart – mm/dd/yyyy hh:mm:ss tt
BreakOut – mm/dd/yyyy hh:mm:ss tt
Breakin – mm/dd/yyyy hh:mm:ss tt
ShiftEnd – mm/dd/yyyy hh:mm:ss tt
ErrorType – nvarchar(50)
Hours - float
TimeOffDataAll
Parameters (send in the header):
tc_Client
Username
token
startDate – required (mm/dd/yyyy).
endDate - required (mm/dd/yyyy hh:mm:ss tt).
access_authority – optional, nvarchar(50) - if left blank will assume “ALL”
Returns:
Success (Yes or No).
Error (if Success is Yes, the will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
access_authority – the string passed to the function for access_authority.
access_filter – the filter string calculated based on the access_authority passed to the function.
Array 1-numrecs of records with the following fields:
tc_Client – nvarchar(50)
EmpID - integer
EmployeeName - nvarchar(250)
ExternalID – nvarchar(50)
Dept - nvarchar(50)
Create_Date – mm/dd/yyyy
Request_Date – mm/dd/yyyy
Update_Date – mm/dd/yyyy hh:mm:ss tt
Request_Status – nvarchar(20)
Paid - integer
Request_Type – nvarchar(50)
Hours - float
Location – nvarchar(50)
Client - nvarchar(50)
Task - nvarchar(150)
Job_ID - nvarchar(50)
LastUpdatedBy - nvarchar(10)
HRCerts
Parameters (send in the header):
tc_Client
Username
token
Returns:
Success (Yes or No).
Error (if Success is Yes, the will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
Array 1-numrecs of records with the following fields:
tc_Client - nvarchar(50)
EmployeeID - integer
ClassDescription - nvarchar(100)
Certification - nvarchar(100)
Credits - real
Institution - nvarchar(200)
Instructor - nvarchar(100)
CompanySponsored - bit
CompanyReimbursed - bit
Amount - real
DateCompleted - mm/dd/yyyy
Notes - nvarchar(200)
AccrualBalance
Parameters (send in the header):
tc_Client
Username
token
Returns:
Success (Yes or No).
Error (if Success is Yes, the will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
Array 1-numrecs of records with the following fields:
ClientID - nvarchar(50)
EmpID - integer
EmpStatus - nvarchar(50)
AccrualType - nvarchar(50)
Balance - float
PayrollData
Parameters (send in the header):
tc_Client
Username
token
Paygroup - required Alpha (up to 10). Must match a valid paygroup definition
Startdate - required (MM/DD/YYYY)
Enddate - required (MM/DD/YYYY)
Returns:
Success (Yes or No).
Error (if Success is Yes, this will be empty, otherwise the error message).
NumRecs (if Success is Yes, the number of records received, otherwise 0).
Array 1-numrecs of records with the following fields:
tc_Client – Alpha up to 50
EmpID – Integer
PayCode – Alpha up to 50
Units – Decimal
Rate – Decimal
RecordDate – MM/DD/YYYY
Department – Alpha up to 75
TaskInfo1 – Alpha up to 50
TaskInfo2 - Alpha up to 100
Location - Alpha up to 50
SubLocation - Alpha up to 50
LocationDescription - Alpha up to 250
JobID - Alpha up to 50
JobName - Alpha up to 250
Shift – Alpha up to 1 (usually an integer but not always)
ShiftCode – Alpha up to 20
PayGroup – Alpha up to 20
FirstName – Alpha up to 75
LastName - Alpha up to 75
PayrollCompanyID - Alpha up to 50
PayrollEmpID - Alpha up to 50
PTOBalance – Decimal
GetPunchErrors
Parameters (send in the header):
tc_Client
Username
token
Returns:
Success (true/false).
Error (if Success is false, this will contain the error message).
Count (if Success is true, the number of records received, otherwise 0).
Array 1-count of records with the following fields:
LogDate – date/time (from server log date).
EmpID – integer. Parsed from the log message.
PunchDateTime – date/time. Parsed from the log message.
Message – nvarchar(255). Currently returned as: “Start punch dropped, open shift exists with no end shift”.
LocationList
Parameters (send in the header):
tc_Client
Username
token
Returns:
success (true/false).
error (if success is false, this will contain the error message).
missing (array – only returned when success is false due to missing required headers).
message / detail / sql (only returned on unhandled server error).
data (array) – Location list (empty array if none found or on error).
Array 1-n of records with the following fields:
Client – nvarchar(50).
LocationOID – integer (tc_work_location.ID).
Location – nvarchar(50).
SubLocation – nvarchar(50).
Description – text (tc_work_location.Comments).
TaskList
Parameters (send in the header):
tc_Client
Username
token
Returns:
success (true/false).
error (if success is false, this will contain the error message).
missing (array – only returned when success is false due to missing required headers).
message / detail / sql (only returned on unhandled server error).
data (array) – Task list (empty array if none found or on error).
Array 1-n of records with the following fields:
TaskOID – integer (Costing.OID).
TaskName – nvarchar(255) (Costing.Description).
Client – nvarchar(50).
Task – nvarchar(100).
SubTask – nvarchar(50).
StartDate – date.
ExpirationDate – date (Costing.EndDate).
JobFunctionList
Parameters (send in the header):
tc_Client
Username
token
Returns:
success (true/false).
error (if success is false, this will contain the error message).
missing (array – only returned when success is false due to missing required headers).
message / detail / sql (only returned on unhandled server error).
data (array) – Job function list (empty array if none found or on error).
Array 1-n of records with the following fields:
JobOID – integer (hr_JobFunctions.OID).
Client – nvarchar(50).
Job – nvarchar(255) (hr_JobFunctions.job_name).
Description – nvarchar(255) (hr_JobFunctions.job_desc).
StartDate – date (minimum effective date found; may be blank if not available).
PUT Endpoints
SendPunchData
Parameters (send in the header):
tc_Client
Username
token
Request Body:
The request body should contain a JSON array of punch records, each containing:
EmpID (integer): Employee ID.
PunchTime (timestamp): Timestamp of the punch.
PunchType (string): Type of punch (must be "start" or "out").
LocationCode (string): Code representing location.
ClientCode (string): Client-specific code.
TaskCode (string): Task identifier.
DescriptionCode (string): Description identifier.
JobFunc (string): Job identifier.
Misc05 (string): Miscellaneous data.
Response:
Success (string): Indicates whether the operation was successful ("YES" or "NO").
Error (string): Error message if Success is "NO".
NumRecs (integer): Number of records processed.
Error Handling:
If any required header (tc_Client, username, token) is missing or empty, the response will indicate the missing parameter.
Invalid PunchType values will cause the operation to fail, specifying the type must be "start" or "out".
Authentication failure (invalid token) will result in an error message indicating "Invalid Token".
SendScheduleData
This endpoint allows an external system to create or update employee schedule records in WebClock.
Parameters (send in the header):
tc_Client
Username
token
Request Body:
The request body must contain a JSON array of schedule records, each containing:
EmpID – integer – required. WebClock employee ID.
ShiftDate – date (MM/DD/YYYY) – required. Date of the scheduled shift.
StartTime – date/time (MM/DD/YYYY HH:MM:SS am/pm) – required. Scheduled start time.
EndTime – date/time (MM/DD/YYYY HH:MM:SS am/pm) – required. Scheduled end time.
Shift – integer – optional. Shift number (1–6).
Dept – alpha up to 100 – optional. Department assignment.
Client – alpha up to 255 – optional. Client assignment.
Task – alpha up to 255 – optional. Task assignment.
Location – alpha up to 50 – optional. Location identifier.
Notes – alpha up to 255 – optional. Schedule notes.
Returns:
Success (Yes or No).
Error (if Success is Yes, this will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records processed, otherwise 0).
Notes / Behavior:
If a schedule already exists for the employee on the specified ShiftDate, it will be updated.
If no schedule exists, a new schedule record will be created.
Error Handling:
If any required header (tc_Client, username, token) is missing or invalid, the request will fail.
If the token is expired or invalid, the response will return an authentication error.
Invalid or missing required schedule fields will cause the affected record to be rejected.
DeleteScheduleData
This endpoint allows an external system to delete existing employee schedule records in WebClock.
Parameters (send in the header):
tc_Client
Username
token
Request Body:
The request body must contain a JSON array of delete requests, each containing:
EmpID – integer – required. WebClock employee ID.
ShiftDate – date (MM/DD/YYYY) – required. Date of the schedule to be deleted.
Returns:
Success (Yes or No).
Error (if Success is Yes, this will be “No Error”, otherwise the error message).
NumRecs (if Success is Yes, the number of records deleted, otherwise 0).
Notes / Behavior:
Only schedule records matching the provided EmpID and ShiftDate will be deleted.
If no matching schedule exists, the record will be ignored and not counted as deleted.
Error Handling:
If any required header (tc_Client, username, token) is missing or invalid, the request will fail.
If authentication fails, the response will return an invalid token or unauthorized error.
If EmpID or ShiftDate is missing from a delete request, that record will be skipped.
putEmployeeData
This endpoint allows an external system to create or update employee records in WebClock.
Parameters (send in the header):
tc_Client
Username
token
Request Body:
The request body must contain a JSON array of employee records, each containing:
wcEmpID – integer – required. Use 0 for a new employee, or a positive WebClock EmpID to update an existing employee.
PayrollEmpID – alpha up to 50 – required. External payroll/HR employee ID. This is the primary value used to match an existing employee.
Employee – alpha up to 75 – required. Employee name, formatted as lastname, firstname. May not contain more than one comma.
Status – required. Must be Fulltime, Parttime, Contract, Terminated, or Leave.
HireDate – date (MM/DD/YYYY) – required.
TermDate – date (MM/DD/YYYY) – optional. If provided, must be greater than HireDate. If Status is Terminated and TermDate is blank, WebClock will use the current date.
PayType – required. Must be Hourly, Salary, or Other.
Exempt – integer – required. Use 1 if exempt, 0 if non-exempt.
Address1 – alpha up to 200 – optional.
Address2 – alpha up to 200 – optional.
City – alpha up to 200 – optional.
State_Prov – alpha up to 200 – optional.
Country – alpha up to 50 – optional. Defaults to US if blank.
ZIP – alpha up to 10 – required. If Country is US, ZIP must be 5 digits.
Payrate – decimal – optional.
HomePhone – alpha up to 20 – optional.
WorkPhone – alpha up to 20 – optional.
Email – alpha up to 250 – optional.
Department – alpha up to 75 – required.
OTType – optional. Must be Weekly or Daily if provided. If blank, WebClock will use the client’s default overtime setup.
OTParam – decimal – optional. If blank, WebClock will use the client’s default overtime setup.
TermReason – alpha up to 50 – optional.
Returns:
success – true or false.
message – request result or error message.
numRecs – number of records submitted.
inserted – number of employee records inserted.
updated – number of employee records updated.
ignored – number of employee records skipped due to validation errors.
errors – array of validation errors, if any.
data – array of row-level results.
Each returned data record may include:
rowNumber – row number from the submitted JSON array.
wcEmpID – WebClock employee ID used or created.
PayrollEmpID – external payroll/HR employee ID submitted.
Employee – employee name submitted.
action – INSERTED, UPDATED, or IGNORED.
message – row-level result message.
Notes / Behavior:
The request body must be a JSON array and may contain up to 500 employee records.
PayrollEmpID is the primary value used to determine whether an employee already exists. If PayrollEmpID matches an existing employee, that employee will be updated even if wcEmpID is submitted as 0. If PayrollEmpID does not already exist, WebClock will check whether the submitted wcEmpID exists. If wcEmpID matches an existing employee, that employee will be updated. If neither PayrollEmpID nor wcEmpID matches an existing employee, WebClock will create a new employee record.
For new employees, if wcEmpID is 0, WebClock will assign the next available WebClock EmpID.
For US employees, WebClock attempts to derive city, state, and timezone from ZIP. If City or State_Prov are included in the request, those submitted values override the ZIP lookup values. The endpoint updates the main Employee record and also inserts or updates the related Employee_HumanResource record for address information.
Error Handling:
If any required header is missing, blank, or invalid, the request will fail and return the missing header names.
If the request body is empty, not valid JSON, not a JSON array, contains no records, or contains more than 500 records, the request will fail.
If an individual employee row fails validation, that row will be ignored and included in the errors array. Other valid rows may still be processed.
Validation errors may include missing or invalid wcEmpID, PayrollEmpID, Employee, Status, HireDate, PayType, Exempt, ZIP, Department, OTType, OTParam, TermDate, or field length violations.
Unhandled server errors return success=false with diagnostic fields including message, error, detail, sql, where, numRecs, inserted, updated, ignored, errors, and data.
Release Notes:
Release 02.00
New Endpoint and General Enhancement
Effective May 11 2026
New PUT call: putEmployeeData
All endpoints now require tokenized login, utilizing the token value generated by the Login endpoint. Password is now only utilized for initial Login call.
All endpoints have all been updated with enhanced error handling for more detailed returns on call failures.
Release 01.05
TimeClock Endpoint Enhancement
Effective January 20, 2026
Added two new returns to the TimeClock endpoint: PayWeek and PayPeriod. Also added token authentication requirement.
Release 01.04
Multiple New Endpoints and Minor Fix
Effective January 7, 2026
New GET calls: LocationList, TaskList, JobFunctionList, GetPunchErrors
New PUT Calls: SendScheduleData, DeleteScheduleData
Modifications: WhosInOut endpoint now more accurately captures status for various employees types including overnight workers. Also now allows filtering results by department. Also now requires token authentication.
Release 01.03
New Call - SendPunchData
Effective July 2, 2025
Added a new call to allow sending punch data to WebClock via PUT API. Specific info on parameters and returns are in the primary API document.
Release 01.02
New Call - Payroll Data
Effective Apr 15 2025
Added a new call to return data formatted to be usable by payroll companies as an alternative to file uploads or manual entry. Additional info on parameters and returned data are in the primary API document.
Also enhanced the EmployeeData call to return payroll_Emptype. Only useful in some cases, contact support with any questions.
Release 01.00
API Call Uniformity Update
Effective Jan 21 2025
This update includes 2 primary changes, and sets a standard for updates going forward.
1) Updated all requests that included parameters in the URL line to instead include them in the header for security purposes.
2) Updated request path to include the API version number.
- The new request path is: http://www.itcs-webclock.com/rest/WebClock_Data_XXXX/[endpoint] with the X portion being the version number. For example, version 01.00 is WebClock_Data_0100/.
3) WebClock will keep the past 5 major releases available going forward as releases come out.
- A major release is identified by the first two numbers in the version. The latter two after the decimal are minor updates and do not count toward the 5 major release availability.
To allow time for subscribers to make these changes, the original calls prior to these changes will remain available through the next few releases and an announcement will be posted prior to their retirement.
Release 00.02
Accrual Balance API Call
Effective Oct 31 2024
Added a new call to return Accrual Balance information. Call parameters must be included in the header. Additional information on this call is in the primary API document.
Release 00.01
API EmployeeData Email Update
Effective Jul 27 2024
Added an Email return to this call.
Release 00.00
Base API Release
Effective Mar 22 2021
Version 0 of the WebClock API does not require specifying the version being called. Most calls in this original release are formatted the same, with exceptions noted in the primary document.
Request format: http://www.itcs-webclock.com/rest/WebClock_Data/[endpoint]?[parameters]
parameters are: tc_Client=[ClientID]
&username=[username]
&password=[password]
&additionalparamx=[paramvalue] (repeat as needed for additional parameters)
Get Started Today
Discover how ITCS-WebClock can streamline your time and attendance management. Save time, reduce costs, and stay compliant with our powerful yet easy-to-use solutions.
