Clock
The Clock API allows you to create one or more clock records in WFM. The data is posted to the stage view (Clock Stage tab of Input Interfaces) and the process to move data to the main view (Clock Record) is either synchronous or asynchronous depending on the async_flg on the API Header.
URL
POST ..lgfapi/v10/stage/clock_record/
Request Body
- async_flg - true/false; default true
- When false:
- Posts data to Stage Record of Clock Input Interface and the process to move data to Clock Record is triggered immediately after.
- If all records are processed successfully, response 200 OK is returned with a response body which indicates that all records have been processed successfully. All the records show up in Clock Record view.
- If one or more records fail validations, response 400 “Bad Request” is returned with the count of failed records in the response. Since clock records need to be sequential and are dependent on other clock records (such as facility clock-in before detail clock-in), no records will be processed after the first failure has been encountered for an employee.
Note: It is advisable not to use async_flg = false if you intend to post large volume of records since the calling system may have to wait for considerable time to receive a response from WFM. - When true:
- Posts data to Stage Record of Clock Input Interface
- Returns response 200 OK with a response body which indicates that records have been submitted for further processing.
- Records in stage table are processed asynchronously and if there are no errors, all records eventually show up in Clock Record view.
- When false:
- header
- document_version
- origin_system
- client_env_code
- parent_company_code
- entity - "clock_record"
- timestamp
- facility_code
- company_code
- messageid
- stage_clock_record_list - The table below describes the fields within this parameter:
| Name | Required | Type | Description |
| action_code | X | String | CREATE/UPDATE |
| cw_user | X | String | Username of the employee that needs to be clocked |
| ci_ts | C | DateTime | Clock in timestamp Format: YYYYMMDDHHMMSS Example: 20260325081020 |
| co_ts | C | DateTime | Clock out timestamp Format: YYYYMMDDHHMMSS Example: 20260325183050 |
| cico_entity | X | String | Valid Values: FACILITY, BREAK, NONWMS, ADHOC |
| cw_break | C | String | Name of the break taken by employee. Required when cico_entity is BREAK |
| work_area_activity | C | String | Work Area Activity Code of the Non-WMS or Ad hoc activity. Required when cico_entity is NONWMS or ADHOC |
| handling_entity | C | String | See note below under “Handling Attributes for Non-WMS Activities” |
| handling_qty | C | Integer | See note below under “Handling Attributes for Non-WMS Activities” |
| handling_uom | C | String | See note below under “Handling Attributes for Non-WMS Activities” |
| wfm_item_category | O | String | See note below under “Handling Attributes for Non-WMS Activities” |
| lpn_type | O | String | See note below under “Handling Attributes for Non-WMS Activities” |
where X = Mandatory; O = Optional; C = Conditional
Handling Attributes for Non-WMS Activity
The fields handling_entity, handling_qty, handling_uom, wfm_item_category and
lpn_type are used when cico_entity is NONWMS and will be accepted only under the
following conditions:
- A CREATE that has both ci_ts and co_ts.
- An UPDATE that has only co_ts.
- If an UPDATE is sent that has both ci_ts and co_ts, it is considered a case of exact match where WFM will attempt to find an existing clock record based on work_area_activity, ci_ts and co_ts and update the handling_entity, handling_qty, handling_uom, wfm_item_category and lpn_type of the record.
- If an UPDATE is sent that has both ci_ts and co_ts, fields handling_entity, handling_qty and handling_uom are mandatory.
- handling_entity must be "ITEM", "LPN" or "PALLET".
- handling_uom should be an existing UOM in WMS.
- wfm_item_category is optional and can be sent only if handing entity is "ITEM". If sent it must exist in WFM Item Category.
- lpn_type is optional and can be sent only if handling_entity is "LPN" or "PALLET". If sent, it must exist in LPN Type.
Request Body Example (JSON)
Example with all Fields
{
"async_flg":false,
"header": {
"document_version": "26B",
"origin_system": "QA",
"client_env_code": "ABC",
"parent_company_code": "ABC",
"entity": "clock_record",
"timestamp": "2026-01-23T12:12:12",
"facility_code": "QATST01",
"company_code": "QATSTPC",
"messageid": 12345
},
"stage_clock_record_list": [{
"action_code": "CREATE",
"cw_user": "KKALL01",
"cico_entity": "FACILITY",
"ci_ts": "2026-01-23T19:01:29",
"co_ts": "",
"cw_break": "",
"work_area_activity": "",
"handling entity",
"wfm_item_category": "",
"lpn_type": "",
"handling_uom": "",
"handling_qty": ""
}]
}
Example with all the fields
{
"async_flg":false,
"header": {
"document_version": "26B",
"origin_system": "QA",
"client_env_code": "ABC",
"parent_company_code": "ABC",
"entity": "clock_record",
"timestamp": "2026-01-23T12:12:12",
"facility_code": "QATST01",
"company_code": "QATSTPC",
"messageid": 12345
},
"stage_clock_record_list": [{
"action_code": "CREATE",
"cw_user": "KKALL01",
"cico_entity": "FACILITY",
"ci_ts": "2026-01-23T19:01:29"
}]
}