Get startedTry it

Try it

Make your first Transactional API calls without writing code: with the ready-to-run Bruno collection, in Postman, or in SoapUI.

The fastest way to see how the Transactional API behaves is to call it. Pick one client:

ClientBest forSetup
Bruno (recommended)Every operation ready to run, token handled for youDownload the collection, fill in 3 values
PostmanTeams that already use PostmanBuild each request from the operation page
SoapUIGenerating requests straight from the service descriptionImport one WSDL per service

Every call starts with a token: GetToken exchanges a TimeLog user name and password for one. See Authentication.

A ready-to-run collection for Bruno, a free, open-source API client: every operation on these pages, with the request already built, the token handled for you, and a test that tells you whether the call worked.

Download the Transactional API collection

A zip file with the Bruno collection: one folder per service, split into reads and writes.

Install Bruno and open the collection

Download Bruno from usebruno.com and install it; no account is needed. Unzip the download, choose Open Collection and select the unzipped folder.

Fill in the environment

Select the TimeLog environment (top right) and set baseUrl to your TimeLog address, https://app{server-number}.timelog.com/{account}. Then set the secrets username and password of the TimeLog user the integration runs as. Bruno keeps secrets on your machine only.

Get a token

Run 01 Authentication / GetToken. It stores the token, and every other request uses it automatically for the next 12 hours.

Make your first call

Open any request under Reads and run it. The Tests tab shows whether ResponseState is Success; the response shows the data in Return.

What's in the collection:

FolderWhat it contains
01 Authentication (Security V1_2)GetToken (run this first), GetUser, GetTimeRegistrationSettings
02 CRM V1_4 … 09 Transaction V1_0One folder per service, each split into Reads and Writes (changes data)
  • Every request has a Docs tab with what it does and its parameters, and a Tests tab that checks the result.
  • Simple parameters are pre-filled with neutral values (false, 0, page 1, page size 10, an empty GUID). Replace IDs with real ones from your account before running.
  • Object parameters in write requests have every field commented out. Uncomment the fields you need and keep the order shown. Run as-is, a write is a safe dry run: it answers with the validation messages for the required fields.
  • CRM requests are chained: a customer search stores the customer's GUID and ID, so you can go straight on to GetCustomerByGUID and GetContactsByCustomerPaged.
  • InsertCustomer with external key (CRM writes) shows how to link a TimeLog record to its ID in another system.

Postman

In Postman you build each request yourself from the operation page. Every call is a POST with an XML body.

Get a token

Create a POST request to https://app{server-number}.timelog.com/{account}/WebServices/Security/V1_2/SecurityServiceSecure.svc. Add the headers Content-Type: text/xml; charset=utf-8 and SOAPAction: "GetTokenRequest". In Body, choose raw and XML, paste the request from GetToken, fill in the user name and password, and click Send. Note the Initials, Expires and Hash in the response.

Build the operation's request

Create a POST request to the operation's Endpoint, with Content-Type: text/xml; charset=utf-8 and the operation's SOAPAction. Both are at the top of each operation page.

Paste the body and the token

In Body, choose raw and XML, paste the Request example from the operation page, and replace the placeholders. Put the three token values in exactly as GetToken returned them.

Send and check the result

Click Send. A failed call still returns HTTP 200: check ResponseState in the response, then ErrorCode and Messages.

Copy the token's namespace from the operation page, not from the GetToken response. Services expect the token in different namespaces: Invoicing 1.1, for example, expects http://www.timelog.com/api/tlp/v1_3, while GetToken returns its values in …/v1_2. A token in the wrong namespace is rejected with a SOAP fault.
Store the base URL and the three token values as Postman variables, so you update them in one place when the token expires after 12 hours.

SoapUI

SoapUI builds every request of a service from its service description (WSDL). Each service version has its own WSDL.

Create a SOAP project

In SoapUI, choose SOAP in the toolbar and enter the service's endpoint followed by ?wsdl, for example https://app{server-number}.timelog.com/{account}/WebServices/Security/V1_2/SecurityServiceSecure.svc?wsdl. Click OK: SoapUI creates the operations of that service.

Create a request

Right-click an operation and choose New Request. SoapUI generates the request body.

Fill in and send

Fill in the parameters, including the token from GetToken, and click the run button. The answer appears in the Response pane.

Next

Every error code and SOAP fault is explained in Responses and errors.

Writes change real data. Try write operations on a test or demo account first, and use a dedicated TimeLog user for your integration.