The Tic-Tac Mobile API

Have a look at the documentation, retrieve the API code from us and get started. (Please see under General, Authentication)

Feel free to give us feed back and suggestions.

Feb 11, 2025

Updating projects with PUT. Added fields for activities POST and PUT

Nov 15, 2023

Adding resource Customers

Feb 22, 2023

Adding projectNumber parameter to /project

July 8, 2022

Corrected parameter documentation for timeSumByProject and timeSumByCoworker

April 12, 2022

Adding parameters to /project and /timeSumByProject

December 14, 2020

Adding resource Activities with GET, POST, PUT

December 2, 2020

Adding two methods MyProjectList and MyActivitylist to get projects and activities reportable to for a given coworker. Version 2 of Entries with more options, a new method and different return data structure for XML.

January 28, 2020

Adding two methods the emulate two reports in Tic-Tac, TimeSumByCoworker and TimeSumByProject. They both return JSON or XML alternatively.

April 24, 2018

Use the Playground feature - to try out API calls and inspect the data retrieved. Great for getting to know the API!

December 20, 2017

A new resource, Utilizations, was added. Now you can retrieve data representing your company employee utilization for given period of time.

November 25, 2017

Added a new resource, Project Overviews, rendering aggregated project data over a time period.

November 10, 2017

Introducing new edition of our API.

Our goal has been to improve in three areas:

  1. Use REST standard naming conventions, nouns, for calls. And HTTP verbs like POST and GET to add and retrieve data
  2. A safe and proven authentication method with JWT (JSON Web Token)
  3. Allow both XML and JSON data formats

Authentication

Authenticate your calls with the API code

On demand you will receive an API code from us (apply for an API code by mail to administrator@tictacmobile.com).

The API-code will identify you personally and your company and your access rights.

The code is a long string with encrypted data.

The code must kept safe and confidential.

Send the API-code in the Authorization header of all calls to the API, using Bearer authentication scheme.

						-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
					

Requests

The API follows REST conventions.

Use GET method to read data and POST method to write or update (where applicable and allowed).

Data can in most cases be send and returned as JSON or XML, check a resource description for supported formats.

Specify the reply format you want in the Accept header:

						
-H "Accept: application/json"
 	or
-H "Accept: application/xml"
            
					

To specify the format you are using for writing data (POST method only), use the Content-type header:

						
-H "Content-Type: application/json"
   or
-H "Content-Type: application/xml"
					

Responses

The API returns responses with appropriate HTTP status codes.

Successful responses are served with a 200-series HTTP code, error responses are indicated with a non-200-series HTTP code.

Code Text Description
200 OK The request has succeeded and the response contains payload in selected format.
201 Created The request has succeeded and a new resource has been created, the response body contains it's description.
204 No Content The request has succeeded but is no data to return.
304 Not Modified The request with POST method was not successful, there was no new data to return.
400 Bad Request The request was invalid. The response has an accompanying error message.
401 Unauthorized The request has incorrect authentication credentials. An error message in the response will explain further.
403 Forbidden The client is not permitted access to the resource.
404 Not Found The requested resource can not be found.
405 Method Not Allowed The request method has been disabled and can not be used.
406 Not Acceptable Accept header in the requerst must be either application/xml or application/json
415 Unsupported Media Type The media format of the requested data is not supported by the selected resource endpoint.
429 Too Many Requests The user has sent too many requests in a given amount of time (see "Limitations").
503 Service Unavailable The server is not ready to handle the request.

Limitations

The number of calls is limited to 500 per 24 hours.

Additional call will produce an error code and no data.

All calls must be secured with HTTPS.


Errors

Error responses are served with a non-200-series HTTP code.

An error response has an accompanying error message.

For instance, on an error call (tictacmobile.com/api/rest/v1/users/anderslm)


HTTP/1.1 404 Not Found. No user with id anderslm


Hello

Just a simple call to try out the connection to the API.

https://www.tictacmobile.com/api/rest/v1/hello
Method GET: Returns a salutation.
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.

Request sample


curl 
-X "GET" "tictacmobile.com/api/rest/v1/hello/" 
-H "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

Response


{ "HelloFromTicTacAPI": "Hello! from version 2020-12-02 started at Wed Dec 02 13:18:01 CET 2020" }

Users

GET: Returns a list of all users, sorted by name.

POST: Creates a user and returns a password.

PUT: Updates a user

https://www.tictacmobile.com/api/rest/v1/users/{userid}
GET: Returns a specific user. The "userName" should be used as path parameter (see samples).
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Supported content-type formats
XML, JSON. Format should be specified in Content-type header as application/xml or application/json.
Query parameters
none

Request sample, to get a list of all users.


curl 
-X "GET" "tictacmobile.com/api/rest/v1/users/" 
-H "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

					

Response

						
[
    {
        "userName": "andersalm",
        "longUserName": "andersalm",
        "firstName": "Anders",
        "lastName": "Alm",
        "emailAdress": "info@zetera.se",
        "employeeNumber": "1",
        "nationalIDNumber": "197203210645",
        "userType": "CPAD",
        "corpid": "556423-2121 ",
        "partTime": 0,
        "isActive": true,
        "locale": "sv_SE",
        "workgroup": "Ledningsgruppen",
        "costcenter": "Development",
        "department": "Avd 2",
        "team": "Team Beta",
        "hourcost": 750.0,
        "flexsaldo": 200.0,
        "flexsaldoDate": "2019-08-01",
        "mileCompensation": 0.0,
        "startDate": null,
        "endDate": null,
        "priceListId": null,
        "agendaListNumber": 0
    },
    {
        "userName": "annatictacse",
        "longUserName": "anna@tictac.se",
        "firstName": "Anna",
        "lastName": "Andersson",
        "emailAdress": "anna@tictac.se",
        "employeeNumber": "1298",
        "nationalIDNumber": "196401012281",
        "userType": "CADM",
        "corpid": "556423-2121 ",
        "partTime": 0,
        "isActive": true,
        "locale": "sv_SE",
        "workgroup": "Konsulter",
        "costcenter": "Development",
        "department": "Avd 1",
        "team": "Team Beta",
        "hourcost": 250.0,
        "flexsaldo": 10.0,
        "flexsaldoDate": "2019-10-31",
        "mileCompensation": 0.0,
        "startDate": null,
        "endDate": null,
        "priceListId": "1378574519816",
        "agendaListNumber": 0
    }]

Request sample, to get one specific user

	
curl
-X "GET" "tictacmobile.com/api/rest/v1/users/johnnyboy" 
-H "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

Response

	
{
    "userName": "johnnyboy",
    "longUserName": "johnnyboy",
    "firstName": "John",
    "lastName": "Smith",
    "emailAdress": "johnnyboy@twentyonepilots.org",
    "employeeNumber": "",
    "nationalIDNumber": "197701017777",
    "userType": "CUSR",
    "corpid": "556423-2121 ",
    "partTime": 0,
    "isActive": true,
    "locale": "sv_SE",
    "workgroup": "",
    "costcenter": "",
    "department": "",
    "team": "",
    "hourcost": 0.0,
    "flexsaldo": 0.0,
    "flexsaldoDate": null,
    "mileCompensation": 0.0,
    "startDate": null,
    "endDate": null,
    "priceListId": null,
    "agendaListNumber": 0
}

Adding a user, POST

	
curl -v 
-X "POST" "tictacmobile.com/api/rest/v1/users" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d "{\"firstName\":\"John\", \"lastName\":\"Smith\", \"userName\":\"johnnyboy\", \"emailAdress\":\"johnnyboy@twentyonepilots.org\",\"phoneNumber\":\"07007070707\", \"nationalIDNumber\":\"197701017777\"}"

Example with posting XML:

<?xml version="1.0" encoding="UTF-8" ?>
<userEntry>
	<firstName>John</firstName>
	<lastName>Smith</lastName>
	<userName>johnnyboy</userName>
	<emailAdress>johnnyboy@twentyonepilots.org</emailAdress>
	<phoneNumber>07007070707</phoneNumber>
	<nationalIDNumber>197701017777</nationalIDNumber>
</userEntry>

Response


{"userPassword":"johnnyboy"}

Updating a user, PUT

You only need to supply the fields you want to change.


curl -v 
-X "PUT" "tictacmobile.com/api/rest/v1/users/johnnyboy" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d "{\"firstName\":\"John\", \"lastName\":\"Smith\", \"userName\":\"johnnyboy\", \"emailAdress\":\"johnnyboy@twenty.com\",\"partTime\":\"80\", \"team\":\"Glady's gang\"}"

Example with posting XML:

<?xml version="1.0" encoding="UTF-8" ?>
<userEntry>
	<firstName>John</firstName>
	<lastName>Smith</lastName>
	<userName>johnnyboy</userName>
	<emailAdress>johnnyboy@twentyonepilots.org</emailAdress>
	<phoneNumber>07007070707</phoneNumber>
	<nationalIDNumber>197701017777</nationalIDNumber>
</userEntry>

	

Projects

https://www.tictacmobile.com/api/rest/v1/projects

GET: Returns a list of all projects, sorted by name.

POST: Creates a project and, optionally, activities, returns a created project id.

PUT: Updates (partially a project.

https://www.tictacmobile.com/api/rest/v1/projects/{projectid}
GET: Returns a specific project.
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Supported content-type formats
XML, JSON. Format should be specified in Content-type header as application/xml or application/json.
Query parameters (will be ignored in POST request)
number optional Positive integer, up to 10000. For max number of retrieved projects most recently changed.
projectNumber optional Return project with given project number
vatnumber optional Return projects belonging to a customer with a given VAT-number or national registration number. Example: vatnumber=SE556322545501 or vatnumber=556322-5455
includeBudget optional Boolean, to include project budget in response.
includeMembers optional Boolean, to include project members in response.

As of november 2023 the following fields are added:

hasCustomerEntry, postalcode, city, country, glnNumber, orgNumber, invoiceDelivery.

hasCustomerEntry tells if there is an entry in the customer registry for the given customerNumber.

The customer info will be retrieved in the project object, whether the source is the project or the customer register.


Request sample


curl
-X "GET" "tictacmobile.com/api/rest/v1/projects"
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

Get the n projects most recently changed
-X "GET" "tictacmobile.com/api/rest/v1/projects?number=n" 

Get the project with given project number
-X "GET" "tictacmobile.com/api/rest/v1/projects?projectNumber=n" 

Get the projects including the project budget
-X "GET" "tictacmobile.com/api/rest/v1/projects?includeBudget=true"

Get the projects including the project members
-X "GET" "tictacmobile.com/api/rest/v1/projects?includeMembers=true"

Response

	
<?xml version="1.0" encoding="UTF-8" ?>
<TicTacProjects>
	<TicTacProject>
		<name>ABC-analys Hedgehog</name>
		<projid>1455109526722</projid>
		<description>Analys av kostnader hos Hedgehog för lönsamhetsberäkning enligt ABC-metoden.</description>
		<internalDescription>Glöm inte att tidrapportera senast varje fredag för detta projekt. Ring Per om du har någraa frågor.</internalDescription>
		<isActive>true</isActive>
		<projectLead>PerAdm</projectLead>
		<ourAccount>Olles grupp</ourAccount>
		<ourCategory>Löpande räkning</ourCategory>
		<ourResultArea>Sverige</ourResultArea>
		<hourRate>990</hourRate>
		<mileRate>35</mileRate>
		<ourReference>Anna Andersson</ourReference>
		<invoiceCorpname>Hedgehog AB</invoiceCorpname>
		<invoiceCustno>54556</invoiceCustno>
		<invoiceRefname>Johan Carlsson</invoiceRefname>
		<invoiceEmail>info@hedgehog.se</invoiceEmail>
		<invoicePhone>08-660 08 70</invoicePhone>
		<invoiceAdrrow1>Järngatan 5</invoiceAdrrow1>
		<invoiceAdrrow2>234 56</invoiceAdrrow2>
		<invoiceAdrrow3>Vässterås</invoiceAdrrow3>
		<invoiceAdrrow4></invoiceAdrrow4>
		<invoiceAdrrow5></invoiceAdrrow5>
		<invoicePaydays>20</invoicePaydays>
		<invoiceAltBankAccount></invoiceAltBankAccount>
		<invoiceAltPayCondition></invoiceAltPayCondition>
		<invoiceCustomerVATno></invoiceCustomerVATno>
		<accountNumber></accountNumber>
		<startDate>2016-03-01</startDate>
		<isOtherCurrActive>true</isOtherCurrActive>
		<otherCurrency>SEK</otherCurrency>
		<conversionRate>1</conversionRate>
		<otherCurrHourRate>990</otherCurrHourRate>
		<otherCurrMileRate>35</otherCurrMileRate>
		<invoiceLang>en_GB</invoiceLang>
		<billing>HOUR_RATE</billing>
		<priceMode>PRICE_IN_PROJECT</priceMode>
		<priceListId></priceListId>
		<vatStatus>1</vatStatus>
		<created>2016-02-10 14:05</created>
		<changed>2022-09-06 13:18</changed>
	</TicTacProject>	
	<TicTacProject>
		<name>Aduro Intranet</name>
		<projid>1137768437234</projid>
		<description>En ny funtionalitet i interna webben för prissttning av deras tjänster.</description>
		<internalDescription>Motpart: Volvo AB, 55665577-6464</internalDescription>
		<isActive>true</isActive>
		<projectLead>kjelleson</projectLead>

		... 
		
		<priceListId></priceListId>
		<vatStatus>1</vatStatus>
		<fixedPrice>1800000</fixedPrice>
		<created>2006-01-20 15:47</created>
		<changed>2022-08-18 11:27</changed>
		<Activities>
			<Activity>
				<name>Art direction</name>
				<actid>1259853648654</actid>
				<type>WORKHOURS</type>
				<description>Form, layout, skisser</description>
				<hourRate>1200</hourRate>
				<priceMode>PRICE_IN_PROJECT</priceMode>
				<priceListId></priceListId>
				<accountNumber></accountNumber>
				<isActive>true</isActive>
			</Activity>
			<Activity>
				<name>Implementation</name>
				<actid>1137768502203</actid>
				<type>WORKHOURS</type>
				<description>Design och kodning av systemet</description>
				<hourRate>900</hourRate>
				<priceMode>PRICE_IN_PROJECT</priceMode>
				<priceListId></priceListId>
				<accountNumber></accountNumber>
				<isActive>true</isActive>
			</Activity>
			<Activity>
				<name>Intervju och analys</name>
				<actid>1165686036718</actid>
				<type>WORKHOURS</type>
				<description>Kartläggning av verksamheten</description>
				<hourRate>740</hourRate>
				<priceMode>PRICE_IN_PROJECT</priceMode>
				<priceListId></priceListId>
				<accountNumber></accountNumber>
				<isActive>true</isActive>
			</Activity>
		</Activities>
	</TicTacProject>
</TicTacProjects>


Creating a project, POST


curl -v 
-X "POST" "tictacmobile.com/api/rest/v1/projects" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d "{\"name\":\"Twenty Seconds to Mars\", \"customer\":\"SpaceY\", \"description\":\"Mars-focused mission\", \"hourRate\":\"900\",\"activities\":[{\"name\":\"Planning\",\"hourRate\":\"800\"},{\"name\":\"PR\",\"hourRate\":\"750\"}]}"

Example with posting XML:

<?xml version="1.0" encoding="UTF-8" ?>
<project>
	<name>Twenty Seconds to Mars</name>
	<customer>SpaceY</customer>
	<description>Mars-focused mission</description>
	<hourRate>900</hourRate>
		<activities>
			<name>Planning</name>
			<hourRate>800</hourRate>
		</activities>
		<activities>
			<name>PR</name>
			<hourRate>750</hourRate>
		</activities>
</project>
            
					

Response

	
{"projectId":"1551796845913"}

Updating a project, PUT


curl -v 
-X "PUT" "tictacmobile.com/api/rest/v1/projects/1224255233" 
-d [json below ]

{
    "name": "Green API-project",
    "description": "Form, layout, skrot, skisser, skratt",
    "isActive":true,
    "hourRate": 999,
    "otherCurrHourRate": 0,
    "priceMode": "PRICELIST",
    "priceListId": "1480940462799"
}
            
					

Response

	
"Project updated"


Activities

https://www.tictacmobile.com/api/rest/v1/activities
GET, POST, PUT
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Supported content-type formats
XML, JSON. Format should be specified in Content-type header as application/xml or application/json.

Request sample

	
curl
-X "GET" "tictacmobile.com/api/rest/v1/activities?projectId=3265353621"
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

Response


Note on priceMode:
  PRICE_IN_PROJECT = 0;		// Price is entered in the project or activity
  PRICELIST = 1;			// refers to the Time Price List
  PER_USER_IN_PRICELIST = 2;	// the coworkers hour rate refers to the Time Price List
{
    "activities": [
        {
            "name": "Administration",
            "actid": "1607954983993",
            "description": "Form, layout",
            "hourRate": 0.0,
            "otherCurrHourRate": 0.0,
            "accountNumber": "3010",
            "isActive": true,
            "type": "WORKHOURS",
            "priceMode": 0,
            "priceListId": ""
        },
        {
            "name": "Development",
            "actid": "1607955713079",
            "description": "Diverse",
            "hourRate": 0.0,
            "otherCurrHourRate": 0.0,
            "accountNumber": "3010",
            "isActive": true,
            "type": "WORKHOURS",
            "priceMode": 0,
            "priceListId": ""
        }
  

Creating an activity, POST


curl -v 
-X "POST" "tictacmobile.com/api/rest/v1/activities" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d [json below ]

{
    "projectId" : "1105870432562",
    "name": "Berits Gyrra activity",
    "description": "Form, layout",
    "hourRate": 900.0,
    "otherCurrHourRate": 99.0,
    "accountNumber": "3010",
    "isActive": true,
    "type": "OVERTIME",
    "priceMode": "PRICELIST",
    "priceListId": "1480940462799"
 
}

					

Response


{"activityId":"1551796845913"}

					

Updating an activity, PUT


curl -v 
-X "PUT" "tictacmobile.com/api/rest/v1/activities/1551796845913" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d [json below ]

{

    "name": "Berits Invention",
    "description": "Form, layout",
    "hourRate": 900.0,
    "otherCurrHourRate": 99.0,
    "accountNumber": "3010",
    "isActive": true,
    "type": "WORKHOURS",
    "priceMode": "PRICEINPROJECT"
 
}

					

Response


{"activityId":"1551796845913"}

					

Customers

https://www.tictacmobile.com/api/rest/v1/customers

GET: Returns a list of all customers, sorted by name.

https://www.tictacmobile.com/api/rest/v1/customers/{customerNumber}
GET: Returns a specific customer.
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.

My projects

Get a list of projects that a coworker is allowed to report to, with project name and project id

https://www.tictacmobile.com/api/rest/v1/myprojectlist
Method: GET only
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.

Request sample


curl 
-X "GET" "tictacmobile.com/api/rest/v1/myprojectlist?userId=LisaAndersson" 
-H "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

					

Response

						
			[  {
		        "name": "ABC Hedgehog",
		        "id": "1547727544253"
		    },
		    {
		        "name": "Aduro Intranet",
		        "id": "1137768437234"
		    },
		    {
		        "name": "Analys fas 3",
		        "id": "1597311703693"
		    } ]
		    
					

My Activities

Get a list of activities for a project that a coworker is allowed to report to, with activity name and activity id

https://www.tictacmobile.com/api/rest/v1/myactivitylist
Method: GET only
Supported formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.

Request sample

		
curl 
-X "GET" "tictacmobile.com/api/rest/v1/myactivitylist/?userId=LisaAndersson&projectId=17427347843" 
-H "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"

					

Response

						
			[ {
		        "name": "Implementation",
		        "id": "1547727544253"
		    },
		    {
		        "name": "Analysis",
		        "id": "1137768437234"
		    },
		    {
		        "name": "Report writing",
		        "id": "1597311703693"
		    } ]
					

Entries V1

Version 1 of Entries. Kept for backwards compatibility. Note .../v1/.. in uri below
https://www.tictacmobile.com/api/rest/v1/entries

GET: Returns a list of all entries (hours, expenses, mileage, allowances, sales).

POST: Creates a time entry and returns entry id.

https://www.tictacmobile.com/api/rest/v1/entries/{projectid}
GET: Returns a list of all entries for project specified by id.
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Supported content-type formats
XML, JSON. Format should be specified in Content-type header as application/xml or application/json.
Query parameters (will be ignored in POST request)
startdate mandatory Date in format YYYY-MM-DD, from this date entries will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date entries will be retrieved.
daysChangedWithin optional Positive integer, up to 90. Only retrieve entries created or changed within [daysChangedWithin] days from today.
timeOnly optional Boolean, to return time entries only in response.

Read entries, GET

						
curl 
-X "GET" "tictacmobile.com/api/rest/v1/entries?startdate=2022-09-03&enddate=2022-09-06"  
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"    

Get entries for specific project
-X "GET" "tictacmobile.com/api/rest/v1/entries/1137768437234?startdate=2022-09-03&enddate=2022-09-06" 

Get the entries created or changed within x days
-X "GET" "tictacmobile.com/api/rest/v1/entries?startdate=2022-09-03&enddate=2022-09-06&daysChangedWithinStr=60"

Get the time entries only 
-X "GET" "tictacmobile.com/api/rest/v1/entries?startdate=2022-09-03&enddate=2022-09-06&timeOnly=true"					
            
					

Response, JSON

						
			
{
    "ticTacRows": [
        {
            "type": "TicTacTime",
            "userid": "fiamia",
            "rowid": "1604592475583",
            "projectname": "ElectroSound/01 - Projektarbete",
            "projid": "1567771889595",
            "actid": "1567771980580",
            "date": "2020-11-03",
            "spec": "Mera",
            "hours": "1.0",
            "username": "Fia Svartenbrant",
            "attested": true,
            "invoiced": true
        },
        {
            "type": "TicTacTime",
            "userid": "fiamia",
            "rowid": "1604592252254",
            "projectname": "ElectroSound/02 - Analys",
            "projid": "1567771889595",
            "actid": "1567771990799",
            "date": "2020-11-03",
            "spec": "rerer",
            "hours": "0.5",
            "username": "Fia Svartenbrant",
            "attested": true,
            "invoiced": true
        },
        {
            "type": "TicTacCost",
            "userid": "fiamia",
            "rowid": "1604491998604",
            "projectname": "ElectroSound/01 - Projektarbete",
            "projid": "1567771889595",
            "actid": "1567771980580",
            "date": "2020-11-04",
            "spec": "Utlägg [892]454",
            "costvatexcl": "44.0",
            "costvatincl": "55.0",
            "username": "Fia Svartenbrant",
            "attested": true,
            "invoiced": true
        }
       }

					

Response, XML

						

<?xml version="1.0" encoding="UTF-8" ?>
<TicTacRows>
	<TicTacSale>
			<date>2022-01-01</date>
			<rowid>1489660871091</rowid>
			<username>Per Andersson</username>
			<userid>PerAdm</userid>
			<projectname>Film till webbsidan/Analys</projectname>
			<projid>1447077260817</projid>
			<actid>1447077927832</actid>
			<spec>NordicInk AB fakturanr 202201 2022-01-18</spec>
			<amount>1.0</amount>
			<attested>false</attested>
			<invoiced>false</invoiced>
	</TicTacSale>
	<TicTacTime>
			<rowid>1483534828305</rowid>
			<username>Anna Andersson</username>
			<userid>annatictacse</userid>
			<projectname>ABC-analys Hedgehog/Redovisning</projectname>
			<projid>1455109526722</projid>
			<actid>1455109932972</actid>
			<spec></spec>
			<hours>8.0</hours>
			<attested>true</attested>
			<invoiced>true</invoiced>
	</TicTacTime>
	<TicTacTime>
			<date>2022-01-02</date>
			<rowid>1483534736117</rowid>
			<username>Per Andersson</username>
			<userid>PerAdm</userid>
			<projectname>ABC-analys Hedgehog/Tillägg</projectname>
			<projid>1455109526722</projid>
			<actid>1482332413454</actid>
			<spec>Startmöte inför nya årett</spec>
			<hours>3.0</hours>
			<attested>true</attested>
			<invoiced>true</invoiced>
	</TicTacTime>
</TicTacRows>

					

Add an entry, POST

						curl -v 
-X "POST" "tictacmobile.com/api/rest/v1/entries" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d "{\"targetUserId\":\"PerAdm\", \"projectName\":\"ABC-analys Hedgehog\", \"activityName\":\"Analys\", \"spec\":\"Skriver en rad\",\"source\":\"abc\", \"date\":\"2022-10-02\", \"hours\":\"2.5\"}"

Example with posting XML:

<?xml version="1.0" encoding="UTF-8" ?>
<timeEntry>
	<targetUserId>PerAdm</targetUserId>
	<projectName>Mitt nya</projectName>
	<activityName></activityName>
	<spec>Möte med projektgruppen</spec>
	<source></source>
	<date>2022-10-02</date>
	<hours>2</hours>
</timeEntry>

					

Response

						{"createditemid":"1510677103458"}
					

Entries V2

Version 2 of Entries. With a few more options. Note .../v2/.. in uri below
https://www.tictacmobile.com/api/rest/v2/entries

GET: Returns a list of all entries (hours, expenses, mileage, allowances, sales).

POST: Creates a time entry and returns entry id.

DELETE: Deletes a time entry.

https://www.tictacmobile.com/api/rest/v2/entries/{projectid}
GET: Returns a list of all entries for project specified by id.
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Supported content-type formats
XML, JSON. Format should be specified in Content-type header as application/xml or application/json.
Query parameters (will be ignored in POST request)
startdate mandatory Date in format YYYY-MM-DD, from this date entries will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date entries will be retrieved.
projectId optional Id of project for getting entries for this project only
userId optional Id of coworker for getting entries for this coworker only
daysChangedWithin optional Positive integer, up to 90. Only retrieve entries created or changed within [daysChangedWithin] days from today.
timeOnly optional Boolean, to return time entries only in response.

Read entries, GET

						
curl 
-X "GET" "tictacmobile.com/api/rest/v2/entries?startdate=2022-09-03&enddate=2022-09-06"  
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"    

Get entries for specific project
-X "GET" "tictacmobile.com/api/rest/v2/entries?projectId=1137768437234?startdate=2022-09-03&enddate=2022-09-06" 

Get the entries created or changed within x days
-X "GET" "tictacmobile.com/api/rest/v2/entries?startdate=2022-09-03&enddate=2022-09-06&daysChangedWithinStr=60"

Get the time entries only 
-X "GET" "tictacmobile.com/api/rest/v2/entries?startdate=2022-09-03&enddate=2022-09-06&timeOnly=true"					
            
					

Response, JSON

						
			
{
    "ticTacRows": [
        {
            "type": "TicTacTime",
            "userid": "fiamia",
            "rowid": "1604592475583",
            "projectname": "ElectroSound/01 - Projektarbete",
            "projid": "1567771889595",
            "actid": "1567771980580",
            "date": "2020-11-03",
            "spec": "Mera",
            "hours": "1.0",
            "username": "Fia Svartenbrant",
            "attested": true,
            "invoiced": true
        },
        {
            "type": "TicTacTime",
            "userid": "fiamia",
            "rowid": "1604592252254",
            "projectname": "ElectroSound/02 - Analys",
            "projid": "1567771889595",
            "actid": "1567771990799",
            "date": "2020-11-03",
            "spec": "rerer",
            "hours": "0.5",
            "username": "Fia Svartenbrant",
            "attested": true,
            "invoiced": true
        },
        {
            "type": "TicTacCost",
            "userid": "fiamia",
            "rowid": "1604491998604",
            "projectname": "ElectroSound/01 - Projektarbete",
            "projid": "1567771889595",
            "actid": "1567771980580",
            "date": "2020-11-04",
            "spec": "Utlägg [892]454",
            "costvatexcl": "44.0",
            "costvatincl": "55.0",
            "username": "Fia Svartenbrant",
            "attested": true,
            "invoiced": true
        }
       }

					

Response, XML

Note that this format differs from version 1

						

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workItemModel>
    <ticTacRows>
        <type>TicTacTime</type>
        <userid>PerAdm</userid>
        <rowid>1605175001865</rowid>
        <projectname>Aduro Intranet/Testning</projectname>
        <projid>1137768437234</projid>
        <actid>1422952089527</actid>
        <date>2020-11-10</date>
        <spec></spec>
        <hours>7.0</hours>
        <username>Per Andersson</username>
        <attested>true</attested>
        <invoiced>true</invoiced>
    </ticTacRows>
    <ticTacRows>
        <type>TicTacTime</type>
        <userid>PerAdm</userid>
        <rowid>1605175003698</rowid>
        <projectname>Aduro Intranet/Testning</projectname>
        <projid>1137768437234</projid>
        <actid>1422952089527</actid>
        <date>2020-11-11</date>
        <spec></spec>
        <hours>5.5</hours>
        <username>Per Andersson</username>
        <attested>true</attested>
        <invoiced>true</invoiced>
    </ticTacRows>
    <ticTacRows>
        <type>TicTacMile</type>
        <userid>PerAdm</userid>
        <rowid>1605601473085</rowid>
        <projectname>Aduro Intranet/Testning</projectname>
        <projid>1137768437234</projid>
        <actid>1422952089527</actid>
        <date>2020-11-17</date>
        <spec>Körde bil</spec>
        <distance>333.0</distance>
        <username>Per Andersson</username>
        <attested>true</attested>
        <invoiced>true</invoiced>
    </ticTacRows>
    <ticTacRows>
        <type>TicTacSale</type>
        <userid>PerAdm</userid>
        <rowid>1561369429588</rowid>
        <projectname>Aduro Intranet/Art direction</projectname>
        <projid>1137768437234</projid>
        <actid>1259853648654</actid>
        <date>2020-11-24</date>
        <spec>13 Avtal per månad</spec>
        <amount>1.0</amount>
        <username>Per Andersson</username>
        <attested>true</attested>
        <invoiced>true</invoiced>
    </ticTacRows>
</workItemModel>

					

Add an entry, POST

You can provide projectName/activityName or projectId/activityId in the call

						curl -v 
-X "POST" "tictacmobile.com/api/rest/v2/entries" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d "{\"targetUserId\":\"PerAdm\", \"projectName\":\"ABC-analys Hedgehog\", \"activityName\":\"Analys\", \"spec\":\"Skriver en rad\",\"source\":\"abc\", \"date\":\"2022-10-02\", \"hours\":\"2.5\"}"

Example with posting XML:

<?xml version="1.0" encoding="UTF-8" ?>
<timeEntry>
	<targetUserId>PerAdm</targetUserId>
	<projectId>1137768437234</projectId>
	<activityId>1137768502203</activityId>
	<spec>Möte med gruppen</spec>
	<source></source>
	<date>2020-12-02</date>
	<hours>1.5</hours>
</timeEntry>

					

Response

						{"createditemid":"1510677103458"}
					

Delete an entry, DELETE

						curl -v 
-X "DELETE" "tictacmobile.com/api/rest/v2/entries/73277373711?userId=fimia" 
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"
-H "Accept: application/json" 
-H "Content-Type: application/json" 

					

Response

						OK
					

Timeplan

https://www.tictacmobile.com/api/rest/v1/timeplans
Returns a list of all time plan entries.
https://www.tictacmobile.com/api/rest/v1/timeplans/{forUser}
Returns a list of all time plan entries for user specified by Tic-Tac login name.
Supported methods
GET
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date time plan entries will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date time plan entries will be retrieved.
projectId optional To specify project id for data retrieving.
Additional query parameters, not for /{forUser} path
forWorkgroup optional To specify Workgroup. Omitted if invalid
forCostcenter optional To specify Costcenter. Omitted if invalid
forDepartment optional To specify Department. Omitted if invalid

Read timeplan, GET

						curl 
-X "GET" "tictacmobile.com/api/rest/v1/timeplans?startdate=2022-09-03&enddate=2022-09-06" 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz" 

-X "GET" "tictacmobile.com/api/rest/v1/timeplans/per@tictac.se?startdate=2022-09-03&enddate=2022-09-06" 

Get timeplans for scpecific workgroup
-X "GET" "tictacmobile.com/api/rest/v1/timeplans?startdate=2022-09-03&enddate=2022-09-06&forWorkgroup=Ledningsgruppen"
			
					

Response

						
{"ticTacTimeplans":[
{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485865268555","projectName":"Apollo Market/Analys","projid":"1441032326122","actid":"1441032358950","startDate":"2016-12-26","endDate":"2022-01-01","comment":"","duration":"10","partOfDay":"31,25","isPreliminary":false,"created":"2022-01-31 13:21","changed":"2022-01-31 13:21"},

{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485865270196","projectName":"Apollo Market/Analys","projid":"1441032326122","actid":"1441032358950","startDate":"2022-01-02","endDate":"2022-01-08","comment":"","duration":"10","partOfDay":"31,25","isPreliminary":false,"created":"2022-01-31 13:21","changed":"2022-01-31 13:21"},

{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485865274711","projectName":"Apollo Market/Analys","projid":"1441032326122","actid":"1441032358950","startDate":"2022-01-09","endDate":"2022-01-15","comment":"","duration":"20","partOfDay":"62,5","isPreliminary":false,"created":"
2022-01-31 13:21","changed":"2022-01-31 13:21"},
{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485855177883","projectName":"Apollo Market/Analys","projid":"1441032326122","actid":"1441032358950","startDate":"2022-01-30","endDate":"2022-01-30","comment":"","duration":"1","partOfDay":"12,5","isPreliminary":false,"created":"2022-01-31 10:32","changed":"2022-01-31 10:32"},

{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485783430240","projectName":"Film till webbsidan/Analys","projid":"1447077260817","actid":"1447077927832","startDate":"2022-01-02","endDate":"2022
-01-08","comment":"","duration":"10","partOfDay":"31,25","isPreliminary":false,"created":"2022-01-30 14:37","changed":"2022-01-30 14:37"},

{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485783431990","projectName":"Film till webbsidan/Analys","projid":"1447077260817","actid":"1447077927832","startDate":"2022-01-09","endDate":"2022-01-15","comment":"","duration":"10","partOfDay":"31,25","isPreliminary":false,"created":"2022-01-30 14:37","changed":"2022-01-30 14:37"},

{"userid":"annatictacse","userName":"Andersson, Anna","itemid":"1485783433755","projectName":"Film till webbsidan/Analys","projid":"1447077260817","actid":"1447077927832","startDate":"2022-01-16","endDate":"2022-01-22","comment":"","duration":"10","partOfDay":"31,25","isPreliminary":false,"created":"2022-01-30 1
4:37","changed":"2022-01-30 14:37"}]}

					

Pricelists

https://www.tictacmobile.com/api/rest/v1/pricelists
Returns the time price list.
Supported methods
GET
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Query parameters
none

Get the time price list

						
curl 
-X "GET" "tictacmobile.com/api/rest/v1/pricelists" 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz" 				
            
					

Response

						
[{"priceId":"1444983222610","pricename":"Admin","hourRate":900.0,"startDate":"1999-01-01","description":"","adminName":"Per Andersson"},
{"priceId":"1444983222610","pricename":"Admin","hourRate":1000.0,"startDate":"2016-06-01","description":"Nytt pris från juni 2016","adminName":"Per Andersson"},
{"priceId":"1444983222610","pricename":"Admin","hourRate":1050.0,"startDate":"2016-12-05","description":"Nytt bättre pris","adminName":"Per Andersson"},
{"priceId":"1485438341942","pricename":"Bokslutsarbete","hourRate":495.0,"startDate":"1999-01-01","description":"","adminName":"Per Andersson"},
{"priceId":"1480940484909","pricename":"Konsulent, senior","hourRate":700.0,"startDate":"1999-01-01","description":"","adminName":"Per Andersson"},
{"priceId":"1480940462799","pricename":"Konsulent, standard","hourRate":600.0,"startDate":"1999-01-01","description":"","adminName":"Per Andersson"}]
			
					

Project Reports

https://www.tictacmobile.com/api/rest/v1/projectreports
Returns time summed up for all projects and all users.
Supported methods
GET
Supported accept formats
XML. Format should be specified in Accept header as application/xml.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date project reports will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date project reports will be retrieved.
groupBy optional 1 - no grouping:
2 - Customer; 3 - Account; 4 - Category; 5 - ResultArea; 6 - Projectlead.

Request sample

						
curl 
-X "GET" "tictacmobile.com/api/rest/v1/projectreports?startdate=2022-09-01&enddate=2022-09-30" 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz" 

Get project reports grouped by customer
-X "GET" "tictacmobile.com/api/rest/v1/projectreports?startdate=2022-09-01&enddate=2022-09-30&groupBy=2"
            
					

Response

						
			
<?xml version="1.0" encoding="UTF-8" ?>
<TimeSumByProject>
	<row>
		<group></group>
		<project>ABC-analys Hedgehog</project>
		<projid>1455109526722</projid>
		<time>37.75</time>
		<allAttested>true</allAttested>
		<allInvoiced>true</allInvoiced>
	</row>
	<row>
		<group></group>
		<project>Aduro Intranet</project>
		<projid>1137768437234</projid>
		<time>43.51</time>
		<allAttested>true</allAttested>
		<allInvoiced>true</allInvoiced>
	</row>
	<row>
		<group></group>
		<project>Apollo Market</project>
		<projid>1441032326122</projid>
		<time>88.0</time>
		<allAttested>false</allAttested>
		<allInvoiced>false</allInvoiced>
	</row>
	<row>
		<group></group>
		<project>Film till webbsidan</project>
		<projid>1447077260817</projid>
		<time>21.0</time>
		<allAttested>false</allAttested>
		<allInvoiced>false</allInvoiced>
	</row>
	<row>
		<group></group>
		<project>FRÅNVARO</project>
		<projid>1137703186406</projid>
		<time>14.0</time>
		<allAttested>false</allAttested>
		<allInvoiced>false</allInvoiced>
	</row>
</TimeSumByProject>
			
					

Project Overviews

https://www.tictacmobile.com/api/rest/v1/projectoverviews
Returns project statistics for al project in a given time period.
Supported methods
GET
Supported accept formats
XML and JSON
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date projectoverviews will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date projectoverviews will be retrieved.

Request sample

						
curl 
-X "GET" "tictacmobile.com/api/rest/v1/projectoverviews?startdate=2022-09-01&enddate=2022-09-30" 
-H "Accept: application/xml" or "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz" 


            
					

Response

						
			
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProjectsOverview>
	<ticTacProjectOverview>
		<category>ABC-analys Hedgehog</category>
		<projid>1455109526722</projid>
		<projectname>ABC-analys Hedgehog</projectname>
		<projectIsActive>true</projectIsActive>
		<billing>HOUR_RATE</billing>
		<firstItem>2022-01-02</firstItem>
		<lastItem>2022-01-25</lastItem>
		<durationSum>37.75</durationSum>
		<durationAmount>35212.5</durationAmount>
		<expenceSum>620.0</expenceSum>
		<salesSum>0.0</salesSum>
		<uninvoicedFrom></uninvoicedFrom>
		<uninvoicedDurationSum>0.0</uninvoicedDurationSum>
		<uninvoicedDurationAmount>0.0</uninvoicedDurationAmount>
		<uninvoicedExpenceSum>0.0</uninvoicedExpenceSum>
		<uninvoicedSalesSum>0.0</uninvoicedSalesSum>
		<fixedPrice>0.0</fixedPrice>
		<isOtherCurrActive>true</isOtherCurrActive>
		<otherCurrency>SEK</otherCurrency>
		<conversionRate>1.0</conversionRate>
		<invoicedSum>175400.0</invoicedSum>
		<durationCorrectedSum>-2.75</durationCorrectedSum>
		<costCorrectedSum>0.0</costCorrectedSum>
		<selfCostSum>13562.5</selfCostSum>
</ticTacProjectOverview>
....
</ticTacProjectOverview>
</ProjectsOverview>
			
					

User Reports

https://www.tictacmobile.com/api/rest/v1/userreports
Returns time summed up for all users.
https://www.tictacmobile.com/api/rest/v1/userreports/{userid}
Returns time summed up for one specific user.
Supported methods
GET
Supported accept formats
application/xml or application/json)
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date user reports will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date user reports will be retrieved.

Request sample

						
curl 
-X "GET" "tictacmobile.com/api/rest/v1/userreports?startdate=2022-09-01&enddate=2022-09-30"
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz" 

Get user reports for specific user
-X "GET" "tictacmobile.com/api/rest/v1/userreports/PerAdm?startdate=2022-09-01&enddate=2022-09-30"
					
            
					

Response

						
<?xml version="1.0" encoding="UTF-8" ?>
	<TimeSumPerUserAndProject>
		<row>
			<employee>Anna Andersson</employee>
			<project>ABC-analys Hedgehog</project>
			<parttime>0</parttime>
			<time>24.0</time>
		</row>
		<row>
			<employee>Per Andersson</employee>
			<project>ABC-analys Hedgehog</project>
			<parttime>100</parttime>
			<time>13.75</time>
		</row>
		<row>
			<employee>Per Andersson</employee>
			<project>Aduro Intranet</project>
			<parttime>100</parttime>
			<time>24.51</time>
		</row>
		<row>
			<employee>Eva-Lena Bengtsson</employee>
			<project>Aduro Intranet</project>
			<parttime>50</parttime>
			<time>19.0</time>
		</row>
		<row>
			<employee>Per Andersson</employee>
			<project>Apollo Market</project>
			<parttime>100</parttime>
			<time>42.0</time>
		</row>
		<row>
			<employee>Eva Bergman</employee>
			<project>Apollo Market</project>
			<parttime>0</parttime>
			<time>12.0</time>
		</row>
	</TimeSumPerUserAndProject>
			
					

Normal Times

https://www.tictacmobile.com/api/rest/v1/normaltimes
Returns standard normal time for given period.
https://www.tictacmobile.com/api/rest/v1/normaltimes/{listnumber}
Returns alternate normal time specified by list number [0 .. 9] where 0 is the Standard Normal Time
Supported methods
GET
Supported accept formats
XML. Format should be specified in Accept header as application/xml.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date normal time will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date normal time will be retrieved.

Request sample

						curl 
-X "GET" "tictacmobile.com/api/rest/v1/normaltimes?startdate=2022-01-01&enddate=2022-01-30"
-H "Accept: application/json"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz" 

Get alternative normal times number 2
-X "GET" "tictacmobile.com/api/rest/v1/normaltimes/2?startdate=2022-01-01&enddate=2022-01-30"
					
            
					

Response

						{"ticTacNormalTime":[
			{"date":"2022-01-02","dayType":"1","time":"8"},
			{"date":"2022-01-04","dayType":"1","time":"8"},
			{"date":"2022-01-06","dayType":"3","time":"0"},
			{"date":"2022-01-10","dayType":"1","time":"8"},
			{"date":"2022-01-11","dayType":"1","time":"8"},
			---
			{"date":"2022-01-27","dayType":"1","time":"8"},
			{"date":"2022-01-31","dayType":"1","time":"8"}]}
					

Invoices

https://www.tictacmobile.com/api/rest/v1/invoices
Returns a list of all invoices for given period. Max number of invoices returned are 1000.
https://www.tictacmobile.com/api/rest/v1/invoices/{projectid}
Returns a list of all invoices for one project specified by an id. Max number of invoices returned are 1000.
Supported methods
GET
Supported accept formats
XML. Format should be specified in Accept header as application/xml.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date invoices will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date invoices will be retrieved.

Request sample

						curl 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"    

Get all invoices between two dates
-X "GET" "tictacmobile.com/api/rest/v1/invoices?startdate=2022-09-01&enddate=2022-09-30" 	

Get invoices for project 1455109526722
-X "GET" "tictacmobile.com/api/rest/v1/invoices/1455109526722?startdate=2022-09-01&enddate=2022-09-30" 
            
					

Response

						
			
<?xml version="1.0" encoding="UTF-8" ?>
<invoices period="2022-09-01-2022-09-30">
	<tictacmobile>
		<report version="I.2022-08-24" source="report" time="Thu Sep 14 10:38:59 CEST 2022">
			<language>sv</language>
			<country>SE</country>
			<currencySymbol>SEK</currencySymbol>
			<head>
				<logotype>556423-2121.gif</logotype>
				<companyName><![CDATA[Astralux AB]]></companyName>
				<companyAdrRow1><![CDATA[Business Center]]></companyAdrRow1>
				<companyAdrRow2><![CDATA[Nybrogatan 34]]></companyAdrRow2>
				<companyAdrRow3><![CDATA[114 39 Stockholm]]></companyAdrRow3>
				<phone>08-535 33 00</phone>
				<fax>08-535 33 10</fax>
				<email>info@tictacmobile.com</email>
			</head>
			<invoiceParams>
				<invoiceCompany><![CDATA[Aduro Telefoni AB]]></invoiceCompany>
				<invoiceAdrRow1><![CDATA[Storsjösvängen 3]]></invoiceAdrRow1>
				<invoiceAdrRow2><![CDATA[123 38]]></invoiceAdrRow2>
				<invoiceAdrRow3><![CDATA[Malmö]]></invoiceAdrRow3>
				<invoiceNumber>639</invoiceNumber>
				<customerNumber>1002</customerNumber>
				<invoiceDate>2022-09-14</invoiceDate>
				<dueDate>2022-10-14</dueDate>
				<yourReference><![CDATA[Sven Person]]></yourReference>
				<ourReference><![CDATA[Daniel Buxbom]]></ourReference>
				<customerVATno>SE8219298289201</customerVATno>
			</invoiceParams>
			<project account="3211" hourrateVal="500">
				<projectname><![CDATA[Aduro Intranet]]></projectname>
				<projectid>1137768437234</projectid>
				<employee>Per Andersson </employee>
				<timeperiod>2022-09-01 - 2022-09-30</timeperiod>
				<description><![CDATA[En ny funtionalitet i interna webben för prissättning av nya tjänster.]]></description>
				<activity name="Art direction" account="3211">
					<specification><![CDATA[Form, layout, skisser]]></specification>
					<coworker name="Per Andersson" hourrate="1 200 kr" hourrateVal="1200">
						<row>
							<type>Time</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1504276401628</id>
							<userid>PerAdm</userid>
							<date>2022-09-01 fr</date>
							<duration>0,5 tim</duration>
							<specification><![CDATA[]]></specification>
						</row>
						<row>
							<type>Time</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1504612490282</id>
							<userid>PerAdm</userid>
							<date>2022-09-05 ti</date>
							<duration>8,0 tim</duration>
							<specification><![CDATA[Test]]></specification>
						</row>
						<timesumrow>
							<time>8,5 tim</time>
							<amount>10 200 kr</amount>
						</timesumrow>
					</coworker>
				</activity>
				<activity name="Projektledning" account="3211">
					<coworker name="Per Andersson" hourrate="1 100 kr" hourrateVal="1100">
						<row>
							<type>Time</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1504696480610</id>
							<userid>PerAdm</userid>
							<date>2022-09-07 to</date>
							<duration>2,0 tim</duration>
							<specification><![CDATA[]]></specification>
						</row>
						<row>
							<type>Time</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1505377224156</id>
							<userid>PerAdm</userid>
							<date>2022-09-13 on</date>
							<duration>6,5 tim</duration>
							<specification><![CDATA[]]></specification>
						</row>
						<row>
							<type>Time</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1505377323250</id>
							<userid>PerAdm</userid><date>2022-09-14 to</date><duration>5,5 tim</duration><specification><![CDATA[Ny plan]]></specification>
						</row>
						<timesumrow>
							<time>18,0 tim</time>
							<amount>19 800 kr</amount>
						</timesumrow>
					</coworker>
				</activity>
				<activity name="Strategi" account="3211">
					<specification><![CDATA[Upplägg av affärsstrategi]]></specification>
						<coworker name="Per Andersson" hourrate="1 100 kr" hourrateVal="1100">
						<row>
							<type>Time</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1504272336831</id>
							<userid>PerAdm</userid>
							<date>2022-09-01 fr</date>
							<duration>1,0 tim</duration>
							<specification><![CDATA[Viktigt möte]]></specification>
						</row>
						<timesumrow>
							<time>1,0 tim</time>
							<amount>1 100 kr</amount>
						</timesumrow>
					</coworker>
				</activity>
				<activity name="Annat än tid" account="3211">
					<coworker name="Per Andersson" hourrate="0 kr" hourrateVal="0">
						<row>
							<type>Sale</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1504529552685</id>
							<userid>PerAdm</userid>
							<date>2022-09-04 må</date>
							<specification><![CDATA[1 Supportärende]]></specification>
							<amount>1</amount>
							<price val="300">300 kr</price>
							<cost val="300">300 kr</cost>
						</row>
						<row>
							<type>Trak</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1505137368673</id>
							<userid>PerAdm</userid>
							<date>2022-09-11 må</date>
							<specification><![CDATA[TRAKTAMENTE :Sverige (Norm.bel:220kr) Dagar:1.5 2022-09-11 08:00 - 2022-09-12 08:00(avdrag ant frukost:1 lunch/middag:0) Test for new TraktamenteServer]]></specification>
							<cost val="297">297 kr</cost>
						</row>
						<row>
							<type>Sale</type>
							<isAttested>true</isAttested>
							<attestedBy>Per Andersson</attestedBy>
							<id>1505377481906</id>
							<userid>PerAdm</userid>
							<date>2022-09-14 to</date>
							<specification><![CDATA[5 Säkerhetsanalys [2 st. á 1 900,00 kr]]]></specification>
							<amount>2</amount>
							<price val="1900">1 900 kr</price>
							<cost val="3800">3 800 kr</cost>
						</row>
					</coworker>
					<totalSum>33 354 kr</totalSum>
				</activity>
				<activityTotals>
					<timesumrow>
						<time>27,5 tim</time>
						<amount>31 100 kr</amount>
					</timesumrow>
					<otherCost>33 354 kr</otherCost>
					<totalSum>64 454 kr</totalSum>
				</activityTotals>
			</project>
			<totalsInclVAT><timeCost val="31100">31 100 kr</timeCost>
				<otherCost val="33354">33 354 kr</otherCost>
				<totalSum val="64454">64 454 kr</totalSum>
				<vatRate val="25">25%</vatRate>
				<vat val="16113">16 113 kr</vat>
				<grandTotalSum val="80567">80 567 kr</grandTotalSum>
			</totalsInclVAT>
			<foot>
				<altBankAccount>IBAN: 7328-09423 BIC: nordeaess</altBankAccount>
				<orgnumber>555555-5555</orgnumber>
				<vatnumber>SE555555555501</vatnumber>
				<fskatt>1</fskatt>
				<duedays>30</duedays>
				<conditions><![CDATA[Please pay to our IBAN account within 30 days]]></conditions>
			</foot>
		</report>
	</tictacmobile>
</invoices>			
			
			
					

Utilizations

https://www.tictacmobile.com/api/rest/v1/utilizations
Returns a list of all utilizations.
Supported methods
GET
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date utilizations will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date utilizations will be retrieved.

Request sample

						curl 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"    

Get all utilizations between two dates
-X "GET" "tictacmobile.com/api/rest/v1/utilizations?startdate=2022-09-01&enddate=2022-09-30" 	 
            
					

Response

						
			
<?xml version="1.0" encoding="UTF-8" ?>
<Utilizations">
	<ticTacUtilizations>
		<employee>Per Andersson</employee>
		<userid>PerAdm</userid>
		<partTime>100</partTime>
		<normalTime>155.5</normalTime>
		<billable>98.4</billable>
		<amount>0</amount>
		<rate>0</rate>
		<cost>54120</cost>
		<unbillable>2.0</unbillable>
		<utilizationAlpha>98</utilizationAlpha>
		<utilizationBeta>67.7</utilizationBeta>
		<utilizationGamma>72.1</utilizationGamma>
		<vacation>10.0</vacation>
		<leave>0.0</leave>
		<absence>0.0</absence>
		<totalSum>0.0</totalSum>
	</ticTacUtilizations>
</Utilizations>			
			
			
					

TimeSumByCoworker

https://www.tictacmobile.com/api/rest/v1/timeSumByCoworker
Summing up all projects/activities time during a given period
Supported methods
GET
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date utilizations will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date utilizations will be retrieved.
showActivities optional Show activity names, value true or false
groupBy optional groupBy, integer value 0 to 5. 0 = no grouping, 1 = group by workgroup, 2 = costcenter, 3 = department, 4 = team
groupByAccountNo optional group at first level by Accout Number, value true or false.
timeType optional integer value 0 to 1. 0 = all hours, 1 = working hours, 2 = absence, 3 = overtime

Request sample

						curl 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"    

-X "GET" "https://tictacmobile.com/api/rest/v1/timeSumByCoworker?startdate=2019-03-01&enddate=2019-09-30&groupBy=3&groupByAccountNo=true" 	 
            
					

Response

						
			
{
    "timeSumByCoworker": [
        {
            "accountNo": "",
            "category": "Avd 1",
            "userFullName": "Per Andersson",
            "projName": "ABC Hedgehog",
            "billingType": 1,
            "actName": "Project Lead",
            "hourRate": 11000.0,
            "duration": 9.5,
            "value": 104500.0
        },
        {
            "accountNo": "",
            "category": "Avd 1",
            "userFullName": "Per Andersson",
            "projName": "ABC-analys Hedgehog",
            "billingType": 1,
            "actName": "Analys & Uppföljning",
            "hourRate": 0.0,
            "duration": 38.5,
            "value": 0.0
        },...
			
			
					

TimeSumByProject

https://www.tictacmobile.com/api/rest/v1/timeSumByProject
Summing up all users reported time during a given period
Supported methods
GET
Supported accept formats
XML, JSON. Format should be specified in Accept header as application/xml or application/json.
Query parameters
startdate mandatory Date in format YYYY-MM-DD, from this date utilizations will be retrieved.
enddate mandatory Date in format YYYY-MM-DD, to this date utilizations will be retrieved.
projectid optional Narrow the result to one or more projects
showCoworkers optional Show coworkers names, value true or false
showActivities optional Show activity names, value true or false
groupBy optional groupBy, integer value 0 to 5. 0 = no grouping, 1 = our account, 2 = category, 3 = result area, 4 = customer, 5 = project lead
groupByAccountNo optional group at first level by Accout Number, value true or false.
projectsSummedUp optional To sum up all hours on activities common across alla projects. value true or false.

Request sample


curl 
-H "Accept: application/xml"
-H "Authorization: Bearer xxxxxxxxxx.yyyyyyyyyyy.zzzzzzzzzzz"    
	
-X "GET" "tictacmobile.com/api/rest/v1/timeSumByProject?startdate=2019-09-01&enddate=2019-09-30&groupBy=3" 	 


Get project reports for three specific projects
-X "GET" "tictacmobile.com/api/rest/v1/timeSumByProject?startdate=2022-09-01&enddate=2022-09-30&projectid=235235217111,235235217251,235235218383"

Response

		
{
    "timeSumByProject": [
        {
            "category": "",
            "userFullName": "",
            "projName": "",
            "billingType": 1,
            "actName": "Analys",
            "hourRate": 542.64514,
            "duration": 310.0,
            "value": 168220.0
        },
        {
            "category": "",
            "userFullName": "",
            "projName": "",
            "billingType": 1,
            "actName": "Analys & Uppföljning",
            "hourRate": 52.892563,
            "dura ...		
			
					

Contact & Support

Let us hear from you if you have questions, feed back or need a hand to get started using the API.

support@tictacmobile.com

Give us a call at +46-8-660 08 70