Header | Description of Value |
---|---|
vericlock_api_public_key | Your API Public Key in standard guid format: abcd1234-1234-1234-1234-abcd12345678 |
vericlock_domain | The unique part of your access url. If your access URL is: your_domain.vericlock.com then the value for vericlock_domain would be your_domain Do not include the vericlock.com suffix. |
vericlock_authtoken | The guid authentication token received after authenticating. This is required for all API routes except authentication itself |
vericlock_signature | The HMAC signature for the request. See below on how to generate. |
content-type | application/json - Required only for HTTP POST requests that post a JSON body |
private function _generateSignature($uri, $privateKey, $bodyStr) { $hashStr = $uri . $bodyStr; $sig = hash_hmac('sha256', $hashStr, $privateKey); return $sig; }
{ "user":string, //(Required)[string] employee email address "password":string //(Required)[string] plain text password }
{ "authToken": "d35b1486-43ca-42bb-828d-9f35bc4be2d4" }
{ //Employee Object, Describes an employee "phoneID":string, //[string] Numeric/touch-tone ID "firstName":string, //(Required)[string] First name "middleName":string, //[string] Middle initial (or name) "lastName":string, //[string] Last name "emailAddress":string, //[string] Email address "password":string, //[string] Password - plaintext (salted and hashed server side) "status":string, //[string] [active,inactive,deleted] Active status "type":string, //[string] [normal,admin] Employee type "groupGuid":string, //[string] Group the employee belongs to "customData":object, //[object] A custom JSON object to store with the employee "personalDetails":{ //An employee's contact and other personal details "addressLine1":string, //[string] Address Line 1 "addressLine2":string, //[string] Address Line 2 "city":string, //[string] City "countryCode":string, //[string] ISO 3166-1 Alpha 2 two character country code. "stateCode":string, //[string] Two character state or province code - only applicable to USA/Canada "postalCode":string, //[string] Zip/Postal Code "phoneHome":string, //[string] Home phone number / phone number 1 "phoneMobile":string, //[string] Mobile phone number / phone number 2 "phoneOther":string, //[string] Other phone number / phone number 3 "gender":string, //[string] [male,female,] Employee's gender "driversLicense":string, //[string] Zip/Postal Code "taxNumber":string, //[string] Zip/Postal Code "birthday":string //[string] Employee's date of birth }, "employmentDetails":{ //An employee's employement details "startDate":string, //[string] Employment start date "endDate":string //[string] Employment end date }, "settings":{ //An employee's customized settings "phone":{ //Phone specific settings "clockInReport":string,//[string] [required,optional,disabled] Is a report required on clock in "clockOutReport":string,//[string] [required,optional,disabled] Is a report required on clock out "pinType":string, //[string] [none,custom] Type of phone pin that is configured. ['none', 'custom']. 'custom' means the employee must enter their phonePin when clocking in by phone or SMS "pin":string //[string] Phone or SMS numeric PIN code - must be digits only. }, "web":{ //Web specific settings "clockInReport":string,//[string] [required,optional,disabled] Is a report required on clock in "clockOutReport":string//[string] [required,optional,disabled] Is a report required on clock out }, "gpsSettings":{ //GPS specific settings "basicGeoTagging":string//[string] [enabled,disabled] Collect GPS coordinates on clock in and out on supported mobile devices (Mobile Web/App) }, "location":{ //Employee GEO Tagging Settings "web":{ //Web browser based geo location - mobile browser "tagInOut":string, //[string] [enabled,disabled] GEO tag when employee clocks in/out "accuracy":integer, //[integer] When looking for a gps location, stop when a position with this level of accuracy is found "timeout":integer //[integer] When looking for a gps location, stop after this many seconds }, "app":{ //App based geo location - iOS App, Android App, etc... "tagInOut":string, //[string] [enabled,disabled] GEO tag when employee clocks in/out "accuracy":integer, //[integer] When looking for a gps location, stop when a position with this level of accuracy is found "timeout":integer, //[integer] When looking for a gps location, stop after this many seconds "continuousTracking":string//[string] [enabled,disabled] GEO Tag at regular intervals during employee's shift. Can be taxing on battery life. }, "network":{ //App based geo location - iOS App, Android App, etc... "tagInOut":string, //[string] [always,sometimes,disabled] GEO tag when employee clocks in/out "frequency":integer //[integer] When tagInOut is set to sometimes, events will randomly be tagged using network location using this frequency as a % } }, "permissions":{ //Employee access permissions "canViewOwnTimeSheet":boolean,//[boolean] Employee can view their own timesheet "canEditOwnTimeSheet":boolean,//[boolean] Employee can edit their own timesheet "activityNotes":string //[string] [disabled,textOnly,textAndFiles] Employee can upload activity notes and/or files } } }
{ "guid": "3046bb88-c768-4018-bd3e-e37fd8bd06f1", "status": "active", "type": "normal", "firstName": "Walter", "middleName": "Hartwell", "lastName": "White", "fullName": "Walter Hartwell White", "emailAddress": "wwhite@vericlock.com", "phoneID": "625", "publicPhoneID": "100*625", "clockState": "clockedOut", "groupGuid": null, "customData": { "nickname": "Heisenberg", "internalEmployeeID": "1" }, "personalDetails": { "addressLine1": "3828 Piermont dr", "addressLine2": null, "city": "Albuquerque", "countryCode": "US", "stateCode": "NM", "postalCode": "87111", "phoneHome": "+1-505-555-1234", "phoneMobile": "+1-505-555-9876", "phoneOther": null, "gender": "male", "driversLicense": null, "taxNumber": null, "birthday": "1959-09-07" }, "employmentDetails": { "startDate": "2009-09-08", "endDate": null, "payRate": null, "salary": 36000000, "jobTitle": null }, "dailyBudgetMins": { "mon": null, "tue": null, "wed": null, "thu": null, "fri": null, "sat": null, "sun": null }, "settings": { "phone": { "clockInReport": "disabled", "clockOutReport": "required", "pinType": "none" }, "web": { "clockInReport": "disabled", "clockOutReport": "required" }, "gpsSettings": { "basicGeoTagging": "disabled", "gpsAccuracyMeters": 75, "gpsTimeoutSeconds": 15, "continuousTracking": "disabled" }, "permissions": { "canViewOwnTimeSheet": true, "canEditOwnTimeSheet": false, "canViewJobDetails": false, "canViewServiceItemDetails": false, "activityNotes": "textAndFiles", "offlineClock": true }, "location": { "web": { "tagInOut": "disabled" }, "app": { "tagInOut": "disabled" }, "network": { "tagInOut": "disabled" } } } }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
employeeGuid | string | Required | Employee's guid |
{ //Employee Object, Describes an employee "phoneID":string, //[string] Numeric/touch-tone ID "firstName":string, //[string] First name "middleName":string, //[string] Middle initial (or name) "lastName":string, //[string] Last name "emailAddress":string, //[string] Email address "password":string, //[string] Password - plaintext (salted and hashed server side) "status":string, //[string] [active,inactive,deleted] Active status "type":string, //[string] [normal,admin] Employee type "groupGuid":string, //[string] Group the employee belongs to "customData":object, //[object] A custom JSON object to store with the employee "personalDetails":{ //An employee's contact and other personal details "addressLine1":string, //[string] Address Line 1 "addressLine2":string, //[string] Address Line 2 "city":string, //[string] City "countryCode":string, //[string] ISO 3166-1 Alpha 2 two character country code. "stateCode":string, //[string] Two character state or province code - only applicable to USA/Canada "postalCode":string, //[string] Zip/Postal Code "phoneHome":string, //[string] Home phone number / phone number 1 "phoneMobile":string, //[string] Mobile phone number / phone number 2 "phoneOther":string, //[string] Other phone number / phone number 3 "gender":string, //[string] [male,female,] Employee's gender "driversLicense":string, //[string] Zip/Postal Code "taxNumber":string, //[string] Zip/Postal Code "birthday":string //[string] Employee's date of birth }, "employmentDetails":{ //An employee's employement details "startDate":string, //[string] Employment start date "endDate":string //[string] Employment end date }, "settings":{ //An employee's customized settings "phone":{ //Phone specific settings "clockInReport":string,//[string] [required,optional,disabled] Is a report required on clock in "clockOutReport":string,//[string] [required,optional,disabled] Is a report required on clock out "pinType":string, //[string] [none,custom] Type of phone pin that is configured. ['none', 'custom']. 'custom' means the employee must enter their phonePin when clocking in by phone or SMS "pin":string //[string] Phone or SMS numeric PIN code - must be digits only. }, "web":{ //Web specific settings "clockInReport":string,//[string] [required,optional,disabled] Is a report required on clock in "clockOutReport":string//[string] [required,optional,disabled] Is a report required on clock out }, "gpsSettings":{ //GPS specific settings "basicGeoTagging":string//[string] [enabled,disabled] Collect GPS coordinates on clock in and out on supported mobile devices (Mobile Web/App) }, "location":{ //Employee GEO Tagging Settings "web":{ //Web browser based geo location - mobile browser "tagInOut":string, //[string] [enabled,disabled] GEO tag when employee clocks in/out "accuracy":integer, //[integer] When looking for a gps location, stop when a position with this level of accuracy is found "timeout":integer //[integer] When looking for a gps location, stop after this many seconds }, "app":{ //App based geo location - iOS App, Android App, etc... "tagInOut":string, //[string] [enabled,disabled] GEO tag when employee clocks in/out "accuracy":integer, //[integer] When looking for a gps location, stop when a position with this level of accuracy is found "timeout":integer, //[integer] When looking for a gps location, stop after this many seconds "continuousTracking":string//[string] [enabled,disabled] GEO Tag at regular intervals during employee's shift. Can be taxing on battery life. }, "network":{ //App based geo location - iOS App, Android App, etc... "tagInOut":string, //[string] [always,sometimes,disabled] GEO tag when employee clocks in/out "frequency":integer //[integer] When tagInOut is set to sometimes, events will randomly be tagged using network location using this frequency as a % } }, "permissions":{ //Employee access permissions "canViewOwnTimeSheet":boolean,//[boolean] Employee can view their own timesheet "canEditOwnTimeSheet":boolean,//[boolean] Employee can edit their own timesheet "activityNotes":string //[string] [disabled,textOnly,textAndFiles] Employee can upload activity notes and/or files } } }
{ "guid": "3046bb88-c768-4018-bd3e-e37fd8bd06f1", "status": "active", "type": "normal", "firstName": "Walter", "middleName": "Hartwell", "lastName": "White", "fullName": "Walter Hartwell White", "emailAddress": "wwhite@vericlock.com", "phoneID": "625", "publicPhoneID": "100*625", "clockState": "clockedOut", "groupGuid": null, "customData": { "nickname": "Heisenberg", "internalEmployeeID": "1" }, "personalDetails": { "addressLine1": "3828 Piermont dr", "addressLine2": null, "city": "Albuquerque", "countryCode": "US", "stateCode": "NM", "postalCode": "87111", "phoneHome": "+1-505-555-1234", "phoneMobile": "+1-505-555-9876", "phoneOther": null, "gender": "male", "driversLicense": null, "taxNumber": null, "birthday": "1959-09-07" }, "employmentDetails": { "startDate": "2009-09-08", "endDate": null, "payRate": null, "salary": 36000000, "jobTitle": null }, "dailyBudgetMins": { "mon": null, "tue": null, "wed": null, "thu": null, "fri": null, "sat": null, "sun": null }, "settings": { "phone": { "clockInReport": "disabled", "clockOutReport": "required", "pinType": "none" }, "web": { "clockInReport": "disabled", "clockOutReport": "required" }, "gpsSettings": { "basicGeoTagging": "disabled", "gpsAccuracyMeters": 75, "gpsTimeoutSeconds": 15, "continuousTracking": "disabled" }, "permissions": { "canViewOwnTimeSheet": true, "canEditOwnTimeSheet": false, "canViewJobDetails": false, "canViewServiceItemDetails": false, "activityNotes": "textAndFiles", "offlineClock": true }, "location": { "web": { "tagInOut": "disabled" }, "app": { "tagInOut": "disabled" }, "network": { "tagInOut": "disabled" } } } }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
employeeGuid | string | Required | Employee's guid |
{ "guid": "3046bb88-c768-4018-bd3e-e37fd8bd06f1", "status": "active", "type": "normal", "firstName": "Walter", "middleName": "Hartwell", "lastName": "White", "fullName": "Walter Hartwell White", "emailAddress": "wwhite@vericlock.com", "phoneID": "625", "publicPhoneID": "100*625", "clockState": "clockedOut", "groupGuid": null, "customData": { "nickname": "Heisenberg", "internalEmployeeID": "1" }, "personalDetails": { "addressLine1": "3828 Piermont dr", "addressLine2": null, "city": "Albuquerque", "countryCode": "US", "stateCode": "NM", "postalCode": "87111", "phoneHome": "+1-505-555-1234", "phoneMobile": "+1-505-555-9876", "phoneOther": null, "gender": "male", "driversLicense": null, "taxNumber": null, "birthday": "1959-09-07" }, "employmentDetails": { "startDate": "2009-09-08", "endDate": null, "payRate": null, "salary": 36000000, "jobTitle": null }, "dailyBudgetMins": { "mon": null, "tue": null, "wed": null, "thu": null, "fri": null, "sat": null, "sun": null }, "settings": { "phone": { "clockInReport": "disabled", "clockOutReport": "required", "pinType": "none" }, "web": { "clockInReport": "disabled", "clockOutReport": "required" }, "gpsSettings": { "basicGeoTagging": "disabled", "gpsAccuracyMeters": 75, "gpsTimeoutSeconds": 15, "continuousTracking": "disabled" }, "permissions": { "canViewOwnTimeSheet": true, "canEditOwnTimeSheet": false, "canViewJobDetails": false, "canViewServiceItemDetails": false, "activityNotes": "textAndFiles", "offlineClock": true }, "location": { "web": { "tagInOut": "disabled" }, "app": { "tagInOut": "disabled" }, "network": { "tagInOut": "disabled" } } } }
{ "status":string //[string] [active,inactive,deleted,activeInactive] Employee's status }
[ { "guid": "537c2adb-ec9c-4703-9e7f-97ab92aa18a7", "firstName": "Walter", "lastName": "White" }, { "guid": "bfd75655-9b25-4e86-9c68-bfcb0b61f31e", "firstName": "Skyler", "lastName": "White" } ]
{ //Job Object, Describes a job "name":string, //(Required)[string] Name for the job. "description":string, //[string] Description of the job. "code":undefined, //[undefined] Numeric job code used to identify the job. "status":string, //[string] [active,inactive,deleted] Job's active status. "accessControl":string, //[string] [none,allowList,denyList] Access control method in use "parentGuid":string, //[string] Job's optional parent job guid. "employeeAccessList":array,//[array] List of employees, by guid, affected by the access control policy "groupAccessList":array, //[array] List of groups, by guid, affected by the access control policy "otExempt":boolean //[boolean] If true, job will not contribute to overtime }
{ "guid": "7f876dfe-b19b-4c81-ae6f-87015ea713d3", "parentGuid": null, "createDate": "2009-01-01T00:00:00.000Z", "code": 100, "name": "Lab Cleanup", "description": "Cleaning up the lab - ensure all surfaces are scrubbed", "status": "active", "accessControl": "none", "otExempt": false, "employeeAccessList": null, "groupAccessList": null }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Required | Job's guid |
{ //Job Object, Describes a job "name":string, //[string] Name for the job. "description":string, //[string] Description of the job. "code":undefined, //[undefined] Numeric job code used to identify the job. "status":string, //[string] [active,inactive,deleted] Job's active status. "accessControl":string, //[string] [none,allowList,denyList] Access control method in use "parentGuid":string, //[string] Job's optional parent job guid. "employeeAccessList":array,//[array] List of employees, by guid, affected by the access control policy "groupAccessList":array, //[array] List of groups, by guid, affected by the access control policy "otExempt":boolean //[boolean] If true, job will not contribute to overtime }
{ "guid": "7f876dfe-b19b-4c81-ae6f-87015ea713d3", "parentGuid": null, "createDate": "2009-01-01T00:00:00.000Z", "code": 100, "name": "Lab Cleanup", "description": "Cleaning up the lab - ensure all surfaces are scrubbed", "status": "active", "accessControl": "none", "otExempt": false, "employeeAccessList": null, "groupAccessList": null }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Required | Job's guid |
{ "guid": "7f876dfe-b19b-4c81-ae6f-87015ea713d3", "parentGuid": null, "createDate": "2009-01-01T00:00:00.000Z", "code": 100, "name": "Lab Cleanup", "description": "Cleaning up the lab - ensure all surfaces are scrubbed", "status": "active", "accessControl": "none", "otExempt": false, "employeeAccessList": null, "groupAccessList": null }
{ "status":string, //[string] [active,inactive,deleted,activeInactive] Active status to filter by. Note: activeInactive will select both active and inactive jobs "searchText":string, //[string] Searches job list by code/name/description for occurrences of this text "searchResultLimit":integer,//[integer] Sends at most this many results back when using searchText "includeAccessControlList":boolean,//[boolean] "jobCode":string //[string] Searches for a job matching this job code }
[ { "guid": "9ed3a446-2b6d-42da-9b7a-9f8eaedc43e7", "name": "Lab Cleanup", "code": 100 }, { "guid": "d50697bd-a4b4-4cb8-be5b-93701706fe29", "name": "Supply Inventory", "code": 200 } ]
{ "managingEmployeeGuid":string//[string] Employee's guid. If specified, all groups managed by this employee is returned. }
[ { "guid": "19d9fd56-b893-4391-6ebe-f1d93e1c2c7e", "name": "Sales Team", "description": "", "employees": [ "...employees in group list..." ] }, { "guid": "68c0cc25-eeaf-48f5-8f4c-d69135a871f9", "name": "Tech Team", "description": "", "employees": [ "...employees in group list..." ] } ]
Parameter | Type | Required | Optional | Description |
---|---|---|---|
groupGuid | string | Required | Group's guid |
{ "guid": "19d9fd56-b893-4391-6ebe-f1d93e1c2c7e", "name": "Sales Team", "description": "", "employees": [ "...employees in group list..." ] }
{ //Group Object. Describes a group "name":string, //(Required)[string] undefined "description":string //[string] undefined }
{ "guid": "19d9fd56-b893-4391-6ebe-f1d93e1c2c7e", "name": "Sales Team", "description": "", "employees": [ "...employees in group list..." ] }
{ //A time sheet query object describes what time data to retrieve "searchPeriod":{ //Search time frame "start":string, //(Required)[string] Search period begins at this date-time "end":string, //(Required)[string] Search period ends at this date-time "searchType":string, //[string] [inOutTimeInclusive,inTimeInclusive,inOrOutTimeInclusive] Changes how search interprets start and end time ranges. inTimeInclusive will only consider a clock event's clock in time, inOutTimeInclusive will consider both the clock in time AND out time, both must be in the search window, and 'inOrOutTimeInclusive' either the clock event's start or end time must be within the search window. Default is 'inOutTimeInclusive' "includeInProgressEvents":boolean//[boolean] Include clock events of employees still clocked in - duration, cost, etc will assume a time up to the current moment }, "applyScheduledDeductions":boolean,//[boolean] Apply the scheduled time deductions to all events "activeFilter":string, //[string] [active,deleted,all] Allows the inclusive of deleted events as well or exclusively. Default is 'active' "approvedFilter":string, //[string] [all,approved,unapproved] Filter for only approved timesheet entries. One of ['all','approved','unapproved']. Default is 'all' "employeeList":array, //[array] Array of employee guid's "jobList":array, //[array] Array of job guid's "includeEmployeeIds":array,//[array] undefined "excludeEmployeeIds":array,//[array] undefined "includeGroupIds":array, //[array] undefined "excludeGroupIds":array, //[array] undefined "includeJobIds":array, //[array] undefined "excludeJobIds":array, //[array] undefined "includeServiceItemIds":array,//[array] undefined "excludeServiceItemIds":array,//[array] undefined "requestExtraData":{ //Data returned will be minimal unless additional fields or objects are requested "reportsIn":boolean, //[boolean] Include clock in reports for each clock event "reportsOut":boolean, //[boolean] Include clock out reports for each clock event "customFieldsIn":boolean,//[boolean] Include clock in custom field data for each clock event "customFieldsOut":boolean,//[boolean] Include clock out custom field data for each clock event "editEmployee":boolean, //[boolean] Include the last employee to edit each clock event "editReport":boolean, //[boolean] Include all edit notes for each clock event "webInfoIn":boolean, //[boolean] Include clock in details for web clocks if available. IP, Browser, etc... "phoneInfoIn":boolean, //[boolean] Include clock in details for phone clocks if available. Caller ID, etc... "smsInfoIn":boolean, //[boolean] Include clock in details for sms clocks if available. Caller ID, etc... "appInfoIn":boolean, //[boolean] Include clock in details for app clocks if available. IP, Device, etc... "gpsInfoIn":boolean, //[boolean] Include clock in GPS info if available. Lat, Lng, etc... "webInfoOut":boolean, //[boolean] Include clock out details for web clocks if available. IP, Browser, etc... "phoneInfoOut":boolean, //[boolean] Include clock out details for phone clocks if available. Caller ID, etc... "smsInfoOut":boolean, //[boolean] Include clock out details for sms clocks if available. Caller ID, etc... "appInfoOut":boolean, //[boolean] Include clock out details for app clocks if available. IP, Device, etc... "gpsInfoOut":boolean //[boolean] Include clock out GPS info if available. Lat, Lng, etc... } }
[ { "guid": "452c3527-f978-4afe-b011-be37e7b0d2a6", "rootGuid": "452c3527-f978-4afe-b011-be37e7b0d2a6", "employeeGuid": "c742061e-a2ee-438f-a0bb-3416a1e14776", "jobGuid": "4634a743-dbb8-4cbb-ae82-24fc8416ca2f", "jobCode": null, "jobName": null, "serviceItemGuid": null, "serviceItemCode": null, "serviceItemName": null, "start": "2009-01-01T08:05:00.000Z", "end": "2009-01-01T17:49:00.000Z", "duration": 584, "clockInReportId": null, "inDetails": { "method": "phone", "report": { "type": "audio", "url": "https://url.to.the.report/mp3/or/wav" }, "callerID": "+15055551234", "calledNumber": "+15055550000", "callLength": "37" }, "clockOutReportId": null, "outDetails": { "method": "web", "report": { "type": "text", "value": "Lab session went perfectly" }, "ipAddress": "192.168.0.25", "userAgent": "chrome browser" }, "deleted": false, "flagged": { "accessControlCallerIDClockIn": true }, "approved": true }, { "guid": "e6d4d99a-b2a3-4cb2-a0fd-da009f2c501f", "rootGuid": "e6d4d99a-b2a3-4cb2-a0fd-da009f2c501f", "employeeGuid": "62e0605c-926b-4aac-8b19-0ad27824bd34", "jobGuid": "e3c9d82a-e08e-40d1-a078-2db6f8b79e00", "jobCode": null, "jobName": null, "serviceItemGuid": null, "serviceItemCode": null, "serviceItemName": null, "start": "2009-02-01T08:27:00.000Z", "end": "2009-02-01T12:12:00.000Z", "duration": 225, "clockInReportId": null, "inDetails": { "method": "sms", "callerID": "+15055551234", "calledNumber": "+15055550000", "rawSMS": "in 625 100" }, "clockOutReportId": null, "outDetails": { "method": "mobileWeb", "ipAddress": "192.168.0.119", "userAgent": "iphone/safari browser", "geoTagging": { "latitude": "49.264585002149", "longitude": "-123.12476435135", "accuracy": 25 } }, "deleted": false, "flagged": { "accessControlCallerIDClockIn": true, "jobRulesAssignmentMismatch": true }, "approved": true }, { "guid": "e6d4d99a-b2a3-4cb2-a0fd-da009f2c501f", "rootGuid": "e6d4d99a-b2a3-4cb2-a0fd-da009f2c501f", "employeeGuid": "5ee21f0e-7efb-4342-bdb6-1d91123f0d95", "jobGuid": "57d0fcb4-239e-428f-944d-1a0a0295054e", "jobCode": null, "jobName": null, "serviceItemGuid": null, "serviceItemCode": null, "serviceItemName": null, "start": "2009-02-01T08:27:00.000Z", "end": "2009-02-01T12:12:00.000Z", "duration": 225, "clockInReportId": null, "inDetails": { "method": "phone", "callerID": "+15055551234", "calledNumber": "+15055550000" }, "clockOutReportId": null, "outDetails": { "method": "phone", "callerID": "+15055551234", "calledNumber": "+15055550000" }, "deleted": false, "flagged": { "accessControlCallerIDClockIn": true, "accessControlCallerIDClockOut": true } } ]
{ "guid":string, //[string] Payroll Item's guid "status":string //[string] [active,inactive,deleted] Payroll Item's status }
{ //PayrollItem Object. Describes a payroll item "name":string, //(Required)[string] Name for the payroll item. "description":string, //[string] Description of the payroll item. "status":string, //[string] [active,inactive,deleted] Payroll item's active status "type":string, //[string] [hourly,overtime,salary] Payroll item's pay type "linkedGuid":string, //[string] Guid of linked payroll item "multiplier":number //[number] Multiplier for the payroll item rate. This is only valid if linkedGuid is valid }
{ "guid": "13dfe15a-1f6a-43cc-8780-e8054f7be7d3", "name": "Painting overtime", "description": "Overtime payroll for painting", "status": "active", "type": "hourly", "linkedGuid": null, "linkedName": null, "multiplier": null, "createdDate": "2019-12-06T20:41:33.000Z" }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
guid | string | Required | Payroll item's guid |
{ //PayrollItem Object. Describes a payroll item "name":string, //[string] Name for the payroll item. "description":string, //[string] Description of the payroll item. "status":string, //[string] [active,inactive,deleted] Payroll item's active status "type":string, //[string] [hourly,overtime,salary] Payroll item's pay type "linkedGuid":string, //[string] Guid of linked payroll item "multiplier":number //[number] Multiplier for the payroll item rate. This is only valid if linkedGuid is valid }
{ "guid": "13dfe15a-1f6a-43cc-8780-e8054f7be7d3", "name": "Painting overtime", "description": "Overtime payroll for painting", "status": "active", "type": "hourly", "linkedGuid": null, "linkedName": null, "multiplier": null, "createdDate": "2019-12-06T20:41:33.000Z" }
{ "payType":integer, //[integer] Pay type "jobGuid":string, //[string] Job's guid "serviceItemGuid":string, //[string] Service item's guid "employeeGuid":string, //[string] Employee's guid "groupGuid":string, //[string] Group's guid "payrollItemGuid":string //[string] Payroll item's guid }
{ "payType":integer, //(Required)[integer] Pay type "jobGuid":string, //[string] Job's guid "serviceItemGuid":string, //[string] Service item's guid "employeeGuid":string, //[string] Employee's guid "groupGuid":string, //[string] Group's guid "payrollItemGuid":string //[string] Payroll item's guid }
{ "payType":integer, //(Required)[integer] Pay type "jobGuid":string, //[string] Job's guid "serviceItemGuid":string, //[string] Service item's guid "employeeGuid":string, //[string] Employee's guid "groupGuid":string, //[string] Group's guid "payrollItemGuid":string //[string] Payroll item's guid }
{ "employeeGuid":string //(Required)[string] Employee's guid }
{ "payrollInfo":array //(Required)[array] Employee's payroll info }
{ //ServiceItem Object. Describes a service item "name":string, //(Required)[string] Name for the service item. "serviceItemCode":number, //[number] Service item code "description":string, //[string] Description of the service item. "status":string, //[string] [active,inactive,deleted] Service item's active status "parentGuid":string, //[string] Service item's optional parent guid. "otExempt":boolean //[boolean] If true, a shift with this service item will not contribute to overtime }
{ "guid": "1924a426-d882-45d4-8d15-fc1d4bcfe53b", "serviceItemCode": 55, "name": "Driving", "description": "Driving to a job site", "status": "active", "parentGuid": null, "createdDate": "2019-12-06T20:41:33.000Z", "otExempt": false }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
guid | string | Required | Service item's guid |
{ //ServiceItem Object. Describes a service item "name":string, //[string] Name for the service item. "serviceItemCode":number, //[number] Service item code "description":string, //[string] Description of the service item. "status":string, //[string] [active,inactive,deleted] Service item's active status "parentGuid":string, //[string] Service item's optional parent guid. "otExempt":boolean //[boolean] If true, a shift with this service item will not contribute to overtime }
{ "guid": "1924a426-d882-45d4-8d15-fc1d4bcfe53b", "serviceItemCode": 55, "name": "Driving", "description": "Driving to a job site", "status": "active", "parentGuid": null, "createdDate": "2019-12-06T20:41:33.000Z", "otExempt": false }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Required | The GUID of the job this rule will apply to or 'global' for the global rules |
{ "permission":string, //(Required)[string] [allow,deny] Permission type "flagOnly":boolean, //[boolean] Flag Only - if true, clocks matching rule are not blocked, but are instead flagged only "phoneNumber":string, //[string] Phone number for the rule, blank for generic base case. International format. "notes":string //[string] Short description about the phone number }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Optional | The GUID of the job this rule will apply to - use 'global' to refer to the global rules. Leave empty to retrieve all rules. |
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Optional | The GUID of the job this rule will apply to - use 'global' to refer to the global rules. |
{ "phoneNumber":string //[string] Phone number for the rule, blank for generic base case, wildcard * for entire rule. International format. }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Required | The GUID of the job this rule will apply to or 'global' for the global rules |
{ "permission":string, //(Required)[string] [allow,deny] Permission type "flagOnly":boolean, //[boolean] Flag Only - if true, clocks matching rule are not blocked, but are instead flagged only "ipAddress":string, //[string] IP Address for the rule, blank for generic base case, wildcard * for entire rule.. "notes":string //[string] Short description about the IP address }
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Optional | The GUID of the job this rule will apply to - use 'global' to refer to the global rules. Leave empty to retrieve all rules. |
Parameter | Type | Required | Optional | Description |
---|---|---|---|
jobGuid | string | Optional | The GUID of the job this rule will apply to - use 'global' to refer to the global rules. |
{ "ipAddress":string //[string] IP Address for the rule, blank for generic base case, wildcard * for entire rule.. }
{ "employeeGuids":array, //(Required)[array] List of employees guids "jobGuid":string, //[string] Job guid "serviceItemGuid":string, //[string] Service item guid "report":string, //[string] A text clock in report to be attached to the clock event "returnClockRootId":boolean//[boolean] undefined }
{ "23930782-390b-439f-88b6-7576593b3c6f": true, "9583b0b8-7eda-42ec-bbf0-7cdc8a7c48b8": true, "390bb0b8-439f-490b-7576-239307824324": false }
{ "employeeGuids":array, //(Required)[array] List of employees guids "report":string, //[string] A text clock out report to be attached to the clock event "flags":integer //[integer] undefined }
{ "23930782-390b-439f-88b6-7576593b3c6f": true, "9583b0b8-7eda-42ec-bbf0-7cdc8a7c48b8": true, "390bb0b8-439f-490b-7576-239307824324": false }
function _validateSignature($privateKey, $data, $signature) { $sig = hash_hmac('sha256', $data, $privateKey); return ($sig === $signature); }