Get Time Punches
Export time punches from Quinyx WFM.
This web service method is used to export time punches from Quinyx WFM, according to selection specified in the request.
You need to set at least one parameter even though they are optional. We strongly suggest fromDate and toDate to maximum 30 days.
Datetime handling
All datetime fields in the response carry the backend server's timezone offset (Europe/Stockholm) — +01:00 in winter, +02:00 during EU summer time — regardless of the unit's actual timezone.
For the punch fields (punchIn, punchOut, orgPunchIn, orgPunchOut) the datetime part is the punch time in the unit's local timezone: Ignore the offset and use the datetime part as-is.
Do not let a datetime library apply the offset (e.g. by normalising to UTC). That shifts every punch time. The ts field is the exception: its datetime part is the server clock, not unit-local.
Request
API key of the unit.
Filter set
Optional selection on employee, using the internal identification of the employee.
Optional selection on employee, using the employee badge number.
Optional selection on section, using internal identification of the section.
Include punches starting on or after this date, evaluated against the punch start in the unit's local timezone.
Include punches starting on or before this date, evaluated against the punch start in the unit's local timezone.
Include time punches that has been transferred to payroll and locked.
Include time punches that hasn’t been transferred to payroll.
Include approved time punches.
Include unapproved time punches.
Include deleted time punches.
Include active punches (not deleted)
Include punches from ALL units instead of the unit specified by API key only
Only return punches modified after this moment. Compared against the record's ts value.
Controls which punches to fetch based on the unit of the API key. Either fetch all punches from employees who has that unit as home unit, alternatively to fetch all punches punched at that unit (no matter the home unit of the employee punching in)
If you want to include the shift type connected to the punch
curl -X POST 'https://api.quinyx.com/FlexForceWebServices.php' \
-H 'Content-Type: text/xml; charset=utf-8' \
-H 'SOAPAction: "uri:FlexForce/GetTimePunches"' \
--data @- <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://api.quinyx.com/soap/FlexForce">
<soap:Body>
<tns:wsdlGetTimePunches>
<apiKey xsi:type="xsd:string">string</apiKey>
<getTimePunchesRequest xsi:type="tns:getTimePunchesRequest">
<employeeId xsi:type="xsd:int">0</employeeId>
<badgeNo xsi:type="xsd:string">string</badgeNo>
<sectionId xsi:type="xsd:int">0</sectionId>
<fromDate xsi:type="xsd:date">2024-01-01</fromDate>
<toDate xsi:type="xsd:date">2024-01-01</toDate>
<transferredToPayroll xsi:type="xsd:boolean">true</transferredToPayroll>
<notTransferredToPayroll xsi:type="xsd:boolean">true</notTransferredToPayroll>
<approved xsi:type="xsd:boolean">true</approved>
<unapproved xsi:type="xsd:boolean">true</unapproved>
<deleted xsi:type="xsd:boolean">true</deleted>
<active xsi:type="xsd:boolean">true</active>
<allUnits xsi:type="xsd:boolean">true</allUnits>
<modifiedAfter xsi:type="xsd:string">2021-01-01 00:00:00</modifiedAfter>
<employeeUnitMode xsi:type="xsd:int">0</employeeUnitMode>
<shiftTaskInfo xsi:type="xsd:boolean">true</shiftTaskInfo>
</getTimePunchesRequest>
</tns:wsdlGetTimePunches>
</soap:Body>
</soap:Envelope>
EOFResponse
A GetTimePunchesResponse wrapping the matched time punches and any validationErrors.
Array of TimePunch records matching the request.
A time punch (clock-in / clock-out) record.
Array of validation errors. Empty on success.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://api.quinyx.com/soap/FlexForce">
<soap:Body>
<tns:wsdlGetTimePunchesResponse>
<return xsi:type="tns:GetTimePunchesResponse">
<timepunches xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:TimePunch[1]">
<item xsi:type="tns:TimePunch">
<id xsi:type="xsd:int">67891</id>
<employeeName xsi:type="xsd:string">string</employeeName>
<restId xsi:type="xsd:int">0</restId>
<badgeNo xsi:type="xsd:string">string</badgeNo>
<socsecNo xsi:type="xsd:string">string</socsecNo>
<cardNo xsi:type="xsd:string">string</cardNo>
<punchIn xsi:type="xsd:dateTime">2015-12-31T08:00:00+01:00</punchIn>
<punchOut xsi:type="xsd:dateTime">2015-12-31T17:00:00+01:00</punchOut>
<orgPunchIn xsi:type="xsd:dateTime">2015-12-31T08:00:00+02:00</orgPunchIn>
<orgPunchOut xsi:type="xsd:dateTime">2015-12-31T17:00:00+02:00</orgPunchOut>
<hours xsi:type="xsd:decimal">0</hours>
<approvedByEmployee xsi:type="xsd:boolean">true</approvedByEmployee>
<approvedByManager xsi:type="xsd:boolean">true</approvedByManager>
<approvedByCustomer xsi:type="xsd:boolean">true</approvedByCustomer>
<costCentre xsi:type="xsd:string">string</costCentre>
<projectNo xsi:type="xsd:string">string</projectNo>
<accountNo xsi:type="xsd:string">string</accountNo>
<agrmntAdditionalField1 xsi:type="xsd:string">string</agrmntAdditionalField1>
<agrmntAdditionalField2 xsi:type="xsd:string">string</agrmntAdditionalField2>
<agrmntAdditionalField3 xsi:type="xsd:string">string</agrmntAdditionalField3>
<agrmntAdditionalField4 xsi:type="xsd:string">string</agrmntAdditionalField4>
<agrmntAdditionalField5 xsi:type="xsd:string">string</agrmntAdditionalField5>
<externalInfo1 xsi:type="xsd:string">string</externalInfo1>
<externalInfo2 xsi:type="xsd:string">string</externalInfo2>
<externalInfo3 xsi:type="xsd:string">string</externalInfo3>
<decisionNo xsi:type="xsd:string">string</decisionNo>
<customerNo xsi:type="xsd:string">string</customerNo>
<scheduleId xsi:type="xsd:int">0</scheduleId>
<transferredToPayroll xsi:type="xsd:boolean">true</transferredToPayroll>
<deleted xsi:type="xsd:boolean">true</deleted>
<productiveTime xsi:type="xsd:boolean">true</productiveTime>
<isOpen xsi:type="xsd:boolean">true</isOpen>
<comment xsi:type="xsd:string">string</comment>
<managerComment xsi:type="xsd:string">string</managerComment>
<employeeId xsi:type="xsd:int">0</employeeId>
<shiftCategoryId xsi:type="xsd:int">0</shiftCategoryId>
<extShiftCategoryId xsi:type="xsd:string">string</extShiftCategoryId>
<shiftCategoryName xsi:type="xsd:string">string</shiftCategoryName>
<subShiftReference xsi:type="xsd:int">0</subShiftReference>
<ts xsi:type="xsd:dateTime">2015-12-31T08:00:00+02:00</ts>
</item>
</timepunches>
<validationErrors xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
<item xsi:type="xsd:string">string</item>
</validationErrors>
</return>
</tns:wsdlGetTimePunchesResponse>
</soap:Body>
</soap:Envelope>Change log
| Date | Description |
|---|---|
| 2019-02-13 | Added shiftCategoryId, extShiftCategoryId, shiftCategoryName to the response and shiftTaskInfo to the request |
| 2020-03-20 | subShiftReference |
| 2020-05-20 | orgPunchOut, orgPunchIn |