Skip to content

Update Agreements V2

Operation
wsdlUpdateAgreementsV2
SOAP Action
uri:FlexForce/wsdlUpdateAgreementsV2
Service
FlexForce
Port
FlexForcePort
Style
rpc

Create or update an agreement for an employee.

Every user in Quinyx WFM needs to have an agreement in order to be scheduled. An agreement contains all necessary information regarding the user’s employment such as working hours, salary, time rules, availability, overtime schedule etc. This web service method is used to update individual agreements in Quinyx WFM.

This is an updated version that is more inline with the current information available for agreements.

Request notes

  • There are no mandatory fields in the main section but either the employee or the agreement need to be specified by any of these fields: agreementId, extAgreementId, employeeId or badgeNo.
  • To update a specific agreement you have to either specify Quinyx internal id or you can use an external id. If an internal id is specified then the external id will be ignored. The first time an external id is used, a new agreement will be created and the mapping to Quinyx internal id is created.
  • If agreement id is not included in the request and the employee has existing agreements, current agreement will be updated. The system will select which agreement to update based on the following priority order:
    • Agreement with the same template id and it’s from date is the same as the supplied fromDate.
    • Agreement with the same template id and it’s valid period includes the supplied fromDate.
    • Agreement with the same fromDate as the supplied fromDate.
    • Agreement where it’s valid period includes the supplied fromDate.
    • Agreement with the latest fromDate where the fromDate is before the supplied fromDate.
    • The main agreement
  • If an agreement is updated based on above selection and the supplied fromDate is different from current agreements fromDate, a new agreement will be created with the new from date and the current agreement will be closed with a to date of the previous day.
  • If one of the useTemp_ options is set to true in the request, values related to that section will be ignored as template values will be used instead.
  • If one of the useTemp_ options is set to false in the request, default values will still be applied from the template for new agreements before applying other changes from the request.
  • If the agreement template is changed on an existing agreement, the agreement will be updated with template values for each section and the useTemp_ option will be set to true before applying other changes from the request (the useTemp_ option can still be changed by the request).
  • An agreement can only be set as the main agreement if the agreement is valid at the point where the call is made. So it’s not possible to set future or past agreement as main agreement.
  • Note that the API key used for the call will dictate the unit set for the agreement. If a different API key is passed in from the original unit of the agreement, the unit will be updated to match the unit of the API key.

Request example

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="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-ENV:Body>
      <ns1:wsdlUpdateAgreementsV2 xmlns:ns1="https://rc.quinyx.com/FlexForceWebServices.php">
         <ns1:apiKey>APIKEY_GOES_HERE</ns1:apiKey>
         <ns1:UpdateAgreementsV2 xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:UpdateAgreementV2[1]">
            <item xsi:type="tns:UpdateAgreementV2">
               <badgeNo xsi:type="xsd:string">00002</badgeNo>
               <extTemplateId xsi:type="xsd:string">HOURLY_PART_TIME</extTemplateId>
               <fromDate xsi:type="xsd:date">2020-03-16</fromDate>
               <toDate xsi:type="xsd:date">2020-04-16</toDate>
               <expires xsi:type="xsd:boolean">true</expires>
               <employmentRatesAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EmploymentRate[1]">
                  <item xsi:type="tns:EmploymentRate">
                     <fromDate xsi:type="xsd:date">2020-03-16</fromDate>
                     <rate xsi:type="xsd:decimal">50.00</rate>
                  </item>
               </employmentRatesAdd>
               <salariesAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AgreementSalary[1]">
                  <item xsi:type="tns:AgreementSalary">
                     <fromDate xsi:type="xsd:date">2020-03-16</fromDate>
                     <hourlySalary xsi:type="xsd:decimal">150.00</hourlySalary>
                  </item>
               </salariesAdd>
            </item>
         </ns1:UpdateAgreementsV2>
      </ns1:wsdlUpdateAgreementsV2>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Notes

If the employee's salary changes in the source system, or if they move from hourly to monthly employment, we do not recommend creating a new agreement in Quinyx, as this will break the overtime calculation period. Instead, we have a dedicated feature for this, where you can add a new salary or employment rate with a future effective date to an existing agreement.


Request

Message: wsdlUpdateAgreementsV2Request

apiKeystringrequired

string of various length and combination of characters. Note: the API key used for the call will be the unit set for the agreements passed into this call. See also restId. This means that if a different API key is passed in, the agreement will be moved.

agreementsArray<UpdateAgreementV2>

An array of UpdateAgreementV2 records.

itemUpdateAgreementV2

A single agreement to create or update through wsdlUpdateAgreementsV2.

idint

Agreement Id. Can be omitted or set to 0 if not used.

extAgreementIdstring

External code (max 50 characters) used to identify the agreement. If no agreement is found for the given extAgreementId, a new agreement is created. Must be unique.

namestring

If no name is specified, the template name will be used for new agreements.

restIdint

Only used in the response — the API key sets the unit for the agreement.

employeeIdint

Identifies the employee using the Quinyx id.

badgeNostring

Identifies the employee using the badge number.

templateIdint

Specifies the agreement template to use. Use wsdlGetAgreementTemplates to retrieve available template ids.

extTemplateIdstring

External code used to identify the agreement template.

hourlyboolean
Values
falseMonthly employed
trueHourly employed
fromDatedate

If not provided, today's date is used.

FormatYYYY-MM-DD
toDatedate

If not provided, today + 1 year is used.

FormatYYYY-MM-DD
expiresboolean

Indicates whether the agreement expires. If false, toDate is ignored.

commentstring

Free-form comment on the agreement.

schedulePeriodTypeint
Values
0Months
1Days
schedulePeriodLengthint

Length of schedule period according to the schedule period type

schedulePeriodStartDatedate

The start date of the schedule period.

FormatYYYY-MM-DD
fullEmploymentDaysdecimal

Number of working days in the period

fullEmploymentDaysPerWeekint

Number of working days in a week, used together with full time employment days and full time employment hours to calculate nominal hours

fullEmploymentHrsdecimal

Number of working hours in the period, as specified by the full time employment days

excludeSundaysInWorkHoursboolean

Indicate if Sundays shall reduce working hours, only used together with overtime based on workday model

breakRoundingboolean

Indicates if breaks shall be rounded to match scheduled breaks

breakIsWorkTimeboolean

Indicate if scheduled breaks shall be considered as working time

dayBreakstring

Daybreak used in relation to counting of scheduled and worked hours which affect also over time calculation

Formathh:mm:ss
minHrsWeekdecimal

Minimum working hours per week

maxDaysint

Max consecutive working days in a row

minFreeDaysint

Minimum free days following the maximum period

maxHourDaydecimal

Maximum hours per day

maxHourWeekdecimal

Maximum hours per week

minRestdecimal

Minimum hours rest per day

minRestWeekdecimal

Minimum hours rest per week

seqDaysint

Number of days in sequence rule period.

seqMaxDaysint

Maximum number of working days in sequence period.

seqMaxHrsdecimal

Maximum number of working hours in sequence period.

weekStartint

First day of the week.

Values
0Sunday
1Monday
2Tuesday
3Wednesday
4Thursday
5Friday
6Saturday
atDayBreakboolean

Indicates if daily rest should be directly after daybreak

dayBreakReststring

Defines the start of the day, and is used for rules like daily/weekly rest

Formathh:mm:ss
minBreakint

Minimum length of breaks in minutes

maxBreakint

Maximum length of breaks in minutes

weeksAvailint

Number of weeks in available schedule

schedWeekEndsboolean

Indicates if weekend can be scheduled

minWeekEndYearint

Minimum number of free weekends per year

maxTimeWoBreakdecimal

Maximum number of working hours without break

scheduleLockPerioddecimal

Period for warning about late changes

scheduleLockPeriodTypeint

Type of period for warning about late changes.

Values
0Month
1Weeks
2Days
checkAvailabilityboolean

Indicates if availability shall be checked

punchTypeint
Values
0Punch in/out and breaks
1Punch in/out but no breaks
2Deviation reporting
3Punch without schedule
appPayOnAbsenceboolean

Approve payment on absence

payOtimeint

Indicate how overtime shall be compensated.

Values
0Paid
1Save as time off in lieu
payUTint

Indicate how unsocial time shall be compensated.

Values
0Paid
1Save as time off in lieu
showIgnoreOtimeboolean

Indicates if user can select ignore overtime in web punch

showUnspecifiedLeaveInWPboolean

Indicates if unspecified leave can be selected in web punch

allowPunchingOnSubshiftsboolean

Indicates if user can punch on subshifts

genMoretimeboolean

Indicates if additional time shall be generated (only applies to old over time methods).

overtimeMethodint

Old overtime method.

Values
0No overtime
1Time exceeding schedule per day
2Time exceeding nominal hours per schedule period
3Time exceeding nominal hours during x number of days
5Time exceeding x number of hours per day and y number of hours per week
overtimeWindowint

Number of days for over time method 3

autoPunchOutboolean

Number of hours before employee will be automatically punched out

lateChangeboolean

Indicates if late change shall be compensated

lateChangeUTint

The unsocial time level that shall be used as compensation

breakDayrestboolean

Indicate if break of daily rest shall be compensated

breakDayrestUTint

The unsocial time level that shall be used as compensation

breakWeekrestboolean

Indicate if break of weekly rest shall be compensated

breakWeekrestUTint

The unsocial time level that shall be used as compensation

timeBankboolean

Indicate if flex time/bank time shall be used

adjustForLeaveboolean

Indicates if nominal hours shall be reduced for leave

advancedTimeRulesboolean

Indicates if advanced time rules shall be used (danish rules)

otCancelsUtboolean

Indicates if over time shall override unsocial time

allowOverrideOverlappingboolean

Indicates if warning of overlapping shift can be ignored.

useSecondWeekend boolean
utThresholddecimal

Working hours that shall be reached during specified period, for unsocial time to be paid

utThresholdTypeint
Values
0Per week
1Per schedule period
dailyOvertimeHoursdecimal

Number of hours before daily overtime will be generated, used with overtime method 5

weeklyOvertimeHoursdecimal

Number of hours before daily overtime will be generated, used with overtime method 5

noCostPeriodStartstring

Start day for period where cost shall not be calculated

Formatmm-dd
noCostPeriodEndstring

End day for period where cost shall not be calculated

Formatmm-dd
balancePeriodTypeint
Values
0Months
1Days
balancePeriodLengthdecimal

Number of days/months in balance period

balancePeriodHoursdecimal

Number of working hours in balance period

balancePeriodStartDatedate

Start date of the balance period

useWorkDayModelboolean

Use work day model for nominal hours calculation, only used with new overtime

isMainAgreementboolean

Indicates if this is the main agreement of the employee

additionalField1string

Free field

additionalField2string

Free field

additionalField3string

Free field

additionalField4string

Free field

additionalField5string

Free field

useTempAvailboolean

Indicates if template values is used for availability

useTempTimeRulesboolean

Indicates if template values is used for time rules

useTempSalaryboolean

Indicates if template values is used for salary related information

useTempWorkTimeboolean

Indicates if template values is used for work time related information

useTempEmploymentRateboolean

Indicates if template values is used for employment rates

useTempNominalDaysPerWeekboolean

Indicates if template values are used for nominal days per week

useTempMonthHoursboolean

Indicates if template values is used for monthly hours

useTempTandAboolean

Indicates if template values is used for time related information

useTemplateBalancePeriodboolean

Indicates if template values is used for balance period

useTempCostsboolean

Indicates if template values is used for social and leave costs

useStdTimeRulesboolean

Indicates if standard time rules shall be used

availabilityArray<AvailabilityTimePeriod>

An array of AvailabilityTimePeriod.

monthlyHoursArray<MonthlyHours>

An array of MonthlyHours.

overtimeMethodsArray<agreementOvertimeMethod>

An array of agreementOvertimeMethod. Used with the new overtime feature.

punchDeviationsArray<punchRounding>

An array of punchRounding.

employmentRatesAddArray<EmploymentRate>

Use this section to add employment rates to current entry

employmentRatesReplaceArray<EmploymentRate>

Use this section to replace current employment rates with specified values

nominalDaysPerWeekAddArray<NominalDayPerWeek>

Use this section to add nominal days per week to current entry

nominalDaysPerWeekReplaceArray<NominalDayPerWeek>

Use this section to replace current nominal days per week with specified values

salariesAddArray<AgreementSalary>

Use this section to add salaries to current entry

salariesReplaceArray<AgreementSalary>

Use this section to replace current salaries with specified values

salaryAdditionsAgeBasedAddArray<SalaryAdditionByYear>

Use this section to add salary additions with specified values

salaryAdditionsAgeBasedReplaceArray<SalaryAdditionByYear>

Use this section to replace current salary additions with specified values

useTemplateAgeBasedSalaryAdditionboolean

Indicates if template values are used for age based salary additions

ageBasedSalaryAdditionCalcModeint
Values
0As of start of month
1As of exact date
2As of next month
salaryAdditionsYearsWorkedBasedAddArray<SalaryAdditionByYear>
salaryAdditionsYearsWorkedBasedReplaceArray<SalaryAdditionByYear>

Use this section to replace current salary additions with specified values

useTemplateYearsWorkedBasedSalaryAdditionboolean

Indicates if template values are used for years worked based salary additions

yearsWorkedBasedSalaryAdditionCalcModeint
Values
0As of start of month
1As of exact date
2As of next month
salaryAdditionsDateBasedAddArray<SalaryAdditionByDate>
salaryAdditionsDateBasedReplaceArray<SalaryAdditionByDate>

Use this section to replace current salary additions with specified values

useTemplateBreakCreationRulesboolean
useStdBreakCreationRulesboolean
breakCalculationRulesArray<BreakCalculationRule>

An array of BreakCalculationRule.

minShiftLenghtsArray<MinShiftLength>
socialCostsArray<SocialCost>
nominalHoursTypeint
Values
0Full time working hours equally distributed across working days of the week (pre-0193 logic)
1Full time working hours custom distributed for each working day of the week
2Full time working hours equally distributed across working days of the week (new logic)
hoursPerDayArray<hoursDay>

Specifies the working hours per day, if nominalHoursType = 1

validationErrorsArray<xsd:string>

Returned in the response only. Array of error strings if the update failed; empty array on success.

curl -X POST 'https://api.quinyx.com/FlexForceWebServices.php' \
  -H 'Content-Type: text/xml; charset=utf-8' \
  -H 'SOAPAction: "uri:FlexForce/wsdlUpdateAgreementsV2"' \
  --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:wsdlUpdateAgreementsV2>
    <apiKey xsi:type="xsd:string">string</apiKey>
    <agreements xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:UpdateAgreementV2[1]">
      <item xsi:type="tns:UpdateAgreementV2">
        <id xsi:type="xsd:int">0</id>
        <extAgreementId xsi:type="xsd:string">string</extAgreementId>
        <name xsi:type="xsd:string">string</name>
        <restId xsi:type="xsd:int">0</restId>
        <employeeId xsi:type="xsd:int">0</employeeId>
        <badgeNo xsi:type="xsd:string">string</badgeNo>
        <templateId xsi:type="xsd:int">0</templateId>
        <extTemplateId xsi:type="xsd:string">string</extTemplateId>
        <hourly xsi:type="xsd:boolean">true</hourly>
        <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
        <toDate xsi:type="xsd:date">2024-01-01</toDate>
        <expires xsi:type="xsd:boolean">true</expires>
        <comment xsi:type="xsd:string">string</comment>
        <schedulePeriodType xsi:type="xsd:int">0</schedulePeriodType>
        <schedulePeriodLength xsi:type="xsd:int">0</schedulePeriodLength>
        <schedulePeriodStartDate xsi:type="xsd:date">2024-01-01</schedulePeriodStartDate>
        <fullEmploymentDays xsi:type="xsd:decimal">0</fullEmploymentDays>
        <fullEmploymentDaysPerWeek xsi:type="xsd:int">0</fullEmploymentDaysPerWeek>
        <fullEmploymentHrs xsi:type="xsd:decimal">0</fullEmploymentHrs>
        <excludeSundaysInWorkHours xsi:type="xsd:boolean">true</excludeSundaysInWorkHours>
        <breakRounding xsi:type="xsd:boolean">true</breakRounding>
        <breakIsWorkTime xsi:type="xsd:boolean">true</breakIsWorkTime>
        <dayBreak xsi:type="xsd:string">string</dayBreak>
        <minHrsWeek xsi:type="xsd:decimal">0</minHrsWeek>
        <maxDays xsi:type="xsd:int">0</maxDays>
        <minFreeDays xsi:type="xsd:int">0</minFreeDays>
        <maxHourDay xsi:type="xsd:decimal">0</maxHourDay>
        <maxHourWeek xsi:type="xsd:decimal">0</maxHourWeek>
        <minRest xsi:type="xsd:decimal">0</minRest>
        <minRestWeek xsi:type="xsd:decimal">0</minRestWeek>
        <seqDays xsi:type="xsd:int">0</seqDays>
        <seqMaxDays xsi:type="xsd:int">0</seqMaxDays>
        <seqMaxHrs xsi:type="xsd:decimal">0</seqMaxHrs>
        <weekStart xsi:type="xsd:int">0</weekStart>
        <atDayBreak xsi:type="xsd:boolean">true</atDayBreak>
        <dayBreakRest xsi:type="xsd:string">string</dayBreakRest>
        <minBreak xsi:type="xsd:int">0</minBreak>
        <maxBreak xsi:type="xsd:int">0</maxBreak>
        <weeksAvail xsi:type="xsd:int">0</weeksAvail>
        <schedWeekEnds xsi:type="xsd:boolean">true</schedWeekEnds>
        <minWeekEndYear xsi:type="xsd:int">0</minWeekEndYear>
        <maxTimeWoBreak xsi:type="xsd:decimal">0</maxTimeWoBreak>
        <scheduleLockPeriod xsi:type="xsd:decimal">0</scheduleLockPeriod>
        <scheduleLockPeriodType xsi:type="xsd:int">0</scheduleLockPeriodType>
        <checkAvailability xsi:type="xsd:boolean">true</checkAvailability>
        <punchType xsi:type="xsd:int">0</punchType>
        <appPayOnAbsence xsi:type="xsd:boolean">true</appPayOnAbsence>
        <payOtime xsi:type="xsd:int">0</payOtime>
        <payUT xsi:type="xsd:int">0</payUT>
        <showIgnoreOtime xsi:type="xsd:boolean">true</showIgnoreOtime>
        <showUnspecifiedLeaveInWP xsi:type="xsd:boolean">true</showUnspecifiedLeaveInWP>
        <allowPunchingOnSubshifts xsi:type="xsd:boolean">true</allowPunchingOnSubshifts>
        <genMoretime xsi:type="xsd:boolean">true</genMoretime>
        <overtimeMethod xsi:type="xsd:int">0</overtimeMethod>
        <overtimeWindow xsi:type="xsd:int">0</overtimeWindow>
        <autoPunchOut xsi:type="xsd:boolean">true</autoPunchOut>
        <lateChange xsi:type="xsd:boolean">true</lateChange>
        <lateChangeUT xsi:type="xsd:int">0</lateChangeUT>
        <breakDayrest xsi:type="xsd:boolean">true</breakDayrest>
        <breakDayrestUT xsi:type="xsd:int">0</breakDayrestUT>
        <breakWeekrest xsi:type="xsd:boolean">true</breakWeekrest>
        <breakWeekrestUT xsi:type="xsd:int">0</breakWeekrestUT>
        <timeBank xsi:type="xsd:boolean">true</timeBank>
        <adjustForLeave xsi:type="xsd:boolean">true</adjustForLeave>
        <advancedTimeRules xsi:type="xsd:boolean">true</advancedTimeRules>
        <otCancelsUt xsi:type="xsd:boolean">true</otCancelsUt>
        <allowOverrideOverlapping xsi:type="xsd:boolean">true</allowOverrideOverlapping>
        <useSecondWeekend  xsi:type="xsd:boolean">true</useSecondWeekend >
        <utThreshold xsi:type="xsd:decimal">0</utThreshold>
        <utThresholdType xsi:type="xsd:int">0</utThresholdType>
        <dailyOvertimeHours xsi:type="xsd:decimal">0</dailyOvertimeHours>
        <weeklyOvertimeHours xsi:type="xsd:decimal">0</weeklyOvertimeHours>
        <noCostPeriodStart xsi:type="xsd:string">string</noCostPeriodStart>
        <noCostPeriodEnd xsi:type="xsd:string">string</noCostPeriodEnd>
        <balancePeriodType xsi:type="xsd:int">0</balancePeriodType>
        <balancePeriodLength xsi:type="xsd:decimal">0</balancePeriodLength>
        <balancePeriodHours xsi:type="xsd:decimal">0</balancePeriodHours>
        <balancePeriodStartDate xsi:type="xsd:date">2024-01-01</balancePeriodStartDate>
        <useWorkDayModel xsi:type="xsd:boolean">true</useWorkDayModel>
        <isMainAgreement xsi:type="xsd:boolean">true</isMainAgreement>
        <additionalField1 xsi:type="xsd:string">string</additionalField1>
        <additionalField2 xsi:type="xsd:string">string</additionalField2>
        <additionalField3 xsi:type="xsd:string">string</additionalField3>
        <additionalField4 xsi:type="xsd:string">string</additionalField4>
        <additionalField5 xsi:type="xsd:string">string</additionalField5>
        <useTempAvail xsi:type="xsd:boolean">true</useTempAvail>
        <useTempTimeRules xsi:type="xsd:boolean">true</useTempTimeRules>
        <useTempSalary xsi:type="xsd:boolean">true</useTempSalary>
        <useTempWorkTime xsi:type="xsd:boolean">true</useTempWorkTime>
        <useTempEmploymentRate xsi:type="xsd:boolean">true</useTempEmploymentRate>
        <useTempNominalDaysPerWeek xsi:type="xsd:boolean">true</useTempNominalDaysPerWeek>
        <useTempMonthHours xsi:type="xsd:boolean">true</useTempMonthHours>
        <useTempTandA xsi:type="xsd:boolean">true</useTempTandA>
        <useTemplateBalancePeriod xsi:type="xsd:boolean">true</useTemplateBalancePeriod>
        <useTempCosts xsi:type="xsd:boolean">true</useTempCosts>
        <useStdTimeRules xsi:type="xsd:boolean">true</useStdTimeRules>
        <availability xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AvailabilityTimePeriod[1]">
          <item xsi:type="tns:AvailabilityTimePeriod">
            <weekDay xsi:type="xsd:int">0</weekDay>
            <availfrom xsi:type="xsd:string">string</availfrom>
            <availto xsi:type="xsd:string">string</availto>
            <weekNo xsi:type="xsd:int">0</weekNo>
          </item>
        </availability>
        <monthlyHours xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:MonthlyHours[1]">
          <item xsi:type="tns:MonthlyHours">
            <year xsi:type="xsd:int">0</year>
            <month xsi:type="xsd:int">0</month>
            <hours xsi:type="xsd:decimal">0</hours>
          </item>
        </monthlyHours>
        <overtimeMethods xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:agreementOvertimeMethod[1]">
          <item xsi:type="tns:agreementOvertimeMethod">
            <overtimeMethodId xsi:type="xsd:int">0</overtimeMethodId>
            <order xsi:type="xsd:int">0</order>
          </item>
        </overtimeMethods>
        <punchDeviations xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:punchRounding[1]">
          <item xsi:type="tns:punchRounding">
            <type xsi:type="xsd:int">0</type>
            <punchPart xsi:type="xsd:int">0</punchPart>
            <insideShift xsi:type="xsd:int">0</insideShift>
            <roundingRule xsi:type="xsd:int">0</roundingRule>
            <minutes xsi:type="xsd:decimal">0</minutes>
          </item>
        </punchDeviations>
        <employmentRatesAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EmploymentRate[1]">
          <item xsi:type="tns:EmploymentRate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <rate xsi:type="xsd:decimal">0</rate>
          </item>
        </employmentRatesAdd>
        <employmentRatesReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EmploymentRate[1]">
          <item xsi:type="tns:EmploymentRate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <rate xsi:type="xsd:decimal">0</rate>
          </item>
        </employmentRatesReplace>
        <nominalDaysPerWeekAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:NominalDayPerWeek[1]">
          <item xsi:type="tns:NominalDayPerWeek">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <nominalDaysPerWeek xsi:type="xsd:int">0</nominalDaysPerWeek>
          </item>
        </nominalDaysPerWeekAdd>
        <nominalDaysPerWeekReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:NominalDayPerWeek[1]">
          <item xsi:type="tns:NominalDayPerWeek">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <nominalDaysPerWeek xsi:type="xsd:int">0</nominalDaysPerWeek>
          </item>
        </nominalDaysPerWeekReplace>
        <salariesAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AgreementSalary[1]">
          <item xsi:type="tns:AgreementSalary">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <hourlySalary xsi:type="xsd:decimal">0</hourlySalary>
            <monthlySalary xsi:type="xsd:decimal">0</monthlySalary>
            <monthlyHoursDivisor xsi:type="xsd:decimal">0</monthlyHoursDivisor>
          </item>
        </salariesAdd>
        <salariesReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AgreementSalary[1]">
          <item xsi:type="tns:AgreementSalary">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <hourlySalary xsi:type="xsd:decimal">0</hourlySalary>
            <monthlySalary xsi:type="xsd:decimal">0</monthlySalary>
            <monthlyHoursDivisor xsi:type="xsd:decimal">0</monthlyHoursDivisor>
          </item>
        </salariesReplace>
        <salaryAdditionsAgeBasedAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsAgeBasedAdd>
        <salaryAdditionsAgeBasedReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsAgeBasedReplace>
        <useTemplateAgeBasedSalaryAddition xsi:type="xsd:boolean">true</useTemplateAgeBasedSalaryAddition>
        <ageBasedSalaryAdditionCalcMode xsi:type="xsd:int">0</ageBasedSalaryAdditionCalcMode>
        <salaryAdditionsYearsWorkedBasedAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsYearsWorkedBasedAdd>
        <salaryAdditionsYearsWorkedBasedReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsYearsWorkedBasedReplace>
        <useTemplateYearsWorkedBasedSalaryAddition xsi:type="xsd:boolean">true</useTemplateYearsWorkedBasedSalaryAddition>
        <yearsWorkedBasedSalaryAdditionCalcMode xsi:type="xsd:int">0</yearsWorkedBasedSalaryAdditionCalcMode>
        <salaryAdditionsDateBasedAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByDate[1]">
          <item xsi:type="tns:SalaryAdditionByDate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsDateBasedAdd>
        <salaryAdditionsDateBasedReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByDate[1]">
          <item xsi:type="tns:SalaryAdditionByDate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsDateBasedReplace>
        <useTemplateBreakCreationRules xsi:type="xsd:boolean">true</useTemplateBreakCreationRules>
        <useStdBreakCreationRules xsi:type="xsd:boolean">true</useStdBreakCreationRules>
        <breakCalculationRules xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:BreakCalculationRule[1]">
          <item xsi:type="tns:BreakCalculationRule">
            <weekday xsi:type="xsd:int">0</weekday>
            <hours xsi:type="xsd:decimal">5.2</hours>
            <breakMinutes xsi:type="xsd:int">15</breakMinutes>
            <breakType xsi:type="xsd:int">0</breakType>
            <distribute xsi:type="xsd:int">0</distribute>
            <noOfBreaks xsi:type="xsd:int">1</noOfBreaks>
            <afterHours xsi:type="xsd:decimal">0</afterHours>
          </item>
        </breakCalculationRules>
        <minShiftLenghts xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:MinShiftLength[1]">
          <item xsi:type="tns:MinShiftLength">
            <fromTime xsi:type="xsd:string">string</fromTime>
            <toTime xsi:type="xsd:string">string</toTime>
            <length xsi:type="xsd:decimal">0</length>
          </item>
        </minShiftLenghts>
        <socialCosts xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SocialCost[1]">
          <item xsi:type="tns:SocialCost">
            <type xsi:type="xsd:int">0</type>
            <fromAge xsi:type="xsd:int">0</fromAge>
            <toAge xsi:type="xsd:int">0</toAge>
            <startOn xsi:type="xsd:int">0</startOn>
            <costPercent xsi:type="xsd:decimal">0</costPercent>
          </item>
        </socialCosts>
        <nominalHoursType xsi:type="xsd:int">0</nominalHoursType>
        <hoursPerDay xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:hoursDay[1]">
          <item xsi:type="tns:hoursDay">
            <day xsi:type="xsd:int">0</day>
            <hours xsi:type="xsd:decimal">0</hours>
          </item>
        </hoursPerDay>
        <validationErrors xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
          <item xsi:type="xsd:string">string</item>
        </validationErrors>
      </item>
    </agreements>
    </tns:wsdlUpdateAgreementsV2>
  </soap:Body>
</soap:Envelope>
EOF

Response

Message: wsdlUpdateAgreementsV2Response

returnArray<UpdateAgreementV2>

Array of UpdateAgreementV2

itemUpdateAgreementV2

A single agreement to create or update through wsdlUpdateAgreementsV2.

idint

Agreement Id. Can be omitted or set to 0 if not used.

extAgreementIdstring

External code (max 50 characters) used to identify the agreement. If no agreement is found for the given extAgreementId, a new agreement is created. Must be unique.

namestring

If no name is specified, the template name will be used for new agreements.

restIdint

Only used in the response — the API key sets the unit for the agreement.

employeeIdint

Identifies the employee using the Quinyx id.

badgeNostring

Identifies the employee using the badge number.

templateIdint

Specifies the agreement template to use. Use wsdlGetAgreementTemplates to retrieve available template ids.

extTemplateIdstring

External code used to identify the agreement template.

hourlyboolean
Values
falseMonthly employed
trueHourly employed
fromDatedate

If not provided, today's date is used.

FormatYYYY-MM-DD
toDatedate

If not provided, today + 1 year is used.

FormatYYYY-MM-DD
expiresboolean

Indicates whether the agreement expires. If false, toDate is ignored.

commentstring

Free-form comment on the agreement.

schedulePeriodTypeint
Values
0Months
1Days
schedulePeriodLengthint

Length of schedule period according to the schedule period type

schedulePeriodStartDatedate

The start date of the schedule period.

FormatYYYY-MM-DD
fullEmploymentDaysdecimal

Number of working days in the period

fullEmploymentDaysPerWeekint

Number of working days in a week, used together with full time employment days and full time employment hours to calculate nominal hours

fullEmploymentHrsdecimal

Number of working hours in the period, as specified by the full time employment days

excludeSundaysInWorkHoursboolean

Indicate if Sundays shall reduce working hours, only used together with overtime based on workday model

breakRoundingboolean

Indicates if breaks shall be rounded to match scheduled breaks

breakIsWorkTimeboolean

Indicate if scheduled breaks shall be considered as working time

dayBreakstring

Daybreak used in relation to counting of scheduled and worked hours which affect also over time calculation

Formathh:mm:ss
minHrsWeekdecimal

Minimum working hours per week

maxDaysint

Max consecutive working days in a row

minFreeDaysint

Minimum free days following the maximum period

maxHourDaydecimal

Maximum hours per day

maxHourWeekdecimal

Maximum hours per week

minRestdecimal

Minimum hours rest per day

minRestWeekdecimal

Minimum hours rest per week

seqDaysint

Number of days in sequence rule period.

seqMaxDaysint

Maximum number of working days in sequence period.

seqMaxHrsdecimal

Maximum number of working hours in sequence period.

weekStartint

First day of the week.

Values
0Sunday
1Monday
2Tuesday
3Wednesday
4Thursday
5Friday
6Saturday
atDayBreakboolean

Indicates if daily rest should be directly after daybreak

dayBreakReststring

Defines the start of the day, and is used for rules like daily/weekly rest

Formathh:mm:ss
minBreakint

Minimum length of breaks in minutes

maxBreakint

Maximum length of breaks in minutes

weeksAvailint

Number of weeks in available schedule

schedWeekEndsboolean

Indicates if weekend can be scheduled

minWeekEndYearint

Minimum number of free weekends per year

maxTimeWoBreakdecimal

Maximum number of working hours without break

scheduleLockPerioddecimal

Period for warning about late changes

scheduleLockPeriodTypeint

Type of period for warning about late changes.

Values
0Month
1Weeks
2Days
checkAvailabilityboolean

Indicates if availability shall be checked

punchTypeint
Values
0Punch in/out and breaks
1Punch in/out but no breaks
2Deviation reporting
3Punch without schedule
appPayOnAbsenceboolean

Approve payment on absence

payOtimeint

Indicate how overtime shall be compensated.

Values
0Paid
1Save as time off in lieu
payUTint

Indicate how unsocial time shall be compensated.

Values
0Paid
1Save as time off in lieu
showIgnoreOtimeboolean

Indicates if user can select ignore overtime in web punch

showUnspecifiedLeaveInWPboolean

Indicates if unspecified leave can be selected in web punch

allowPunchingOnSubshiftsboolean

Indicates if user can punch on subshifts

genMoretimeboolean

Indicates if additional time shall be generated (only applies to old over time methods).

overtimeMethodint

Old overtime method.

Values
0No overtime
1Time exceeding schedule per day
2Time exceeding nominal hours per schedule period
3Time exceeding nominal hours during x number of days
5Time exceeding x number of hours per day and y number of hours per week
overtimeWindowint

Number of days for over time method 3

autoPunchOutboolean

Number of hours before employee will be automatically punched out

lateChangeboolean

Indicates if late change shall be compensated

lateChangeUTint

The unsocial time level that shall be used as compensation

breakDayrestboolean

Indicate if break of daily rest shall be compensated

breakDayrestUTint

The unsocial time level that shall be used as compensation

breakWeekrestboolean

Indicate if break of weekly rest shall be compensated

breakWeekrestUTint

The unsocial time level that shall be used as compensation

timeBankboolean

Indicate if flex time/bank time shall be used

adjustForLeaveboolean

Indicates if nominal hours shall be reduced for leave

advancedTimeRulesboolean

Indicates if advanced time rules shall be used (danish rules)

otCancelsUtboolean

Indicates if over time shall override unsocial time

allowOverrideOverlappingboolean

Indicates if warning of overlapping shift can be ignored.

useSecondWeekend boolean
utThresholddecimal

Working hours that shall be reached during specified period, for unsocial time to be paid

utThresholdTypeint
Values
0Per week
1Per schedule period
dailyOvertimeHoursdecimal

Number of hours before daily overtime will be generated, used with overtime method 5

weeklyOvertimeHoursdecimal

Number of hours before daily overtime will be generated, used with overtime method 5

noCostPeriodStartstring

Start day for period where cost shall not be calculated

Formatmm-dd
noCostPeriodEndstring

End day for period where cost shall not be calculated

Formatmm-dd
balancePeriodTypeint
Values
0Months
1Days
balancePeriodLengthdecimal

Number of days/months in balance period

balancePeriodHoursdecimal

Number of working hours in balance period

balancePeriodStartDatedate

Start date of the balance period

useWorkDayModelboolean

Use work day model for nominal hours calculation, only used with new overtime

isMainAgreementboolean

Indicates if this is the main agreement of the employee

additionalField1string

Free field

additionalField2string

Free field

additionalField3string

Free field

additionalField4string

Free field

additionalField5string

Free field

useTempAvailboolean

Indicates if template values is used for availability

useTempTimeRulesboolean

Indicates if template values is used for time rules

useTempSalaryboolean

Indicates if template values is used for salary related information

useTempWorkTimeboolean

Indicates if template values is used for work time related information

useTempEmploymentRateboolean

Indicates if template values is used for employment rates

useTempNominalDaysPerWeekboolean

Indicates if template values are used for nominal days per week

useTempMonthHoursboolean

Indicates if template values is used for monthly hours

useTempTandAboolean

Indicates if template values is used for time related information

useTemplateBalancePeriodboolean

Indicates if template values is used for balance period

useTempCostsboolean

Indicates if template values is used for social and leave costs

useStdTimeRulesboolean

Indicates if standard time rules shall be used

availabilityArray<AvailabilityTimePeriod>

An array of AvailabilityTimePeriod.

monthlyHoursArray<MonthlyHours>

An array of MonthlyHours.

overtimeMethodsArray<agreementOvertimeMethod>

An array of agreementOvertimeMethod. Used with the new overtime feature.

punchDeviationsArray<punchRounding>

An array of punchRounding.

employmentRatesAddArray<EmploymentRate>

Use this section to add employment rates to current entry

employmentRatesReplaceArray<EmploymentRate>

Use this section to replace current employment rates with specified values

nominalDaysPerWeekAddArray<NominalDayPerWeek>

Use this section to add nominal days per week to current entry

nominalDaysPerWeekReplaceArray<NominalDayPerWeek>

Use this section to replace current nominal days per week with specified values

salariesAddArray<AgreementSalary>

Use this section to add salaries to current entry

salariesReplaceArray<AgreementSalary>

Use this section to replace current salaries with specified values

salaryAdditionsAgeBasedAddArray<SalaryAdditionByYear>

Use this section to add salary additions with specified values

salaryAdditionsAgeBasedReplaceArray<SalaryAdditionByYear>

Use this section to replace current salary additions with specified values

useTemplateAgeBasedSalaryAdditionboolean

Indicates if template values are used for age based salary additions

ageBasedSalaryAdditionCalcModeint
Values
0As of start of month
1As of exact date
2As of next month
salaryAdditionsYearsWorkedBasedAddArray<SalaryAdditionByYear>
salaryAdditionsYearsWorkedBasedReplaceArray<SalaryAdditionByYear>

Use this section to replace current salary additions with specified values

useTemplateYearsWorkedBasedSalaryAdditionboolean

Indicates if template values are used for years worked based salary additions

yearsWorkedBasedSalaryAdditionCalcModeint
Values
0As of start of month
1As of exact date
2As of next month
salaryAdditionsDateBasedAddArray<SalaryAdditionByDate>
salaryAdditionsDateBasedReplaceArray<SalaryAdditionByDate>

Use this section to replace current salary additions with specified values

useTemplateBreakCreationRulesboolean
useStdBreakCreationRulesboolean
breakCalculationRulesArray<BreakCalculationRule>

An array of BreakCalculationRule.

minShiftLenghtsArray<MinShiftLength>
socialCostsArray<SocialCost>
nominalHoursTypeint
Values
0Full time working hours equally distributed across working days of the week (pre-0193 logic)
1Full time working hours custom distributed for each working day of the week
2Full time working hours equally distributed across working days of the week (new logic)
hoursPerDayArray<hoursDay>

Specifies the working hours per day, if nominalHoursType = 1

validationErrorsArray<xsd:string>

Returned in the response only. Array of error strings if the update failed; empty array 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:wsdlUpdateAgreementsV2Response>
    <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:UpdateAgreementV2[1]">
      <item xsi:type="tns:UpdateAgreementV2">
        <id xsi:type="xsd:int">0</id>
        <extAgreementId xsi:type="xsd:string">string</extAgreementId>
        <name xsi:type="xsd:string">string</name>
        <restId xsi:type="xsd:int">0</restId>
        <employeeId xsi:type="xsd:int">0</employeeId>
        <badgeNo xsi:type="xsd:string">string</badgeNo>
        <templateId xsi:type="xsd:int">0</templateId>
        <extTemplateId xsi:type="xsd:string">string</extTemplateId>
        <hourly xsi:type="xsd:boolean">true</hourly>
        <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
        <toDate xsi:type="xsd:date">2024-01-01</toDate>
        <expires xsi:type="xsd:boolean">true</expires>
        <comment xsi:type="xsd:string">string</comment>
        <schedulePeriodType xsi:type="xsd:int">0</schedulePeriodType>
        <schedulePeriodLength xsi:type="xsd:int">0</schedulePeriodLength>
        <schedulePeriodStartDate xsi:type="xsd:date">2024-01-01</schedulePeriodStartDate>
        <fullEmploymentDays xsi:type="xsd:decimal">0</fullEmploymentDays>
        <fullEmploymentDaysPerWeek xsi:type="xsd:int">0</fullEmploymentDaysPerWeek>
        <fullEmploymentHrs xsi:type="xsd:decimal">0</fullEmploymentHrs>
        <excludeSundaysInWorkHours xsi:type="xsd:boolean">true</excludeSundaysInWorkHours>
        <breakRounding xsi:type="xsd:boolean">true</breakRounding>
        <breakIsWorkTime xsi:type="xsd:boolean">true</breakIsWorkTime>
        <dayBreak xsi:type="xsd:string">string</dayBreak>
        <minHrsWeek xsi:type="xsd:decimal">0</minHrsWeek>
        <maxDays xsi:type="xsd:int">0</maxDays>
        <minFreeDays xsi:type="xsd:int">0</minFreeDays>
        <maxHourDay xsi:type="xsd:decimal">0</maxHourDay>
        <maxHourWeek xsi:type="xsd:decimal">0</maxHourWeek>
        <minRest xsi:type="xsd:decimal">0</minRest>
        <minRestWeek xsi:type="xsd:decimal">0</minRestWeek>
        <seqDays xsi:type="xsd:int">0</seqDays>
        <seqMaxDays xsi:type="xsd:int">0</seqMaxDays>
        <seqMaxHrs xsi:type="xsd:decimal">0</seqMaxHrs>
        <weekStart xsi:type="xsd:int">0</weekStart>
        <atDayBreak xsi:type="xsd:boolean">true</atDayBreak>
        <dayBreakRest xsi:type="xsd:string">string</dayBreakRest>
        <minBreak xsi:type="xsd:int">0</minBreak>
        <maxBreak xsi:type="xsd:int">0</maxBreak>
        <weeksAvail xsi:type="xsd:int">0</weeksAvail>
        <schedWeekEnds xsi:type="xsd:boolean">true</schedWeekEnds>
        <minWeekEndYear xsi:type="xsd:int">0</minWeekEndYear>
        <maxTimeWoBreak xsi:type="xsd:decimal">0</maxTimeWoBreak>
        <scheduleLockPeriod xsi:type="xsd:decimal">0</scheduleLockPeriod>
        <scheduleLockPeriodType xsi:type="xsd:int">0</scheduleLockPeriodType>
        <checkAvailability xsi:type="xsd:boolean">true</checkAvailability>
        <punchType xsi:type="xsd:int">0</punchType>
        <appPayOnAbsence xsi:type="xsd:boolean">true</appPayOnAbsence>
        <payOtime xsi:type="xsd:int">0</payOtime>
        <payUT xsi:type="xsd:int">0</payUT>
        <showIgnoreOtime xsi:type="xsd:boolean">true</showIgnoreOtime>
        <showUnspecifiedLeaveInWP xsi:type="xsd:boolean">true</showUnspecifiedLeaveInWP>
        <allowPunchingOnSubshifts xsi:type="xsd:boolean">true</allowPunchingOnSubshifts>
        <genMoretime xsi:type="xsd:boolean">true</genMoretime>
        <overtimeMethod xsi:type="xsd:int">0</overtimeMethod>
        <overtimeWindow xsi:type="xsd:int">0</overtimeWindow>
        <autoPunchOut xsi:type="xsd:boolean">true</autoPunchOut>
        <lateChange xsi:type="xsd:boolean">true</lateChange>
        <lateChangeUT xsi:type="xsd:int">0</lateChangeUT>
        <breakDayrest xsi:type="xsd:boolean">true</breakDayrest>
        <breakDayrestUT xsi:type="xsd:int">0</breakDayrestUT>
        <breakWeekrest xsi:type="xsd:boolean">true</breakWeekrest>
        <breakWeekrestUT xsi:type="xsd:int">0</breakWeekrestUT>
        <timeBank xsi:type="xsd:boolean">true</timeBank>
        <adjustForLeave xsi:type="xsd:boolean">true</adjustForLeave>
        <advancedTimeRules xsi:type="xsd:boolean">true</advancedTimeRules>
        <otCancelsUt xsi:type="xsd:boolean">true</otCancelsUt>
        <allowOverrideOverlapping xsi:type="xsd:boolean">true</allowOverrideOverlapping>
        <useSecondWeekend  xsi:type="xsd:boolean">true</useSecondWeekend >
        <utThreshold xsi:type="xsd:decimal">0</utThreshold>
        <utThresholdType xsi:type="xsd:int">0</utThresholdType>
        <dailyOvertimeHours xsi:type="xsd:decimal">0</dailyOvertimeHours>
        <weeklyOvertimeHours xsi:type="xsd:decimal">0</weeklyOvertimeHours>
        <noCostPeriodStart xsi:type="xsd:string">string</noCostPeriodStart>
        <noCostPeriodEnd xsi:type="xsd:string">string</noCostPeriodEnd>
        <balancePeriodType xsi:type="xsd:int">0</balancePeriodType>
        <balancePeriodLength xsi:type="xsd:decimal">0</balancePeriodLength>
        <balancePeriodHours xsi:type="xsd:decimal">0</balancePeriodHours>
        <balancePeriodStartDate xsi:type="xsd:date">2024-01-01</balancePeriodStartDate>
        <useWorkDayModel xsi:type="xsd:boolean">true</useWorkDayModel>
        <isMainAgreement xsi:type="xsd:boolean">true</isMainAgreement>
        <additionalField1 xsi:type="xsd:string">string</additionalField1>
        <additionalField2 xsi:type="xsd:string">string</additionalField2>
        <additionalField3 xsi:type="xsd:string">string</additionalField3>
        <additionalField4 xsi:type="xsd:string">string</additionalField4>
        <additionalField5 xsi:type="xsd:string">string</additionalField5>
        <useTempAvail xsi:type="xsd:boolean">true</useTempAvail>
        <useTempTimeRules xsi:type="xsd:boolean">true</useTempTimeRules>
        <useTempSalary xsi:type="xsd:boolean">true</useTempSalary>
        <useTempWorkTime xsi:type="xsd:boolean">true</useTempWorkTime>
        <useTempEmploymentRate xsi:type="xsd:boolean">true</useTempEmploymentRate>
        <useTempNominalDaysPerWeek xsi:type="xsd:boolean">true</useTempNominalDaysPerWeek>
        <useTempMonthHours xsi:type="xsd:boolean">true</useTempMonthHours>
        <useTempTandA xsi:type="xsd:boolean">true</useTempTandA>
        <useTemplateBalancePeriod xsi:type="xsd:boolean">true</useTemplateBalancePeriod>
        <useTempCosts xsi:type="xsd:boolean">true</useTempCosts>
        <useStdTimeRules xsi:type="xsd:boolean">true</useStdTimeRules>
        <availability xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AvailabilityTimePeriod[1]">
          <item xsi:type="tns:AvailabilityTimePeriod">
            <weekDay xsi:type="xsd:int">0</weekDay>
            <availfrom xsi:type="xsd:string">string</availfrom>
            <availto xsi:type="xsd:string">string</availto>
            <weekNo xsi:type="xsd:int">0</weekNo>
          </item>
        </availability>
        <monthlyHours xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:MonthlyHours[1]">
          <item xsi:type="tns:MonthlyHours">
            <year xsi:type="xsd:int">0</year>
            <month xsi:type="xsd:int">0</month>
            <hours xsi:type="xsd:decimal">0</hours>
          </item>
        </monthlyHours>
        <overtimeMethods xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:agreementOvertimeMethod[1]">
          <item xsi:type="tns:agreementOvertimeMethod">
            <overtimeMethodId xsi:type="xsd:int">0</overtimeMethodId>
            <order xsi:type="xsd:int">0</order>
          </item>
        </overtimeMethods>
        <punchDeviations xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:punchRounding[1]">
          <item xsi:type="tns:punchRounding">
            <type xsi:type="xsd:int">0</type>
            <punchPart xsi:type="xsd:int">0</punchPart>
            <insideShift xsi:type="xsd:int">0</insideShift>
            <roundingRule xsi:type="xsd:int">0</roundingRule>
            <minutes xsi:type="xsd:decimal">0</minutes>
          </item>
        </punchDeviations>
        <employmentRatesAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EmploymentRate[1]">
          <item xsi:type="tns:EmploymentRate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <rate xsi:type="xsd:decimal">0</rate>
          </item>
        </employmentRatesAdd>
        <employmentRatesReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EmploymentRate[1]">
          <item xsi:type="tns:EmploymentRate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <rate xsi:type="xsd:decimal">0</rate>
          </item>
        </employmentRatesReplace>
        <nominalDaysPerWeekAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:NominalDayPerWeek[1]">
          <item xsi:type="tns:NominalDayPerWeek">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <nominalDaysPerWeek xsi:type="xsd:int">0</nominalDaysPerWeek>
          </item>
        </nominalDaysPerWeekAdd>
        <nominalDaysPerWeekReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:NominalDayPerWeek[1]">
          <item xsi:type="tns:NominalDayPerWeek">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <nominalDaysPerWeek xsi:type="xsd:int">0</nominalDaysPerWeek>
          </item>
        </nominalDaysPerWeekReplace>
        <salariesAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AgreementSalary[1]">
          <item xsi:type="tns:AgreementSalary">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <hourlySalary xsi:type="xsd:decimal">0</hourlySalary>
            <monthlySalary xsi:type="xsd:decimal">0</monthlySalary>
            <monthlyHoursDivisor xsi:type="xsd:decimal">0</monthlyHoursDivisor>
          </item>
        </salariesAdd>
        <salariesReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:AgreementSalary[1]">
          <item xsi:type="tns:AgreementSalary">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <hourlySalary xsi:type="xsd:decimal">0</hourlySalary>
            <monthlySalary xsi:type="xsd:decimal">0</monthlySalary>
            <monthlyHoursDivisor xsi:type="xsd:decimal">0</monthlyHoursDivisor>
          </item>
        </salariesReplace>
        <salaryAdditionsAgeBasedAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsAgeBasedAdd>
        <salaryAdditionsAgeBasedReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsAgeBasedReplace>
        <useTemplateAgeBasedSalaryAddition xsi:type="xsd:boolean">true</useTemplateAgeBasedSalaryAddition>
        <ageBasedSalaryAdditionCalcMode xsi:type="xsd:int">0</ageBasedSalaryAdditionCalcMode>
        <salaryAdditionsYearsWorkedBasedAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsYearsWorkedBasedAdd>
        <salaryAdditionsYearsWorkedBasedReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByYear[1]">
          <item xsi:type="tns:SalaryAdditionByYear">
            <from xsi:type="xsd:decimal">5</from>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsYearsWorkedBasedReplace>
        <useTemplateYearsWorkedBasedSalaryAddition xsi:type="xsd:boolean">true</useTemplateYearsWorkedBasedSalaryAddition>
        <yearsWorkedBasedSalaryAdditionCalcMode xsi:type="xsd:int">0</yearsWorkedBasedSalaryAdditionCalcMode>
        <salaryAdditionsDateBasedAdd xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByDate[1]">
          <item xsi:type="tns:SalaryAdditionByDate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsDateBasedAdd>
        <salaryAdditionsDateBasedReplace xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SalaryAdditionByDate[1]">
          <item xsi:type="tns:SalaryAdditionByDate">
            <fromDate xsi:type="xsd:date">2024-01-01</fromDate>
            <salaryAddition xsi:type="xsd:decimal">100.00</salaryAddition>
          </item>
        </salaryAdditionsDateBasedReplace>
        <useTemplateBreakCreationRules xsi:type="xsd:boolean">true</useTemplateBreakCreationRules>
        <useStdBreakCreationRules xsi:type="xsd:boolean">true</useStdBreakCreationRules>
        <breakCalculationRules xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:BreakCalculationRule[1]">
          <item xsi:type="tns:BreakCalculationRule">
            <weekday xsi:type="xsd:int">0</weekday>
            <hours xsi:type="xsd:decimal">5.2</hours>
            <breakMinutes xsi:type="xsd:int">15</breakMinutes>
            <breakType xsi:type="xsd:int">0</breakType>
            <distribute xsi:type="xsd:int">0</distribute>
            <noOfBreaks xsi:type="xsd:int">1</noOfBreaks>
            <afterHours xsi:type="xsd:decimal">0</afterHours>
          </item>
        </breakCalculationRules>
        <minShiftLenghts xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:MinShiftLength[1]">
          <item xsi:type="tns:MinShiftLength">
            <fromTime xsi:type="xsd:string">string</fromTime>
            <toTime xsi:type="xsd:string">string</toTime>
            <length xsi:type="xsd:decimal">0</length>
          </item>
        </minShiftLenghts>
        <socialCosts xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:SocialCost[1]">
          <item xsi:type="tns:SocialCost">
            <type xsi:type="xsd:int">0</type>
            <fromAge xsi:type="xsd:int">0</fromAge>
            <toAge xsi:type="xsd:int">0</toAge>
            <startOn xsi:type="xsd:int">0</startOn>
            <costPercent xsi:type="xsd:decimal">0</costPercent>
          </item>
        </socialCosts>
        <nominalHoursType xsi:type="xsd:int">0</nominalHoursType>
        <hoursPerDay xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:hoursDay[1]">
          <item xsi:type="tns:hoursDay">
            <day xsi:type="xsd:int">0</day>
            <hours xsi:type="xsd:decimal">0</hours>
          </item>
        </hoursPerDay>
        <validationErrors xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
          <item xsi:type="xsd:string">string</item>
        </validationErrors>
      </item>
    </return>
    </tns:wsdlUpdateAgreementsV2Response>
  </soap:Body>
</soap:Envelope>

Change log

Date Description
2017-10-04 New service
2017-12-06 Added salary additions by date / year
2018-01-12 Added break calculation rules
2018-12-03 Added external Id
2019-10-08 Added useTempNominalDaysPerWeek, nominalDaysPerWeekAdd, nominalDaysPerWeekReplace
2020-03-19 Added example request to documentation
2024-08-19 Added format/example for weekday to AvailabilityTimePeriod
2025-05-08 Nominal hours type and hours per day added