Salary settingsGetAllSalaryCodes

GetAllSalaryCodes

Salary service 1.1: Returns every salary code of the account with its salary-account posting rules.

ServiceSalary 1.1
EndpointPOST https://app{server-number}.timelog.com/{account}/WebServices/Salary/V1_1/SalaryServiceSecure.svc
SOAPActionhttp://www.timelog.com/api/tlp/v1_1/SalaryService/GetAllSalaryCodes
Content-Typetext/xml; charset=utf-8
AuthenticationA token from GetToken
Changes dataNo
Safe to retryYes

How it works

The account's salary codes: the codes that time is posted under on the salary accounts - the system codes for normal working time and project time and the account's supplement / paid-out codes - with code, name, salary account, posting factor and sign, time-tracking format and specification type. The salaryCodeStatus parameter is IGNORED on every call returns active AND inactive codes - filter on IsActive yourself. Configuration only: factors are multipliers, not money; no employee data.

Parameters

Each parameter has one label: Required, Conditional (required depending on other values) or Optional. Send them in the order shown.

salaryCodeStatusstring
Required

Meant to select active, inactive or all codes. IGNORED on V1_1 - every value returns all codes. Send 'All' so the request says what the response does. Allowed values: All, Active, Inactive.

tokenSecurityToken
Required

The token from GetToken: Initials, Expires and Hash, sent back unchanged.

Request

POST /{account}/WebServices/Salary/V1_1/SalaryServiceSecure.svc HTTP/1.1
Host: app{server-number}.timelog.com
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.timelog.com/api/tlp/v1_1/SalaryService/GetAllSalaryCodes"

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:salary="http://www.timelog.com/api/tlp/v1_1"
                  xmlns:tok="http://www.timelog.com/api/tlp/v1_3">
  <soapenv:Body>
    <salary:GetAllSalaryCodes>
      <salary:salaryCodeStatus>{salaryCodeStatus: All | Active | Inactive}</salary:salaryCodeStatus>
      <salary:token>
        <tok:Initials>{Initials from GetToken}</tok:Initials>
        <tok:Expires>{Expires from GetToken, unchanged}</tok:Expires>
        <tok:Hash>{Hash from GetToken}</tok:Hash>
      </salary:token>
    </salary:GetAllSalaryCodes>
  </soapenv:Body>
</soapenv:Envelope>
Replace every {…} placeholder with your own value.

Response

The call returns the standard response envelope. Check ResponseState first: a failed call still returns HTTP 200.

ResponseStatestring
Required

Success, Invalid or Error.

ErrorCodeinteger

0 on success, otherwise the error code. See Errors.

ReturnSalary[]

Response<Salary>: every salary code, unpaged. No 'Successfully called' message is added; ResponseState Success. ResponseState Success with an empty Return when the account has no salary codes.

Example response

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <GetAllSalaryCodesResponse xmlns="http://www.timelog.com/api/tlp/v1_1">
      <GetAllSalaryCodesResult xmlns:a="http://api.timelog.com"
                               xmlns:b="http://api.timelog.com/services/salary/1_1"
                               xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <a:Return>
          <b:Salary>
            <b:Code>Example</b:Code>
            <b:Name>Example </b:Name>
            <b:Description>Example</b:Description>
            <b:SalaryCodeSystemType>NormalWorkingTime</b:SalaryCodeSystemType>
            <b:SalaryAccountFactor>0</b:SalaryAccountFactor>
            <b:FlexPositiveFactor>0</b:FlexPositiveFactor>
            <b:SalaryAccountFactorEffect>Substract</b:SalaryAccountFactorEffect>
            <b:IsActive>true</b:IsActive>
            <b:SalaryCodeID>1001</b:SalaryCodeID>
            <b:IsSystemSalaryCode>false</b:IsSystemSalaryCode>
            <b:SalaryCodeGuid>3f2504e0-4f89-41d3-9a0c-305000000001</b:SalaryCodeGuid>
            <b:SalaryAccountID>1001</b:SalaryAccountID>
            <b:TimeTrackingFormat>Hours</b:TimeTrackingFormat>
            <b:SalarySpecificationType>SalaryTime</b:SalarySpecificationType>
          </b:Salary>
        </a:Return>
        <a:ReturnTypeDescription>Salary</a:ReturnTypeDescription>
        <a:Request>…</a:Request>
        <a:ResponseState>Success</a:ResponseState>
        <a:Messages>
          <a:APIMessage>
            <a:Message>Duration of call was 0,0421337 sec.</a:Message>
            <a:Severity>Message</a:Severity>
            <a:ErrorCode>0</a:ErrorCode>
          </a:APIMessage>
        </a:Messages>
        <a:ErrorCode>0</a:ErrorCode>
        <a:IsReturnPaged>false</a:IsReturnPaged>
        <a:TotalPageCount>0</a:TotalPageCount>
      </GetAllSalaryCodesResult>
    </GetAllSalaryCodesResponse>
  </s:Body>
</s:Envelope>
Illustrative example: built from the service description (WSDL) in the same format as a real response, with made-up values. The Request block is shortened.

Errors

All errors come back with HTTP 200: check ResponseState, ErrorCode and Messages. The errors every operation can return (expired or invalid token, API not enabled, HTTPS required, general errors) are listed once in Responses and errors.

Errors specific to this operation:

ResponseStateErrorCodeMessageWhat it meansWhat to do
Invalid40004V1_{n} is deprecated. Please upgrade to V1_{m} or later.Please upgrade to V1_1 or later.').Call the same operation on the current version.