Get Payroll V2
Fetch generated salary types and (optionally) their calculated costs. Successor of wsdlGetPayroll with correct strongly-typed inputs/outputs. **Notes:** all non-preliminary salaries are returned regardless of pSalType; optional boolean inputs must be omitted (not left blank) to fall back to application defaults; the suggested maximum date range is three months.
Due to limitations in the wsdlGetPayroll method a new one has been created to maintain backwards compatibility while adding new features.
Notes
- All Salaries not definitively transferred to payroll (non. prel) will be included in the output even if we have filtering using
pSalType - It is important to specify the correct data type for all input parameters. (
<attest xsi:type="xsd:boolean">true</attest>and not<attest>true</attest>) - Optional input parameters shall not be left blank. A blank boolean parameter will default to false. To use the application specific defaults for boolean parameters, leave out the element completely.
- The suggested maximum date range when using the call is 3 months.
- The correct return and input types are now used in the V2 request.
- If
approvedSalaryStatusis not sent in the input parameters, the default behaviour is to include/exclude approved salaries based on the attest input parameter.
Request
API key of the unit.
Filter set — see the getPayrollV2Request type.
Inclusive start of the range.
Inclusive end of the range.
Whether the result is limited to approved (attested) punches and absences. Also excludes unapproved salaries whose salary type requires approval, unless approvedSalaryStatus is set — that filter then takes precedence for salaries.
Comma-separated transaction type filter
Whether the result is limited to employees whose home unit is the API key's unit. Has no effect when employeeId or badgeNo is set.
Filter on a single Quinyx employee id.
Filter on a single employee badge number.
Whether the result only includes salaries whose salary type is configured to be transferred to payroll (the salary type's transferToPayroll setting).
Limit results by salary approval status:
Include netCost, absenceCost, socialCost, and totalCost in the response
Cost calculation method. Has no effect unless includeCosts is true.
Whether tags are included on each PayrollV2 row.
Set to true to include stCode (salary type code) on each PayrollV2 row.
curl -X POST 'https://api.quinyx.com/FlexForceWebServices.php' \
-H 'Content-Type: text/xml; charset=utf-8' \
-H 'SOAPAction: "uri:FlexForce/getPayrollV2"' \
--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:wsdlGetPayrollV2>
<apiKey xsi:type="xsd:string">string</apiKey>
<getPayrollV2Request xsi:type="tns:getPayrollV2Request">
<fromDate xsi:type="xsd:date">2015-05-01</fromDate>
<toDate xsi:type="xsd:date">2015-05-07</toDate>
<attest xsi:type="xsd:boolean">true</attest>
<pSalType xsi:type="xsd:string">0,1,2,3</pSalType>
<empInUnitOnly xsi:type="xsd:boolean">true</empInUnitOnly>
<employeeId xsi:type="xsd:int">123</employeeId>
<badgeNo xsi:type="xsd:string">1000</badgeNo>
<isTransferingToPayroll xsi:type="xsd:boolean">true</isTransferingToPayroll>
<approvedSalaryStatus xsi:type="xsd:int">0</approvedSalaryStatus>
<includeCosts xsi:type="xsd:boolean">false</includeCosts>
<costCalculationType xsi:type="xsd:int">2</costCalculationType>
<includeTags xsi:type="xsd:boolean">false</includeTags>
<includeStCode xsi:type="xsd:boolean">false</includeStCode>
</getPayrollV2Request>
</tns:wsdlGetPayrollV2>
</soap:Body>
</soap:Envelope>
EOFResponse
A PayrollsV2 array of payroll rows matching the filters.
A single payroll row returned by wsdlGetPayrollV2.
Employee id.
Employee display name.
Unit id the salary row belongs to.
Employee badge number.
Employee social-security number
Employee card number.
Payroll row type code.
Calendar date the row applies to.
External salary type code.
Start of the segment.
End of the segment.
Number of hours for this row.
Only included when approvedSalaryStatus is set on the request. true when the salary has been approved (always true when the salary does not require approval).
Only included when approvedSalaryStatus is set on the request. true when the employee has approved this time.
Only included when approvedSalaryStatus is set on the request. true when the manager has approved this time.
true when the customer has approved this time. Only available with the CRM module.
Cost centre attached to the underlying punch/shift.
Project number attached to the underlying punch/shift.
Account number attached to the underlying punch/shift.
Agreement additional field 1.
Agreement additional field 2.
Agreement additional field 3.
Agreement additional field 4.
Agreement additional field 5.
External information field 1 from the underlying punch/shift.
External information field 2 from the underlying punch/shift.
External information field 3 from the underlying punch/shift.
Decision number attached to the underlying punch/shift.
Customer number attached to the underlying punch/shift.
Team id the row is associated with.
External code of the team the row is associated with.
Unique id of the shift the row was generated from.
Unique id of the time punch. **Note:** this id can be empty when the salary type was generated by a bank-holiday rule rather than a punch.
Date of the underlying time punch.
Original shift id — used when the shift was split by absence, to keep track of the origin.
Unique id of the underlying leave application.
Calendar start date of the generated salary type. Not related to date.
Whether the underlying shift counts as productive time.
Net cost for the row. Only present when includeCosts is true.
Absence cost for the row. Only present when includeCosts is true.
Social cost for the row. Only present when includeCosts is true.
Total cost for the row. Only present when includeCosts is true.
Array of PayrollTag records. Only present when includeTags is true.
Salary type code. Only present when includeStCode is true.
<?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:wsdlGetPayrollV2Response>
<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:PayrollV2[1]">
<item xsi:type="tns:PayrollV2">
<id xsi:type="xsd:int">0</id>
<empName xsi:type="xsd:string">string</empName>
<restId xsi:type="xsd:int">0</restId>
<badgeNo xsi:type="xsd:string">string</badgeNo>
<socsecNo xsi:type="xsd:string">700101-0123</socsecNo>
<cardNo xsi:type="xsd:string">string</cardNo>
<pType xsi:type="xsd:int">0</pType>
<date xsi:type="xsd:date">2024-01-01</date>
<salType xsi:type="xsd:string">string</salType>
<in xsi:type="xsd:string">string</in>
<out xsi:type="xsd:string">string</out>
<hours xsi:type="xsd:decimal">0</hours>
<salaryMgrAttest xsi:type="xsd:boolean">true</salaryMgrAttest>
<transactionEmpAttest xsi:type="xsd:boolean">true</transactionEmpAttest>
<transactionMgrAttest xsi:type="xsd:boolean">true</transactionMgrAttest>
<transactionCustAttest xsi:type="xsd:boolean">true</transactionCustAttest>
<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>
<teamId xsi:type="xsd:int">0</teamId>
<teamExtCode xsi:type="xsd:string">string</teamExtCode>
<scheduleId xsi:type="xsd:int">0</scheduleId>
<punchId xsi:type="xsd:int">0</punchId>
<punchDate xsi:type="xsd:date">2024-01-01</punchDate>
<orgScheduleId xsi:type="xsd:int">0</orgScheduleId>
<leaveAppId xsi:type="xsd:int">0</leaveAppId>
<segmentStartDate xsi:type="xsd:date">2024-01-01</segmentStartDate>
<productiveTime xsi:type="xsd:boolean">true</productiveTime>
<netCost xsi:type="xsd:decimal">0</netCost>
<absenceCost xsi:type="xsd:decimal">0</absenceCost>
<socialCost xsi:type="xsd:decimal">0</socialCost>
<totalCost xsi:type="xsd:decimal">0</totalCost>
<tags xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:PayrollTag[1]">
<item xsi:type="tns:PayrollTag">
<tagCategoryName xsi:type="xsd:string">string</tagCategoryName>
<tagCategoryExternalId xsi:type="xsd:string">string</tagCategoryExternalId>
<tagName xsi:type="xsd:string">string</tagName>
<tagCode xsi:type="xsd:string">string</tagCode>
<tagExternalId xsi:type="xsd:string">string</tagExternalId>
<customFields xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:TagCustomField[1]">
<item xsi:type="tns:TagCustomField">
<label xsi:type="xsd:string">string</label>
<value xsi:type="xsd:string">string</value>
</item>
</customFields>
</item>
</tags>
<stCode xsi:type="xsd:int">0</stCode>
</item>
</return>
</tns:wsdlGetPayrollV2Response>
</soap:Body>
</soap:Envelope>