1. Overview

1.1. Introduction

This documentation presents the REST APIs of TourSolver Cloud.

The REST APIs provide programmatic access to creation, launching and reading of TourSolver optimizations. Thus you’ll be able to plan and optimize order deliveries while conforming to many constraints, defined on customers, resources and depots. You can also use this API to publish your optimized tour plans to Toursolver Mobile App and follow the fulfilment.

The main services are :

  • optimize : send your data and start the optimization

  • status : follow the optimization process (cost, distance and time evolution)

  • stop : you can set a maximum optimization time, but you can also stop the optimization when you decide (ex: if global cost has not changed for a while)

  • result / toursResult : retrieve the optimized result (bulk or tour organized)

  • exportToOperationalPlanning : publish the result on Toursolver Mobile app

  • fulfillment : follow the fulfillment of the route plans by yours resources on the field

If you don’t need to follow the optimization process, you can use our webhook system : just start the optimization and the result will be automatically posted when ready to your server.

If you don’t want to build a result page, just integrate Toursolver result page in your app (more details in the tutorial).

Web APIs for TourSolver

1.2. Version information

Version : 2.0

1.3. Tags

  • JAXRSResourcesService

  • ToursolverWebService : Toursolver optimization web service.

2. Authentication

In order to be able to use this api, you must provide your api key through the tsCloudApiKey parameter. This parameter can be passed either in the query or as a http header.

Caution : if you send to many requests in a short time, you may receive a 429 http code. When it happens, that means that your request as not been treated, you will have to send it again later.

3. Javascript tutorial

You can easily use the TsCloud API using only javascript. It is very easy to perform ajax requests with any popular javascript framework. We will show in this chapter how to do it with JQuery.

First of all, you will need to include Jquery and tsCloudApi.js :

<html>
	<head>
		<title>TsCloud Api Tester</title>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
		<script src="https://api.geoconcept.com/ToursolverCloud/combo/toursolver/tsCloudApi.js"></script>
	</head>
	<body>
	...
	</body>
</html>
Warning
Depending on your geographical area, the ToursolverCloud url may be different.

You will then use de tsCloudApi object to communicate with TsCloud servers. Before sending any request, you must initialize the object with your api key :

<script>
	var myApiKey = "this is a fake key";
	tsCloudApi.init(myApiKey);
</script>

3.1. Launch an optimisation

To start an optimization, you will have use the optimize method of the tsCloudApi object :

<script>
	var myApiKey = "this is a fake key";
	tsCloudApi.init(myApiKey);
	tsCloudApi.optimize(optimRequest,startOptimSuccessHandler,errorHandler);
</script>

tsCloudApi performs asynchronous ajax requests. Therefore, you have to implement handler functions that will be called when the response will be available (startOptimSuccessHandler and errorHandler in the above example). optimRequest is the object containing the list of depots (optional), the list of resources, the list of orders and the optimization options (please refer to the definitions chapter for more details).

Here is a minimal example with one resource and two orders :

<script>
	var optimRequest = {
		"depots": [],
		"resources": [{
			"x": 2.33683,
			"y": 48.86255,
			"id": "Robert",
			"workStartTime": "08:00",
			"workEndTime": "18:00",
			"lunch": {
				"start": "12:00",
				"end": "14:00",
				"duration": "01:00",
			},
			"workingDays": "1-5",
			"capacities": [1000.0],
			"workPenalty": 20.0,
			"overtimePenalties": [0.0],
			"travelPenalty": 2.0,
		}],
		"orders": [{
			"id": "ORDER-1",
			"label": "HOSPITAL",
			"quantities": [2.0],
			"fixedVisitDuration": "00:30",
			"timeWindows": [{
				"beginTime": "08:00",
				"endTime": "10:00"
			}],
			"x": 2.348433,
			"y": 48.853661
		}, {
			"id": "ORDER-2",
			"label": "EMERGENCIES",
			"quantities": [2.0],
			"fixedVisitDuration": "00:25",
			"timeWindows": [{
				"beginTime": "10:00",
				"endTime": "12:00"
			}],
			"x": 2.347802,
			"y": 48.854687
		}],
		,
		"options": {
			"vehicleCode": "car",
			"stopTime": "00:01",
			"stopTimeWithoutImprovement": "00:01",
			"maxOptimDuration": "00:01",
			"stopCondition": 1,
			"reloadDuration": "00:45"
		},
		"countryCode":"FR"
	};

</script>

Here is how you could write your error handler :

<script>
function errorHandler(jqxhr,status,errorThrown) {
	if (jqxhr.status == 403) {
		console.log("Bad key code ?");
	} else if (jqxhr.status == 429) {
		console.log("oups, slow down please : " + jqxhr.statusText);
	} else if (jqxhr.status != 200) {
		console.log("sorry, an error occured : " + jqxhr.statusText);
		try {
			if (jqxhr.responseText) {
				var resp = JSON.parse(jqxhr.responseText);
				if (resp.message) {
					console.log(resp.message);
				}
			}
		} catch (e) {
			console.log("could not find details about the error");
		}
	}
}
</script>

If your api key is not valid, you will get a 403 http code. As explained in authentication chapter, you may received a 429 http code if you send to many requests in a short time. If you misspelled an object attribut or for any other technical problem, you may receive a 500 http code.

Here is how you could write your success handler, which must retrieve the taskId and start the status polling process that we will detail in the next section :

<script>
	var taskId = null;

	function startOptimSuccessHandler(data,status,xhr) {
		if (data.status == "OK") {
			taskId = data.taskId;
			console.log("optim launched. taskId is " + taskId);
			getStatus();
		} else {
			console.log(data.message);
		}
	}
</script>

3.2. Optimization status polling

During the optimization process, you will be able to follow the cost evolution and the state of the optimization by calling the getStatus method of the tsCloudApi object :

<script>
	tsCloudApi.getStatus(taskId,getStatusSuccessHandler,errorHandler);
</script>

You can use the same errorHandler function we used for the optimization request. Your getStatusSuccessHandler should mainly check the optimization state, but it can be used to track the costs evolution. It is quite easy to build graphs to show this evolution. Here is an example using canvasjs. First of all, you must include canvasjs :

<html>
	<head>
		<title>TsCloud Api Tester</title>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/canvasjs/1.7.0/canvasjs.min.js"></script>
		<script src="https://api.geoconcept.com/ToursolverCloud/combo/toursolver/tsCloudApi.js"></script>
	</head>
	<body>
	...
	</body>
</html>

Then, here is an example of getStatus command called every second, with the success handler used to build graphs, and to trigger the result download (that we will detail in a further section) :

<script>
	var getStatusTimeout = null;
	var graphIndex;
	var graphCost = null;
	var graphDist = null;


	function getStatus() {
		if (getStatusTimeout != null) {
			clearTimeout(getStatusTimeout);
		}
		getStatusTimeout = setTimeout(function() {
			tsCloudApi.getStatus(taskId,getStatusSuccessHandler,errorHandler);
		},1000);
	}

	function appendGraphData(data) {
		if (graphCost == null) {
			graphIndex = 0;
			var options = {
				title: {
					text: "Cost evolution"
				},
				animationEnabled: true,
				data: [
					{
						type: "spline", //change it to line, area, column, pie, etc
						dataPoints: [
							{ x: graphIndex, y: data.currentCost }
						]
					}
				]
			};

			graphCost = new CanvasJS.Chart("chartContainerCost",options);

			options = {
				title: {
					text: "Distance evolution"
				},
				animationEnabled: true,
				data: [
					{
						type: "spline", //change it to line, area, column, pie, etc
						dataPoints: [
							{ x: graphIndex, y: data.currentDriveDistance / 1000 }
						]
					}
				]
			};

			graphDist = new CanvasJS.Chart("chartContainerDist",options);

		} else {
			graphIndex++;
			graphCost.options.data[0].dataPoints.push({ x: graphIndex, y: data.currentCost });
			graphDist.options.data[0].dataPoints.push({ x: graphIndex, y: data.currentDriveDistance/1000 });
		}
		graphCost.render();
		graphDist.render();
	}

	function getStatusSuccessHandler(data,status,xhr) {
		if (data.optimizeStatus == "ERROR") {
			console.log("sorry, an error occured");
		} else if (data.optimizeStatus == "TERMINATED") {
			console.log("optimization done");
			setTimeout("getResult()",10);
		} else {
			if (data.status == "OK") {
				console.log(data.optimizeStatus +  " | current cost : " + data.currentCost + " | current distance : " + data.currentDriveDistance);
				if (data.optimizeStatus == "RUNNING") {
					appendGraphData(data);
				}
			} else {
				console.log("sorry, an error occured : " + data.message);
			}
			getStatus();
		}
	}

</script>

3.3. Stopping an optimization

Even if you must specify a maximum optimization time in the options objects sent in the optimization command, you can stop an optimization at any time. You can do this easily using the stop method of the tsCloudApi object :

<script>
	tsCloudApi.stop(taskId,stopSuccessHandler,errorHandler);
</script>

Stopping an optimization may take a few seconds and when stopSuccessHandler is called, it only means that your stopping request as been aknowleged. Therefore, you still have to call the getStatus method until the status says that the optimization is terminated.

<script>
	function stopSuccessHandler(data,status,xhr) {
		if (data.optimizeStatus == "ERROR") {
			console.log("sorry, an error occured");
		} else {
			getStatus();
		}
	}
</script>

Here we use the getStatus function detailed in the above section.

3.4. Retrieving the optimization result

Once your optimization is terminated, you can retrieve the result using the getResult method of the tsCloudApi object :

<script>
	function getResult() {
		tsCloudApi.getResult(taskId,showResult,errorHandler);
	}
</script>

The result will contain the resource and time assignment for each planned order, the list of unplanned orders and a list of warnings.

<script>
	var lastResult;
	function showResult(data,status,xhr) {
		if (data.status == "OK") {
      lastResult = data; //let's store the result for later ...
			displayResult(data);
		} else {
			appendTrace("sorry, an error occured : " + data.message);
		}
	}

	function displayResult(data) {
		$('#resultStats').append("<p>nb of unplanned orders : " + data.unplannedOrders.length+"</p>");
		if (data.warnings && data.warnings.length > 0) {
			for (var i=0;i<data.warnings.length;i++) {
				$('#resultStats').append("<p>warning on " + data.warnings[i].id + " : " + data.warnings[i].message + " (" + data.warnings[i].value + ")"+"</p>");

			}
		}

		var order = null;
		for (var i=0;i<data.plannedOrders.length;i++) {
			order = data.plannedOrders[i];
			$('#resultPlanning').append("<p>order " +  order.stopId + " as been planned on resource " + order.resourceId + " on day " + order.dayId + " at " + order.stopStartTime +"</p>");
		}

	}
</script>

3.5. Exporting result to operational planning

You can aslo export your optimization result to operational planning so that mobile resources could browse it on the field through a mobile app. Note that you must have previously created your mobile identifiers through TsCloud app. If you are trying to export to a period that already contains data, you will get an error and have to force the export, which will erase previous data first.

<script>
	function doExportToOperational(taskId,exportStartDate,force) {
		var operationalExportParams = {
			resourceMapping : [
				{
					id:"Robert",
					operationalId:"robert@mycompany.com"
				}
			],
			startDate : (exportStartDate)?exportStartDate:new Date(),
			force : force,
			taskId : taskId
		};

		tsCloudApi.exportToOperationalPlanning(operationalExportParams,showExportResult,errorHandler);
	}
</script>

3.6. Integrating Toursolver result page in your app

Once your optimization is finished, you can use Toursolver to show the result. To to this, you will have to retrieve a temporary login token and then open TsCloud in an iframe with this token and the simulationId found in the optimization result.

You can choose to show the full Toursolver UI, or only the result page just passing standalone=true as a parameter of the url.

<iframe id="integrationFrame" style="width:100%;height:800px;border:none;"></iframe>
<script>
    var doStandaloneIntegration = false;
    var lastResult; //we assume here that you have stored the result obtained earlier in this var

    function startIntegration(login,standaloneIntegration) {
        doStandaloneIntegration = standaloneIntegration;

        //Here we retrieve a temporary token
        tsCloudApi.getGatewayToken(login,startIntegrationHandleFunc, errorHandler);
    }

    function startIntegrationHandleFunc(data,status,xhr) {
        //We have received our token, let's build the url to display the simulation result
        let url = 'https://app.geoconcept.com/ToursolverCloud/ts/login?';
        url += 'token='+data.token;
        url += '&simulationId='+ lastResult.simulationId;
        if (doStandaloneIntegration) {
            url += '&standalone=true';
        }

        //Here we will set the src of an existing iframe (having id='integrationFrame') to display Toursolver result page in it
        $('#integrationFrame').attr('src', url)
    }
</script>

If you can also specify the day and the resource to be shown :

You can open a result in read only mode, all actions are disabled in this mode :

Url parameters description :

Parameter Type Default Description

token

string

token obtained through the gatewayToken webservice

standalone

boolean

false

if true, the Toursolver header and footer are hidden

readOnly

boolean

false

if true, result page is in read only mode, only export actions are available

day

number

if provided, data will be filtered to show only the specified day. Use day=1 to see only the data of the first day (works only with readOnly=true)

resource

string

if provided, data will be filtered to show only the specified resource. Use resource=Robert to see only the data of the resource called Robert (works only with readOnly=true)

3.7. Integrating Toursolver fulfillment page in your app

The process is the same, you must generate a token calling the gatewayToken webservice, and call this url in your iframe : https://app.geoconcept.com/ToursolverCloud/ts/login?token=xxx&fulfillment=true

standalone and readonly parameters are also supported for fulfillment page integration.

Url parameters description :

Parameter Type Default Description

token

string

token obtained through the gatewayToken webservice

standalone

boolean

false

if true, the Toursolver header and footer are hidden

readOnly

boolean

false

if true, result page is in read only mode, only export actions are available

organization

string

organization identifier. if provided, only data of the specified organization will be visible

resource

string

if provided, data will be filtered to show only the specified resource. Use resource=robert%40mycompany.com to see only the data of the mobile user robert@mycompany.com

4. Resources

This section presents the services.

This API consumes and produces json and xml. To specify the format you want to use, just add HTTP headers Accept and Content-Type.

If you use json, you should add these headers :
  • Accept: application/json

  • Content-Type: application/json

If you use xml, you should add these headers :
  • Accept: application/xml

  • Content-Type: application/xml

The root url for this API is :
Webhook integration :

Webhook allow you to automatically receive optimization result when optimization finishes. Rather than requiring you to pull information via our API, webhooks will push information to your endpoint. ToursolverCloud will send a HTTP POST payload to the webhook’s configured in ToursolverCloud configuration menu. You will be able to specify in your optimization request if you want the result to be sent automatically to this webhook when the optimization ends and what result type you need (orders list or shipments list). Have a look to the sendResultToWeebhook parameter of the TSOptions object for more details.

Webhooks retry logic is as follows :

In case the original notification sending attempt fails (due to receiving a non-2xx response code or exceeding timeout of 10 seconds), we will try 3 more times: after 3, 30 and 150 seconds. If it still fails for each of those attempts, an email will be sent to warn you, but you can still repost the webhook call for Toursolver UI.

4.1. JAXRSResourcesService

4.1.1. GET /download

Table 1. Parameters
Type Name Description Schema Default

Query

resourceId
optional

string

Table 2. Responses
HTTP Code Description Schema

200

Success

json_BinaryData

Produces
  • application/xml

  • application/json

Example HTTP response

=.Response 200

{
  "application/json" : {
    "fileName" : "...",
    "resourceId" : "...",
    "length" : 12345,
    "content" : "...",
    "mimeType" : "..."
  }
}

4.1.2. GET /downloadLarge

Table 3. Parameters
Type Name Description Schema Default

Query

resourceId
optional

string

Table 4. Responses
HTTP Code Description Schema

200

Success

json_LargeBinaryData

Produces
  • application/xml

  • application/json

Example HTTP response

=.Response 200

{
  "application/json" : {
    "length" : 12345,
    "resourceId" : "...",
    "content" : { },
    "fileName" : "...",
    "mimeType" : "..."
  }
}

4.1.3. GET /name

Table 5. Responses
HTTP Code Description Schema

200

Success

string

Produces
  • text/plain

Example HTTP response

=.Response 200

{ }

4.1.4. GET /root

Table 6. Responses
HTTP Code Description Schema

200

Success

json_Resource

Produces
  • application/json

Example HTTP response

=.Response 200

{
  "application/json" : {
    "type" : "DOCUMENT",
    "children" : [ {
      "type" : "DOCUMENT",
      "children" : [ { }, { } ],
      "path" : "...",
      "name" : "...",
      "idNotNull" : "...",
      "id" : "...",
      "parent" : { }
    }, {
      "type" : "CATEGORY",
      "children" : [ { }, { } ],
      "path" : "...",
      "name" : "...",
      "idNotNull" : "...",
      "id" : "...",
      "parent" : { }
    } ],
    "path" : "...",
    "name" : "...",
    "idNotNull" : "...",
    "id" : "...",
    "parent" : {
      "type" : "CATEGORY",
      "children" : [ { }, { } ],
      "path" : "...",
      "name" : "...",
      "idNotNull" : "...",
      "id" : "...",
      "parent" : { }
    }
  }
}

4.1.5. POST /upload

Table 7. Parameters
Type Name Description Schema Default

Body

body
optional

json_BinaryData

Table 8. Responses
HTTP Code Description Schema

201

Success

No Content

Consumes
  • application/xml

  • application/json

Example HTTP request

=.Request body

{
  "fileName" : "...",
  "resourceId" : "...",
  "length" : 12345,
  "content" : "...",
  "mimeType" : "..."
}
Example HTTP response

=.Response 201

{ }

4.1.6. POST /uploadLarge

Table 9. Parameters
Type Name Description Schema Default

Body

body
optional

json_LargeBinaryData

Table 10. Responses
HTTP Code Description Schema

201

Success

No Content

Consumes
  • application/xml

  • application/json

Example HTTP request

=.Request body

{
  "length" : 12345,
  "resourceId" : "...",
  "content" : { },
  "fileName" : "...",
  "mimeType" : "..."
}
Example HTTP response

=.Response 201

{ }

4.2. ToursolverWebService

Toursolver optimization web service.

4.2.1. Add clients Use this service to add clients.

POST /toursolver/addClients
Description

Add clients

Use this service to add clients. These clients can then be used through the UI.

Table 11. Parameters
Type Name Description Schema Default

Body

body
optional

clients to add

json_AddClientsRequest

Table 12. Responses
HTTP Code Description Schema

201

Success

json_AddClientsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "clients" : [ {
    "customData" : {
      "property1" : "...",
      "property2" : "..."
    },
    "externRef" : "...",
    "providedProducts" : "...",
    "timeWindowBeginTime2" : 12345,
    "occupation" : "...",
    "allowedDepots" : "...",
    "agency" : "...",
    "email" : "...",
    "timeWindowEndTime4" : 12345,
    "frequencyType" : "...",
    "useManualPositioning" : true,
    "designation" : "...",
    "lastVisitDate" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "minSpacing" : 12345,
    "isCustomer" : true,
    "geocodeType" : "...",
    "givenName" : "...",
    "description" : "...",
    "frequency" : "...",
    "timeWindowEndTime1" : 12345,
    "visitType" : 12345,
    "id" : "...",
    "fixedVisitDuration" : 12345,
    "startsBefore" : "...",
    "creationDate" : 12345,
    "possibleVisitDays1" : "...",
    "possibleVisitDays4" : "...",
    "color" : "...",
    "manualPosition" : {
      "when" : 12345,
      "y" : 12345.0,
      "x" : 12345.0,
      "who" : "..."
    },
    "timeWindowBeginTime3" : 12345,
    "type" : "...",
    "zipCode" : "...",
    "mobile" : "...",
    "possibleVisitDays3" : "...",
    "phone" : "...",
    "streetAndNumber" : "...",
    "photoURL" : "...",
    "allSkillsRequired" : true,
    "timeWindowEndTime3" : 12345,
    "timeWindowEndTime2" : 12345,
    "ownerId" : "...",
    "countryFull" : "...",
    "lastFeedback" : 12345,
    "lastVisitId" : "...",
    "sector" : "...",
    "possibleVisitDays2" : "...",
    "timeWindowBeginTime4" : 12345,
    "title" : "...",
    "requiredSkills" : "...",
    "timeWindowBeginTime1" : 12345,
    "getNotification" : true,
    "lastComment" : "...",
    "x" : 12345.0,
    "additionalAddress" : "...",
    "nextVisitDate" : 12345,
    "maxSpacing" : 12345,
    "city" : "...",
    "surName" : "...",
    "lastUpdateUser" : "...",
    "y" : 12345.0,
    "stateFull" : "...",
    "wholeVisitInTimeWindow" : true,
    "updateDate" : 12345
  }, {
    "customData" : {
      "property1" : "...",
      "property2" : "..."
    },
    "externRef" : "...",
    "providedProducts" : "...",
    "timeWindowBeginTime2" : 12345,
    "occupation" : "...",
    "allowedDepots" : "...",
    "agency" : "...",
    "email" : "...",
    "timeWindowEndTime4" : 12345,
    "frequencyType" : "...",
    "useManualPositioning" : true,
    "designation" : "...",
    "lastVisitDate" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "minSpacing" : 12345,
    "isCustomer" : true,
    "geocodeType" : "...",
    "givenName" : "...",
    "description" : "...",
    "frequency" : "...",
    "timeWindowEndTime1" : 12345,
    "visitType" : 12345,
    "id" : "...",
    "fixedVisitDuration" : 12345,
    "startsBefore" : "...",
    "creationDate" : 12345,
    "possibleVisitDays1" : "...",
    "possibleVisitDays4" : "...",
    "color" : "...",
    "manualPosition" : {
      "when" : 12345,
      "y" : 12345.0,
      "x" : 12345.0,
      "who" : "..."
    },
    "timeWindowBeginTime3" : 12345,
    "type" : "...",
    "zipCode" : "...",
    "mobile" : "...",
    "possibleVisitDays3" : "...",
    "phone" : "...",
    "streetAndNumber" : "...",
    "photoURL" : "...",
    "allSkillsRequired" : true,
    "timeWindowEndTime3" : 12345,
    "timeWindowEndTime2" : 12345,
    "ownerId" : "...",
    "countryFull" : "...",
    "lastFeedback" : 12345,
    "lastVisitId" : "...",
    "sector" : "...",
    "possibleVisitDays2" : "...",
    "timeWindowBeginTime4" : 12345,
    "title" : "...",
    "requiredSkills" : "...",
    "timeWindowBeginTime1" : 12345,
    "getNotification" : true,
    "lastComment" : "...",
    "x" : 12345.0,
    "additionalAddress" : "...",
    "nextVisitDate" : 12345,
    "maxSpacing" : 12345,
    "city" : "...",
    "surName" : "...",
    "lastUpdateUser" : "...",
    "y" : 12345.0,
    "stateFull" : "...",
    "wholeVisitInTimeWindow" : true,
    "updateDate" : 12345
  } ]
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "clients" : [ {
      "customData" : {
        "property1" : "...",
        "property2" : "..."
      },
      "externRef" : "...",
      "providedProducts" : "...",
      "timeWindowBeginTime2" : 12345,
      "occupation" : "...",
      "allowedDepots" : "...",
      "agency" : "...",
      "email" : "...",
      "timeWindowEndTime4" : 12345,
      "frequencyType" : "...",
      "useManualPositioning" : true,
      "designation" : "...",
      "lastVisitDate" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "minSpacing" : 12345,
      "isCustomer" : true,
      "geocodeType" : "...",
      "givenName" : "...",
      "description" : "...",
      "frequency" : "...",
      "timeWindowEndTime1" : 12345,
      "visitType" : 12345,
      "id" : "...",
      "fixedVisitDuration" : 12345,
      "startsBefore" : "...",
      "creationDate" : 12345,
      "possibleVisitDays1" : "...",
      "possibleVisitDays4" : "...",
      "color" : "...",
      "manualPosition" : {
        "when" : 12345,
        "y" : 12345.0,
        "x" : 12345.0,
        "who" : "..."
      },
      "timeWindowBeginTime3" : 12345,
      "type" : "...",
      "zipCode" : "...",
      "mobile" : "...",
      "possibleVisitDays3" : "...",
      "phone" : "...",
      "streetAndNumber" : "...",
      "photoURL" : "...",
      "allSkillsRequired" : true,
      "timeWindowEndTime3" : 12345,
      "timeWindowEndTime2" : 12345,
      "ownerId" : "...",
      "countryFull" : "...",
      "lastFeedback" : 12345,
      "lastVisitId" : "...",
      "sector" : "...",
      "possibleVisitDays2" : "...",
      "timeWindowBeginTime4" : 12345,
      "title" : "...",
      "requiredSkills" : "...",
      "timeWindowBeginTime1" : 12345,
      "getNotification" : true,
      "lastComment" : "...",
      "x" : 12345.0,
      "additionalAddress" : "...",
      "nextVisitDate" : 12345,
      "maxSpacing" : 12345,
      "city" : "...",
      "surName" : "...",
      "lastUpdateUser" : "...",
      "y" : 12345.0,
      "stateFull" : "...",
      "wholeVisitInTimeWindow" : true,
      "updateDate" : 12345
    }, {
      "customData" : {
        "property1" : "...",
        "property2" : "..."
      },
      "externRef" : "...",
      "providedProducts" : "...",
      "timeWindowBeginTime2" : 12345,
      "occupation" : "...",
      "allowedDepots" : "...",
      "agency" : "...",
      "email" : "...",
      "timeWindowEndTime4" : 12345,
      "frequencyType" : "...",
      "useManualPositioning" : true,
      "designation" : "...",
      "lastVisitDate" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "minSpacing" : 12345,
      "isCustomer" : true,
      "geocodeType" : "...",
      "givenName" : "...",
      "description" : "...",
      "frequency" : "...",
      "timeWindowEndTime1" : 12345,
      "visitType" : 12345,
      "id" : "...",
      "fixedVisitDuration" : 12345,
      "startsBefore" : "...",
      "creationDate" : 12345,
      "possibleVisitDays1" : "...",
      "possibleVisitDays4" : "...",
      "color" : "...",
      "manualPosition" : {
        "when" : 12345,
        "y" : 12345.0,
        "x" : 12345.0,
        "who" : "..."
      },
      "timeWindowBeginTime3" : 12345,
      "type" : "...",
      "zipCode" : "...",
      "mobile" : "...",
      "possibleVisitDays3" : "...",
      "phone" : "...",
      "streetAndNumber" : "...",
      "photoURL" : "...",
      "allSkillsRequired" : true,
      "timeWindowEndTime3" : 12345,
      "timeWindowEndTime2" : 12345,
      "ownerId" : "...",
      "countryFull" : "...",
      "lastFeedback" : 12345,
      "lastVisitId" : "...",
      "sector" : "...",
      "possibleVisitDays2" : "...",
      "timeWindowBeginTime4" : 12345,
      "title" : "...",
      "requiredSkills" : "...",
      "timeWindowBeginTime1" : 12345,
      "getNotification" : true,
      "lastComment" : "...",
      "x" : 12345.0,
      "additionalAddress" : "...",
      "nextVisitDate" : 12345,
      "maxSpacing" : 12345,
      "city" : "...",
      "surName" : "...",
      "lastUpdateUser" : "...",
      "y" : 12345.0,
      "stateFull" : "...",
      "wholeVisitInTimeWindow" : true,
      "updateDate" : 12345
    } ],
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "WRONG_CONTRACTOR"
  }
}

4.2.2. Add orders to operational planning.

POST /toursolver/addOrdersToOperationalPlanning
Description

Add orders to operational planning.

This service will NOT trigger message (email/sms) sending

Table 13. Parameters
Type Name Description Schema Default

Body

body
optional

list of orders to be added

json_AddOperationalOrdersRequest

Table 14. Responses
HTTP Code Description Schema

201

Success

json_AddOperationalOrdersResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "orders" : [ {
    "report" : {
      "dataItem" : [ { }, { } ],
      "detailSet" : [ { }, { } ]
    },
    "isLate" : true,
    "lateNotificationTimeout" : 12345,
    "etaOrderId" : "...",
    "etaOrderData" : {
      "satisfaction" : { }
    },
    "distance" : 12345.0,
    "scanItems" : [ {
      "comment" : "...",
      "status" : "DeliveryToCustomer",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "comment" : "...",
      "status" : "PickupFromDepot",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "globalScanItemsStatus" : "ReturnedToDepot",
    "tourProgressNotificationSent" : true,
    "numberOfDeliveredItems" : 12345,
    "weatherSkyDescription" : "...",
    "weatherPrecipitationDesc" : "...",
    "weatherPrecipitationProbability" : 12345.0,
    "weatherTemperature" : 12345.0,
    "weatherSnowFall" : 12345.0,
    "weatherRainFall" : 12345.0,
    "weatherWindSpeed" : 12345.0,
    "weatherSnowCover" : 12345.0,
    "weatherVisibility" : 12345.0,
    "followUpShortLink" : "...",
    "missionId" : "...",
    "groupingId" : "...",
    "routeId" : "...",
    "lateStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "OTPPolicy" : "QRCODE",
    "OTPValue" : "...",
    "senderBarcode" : "...",
    "operationalResourceId" : "...",
    "plannedOrder" : {
      "dayId" : "...",
      "stopPosition" : 12345,
      "stopY" : 12345.0,
      "stopX" : 12345.0,
      "stopId" : "...",
      "stopType" : 12345,
      "stopDriveTime" : { },
      "stopStartTime" : { },
      "stopDuration" : { },
      "stopStatus" : 12345,
      "stopDriveDistance" : 12345,
      "stopElapsedDistance" : 12345,
      "resourceId" : "..."
    },
    "order" : {
      "allSkillsRequired" : true,
      "assignResources" : [ "...", "..." ],
      "assignCosts" : [ 12345, 12345 ],
      "documentReferences" : [ "...", "..." ],
      "courierPenalty" : 12345.0,
      "customDataMap" : {
        "property1" : "...",
        "property2" : "..."
      },
      "delayPenaltyPerHour" : 12345.0,
      "excludeResources" : [ "...", "..." ],
      "fixedVisitDuration" : { },
      "frequency" : "...",
      "id" : "...",
      "minDuration" : { },
      "minPartDuration" : { },
      "punctuality" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "requiredSkills" : [ "...", "..." ],
      "resourceCompatibility" : 12345.0,
      "sequenceNumber" : 12345,
      "timeWindows" : [ { }, { } ],
      "travelTimeModifier" : { },
      "type" : 12345,
      "unloadingDurationPerUnit" : { },
      "x" : 12345.0,
      "y" : 12345.0,
      "active" : true,
      "wholeVisitInTimeWindow" : true,
      "label" : "...",
      "evaluationInfos" : { },
      "possibleVisitDaysList" : [ "...", "..." ],
      "tsOrderMaximumSpacing" : 12345,
      "tsOrderMinimumSpacing" : 12345,
      "tsOrderLastVisit" : 12345,
      "customerId" : "...",
      "email" : "...",
      "phone" : "...",
      "tsOrderBefore" : "...",
      "tsOrderBeforeMaxTimeSpacing" : { },
      "tsOrderBeforeMinTimeSpacing" : { },
      "getNotifications" : true,
      "tsOrderFixed" : true,
      "scanItems" : [ { }, { } ],
      "invoiceId" : "...",
      "originalOperationalId" : "...",
      "maxDelayTime" : { },
      "maxDurationBeforeDepotDrop" : { },
      "allowedDepots" : "...",
      "providedProducts" : "...",
      "tsOrderDisjoint" : true,
      "tsOrderOneVisitPerTimeWindow" : true,
      "tsOrderMaxDropHours" : [ { }, { } ]
    },
    "date" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "start" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "end" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "status" : "RESUMED",
    "type" : "MISSION",
    "lon" : 12345.0,
    "lat" : 12345.0,
    "lastSynchroStatusChange" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "synchroStatus" : "UNKNOWN",
    "achievementStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementComment" : "...",
    "achievementStartLat" : 12345.0,
    "achievementStartLon" : 12345.0,
    "achievementEndLat" : 12345.0,
    "achievementEndLon" : 12345.0,
    "geocode" : {
      "addressComplement" : "...",
      "address" : "...",
      "postcode" : "...",
      "city" : "...",
      "region" : "...",
      "country" : "...",
      "score" : 12345.0,
      "geocodeType" : 12345,
      "geocodeCity" : "...",
      "geocodePostalCode" : "...",
      "geocodeAddressLine" : "..."
    },
    "signatureSvg" : "...",
    "signaturePicture" : "...",
    "data" : {
      "property1" : "...",
      "property2" : "..."
    },
    "pictures" : [ "...", "..." ],
    "simulationId" : "...",
    "simulationDayId" : "...",
    "timeWindowEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "timeWindowStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "appointmentChanged" : true,
    "timeZone" : "...",
    "invoiceSent" : true,
    "customerId" : "...",
    "appointmentFixed" : true,
    "documentUrls" : [ "...", "..." ],
    "organization" : "...",
    "canceledByUser" : true,
    "canceledByCustomer" : true,
    "rescheduled" : true,
    "rescheduleCount" : 12345,
    "rescheduledInSimulation" : "...",
    "fuelType" : "...",
    "vehicleType" : "...",
    "averageFuelConsumption" : 12345.0,
    "workerSignatureSvg" : "...",
    "workerSignaturePicture" : "...",
    "signerName" : "...",
    "zoneId" : {
      "availableZoneIds" : [ "...", "..." ],
      "id" : "...",
      "rules" : { }
    },
    "longId" : 12345,
    "id" : "..."
  }, {
    "report" : {
      "dataItem" : [ { }, { } ],
      "detailSet" : [ { }, { } ]
    },
    "isLate" : true,
    "lateNotificationTimeout" : 12345,
    "etaOrderId" : "...",
    "etaOrderData" : {
      "satisfaction" : { }
    },
    "distance" : 12345.0,
    "scanItems" : [ {
      "comment" : "...",
      "status" : "MissingInDepot",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "comment" : "...",
      "status" : "PickupFromColleague",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "globalScanItemsStatus" : "PickupFromDepot",
    "tourProgressNotificationSent" : true,
    "numberOfDeliveredItems" : 12345,
    "weatherSkyDescription" : "...",
    "weatherPrecipitationDesc" : "...",
    "weatherPrecipitationProbability" : 12345.0,
    "weatherTemperature" : 12345.0,
    "weatherSnowFall" : 12345.0,
    "weatherRainFall" : 12345.0,
    "weatherWindSpeed" : 12345.0,
    "weatherSnowCover" : 12345.0,
    "weatherVisibility" : 12345.0,
    "followUpShortLink" : "...",
    "missionId" : "...",
    "groupingId" : "...",
    "routeId" : "...",
    "lateStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "OTPPolicy" : "NFC",
    "OTPValue" : "...",
    "senderBarcode" : "...",
    "operationalResourceId" : "...",
    "plannedOrder" : {
      "dayId" : "...",
      "stopPosition" : 12345,
      "stopY" : 12345.0,
      "stopX" : 12345.0,
      "stopId" : "...",
      "stopType" : 12345,
      "stopDriveTime" : { },
      "stopStartTime" : { },
      "stopDuration" : { },
      "stopStatus" : 12345,
      "stopDriveDistance" : 12345,
      "stopElapsedDistance" : 12345,
      "resourceId" : "..."
    },
    "order" : {
      "allSkillsRequired" : true,
      "assignResources" : [ "...", "..." ],
      "assignCosts" : [ 12345, 12345 ],
      "documentReferences" : [ "...", "..." ],
      "courierPenalty" : 12345.0,
      "customDataMap" : {
        "property1" : "...",
        "property2" : "..."
      },
      "delayPenaltyPerHour" : 12345.0,
      "excludeResources" : [ "...", "..." ],
      "fixedVisitDuration" : { },
      "frequency" : "...",
      "id" : "...",
      "minDuration" : { },
      "minPartDuration" : { },
      "punctuality" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "requiredSkills" : [ "...", "..." ],
      "resourceCompatibility" : 12345.0,
      "sequenceNumber" : 12345,
      "timeWindows" : [ { }, { } ],
      "travelTimeModifier" : { },
      "type" : 12345,
      "unloadingDurationPerUnit" : { },
      "x" : 12345.0,
      "y" : 12345.0,
      "active" : true,
      "wholeVisitInTimeWindow" : true,
      "label" : "...",
      "evaluationInfos" : { },
      "possibleVisitDaysList" : [ "...", "..." ],
      "tsOrderMaximumSpacing" : 12345,
      "tsOrderMinimumSpacing" : 12345,
      "tsOrderLastVisit" : 12345,
      "customerId" : "...",
      "email" : "...",
      "phone" : "...",
      "tsOrderBefore" : "...",
      "tsOrderBeforeMaxTimeSpacing" : { },
      "tsOrderBeforeMinTimeSpacing" : { },
      "getNotifications" : true,
      "tsOrderFixed" : true,
      "scanItems" : [ { }, { } ],
      "invoiceId" : "...",
      "originalOperationalId" : "...",
      "maxDelayTime" : { },
      "maxDurationBeforeDepotDrop" : { },
      "allowedDepots" : "...",
      "providedProducts" : "...",
      "tsOrderDisjoint" : true,
      "tsOrderOneVisitPerTimeWindow" : true,
      "tsOrderMaxDropHours" : [ { }, { } ]
    },
    "date" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "start" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "end" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "status" : "STARTED",
    "type" : "WAYPOINT",
    "lon" : 12345.0,
    "lat" : 12345.0,
    "lastSynchroStatusChange" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "synchroStatus" : "PUBLISHED",
    "achievementStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementComment" : "...",
    "achievementStartLat" : 12345.0,
    "achievementStartLon" : 12345.0,
    "achievementEndLat" : 12345.0,
    "achievementEndLon" : 12345.0,
    "geocode" : {
      "addressComplement" : "...",
      "address" : "...",
      "postcode" : "...",
      "city" : "...",
      "region" : "...",
      "country" : "...",
      "score" : 12345.0,
      "geocodeType" : 12345,
      "geocodeCity" : "...",
      "geocodePostalCode" : "...",
      "geocodeAddressLine" : "..."
    },
    "signatureSvg" : "...",
    "signaturePicture" : "...",
    "data" : {
      "property1" : "...",
      "property2" : "..."
    },
    "pictures" : [ "...", "..." ],
    "simulationId" : "...",
    "simulationDayId" : "...",
    "timeWindowEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "timeWindowStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "appointmentChanged" : true,
    "timeZone" : "...",
    "invoiceSent" : true,
    "customerId" : "...",
    "appointmentFixed" : true,
    "documentUrls" : [ "...", "..." ],
    "organization" : "...",
    "canceledByUser" : true,
    "canceledByCustomer" : true,
    "rescheduled" : true,
    "rescheduleCount" : 12345,
    "rescheduledInSimulation" : "...",
    "fuelType" : "...",
    "vehicleType" : "...",
    "averageFuelConsumption" : 12345.0,
    "workerSignatureSvg" : "...",
    "workerSignaturePicture" : "...",
    "signerName" : "...",
    "zoneId" : {
      "availableZoneIds" : [ "...", "..." ],
      "id" : "...",
      "rules" : { }
    },
    "longId" : 12345,
    "id" : "..."
  } ]
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "orders" : [ {
      "report" : {
        "dataItem" : [ { }, { } ],
        "detailSet" : [ { }, { } ]
      },
      "isLate" : true,
      "lateNotificationTimeout" : 12345,
      "etaOrderId" : "...",
      "etaOrderData" : {
        "satisfaction" : { }
      },
      "distance" : 12345.0,
      "scanItems" : [ {
        "comment" : "...",
        "status" : "MissingParcel",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      }, {
        "comment" : "...",
        "status" : "DeliveryToColleague",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      } ],
      "globalScanItemsStatus" : "MissingInDepot",
      "tourProgressNotificationSent" : true,
      "numberOfDeliveredItems" : 12345,
      "weatherSkyDescription" : "...",
      "weatherPrecipitationDesc" : "...",
      "weatherPrecipitationProbability" : 12345.0,
      "weatherTemperature" : 12345.0,
      "weatherSnowFall" : 12345.0,
      "weatherRainFall" : 12345.0,
      "weatherWindSpeed" : 12345.0,
      "weatherSnowCover" : 12345.0,
      "weatherVisibility" : 12345.0,
      "followUpShortLink" : "...",
      "missionId" : "...",
      "groupingId" : "...",
      "routeId" : "...",
      "lateStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "OTPPolicy" : "BARCODE",
      "OTPValue" : "...",
      "senderBarcode" : "...",
      "operationalResourceId" : "...",
      "plannedOrder" : {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      },
      "order" : {
        "allSkillsRequired" : true,
        "assignResources" : [ "...", "..." ],
        "assignCosts" : [ 12345, 12345 ],
        "documentReferences" : [ "...", "..." ],
        "courierPenalty" : 12345.0,
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "delayPenaltyPerHour" : 12345.0,
        "excludeResources" : [ "...", "..." ],
        "fixedVisitDuration" : { },
        "frequency" : "...",
        "id" : "...",
        "minDuration" : { },
        "minPartDuration" : { },
        "punctuality" : 12345,
        "quantities" : [ 12345.0, 12345.0 ],
        "requiredSkills" : [ "...", "..." ],
        "resourceCompatibility" : 12345.0,
        "sequenceNumber" : 12345,
        "timeWindows" : [ { }, { } ],
        "travelTimeModifier" : { },
        "type" : 12345,
        "unloadingDurationPerUnit" : { },
        "x" : 12345.0,
        "y" : 12345.0,
        "active" : true,
        "wholeVisitInTimeWindow" : true,
        "label" : "...",
        "evaluationInfos" : { },
        "possibleVisitDaysList" : [ "...", "..." ],
        "tsOrderMaximumSpacing" : 12345,
        "tsOrderMinimumSpacing" : 12345,
        "tsOrderLastVisit" : 12345,
        "customerId" : "...",
        "email" : "...",
        "phone" : "...",
        "tsOrderBefore" : "...",
        "tsOrderBeforeMaxTimeSpacing" : { },
        "tsOrderBeforeMinTimeSpacing" : { },
        "getNotifications" : true,
        "tsOrderFixed" : true,
        "scanItems" : [ { }, { } ],
        "invoiceId" : "...",
        "originalOperationalId" : "...",
        "maxDelayTime" : { },
        "maxDurationBeforeDepotDrop" : { },
        "allowedDepots" : "...",
        "providedProducts" : "...",
        "tsOrderDisjoint" : true,
        "tsOrderOneVisitPerTimeWindow" : true,
        "tsOrderMaxDropHours" : [ { }, { } ]
      },
      "date" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "status" : "FINISHED",
      "type" : "RESTBREAK",
      "lon" : 12345.0,
      "lat" : 12345.0,
      "lastSynchroStatusChange" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "synchroStatus" : "UNKNOWN",
      "achievementStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementComment" : "...",
      "achievementStartLat" : 12345.0,
      "achievementStartLon" : 12345.0,
      "achievementEndLat" : 12345.0,
      "achievementEndLon" : 12345.0,
      "geocode" : {
        "addressComplement" : "...",
        "address" : "...",
        "postcode" : "...",
        "city" : "...",
        "region" : "...",
        "country" : "...",
        "score" : 12345.0,
        "geocodeType" : 12345,
        "geocodeCity" : "...",
        "geocodePostalCode" : "...",
        "geocodeAddressLine" : "..."
      },
      "signatureSvg" : "...",
      "signaturePicture" : "...",
      "data" : {
        "property1" : "...",
        "property2" : "..."
      },
      "pictures" : [ "...", "..." ],
      "simulationId" : "...",
      "simulationDayId" : "...",
      "timeWindowEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "timeWindowStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "appointmentChanged" : true,
      "timeZone" : "...",
      "invoiceSent" : true,
      "customerId" : "...",
      "appointmentFixed" : true,
      "documentUrls" : [ "...", "..." ],
      "organization" : "...",
      "canceledByUser" : true,
      "canceledByCustomer" : true,
      "rescheduled" : true,
      "rescheduleCount" : 12345,
      "rescheduledInSimulation" : "...",
      "fuelType" : "...",
      "vehicleType" : "...",
      "averageFuelConsumption" : 12345.0,
      "workerSignatureSvg" : "...",
      "workerSignaturePicture" : "...",
      "signerName" : "...",
      "zoneId" : {
        "availableZoneIds" : [ "...", "..." ],
        "id" : "...",
        "rules" : { }
      },
      "longId" : 12345,
      "id" : "..."
    }, {
      "report" : {
        "dataItem" : [ { }, { } ],
        "detailSet" : [ { }, { } ]
      },
      "isLate" : true,
      "lateNotificationTimeout" : 12345,
      "etaOrderId" : "...",
      "etaOrderData" : {
        "satisfaction" : { }
      },
      "distance" : 12345.0,
      "scanItems" : [ {
        "comment" : "...",
        "status" : "MissingParcel",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      }, {
        "comment" : "...",
        "status" : "PickupFromCustomer",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      } ],
      "globalScanItemsStatus" : "DeliveryToColleague",
      "tourProgressNotificationSent" : true,
      "numberOfDeliveredItems" : 12345,
      "weatherSkyDescription" : "...",
      "weatherPrecipitationDesc" : "...",
      "weatherPrecipitationProbability" : 12345.0,
      "weatherTemperature" : 12345.0,
      "weatherSnowFall" : 12345.0,
      "weatherRainFall" : 12345.0,
      "weatherWindSpeed" : 12345.0,
      "weatherSnowCover" : 12345.0,
      "weatherVisibility" : 12345.0,
      "followUpShortLink" : "...",
      "missionId" : "...",
      "groupingId" : "...",
      "routeId" : "...",
      "lateStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "OTPPolicy" : "PINCODE",
      "OTPValue" : "...",
      "senderBarcode" : "...",
      "operationalResourceId" : "...",
      "plannedOrder" : {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      },
      "order" : {
        "allSkillsRequired" : true,
        "assignResources" : [ "...", "..." ],
        "assignCosts" : [ 12345, 12345 ],
        "documentReferences" : [ "...", "..." ],
        "courierPenalty" : 12345.0,
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "delayPenaltyPerHour" : 12345.0,
        "excludeResources" : [ "...", "..." ],
        "fixedVisitDuration" : { },
        "frequency" : "...",
        "id" : "...",
        "minDuration" : { },
        "minPartDuration" : { },
        "punctuality" : 12345,
        "quantities" : [ 12345.0, 12345.0 ],
        "requiredSkills" : [ "...", "..." ],
        "resourceCompatibility" : 12345.0,
        "sequenceNumber" : 12345,
        "timeWindows" : [ { }, { } ],
        "travelTimeModifier" : { },
        "type" : 12345,
        "unloadingDurationPerUnit" : { },
        "x" : 12345.0,
        "y" : 12345.0,
        "active" : true,
        "wholeVisitInTimeWindow" : true,
        "label" : "...",
        "evaluationInfos" : { },
        "possibleVisitDaysList" : [ "...", "..." ],
        "tsOrderMaximumSpacing" : 12345,
        "tsOrderMinimumSpacing" : 12345,
        "tsOrderLastVisit" : 12345,
        "customerId" : "...",
        "email" : "...",
        "phone" : "...",
        "tsOrderBefore" : "...",
        "tsOrderBeforeMaxTimeSpacing" : { },
        "tsOrderBeforeMinTimeSpacing" : { },
        "getNotifications" : true,
        "tsOrderFixed" : true,
        "scanItems" : [ { }, { } ],
        "invoiceId" : "...",
        "originalOperationalId" : "...",
        "maxDelayTime" : { },
        "maxDurationBeforeDepotDrop" : { },
        "allowedDepots" : "...",
        "providedProducts" : "...",
        "tsOrderDisjoint" : true,
        "tsOrderOneVisitPerTimeWindow" : true,
        "tsOrderMaxDropHours" : [ { }, { } ]
      },
      "date" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "status" : "STARTED",
      "type" : "END",
      "lon" : 12345.0,
      "lat" : 12345.0,
      "lastSynchroStatusChange" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "synchroStatus" : "SENT",
      "achievementStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementComment" : "...",
      "achievementStartLat" : 12345.0,
      "achievementStartLon" : 12345.0,
      "achievementEndLat" : 12345.0,
      "achievementEndLon" : 12345.0,
      "geocode" : {
        "addressComplement" : "...",
        "address" : "...",
        "postcode" : "...",
        "city" : "...",
        "region" : "...",
        "country" : "...",
        "score" : 12345.0,
        "geocodeType" : 12345,
        "geocodeCity" : "...",
        "geocodePostalCode" : "...",
        "geocodeAddressLine" : "..."
      },
      "signatureSvg" : "...",
      "signaturePicture" : "...",
      "data" : {
        "property1" : "...",
        "property2" : "..."
      },
      "pictures" : [ "...", "..." ],
      "simulationId" : "...",
      "simulationDayId" : "...",
      "timeWindowEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "timeWindowStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "appointmentChanged" : true,
      "timeZone" : "...",
      "invoiceSent" : true,
      "customerId" : "...",
      "appointmentFixed" : true,
      "documentUrls" : [ "...", "..." ],
      "organization" : "...",
      "canceledByUser" : true,
      "canceledByCustomer" : true,
      "rescheduled" : true,
      "rescheduleCount" : 12345,
      "rescheduledInSimulation" : "...",
      "fuelType" : "...",
      "vehicleType" : "...",
      "averageFuelConsumption" : 12345.0,
      "workerSignatureSvg" : "...",
      "workerSignaturePicture" : "...",
      "signerName" : "...",
      "zoneId" : {
        "availableZoneIds" : [ "...", "..." ],
        "id" : "...",
        "rules" : { }
      },
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "POSITION_UNKOWN_ERROR"
  }
}

4.2.3. Add tracking positions for a specific mobile user.

POST /toursolver/addPositions
Description

Add tracking positions for a specific mobile user.

Table 15. Parameters
Type Name Description Schema Default

Body

body
optional

json_AddPositionsRequest

Table 16. Responses
HTTP Code Description Schema

201

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "positions" : [ {
    "date" : 12345,
    "lon" : 12345.0,
    "lat" : 12345.0,
    "accuracy" : 12345.0,
    "privateMode" : true,
    "gpsStatus" : "OFFLINE",
    "batteryLevel" : 12345.0,
    "heading" : 12345.0
  }, {
    "date" : 12345,
    "lon" : 12345.0,
    "lat" : 12345.0,
    "accuracy" : 12345.0,
    "privateMode" : true,
    "gpsStatus" : "OFFLINE",
    "batteryLevel" : 12345.0,
    "heading" : 12345.0
  } ],
  "userLogin" : "..."
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "MISSING_CREATOR"
  }
}

4.2.4. Add a user.

POST /toursolver/addUser
Description

Add a user.

A user must have : - a login that must not be already used by another user. - a last name - an organization at least

If (and only if) the user has the MOBILE role, a password must be provided. Note that this password will be used only for the mobile app connection.

Table 17. Parameters
Type Name Description Schema Default

Body

body
optional

json_UserInfo

Table 18. Responses
HTTP Code Description Schema

201

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "enabled" : true,
  "firstName" : "...",
  "lastName" : "...",
  "login" : "...",
  "password" : "...",
  "organizations" : [ "...", "..." ],
  "roles" : [ "SEEOTHERSPLANNINGS", "CLIENTWRITE" ],
  "workPatterns" : [ {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  }, {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  } ],
  "useGlobalDaysOff" : true,
  "daysOff" : [ {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "reason" : "..."
  }, {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "SATURDAY"
    },
    "reason" : "..."
  } ],
  "useSSO" : true,
  "phoneNumber" : "...",
  "profile" : "..."
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "MISSING_ID"
  }
}

4.2.5. Add unplanned orders to a finished optimization Use this service to add unplanned orders to a finished optimization.

POST /toursolver/addVisits
Description

Add unplanned orders to a finished optimization

Use this service to add unplanned orders to a finished optimization. These orders can then be planned through the UI result page, but not through the api.

Table 19. Parameters
Type Name Description Schema Default

Body

body
optional

visits to add, with id of target simulation or job, and language code

json_AddVisitsRequest

Table 20. Responses
HTTP Code Description Schema

201

Success

json_AddVisitsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "id" : "...",
  "orders" : [ {
    "allSkillsRequired" : true,
    "assignResources" : [ "...", "..." ],
    "assignCosts" : [ 12345, 12345 ],
    "documentReferences" : [ "...", "..." ],
    "courierPenalty" : 12345.0,
    "customDataMap" : {
      "property1" : "...",
      "property2" : "..."
    },
    "delayPenaltyPerHour" : 12345.0,
    "excludeResources" : [ "...", "..." ],
    "fixedVisitDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "frequency" : "...",
    "id" : "...",
    "minDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "minPartDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "punctuality" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "requiredSkills" : [ "...", "..." ],
    "resourceCompatibility" : 12345.0,
    "sequenceNumber" : 12345,
    "timeWindows" : [ {
      "beginTime" : { },
      "endTime" : { }
    }, {
      "beginTime" : { },
      "endTime" : { }
    } ],
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "type" : 12345,
    "unloadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "x" : 12345.0,
    "y" : 12345.0,
    "active" : true,
    "wholeVisitInTimeWindow" : true,
    "label" : "...",
    "evaluationInfos" : {
      "orderOriginalResourceId" : "...",
      "orderOriginalVisitDay" : "...",
      "orderPosition" : 12345
    },
    "possibleVisitDaysList" : [ "...", "..." ],
    "tsOrderMaximumSpacing" : 12345,
    "tsOrderMinimumSpacing" : 12345,
    "tsOrderLastVisit" : 12345,
    "customerId" : "...",
    "email" : "...",
    "phone" : "...",
    "tsOrderBefore" : "...",
    "tsOrderBeforeMaxTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "tsOrderBeforeMinTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "getNotifications" : true,
    "tsOrderFixed" : true,
    "scanItems" : [ {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "invoiceId" : "...",
    "originalOperationalId" : "...",
    "maxDelayTime" : {
      "time" : 12345,
      "duration" : true
    },
    "maxDurationBeforeDepotDrop" : {
      "time" : 12345,
      "duration" : true
    },
    "allowedDepots" : "...",
    "providedProducts" : "...",
    "tsOrderDisjoint" : true,
    "tsOrderOneVisitPerTimeWindow" : true,
    "tsOrderMaxDropHours" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ]
  }, {
    "allSkillsRequired" : true,
    "assignResources" : [ "...", "..." ],
    "assignCosts" : [ 12345, 12345 ],
    "documentReferences" : [ "...", "..." ],
    "courierPenalty" : 12345.0,
    "customDataMap" : {
      "property1" : "...",
      "property2" : "..."
    },
    "delayPenaltyPerHour" : 12345.0,
    "excludeResources" : [ "...", "..." ],
    "fixedVisitDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "frequency" : "...",
    "id" : "...",
    "minDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "minPartDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "punctuality" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "requiredSkills" : [ "...", "..." ],
    "resourceCompatibility" : 12345.0,
    "sequenceNumber" : 12345,
    "timeWindows" : [ {
      "beginTime" : { },
      "endTime" : { }
    }, {
      "beginTime" : { },
      "endTime" : { }
    } ],
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "type" : 12345,
    "unloadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "x" : 12345.0,
    "y" : 12345.0,
    "active" : true,
    "wholeVisitInTimeWindow" : true,
    "label" : "...",
    "evaluationInfos" : {
      "orderOriginalResourceId" : "...",
      "orderOriginalVisitDay" : "...",
      "orderPosition" : 12345
    },
    "possibleVisitDaysList" : [ "...", "..." ],
    "tsOrderMaximumSpacing" : 12345,
    "tsOrderMinimumSpacing" : 12345,
    "tsOrderLastVisit" : 12345,
    "customerId" : "...",
    "email" : "...",
    "phone" : "...",
    "tsOrderBefore" : "...",
    "tsOrderBeforeMaxTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "tsOrderBeforeMinTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "getNotifications" : true,
    "tsOrderFixed" : true,
    "scanItems" : [ {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "invoiceId" : "...",
    "originalOperationalId" : "...",
    "maxDelayTime" : {
      "time" : 12345,
      "duration" : true
    },
    "maxDurationBeforeDepotDrop" : {
      "time" : 12345,
      "duration" : true
    },
    "allowedDepots" : "...",
    "providedProducts" : "...",
    "tsOrderDisjoint" : true,
    "tsOrderOneVisitPerTimeWindow" : true,
    "tsOrderMaxDropHours" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ]
  } ],
  "language" : "..."
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "status" : "...",
    "message" : "..."
  }
}

4.2.6. Get schedule slot status for a given point.

POST /toursolver/checkSlots
Description

Get schedule slot status for a given point.

This service returns for each specified slot if it’s free or not.

Table 21. Parameters
Type Name Description Schema Default

Body

body
optional

slots definition, day and position

json_CheckScheduleSlots

Table 22. Responses
HTTP Code Description Schema

201

Success

json_CheckScheduleSlotsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "timeWindows" : [ {
    "start" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    },
    "maxAppointments" : 12345,
    "end" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    }
  }, {
    "start" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    },
    "maxAppointments" : 12345,
    "end" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    }
  } ],
  "maxDistance" : 12345,
  "lat" : 12345.0,
  "lon" : 12345.0,
  "day" : 12345,
  "computeDistances" : true
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "slots" : [ {
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "free" : true,
      "distanceToClosest" : 12345.0
    }, {
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "free" : true,
      "distanceToClosest" : 12345.0
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "NO_RESOURCES"
  }
}

4.2.7. Create an order to be scheduled.

POST /toursolver/createAndScheduleOrder
Description

Create an order to be scheduled.

Table 23. Parameters
Type Name Description Schema Default

Body

body
optional

json_SchedulingRequest

Table 24. Responses
HTTP Code Description Schema

201

Success

string

Consumes
  • application/json

Produces
  • application/json

Example HTTP request

=.Request body

{
  "timeWindow" : {
    "wishedStart" : 12345,
    "wishedEnd" : 12345
  },
  "customer" : {
    "name" : "...",
    "phone" : {
      "number" : "...",
      "country" : "..."
    },
    "extra" : {
      "property1" : "...",
      "property2" : "..."
    },
    "id" : "..."
  },
  "duration" : 12345,
  "address" : {
    "geocodeScore" : 12345,
    "countryCode" : "...",
    "geocodeType" : 12345,
    "y" : 12345.0,
    "city" : "...",
    "postalCode" : "...",
    "x" : 12345.0,
    "region" : "...",
    "streetAndNumber" : "...",
    "complement" : "..."
  }
}
Example HTTP response

=.Response 201

{ }

4.2.8. Create one sub key.

POST /toursolver/createSubKey
Description

Create one sub key

Table 25. Parameters
Type Name Description Schema Default

Body

body
optional

json_SubKey

Table 26. Responses
HTTP Code Description Schema

201

Success

json_SubKeyResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 201

{
  "application/json" : {
    "subKeys" : [ {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    }, {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "MAX_OPTIM_DURATION_TOO_LONG"
  }
}

4.2.9. Delete clients Use this service to delete clients.

DELETE /toursolver/deleteClients
Description

Delete clients

Use this service to delete clients.

Table 27. Parameters
Type Name Description Schema Default

Body

body
optional

list of clients externRef or list of clients internal ids (quicker), ids will be used over externRef list if both are povided.

json_DeleteClientsRequest

Table 28. Responses
HTTP Code Description Schema

204

Success

json_DeleteClientsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "clientsExternRefs" : [ "...", "..." ],
  "ids" : [ "...", "..." ]
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "FORBIDDEN_FILTE_TYPE"
  }
}

4.2.10. Delete order from operational planning.

DELETE /toursolver/deleteOrdersFromOperationalPlanning
Description

Delete order from operational planning.

Table 29. Parameters
Type Name Description Schema Default

Body

body
optional

list of orders ids to be deleted

json_DeleteOperationalOrdersRequest

Table 30. Responses
HTTP Code Description Schema

204

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "ordersIds" : [ "...", "..." ]
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "TOO_MANY_RESOURCES"
  }
}

4.2.11. Delete one sub key.

DELETE /toursolver/deleteSubKey
Description

Delete one sub key

Table 31. Parameters
Type Name Description Schema Default

Query

key
optional

string

Table 32. Responses
HTTP Code Description Schema

204

Success

json_SubKeyResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 204

{
  "application/json" : {
    "subKeys" : [ {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    }, {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "ROUTE_UNPUBLISH_OVER"
  }
}

4.2.12. Delete one user.

DELETE /toursolver/deleteUser
Description

Delete one user

Table 33. Parameters
Type Name Description Schema Default

Body

body
optional

only login field is used here

json_UserInfo

Table 34. Responses
HTTP Code Description Schema

204

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "enabled" : true,
  "firstName" : "...",
  "lastName" : "...",
  "login" : "...",
  "password" : "...",
  "organizations" : [ "...", "..." ],
  "roles" : [ "SEEOTHERSPLANNINGS", "CLIENTWRITE" ],
  "workPatterns" : [ {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  }, {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  } ],
  "useGlobalDaysOff" : true,
  "daysOff" : [ {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "reason" : "..."
  }, {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "SATURDAY"
    },
    "reason" : "..."
  } ],
  "useSSO" : true,
  "phoneNumber" : "...",
  "profile" : "..."
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "MAX_WEB_USERS_REACHED"
  }
}

4.2.13. Get known depots Get depots defined in ToursolverCloud GUI.

GET /toursolver/depots
Description

Get known depots

Get depots defined in ToursolverCloud GUI.

Table 35. Parameters
Type Name Description Schema Default

Query

depotName
optional

if a depot name is specified only one depot will be returned.

string

Table 36. Responses
HTTP Code Description Schema

200

Success

json_DepotsResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "depots" : [ {
      "id" : "...",
      "openingDaysList" : [ "...", "..." ],
      "timeWindows" : [ {
        "beginTime" : { },
        "endTime" : { }
      }, {
        "beginTime" : { },
        "endTime" : { }
      } ],
      "availability" : true,
      "resourceNames" : "...",
      "excludeResources" : "...",
      "travelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "fixedLoadingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "loadingDurationPerUnit" : {
        "time" : 12345,
        "duration" : true
      },
      "priority" : 12345,
      "requiredProducts" : "...",
      "allProductsRequired" : true,
      "deliveryQuantities" : [ 12345, 12345 ],
      "pickupQuantities" : [ 12345, 12345 ],
      "x" : 12345.0,
      "y" : 12345.0,
      "supportedProducts" : "..."
    }, {
      "id" : "...",
      "openingDaysList" : [ "...", "..." ],
      "timeWindows" : [ {
        "beginTime" : { },
        "endTime" : { }
      }, {
        "beginTime" : { },
        "endTime" : { }
      } ],
      "availability" : true,
      "resourceNames" : "...",
      "excludeResources" : "...",
      "travelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "fixedLoadingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "loadingDurationPerUnit" : {
        "time" : 12345,
        "duration" : true
      },
      "priority" : 12345,
      "requiredProducts" : "...",
      "allProductsRequired" : true,
      "deliveryQuantities" : [ 12345, 12345 ],
      "pickupQuantities" : [ 12345, 12345 ],
      "x" : 12345.0,
      "y" : 12345.0,
      "supportedProducts" : "..."
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "MAX_OPTIM_DURATION_TOO_LONG"
  }
}

4.2.14. Disable one user.

POST /toursolver/disableUser
Description

Disable one user

Table 37. Parameters
Type Name Description Schema Default

Body

body
optional

only login field is used here

json_UserInfo

Table 38. Responses
HTTP Code Description Schema

201

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "enabled" : true,
  "firstName" : "...",
  "lastName" : "...",
  "login" : "...",
  "password" : "...",
  "organizations" : [ "...", "..." ],
  "roles" : [ "SEEOTHERSPLANNINGS", "CLIENTWRITE" ],
  "workPatterns" : [ {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  }, {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  } ],
  "useGlobalDaysOff" : true,
  "daysOff" : [ {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "reason" : "..."
  }, {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "SATURDAY"
    },
    "reason" : "..."
  } ],
  "useSSO" : true,
  "phoneNumber" : "...",
  "profile" : "..."
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "INVALID_DATE"
  }
}

4.2.15. Enable one user.

POST /toursolver/enableUser
Description

Enable one user

Table 39. Parameters
Type Name Description Schema Default

Body

body
optional

only login field is used here

json_UserInfo

Table 40. Responses
HTTP Code Description Schema

201

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "enabled" : true,
  "firstName" : "...",
  "lastName" : "...",
  "login" : "...",
  "password" : "...",
  "organizations" : [ "...", "..." ],
  "roles" : [ "SEEOTHERSPLANNINGS", "CLIENTWRITE" ],
  "workPatterns" : [ {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  }, {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  } ],
  "useGlobalDaysOff" : true,
  "daysOff" : [ {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "reason" : "..."
  }, {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "SATURDAY"
    },
    "reason" : "..."
  } ],
  "useSSO" : true,
  "phoneNumber" : "...",
  "profile" : "..."
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "CLIENT_API_ERROR"
  }
}

4.2.16. Export to operational planning.

POST /toursolver/exportToOperationalPlanning
Description

Export to operational planning.

Exports the result of an optimization to operational planning that mobile resources will be able to browse on the field through a mobile app.

This command only works on completed optimizations. Mobile resource identifiers must have been set previously in TsCloud app. If optimization period overlaps an already existing operational planning, export will work only if the force attribut has been set to true.

Table 41. Parameters
Type Name Description Schema Default

Body

body
optional

json_OperationalExportRequest

Table 42. Responses
HTTP Code Description Schema

201

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "resourceMapping" : [ {
    "day" : 12345,
    "id" : "...",
    "operationalId" : "...",
    "fuelType" : "...",
    "vehicleType" : "...",
    "averageFuelConsumption" : 12345.0
  }, {
    "day" : 12345,
    "id" : "...",
    "operationalId" : "...",
    "fuelType" : "...",
    "vehicleType" : "...",
    "averageFuelConsumption" : 12345.0
  } ],
  "startDate" : {
    "leapYear" : true,
    "dayOfYear" : 12345,
    "chronology" : {
      "calendarType" : "...",
      "id" : "..."
    },
    "dayOfMonth" : 12345,
    "year" : 12345,
    "era" : { },
    "monthValue" : 12345,
    "month" : "SEPTEMBER",
    "dayOfWeek" : "MONDAY"
  },
  "force" : true,
  "taskId" : "...",
  "dayNums" : [ 12345, 12345 ],
  "generateFollowingLink" : true,
  "waitForWeatherUpdate" : true,
  "zoneId" : {
    "availableZoneIds" : [ "...", "..." ],
    "id" : "...",
    "rules" : {
      "transitions" : [ { }, { } ],
      "fixedOffset" : true,
      "transitionRules" : [ { }, { } ]
    }
  }
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "GATEWAY_ERROR"
  }
}

4.2.17. Find clients Use this service to find clients.

POST /toursolver/findClients
Description

Find clients

Use this service to find clients.

Table 43. Parameters
Type Name Description Schema Default

Body

body
optional

filters map

json_FindClientsRequest

Table 44. Responses
HTTP Code Description Schema

201

Success

json_FindClientsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "maxResults" : 12345,
  "filters" : {
    "property1" : "...",
    "property2" : "..."
  }
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "clients" : [ {
      "customData" : {
        "property1" : "...",
        "property2" : "..."
      },
      "externRef" : "...",
      "providedProducts" : "...",
      "timeWindowBeginTime2" : 12345,
      "occupation" : "...",
      "allowedDepots" : "...",
      "agency" : "...",
      "email" : "...",
      "timeWindowEndTime4" : 12345,
      "frequencyType" : "...",
      "useManualPositioning" : true,
      "designation" : "...",
      "lastVisitDate" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "minSpacing" : 12345,
      "isCustomer" : true,
      "geocodeType" : "...",
      "givenName" : "...",
      "description" : "...",
      "frequency" : "...",
      "timeWindowEndTime1" : 12345,
      "visitType" : 12345,
      "id" : "...",
      "fixedVisitDuration" : 12345,
      "startsBefore" : "...",
      "creationDate" : 12345,
      "possibleVisitDays1" : "...",
      "possibleVisitDays4" : "...",
      "color" : "...",
      "manualPosition" : {
        "when" : 12345,
        "y" : 12345.0,
        "x" : 12345.0,
        "who" : "..."
      },
      "timeWindowBeginTime3" : 12345,
      "type" : "...",
      "zipCode" : "...",
      "mobile" : "...",
      "possibleVisitDays3" : "...",
      "phone" : "...",
      "streetAndNumber" : "...",
      "photoURL" : "...",
      "allSkillsRequired" : true,
      "timeWindowEndTime3" : 12345,
      "timeWindowEndTime2" : 12345,
      "ownerId" : "...",
      "countryFull" : "...",
      "lastFeedback" : 12345,
      "lastVisitId" : "...",
      "sector" : "...",
      "possibleVisitDays2" : "...",
      "timeWindowBeginTime4" : 12345,
      "title" : "...",
      "requiredSkills" : "...",
      "timeWindowBeginTime1" : 12345,
      "getNotification" : true,
      "lastComment" : "...",
      "x" : 12345.0,
      "additionalAddress" : "...",
      "nextVisitDate" : 12345,
      "maxSpacing" : 12345,
      "city" : "...",
      "surName" : "...",
      "lastUpdateUser" : "...",
      "y" : 12345.0,
      "stateFull" : "...",
      "wholeVisitInTimeWindow" : true,
      "updateDate" : 12345
    }, {
      "customData" : {
        "property1" : "...",
        "property2" : "..."
      },
      "externRef" : "...",
      "providedProducts" : "...",
      "timeWindowBeginTime2" : 12345,
      "occupation" : "...",
      "allowedDepots" : "...",
      "agency" : "...",
      "email" : "...",
      "timeWindowEndTime4" : 12345,
      "frequencyType" : "...",
      "useManualPositioning" : true,
      "designation" : "...",
      "lastVisitDate" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "minSpacing" : 12345,
      "isCustomer" : true,
      "geocodeType" : "...",
      "givenName" : "...",
      "description" : "...",
      "frequency" : "...",
      "timeWindowEndTime1" : 12345,
      "visitType" : 12345,
      "id" : "...",
      "fixedVisitDuration" : 12345,
      "startsBefore" : "...",
      "creationDate" : 12345,
      "possibleVisitDays1" : "...",
      "possibleVisitDays4" : "...",
      "color" : "...",
      "manualPosition" : {
        "when" : 12345,
        "y" : 12345.0,
        "x" : 12345.0,
        "who" : "..."
      },
      "timeWindowBeginTime3" : 12345,
      "type" : "...",
      "zipCode" : "...",
      "mobile" : "...",
      "possibleVisitDays3" : "...",
      "phone" : "...",
      "streetAndNumber" : "...",
      "photoURL" : "...",
      "allSkillsRequired" : true,
      "timeWindowEndTime3" : 12345,
      "timeWindowEndTime2" : 12345,
      "ownerId" : "...",
      "countryFull" : "...",
      "lastFeedback" : 12345,
      "lastVisitId" : "...",
      "sector" : "...",
      "possibleVisitDays2" : "...",
      "timeWindowBeginTime4" : 12345,
      "title" : "...",
      "requiredSkills" : "...",
      "timeWindowBeginTime1" : 12345,
      "getNotification" : true,
      "lastComment" : "...",
      "x" : 12345.0,
      "additionalAddress" : "...",
      "nextVisitDate" : 12345,
      "maxSpacing" : 12345,
      "city" : "...",
      "surName" : "...",
      "lastUpdateUser" : "...",
      "y" : 12345.0,
      "stateFull" : "...",
      "wholeVisitInTimeWindow" : true,
      "updateDate" : 12345
    } ],
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "OPERATIONAL_ORDER_DB_ERROR"
  }
}

4.2.18. Get fulfillment information for a specified period of time.

GET /toursolver/fulfillment
Description

Get fulfillment information for a specified period of time.

Table 45. Parameters
Type Name Description Schema Default

Query

endDate
optional

planning period end

string

Query

lastUpdate
optional

if specified, only operationalOrders that have been modified since this date will be returned.

string

Query

startDate
optional

planning period start

string

Query

userLogin
optional

a mobile resource login (optional)

string

Query

zoneId
optional

a time zone id (optional)

Expected date format is "yyyy-MM-dd’T’HH:mm:ss" Expected time zone format is "UTC" or "area/city" as defined in IANA Time Zone Database (TZDB) (e.g. "Europe/Paris"). The default time zone is UTC

Note that you can configure a webhook to receive the fulfillment updates automatically (see configuration in UI).

string

Table 46. Responses
HTTP Code Description Schema

200

Success

json_FulfillmentResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "operationalOrderAchievements" : [ {
      "report" : {
        "dataItem" : [ { }, { } ],
        "detailSet" : [ { }, { } ]
      },
      "isLate" : true,
      "lateNotificationTimeout" : 12345,
      "etaOrderId" : "...",
      "etaOrderData" : {
        "satisfaction" : { }
      },
      "distance" : 12345.0,
      "scanItems" : [ {
        "comment" : "...",
        "status" : "DeliveryToDepot",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      }, {
        "comment" : "...",
        "status" : "DeliveryToCustomer",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      } ],
      "globalScanItemsStatus" : "DeliveryToCustomer",
      "tourProgressNotificationSent" : true,
      "numberOfDeliveredItems" : 12345,
      "weatherSkyDescription" : "...",
      "weatherPrecipitationDesc" : "...",
      "weatherPrecipitationProbability" : 12345.0,
      "weatherTemperature" : 12345.0,
      "weatherSnowFall" : 12345.0,
      "weatherRainFall" : 12345.0,
      "weatherWindSpeed" : 12345.0,
      "weatherSnowCover" : 12345.0,
      "weatherVisibility" : 12345.0,
      "followUpShortLink" : "...",
      "missionId" : "...",
      "groupingId" : "...",
      "routeId" : "...",
      "lateStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "OTPPolicy" : "NFC",
      "OTPValue" : "...",
      "senderBarcode" : "...",
      "operationalResourceId" : "...",
      "plannedOrder" : {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      },
      "order" : {
        "allSkillsRequired" : true,
        "assignResources" : [ "...", "..." ],
        "assignCosts" : [ 12345, 12345 ],
        "documentReferences" : [ "...", "..." ],
        "courierPenalty" : 12345.0,
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "delayPenaltyPerHour" : 12345.0,
        "excludeResources" : [ "...", "..." ],
        "fixedVisitDuration" : { },
        "frequency" : "...",
        "id" : "...",
        "minDuration" : { },
        "minPartDuration" : { },
        "punctuality" : 12345,
        "quantities" : [ 12345.0, 12345.0 ],
        "requiredSkills" : [ "...", "..." ],
        "resourceCompatibility" : 12345.0,
        "sequenceNumber" : 12345,
        "timeWindows" : [ { }, { } ],
        "travelTimeModifier" : { },
        "type" : 12345,
        "unloadingDurationPerUnit" : { },
        "x" : 12345.0,
        "y" : 12345.0,
        "active" : true,
        "wholeVisitInTimeWindow" : true,
        "label" : "...",
        "evaluationInfos" : { },
        "possibleVisitDaysList" : [ "...", "..." ],
        "tsOrderMaximumSpacing" : 12345,
        "tsOrderMinimumSpacing" : 12345,
        "tsOrderLastVisit" : 12345,
        "customerId" : "...",
        "email" : "...",
        "phone" : "...",
        "tsOrderBefore" : "...",
        "tsOrderBeforeMaxTimeSpacing" : { },
        "tsOrderBeforeMinTimeSpacing" : { },
        "getNotifications" : true,
        "tsOrderFixed" : true,
        "scanItems" : [ { }, { } ],
        "invoiceId" : "...",
        "originalOperationalId" : "...",
        "maxDelayTime" : { },
        "maxDurationBeforeDepotDrop" : { },
        "allowedDepots" : "...",
        "providedProducts" : "...",
        "tsOrderDisjoint" : true,
        "tsOrderOneVisitPerTimeWindow" : true,
        "tsOrderMaxDropHours" : [ { }, { } ]
      },
      "date" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "status" : "FINISHED",
      "type" : "BRIEFING",
      "lon" : 12345.0,
      "lat" : 12345.0,
      "lastSynchroStatusChange" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "synchroStatus" : "UNKNOWN",
      "achievementStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementComment" : "...",
      "achievementStartLat" : 12345.0,
      "achievementStartLon" : 12345.0,
      "achievementEndLat" : 12345.0,
      "achievementEndLon" : 12345.0,
      "geocode" : {
        "addressComplement" : "...",
        "address" : "...",
        "postcode" : "...",
        "city" : "...",
        "region" : "...",
        "country" : "...",
        "score" : 12345.0,
        "geocodeType" : 12345,
        "geocodeCity" : "...",
        "geocodePostalCode" : "...",
        "geocodeAddressLine" : "..."
      },
      "signatureSvg" : "...",
      "signaturePicture" : "...",
      "data" : {
        "property1" : "...",
        "property2" : "..."
      },
      "pictures" : [ "...", "..." ],
      "simulationId" : "...",
      "simulationDayId" : "...",
      "timeWindowEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "timeWindowStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "appointmentChanged" : true,
      "timeZone" : "...",
      "invoiceSent" : true,
      "customerId" : "...",
      "appointmentFixed" : true,
      "documentUrls" : [ "...", "..." ],
      "organization" : "...",
      "canceledByUser" : true,
      "canceledByCustomer" : true,
      "rescheduled" : true,
      "rescheduleCount" : 12345,
      "rescheduledInSimulation" : "...",
      "fuelType" : "...",
      "vehicleType" : "...",
      "averageFuelConsumption" : 12345.0,
      "workerSignatureSvg" : "...",
      "workerSignaturePicture" : "...",
      "signerName" : "...",
      "zoneId" : {
        "availableZoneIds" : [ "...", "..." ],
        "id" : "...",
        "rules" : { }
      },
      "longId" : 12345,
      "id" : "..."
    }, {
      "report" : {
        "dataItem" : [ { }, { } ],
        "detailSet" : [ { }, { } ]
      },
      "isLate" : true,
      "lateNotificationTimeout" : 12345,
      "etaOrderId" : "...",
      "etaOrderData" : {
        "satisfaction" : { }
      },
      "distance" : 12345.0,
      "scanItems" : [ {
        "comment" : "...",
        "status" : "PickupFromColleague",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      }, {
        "comment" : "...",
        "status" : "PickupFromColleague",
        "datetimePickupFromDepot" : { },
        "longitudePickupFromDepot" : 12345.0,
        "latitudePickupFromDepot" : 12345.0,
        "datetimeDeliveryToCustomer" : { },
        "longitudeDeliveryToCustomer" : 12345.0,
        "latitudeDeliveryToCustomer" : 12345.0,
        "datetimePickupFromCustomer" : { },
        "longitudePickupFromCustomer" : 12345.0,
        "latitudePickupFromCustomer" : 12345.0,
        "datetimeDeliveryToDepot" : { },
        "longitudeDeliveryToDepot" : 12345.0,
        "latitudeDeliveryToDepot" : 12345.0,
        "datetimeDeliveryToColleague" : { },
        "longitudeDeliveryToColleague" : 12345.0,
        "latitudeDeliveryToColleague" : 12345.0,
        "datetimePickupFromColleague" : { },
        "longitudePickupFromColleague" : 12345.0,
        "latitudePickupFromColleague" : 12345.0,
        "pictures" : [ "...", "..." ],
        "id" : "...",
        "order" : "...",
        "description" : "..."
      } ],
      "globalScanItemsStatus" : "ReturnedToDepot",
      "tourProgressNotificationSent" : true,
      "numberOfDeliveredItems" : 12345,
      "weatherSkyDescription" : "...",
      "weatherPrecipitationDesc" : "...",
      "weatherPrecipitationProbability" : 12345.0,
      "weatherTemperature" : 12345.0,
      "weatherSnowFall" : 12345.0,
      "weatherRainFall" : 12345.0,
      "weatherWindSpeed" : 12345.0,
      "weatherSnowCover" : 12345.0,
      "weatherVisibility" : 12345.0,
      "followUpShortLink" : "...",
      "missionId" : "...",
      "groupingId" : "...",
      "routeId" : "...",
      "lateStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "OTPPolicy" : "NONE",
      "OTPValue" : "...",
      "senderBarcode" : "...",
      "operationalResourceId" : "...",
      "plannedOrder" : {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      },
      "order" : {
        "allSkillsRequired" : true,
        "assignResources" : [ "...", "..." ],
        "assignCosts" : [ 12345, 12345 ],
        "documentReferences" : [ "...", "..." ],
        "courierPenalty" : 12345.0,
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "delayPenaltyPerHour" : 12345.0,
        "excludeResources" : [ "...", "..." ],
        "fixedVisitDuration" : { },
        "frequency" : "...",
        "id" : "...",
        "minDuration" : { },
        "minPartDuration" : { },
        "punctuality" : 12345,
        "quantities" : [ 12345.0, 12345.0 ],
        "requiredSkills" : [ "...", "..." ],
        "resourceCompatibility" : 12345.0,
        "sequenceNumber" : 12345,
        "timeWindows" : [ { }, { } ],
        "travelTimeModifier" : { },
        "type" : 12345,
        "unloadingDurationPerUnit" : { },
        "x" : 12345.0,
        "y" : 12345.0,
        "active" : true,
        "wholeVisitInTimeWindow" : true,
        "label" : "...",
        "evaluationInfos" : { },
        "possibleVisitDaysList" : [ "...", "..." ],
        "tsOrderMaximumSpacing" : 12345,
        "tsOrderMinimumSpacing" : 12345,
        "tsOrderLastVisit" : 12345,
        "customerId" : "...",
        "email" : "...",
        "phone" : "...",
        "tsOrderBefore" : "...",
        "tsOrderBeforeMaxTimeSpacing" : { },
        "tsOrderBeforeMinTimeSpacing" : { },
        "getNotifications" : true,
        "tsOrderFixed" : true,
        "scanItems" : [ { }, { } ],
        "invoiceId" : "...",
        "originalOperationalId" : "...",
        "maxDelayTime" : { },
        "maxDurationBeforeDepotDrop" : { },
        "allowedDepots" : "...",
        "providedProducts" : "...",
        "tsOrderDisjoint" : true,
        "tsOrderOneVisitPerTimeWindow" : true,
        "tsOrderMaxDropHours" : [ { }, { } ]
      },
      "date" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "status" : "REFUSED_BY_CUSTOMER",
      "type" : "WAYPOINT",
      "lon" : 12345.0,
      "lat" : 12345.0,
      "lastSynchroStatusChange" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "synchroStatus" : "UPDATED",
      "achievementStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "achievementComment" : "...",
      "achievementStartLat" : 12345.0,
      "achievementStartLon" : 12345.0,
      "achievementEndLat" : 12345.0,
      "achievementEndLon" : 12345.0,
      "geocode" : {
        "addressComplement" : "...",
        "address" : "...",
        "postcode" : "...",
        "city" : "...",
        "region" : "...",
        "country" : "...",
        "score" : 12345.0,
        "geocodeType" : 12345,
        "geocodeCity" : "...",
        "geocodePostalCode" : "...",
        "geocodeAddressLine" : "..."
      },
      "signatureSvg" : "...",
      "signaturePicture" : "...",
      "data" : {
        "property1" : "...",
        "property2" : "..."
      },
      "pictures" : [ "...", "..." ],
      "simulationId" : "...",
      "simulationDayId" : "...",
      "timeWindowEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "timeWindowStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedStart" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "wishedEnd" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "appointmentChanged" : true,
      "timeZone" : "...",
      "invoiceSent" : true,
      "customerId" : "...",
      "appointmentFixed" : true,
      "documentUrls" : [ "...", "..." ],
      "organization" : "...",
      "canceledByUser" : true,
      "canceledByCustomer" : true,
      "rescheduled" : true,
      "rescheduleCount" : 12345,
      "rescheduledInSimulation" : "...",
      "fuelType" : "...",
      "vehicleType" : "...",
      "averageFuelConsumption" : 12345.0,
      "workerSignatureSvg" : "...",
      "workerSignaturePicture" : "...",
      "signerName" : "...",
      "zoneId" : {
        "availableZoneIds" : [ "...", "..." ],
        "id" : "...",
        "rules" : { }
      },
      "longId" : 12345,
      "id" : "..."
    } ],
    "lastKnownPosition" : [ {
      "date" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "lon" : 12345.0,
      "lat" : 12345.0,
      "accuracy" : 12345.0,
      "privateLife" : true,
      "gpsStatus" : "NO_SIGNAL",
      "batteryLevel" : 12345,
      "longId" : 12345,
      "id" : "..."
    }, {
      "date" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "lon" : 12345.0,
      "lat" : 12345.0,
      "accuracy" : 12345.0,
      "privateLife" : true,
      "gpsStatus" : "NO_SIGNAL",
      "batteryLevel" : 12345,
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "MAX_MOBILE_USERS_REACHED"
  }
}

4.2.19. Get a gateway token.

GET /toursolver/gatewayToken
Description

Get a gateway token.

Get a gateway token that can be used to get connected to Toursolver GUI through the gateway.

Use this token to get connected to TsCloud GUI by passing it in the query like this : https://app.geoconcept.com/ToursolverCloud/ts/login?token=xxx

Table 47. Parameters
Type Name Description Schema Default

Query

login
optional

in multi-user context, you can specify the login. If not specified, the account main user will be used.

string

Table 48. Responses
HTTP Code Description Schema

200

Success

json_LoginTokenResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "token" : "...",
    "validUntil" : 12345,
    "message" : "...",
    "status" : "OK",
    "errCode" : "ROUTE_ORDERING_SEVERALAGENCIES"
  }
}

4.2.20. Get one subKey.

GET /toursolver/getSubKey
Description

Get one subKey

Table 49. Parameters
Type Name Description Schema Default

Query

key
optional

string

Table 50. Responses
HTTP Code Description Schema

200

Success

json_SubKeyResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "subKeys" : [ {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    }, {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "RESULT_NOT_FOUND"
  }
}

4.2.21. List sub keys.

GET /toursolver/listSubKeys
Description

List sub keys

Table 51. Parameters
Type Name Description Schema Default

Query

nameContains
optional

: subKeys will be filtered to return only the ones which name contains the submitted string.

string

Table 52. Responses
HTTP Code Description Schema

200

Success

json_SubKeyResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "subKeys" : [ {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    }, {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "ROUTE_ORDERING_NOPICKUP"
  }
}

4.2.22. Get the list of defined users.

GET /toursolver/listUsers
Description

Get the list of defined users. Some parameters can be used to filter the list.

Table 53. Parameters
Type Name Description Schema Default

Query

login
optional

if defined, will return only the user matching this login (and others filtering parameters will be ignored)

string

Query

organization
optional

if defined, only users linked with this organization will be returned

string

Query

profile
optional

if defined, only users of this profile will be returned

string

Table 54. Responses
HTTP Code Description Schema

200

Success

json_ListUsersResponse

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "users" : [ {
      "enabled" : true,
      "firstName" : "...",
      "lastName" : "...",
      "login" : "...",
      "password" : "...",
      "organizations" : [ "...", "..." ],
      "roles" : [ "MODIFYRESOURCECONSTRAINT", "MISSIONLOADING" ],
      "workPatterns" : [ {
        "days" : [ 12345, 12345 ],
        "range" : { }
      }, {
        "days" : [ 12345, 12345 ],
        "range" : { }
      } ],
      "useGlobalDaysOff" : true,
      "daysOff" : [ {
        "start" : { },
        "end" : { },
        "reason" : "..."
      }, {
        "start" : { },
        "end" : { },
        "reason" : "..."
      } ],
      "useSSO" : true,
      "phoneNumber" : "...",
      "profile" : "..."
    }, {
      "enabled" : true,
      "firstName" : "...",
      "lastName" : "...",
      "login" : "...",
      "password" : "...",
      "organizations" : [ "...", "..." ],
      "roles" : [ "DASHBOARD", "MODIFYOPTIMIZATIONSETTINGS" ],
      "workPatterns" : [ {
        "days" : [ 12345, 12345 ],
        "range" : { }
      }, {
        "days" : [ 12345, 12345 ],
        "range" : { }
      } ],
      "useGlobalDaysOff" : true,
      "daysOff" : [ {
        "start" : { },
        "end" : { },
        "reason" : "..."
      }, {
        "start" : { },
        "end" : { },
        "reason" : "..."
      } ],
      "useSSO" : true,
      "phoneNumber" : "...",
      "profile" : "..."
    } ],
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "ROUTE_ORDERING_FAILURE"
  }
}

4.2.23. Start an optimization.

POST /toursolver/optimize
Description

Start an optimization.

Launch Toursolver planning optimization : starts the planning process on orders and resources data.

Use this method to plan tours. The process consists in assigning Orders object elements to Resources object on a way that respects the constraints and minimizes the cost of the computed planning. This method is composed of 2 processes: a data checking and optimizing process.

Table 55. Parameters
Type Name Description Schema Default

Body

body
optional

Optimization request with all constraints

json_OptimizeRequest

Table 56. Responses
HTTP Code Description Schema

201

Success

json_OptimizeResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "depots" : [ {
    "id" : "...",
    "openingDaysList" : [ "...", "..." ],
    "timeWindows" : [ {
      "beginTime" : { },
      "endTime" : { }
    }, {
      "beginTime" : { },
      "endTime" : { }
    } ],
    "availability" : true,
    "resourceNames" : "...",
    "excludeResources" : "...",
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "fixedLoadingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "loadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "priority" : 12345,
    "requiredProducts" : "...",
    "allProductsRequired" : true,
    "deliveryQuantities" : [ 12345, 12345 ],
    "pickupQuantities" : [ 12345, 12345 ],
    "x" : 12345.0,
    "y" : 12345.0,
    "supportedProducts" : "..."
  }, {
    "id" : "...",
    "openingDaysList" : [ "...", "..." ],
    "timeWindows" : [ {
      "beginTime" : { },
      "endTime" : { }
    }, {
      "beginTime" : { },
      "endTime" : { }
    } ],
    "availability" : true,
    "resourceNames" : "...",
    "excludeResources" : "...",
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "fixedLoadingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "loadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "priority" : 12345,
    "requiredProducts" : "...",
    "allProductsRequired" : true,
    "deliveryQuantities" : [ 12345, 12345 ],
    "pickupQuantities" : [ 12345, 12345 ],
    "x" : 12345.0,
    "y" : 12345.0,
    "supportedProducts" : "..."
  } ],
  "orders" : [ {
    "allSkillsRequired" : true,
    "assignResources" : [ "...", "..." ],
    "assignCosts" : [ 12345, 12345 ],
    "documentReferences" : [ "...", "..." ],
    "courierPenalty" : 12345.0,
    "customDataMap" : {
      "property1" : "...",
      "property2" : "..."
    },
    "delayPenaltyPerHour" : 12345.0,
    "excludeResources" : [ "...", "..." ],
    "fixedVisitDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "frequency" : "...",
    "id" : "...",
    "minDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "minPartDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "punctuality" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "requiredSkills" : [ "...", "..." ],
    "resourceCompatibility" : 12345.0,
    "sequenceNumber" : 12345,
    "timeWindows" : [ {
      "beginTime" : { },
      "endTime" : { }
    }, {
      "beginTime" : { },
      "endTime" : { }
    } ],
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "type" : 12345,
    "unloadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "x" : 12345.0,
    "y" : 12345.0,
    "active" : true,
    "wholeVisitInTimeWindow" : true,
    "label" : "...",
    "evaluationInfos" : {
      "orderOriginalResourceId" : "...",
      "orderOriginalVisitDay" : "...",
      "orderPosition" : 12345
    },
    "possibleVisitDaysList" : [ "...", "..." ],
    "tsOrderMaximumSpacing" : 12345,
    "tsOrderMinimumSpacing" : 12345,
    "tsOrderLastVisit" : 12345,
    "customerId" : "...",
    "email" : "...",
    "phone" : "...",
    "tsOrderBefore" : "...",
    "tsOrderBeforeMaxTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "tsOrderBeforeMinTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "getNotifications" : true,
    "tsOrderFixed" : true,
    "scanItems" : [ {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "invoiceId" : "...",
    "originalOperationalId" : "...",
    "maxDelayTime" : {
      "time" : 12345,
      "duration" : true
    },
    "maxDurationBeforeDepotDrop" : {
      "time" : 12345,
      "duration" : true
    },
    "allowedDepots" : "...",
    "providedProducts" : "...",
    "tsOrderDisjoint" : true,
    "tsOrderOneVisitPerTimeWindow" : true,
    "tsOrderMaxDropHours" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ]
  }, {
    "allSkillsRequired" : true,
    "assignResources" : [ "...", "..." ],
    "assignCosts" : [ 12345, 12345 ],
    "documentReferences" : [ "...", "..." ],
    "courierPenalty" : 12345.0,
    "customDataMap" : {
      "property1" : "...",
      "property2" : "..."
    },
    "delayPenaltyPerHour" : 12345.0,
    "excludeResources" : [ "...", "..." ],
    "fixedVisitDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "frequency" : "...",
    "id" : "...",
    "minDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "minPartDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "punctuality" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "requiredSkills" : [ "...", "..." ],
    "resourceCompatibility" : 12345.0,
    "sequenceNumber" : 12345,
    "timeWindows" : [ {
      "beginTime" : { },
      "endTime" : { }
    }, {
      "beginTime" : { },
      "endTime" : { }
    } ],
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "type" : 12345,
    "unloadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "x" : 12345.0,
    "y" : 12345.0,
    "active" : true,
    "wholeVisitInTimeWindow" : true,
    "label" : "...",
    "evaluationInfos" : {
      "orderOriginalResourceId" : "...",
      "orderOriginalVisitDay" : "...",
      "orderPosition" : 12345
    },
    "possibleVisitDaysList" : [ "...", "..." ],
    "tsOrderMaximumSpacing" : 12345,
    "tsOrderMinimumSpacing" : 12345,
    "tsOrderLastVisit" : 12345,
    "customerId" : "...",
    "email" : "...",
    "phone" : "...",
    "tsOrderBefore" : "...",
    "tsOrderBeforeMaxTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "tsOrderBeforeMinTimeSpacing" : {
      "time" : 12345,
      "duration" : true
    },
    "getNotifications" : true,
    "tsOrderFixed" : true,
    "scanItems" : [ {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "invoiceId" : "...",
    "originalOperationalId" : "...",
    "maxDelayTime" : {
      "time" : 12345,
      "duration" : true
    },
    "maxDurationBeforeDepotDrop" : {
      "time" : 12345,
      "duration" : true
    },
    "allowedDepots" : "...",
    "providedProducts" : "...",
    "tsOrderDisjoint" : true,
    "tsOrderOneVisitPerTimeWindow" : true,
    "tsOrderMaxDropHours" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ]
  } ],
  "resources" : [ {
    "available" : true,
    "avgConsumption" : 8.0,
    "briefingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "capacities" : [ 12.0, 12.0 ],
    "providedSkills" : "...",
    "customDataMap" : {
      "property1" : "...",
      "property2" : "..."
    },
    "dailyWorkTime" : {
      "time" : 12345,
      "duration" : true
    },
    "debriefingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "driveRestAtCustomer" : true,
    "driveRestAtDepot" : true,
    "fixedLoadingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "fuelType" : 12345,
    "id" : "...",
    "legalDailyDriveDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalDailyRestDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalDriveRestDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalMaxDriveDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalMinRestDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "loadBeforeDeparture" : true,
    "loadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "loadOnReturn" : true,
    "lunch" : {
      "start" : { },
      "end" : { },
      "duration" : { },
      "startEnabled" : true,
      "endEnabled" : true,
      "durationEnabled" : true
    },
    "maxNightsOutPerJourney" : 12345,
    "maxNightsOutPerWeek" : 12345,
    "minDriveDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "nightPenalty" : 12345.0,
    "nonUsePenalty" : 12345.0,
    "openStart" : true,
    "openStop" : true,
    "optimumStartTime" : true,
    "overnightMinDriving" : {
      "time" : 12345,
      "duration" : true
    },
    "overtimeDurations" : [ { }, { } ],
    "overtimePenalties" : [ 12345.0, 12345.0 ],
    "payWholeDay" : true,
    "penaltyPerVisit" : 12345.0,
    "speedAdjustment" : 12345,
    "startTravelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "stopTravelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "extraTravelPenalties" : [ {
      "distance" : 12345,
      "penalty" : 12345.0
    }, {
      "distance" : 12345,
      "penalty" : 12345.0
    } ],
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "usePenalty" : 12345.0,
    "weeklyWorkTime" : {
      "time" : 12345,
      "duration" : true
    },
    "workEndTime" : {
      "time" : 12345,
      "duration" : true
    },
    "workingDays" : "...",
    "workPenalty" : 12345.0,
    "workStartTime" : {
      "time" : 12345,
      "duration" : true
    },
    "startX" : 12345.0,
    "endX" : 12345.0,
    "startY" : 12345.0,
    "endY" : 12345.0,
    "travelPenalty" : 12345.0,
    "minimumQuantity" : 12345.0,
    "fixedUnloadingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "unloadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "maximumReloads" : 12345,
    "maximumReloadsPenalty" : 12345.0,
    "noReload" : true,
    "otherWorkStartTimes" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ],
    "otherWorkEndTimes" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ],
    "otherWorkDaysList" : [ "...", "..." ],
    "providedProducts" : "...",
    "useInPlanningPenalty" : 12345.0,
    "maximumDistance" : 12345,
    "maximumVisits" : 12345,
    "mobileLogin" : "...",
    "useAllCapacities" : true,
    "globalCapacity" : 12345.0,
    "additionalCostOrderCustomDataName" : "...",
    "additionalCostOperator" : "MAX",
    "additionalCosts" : [ {
      "type" : "...",
      "value" : 12345.0
    }, {
      "type" : "...",
      "value" : 12345.0
    } ],
    "openTimeStart" : true,
    "openDistanceStart" : true,
    "openTimeStop" : true,
    "openDistanceStop" : true,
    "tomTomWebFleetEnabled" : true,
    "tomTomWebFleetIdentifier" : "...",
    "vehicleCode" : "...",
    "fuelCode" : "...",
    "daysOff" : [ {
      "start" : { },
      "end" : { },
      "reason" : "..."
    }, {
      "start" : { },
      "end" : { },
      "reason" : "..."
    } ],
    "allowedNights" : "...",
    "parkingTime" : 12345
  }, {
    "available" : true,
    "avgConsumption" : 8.0,
    "briefingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "capacities" : [ 12.0, 12.0 ],
    "providedSkills" : "...",
    "customDataMap" : {
      "property1" : "...",
      "property2" : "..."
    },
    "dailyWorkTime" : {
      "time" : 12345,
      "duration" : true
    },
    "debriefingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "driveRestAtCustomer" : true,
    "driveRestAtDepot" : true,
    "fixedLoadingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "fuelType" : 12345,
    "id" : "...",
    "legalDailyDriveDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalDailyRestDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalDriveRestDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalMaxDriveDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "legalMinRestDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "loadBeforeDeparture" : true,
    "loadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "loadOnReturn" : true,
    "lunch" : {
      "start" : { },
      "end" : { },
      "duration" : { },
      "startEnabled" : true,
      "endEnabled" : true,
      "durationEnabled" : true
    },
    "maxNightsOutPerJourney" : 12345,
    "maxNightsOutPerWeek" : 12345,
    "minDriveDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "nightPenalty" : 12345.0,
    "nonUsePenalty" : 12345.0,
    "openStart" : true,
    "openStop" : true,
    "optimumStartTime" : true,
    "overnightMinDriving" : {
      "time" : 12345,
      "duration" : true
    },
    "overtimeDurations" : [ { }, { } ],
    "overtimePenalties" : [ 12345.0, 12345.0 ],
    "payWholeDay" : true,
    "penaltyPerVisit" : 12345.0,
    "speedAdjustment" : 12345,
    "startTravelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "stopTravelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "extraTravelPenalties" : [ {
      "distance" : 12345,
      "penalty" : 12345.0
    }, {
      "distance" : 12345,
      "penalty" : 12345.0
    } ],
    "travelTimeModifier" : {
      "offset" : { },
      "value" : 12345.0,
      "length" : { }
    },
    "usePenalty" : 12345.0,
    "weeklyWorkTime" : {
      "time" : 12345,
      "duration" : true
    },
    "workEndTime" : {
      "time" : 12345,
      "duration" : true
    },
    "workingDays" : "...",
    "workPenalty" : 12345.0,
    "workStartTime" : {
      "time" : 12345,
      "duration" : true
    },
    "startX" : 12345.0,
    "endX" : 12345.0,
    "startY" : 12345.0,
    "endY" : 12345.0,
    "travelPenalty" : 12345.0,
    "minimumQuantity" : 12345.0,
    "fixedUnloadingDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "unloadingDurationPerUnit" : {
      "time" : 12345,
      "duration" : true
    },
    "maximumReloads" : 12345,
    "maximumReloadsPenalty" : 12345.0,
    "noReload" : true,
    "otherWorkStartTimes" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ],
    "otherWorkEndTimes" : [ {
      "time" : 12345,
      "duration" : true
    }, {
      "time" : 12345,
      "duration" : true
    } ],
    "otherWorkDaysList" : [ "...", "..." ],
    "providedProducts" : "...",
    "useInPlanningPenalty" : 12345.0,
    "maximumDistance" : 12345,
    "maximumVisits" : 12345,
    "mobileLogin" : "...",
    "useAllCapacities" : true,
    "globalCapacity" : 12345.0,
    "additionalCostOrderCustomDataName" : "...",
    "additionalCostOperator" : "MAX",
    "additionalCosts" : [ {
      "type" : "...",
      "value" : 12345.0
    }, {
      "type" : "...",
      "value" : 12345.0
    } ],
    "openTimeStart" : true,
    "openDistanceStart" : true,
    "openTimeStop" : true,
    "openDistanceStop" : true,
    "tomTomWebFleetEnabled" : true,
    "tomTomWebFleetIdentifier" : "...",
    "vehicleCode" : "...",
    "fuelCode" : "...",
    "daysOff" : [ {
      "start" : { },
      "end" : { },
      "reason" : "..."
    }, {
      "start" : { },
      "end" : { },
      "reason" : "..."
    } ],
    "allowedNights" : "...",
    "parkingTime" : 12345
  } ],
  "options" : {
    "evaluation" : true,
    "startFromEvaluationInfo" : true,
    "maxOptimDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "reloadDuration" : {
      "time" : 12345,
      "duration" : true
    },
    "noReload" : true,
    "distanceType" : "KILOMETERS",
    "teamId" : "...",
    "sendResultToWebhook" : "TOURS",
    "countVisitCostOnceIfSameLocation" : true,
    "countDepotsInDeliveryCost" : "NONE",
    "excludeVisitCostIfMaxAdditionalCost" : true,
    "routingMethod" : "TIME",
    "allowToll" : true,
    "allowTunnel" : true,
    "allowBridge" : true,
    "allowBoatFerry" : true,
    "allowLowEmissionZones" : true,
    "rejectFlags" : [ "...", "..." ],
    "vehicleCode" : "...",
    "fuelCode" : "...",
    "speedPattern" : "...",
    "useForbiddenTransitAreas" : true,
    "balanceType" : "HOURS",
    "balanceValue" : 12345,
    "advancedSettings" : [ "...", "..." ],
    "optimEngine" : "OTSOLVER"
  },
  "countryCode" : "...",
  "simulationName" : "...",
  "language" : "...",
  "beginDate" : 12345,
  "userLogin" : "...",
  "organization" : "..."
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "taskId" : "...",
    "token" : "...",
    "optimCredits" : 12345,
    "remainingCredits" : 12345,
    "creditsResetDate" : 12345,
    "message" : "...",
    "status" : "OK",
    "errCode" : "BOOKING_NO_RESULT"
  }
}

4.2.24. Read one client Use this service to read clients.

GET /toursolver/readClient
Description

Read one client

Use this service to read clients.

Use either an externalRef or an internal id (internal id will be used anyway if provided).

Table 57. Parameters
Type Name Description Schema Default

Query

externRef
optional

: externRef given at creation

string

Query

id
optional

: internal id (quicker)

string

Table 58. Responses
HTTP Code Description Schema

200

Success

json_ReadClientResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "client" : {
      "customData" : {
        "property1" : "...",
        "property2" : "..."
      },
      "externRef" : "...",
      "providedProducts" : "...",
      "timeWindowBeginTime2" : 12345,
      "occupation" : "...",
      "allowedDepots" : "...",
      "agency" : "...",
      "email" : "...",
      "timeWindowEndTime4" : 12345,
      "frequencyType" : "...",
      "useManualPositioning" : true,
      "designation" : "...",
      "lastVisitDate" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "minSpacing" : 12345,
      "isCustomer" : true,
      "geocodeType" : "...",
      "givenName" : "...",
      "description" : "...",
      "frequency" : "...",
      "timeWindowEndTime1" : 12345,
      "visitType" : 12345,
      "id" : "...",
      "fixedVisitDuration" : 12345,
      "startsBefore" : "...",
      "creationDate" : 12345,
      "possibleVisitDays1" : "...",
      "possibleVisitDays4" : "...",
      "color" : "...",
      "manualPosition" : {
        "when" : 12345,
        "y" : 12345.0,
        "x" : 12345.0,
        "who" : "..."
      },
      "timeWindowBeginTime3" : 12345,
      "type" : "...",
      "zipCode" : "...",
      "mobile" : "...",
      "possibleVisitDays3" : "...",
      "phone" : "...",
      "streetAndNumber" : "...",
      "photoURL" : "...",
      "allSkillsRequired" : true,
      "timeWindowEndTime3" : 12345,
      "timeWindowEndTime2" : 12345,
      "ownerId" : "...",
      "countryFull" : "...",
      "lastFeedback" : 12345,
      "lastVisitId" : "...",
      "sector" : "...",
      "possibleVisitDays2" : "...",
      "timeWindowBeginTime4" : 12345,
      "title" : "...",
      "requiredSkills" : "...",
      "timeWindowBeginTime1" : 12345,
      "getNotification" : true,
      "lastComment" : "...",
      "x" : 12345.0,
      "additionalAddress" : "...",
      "nextVisitDate" : 12345,
      "maxSpacing" : 12345,
      "city" : "...",
      "surName" : "...",
      "lastUpdateUser" : "...",
      "y" : 12345.0,
      "stateFull" : "...",
      "wholeVisitInTimeWindow" : true,
      "updateDate" : 12345
    },
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "SUB_KEY_NOT_ENABLED"
  }
}

4.2.25. Get known resources Get resources defined in ToursolverCloud GUI.

GET /toursolver/resources
Description

Get known resources

Get resources defined in ToursolverCloud GUI.

Table 59. Parameters
Type Name Description Schema Default

Query

resourceName
optional

if a resource name is specified (team name will be ignored), only one resource will be returned.

string

Query

teamName
optional

if a team name is specified, only the resources of this team will returned

string

Table 60. Responses
HTTP Code Description Schema

200

Success

json_ResourcesResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "resources" : [ {
      "available" : true,
      "avgConsumption" : 8.0,
      "briefingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "capacities" : [ 12.0, 12.0 ],
      "providedSkills" : "...",
      "customDataMap" : {
        "property1" : "...",
        "property2" : "..."
      },
      "dailyWorkTime" : {
        "time" : 12345,
        "duration" : true
      },
      "debriefingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "driveRestAtCustomer" : true,
      "driveRestAtDepot" : true,
      "fixedLoadingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "fuelType" : 12345,
      "id" : "...",
      "legalDailyDriveDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalDailyRestDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalDriveRestDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalMaxDriveDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalMinRestDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "loadBeforeDeparture" : true,
      "loadingDurationPerUnit" : {
        "time" : 12345,
        "duration" : true
      },
      "loadOnReturn" : true,
      "lunch" : {
        "start" : { },
        "end" : { },
        "duration" : { },
        "startEnabled" : true,
        "endEnabled" : true,
        "durationEnabled" : true
      },
      "maxNightsOutPerJourney" : 12345,
      "maxNightsOutPerWeek" : 12345,
      "minDriveDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "nightPenalty" : 12345.0,
      "nonUsePenalty" : 12345.0,
      "openStart" : true,
      "openStop" : true,
      "optimumStartTime" : true,
      "overnightMinDriving" : {
        "time" : 12345,
        "duration" : true
      },
      "overtimeDurations" : [ { }, { } ],
      "overtimePenalties" : [ 12345.0, 12345.0 ],
      "payWholeDay" : true,
      "penaltyPerVisit" : 12345.0,
      "speedAdjustment" : 12345,
      "startTravelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "stopTravelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "extraTravelPenalties" : [ {
        "distance" : 12345,
        "penalty" : 12345.0
      }, {
        "distance" : 12345,
        "penalty" : 12345.0
      } ],
      "travelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "usePenalty" : 12345.0,
      "weeklyWorkTime" : {
        "time" : 12345,
        "duration" : true
      },
      "workEndTime" : {
        "time" : 12345,
        "duration" : true
      },
      "workingDays" : "...",
      "workPenalty" : 12345.0,
      "workStartTime" : {
        "time" : 12345,
        "duration" : true
      },
      "startX" : 12345.0,
      "endX" : 12345.0,
      "startY" : 12345.0,
      "endY" : 12345.0,
      "travelPenalty" : 12345.0,
      "minimumQuantity" : 12345.0,
      "fixedUnloadingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "unloadingDurationPerUnit" : {
        "time" : 12345,
        "duration" : true
      },
      "maximumReloads" : 12345,
      "maximumReloadsPenalty" : 12345.0,
      "noReload" : true,
      "otherWorkStartTimes" : [ {
        "time" : 12345,
        "duration" : true
      }, {
        "time" : 12345,
        "duration" : true
      } ],
      "otherWorkEndTimes" : [ {
        "time" : 12345,
        "duration" : true
      }, {
        "time" : 12345,
        "duration" : true
      } ],
      "otherWorkDaysList" : [ "...", "..." ],
      "providedProducts" : "...",
      "useInPlanningPenalty" : 12345.0,
      "maximumDistance" : 12345,
      "maximumVisits" : 12345,
      "mobileLogin" : "...",
      "useAllCapacities" : true,
      "globalCapacity" : 12345.0,
      "additionalCostOrderCustomDataName" : "...",
      "additionalCostOperator" : "MIN",
      "additionalCosts" : [ {
        "type" : "...",
        "value" : 12345.0
      }, {
        "type" : "...",
        "value" : 12345.0
      } ],
      "openTimeStart" : true,
      "openDistanceStart" : true,
      "openTimeStop" : true,
      "openDistanceStop" : true,
      "tomTomWebFleetEnabled" : true,
      "tomTomWebFleetIdentifier" : "...",
      "vehicleCode" : "...",
      "fuelCode" : "...",
      "daysOff" : [ {
        "start" : { },
        "end" : { },
        "reason" : "..."
      }, {
        "start" : { },
        "end" : { },
        "reason" : "..."
      } ],
      "allowedNights" : "...",
      "parkingTime" : 12345
    }, {
      "available" : true,
      "avgConsumption" : 8.0,
      "briefingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "capacities" : [ 12.0, 12.0 ],
      "providedSkills" : "...",
      "customDataMap" : {
        "property1" : "...",
        "property2" : "..."
      },
      "dailyWorkTime" : {
        "time" : 12345,
        "duration" : true
      },
      "debriefingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "driveRestAtCustomer" : true,
      "driveRestAtDepot" : true,
      "fixedLoadingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "fuelType" : 12345,
      "id" : "...",
      "legalDailyDriveDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalDailyRestDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalDriveRestDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalMaxDriveDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "legalMinRestDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "loadBeforeDeparture" : true,
      "loadingDurationPerUnit" : {
        "time" : 12345,
        "duration" : true
      },
      "loadOnReturn" : true,
      "lunch" : {
        "start" : { },
        "end" : { },
        "duration" : { },
        "startEnabled" : true,
        "endEnabled" : true,
        "durationEnabled" : true
      },
      "maxNightsOutPerJourney" : 12345,
      "maxNightsOutPerWeek" : 12345,
      "minDriveDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "nightPenalty" : 12345.0,
      "nonUsePenalty" : 12345.0,
      "openStart" : true,
      "openStop" : true,
      "optimumStartTime" : true,
      "overnightMinDriving" : {
        "time" : 12345,
        "duration" : true
      },
      "overtimeDurations" : [ { }, { } ],
      "overtimePenalties" : [ 12345.0, 12345.0 ],
      "payWholeDay" : true,
      "penaltyPerVisit" : 12345.0,
      "speedAdjustment" : 12345,
      "startTravelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "stopTravelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "extraTravelPenalties" : [ {
        "distance" : 12345,
        "penalty" : 12345.0
      }, {
        "distance" : 12345,
        "penalty" : 12345.0
      } ],
      "travelTimeModifier" : {
        "offset" : { },
        "value" : 12345.0,
        "length" : { }
      },
      "usePenalty" : 12345.0,
      "weeklyWorkTime" : {
        "time" : 12345,
        "duration" : true
      },
      "workEndTime" : {
        "time" : 12345,
        "duration" : true
      },
      "workingDays" : "...",
      "workPenalty" : 12345.0,
      "workStartTime" : {
        "time" : 12345,
        "duration" : true
      },
      "startX" : 12345.0,
      "endX" : 12345.0,
      "startY" : 12345.0,
      "endY" : 12345.0,
      "travelPenalty" : 12345.0,
      "minimumQuantity" : 12345.0,
      "fixedUnloadingDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "unloadingDurationPerUnit" : {
        "time" : 12345,
        "duration" : true
      },
      "maximumReloads" : 12345,
      "maximumReloadsPenalty" : 12345.0,
      "noReload" : true,
      "otherWorkStartTimes" : [ {
        "time" : 12345,
        "duration" : true
      }, {
        "time" : 12345,
        "duration" : true
      } ],
      "otherWorkEndTimes" : [ {
        "time" : 12345,
        "duration" : true
      }, {
        "time" : 12345,
        "duration" : true
      } ],
      "otherWorkDaysList" : [ "...", "..." ],
      "providedProducts" : "...",
      "useInPlanningPenalty" : 12345.0,
      "maximumDistance" : 12345,
      "maximumVisits" : 12345,
      "mobileLogin" : "...",
      "useAllCapacities" : true,
      "globalCapacity" : 12345.0,
      "additionalCostOrderCustomDataName" : "...",
      "additionalCostOperator" : "AVERAGE",
      "additionalCosts" : [ {
        "type" : "...",
        "value" : 12345.0
      }, {
        "type" : "...",
        "value" : 12345.0
      } ],
      "openTimeStart" : true,
      "openDistanceStart" : true,
      "openTimeStop" : true,
      "openDistanceStop" : true,
      "tomTomWebFleetEnabled" : true,
      "tomTomWebFleetIdentifier" : "...",
      "vehicleCode" : "...",
      "fuelCode" : "...",
      "daysOff" : [ {
        "start" : { },
        "end" : { },
        "reason" : "..."
      }, {
        "start" : { },
        "end" : { },
        "reason" : "..."
      } ],
      "allowedNights" : "...",
      "parkingTime" : 12345
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "CUSTOM_RESOURCES_NOT_ALLOWED"
  }
}

4.2.26. Get optimization result.

GET /toursolver/result
Description

Get optimization result.

Get the result of planning optimization. Status of the optimization must be terminated.

Table 61. Parameters
Type Name Description Schema Default

Query

taskId
optional

the id of optimization task, as returned by the optimize service

string

Table 62. Responses
HTTP Code Description Schema

200

Success

json_OptimResultResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "taskId" : "...",
    "plannedOrders" : [ {
      "dayId" : "...",
      "stopPosition" : 12345,
      "stopY" : 12345.0,
      "stopX" : 12345.0,
      "stopId" : "...",
      "stopType" : 12345,
      "stopDriveTime" : {
        "time" : 12345,
        "duration" : true
      },
      "stopStartTime" : {
        "time" : 12345,
        "duration" : true
      },
      "stopDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "stopStatus" : 12345,
      "stopDriveDistance" : 12345,
      "stopElapsedDistance" : 12345,
      "resourceId" : "..."
    }, {
      "dayId" : "...",
      "stopPosition" : 12345,
      "stopY" : 12345.0,
      "stopX" : 12345.0,
      "stopId" : "...",
      "stopType" : 12345,
      "stopDriveTime" : {
        "time" : 12345,
        "duration" : true
      },
      "stopStartTime" : {
        "time" : 12345,
        "duration" : true
      },
      "stopDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "stopStatus" : 12345,
      "stopDriveDistance" : 12345,
      "stopElapsedDistance" : 12345,
      "resourceId" : "..."
    } ],
    "unplannedOrders" : [ {
      "stopID" : "...",
      "reason" : "..."
    }, {
      "stopID" : "...",
      "reason" : "..."
    } ],
    "warnings" : [ {
      "objectType" : "...",
      "id" : "...",
      "constraint" : 12345,
      "value" : "...",
      "message" : "...",
      "messageId" : 12345,
      "i18nMessageCode" : "...",
      "constraintName" : "..."
    }, {
      "objectType" : "...",
      "id" : "...",
      "constraint" : 12345,
      "value" : "...",
      "message" : "...",
      "messageId" : 12345,
      "i18nMessageCode" : "...",
      "constraintName" : "..."
    } ],
    "simulationId" : "...",
    "message" : "...",
    "status" : "OK",
    "errCode" : "VEHICLE_PROFILE_NOT_FOUND"
  }
}

4.2.27. Get simulation by ID Get simulation launched in ToursolverCloud (GUI).

GET /toursolver/simulation
Description

Get simulation by ID

Get simulation launched in ToursolverCloud (GUI).

Table 63. Parameters
Type Name Description Schema Default

Query

simulationId
optional

string

Table 64. Responses
HTTP Code Description Schema

200

Success

json_SimulationResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "simulation" : {
      "depots" : [ {
        "id" : "...",
        "openingDaysList" : [ "...", "..." ],
        "timeWindows" : [ { }, { } ],
        "availability" : true,
        "resourceNames" : "...",
        "excludeResources" : "...",
        "travelTimeModifier" : { },
        "fixedLoadingDuration" : { },
        "loadingDurationPerUnit" : { },
        "priority" : 12345,
        "requiredProducts" : "...",
        "allProductsRequired" : true,
        "deliveryQuantities" : [ 12345, 12345 ],
        "pickupQuantities" : [ 12345, 12345 ],
        "x" : 12345.0,
        "y" : 12345.0,
        "supportedProducts" : "..."
      }, {
        "id" : "...",
        "openingDaysList" : [ "...", "..." ],
        "timeWindows" : [ { }, { } ],
        "availability" : true,
        "resourceNames" : "...",
        "excludeResources" : "...",
        "travelTimeModifier" : { },
        "fixedLoadingDuration" : { },
        "loadingDurationPerUnit" : { },
        "priority" : 12345,
        "requiredProducts" : "...",
        "allProductsRequired" : true,
        "deliveryQuantities" : [ 12345, 12345 ],
        "pickupQuantities" : [ 12345, 12345 ],
        "x" : 12345.0,
        "y" : 12345.0,
        "supportedProducts" : "..."
      } ],
      "resources" : [ {
        "available" : true,
        "avgConsumption" : 8.0,
        "briefingDuration" : { },
        "capacities" : [ 12.0, 12.0 ],
        "providedSkills" : "...",
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "dailyWorkTime" : { },
        "debriefingDuration" : { },
        "driveRestAtCustomer" : true,
        "driveRestAtDepot" : true,
        "fixedLoadingDuration" : { },
        "fuelType" : 12345,
        "id" : "...",
        "legalDailyDriveDuration" : { },
        "legalDailyRestDuration" : { },
        "legalDriveRestDuration" : { },
        "legalMaxDriveDuration" : { },
        "legalMinRestDuration" : { },
        "loadBeforeDeparture" : true,
        "loadingDurationPerUnit" : { },
        "loadOnReturn" : true,
        "lunch" : { },
        "maxNightsOutPerJourney" : 12345,
        "maxNightsOutPerWeek" : 12345,
        "minDriveDuration" : { },
        "nightPenalty" : 12345.0,
        "nonUsePenalty" : 12345.0,
        "openStart" : true,
        "openStop" : true,
        "optimumStartTime" : true,
        "overnightMinDriving" : { },
        "overtimeDurations" : [ { }, { } ],
        "overtimePenalties" : [ 12345.0, 12345.0 ],
        "payWholeDay" : true,
        "penaltyPerVisit" : 12345.0,
        "speedAdjustment" : 12345,
        "startTravelTimeModifier" : { },
        "stopTravelTimeModifier" : { },
        "extraTravelPenalties" : [ { }, { } ],
        "travelTimeModifier" : { },
        "usePenalty" : 12345.0,
        "weeklyWorkTime" : { },
        "workEndTime" : { },
        "workingDays" : "...",
        "workPenalty" : 12345.0,
        "workStartTime" : { },
        "startX" : 12345.0,
        "endX" : 12345.0,
        "startY" : 12345.0,
        "endY" : 12345.0,
        "travelPenalty" : 12345.0,
        "minimumQuantity" : 12345.0,
        "fixedUnloadingDuration" : { },
        "unloadingDurationPerUnit" : { },
        "maximumReloads" : 12345,
        "maximumReloadsPenalty" : 12345.0,
        "noReload" : true,
        "otherWorkStartTimes" : [ { }, { } ],
        "otherWorkEndTimes" : [ { }, { } ],
        "otherWorkDaysList" : [ "...", "..." ],
        "providedProducts" : "...",
        "useInPlanningPenalty" : 12345.0,
        "maximumDistance" : 12345,
        "maximumVisits" : 12345,
        "mobileLogin" : "...",
        "useAllCapacities" : true,
        "globalCapacity" : 12345.0,
        "additionalCostOrderCustomDataName" : "...",
        "additionalCostOperator" : "AVERAGE",
        "additionalCosts" : [ { }, { } ],
        "openTimeStart" : true,
        "openDistanceStart" : true,
        "openTimeStop" : true,
        "openDistanceStop" : true,
        "tomTomWebFleetEnabled" : true,
        "tomTomWebFleetIdentifier" : "...",
        "vehicleCode" : "...",
        "fuelCode" : "...",
        "daysOff" : [ { }, { } ],
        "allowedNights" : "...",
        "parkingTime" : 12345
      }, {
        "available" : true,
        "avgConsumption" : 8.0,
        "briefingDuration" : { },
        "capacities" : [ 12.0, 12.0 ],
        "providedSkills" : "...",
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "dailyWorkTime" : { },
        "debriefingDuration" : { },
        "driveRestAtCustomer" : true,
        "driveRestAtDepot" : true,
        "fixedLoadingDuration" : { },
        "fuelType" : 12345,
        "id" : "...",
        "legalDailyDriveDuration" : { },
        "legalDailyRestDuration" : { },
        "legalDriveRestDuration" : { },
        "legalMaxDriveDuration" : { },
        "legalMinRestDuration" : { },
        "loadBeforeDeparture" : true,
        "loadingDurationPerUnit" : { },
        "loadOnReturn" : true,
        "lunch" : { },
        "maxNightsOutPerJourney" : 12345,
        "maxNightsOutPerWeek" : 12345,
        "minDriveDuration" : { },
        "nightPenalty" : 12345.0,
        "nonUsePenalty" : 12345.0,
        "openStart" : true,
        "openStop" : true,
        "optimumStartTime" : true,
        "overnightMinDriving" : { },
        "overtimeDurations" : [ { }, { } ],
        "overtimePenalties" : [ 12345.0, 12345.0 ],
        "payWholeDay" : true,
        "penaltyPerVisit" : 12345.0,
        "speedAdjustment" : 12345,
        "startTravelTimeModifier" : { },
        "stopTravelTimeModifier" : { },
        "extraTravelPenalties" : [ { }, { } ],
        "travelTimeModifier" : { },
        "usePenalty" : 12345.0,
        "weeklyWorkTime" : { },
        "workEndTime" : { },
        "workingDays" : "...",
        "workPenalty" : 12345.0,
        "workStartTime" : { },
        "startX" : 12345.0,
        "endX" : 12345.0,
        "startY" : 12345.0,
        "endY" : 12345.0,
        "travelPenalty" : 12345.0,
        "minimumQuantity" : 12345.0,
        "fixedUnloadingDuration" : { },
        "unloadingDurationPerUnit" : { },
        "maximumReloads" : 12345,
        "maximumReloadsPenalty" : 12345.0,
        "noReload" : true,
        "otherWorkStartTimes" : [ { }, { } ],
        "otherWorkEndTimes" : [ { }, { } ],
        "otherWorkDaysList" : [ "...", "..." ],
        "providedProducts" : "...",
        "useInPlanningPenalty" : 12345.0,
        "maximumDistance" : 12345,
        "maximumVisits" : 12345,
        "mobileLogin" : "...",
        "useAllCapacities" : true,
        "globalCapacity" : 12345.0,
        "additionalCostOrderCustomDataName" : "...",
        "additionalCostOperator" : "AVERAGE",
        "additionalCosts" : [ { }, { } ],
        "openTimeStart" : true,
        "openDistanceStart" : true,
        "openTimeStop" : true,
        "openDistanceStop" : true,
        "tomTomWebFleetEnabled" : true,
        "tomTomWebFleetIdentifier" : "...",
        "vehicleCode" : "...",
        "fuelCode" : "...",
        "daysOff" : [ { }, { } ],
        "allowedNights" : "...",
        "parkingTime" : 12345
      } ],
      "orders" : [ {
        "allSkillsRequired" : true,
        "assignResources" : [ "...", "..." ],
        "assignCosts" : [ 12345, 12345 ],
        "documentReferences" : [ "...", "..." ],
        "courierPenalty" : 12345.0,
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "delayPenaltyPerHour" : 12345.0,
        "excludeResources" : [ "...", "..." ],
        "fixedVisitDuration" : { },
        "frequency" : "...",
        "id" : "...",
        "minDuration" : { },
        "minPartDuration" : { },
        "punctuality" : 12345,
        "quantities" : [ 12345.0, 12345.0 ],
        "requiredSkills" : [ "...", "..." ],
        "resourceCompatibility" : 12345.0,
        "sequenceNumber" : 12345,
        "timeWindows" : [ { }, { } ],
        "travelTimeModifier" : { },
        "type" : 12345,
        "unloadingDurationPerUnit" : { },
        "x" : 12345.0,
        "y" : 12345.0,
        "active" : true,
        "wholeVisitInTimeWindow" : true,
        "label" : "...",
        "evaluationInfos" : { },
        "possibleVisitDaysList" : [ "...", "..." ],
        "tsOrderMaximumSpacing" : 12345,
        "tsOrderMinimumSpacing" : 12345,
        "tsOrderLastVisit" : 12345,
        "customerId" : "...",
        "email" : "...",
        "phone" : "...",
        "tsOrderBefore" : "...",
        "tsOrderBeforeMaxTimeSpacing" : { },
        "tsOrderBeforeMinTimeSpacing" : { },
        "getNotifications" : true,
        "tsOrderFixed" : true,
        "scanItems" : [ { }, { } ],
        "invoiceId" : "...",
        "originalOperationalId" : "...",
        "maxDelayTime" : { },
        "maxDurationBeforeDepotDrop" : { },
        "allowedDepots" : "...",
        "providedProducts" : "...",
        "tsOrderDisjoint" : true,
        "tsOrderOneVisitPerTimeWindow" : true,
        "tsOrderMaxDropHours" : [ { }, { } ]
      }, {
        "allSkillsRequired" : true,
        "assignResources" : [ "...", "..." ],
        "assignCosts" : [ 12345, 12345 ],
        "documentReferences" : [ "...", "..." ],
        "courierPenalty" : 12345.0,
        "customDataMap" : {
          "property1" : "...",
          "property2" : "..."
        },
        "delayPenaltyPerHour" : 12345.0,
        "excludeResources" : [ "...", "..." ],
        "fixedVisitDuration" : { },
        "frequency" : "...",
        "id" : "...",
        "minDuration" : { },
        "minPartDuration" : { },
        "punctuality" : 12345,
        "quantities" : [ 12345.0, 12345.0 ],
        "requiredSkills" : [ "...", "..." ],
        "resourceCompatibility" : 12345.0,
        "sequenceNumber" : 12345,
        "timeWindows" : [ { }, { } ],
        "travelTimeModifier" : { },
        "type" : 12345,
        "unloadingDurationPerUnit" : { },
        "x" : 12345.0,
        "y" : 12345.0,
        "active" : true,
        "wholeVisitInTimeWindow" : true,
        "label" : "...",
        "evaluationInfos" : { },
        "possibleVisitDaysList" : [ "...", "..." ],
        "tsOrderMaximumSpacing" : 12345,
        "tsOrderMinimumSpacing" : 12345,
        "tsOrderLastVisit" : 12345,
        "customerId" : "...",
        "email" : "...",
        "phone" : "...",
        "tsOrderBefore" : "...",
        "tsOrderBeforeMaxTimeSpacing" : { },
        "tsOrderBeforeMinTimeSpacing" : { },
        "getNotifications" : true,
        "tsOrderFixed" : true,
        "scanItems" : [ { }, { } ],
        "invoiceId" : "...",
        "originalOperationalId" : "...",
        "maxDelayTime" : { },
        "maxDurationBeforeDepotDrop" : { },
        "allowedDepots" : "...",
        "providedProducts" : "...",
        "tsOrderDisjoint" : true,
        "tsOrderOneVisitPerTimeWindow" : true,
        "tsOrderMaxDropHours" : [ { }, { } ]
      } ],
      "nbQuantities" : 12345,
      "nbCapacities" : 12345,
      "nbTimeWindows" : 12345,
      "nbExtraTravelPenalties" : 12345,
      "depotProperties" : [ "...", "..." ],
      "resourceProperties" : [ "...", "..." ],
      "orderProperties" : [ "...", "..." ],
      "options" : {
        "evaluation" : true,
        "startFromEvaluationInfo" : true,
        "maxOptimDuration" : { },
        "reloadDuration" : { },
        "noReload" : true,
        "distanceType" : "METERS",
        "teamId" : "...",
        "sendResultToWebhook" : "TOURS",
        "countVisitCostOnceIfSameLocation" : true,
        "countDepotsInDeliveryCost" : "ALLBUTFIRST",
        "excludeVisitCostIfMaxAdditionalCost" : true,
        "routingMethod" : "TIME",
        "allowToll" : true,
        "allowTunnel" : true,
        "allowBridge" : true,
        "allowBoatFerry" : true,
        "allowLowEmissionZones" : true,
        "rejectFlags" : [ "...", "..." ],
        "vehicleCode" : "...",
        "fuelCode" : "...",
        "speedPattern" : "...",
        "useForbiddenTransitAreas" : true,
        "balanceType" : "QUANTITY",
        "balanceValue" : 12345,
        "advancedSettings" : [ "...", "..." ],
        "optimEngine" : "TSDK"
      }
    },
    "message" : "...",
    "status" : "OK",
    "errCode" : "SUB_KEY_NOT_ENABLED"
  }
}

4.2.28. Get optimization status.

GET /toursolver/status
Description

Get optimization status.

This service returns the status of an optimization.

Table 65. Parameters
Type Name Description Schema Default

Query

taskId
optional

the id of optimization task, as returned by the optimize service

string

Table 66. Responses
HTTP Code Description Schema

200

Success

json_OptimStatusResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "optimizeStatus" : "GEOCODING",
    "startTime" : 12345,
    "currentCo2" : 12345.0,
    "currentCost" : 12345,
    "currentCourierCost" : 12345,
    "currentDeliveredQuantity" : 12345.0,
    "currentDeliveryCost" : 12345,
    "currentDriveCost" : 12345,
    "currentDriveDistance" : 12345,
    "currentDriveTime" : 12345,
    "currentFixedCost" : 12345,
    "currentLateTime" : 12345,
    "currentNightsCost" : 12345,
    "currentOverWorkCost" : 12345,
    "currentOverWorkTime" : 12345,
    "currentPickUpQuantity" : 12345.0,
    "currentRestTime" : 12345,
    "currentUnplannedVisits" : 12345,
    "currentWaitTime" : 12345,
    "currentWorkCost" : 12345,
    "currentWorkTime" : 12345,
    "initialCo2" : 12345.0,
    "initialCost" : 12345,
    "initialCourierCost" : 12345,
    "initialDeliveredQuantity" : 12345.0,
    "initialDeliveryCost" : 12345,
    "initialDriveCost" : 12345,
    "initialDriveDistance" : 12345,
    "initialDriveTime" : 12345,
    "initialFixedCost" : 12345,
    "initialLateTime" : 12345,
    "initialNightsCost" : 12345,
    "initialOverWorkCost" : 12345,
    "initialOverWorkTime" : 12345,
    "initialPickUpQuantity" : 12345.0,
    "initialRestTime" : 12345,
    "initialUnplannedVisits" : 12345,
    "initialWaitTime" : 12345,
    "initialWorkCost" : 12345,
    "initialWorkTime" : 12345,
    "mileageChartRemainingTime" : 12345,
    "initialOpenTourNumber" : 12345,
    "currentOpenTourNumber" : 12345,
    "subOptimNb" : 12345,
    "subOptimWaitingNb" : 12345,
    "subOptimRunningNb" : 12345,
    "subOptimFinishedNb" : 12345,
    "subOptimErrorNb" : 12345,
    "subOptimAbortedNb" : 12345,
    "simulationId" : "...",
    "currentVisitsNb" : 12345,
    "initialPlannedVisits" : 12345,
    "currentPlannedVisits" : 12345,
    "positionInQueue" : 12345,
    "initialNights" : 12345,
    "currentNights" : 12345,
    "initialVisitsNb" : 12345,
    "initialLongTravelCost" : 12345.0,
    "currentLongTravelCost" : 12345.0,
    "initialMaximumReloadsCost" : 12345.0,
    "currentMaximumReloadsCost" : 12345.0,
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "CLIENT_NO_FOUND"
  }
}

4.2.29. Stop optimization.

POST /toursolver/stop
Description

Stop optimization.

Interrupt optimization task.

This stop is asynchronous. You should use the related status function to know when the action is truly stopped.

Table 67. Parameters
Type Name Description Schema Default

Query

taskId
optional

the id of optimization task, as returned by the optimize service

string

Table 68. Responses
HTTP Code Description Schema

201

Success

json_OptimStopResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 201

{
  "application/json" : {
    "firstStopAsked" : 12345,
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "PREMIUM_FEATURE"
  }
}

4.2.30. Get optimization result organized by tours.

GET /toursolver/toursResult
Description

Get optimization result organized by tours.

Get the result of planning optimization organized by tours (one tour per resource per day). Status of the optimization must be terminated.

Table 69. Parameters
Type Name Description Schema Default

Query

taskId
optional

the id of optimization task, as returned by the optimize service

string

Table 70. Responses
HTTP Code Description Schema

200

Success

json_OptimToursResult

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 200

{
  "application/json" : {
    "taskId" : "...",
    "tours" : [ {
      "dayId" : "...",
      "resourceId" : "...",
      "travelDistance" : 12345,
      "travelDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "resourceCapacities" : [ 12345.0, 12345.0 ],
      "usedCapacities" : [ 12345.0, 12345.0 ],
      "deliveryCost" : 12345.0,
      "plannedOrders" : [ {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      }, {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      } ],
      "additionalCost" : 12345.0,
      "totalCost" : 12345.0,
      "reloadNb" : 12345
    }, {
      "dayId" : "...",
      "resourceId" : "...",
      "travelDistance" : 12345,
      "travelDuration" : {
        "time" : 12345,
        "duration" : true
      },
      "resourceCapacities" : [ 12345.0, 12345.0 ],
      "usedCapacities" : [ 12345.0, 12345.0 ],
      "deliveryCost" : 12345.0,
      "plannedOrders" : [ {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      }, {
        "dayId" : "...",
        "stopPosition" : 12345,
        "stopY" : 12345.0,
        "stopX" : 12345.0,
        "stopId" : "...",
        "stopType" : 12345,
        "stopDriveTime" : { },
        "stopStartTime" : { },
        "stopDuration" : { },
        "stopStatus" : 12345,
        "stopDriveDistance" : 12345,
        "stopElapsedDistance" : 12345,
        "resourceId" : "..."
      } ],
      "additionalCost" : 12345.0,
      "totalCost" : 12345.0,
      "reloadNb" : 12345
    } ],
    "warnings" : [ {
      "objectType" : "...",
      "id" : "...",
      "constraint" : 12345,
      "value" : "...",
      "message" : "...",
      "messageId" : 12345,
      "i18nMessageCode" : "...",
      "constraintName" : "..."
    }, {
      "objectType" : "...",
      "id" : "...",
      "constraint" : 12345,
      "value" : "...",
      "message" : "...",
      "messageId" : 12345,
      "i18nMessageCode" : "...",
      "constraintName" : "..."
    } ],
    "unplannedOrders" : [ {
      "stopID" : "...",
      "reason" : "..."
    }, {
      "stopID" : "...",
      "reason" : "..."
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "ROUTE_ORDERING_SEVERALAGENCIES"
  }
}

4.2.31. Update clients Use this service to update clients.

PUT /toursolver/updateClients
Description

Update clients

Use this service to update clients. These clients can then be used through the UI.

Table 71. Parameters
Type Name Description Schema Default

Body

body
optional

clients to add, externRef is mandatory

json_UpdateClientsRequest

Table 72. Responses
HTTP Code Description Schema

204

Success

json_UpdateClientsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "clients" : [ {
    "customData" : {
      "property1" : "...",
      "property2" : "..."
    },
    "externRef" : "...",
    "providedProducts" : "...",
    "timeWindowBeginTime2" : 12345,
    "occupation" : "...",
    "allowedDepots" : "...",
    "agency" : "...",
    "email" : "...",
    "timeWindowEndTime4" : 12345,
    "frequencyType" : "...",
    "useManualPositioning" : true,
    "designation" : "...",
    "lastVisitDate" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "minSpacing" : 12345,
    "isCustomer" : true,
    "geocodeType" : "...",
    "givenName" : "...",
    "description" : "...",
    "frequency" : "...",
    "timeWindowEndTime1" : 12345,
    "visitType" : 12345,
    "id" : "...",
    "fixedVisitDuration" : 12345,
    "startsBefore" : "...",
    "creationDate" : 12345,
    "possibleVisitDays1" : "...",
    "possibleVisitDays4" : "...",
    "color" : "...",
    "manualPosition" : {
      "when" : 12345,
      "y" : 12345.0,
      "x" : 12345.0,
      "who" : "..."
    },
    "timeWindowBeginTime3" : 12345,
    "type" : "...",
    "zipCode" : "...",
    "mobile" : "...",
    "possibleVisitDays3" : "...",
    "phone" : "...",
    "streetAndNumber" : "...",
    "photoURL" : "...",
    "allSkillsRequired" : true,
    "timeWindowEndTime3" : 12345,
    "timeWindowEndTime2" : 12345,
    "ownerId" : "...",
    "countryFull" : "...",
    "lastFeedback" : 12345,
    "lastVisitId" : "...",
    "sector" : "...",
    "possibleVisitDays2" : "...",
    "timeWindowBeginTime4" : 12345,
    "title" : "...",
    "requiredSkills" : "...",
    "timeWindowBeginTime1" : 12345,
    "getNotification" : true,
    "lastComment" : "...",
    "x" : 12345.0,
    "additionalAddress" : "...",
    "nextVisitDate" : 12345,
    "maxSpacing" : 12345,
    "city" : "...",
    "surName" : "...",
    "lastUpdateUser" : "...",
    "y" : 12345.0,
    "stateFull" : "...",
    "wholeVisitInTimeWindow" : true,
    "updateDate" : 12345
  }, {
    "customData" : {
      "property1" : "...",
      "property2" : "..."
    },
    "externRef" : "...",
    "providedProducts" : "...",
    "timeWindowBeginTime2" : 12345,
    "occupation" : "...",
    "allowedDepots" : "...",
    "agency" : "...",
    "email" : "...",
    "timeWindowEndTime4" : 12345,
    "frequencyType" : "...",
    "useManualPositioning" : true,
    "designation" : "...",
    "lastVisitDate" : 12345,
    "quantities" : [ 12345.0, 12345.0 ],
    "minSpacing" : 12345,
    "isCustomer" : true,
    "geocodeType" : "...",
    "givenName" : "...",
    "description" : "...",
    "frequency" : "...",
    "timeWindowEndTime1" : 12345,
    "visitType" : 12345,
    "id" : "...",
    "fixedVisitDuration" : 12345,
    "startsBefore" : "...",
    "creationDate" : 12345,
    "possibleVisitDays1" : "...",
    "possibleVisitDays4" : "...",
    "color" : "...",
    "manualPosition" : {
      "when" : 12345,
      "y" : 12345.0,
      "x" : 12345.0,
      "who" : "..."
    },
    "timeWindowBeginTime3" : 12345,
    "type" : "...",
    "zipCode" : "...",
    "mobile" : "...",
    "possibleVisitDays3" : "...",
    "phone" : "...",
    "streetAndNumber" : "...",
    "photoURL" : "...",
    "allSkillsRequired" : true,
    "timeWindowEndTime3" : 12345,
    "timeWindowEndTime2" : 12345,
    "ownerId" : "...",
    "countryFull" : "...",
    "lastFeedback" : 12345,
    "lastVisitId" : "...",
    "sector" : "...",
    "possibleVisitDays2" : "...",
    "timeWindowBeginTime4" : 12345,
    "title" : "...",
    "requiredSkills" : "...",
    "timeWindowBeginTime1" : 12345,
    "getNotification" : true,
    "lastComment" : "...",
    "x" : 12345.0,
    "additionalAddress" : "...",
    "nextVisitDate" : 12345,
    "maxSpacing" : 12345,
    "city" : "...",
    "surName" : "...",
    "lastUpdateUser" : "...",
    "y" : 12345.0,
    "stateFull" : "...",
    "wholeVisitInTimeWindow" : true,
    "updateDate" : 12345
  } ]
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "DEFAULT_USER_DISABLED"
  }
}

4.2.32. Update one operational order Emails / Sms sending can be triggered depending on your configuration.

PUT /toursolver/updateOperationalOrder
Description

Update one operational order

Emails / Sms sending can be triggered depending on your configuration.

Table 73. Parameters
Type Name Description Schema Default

Body

body
optional

fulfillment info

json_UpdateOperationalOrderRequest

Table 74. Responses
HTTP Code Description Schema

204

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "operationalOrderId" : "...",
  "status" : "REFUSED",
  "achievedStartDate" : {
    "epochSecond" : 12345,
    "nano" : 12345
  },
  "achievedEndDate" : {
    "epochSecond" : 12345,
    "nano" : 12345
  },
  "achievedStartPositionLat" : 12345.0,
  "achievedStartPositionLon" : 12345.0,
  "achievedEndPositionLat" : 12345.0,
  "achievedEndPositionLon" : 12345.0,
  "svgSignature" : "...",
  "data" : {
    "property1" : "...",
    "property2" : "..."
  },
  "scans" : [ {
    "comment" : "...",
    "status" : "DeliveryToColleague",
    "datetimePickupFromDepot" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudePickupFromDepot" : 12345.0,
    "latitudePickupFromDepot" : 12345.0,
    "datetimeDeliveryToCustomer" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudeDeliveryToCustomer" : 12345.0,
    "latitudeDeliveryToCustomer" : 12345.0,
    "datetimePickupFromCustomer" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudePickupFromCustomer" : 12345.0,
    "latitudePickupFromCustomer" : 12345.0,
    "datetimeDeliveryToDepot" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudeDeliveryToDepot" : 12345.0,
    "latitudeDeliveryToDepot" : 12345.0,
    "datetimeDeliveryToColleague" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudeDeliveryToColleague" : 12345.0,
    "latitudeDeliveryToColleague" : 12345.0,
    "datetimePickupFromColleague" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudePickupFromColleague" : 12345.0,
    "latitudePickupFromColleague" : 12345.0,
    "pictures" : [ "...", "..." ],
    "id" : "...",
    "order" : "...",
    "description" : "..."
  }, {
    "comment" : "...",
    "status" : "MissingInDepot",
    "datetimePickupFromDepot" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudePickupFromDepot" : 12345.0,
    "latitudePickupFromDepot" : 12345.0,
    "datetimeDeliveryToCustomer" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudeDeliveryToCustomer" : 12345.0,
    "latitudeDeliveryToCustomer" : 12345.0,
    "datetimePickupFromCustomer" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudePickupFromCustomer" : 12345.0,
    "latitudePickupFromCustomer" : 12345.0,
    "datetimeDeliveryToDepot" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudeDeliveryToDepot" : 12345.0,
    "latitudeDeliveryToDepot" : 12345.0,
    "datetimeDeliveryToColleague" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudeDeliveryToColleague" : 12345.0,
    "latitudeDeliveryToColleague" : 12345.0,
    "datetimePickupFromColleague" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "longitudePickupFromColleague" : 12345.0,
    "latitudePickupFromColleague" : 12345.0,
    "pictures" : [ "...", "..." ],
    "id" : "...",
    "order" : "...",
    "description" : "..."
  } ],
  "userLogin" : "..."
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "FILE_NOT_FOUND"
  }
}

4.2.33. Update orders of operational planning.

PUT /toursolver/updateOrdersOfOperationalPlanning
Description

Update orders of operational planning.

This service will NOT trigger message (email/sms) sending

Chronological fulfillment order is not verified.

Table 75. Parameters
Type Name Description Schema Default

Body

body
optional

list of orders to be updated

json_UpdateOperationalOrdersRequest

Table 76. Responses
HTTP Code Description Schema

204

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "orders" : [ {
    "report" : {
      "dataItem" : [ { }, { } ],
      "detailSet" : [ { }, { } ]
    },
    "isLate" : true,
    "lateNotificationTimeout" : 12345,
    "etaOrderId" : "...",
    "etaOrderData" : {
      "satisfaction" : { }
    },
    "distance" : 12345.0,
    "scanItems" : [ {
      "comment" : "...",
      "status" : "PickupFromCustomer",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "comment" : "...",
      "status" : "PickupFromColleague",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "globalScanItemsStatus" : "PartiallyDeliveryToCustomer",
    "tourProgressNotificationSent" : true,
    "numberOfDeliveredItems" : 12345,
    "weatherSkyDescription" : "...",
    "weatherPrecipitationDesc" : "...",
    "weatherPrecipitationProbability" : 12345.0,
    "weatherTemperature" : 12345.0,
    "weatherSnowFall" : 12345.0,
    "weatherRainFall" : 12345.0,
    "weatherWindSpeed" : 12345.0,
    "weatherSnowCover" : 12345.0,
    "weatherVisibility" : 12345.0,
    "followUpShortLink" : "...",
    "missionId" : "...",
    "groupingId" : "...",
    "routeId" : "...",
    "lateStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "OTPPolicy" : "QRCODE",
    "OTPValue" : "...",
    "senderBarcode" : "...",
    "operationalResourceId" : "...",
    "plannedOrder" : {
      "dayId" : "...",
      "stopPosition" : 12345,
      "stopY" : 12345.0,
      "stopX" : 12345.0,
      "stopId" : "...",
      "stopType" : 12345,
      "stopDriveTime" : { },
      "stopStartTime" : { },
      "stopDuration" : { },
      "stopStatus" : 12345,
      "stopDriveDistance" : 12345,
      "stopElapsedDistance" : 12345,
      "resourceId" : "..."
    },
    "order" : {
      "allSkillsRequired" : true,
      "assignResources" : [ "...", "..." ],
      "assignCosts" : [ 12345, 12345 ],
      "documentReferences" : [ "...", "..." ],
      "courierPenalty" : 12345.0,
      "customDataMap" : {
        "property1" : "...",
        "property2" : "..."
      },
      "delayPenaltyPerHour" : 12345.0,
      "excludeResources" : [ "...", "..." ],
      "fixedVisitDuration" : { },
      "frequency" : "...",
      "id" : "...",
      "minDuration" : { },
      "minPartDuration" : { },
      "punctuality" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "requiredSkills" : [ "...", "..." ],
      "resourceCompatibility" : 12345.0,
      "sequenceNumber" : 12345,
      "timeWindows" : [ { }, { } ],
      "travelTimeModifier" : { },
      "type" : 12345,
      "unloadingDurationPerUnit" : { },
      "x" : 12345.0,
      "y" : 12345.0,
      "active" : true,
      "wholeVisitInTimeWindow" : true,
      "label" : "...",
      "evaluationInfos" : { },
      "possibleVisitDaysList" : [ "...", "..." ],
      "tsOrderMaximumSpacing" : 12345,
      "tsOrderMinimumSpacing" : 12345,
      "tsOrderLastVisit" : 12345,
      "customerId" : "...",
      "email" : "...",
      "phone" : "...",
      "tsOrderBefore" : "...",
      "tsOrderBeforeMaxTimeSpacing" : { },
      "tsOrderBeforeMinTimeSpacing" : { },
      "getNotifications" : true,
      "tsOrderFixed" : true,
      "scanItems" : [ { }, { } ],
      "invoiceId" : "...",
      "originalOperationalId" : "...",
      "maxDelayTime" : { },
      "maxDurationBeforeDepotDrop" : { },
      "allowedDepots" : "...",
      "providedProducts" : "...",
      "tsOrderDisjoint" : true,
      "tsOrderOneVisitPerTimeWindow" : true,
      "tsOrderMaxDropHours" : [ { }, { } ]
    },
    "date" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "start" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "end" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "status" : "TO_BE_PLANNED",
    "type" : "MISSION",
    "lon" : 12345.0,
    "lat" : 12345.0,
    "lastSynchroStatusChange" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "synchroStatus" : "PUBLISHED",
    "achievementStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementComment" : "...",
    "achievementStartLat" : 12345.0,
    "achievementStartLon" : 12345.0,
    "achievementEndLat" : 12345.0,
    "achievementEndLon" : 12345.0,
    "geocode" : {
      "addressComplement" : "...",
      "address" : "...",
      "postcode" : "...",
      "city" : "...",
      "region" : "...",
      "country" : "...",
      "score" : 12345.0,
      "geocodeType" : 12345,
      "geocodeCity" : "...",
      "geocodePostalCode" : "...",
      "geocodeAddressLine" : "..."
    },
    "signatureSvg" : "...",
    "signaturePicture" : "...",
    "data" : {
      "property1" : "...",
      "property2" : "..."
    },
    "pictures" : [ "...", "..." ],
    "simulationId" : "...",
    "simulationDayId" : "...",
    "timeWindowEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "timeWindowStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "appointmentChanged" : true,
    "timeZone" : "...",
    "invoiceSent" : true,
    "customerId" : "...",
    "appointmentFixed" : true,
    "documentUrls" : [ "...", "..." ],
    "organization" : "...",
    "canceledByUser" : true,
    "canceledByCustomer" : true,
    "rescheduled" : true,
    "rescheduleCount" : 12345,
    "rescheduledInSimulation" : "...",
    "fuelType" : "...",
    "vehicleType" : "...",
    "averageFuelConsumption" : 12345.0,
    "workerSignatureSvg" : "...",
    "workerSignaturePicture" : "...",
    "signerName" : "...",
    "zoneId" : {
      "availableZoneIds" : [ "...", "..." ],
      "id" : "...",
      "rules" : { }
    },
    "longId" : 12345,
    "id" : "..."
  }, {
    "report" : {
      "dataItem" : [ { }, { } ],
      "detailSet" : [ { }, { } ]
    },
    "isLate" : true,
    "lateNotificationTimeout" : 12345,
    "etaOrderId" : "...",
    "etaOrderData" : {
      "satisfaction" : { }
    },
    "distance" : 12345.0,
    "scanItems" : [ {
      "comment" : "...",
      "status" : "MissingParcel",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    }, {
      "comment" : "...",
      "status" : "MissingParcel",
      "datetimePickupFromDepot" : { },
      "longitudePickupFromDepot" : 12345.0,
      "latitudePickupFromDepot" : 12345.0,
      "datetimeDeliveryToCustomer" : { },
      "longitudeDeliveryToCustomer" : 12345.0,
      "latitudeDeliveryToCustomer" : 12345.0,
      "datetimePickupFromCustomer" : { },
      "longitudePickupFromCustomer" : 12345.0,
      "latitudePickupFromCustomer" : 12345.0,
      "datetimeDeliveryToDepot" : { },
      "longitudeDeliveryToDepot" : 12345.0,
      "latitudeDeliveryToDepot" : 12345.0,
      "datetimeDeliveryToColleague" : { },
      "longitudeDeliveryToColleague" : 12345.0,
      "latitudeDeliveryToColleague" : 12345.0,
      "datetimePickupFromColleague" : { },
      "longitudePickupFromColleague" : 12345.0,
      "latitudePickupFromColleague" : 12345.0,
      "pictures" : [ "...", "..." ],
      "id" : "...",
      "order" : "...",
      "description" : "..."
    } ],
    "globalScanItemsStatus" : "ReturnedToDepot",
    "tourProgressNotificationSent" : true,
    "numberOfDeliveredItems" : 12345,
    "weatherSkyDescription" : "...",
    "weatherPrecipitationDesc" : "...",
    "weatherPrecipitationProbability" : 12345.0,
    "weatherTemperature" : 12345.0,
    "weatherSnowFall" : 12345.0,
    "weatherRainFall" : 12345.0,
    "weatherWindSpeed" : 12345.0,
    "weatherSnowCover" : 12345.0,
    "weatherVisibility" : 12345.0,
    "followUpShortLink" : "...",
    "missionId" : "...",
    "groupingId" : "...",
    "routeId" : "...",
    "lateStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "OTPPolicy" : "NONE",
    "OTPValue" : "...",
    "senderBarcode" : "...",
    "operationalResourceId" : "...",
    "plannedOrder" : {
      "dayId" : "...",
      "stopPosition" : 12345,
      "stopY" : 12345.0,
      "stopX" : 12345.0,
      "stopId" : "...",
      "stopType" : 12345,
      "stopDriveTime" : { },
      "stopStartTime" : { },
      "stopDuration" : { },
      "stopStatus" : 12345,
      "stopDriveDistance" : 12345,
      "stopElapsedDistance" : 12345,
      "resourceId" : "..."
    },
    "order" : {
      "allSkillsRequired" : true,
      "assignResources" : [ "...", "..." ],
      "assignCosts" : [ 12345, 12345 ],
      "documentReferences" : [ "...", "..." ],
      "courierPenalty" : 12345.0,
      "customDataMap" : {
        "property1" : "...",
        "property2" : "..."
      },
      "delayPenaltyPerHour" : 12345.0,
      "excludeResources" : [ "...", "..." ],
      "fixedVisitDuration" : { },
      "frequency" : "...",
      "id" : "...",
      "minDuration" : { },
      "minPartDuration" : { },
      "punctuality" : 12345,
      "quantities" : [ 12345.0, 12345.0 ],
      "requiredSkills" : [ "...", "..." ],
      "resourceCompatibility" : 12345.0,
      "sequenceNumber" : 12345,
      "timeWindows" : [ { }, { } ],
      "travelTimeModifier" : { },
      "type" : 12345,
      "unloadingDurationPerUnit" : { },
      "x" : 12345.0,
      "y" : 12345.0,
      "active" : true,
      "wholeVisitInTimeWindow" : true,
      "label" : "...",
      "evaluationInfos" : { },
      "possibleVisitDaysList" : [ "...", "..." ],
      "tsOrderMaximumSpacing" : 12345,
      "tsOrderMinimumSpacing" : 12345,
      "tsOrderLastVisit" : 12345,
      "customerId" : "...",
      "email" : "...",
      "phone" : "...",
      "tsOrderBefore" : "...",
      "tsOrderBeforeMaxTimeSpacing" : { },
      "tsOrderBeforeMinTimeSpacing" : { },
      "getNotifications" : true,
      "tsOrderFixed" : true,
      "scanItems" : [ { }, { } ],
      "invoiceId" : "...",
      "originalOperationalId" : "...",
      "maxDelayTime" : { },
      "maxDurationBeforeDepotDrop" : { },
      "allowedDepots" : "...",
      "providedProducts" : "...",
      "tsOrderDisjoint" : true,
      "tsOrderOneVisitPerTimeWindow" : true,
      "tsOrderMaxDropHours" : [ { }, { } ]
    },
    "date" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "start" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "end" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "status" : "UNKNOWN",
    "type" : "DEBRIEFING",
    "lon" : 12345.0,
    "lat" : 12345.0,
    "lastSynchroStatusChange" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "synchroStatus" : "UPDATED",
    "achievementStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "achievementComment" : "...",
    "achievementStartLat" : 12345.0,
    "achievementStartLon" : 12345.0,
    "achievementEndLat" : 12345.0,
    "achievementEndLon" : 12345.0,
    "geocode" : {
      "addressComplement" : "...",
      "address" : "...",
      "postcode" : "...",
      "city" : "...",
      "region" : "...",
      "country" : "...",
      "score" : 12345.0,
      "geocodeType" : 12345,
      "geocodeCity" : "...",
      "geocodePostalCode" : "...",
      "geocodeAddressLine" : "..."
    },
    "signatureSvg" : "...",
    "signaturePicture" : "...",
    "data" : {
      "property1" : "...",
      "property2" : "..."
    },
    "pictures" : [ "...", "..." ],
    "simulationId" : "...",
    "simulationDayId" : "...",
    "timeWindowEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "timeWindowStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedStart" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "wishedEnd" : {
      "epochSecond" : 12345,
      "nano" : 12345
    },
    "appointmentChanged" : true,
    "timeZone" : "...",
    "invoiceSent" : true,
    "customerId" : "...",
    "appointmentFixed" : true,
    "documentUrls" : [ "...", "..." ],
    "organization" : "...",
    "canceledByUser" : true,
    "canceledByCustomer" : true,
    "rescheduled" : true,
    "rescheduleCount" : 12345,
    "rescheduledInSimulation" : "...",
    "fuelType" : "...",
    "vehicleType" : "...",
    "averageFuelConsumption" : 12345.0,
    "workerSignatureSvg" : "...",
    "workerSignaturePicture" : "...",
    "signerName" : "...",
    "zoneId" : {
      "availableZoneIds" : [ "...", "..." ],
      "id" : "...",
      "rules" : { }
    },
    "longId" : 12345,
    "id" : "..."
  } ]
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "SECTORISATION_INDICATOR_OUT_OF_RANGE"
  }
}

4.2.34. Update one sub key Increasing the value of creditsPerDay will automatically reset the daily limit.

PUT /toursolver/updateSubKey
Description

Update one sub key

Increasing the value of creditsPerDay will automatically reset the daily limit. if creditsPerDay is decreased, remainingCredits will take the minimum value between current remainingCredits and new creditsPerDay values.

Table 77. Parameters
Type Name Description Schema Default

Body

body
optional

json_SubKey

Table 78. Responses
HTTP Code Description Schema

204

Success

json_SubKeyResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 204

{
  "application/json" : {
    "subKeys" : [ {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    }, {
      "key" : "...",
      "description" : "...",
      "enabled" : true,
      "creationDate" : 12345,
      "modificationDate" : 12345,
      "expirationDate" : 12345,
      "useCredits" : true,
      "creditsPerDay" : 12345,
      "creditResetDate" : 12345,
      "name" : "...",
      "remainingCredits" : 12345,
      "totalUsedCredits" : 12345,
      "longId" : 12345,
      "id" : "..."
    } ],
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "WRONG_CREATOR"
  }
}

4.2.35. PUT /toursolver/updateUser

Table 79. Parameters
Type Name Description Schema Default

Body

body
optional

json_UserInfo

Table 80. Responses
HTTP Code Description Schema

204

Success

json_ToursolverServiceResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "enabled" : true,
  "firstName" : "...",
  "lastName" : "...",
  "login" : "...",
  "password" : "...",
  "organizations" : [ "...", "..." ],
  "roles" : [ "SEEOTHERSPLANNINGS", "CLIENTWRITE" ],
  "workPatterns" : [ {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  }, {
    "days" : [ 12345, 12345 ],
    "range" : {
      "end" : { },
      "start" : { }
    }
  } ],
  "useGlobalDaysOff" : true,
  "daysOff" : [ {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "MARCH",
      "dayOfWeek" : "THURSDAY"
    },
    "reason" : "..."
  }, {
    "start" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "THURSDAY"
    },
    "end" : {
      "leapYear" : true,
      "dayOfYear" : 12345,
      "chronology" : { },
      "dayOfMonth" : 12345,
      "year" : 12345,
      "era" : { },
      "monthValue" : 12345,
      "month" : "OCTOBER",
      "dayOfWeek" : "SATURDAY"
    },
    "reason" : "..."
  } ],
  "useSSO" : true,
  "phoneNumber" : "...",
  "profile" : "..."
}
Example HTTP response

=.Response 204

{
  "application/json" : {
    "message" : "...",
    "status" : "ERROR",
    "errCode" : "ROUTE_ORDERING_NOAGENCY"
  }
}

4.2.36. Upload photos to operational orders.

POST /toursolver/uploadPhoto
Description

Upload photos to operational orders.

Table 81. Parameters
Type Name Description Schema Default

Body

body
optional

string

Table 82. Responses
HTTP Code Description Schema

201

Success

json_ToursolverServiceResult

Consumes
  • multipart/form-data

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP response

=.Response 201

{
  "application/json" : {
    "message" : "...",
    "status" : "OK",
    "errCode" : "MAX_WEB_USERS_REACHED"
  }
}

4.2.37. Get schedule slot status for a given point.

POST /toursolver/v2/checkSlots
Description

Get schedule slot status for a given point.

This service returns for each specified slot if it’s free or not.

Table 83. Parameters
Type Name Description Schema Default

Body

body
optional

slots definition, day and position

json_CheckScheduleSlotsv2

Table 84. Responses
HTTP Code Description Schema

201

Success

json_CheckScheduleSlotsResult

Consumes
  • application/xml

  • application/json

  • text/xml

Produces
  • application/xml

  • application/json

  • text/xml

Example HTTP request

=.Request body

{
  "timeWindows" : [ {
    "start" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    },
    "maxAppointments" : 12345,
    "end" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    }
  }, {
    "start" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    },
    "maxAppointments" : 12345,
    "end" : {
      "minutes" : 12345,
      "hours" : 12345,
      "seconds" : 12345,
      "timeZone" : "..."
    }
  } ],
  "maxDistance" : 12345,
  "lat" : 12345.0,
  "lon" : 12345.0,
  "day" : {
    "month" : 12345,
    "day" : 12345,
    "year" : 12345
  },
  "computeDistances" : true
}
Example HTTP response

=.Response 201

{
  "application/json" : {
    "slots" : [ {
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "free" : true,
      "distanceToClosest" : 12345.0
    }, {
      "start" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "end" : {
        "epochSecond" : 12345,
        "nano" : 12345
      },
      "free" : true,
      "distanceToClosest" : 12345.0
    } ],
    "message" : "...",
    "status" : "OK",
    "errCode" : "FILE_SIZE_EXCEEDED"
  }
}

5. Api clients

In the following sections, you will find some client libraries for different languages and tips that will help you to use our API. If you do not find a client for your favorite language, you will probably be able to generate your own one from our wadl.

5.1. C# Client Library

We do not provide C# client library but you can easily build one from the wdsl using the ServiceModel Metadata Utility Tool (Svcutil.exe) or Visual Studio’s Add Service Reference Dialog.

C# Resource Example :

//read a resource from a REST url
Uri uri = new Uri(...);

XmlSerializer s = new XmlSerializer(
  typeof( byte[] )
);

  //Create the request object
WebRequest req = WebRequest.Create(uri);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
TextReader r = new StreamReader( stream );

byte[] result = (byte[]) s.Deserialize( r );

//handle the result as needed...

5.2. Java XML Client Library

The Java client-side library is used to provide the set of Java objects that can be serialized to/from XML using JAXB. This is useful for accessing the resources that are published by this application.

Resources Example (Raw JAXB) :

java.net.URL url = new java.net.URL(baseURL + "/toursolver/optimize");
JAXBContext context = JAXBContext.newInstance( byte[].class, byte[].class );
java.net.URLConnection connection = url.openConnection();
connection.setDoOutput(true);
connection.connect();

Unmarshaller unmarshaller = context.createUnmarshaller();
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(optimizeRequest, connection.getOutputStream());
OptimizeResult result = (OptimizeResult) unmarshaller.unmarshal( connection.getInputStream() );
//handle the result as needed...

Resources Example (Jersey client) :

javax.ws.rs.client.Client client = javax.ws.rs.client.ClientBuilder.newClient();

OptimizeResult result = client.target(baseUrl + "/toursolver/optimize")
  .post(javax.ws.rs.client.Entity.entity(optimizeRequest, "application/xml"), OptimizeResult.class);

//handle the result as needed...

5.3. JavaScript Client Library

The JavaScript client-side library defines classes that can be (de)serialized to/from JSON. This is useful for accessing the resources that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

he library uses ES6 class syntax which has limited support. See MDN and the ES6 Compatibility Table for more details.

The library contains a UMD loader which supports AMD, CommonJS and browser globals. The browser global variable name for this library is "javascriptClient".

JavaScript Example :

/read the resource in JSON:
var json = JSON.parse(jsonString);

//create an object
var object = new Object(json);

//retreive the json again
var newJson = object.toJSON();

//serialize the json
var newJsonString = JSON.stringify(newJson);

5.4. PHP JSON Client Library

The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON. This is useful for accessing the resources that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library requires the json_encode function which was included in PHP versions 5.2.0+.

PHP JSON Example :

//read the resource in JSON:
$json = ...;

//read the json as an array.
$parsed = json_decode($json, true);

//read the json array as the object
$result = new Object($parsed);

//open a writer for the json
$json = $result->toJson();

5.5. PHP XML Client Library

The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML. This is useful for accessing the resources that are published by this application, but only those that produce a XML representation of their resources.

This library leverages the XMLReader and XMLWriter tools that were included in PHP versions 5.1.0+.

PHP XML Example :

//read the resource in XML form:
$xml = ...;

$reader = new \XMLReader();

if (!$reader->open($xml)) {
  throw new \Exception('Unable to open ' . $xml);
}
$result = new Object($reader);

//open a writer for the xml
$out = ...;
$writer = new \XMLWriter();
$writer->openUri($out);
$writer->startDocument();
$writer->setIndent(4);
$result->toXml($writer);
$writer->flush();

6. Definitions

6.1. (JSON) AbstractChronology

Type : object

6.2. (JSON) AddClientsRequest

Name Description Schema

clients
optional

< json_ClientEntity > array

6.3. (JSON) AddClientsResult

generic result of service

Polymorphism : Composition

Name Description Schema

clients
optional

< json_ClientEntity > array

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.4. (JSON) AddOperationalOrdersRequest

Name Description Schema

orders
optional

< json_OperationalOrder > array

6.5. (JSON) AddOperationalOrdersResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

orders
optional

< json_OperationalOrder > array

status
optional

response status, OK or ERROR

json_Status

6.6. (JSON) AddPositionsRequest

Optimization request

Name Description Schema

positions
optional

list of positions

< json_GpsPosition > array

userLogin
optional

Mobile user login
Example : "null"

string

6.7. (JSON) AddVisitsRequest

Name Description Schema

id
optional

Example : "null"

string

language
optional

Example : "null"

string

orders
optional

< json_TSOrder > array

6.8. (JSON) AddVisitsResult

Name Description Schema

message
optional

Example : "null"

string

status
optional

Example : "null"

string

6.9. (JSON) ApiErrorCode

Type : enum (UNKNOWN, INVALID_REQUEST, OBJECT_NOT_FOUND, USER_NOT_FOUND, PREMIUM_FEATURE, DEVICE_REF_GENERATION_ERROR, TRIAL_OR_EXPIRED_SUBSCRIPION, UNSUPPORTED_ID_FORMAT, DUPLICATED_IDS, MISSING_ID, MISSING_TASK_ID, TASK_NOT_FOUND, RESULT_NOT_FOUND, INVALID_DATE, SIMULATION_NOT_FOUND, OPTIMIZATION_PROCESS_ERROR, BAD_COUNTRY_CODE, TOO_MANY_RESOURCES, NO_RESOURCES, NO_ORDERS, TOO_MANY_ORDERS, TEAM_NOT_FOUND, CUSTOM_RESOURCES_NOT_ALLOWED, MAX_OPTIM_DURATION_TOO_LONG, SPEED_PATTERN_NOT_FOUND, VEHICLE_PROFILE_NOT_FOUND, SECTORISATION_INDICATORS_WEIGHT_OUT_OF_RANGE, SECTORISATION_POINTS_WEIGHT_OUT_OF_RANGE, MISSING_INDICATOR, UNSUPPORTED_SECTORIZATION_INDICATOR, SECTORISATION_INDICATOR_OUT_OF_RANGE, INVALID_SECTORISATION_INDICATOR, POSITION_UNKOWN_ERROR, POSITION_STORING_FAILURE, MISSING_EXPORT_PARAMETERS, OPERATIONAL_EXPORT_FAILURE, AUTHENTICATION_SERVER_ERROR, GATEWAY_ERROR, CLIENT_NO_FOUND, CLIENT_EXTERNREF_ALREADY_USED, CLIENT_API_ERROR, OPERATIONAL_ORDER_DB_ERROR, ORDER_NOT_FOUND, CHRONOLOGICAL_ORDER_VIOLATION, FILE_UPLOAD_FAILURE, FILE_STORING_FAILURE, PROFILE_NOT_FOUND, LOGIN_ALREADY_USED, MAX_WEB_USERS_REACHED, MAX_MOBILE_USERS_REACHED, AD_ERROR, DEFAULT_USER_DISABLED, ORGANIZATION_NOT_FOUND, ROLE_RESTRICTION, AGENCY_RESTRICTION, ROUTE_CONFLICT, ROUTE_ORDERING_NOPICKUP, ROUTE_ORDERING_NOAGENCY, ROUTE_ORDERING_FAILURE, DATABASE_ERROR, ROUTE_DELETION_PUBLISHED, ROUTE_UNPUBLISH_OVER, PUBLISHED_ROUTE_UNASSIGNMENT, ROUTE_ORDERING_SEVERALAGENCIES, PLANNED_MISSION_UPDATE_FORBIDEN, BOOKING_NO_RESULT, BOOKING_UNKNOWN_JOB_ID, BOOKING_FAILURE, SUB_KEY_NOT_ENABLED, SUB_KEY_INVALID_OBJECT, SUB_KEY_INSUFFICIENT_CREDITS, WRONG_CREATOR, WRONG_CONTRACTOR, MISSING_CREATOR, UNKNOWN_DOC_ID, FILE_NOT_FOUND, FORBIDDEN_FILTE_TYPE, FILE_SIZE_EXCEEDED)

6.10. (JSON) BalanceType

Type : enum (NONE, ORDERS, HOURS, QUANTITY)

6.11. (JSON) BinaryData

Name Description Schema

content
optional

Example : "null"

string

fileName
optional

Example : "null"

string

length
optional

number

mimeType
optional

Example : "null"

string

resourceId
optional

Example : "null"

string

6.12. (JSON) CheckScheduleSlots

Name Description Schema

computeDistances
optional

If false compute flying distance between position, otherwise driven distance

boolean

day
optional

Day date for which you want the slots

number

lat
optional

Latitude of the appointment to reschedule

number

lon
optional

Longitude of the appointment to reschedule

number

maxDistance
optional

Maximum distance in km to closest scheduled order Set it to 0 if you don’t want any limit

number

timeWindows
optional

List of slots

< json_ScheduleTimeWindow > array

6.13. (JSON) CheckScheduleSlotsResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

slots
optional

< json_ScheduleSlot > array

status
optional

response status, OK or ERROR

json_Status

6.14. (JSON) CheckScheduleSlotsv2

Name Description Schema

computeDistances
optional

If false compute flying distance between position, otherwise driven distance

boolean

day
optional

Day date for which you want the slots

json_SimpleDate

lat
optional

Latitude of the appointment to reschedule

number

lon
optional

Longitude of the appointment to reschedule

number

maxDistance
optional

Maximum distance in km to closest scheduled order Set it to 0 if you don’t want any limit

number

timeWindows
optional

List of slots

< json_ScheduleTimeWindow > array

6.15. (JSON) ClientBaseEntity

Name Description Schema

additionalAddress
optional

Example : "null"

string

agency
optional

Example : "null"

string

allSkillsRequired
optional

boolean

allowedDepots
optional

Example : "null"

string

city
optional

Example : "null"

string

color
optional

Example : "null"

string

countryFull
optional

Example : "null"

string

creationDate
optional

number

description
optional

Example : "null"

string

designation
optional

Example : "null"

string

email
optional

Example : "null"

string

externRef
optional

Example : "null"

string

fixedVisitDuration
optional

number

frequency
optional

Example : "null"

string

frequencyType
optional

Example : "null"

string

geocodeType
optional

Example : "null"

string

getNotification
optional

boolean

givenName
optional

Example : "null"

string

id
optional

Example : "null"

string

isCustomer
optional

boolean

lastComment
optional

Example : "null"

string

lastFeedback
optional

number

lastUpdateUser
optional

Example : "null"

string

lastVisitDate
optional

number

lastVisitId
optional

Example : "null"

string

manualPosition
optional

json_ManualPosition

maxSpacing
optional

number

minSpacing
optional

number

mobile
optional

Example : "null"

string

nextVisitDate
optional

number

occupation
optional

Example : "null"

string

ownerId
optional

Example : "null"

string

phone
optional

Example : "null"

string

photoURL
optional

Example : "null"

string

possibleVisitDays1
optional

Example : "null"

string

possibleVisitDays2
optional

Example : "null"

string

possibleVisitDays3
optional

Example : "null"

string

possibleVisitDays4
optional

Example : "null"

string

providedProducts
optional

Example : "null"

string

quantities
optional

< number > array

requiredSkills
optional

Example : "null"

string

sector
optional

Example : "null"

string

startsBefore
optional

Example : "null"

string

stateFull
optional

Example : "null"

string

streetAndNumber
optional

Example : "null"

string

surName
optional

Example : "null"

string

timeWindowBeginTime1
optional

number

timeWindowBeginTime2
optional

number

timeWindowBeginTime3
optional

number

timeWindowBeginTime4
optional

number

timeWindowEndTime1
optional

number

timeWindowEndTime2
optional

number

timeWindowEndTime3
optional

number

timeWindowEndTime4
optional

number

title
optional

Example : "null"

string

type
optional

Example : "null"

string

updateDate
optional

number

useManualPositioning
optional

boolean

visitType
optional

number

wholeVisitInTimeWindow
optional

boolean

x
optional

number

y
optional

number

zipCode
optional

Example : "null"

string

6.16. (JSON) ClientEntity

Polymorphism : Composition

Name Description Schema

additionalAddress
optional

Example : "null"

string

agency
optional

Example : "null"

string

allSkillsRequired
optional

boolean

allowedDepots
optional

Example : "null"

string

city
optional

Example : "null"

string

color
optional

Example : "null"

string

countryFull
optional

Example : "null"

string

creationDate
optional

number

customData
optional

< string, string > map

description
optional

Example : "null"

string

designation
optional

Example : "null"

string

email
optional

Example : "null"

string

externRef
optional

Example : "null"

string

fixedVisitDuration
optional

number

frequency
optional

Example : "null"

string

frequencyType
optional

Example : "null"

string

geocodeType
optional

Example : "null"

string

getNotification
optional

boolean

givenName
optional

Example : "null"

string

id
optional

Example : "null"

string

isCustomer
optional

boolean

lastComment
optional

Example : "null"

string

lastFeedback
optional

number

lastUpdateUser
optional

Example : "null"

string

lastVisitDate
optional

number

lastVisitId
optional

Example : "null"

string

manualPosition
optional

json_ManualPosition

maxSpacing
optional

number

minSpacing
optional

number

mobile
optional

Example : "null"

string

nextVisitDate
optional

number

occupation
optional

Example : "null"

string

ownerId
optional

Example : "null"

string

phone
optional

Example : "null"

string

photoURL
optional

Example : "null"

string

possibleVisitDays1
optional

Example : "null"

string

possibleVisitDays2
optional

Example : "null"

string

possibleVisitDays3
optional

Example : "null"

string

possibleVisitDays4
optional

Example : "null"

string

providedProducts
optional

Example : "null"

string

quantities
optional

< number > array

requiredSkills
optional

Example : "null"

string

sector
optional

Example : "null"

string

startsBefore
optional

Example : "null"

string

stateFull
optional

Example : "null"

string

streetAndNumber
optional

Example : "null"

string

surName
optional

Example : "null"

string

timeWindowBeginTime1
optional

number

timeWindowBeginTime2
optional

number

timeWindowBeginTime3
optional

number

timeWindowBeginTime4
optional

number

timeWindowEndTime1
optional

number

timeWindowEndTime2
optional

number

timeWindowEndTime3
optional

number

timeWindowEndTime4
optional

number

title
optional

Example : "null"

string

type
optional

Example : "null"

string

updateDate
optional

number

useManualPositioning
optional

boolean

visitType
optional

number

wholeVisitInTimeWindow
optional

boolean

x
optional

number

y
optional

number

zipCode
optional

Example : "null"

string

6.17. (JSON) CostOperator

Type : enum (SUM, MAX, MIN, AVERAGE)

6.18. (JSON) Data

<p>Classe Java pour Data complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

dataItem
optional

Gets the value of the dataItem property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the dataItem property.

For example, to add a new item, do as follows: <pre> getDataItem().add(newItem); </pre>

Objects of the following type(s) are allowed in the list DataItem

< json_DataItem > array

detailSet
optional

Gets the value of the detailSet property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the detailSet property.

For example, to add a new item, do as follows: <pre> getDetailSet().add(newItem); </pre>

Objects of the following type(s) are allowed in the list DetailSet

< json_DetailSet > array

6.19. (JSON) DataItem

Details data item of the planning event

<p>Classe Java pour DataItem complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

id
optional

Obtient la valeur de la propri??t?? id.
Example : "null"

string

label
optional

Obtient la valeur de la propri??t?? label.
Example : "null"

string

name
optional

Obtient la valeur de la propri??t?? name.
Example : "null"

string

onCancelHandling
optional

Obtient la valeur de la propri??t?? onCancelHandling.

json_DataItemHandling

onCreateHandling
optional

Obtient la valeur de la propri??t?? onCreateHandling.

json_DataItemHandling

onEndHandling
optional

Obtient la valeur de la propri??t?? onEndHandling.

json_DataItemHandling

onPlanningHandling
optional

Obtient la valeur de la propri??t?? onPlanningHandling.

json_DataItemHandling

onRejectHandling
optional

Obtient la valeur de la propri??t?? onRejectHandling.

json_DataItemHandling

onStartHandling
optional

Obtient la valeur de la propri??t?? onStartHandling.

json_DataItemHandling

possibleValues
optional

Obtient la valeur de la propri??t?? possibleValues.

json_PossibleValues

standardHandling
optional

Obtient la valeur de la propri??t?? standardHandling.

json_DataItemHandling

taskTypes
optional

Obtient la valeur de la propri??t?? taskTypes.

json_TaskTypes

type
optional

Obtient la valeur de la propri??t?? type.

json_DataItemType

value
optional

Obtient la valeur de la propri??t?? value.
Example : "null"

string

6.20. (JSON) DataItemHandling

<p>Classe Java pour DataItemHandling.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe. <p> <pre> <simpleType name="DataItemHandling"> <restriction base="{http://www.w3.org/2001/XMLSchema}string" <enumeration value="writable"/> <enumeration value="readonly"/> <enumeration value="mandatory"/> <enumeration value="unvisible"/> </restriction> </simpleType> </pre>

Type : enum (writable, readonly, mandatory, unvisible)

6.21. (JSON) DataItemType

<p>Classe Java pour DataItemType.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe. <p> <pre> <simpleType name="DataItemType"> <restriction base="{http://www.w3.org/2001/XMLSchema}string" <enumeration value="string"/> <enumeration value="multiLine"/> <enumeration value="number"/> <enumeration value="date"/> <enumeration value="checkBox"/> <enumeration value="url"/> </restriction> </simpleType> </pre>

Type : enum (string, multiLine, number, date, checkBox, url)

6.22. (JSON) DayOfWeek

Type : enum (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY)

6.23. (JSON) DayOff

Name Description Schema

end
optional

json_LocalDate

reason
optional

Example : "null"

string

start
optional

json_LocalDate

6.24. (JSON) DeleteClientsRequest

Name Description Schema

clientsExternRefs
optional

< string > array

ids
optional

< string > array

6.25. (JSON) DeleteClientsResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.26. (JSON) DeleteOperationalOrdersRequest

Name Description Schema

ordersIds
optional

< string > array

6.27. (JSON) DepotCostMode

Type : enum (NONE, ALL, FIRST, ALLBUTFIRST)

6.28. (JSON) DepotsResult

generic result of service

Polymorphism : Composition

Name Description Schema

depots
optional

List of depots

< json_TSDepot > array

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.29. (JSON) DetailSet

table of data, usually bound to a Mission event, used represent a set of items such as list of product to scan, a todo list???

<p>Classe Java pour DetailSet complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

displayMode
optional

Obtient la valeur de la propri??t?? displayMode.

json_DisplayMode

fields
optional

Gets the value of the fields property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the fields property.

For example, to add a new item, do as follows: <pre> getFields().add(newItem); </pre>

Objects of the following type(s) are allowed in the list DetailSetField

< json_DetailSetField > array

items
optional

Gets the value of the items property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the items property.

For example, to add a new item, do as follows: <pre> getItems().add(newItem); </pre>

Objects of the following type(s) are allowed in the list DetailSetItem

< json_DetailSetItem > array

kind
optional

Obtient la valeur de la propri??t?? kind.
Example : "null"

string

title
optional

Obtient la valeur de la propri??t?? title.
Example : "null"

string

6.30. (JSON) DetailSetField

Describe one field of an Item in a detailset

<p>Classe Java pour DetailSetField complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

access
optional

Obtient la valeur de la propri??t?? access.

json_DataItemHandling

datatype
optional

Obtient la valeur de la propri??t?? datatype.

json_DetailSetType

id
optional

Obtient la valeur de la propri??t?? id.
Example : "null"

string

kind
optional

Obtient la valeur de la propri??t?? kind.
Example : "null"

string

label
optional

Obtient la valeur de la propri??t?? label.
Example : "null"

string

name
optional

Obtient la valeur de la propri??t?? name.
Example : "null"

string

possibleValues
optional

Obtient la valeur de la propri??t?? possibleValues.

json_PossibleValues

6.31. (JSON) DetailSetItem

data item, represent a row in the detailSet table

<p>Classe Java pour DetailSetItem complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

deleteAction
optional

Obtient la valeur de la propri??t?? deleteAction.

boolean

id
optional

Obtient la valeur de la propri??t?? id.
Example : "null"

string

isActive
optional

Obtient la valeur de la propri??t?? isActive.

boolean

values
optional

Gets the value of the values property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the values property.

For example, to add a new item, do as follows: <pre> getValues().add(newItem); </pre>

Objects of the following type(s) are allowed in the list String

< string > array

6.32. (JSON) DetailSetType

<p>Classe Java pour DetailSetType.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe. <p> <pre> <simpleType name="DetailSetType"> <restriction base="{http://www.w3.org/2001/XMLSchema}string" <enumeration value="filler"/> <enumeration value="quantity"/> <enumeration value="date"/> <enumeration value="logical"/> <enumeration value="url"/> </restriction> </simpleType> </pre>

Type : enum (filler, quantity, date, logical, url)

6.33. (JSON) DispatcherTime

Name Description Schema

duration
optional

boolean

time
optional

number

6.34. (JSON) DisplayMode

<p>Classe Java pour DisplayMode.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe. <p> <pre> <simpleType name="DisplayMode"> <restriction base="{http://www.w3.org/2001/XMLSchema}string" <enumeration value="none"/> <enumeration value="table"/> <enumeration value="form"/> <enumeration value="all"/> <enumeration value="application"/> </restriction> </simpleType> </pre>

Type : enum (none, table, form, all, application)

6.35. (JSON) DistanceType

Type : enum (KILOMETERS, MILES, METERS, FEET)

6.36. (JSON) Duration

Name Description Schema

nano
optional

number

negative
optional

boolean

seconds
optional

number

units
optional

< object > array

zero
optional

boolean

6.37. (JSON) EbookingWebhookFeature

Type : enum (ORDERSATISFACTION_CHANGED, ORDERSCHEDULE_CHANGED)

6.38. (JSON) EbookingWebhookRequest

Name Description Schema

feature
optional

json_EbookingWebhookFeature

payload
optional

object

6.39. (JSON) FindClientsRequest

Name Description Schema

filters
optional

< string, string > map

maxResults
optional

number

6.40. (JSON) FindClientsResult

generic result of service

Polymorphism : Composition

Name Description Schema

clients
optional

< json_ClientEntity > array

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.41. (JSON) FulfillmentResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

lastKnownPosition
optional

List of positions

< json_OperationalLastKnownPosition > array

message
optional

error message
Example : "null"

string

operationalOrderAchievements
optional

List of orders

< json_OperationalOrder > array

status
optional

response status, OK or ERROR

json_Status

6.42. (JSON) GPSStatus

<p>Classe Java pour GPSStatus.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe. <p> <pre> <simpleType name="GPSStatus"> <restriction base="{http://www.w3.org/2001/XMLSchema}string" <enumeration value="0"/> <enumeration value="1"/> <enumeration value="2"/> </restriction> </simpleType> </pre>

Type : enum (NO_SIGNAL, ONLINE, OFFLINE)

6.43. (JSON) GeocodeInfos

Name Description Schema

address
optional

Example : "null"

string

addressComplement
optional

Example : "null"

string

city
optional

Example : "null"

string

country
optional

Example : "null"

string

geocodeAddressLine
optional

Example : "null"

string

geocodeCity
optional

Example : "null"

string

geocodePostalCode
optional

Example : "null"

string

geocodeType
optional

number

postcode
optional

Example : "null"

string

region
optional

Example : "null"

string

score
optional

number

6.44. (JSON) GlobalScanStatus

Type : enum (PickupFromDepot, PartiallyPickupFromDepot, DeliveryToCustomer, PartiallyDeliveryToCustomer, DeliveryToColleague, MissingInDepot, ReturnedToDepot)

6.45. (JSON) GpsPosition

Name Description Schema

accuracy
optional

GPS positioning accuracy (radius in meters)

number

batteryLevel
optional

Battery level of the device (0 to 1)

number

date
optional

last position recording date

number

gpsStatus
optional

GPS status of the device

json_GPSStatus

heading
optional

heading (direction) from north, in degrees

number

lat
optional

Latitude

number

lon
optional

Longitude

number

privateMode
optional

Private life status in Mobile App. If true, it means that mobile App is currently in Private life mode, therefore this position is the last known position before the Private life switch.

boolean

6.46. (JSON) HealthResult

Result of the optimize service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

freeMemory
optional

number

jobsCompleted
optional

number

jobsError
optional

number

jobsInqueue
optional

number

jobsProcessing
optional

number

jobsTotal
optional

number

message
optional

error message
Example : "null"

string

processCpuLoad
optional

number

status
optional

response status, OK or ERROR

json_Status

systemCpuLoad
optional

number

threadCount
optional

number

totalMemory
optional

number

6.47. (JSON) ImminentOperationalOrderData

A Toursolver bag of gc-ebooking app’s data bound to an com.geoconcept.toursolver.export.OperationalOrder.

Purpose: decoupling the gc-ebooking 3rd-party app persistence/model from the Toursolver persistence/model.

Name Description Schema

satisfaction
optional

json_ImminentOrderSatisfaction

6.48. (JSON) ImminentOrderSatisfaction

A Toursolver proxy of the gc-ebooking app’s com.geoconcept.ebooking.api.model.OrderSatisfaction.

Purpose: decoupling the gc-ebooking 3rd-party app persistence/model from the Toursolver persistence/model.

Name Description Schema

comment
optional

Example : "null"

string

rating
optional

number

6.49. (JSON) InputStream

Type : object

6.50. (JSON) Instant

Name Description Schema

epochSecond
optional

number

nano
optional

number

6.51. (JSON) IsoChronology

Polymorphism : Composition

Name Description Schema

calendarType
optional

Example : "null"

string

id
optional

Example : "null"

string

6.52. (JSON) LargeBinaryData

Name Description Schema

content
optional

json_InputStream

fileName
optional

Example : "null"

string

length
optional

number

mimeType
optional

Example : "null"

string

resourceId
optional

Example : "null"

string

6.53. (JSON) ListUsersResponse

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

users
optional

< json_UserInfo > array

6.54. (JSON) LocalDate

Name Description Schema

chronology
optional

json_IsoChronology

dayOfMonth
optional

number

dayOfWeek
optional

json_DayOfWeek

dayOfYear
optional

number

era
optional

object

leapYear
optional

boolean

month
optional

json_Month

monthValue
optional

number

year
optional

number

6.55. (JSON) LocalDateTime

Name Description Schema

dayOfMonth
optional

number

dayOfWeek
optional

json_DayOfWeek

dayOfYear
optional

number

hour
optional

number

minute
optional

number

month
optional

json_Month

monthValue
optional

number

nano
optional

number

second
optional

number

year
optional

number

6.56. (JSON) LocalTime

Name Description Schema

hour
optional

number

minute
optional

number

nano
optional

number

second
optional

number

6.57. (JSON) LoginTokenResult

Result of the optimize service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

token
optional

the token string
Example : "null"

string

validUntil
optional

The token validity end date

number

6.58. (JSON) ManualPosition

Name Description Schema

when
optional

number

who
optional

Example : "null"

string

x
optional

number

y
optional

number

6.59. (JSON) Month

Type : enum (JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER)

6.60. (JSON) OneTimePasswordPolicy

Type : enum (NONE, PINCODE, BARCODE, QRCODE, NFC)

6.61. (JSON) OperationalExportRequest

Operational planning export parameters

Name Description Schema

dayNums
optional

< number > array

force
optional

if true, any existing operational planning will be replaced if false and if optimization period overlaps any existing operational planning, export will fail.

boolean

generateFollowingLink
optional

if true, a following short link is generated and stored in each order. This will make this export quite longer.

boolean

resourceMapping
optional

List of MobileResourceMapping defining relation between resource identifier in optimize request and real mobile resource identifier

< json_OperationalResourceMapping > array

startDate
optional

real date corresponding to day 1 of optimize request data

json_LocalDate

taskId
optional

Task identifier. Must point to a completed optimization.
Example : "null"

string

waitForWeatherUpdate
optional

if true, weather info update will be synchronously : export request will end only after weather info update if false, export request will return before weather info update is finished. Note : if generateFollowingLink is true, export will always wait weather info update.

boolean

zoneId
optional

json_ZoneId

6.62. (JSON) OperationalLastKnownPosition

Polymorphism : Composition

Name Description Schema

accuracy
optional

GPS positioning accuracy (radius in meters)

number

batteryLevel
optional

Battery level of the device

number

date
optional

last position recording date

json_Instant

gpsStatus
optional

GPS status of the device

json_GPSStatus

id
optional

Example : "null"

string

lat
optional

Latitude

number

lon
optional

Longitude

number

longId
optional

number

privateLife
optional

Private life status in Mobile App. If true, it means that mobile App is currently in Private life mode, therefore this position is the last known position before the Private life switch.

boolean

6.63. (JSON) OperationalOrder

Polymorphism : Composition

Name Description Schema

OTPPolicy
optional

json_OneTimePasswordPolicy

OTPValue
optional

Example : "null"

string

achievementComment
optional

Achievement comment
Example : "null"

string

achievementEnd
optional

Achievement end date and time

json_Instant

achievementEndLat
optional

Achievement end latitude

number

achievementEndLon
optional

Achievement end longitude

number

achievementStart
optional

Achievement start date and time

json_Instant

achievementStartLat
optional

Achievement start latitude

number

achievementStartLon
optional

Achievement start longitude

number

appointmentChanged
optional

boolean

appointmentFixed
optional

boolean

averageFuelConsumption
optional

number

canceledByCustomer
optional

True if order has been canceled by customer (requesting a new time slot)

boolean

canceledByUser
optional

True if order has been canceled or refused by user through the mobile app

boolean

customerId
optional

Customer id (if using customer tab in UI)
Example : "null"

string

data
optional

fulfillment form data

< string, string > map

date
optional

Planning day

json_Instant

distance
optional

Distance from previous stop

number

documentUrls
optional

List of documents urls

< string > array

end
optional

Planned end date and time

json_Instant

etaOrderData
optional

Customer satisfaction data

json_ImminentOperationalOrderData

etaOrderId
optional

Example : "null"

string

followUpShortLink
optional

Example : "null"

string

fuelType
optional

Example : "null"

string

geocode
optional

Address and position info

json_GeocodeInfos

globalScanItemsStatus
optional

Global scan status

json_GlobalScanStatus

groupingId
optional

Example : "null"

string

id
optional

Example : "null"

string

invoiceSent
optional

True if invoice has been sent

boolean

isLate
optional

boolean

lastSynchroStatusChange
optional

Last change from mobile app

json_Instant

lat
optional

Latitude

number

lateNotificationTimeout
optional

number

lateStart
optional

json_Instant

lon
optional

Longitude

number

longId
optional

number

missionId
optional

Example : "null"

string

numberOfDeliveredItems
optional

Total number of delivered items

number

operationalResourceId
optional

Mobile resource identifier (mobile app login)
Example : "null"

string

order
optional

Original order

json_TSOrder

organization
optional

Organization id
Example : "null"

string

pictures
optional

List of picture relative urls. Url root for pictures is https://api.geoconcept.com/ToursolverCloud/api/rest/otmobile/pictures/

< string > array

plannedOrder
optional

Planned order

json_TSPlanned

report
optional

json_Data

rescheduleCount
optional

number

rescheduled
optional

True if order has been rescheduled and shared

boolean

rescheduledInSimulation
optional

For canceled orders : id of the simulation if it have been re-integrated
Example : "null"

string

routeId
optional

Example : "null"

string

scanItems
optional

Scan informations

< json_ScanItemAchievement > array

senderBarcode
optional

Example : "null"

string

signaturePicture
optional

Signature, as a picture relative URL (a flavor of the reference 'signatureSvg')

Is bound and synced from the 'signaturesSvg' field. Is a relative URL, as also done for the 'pictures' field (see its documentation for details).
Example : "null"

string

signatureSvg
optional

Signature svg
Example : "null"

string

signerName
optional

Example : "null"

string

simulationDayId
optional

day containing this order in the simulation used to fill the fulfillment planning
Example : "null"

string

simulationId
optional

identifier of the simulation used to fill the fulfillment planning
Example : "null"

string

start
optional

Planned start date and time

json_Instant

status
optional

fulfillment status

json_OperationalOrderStatus

synchroStatus
optional

Sync status

json_OperationalOrderSynchroStatus

timeWindowEnd
optional

End of time window communicated to customer

json_Instant

timeWindowStart
optional

Start of time window communicated to customer

json_Instant

timeZone
optional

Example : "null"

string

tourProgressNotificationSent
optional

True is tour progress notification has been sent to customer

boolean

type
optional

Event type

json_OperationalOrderType

vehicleType
optional

Example : "null"

string

weatherPrecipitationDesc
optional

Example : "null"

string

weatherPrecipitationProbability
optional

number

weatherRainFall
optional

number

weatherSkyDescription
optional

Example : "null"

string

weatherSnowCover
optional

number

weatherSnowFall
optional

number

weatherTemperature
optional

number

weatherVisibility
optional

number

weatherWindSpeed
optional

number

wishedEnd
optional

End of time window requested by customer after slot notification or visit canceling

json_Instant

wishedStart
optional

Start of time window requested by customer after slot notification or visit canceling

json_Instant

workerSignaturePicture
optional

Example : "null"

string

workerSignatureSvg
optional

Example : "null"

string

zoneId
optional

json_ZoneId

6.64. (JSON) OperationalOrderAchievement

Polymorphism : Composition

Name Description Schema

achievementComment
optional

Achievement comment
Example : "null"

string

achievementEnd
optional

Achievement end date and time

json_Instant

achievementEndLat
optional

Achievement end latitude

number

achievementEndLon
optional

Achievement end longitude

number

achievementStart
optional

Achievement start date and time

json_Instant

achievementStartLat
optional

Achievement start latitude

number

achievementStartLon
optional

Achievement start longitude

number

appointmentChanged
optional

boolean

appointmentFixed
optional

boolean

averageFuelConsumption
optional

number

canceledByCustomer
optional

True if order has been canceled by customer (requesting a new time slot)

boolean

canceledByUser
optional

True if order has been canceled or refused by user through the mobile app

boolean

customerId
optional

Customer id (if using customer tab in UI)
Example : "null"

string

data
optional

fulfillment form data

< string, string > map

date
optional

Planning day

json_Instant

documentUrls
optional

List of documents urls

< string > array

end
optional

Planned end date and time

json_Instant

fuelType
optional

Example : "null"

string

geocode
optional

Address and position info

json_GeocodeInfos

id
optional

Example : "null"

string

invoiceSent
optional

True if invoice has been sent

boolean

lastSynchroStatusChange
optional

Last change from mobile app

json_Instant

lat
optional

Latitude

number

lon
optional

Longitude

number

longId
optional

number

operationalResourceId
optional

Mobile resource identifier (mobile app login)
Example : "null"

string

order
optional

Original order

json_TSOrder

organization
optional

Organization id
Example : "null"

string

pictures
optional

List of picture relative urls. Url root for pictures is https://api.geoconcept.com/ToursolverCloud/api/rest/otmobile/pictures/

< string > array

plannedOrder
optional

Planned order

json_TSPlanned

rescheduleCount
optional

number

rescheduled
optional

True if order has been rescheduled and shared

boolean

rescheduledInSimulation
optional

For canceled orders : id of the simulation if it have been re-integrated
Example : "null"

string

signaturePicture
optional

Signature, as a picture relative URL (a flavor of the reference 'signatureSvg')

Is bound and synced from the 'signaturesSvg' field. Is a relative URL, as also done for the 'pictures' field (see its documentation for details).
Example : "null"

string

signatureSvg
optional

Signature svg
Example : "null"

string

signerName
optional

Example : "null"

string

simulationDayId
optional

day containing this order in the simulation used to fill the fulfillment planning
Example : "null"

string

simulationId
optional

identifier of the simulation used to fill the fulfillment planning
Example : "null"

string

start
optional

Planned start date and time

json_Instant

status
optional

fulfillment status

json_OperationalOrderStatus

synchroStatus
optional

Sync status

json_OperationalOrderSynchroStatus

timeWindowEnd
optional

End of time window communicated to customer

json_Instant

timeWindowStart
optional

Start of time window communicated to customer

json_Instant

timeZone
optional

Example : "null"

string

type
optional

Event type

json_OperationalOrderType

vehicleType
optional

Example : "null"

string

wishedEnd
optional

End of time window requested by customer after slot notification or visit canceling

json_Instant

wishedStart
optional

Start of time window requested by customer after slot notification or visit canceling

json_Instant

workerSignaturePicture
optional

Example : "null"

string

workerSignatureSvg
optional

Example : "null"

string

zoneId
optional

json_ZoneId

6.65. (JSON) OperationalOrderStatus

Type : enum (CANDIDATE, FIXED, ACCEPTED, REFUSED, REFUSED_BY_CUSTOMER, STARTED, FINISHED, CANCELLED, PAUSED, RESUMED, UNKNOWN, TO_BE_PLANNED)

6.66. (JSON) OperationalOrderSynchroStatus

Type : enum (PUBLISHED, SENT, UPDATED, UNKNOWN)

6.67. (JSON) OperationalOrderType

Type : enum (MISSION, RESTBREAK, LUNCHBREAK, WAITBREAK, RELOADBREAK, START, END, ENDBEFORENIGHT, STARTAFTERNIGHT, BRIEFING, DEBRIEFING, WAYPOINT, UNKNOWN)

6.68. (JSON) OperationalResourceMapping

The mobile resource mapping links the resource identifier used in optimized data and the mobile resource identifier used for operational planning export

Name Description Schema

averageFuelConsumption
optional

number

day
optional

number

fuelType
optional

Example : "null"

string

id
optional

resource identifier
Example : "null"

string

operationalId
optional

Mobile identifier
Example : "null"

string

vehicleType
optional

Example : "null"

string

6.69. (JSON) OptimEngine

Type : enum (OTSOLVER, OTSOLVER_LOGISTIC, TSDK)

6.70. (JSON) OptimResultResult

Result of an optimization task.

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

plannedOrders
optional

the planned stops

< json_TSPlanned > array

simulationId
optional

Id of the simulation associated to this task
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

taskId
optional

the id of the optimization task (usefull if result is automatically sent through a webhook).
Example : "null"

string

unplannedOrders
optional

the orders which has not been planned because: <li>it was sent by an other mail service <li>it was not scheduled by any resource.

< json_TSUnplanned > array

warnings
optional

the list of warning messages (and associated error codes) about possible Orders and Resources elements constraints misconfiguration.

< json_TSWarning > array

6.71. (JSON) OptimStatusResult

Result of status request

Polymorphism : Composition

Name Description Schema

currentCo2
optional

Remaining Kg CO2 of the current solution

number

currentCost
optional

Cost of the current solution

number

currentCourierCost
optional

Courier cost of the current solution

number

currentDeliveredQuantity
optional

Total quantity delivered of the current solution

number

currentDeliveryCost
optional

Delivery cost of the current solution

number

currentDriveCost
optional

Drive cost of the current solution

number

currentDriveDistance
optional

Drive distance of the current solution

number

currentDriveTime
optional

Drive time in seconds of the current solution

number

currentFixedCost
optional

Fixed cost of the current solution

number

currentLateTime
optional

Late time in seconds of the current solution

number

currentLongTravelCost
optional

number

currentMaximumReloadsCost
optional

number

currentNights
optional

number

currentNightsCost
optional

Nights cost of the current solution

number

currentOpenTourNumber
optional

initial number of open tours (tours with at least one visit)

number

currentOverWorkCost
optional

Overwork cost of the current solution

number

currentOverWorkTime
optional

Over work time in seconds of the current solution

number

currentPickUpQuantity
optional

Total quantity picked-up of the current solution

number

currentPlannedVisits
optional

Number of planned visits of the current solution

number

currentRestTime
optional

Rest time in seconds of the current solution

number

currentUnplannedVisits
optional

Number of visits unplanned or delivered by a courier of the current solution

number

currentVisitsNb
optional

number

currentWaitTime
optional

Wait time in seconds of the current solution

number

currentWorkCost
optional

Work cost of the current solution

number

currentWorkTime
optional

Work time in seconds of the current solution

number

errCode
optional

json_ApiErrorCode

initialCo2
optional

Remaining Kg CO2 of the initial solution

number

initialCost
optional

Cost of the initial solution

number

initialCourierCost
optional

Courier cost of the initial solution

number

initialDeliveredQuantity
optional

Total quantity delivered of the initial solution

number

initialDeliveryCost
optional

Delivery cost of the initial solution

number

initialDriveCost
optional

Drive cost of the initial solution

number

initialDriveDistance
optional

Drive distance of the initial solution

number

initialDriveTime
optional

Drive time in seconds of the initial solution

number

initialFixedCost
optional

Fixed cost of the initial solution

number

initialLateTime
optional

Late time in seconds of the initial solution

number

initialLongTravelCost
optional

number

initialMaximumReloadsCost
optional

number

initialNights
optional

number

initialNightsCost
optional

Nights cost of the initial solution

number

initialOpenTourNumber
optional

initial number of open tours (tours with at least one visit)

number

initialOverWorkCost
optional

Overwork cost of the initial solution

number

initialOverWorkTime
optional

Over work time in seconds of the initial solution

number

initialPickUpQuantity
optional

Total quantity picked-up of the initial solution

number

initialPlannedVisits
optional

Number of planned visits of the initial solution

number

initialRestTime
optional

Rest time in seconds of the initial solution

number

initialUnplannedVisits
optional

Number of visits unplanned or delivered by a courier of the initial solution

number

initialVisitsNb
optional

number

initialWaitTime
optional

Wait time in seconds of the initial solution

number

initialWorkCost
optional

Work cost of the initial solution

number

initialWorkTime
optional

Work time in seconds of the current solution

number

message
optional

error message
Example : "null"

string

mileageChartRemainingTime
optional

Mileage and travel time matrix computing remaining time. This information may not be available depending on the geographical area.

number

optimizeStatus
optional

Current status of the optimization process

json_OptimizeStatus

positionInQueue
optional

number

simulationId
optional

Id of the simulation associated to this task
Example : "null"

string

startTime
optional

Start time of the optimization

number

status
optional

response status, OK or ERROR

json_Status

subOptimAbortedNb
optional

Number of sub-optimizations in aborted state

number

subOptimErrorNb
optional

Number of sub-optimizations in error state

number

subOptimFinishedNb
optional

Number of sub-optimizations in finished state

number

subOptimNb
optional

Number of sub-optimizations created (after pre-sectorization)

number

subOptimRunningNb
optional

Number of sub-optimizations in running state

number

subOptimWaitingNb
optional

Number of sub-optimizations in waiting state

number

6.72. (JSON) OptimStopResult

Result of status request

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

firstStopAsked
optional

First stop demand stamp

number

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.73. (JSON) OptimToursResult

Result of an optimization task.

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

taskId
optional

the id of the optimization task (usefull if result is automatically sent through a webhook).
Example : "null"

string

tours
optional

List of tours (one tour per resource per day)

< json_TSTour > array

unplannedOrders
optional

the orders which has not been planned because: <li>it was sent by an other mail service <li>it was not scheduled by any resource.

< json_TSUnplanned > array

warnings
optional

the list of warning messages (and associated error codes) about possible Orders and Resources elements constraints misconfiguration.

< json_TSWarning > array

6.74. (JSON) OptimizeRequest

Optimization request

Name Description Schema

beginDate
optional

This date will be used if you try to export the optimization result through TsCloud GUI.

Format : YYYY-MM-DD

Default : day+1.

number

countryCode
optional

Main country code used to route the optimization to the good optimization server farm.
Example : "null"

string

depots
optional

list of depots (for reloading or starting tours)

< json_TSDepot > array

language
optional

Language to use for message localization
Example : "null"

string

options
optional

the optimize task options

json_TSOptions

orders
optional

list of orders (visits to do)

< json_TSOrder > array

organization
optional

In multi-user content, you generally create various organizations that allows to define who sees what. If you set the organization here, only users that can see this organization will see the result of this optimization in the UI.

Note that if you specified a teamId instead of sending the resources in the optimization data, the organization will be guessed from the team.

If no organization is set, all users will see the result.

Organization is also used to determine time zone, if not organization is provided, server will guess the time zone from first visit coordinates.
Example : "null"

string

resources
optional

collection of resources, the elements which will perform deliveries, pick-ups, commercial visit, etc.

< json_TSResource > array

simulationName
optional

Simulation name

Optional : generated automatically if not provided
Example : "null"

string

userLogin
optional

In multi-user content, you can specify a user login you. The simulation will be owned by this user. By default, the owner of the simulation is the default user of the account.
Example : "null"

string

6.75. (JSON) OptimizeResult

Result of the optimize service

Polymorphism : Composition

Name Description Schema

creditsResetDate
optional

Date of the next credit reset (24 hours after the first credit usage).

Computed and returned only when using a SubKey with credits

number

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

optimCredits
optional

Credits used by this optimization. It’s computed like this : - 1 credit per order - 10 credits per resource

Computed and returned only when using a SubKey with credits

number

remainingCredits
optional

Remaining credits for the current period. If there is enough remaining credits before the optim, the returned value is the remaining credits after the optimization. Otherwise, the returned value is the current value for the specified subKey

Computed and returned only when using a SubKey with credits

number

status
optional

response status, OK or ERROR

json_Status

taskId
optional

the id of the optimization task that was launched
Example : "null"

string

token
optional

Unique token that can be used to retrieve the status without exposing the api key
Example : "null"

string

6.76. (JSON) OptimizeStatus

Type : enum (UNDEFINED, WAITING, GEOCODING, MILEAGE_CHART_BUILDING, RUNNING, ABORTED, TERMINATED, ERROR, SECTORIZATION_WAITING, SECTORIZATION_RUNNING, SECTORIZATION_FINISHED, SECTORIZATION_ABORTED)

6.77. (JSON) PersistentObject

Name Description Schema

id
optional

Example : "null"

string

longId
optional

number

6.78. (JSON) Phone

Name Description Schema

country
optional

Example : "null"

string

number
optional

Example : "null"

string

6.79. (JSON) PhoneNumberType

Type : enum (MOBILE, OFFICE, HOME, OFFICE_FAX, HOME_FAX)

6.80. (JSON) PossibleValues

<p>Classe Java pour PossibleValues complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

value
optional

Gets the value of the value property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the value property.

For example, to add a new item, do as follows: <pre> getValue().add(newItem); </pre>

Objects of the following type(s) are allowed in the list String

< string > array

6.81. (JSON) ReadClientResult

generic result of service

Polymorphism : Composition

Name Description Schema

client
optional

json_ClientEntity

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.82. (JSON) Resource

Name Description Schema

children
optional

< json_Resource > array

id
optional

Example : "null"

string

idNotNull
optional

Example : "null"

string

name
optional

Example : "null"

string

parent
optional

json_Resource

path
optional

Example : "null"

string

type
optional

json_ResourceType

6.83. (JSON) ResourceType

Type : enum (CATEGORY, DOCUMENT, TEMPLATE)

6.84. (JSON) ResourcesResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

resources
optional

List of resources

< json_TSResource > array

status
optional

response status, OK or ERROR

json_Status

6.85. (JSON) RoutingMethod

Type : enum (TIME, DISTANCE)

6.86. (JSON) ScanItem

Name Description Schema

description
optional

Example : "null"

string

id
optional

Example : "null"

string

order
optional

Example : "null"

string

6.87. (JSON) ScanItemAchievement

Polymorphism : Composition

Name Description Schema

comment
optional

Example : "null"

string

datetimeDeliveryToColleague
optional

json_Instant

datetimeDeliveryToCustomer
optional

json_Instant

datetimeDeliveryToDepot
optional

json_Instant

datetimePickupFromColleague
optional

json_Instant

datetimePickupFromCustomer
optional

json_Instant

datetimePickupFromDepot
optional

json_Instant

description
optional

Example : "null"

string

id
optional

Example : "null"

string

latitudeDeliveryToColleague
optional

number

latitudeDeliveryToCustomer
optional

number

latitudeDeliveryToDepot
optional

number

latitudePickupFromColleague
optional

number

latitudePickupFromCustomer
optional

number

latitudePickupFromDepot
optional

number

longitudeDeliveryToColleague
optional

number

longitudeDeliveryToCustomer
optional

number

longitudeDeliveryToDepot
optional

number

longitudePickupFromColleague
optional

number

longitudePickupFromCustomer
optional

number

longitudePickupFromDepot
optional

number

order
optional

Example : "null"

string

pictures
optional

< string > array

status
optional

json_ScanStatus

6.88. (JSON) ScanStatus

Type : enum (PickupFromDepot, DeliveryToCustomer, PickupFromCustomer, PickupFromColleague, DeliveryToDepot, DeliveryToColleague, MissingInDepot, MissingParcel)

6.89. (JSON) ScheduleSlot

Name Description Schema

distanceToClosest
optional

number

end
optional

json_Instant

free
optional

boolean

start
optional

json_Instant

6.90. (JSON) ScheduleTime

Name Description Schema

hours
optional

number

minutes
optional

number

seconds
optional

number

timeZone
optional

Example : "null"

string

6.91. (JSON) ScheduleTimeWindow

Name Description Schema

end
optional

json_ScheduleTime

maxAppointments
optional

number

start
optional

json_ScheduleTime

6.92. (JSON) SchedulingAddress

Name Description Schema

city
optional

Example : "null"

string

complement
optional

Example : "null"

string

countryCode
optional

Example : "null"

string

geocodeScore
optional

number

geocodeType
optional

number

postalCode
optional

Example : "null"

string

region
optional

Example : "null"

string

streetAndNumber
optional

Example : "null"

string

x
optional

number

y
optional

number

6.93. (JSON) SchedulingCustomer

Name Description Schema

extra
optional

< string, string > map

id
optional

Example : "null"

string

name
optional

Example : "null"

string

phone
optional

json_Phone

6.94. (JSON) SchedulingRequest

Name Description Schema

address
optional

json_SchedulingAddress

customer
optional

json_SchedulingCustomer

duration
optional

number

timeWindow
optional

json_TimeWindow

6.95. (JSON) SectorizationMethod

Type : enum (TIME, DISTANCE)

6.96. (JSON) SimpleDate

Name Description Schema

day
optional

number

month
optional

number

year
optional

number

6.97. (JSON) SimulationResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

simulation
optional

json_TSSimulation

status
optional

response status, OK or ERROR

json_Status

6.98. (JSON) Status

Type : enum (OK, ERROR)

6.99. (JSON) SubKey

Polymorphism : Composition

Name Description Schema

creationDate
optional

number

creditResetDate
optional

Credits usage are fully reset after 24 hours. Reset is done only when an optimization is started. When the first optimization of the period is started, creditResetDate is set to now+24h. This date is reset only when starting a new optimization and when creditResetDate is in the past.

number

creditsPerDay
optional

Max usable credits per day. It must be positive if useCredits = true

number

description
optional

Example : "null"

string

enabled
optional

If false, using this subkey will result in a 403 response.

boolean

expirationDate
optional

Subkey expiration date. Using this subkey after this date will result in a 403 response.

number

id
optional

Example : "null"

string

key
optional

Read only value, it will be generated automatically *
Example : "null"

string

longId
optional

number

modificationDate
optional

number

name
optional

This name can be used to filter the list of subKeys
Example : "null"

string

remainingCredits
optional

Number of remaining credits (if used). This value is decreased after each optimization. It will be reset to "creditsPerDay" value after 24 hours. The reset action is triggered by a new optimization launch if creditResetDate is in the past.

number

totalUsedCredits
optional

Read only value, incremented for each optimization.

number

useCredits
optional

If true, creditsParDay must be positive

boolean

6.100. (JSON) SubKeyResult

Result of status request

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

subKeys
optional

< json_SubKey > array

6.101. (JSON) TSAdditionalCost

Name Description Schema

type
optional

TSOrder type (stored in a custom data)
Example : "null"

string

value
optional

Cost for this type

number

6.102. (JSON) TSDepot

The Depots object stores depots data. They are composed of X,Y coordinates, identity tags and a set of constraints.

If you want to specify depot locations or allow a resource to reload at several depots, use the Depots object to add and configure your depot data. The Depots object contains zero or more elements. If it contains no element, the base location of each resource acts as a depot location. Once a depot is associated with a resource its base location is no longer used as a depot location.

Polymorphism : Composition

Name Description Schema

allProductsRequired
optional

Indicates whether a resource must provide all required products or one at least.

Set it to True to indicate that a resource must provide all the depot required products. Set it to False to indicate that a resource must provide at least one of the depot required products.

Type : boolean Default : True

boolean

availability
optional

Indicates whether a depot is included in the planning process or not.

This constraint enables you to easily modify your optimization problem configuration without having to add nor delete your original data.

* Set it to True to include a depot element in the planning process.

* Set it to False to ignore it: it will not be used in the planning.

boolean

deliveryQuantities
optional

The available quantities of products available at the depot.

You can specify up to 24 quantities

Type : float array

< number > array

excludeResources
optional

The list of resources excluded from the depot.

Use this constraint to specify a list of resources that can not use the depot.

Type : string array. Default: Empty array: no resource is excluded from the depot
Example : "null"

string

fixedLoadingDuration
optional

The fixed duration for a resource to load at depot. Use this constraint to specify how long takes any resource reload at the depot. You can specify an additional duration according to the quantity to reload, using loadingDurationPerUnit.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

Example :

tsDepot fixedVisitDuration = "00:30:00" indicates that 30 minutes are needed to load at the depot. tsDepot loadingDurationPerUnit = 120 indicates that 120 seconds are needed to load one unit. If the quantity to reload is 8, for instance, the variable part is 120*8. 16 minutes are required to load at the depot. Total load time = 30 minutes + 16 minutes = 46 minutes accounted for this reload break.

json_DispatcherTime

id
optional

The unique identifier of the depot
Example : "null"

string

loadingDurationPerUnit
optional

The time needed to load a unit of product. This constraint is added to the fixed part of the loading duration: it depends on the total quantity to load.

Type : "hh:mm:ss", DateTime, Integer (number of seconds). Default : 0.

json_DispatcherTime

openingDaysList
optional

The depot days of opening, related to the nth depot time window.

Use this constraint to specify the days of operation of a depot referring to a depot time window. It must be related to the tsResourceWorkDays constraint of the resources, as resources work days define the planning period. Depot may be opened on a 64-days long period max, from day 1 to day 64.

Type : string value containing days separated with commas (like "1, 2, 5" or "4, 20/05/2010") or intervals (like "1-10", "2=>5" or "22/05/2010=>03/06/2010"). For day intervals, prefer the "=>" separator. 1 is the first day of the planning period, the corresponding date, if any, is defined by the oldest date, for all resources, in the tsResourceWorkDays constraint. No date in the depots days of opening description can precede the first day of the planning period defined by the resources (which is day 1). Default : 1=>64.

Example :

* Set it to "1" (or "14/05/2010) when a depot is opened on the first day of the planning period. Set it to "1, 2, 4, 5" (or "14/05/2010,15/05/2010,17/05/2010,18/05/2010") if depot may not be visited on the third day of a five-days planning period.

* Set it to "1=>5" (or "14/05/2010=>18/05/2010") to define a 5-days long period during which the depot is opened.

< string > array

pickupQuantities
optional

The available space for a product available at the depot.

You can specify up to 24 values.

Type : float array

< number > array

priority
optional

Depot priority.

Use this constraint to specify a priority on the depot. If two depots are nearby the system considers the one with the highest priority

**Type : * integer

number

requiredProducts
optional

The list of the products a depots contains.

Use this constraint when a depot must be affected to a specific kind of resource: these resources will have to provide the required required to be able to load at the depot.

Type : string (as a list of products separated with commas).

Default : none
Example : "null"

string

resourceNames
optional

Lists the resources that can use the depot.

Type : string array.

Default : Empty array: no resource can use the depot.

Example : Specify ["Vehicle 1","Vehicle 2"] to allow only the resources with tags "Vehicle 1" and "Vehicle 2" to use the depot.
Example : "null"

string

supportedProducts
optional

The list of the products a depots can receive.

Use this constraint when a depot must be affected to a specific kind of order (TSORDERPROVIDEDPRODUCTS constraint): these orders will have to provide the specified products to be able to drop at the depot.

Type : string (as a list of products separated with commas).

Default : none
Example : "null"

string

timeWindows
optional

The depot time windows.

Use this constraint to specify a depot time window during which the depot is opened. A depot time window is defined by its start time, its end time and days of opening. The start time of a depot time window is the first instant when a resource can enter the depot. Its end time is the last instant when a resource can enter the depot (but it may leave it afterward). You can specify up to 4 depot time windows for each depot.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

< json_TSTimeWindow > array

travelTimeModifier
optional

Indicates the value of the travel time modifier.

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location (tsDepotTravelTimeModifierValue), the portion of the travel time on which the modifier applies (tsDepotTravelTimeModifierLength) an offset to add to any travel duration leaving or reaching the location (tsDepotTravelTimeModifierOffSet).

Example :

* Set tsResource travelTimeModifierValue to 1.5, tsResource travelTimeModifierLength to 300 and tsResource travelTimeModifierOffSet to 60 for Resource 1

* Set tsDepot travelTimeModifierValue to 2, tsDepot travelTimeModifierLength to 420 and tsDepot travelTimeModifierOffSet to 0 for Depot 1 If the initial travel duration between Resource 1 and Depot 1 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

Type : float, Default : 1

json_TSTravelTimeModifier

x
optional

longitude WGS84 of depot

number

y
optional

latitude WGS84 of depot

number

6.103. (JSON) TSEvaluationInfos

Name Description Schema

orderOriginalResourceId
optional

The identity of the resource which visits the customer when evaluating an existing planning.

* Use this constraint when you want to 'evaluate' an existing planning.

* Use the orderOriginalVisitDay constraint to specify the working day when the visit must be planned.

* Use the orderPosition constraint to specify the position of a visit in the tour.

Type : string (storing a unique resource tag). Default: : not used
Example : "null"

string

orderOriginalVisitDay
optional

Indicates the work day when the resource which visits the customer when evaluating an existing planning.

* Use this constraint when you want to 'evaluate' an existing planning.

* Use the orderOriginalResourceID to specify the resource which visit the customer.

* Use the orderPosition to specify the position of a visit in the tour.

Type : integer between 1 and 64 or string representing a date.

1 is the first day of the planning period, the corresponding date, if any, is defined by the oldest date, for all resources, in the tsResourceWorkDays constraint. if the original visit day is in the date format, this date cannot precede the first day of the planning period defined by the resources (which is day 1).

Default : not used if the tsOrderOriginalResourceIDis not used, 1 overwise
Example : "null"

string

orderPosition
optional

The position of a customer in a resource tour.

Use this constraint when you want to evaluate a tour.

Type : integer. Default : not used

number

6.104. (JSON) TSObject

Type : object

6.105. (JSON) TSOptions

Options for optimization request

Name Description Schema

advancedSettings
optional

List of the advanced settings for standard engine

Use this to override the advanced settings set in the UI.

Type : Array of strings

Example : ["FirstSolutionStrategy=NEAREST", "ParkingTime=30"]

< string > array

allowBoatFerry
optional

Allow ferry boats (standard solver only)

If false, all ferry boats junctions will be avoided.

Default : true.

boolean

allowBridge
optional

Allow bridge

If false, all bridges will be avoided.

Default : true.

boolean

allowLowEmissionZones
optional

Allow traveling through Low Emission Zones (standard solver only)

If false, all low emission zones will be avoided.

Default : true.

boolean

allowToll
optional

Allow toll

If false, all toll ways will be avoided.

Default : true.

boolean

allowTunnel
optional

Allow tunnel

If false, all tunnels will be avoided.

Default : true.

boolean

balanceType
optional

Route plans balancing type

* NONE : no balancing

* ORDERS : balance the number of orders (to be used with balanceValue)

* HOURS : balance the route plans duration

* QUANTITY : balance the route plans delivered quantity

Only available with OTSolver

json_BalanceType

balanceValue
optional

Route plans balancing target (to be used with balanceType)

Locked route plans are not considered.

Only available with OTSolver

number

countDepotsInDeliveryCost
optional

Depot cost configuration for tour delivery cost

Specifies how depots stops are counted in tour delivery cost (using PenaltyPerVisit defined on resources).

Possible values are :

* NONE : depots stops are not counted in tour delivery cost

* ALL : each depot stop counts as one visit in tour delivery cost

* ALLBUTFIRST : first depot stop is ignored but each following depot stop will count as one visit in tour delivery cost

* FIRST : only first depot stop is counted in tour delivery cost

Default : NONE.

json_DepotCostMode

countVisitCostOnceIfSameLocation
optional

If true, PenalPerVisit will counted only once in tour delivery cost if several visits at the same location are planned consecutively.

boolean

distanceType
optional

Set the distance unit (meters, feet, km or miles), defaut is meters

json_DistanceType

evaluation
optional

Enable this if you just want to evaluate (get cost, distances, etc) a set of tours. Therefore, you must fill the evaluationInfos objects in orders (see TSEvaluationInfos).

Default : false.

boolean

excludeVisitCostIfMaxAdditionalCost
optional

Exclude visit delivery cost for visits having the maximum additional cost

boolean

fuelCode
optional

Vehicles fuel type. Possible values are :

* diesel

* undefined

* unleaded
Example : "null"

string

maxOptimDuration
optional

maximum optimization time. Default is one minute.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes)

json_DispatcherTime

noReload
optional

Use it to forbid/allow reloads

Default : false.

boolean

optimEngine
optional

Which optimization engine to use. Possible values: OTSOLVER(default), OTSOLVER_LOGISTIC.

OTSOLVER is the standard generic optimization engine handling many constraints.

OTSOLVER_LOGISTIC an optimization engine dedicated for logistic. It handles fewer constraints but is quicker for very dense optimizations.

json_OptimEngine

rejectFlags
optional

< string > array

reloadDuration
optional

Default reload duration

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes)

json_DispatcherTime

routingMethod
optional

Routing method

Specifies routing method used for travel time and distance matrix computation

Possible values are :

* TIME : routes minimizing travel time are used

* DISTANCE : routes minimizing travel distance are used

Default : TIME.

json_RoutingMethod

sendResultToWebhook
optional

Enable result export to webhook

If enabled, optimization result will be sent to the webook you defined in Toursolver Cloud configuration.

Possible values are :

* NONE : result will not be sent automatically when optimization finishes. You will have to call the result or toursResult service to retrieve it.

* ORDERS : the "orders" result will be sent to the specified webhook. See OptimResultResult object for details.

* TOURS : the "tours" result will be sent to the specified webhook. See OptimToursResult object for details.

Default : NONE.

json_WebhookExportMode

speedPattern
optional

Speed pattern name

Specifies the speed pattern to be used for this optimization. "default_profile" is the internal name for the default speed pattern (its actual name in UI depends on your locale).

You can use your own speed pattern (defined in Toursolver UI) but you will have to use its internal name : if you created a pattern called "Paris august speed pattern", its internal name will be "paris_august_speed_pattern".

If set to null (or not defined), no speed pattern will be used at all (same speeds for whole day).
Example : "null"

string

startFromEvaluationInfo
optional

Enable this if you want the optimization to start from a specified initial configuration. Therefore, you must fill the evaluationInfos objects in orders (see TSEvaluationInfos).

Default : false.

boolean

teamId
optional

If you did not specify any resource in your request, all resources defined in your tenant will be used for this optimization. If you specify a team identifier, only the resources of this team will be used.
Example : "null"

string

useForbiddenTransitAreas
optional

Whether to use forbidden transit areas

Specifies true to use forbidden transit areas, and false to ignore forbidden transit areas

If omitted, default to true, but has no effect if no forbidden transit areas are supplied

boolean

useOTSolver
optional

OTSolver is the standart optimization engine behind Toursolver. It behaves better with big problems (more than 1000 visits).

boolean

vehicleCode
optional

Vehicles regulations.

Possible values are :

* bicycle

* bus

* car

* deliveryIntermediateVehicle

* deliveryLightCommercialVehicle

* emergencyTruck

* emergencyVehicle

* intermediateVehicle

* lightCommercialVehicle

* pedestrian

* taxi

* truck

If not specified, vehicle type defined in UI will be used
Example : "null"

string

6.106. (JSON) TSOrder

The Order object stores order data.

Order is composed of X,Y coordinates, identity tags, a set of constraints and status reports.

Use the Orders object to specify your orders data. These elements can be considered as deliveries, pick-ups or commercial visits occuring at a specific locations.

The optimization process consists in assigning Orders elements to Resources elements in a way that respects the constraints of every element and minimizes the total cost of the planning.

Polymorphism : Composition

Name Description Schema

active
optional

Indicates whether the order should scheduled or not

Default : True.

boolean

allSkillsRequired
optional

Indicates whether a resource must provide all required skills or one at least.

* Set it to True to indicate that a resource must provide all the customer required skills.

* Set it to False to indicate that a resource must provide at least one of the customer required skills.

Default : True.

boolean

allowedDepots
optional

The list of depots where orders collected products can be dropped (standard solver only, with advanced setting "HealthDelivery=true").

This constraint is linked with tsOrder maxDurationBeforeDepotDrop constraint: a if a return to depot is enabled on an order, it will be done only at one the specified depots

Type : string as a list of depot ids separated with commas. Default : not used.

Example : "DEPOT_PARIS,DEPOT_ORLEANS"
Example : "null"

string

assignCosts
optional

The assignment cost of the resources that can deliver a customer (standard solver only).

Use this constraint in conjunction with assignResources if you want to set preferences between the resources. If you set assingResources=['R1','R2'] and assignCosts=[10,100], it is very likely that the order will be assigned to the resource R1 which have a lower assignment cost.

If you specified several resources in assignResources, you must specify the same number of costs (or none)

Type : int array containing const values.

Default : not used.

< number > array

assignResources
optional

The identities of the resources that can deliver a customer.

Use this constraint when you want some customers to be delivered by specific resources.

Type : string array containing resources tag ID

Default : not used.

< string > array

courierPenalty
optional

The cost of the order delivered by an independant transport device.

Use this constraint when an order can be delivered independantly to specify the cost of the device. The solver engine will assign it to a courier device or integrate it in a tour according to the least cost.

Type : float.

Default : not used.

number

customDataMap
optional

Private feature data.

Use this feature when you need to keep accessible private data about customers. For instance if you need to export the address of an element in a planning report, store it there. These informations can also be exported to the mobile app.

max 50 fields

Default : empty.

< string, string > map

customerId
optional

Example : "null"

string

delayPenaltyPerHour
optional

The penalty per hour for being late at a customer.

Use this constraint to allow a smarter control, with respect to time windows, than with the use of the tsOrderPunctuality constraint.

Type : float.

Default : not used.

number

documentReferences
optional

< string > array

email
optional

Example : "null"

string

evaluationInfos
optional

first order assignment (specifying resource, day and position in route).

Use it to compare optimization result with a previous optimization

Warning : used only if startFromEvaluationInfo is set to true in options.

json_TSEvaluationInfos

excludeResources
optional

The identities of the resources which must not deliver a customer.

Use this constraint when you want to prevent some customers from being delivered by specific resources.

< string > array

fixedVisitDuration
optional

The fixed part of the total time spent visiting a customer.

Use this constraint to specify the minimum time spent at a customer’s. Use it to store the time needed by a vehicle to park, for instance, or the time planned for a commercial meeting.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

Example :

* tsOrderFixedVisitDuration = "00:30:00" indicates that the visit will be 30 minutes long.

* tsOrderUnloadingDurationPerUnit = 120 indicates that 120 seconds are necessary to unload one unit. With a tsOrderQuantity equal to 8, for instance, the variable part is 120*8 (960 seconds or 16 minutes) to unload the customer ordered quantity.

* Total delivery time = 30 minutes + 16 minutes = 46 minutes accounted for the customer delivery.

json_DispatcherTime

frequency
optional

The visit occurrence within a defined period.

Use this constraint to plan multiple visits at a customer during a period.

Type: string value describing the number of visits over a period. Default: not used.

Example :

Frequency = "3/5" means a customer must be visited 3 times within a 5-days long period. The solver engine will create and optimize routes respecting an optimal duration between consecutive visits. Thus, back to the example, the computed period is 5/3 rounded = 2. The best solution will respect, as far as possible, a 2-days long period between each visit (ex: day1, day3, day5 is a good solution).
Example : "null"

string

getNotifications
optional

boolean

id
optional

The unique identifier of the order
Example : "null"

string

invoiceId
optional

Example : "null"

string

label
optional

Example : "null"

string

maxDelayTime
optional

This constraint specifies the maximum allowed delay (standard solver only). You must specify a cost per hour through the delayPenaltyPerHour constraint.

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

maxDurationBeforeDepotDrop
optional

This constraint specifies the maximum time between the end of this order and a return to the depot (standard solver only).

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

minDuration
optional

The min duration of the visit that enables partition.

When the total duration of an order is very long, you may want to part it into multiple consecutive visits. First use this constraint to specify a duration threshold from which visit can be cut into multiple parts. Then use the tsOrderMinPartDuration to specify the min duration of one part.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

minPartDuration
optional

The min duration of a part of a split visit.

When the total duration of an order is very long, you may want to part it into multiple consecutive visits. First use the tsOrderMinDuration to specify a duration threshold from which the visit can be cut into multiple parts. Then use this constraint to specify the min duration of one part. The visit is split into parts of the set duration, and eventually a bigger one.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

originalOperationalId
optional

Example : "null"

string

phone
optional

Example : "null"

string

possibleVisitDaysList
optional

The possible visit days related to each visit time window.

Use this constraint to specify the possible visit days of a customer referring to a visit time window. It must be related to the tsResourceWorkDays constraint of the resources, as resources work days define the planning period. You can plan visits on a 64-days-long period max.

Type : array of string values containing visit days separated with commas (like "1, 2, 5" or "4, 20/05/2010") or intervals (like "1-10", "2=>5" or "22/05/2010=>03/06/2010"). For day intervals, prefer the "=>" separator. Be carrefull, if the separator of date is - then "1-5" corresponds to May the 1st of the current year. 1 is the first day of the planning period, the corresponding date, if any, is defined by the oldest date, for all resources, in the tsResourceWorkDays constraint. No date in the possible visit days description can precede the first day of the planning period defined by the resources (which is day 1). Default: 1=>64.

You can set up to 4 sets of visit days in this array. If you define several time windows, each time window will apply to corresponding set of possible days : first time window applies to first possible days set, second time window applies to second possible days set, etc.

Example :

* Set it to "1" (or "14/05/2010) when a customer must be visited on the first day of the planning period.

* Set it to "1, 2, 4, 5" (or "14/05/2010,15/05/2010,17/05/2010,18/05/2010") if the customer cannot be visited on the third day of a five days planning period.

* Set it to "1=>5" (or "14/05/2010=>18/05/2010") to define a 5-days long period during which the customer can be visited.

< string > array

providedProducts
optional

The list of products collected during this orders (standard solver only, with advanced setting "HealthDelivery=true").

This constraint is linked with tsDepot supportedProducts constraint and tsOrder maxDurationBeforeDepotDrop constraint: an order collecting products and requiring a return to depot will be planned only if a depot supporting those products is available, and the return will be done only to a depot supporting those products.

Type : string as a list of products separated with commas. Default : not used.

Example : Specify "blood" in the order picked blood sample.
Example : "null"

string

punctuality
optional

The priority for a customer to be delivered on time. With the standart engine, use maxDelaytime and delayPenaltyPerHour instead.

Use this constraint to introduce different priority levels for the respect of visit time windows (when defined). Specify a value from 1 to 5 to set the priority: customers with a punctuality set to 5 will have less risk of delayed deliveries than a customer with a punctuality set to 1. You can specify more precisely punctuality requirements to enforce delay control by using the tsOrderDelayPenaltyPerHour constraint instead of the tsOrderPunctuality constraint.

Type : integer value from 1 to 5.

Default : 1.

number

quantities
optional

The requested product quantities for an order.

Use this constraint to specify the product quantities ordered by a customer, for instance. Up to 24 quantities can be used to order different products. Useless when planning commercial tours.

Type : float array (maximum of 3 significant digits after decimal separator).

Default : 0 Max : 2,147,483.

Example :

* Use this constraint to store the number of ordered packages, when working with packages.

* Use this constraint to store the number of ordered liters, when working with liquids.

* Use multiple dimensions when working with multiple products: when delivering fuels for instance, you will use as many dimensions as types of fuels

Warning : The quantity constraint of the Orders elements must be related to the corresponding capacity constraint of the Resources elements: thus, an order will not be planned whenever no resource with the related capacity has been defined.

< number > array

requiredSkills
optional

The list of the skills a customer requires to be visited.

Use this constraint when an order must be affected to a specific kind of resource: these resources will have to provide the required skills to be able to visit the customer.

Type : string array.

Default : none.

Example :

* Specify the word "Maintenance" as a required skill for a maintenance visit. Only the resources providing the "Maintenance" skill can perform the visit.

* Specify "Small vehicle" as a required skill for a customer living down town.

< string > array

resourceCompatibility
optional

Value for compatibility with resources.

If the order has a compatibility constraint value, a resource is compatible with the order if its compatibility value is either non-existent either larger or equal to the order’s one. See tsResourceOrderCompatibility.

Example :

* Set tsOrderResourceCompatibility to 254.18 and tsResourceOrderCompatibility to 260.12: order and resource are compatible

* Set tsOrderResourceCompatibility to 254.18 and tsResourceOrderCompatibility to 200: the order can not be affected to the resource

* Set tsOrderResourceCompatibility to 254.18 and tsResourceOrderCompatibility empty: order and resource are compatible

* Set tsOrderResourceCompatibility empty and tsResourceOrderCompatibility to 260.12: order and resource are compatible

Type : double

Default : -1

number

scanItems
optional

< json_ScanItem > array

sequenceNumber
optional

number

timeWindows
optional

The visit time windows.

Use this constraint to specify a visit time window during which the order can be delivered. A visit time window is defined by its start time, its end time and possible visit days (see tsOrderTimeWindow1_EndTime, tsOrderPossibleVisitDays1). You can specify up to 4 visit time windows for a customer.

Type : array of time windows

Default : "00:00:00".

Example : A customer can only be delivered: *

* on Monday from 11:00:00 to 12:00:00 AM and from 04:00:00 to 05:00:00 PM,

* on Tuesday, Wednesday, Thursday from 08:00:00 to 09:00:00 AM and from 04:00:00 to 05:00:00 PM,

* on Friday from 08:00:00 to 09:00:00 AM.

Its visit time windows will be specified as follows:

* first time window StartTime = "08:00:00", EndTime = "09:00:00", first set of possible days = "2=>5",

* second time window StartTime = "11:00:00", EndTime = "12:00:00", second set of possible days = 1,

* third time window StartTime = "16:00:00", EndTime = "17:00:00", third set of possible days = "1=>4".

< json_TSTimeWindow > array

travelTimeModifier
optional

Indicates the value of the travel time modifier.

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location (tsOrderTravelTimeModifierValue), the portion of the travel time on which the modifier applies (tsOrderTravelTimeModifierLength) an offset to add to any travel duration leaving or reaching the location (tsOrderTravelTimeModifierOffSet).

Example :

* Set tsOrderTravelTimeModifierValue to 1.5, tsOrderTravelTimeModifierLength to 300 and tsOrderTravelTimeModifierOffSet to 60 for Order 1

* Set tsOrderTravelTimeModifierValue to 2, tsOrderTravelTimeModifierLength to 420 and tsOrderTravelTimeModifierOffSet to 0 for Order 2 If the initial travel duration between Order 1 and Order 2 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

Type : float

Default : 1

json_TSTravelTimeModifier

tsOrderBefore
optional

This constraint lets you chain visits. Two chained visits will be performed the same day by the same driver. The visit on which this constraint is defined will be placed after the one it defines. If a visit from the chain cannot be placed, then none will be. You can specify one order id or several order ids (comma separated string).
Example : "null"

string

tsOrderBeforeMaxTimeSpacing
optional

This constraint specifies the maximum spacing between the two chained visits.

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

tsOrderBeforeMinTimeSpacing
optional

This constraint specifies the minimum spacing between the two chained visits.

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

tsOrderDisjoint
optional

Use this constraint to force a return to depot between each repetition. Works only if the advanced paremeters HealthDelivery=true and TSORDERONEVISITPERTIMEWINDOW=true are set, or if tsOrderOneVisitPerTimeWindow is set to true.

boolean

tsOrderFixed
optional

If true, the order will be planned with priority over other orders, forcing the use of the specified day, resource and start time if specified (standard solver only)

You can specify orderOriginalResourceId and orderOriginalVisitDay of evaluationInfo and set the time window to the exact time (respecting the duration) if you want to the visit to be planned at a specific time.

boolean

tsOrderLastVisit
optional

The number of days before the beginning of the planning the last visit belonging to the order has been performed

Use this constraint in case of a frequency order to specify from how many days the last visit was performed before starting the current planning. The default value indicates this constraint is to be unused in the planning.

Type : negative integer

Default : 0 Max : -2,147,483.

Example :

If tsOrderLastVisit = -2, the last visit of the same order has been performed two days ago.

Warning : if the number of occurences of the frequency is more than one, the constraints tsOrderLastVisit and tsOrderMinimumSpacing are not considered.

number

tsOrderMaxDropHours
optional

Use this constraint to specify a maximum drop hour corresponding to each time window. Works only if the advanced parameter HealthDelivery=true is set and if advanced parameter HealthFrequency=true is set or if tsOrderOneVisitPerTimeWindow=true constraint is set.

You must give the same number of values as defined time windows (limited to 4 values then).

Type : Time ("hh:mm" or "hh:mm:ss").

Default : not used.

Example :

You defined 2 time windows : from 08:00 to 10:00 and from 14:00 to 16:00. If you give this value for tsOrderMaxDropHours : ['11:00','17:00'], a return to depot will be generated before 11:00 for the visit corresponding to the first time window (08:00 to 10:00), another one will be generated before 17:00 for the visit corresponding to the second time window (14:00 to 16:00).

< json_DispatcherTime > array

tsOrderMaximumSpacing
optional

The maximum number of days required between two visits of a same order.

Use this constraint in case of frequency order to specify how many days at most should be left between two visits of the order.

Type : integer

Max : 2,147,483.

number

tsOrderMinimumSpacing
optional

The minimum number of days required between two visits of a same order.

Use this constraint in case of frequency order to specify how many days at least should be left between two visits of the order.

Type : integer

Default : 0 Max : 2,147,483.

Warning : if the number of occurences of the frequency is more than one, the constraints tsOrderLastVisit and tsOrderMinimumSpacing are not considered.

number

tsOrderOneVisitPerTimeWindow
optional

Use this constraint to generate several instances of this visit in the same route (one per time window).

boolean

type
optional

The type of visit at a customer.

* 0 (Delivery): the resource will deliver related quantities.

* 1 (PickUp): the resource will pick-up related quantities.

* 2 (DeliveryFirst): the resource will not mix deliveries and pick-ups in a same rotation.

It is possible to mix pickups and 0 type deliveries in the same rotation. However, the delivered products will come from the depot and the pickup products will be unloaded at the depot. No product delivered to a customer can come from a pickup at another customer’s.

Type : Integer.

Default : 0 (Delivery).

number

unloadingDurationPerUnit
optional

The time needed to deliver one unit of product.

Use this constraint when the time spent at a customer depends on the quantity to deliver. It is the time needed to unload one unit of the quantity stored in the customer tsOrderQuantity constraint.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

json_DispatcherTime

wholeVisitInTimeWindow
optional

Whole visit ends before time window end.

Use this constraint if you want that a visit ends before the end of the time window.

Default : false.

boolean

x
optional

longitude of order location

number

y
optional

latitude of order location

number

6.107. (JSON) TSPause

Name Description Schema

duration
optional

Duration

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

json_DispatcherTime

durationEnabled
optional

boolean

end
optional

End time

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

endEnabled
optional

boolean

start
optional

Start time

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

startEnabled
optional

boolean

6.108. (JSON) TSPlanned

Details of a stop within a resource tour.

Name Description Schema

dayId
optional

day of the stop
Example : "null"

string

resourceId
optional

Assigned resource identifier
Example : "null"

string

stopDriveDistance
optional

The drive distance from the previous to the current stop.

number

stopDriveTime
optional

The drive time from the previous to the current stop.

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

stopDuration
optional

The duration of the stop.

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

stopElapsedDistance
optional

The tour cumulated driven distance at the stop.

number

stopId
optional

the ID of the stop or order
Example : "null"

string

stopPosition
optional

The position of the stop in the resource tour.

number

stopStartTime
optional

The time the stop starts at.

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

stopStatus
optional

The status of the stop.

An order can be on time, late, waited, impossible (non compliant). It can also be a courier service delivery and not planned. See StopStatusConstants for more information about stop status.

Type : integer.

* 0 = OnTime: The stop begins into the specified visit time window.

* 1 = Late: The stop begins after the specified visit time window.

* 2 = Waited: The resource waits at the stop for the specified stop start time.

* 3 = Impossible: The stop cannot be planned.

* 4 = BadDay: The stop is planned without respect of frequency.

* NotPlanned: The courier service is in charge of a stop or the stop is not included in the planning process.

* BadPrevious : When the visits are split, the parts should follow one another. This status is that of a part following another visit instead of the previous part of the split visit.

number

stopType
optional

The stop type

A tour is composed of stops, which can be either customers visits or breaks, like reload breaks, lunch breaks, or even night breaks.

StopTypeConstants are

* 0 = Visit: The stop is an element of the Orders object.

* 1 = Start: The stop is the initial stage (departure) of the tour, occurring at the resource’s start location.

* 2 = End: The stop is the the last stage (arrival) of the tour, occurring at the resource’s stop location.

* 3 = EndBeforeOvernight: The stop is the the last stage (arrival) of the tour, occurring where the resource stopped for the night.

* 4 = ReloadBreak: The stop is a reload break within the tour, occurring at a depot location.

* 5 = LunchBreak: The stop is the lunch break within the tour, occurring anywhere between two other located stops.

* 6 = RestBreak: The stop is a rest break within the tour, occurring anywhere between two located stops.

* 7 = WaitBreak: The stop is a wait break within the tour, occurring before a visit.

* 8 = StartAfterOvernight: The stop is the last stage (arrival) of the tour, it occurs where the resource stopped for the night. tsStopDriveDistance

* 9 = Briefing: The stop is a briefing break within the tour, occurring right after the departure of the tour.

* 10 = DeBriefing: The stop is a wait break within the tour, occurring right before the arrival of the tour.

number

stopX
optional

The X coordinate of the stop.

number

stopY
optional

The Y coordinate of the stop.

number

6.109. (JSON) TSResource

The Resources object stores the collection of the elements which will perform deliveries, pick-ups, commercial visit, etc.

Each element can be seen as a driver/vehicle pair and their related driving and working constraints.

It is composed of an identity tag, and location coordinates (base or depot, departure, arrival location). Eventually, each element can be configured through a set of constraints which stores information like capacity, driver work time, penalties and so on.

Polymorphism : Composition

Name Description Schema

additionalCostOperator
optional

Operator used to compute additional cost (see toursResult object)

Possible values are :

* SUM : tour additional cost will be the sum of additional costs of planned orders

* MAX : tour additional cost will be the maximum value of additional costs of planned orders

* MIN : tour additional cost will be the minimum value of additional costs of planned orders

* AVERAGE : tour additional cost will be the average of additional costs of planned orders

json_CostOperator

additionalCostOrderCustomDataName
optional

Name of TSOrder customData that will contain the TSOrder type used for additional cost computation (see toursResult object)
Example : "null"

string

additionalCosts
optional

List of additional cost (cost per order type)

< json_TSAdditionalCost > array

allowedNights
optional

Example : "null"

string

available
optional

Indicates whether a resource is included in the planning process or not.

This constraint enables you to easily modify your optimization problem configuration without having to add nor delete original data.

* Set it to True to include a resource element in the planning process.

* Set it to False to ignore it: it will not be used in the planning.

Type : Boolean. Default : not used.
Example : true

boolean

avgConsumption
optional

Average consumption of the resource. Use this constraint to specify the average consumption of the resource. This consumption must be defined in liters per 100 distance unit (km or miles)

Default : The consumption indicated in the VehicleProfile.Consumption property.
Example : 8.0

number

briefingDuration
optional

An additional duration applied before the tour starts. Use this constraint to specify an additional duration before the resource begins the tour. For instance, to brief drivers before they leave or to simulate an initial vehicle loading time (no depot).

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

json_DispatcherTime

capacities
optional

The total product capacity a resource can carry. Use this constraint to specify the amount of product a resource can deliver or pick-up. It must be linked with the customers related quantity constraint. 23 more dimensions can be used in order to specify various products. They must be linked with the customers related dimensions.

Type : float (maximum of 3 significant digits after decimal separator). Default: None. Max : 2,147,483.

Example :

* Use it to store the total number of packages a resource can deliver before reloading, when working with packages.

* Use it to store the total number of litres a resource can deliver before reloading, when working with liquids.

* Use multiple capacity dimensions when working with multiple products: when delivering fuels, you will use as many capacities as types of fuels.

< number > array

customDataMap
optional

Private custom data.

Use this feature when you need to keep attributes values of your own into the optimization context. For instance if you need the address of an element, store it there.

< string, string > map

dailyWorkTime
optional

The maximum resource work duration over a day. Use this constraint to specify the maximum daily work duration (unless overtime periods have been defined). If the dailyWorkTime constraint is not set to a value, default daily work time is computed from resource time window and lunch duration (workStartTime, workEndTime and lunchDuration).

Type : "hh:mm:ss", DateTime. Default : not used.

json_DispatcherTime

daysOff
optional

< json_DayOff > array

debriefingDuration
optional

An additional duration applied at the end of the tour. Use this constraint to specify an additional duration after the resources stops at the end location. For instance, to debrief drivers after their tour or to account an ultimate vehicle unloading time, or a parking time.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

json_DispatcherTime

driveRestAtCustomer
optional

Indicates whether or not time spent at customer during deliveries can be considered as rest break.

* Set it to True if a visit can be considered as a rest break, as soon as its duration is equal or higher than the legalMinRestDuration constraint.

* Set it to False if not.

Type : Boolean. Default : False.

boolean

driveRestAtDepot
optional

Indicates whether time spent at depot during a reload break can be considered as drive break or not.

Use this constraint to take into account drive time legislation in your planning results.

* Set it to True if load breaks can be considered as drive breaks, as soon as their duration is equal or higher than the legalMinRestDuration constraint.

* Set it to False if not.

Type : Boolean. Default : False.

boolean

endX
optional

longitude of resource arrival

Specify it only if arrival and start are not the same.

number

endY
optional

latitude of resource arrival

Specify it only if arrival and start are not the same.

number

extraTravelPenalties
optional

The costs for a resource of driving for one distance unit.

< json_TSTravelPenalty > array

fixedLoadingDuration
optional

The fixed duration of the resource load break. Use this constraint to specify how long takes a resource reload at depot. You can specify an additional duration according to the quantity to reload, using loadingDurationPerUnit.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

Example :

* fixedVisitDuration = "00:30:00" indicates that 30 minutes are needed to load the resource.

* loadingDurationPerUnit = 120 indicates that 120 sec are needed to load one unit. If the quantity to reload is 8, for instance, the variable part is 120*8. 16 minutes are required to load the resource.

* Total load time = 30 minutes + 16 minutes = 46 minutes accounted for this reload break.

json_DispatcherTime

fixedUnloadingDuration
optional

The fixed time needed for the resource to deliver/pick-up at the customer’s place.

This fixed resource’s unloading duration is added to the resource’s unloading duration depending on the quantity to deliver/pick-up and to the order’s unloading duration depending on the quantity to deliver/pick-up. See also tsResource unloadingDurationPerUnit and tsOrder unloadingDurationPerUnit. Example :

* Set tsOrderQuantity to 3.

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 6 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration to 10 mn and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 10 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration empty and tsResource unloadingPerUnit to 1 mn: the variable part of the order is 3 mn

Type : "hh:mm:ss", DateTime. Default : ""

Warning : the fixed/per unit unloading duration for resource is not compatible with the orders constraints: partition and whole visit in time window. Hence if one of the constraint at least tsResource fixedUnloadingDuration and tsResource unloadingDurationPerUnit is non null, partition and whole visit in time window are disabled.

json_DispatcherTime

fuelCode
optional

Vehicles fuel type. Possible values are :

* diesel

* undefined

* unleaded
Example : "null"

string

fuelType
optional

The fuel type of the resource.

Use this constraint to specify the fuel type of the resource. Available fuel types are :

* 0: Unknown fuel type

* 1: No fuel type (pedestrian)

* 2: Diesel

* 3: Unleaded fuel

* 4: LPG

Type : Integer. Default : The fuel type indicated in the VehicleProfile.FuelType property.

number

globalCapacity
optional

Global capacity for a resource. This constraint unables to set a maximum capacity on a resource, whatever product is carried. If both global capacity and capacity per product are to be used, set True for the value of useAllCapacities.

Type : Float Default : None Max : 2,147,483.

Example : Set globalCapacity = 15 and useAllCapacities = False. The global capacity only is considered: the vehicle can carry 15 quantities of products, whatever product is to be carried.

number

id
optional

The unique identifier of the resource.

This id can not contain special characters like '=' or ':'
Example : "null"

string

legalDailyDriveDuration
optional

The legal daily duration a resource can drive before having a rest break.

Use this constraint to take into account drive time legislation in your planning results. Specify the rest duration in the legalDailyRestDuration: rest breaks occur as soon as the resource has driven the legal daily driving duration or has completed its daily work time.

Type : "hh:mm:ss", DateTime. Default : not used.

Example : legalDailyDriveDuration = "09:00:00", legalDailyRestDuration = "11:00:00". The resource can cumulate a 9-hours daily drive time before having to rest during 11 hours.

json_DispatcherTime

legalDailyRestDuration
optional

The legal rest duration a resource must have after the daily max drive duration.

Use this constraint to take into account drive time legislation in your planning results. Rest breaks occur as soon as the resource has driven the legal max daily duration or has complete its daily work time. The use of both legalDailyDriveDuration and legalDailyRestDuration implies that the start and end time of tours are no longer defined by the workStartTime and workEndTime constraints, but may vary as long as the legalDailyRestDuration constraint is respected.

Type : "hh:mm:ss", DateTime. Default : not used.

json_DispatcherTime

legalDriveRestDuration
optional

The resource break duration after max drive duration. Use this constraint to take into account drive time legislation in your planning results.

Type : "hh:mm:ss", DateTime. Default : not used.

json_DispatcherTime

legalMaxDriveDuration
optional

The legal max duration a resource can drive without a break. Use this constraint to take into account drive time legislation in your planning results.

Type : "hh:mm:ss", DateTime. Default: : not used.

Example :

* legalMaxDriveDuration = "04:30:00", legalDriveRestDuration = "00:45:00". The resource can drive for 4 hours and 30 minutes before having a 45 minutes break. Then it can start driving again for 4 hours and 30 minutes???etc.

* If added driveRestAtCustomer = True and legalMinRestDuration = "00:15:00", rest time is cumulated as soon as customer visit duration is equal or higher than the specified min rest duration. If the 45 minutes rest break has not occured when the resource has driven for 4 hours and 30 minutes, it must stop to complete the break. Otherwise, it can drive again for 4 hours and 30 minutes.

json_DispatcherTime

legalMinRestDuration
optional

The minimum duration a resource breaks for it to be considered as a drive break. Use this constraint to take into account drive time legislation in your planning results. When breaks occur at customer or at depot, they are considered as drive breaks if their duration is equal or higher than the specified min rest duration.

Type : "hh:mm:ss", DateTime. Default: : not used.

json_DispatcherTime

loadBeforeDeparture
optional

Indicates whether a resource must load before starting a tour or not.

* Set this constraint to True to insert a load break at depot before the tour starts.

* Set it to False to consider the vehicle loaded.

Type : Boolean. Default: : False.

boolean

loadOnReturn
optional

Indicates whether a resource must reload after a tour or not.

* Set this constraint to True to insert a load break at depot after the tour ends.

* Set it to False to not reload the vehicle.

Type : Boolean. Default: : False.

boolean

loadingDurationPerUnit
optional

The time needed to load a unit of product. This constraint is added to the fixed part of the loading duration: it depends on the total quantity to load.

Type : "hh:mm:ss", DateTime, Integer (number of seconds). Default: : 0.

json_DispatcherTime

lunch
optional

The lunch break

Default: : no lunch break

json_TSPause

maxNightsOutPerJourney
optional

The number of nights a resource can spend out to perform deliveries before coming back to base.

Use this constraint to enable night breaks trip: it will store how many days a resource can drive away from depot. Unless the vehicle needs to reload, it will not come back before.

Type : integer. Default: : not used.

Example: maxNightsOutPerJourney = 4, workDays = 1=>5. The resource can perform deliveries during 5 days (and 4 nights) without coming back to depot. Starting on day 1, it must come back to depot on day 5.

number

maxNightsOutPerWeek
optional

The number of nights a resource can spend out to perform deliveries before coming back to base in a week.

Type : integer. Default: : not used.

number

maximumDistance
optional

The maximum distance the resource should travel per day.

Use this constraint to specify the distance the resource should not exceed in one day

Type : integer Default : -1 (no limit)

number

maximumReloads
optional

Value for maximum number of reloads per day.

number

maximumReloadsPenalty
optional

Value of the penalty if the resource exceeds the maximum number of reloads per day.

If the resource exceeds the maximum number of reloads per day, it will be penalized by the maximum reloads penalty multiplied by the number of reloads' overtaking. The default value is 1024 if the constraint maximumReloads is set. See also maximumReloads.

number

maximumVisits
optional

The maximum number of visits the resource can perform in one day.

Type : integer Default : -1 (no limit) Max : 2,147,483.

number

minDriveDuration
optional

The minimum laps of time between 2 consecutive visits.

Use this constraint to specify a minimum drive time accounted when consecutive visits are very close, in order to compute a realistic timing.

Type : "hh:mm:ss", DateTime. Default: : not used.

json_DispatcherTime

minimumQuantity
optional

Value for minimum quantity to deliver.

If the resource has a non null minimum quantity to deliver constraint value, the resource can visit on order only if the quantity to be picked-up or delivered at this order is higher than the constraint value.

*Example : *

* set order quantity to 3 and resource minimumQuantity to 2 : resource might visit the order

* set order quantity to 3 and resource minimumQuantity to 5 : resource can not visit the order

Type : float

number

mobileLogin
optional

Mobile login to be specified only if you need to be able to export the optimization result to operation planning from TsCloud GUI. If you trigger operational planning export from the API, you will still need to specify the mapping between resource name and login.
Example : "null"

string

nightPenalty
optional

The night cost of a resource when planning night breaks.

Use this constrainte to specify how much a night out costs (lunch, bed, breakfeast???) for a resource when night breaks are allowed.

Type : float. Default: : 0

number

noReload
optional

Constraint providing resource to reload at depot during a tour.

If none of the constraints loadBeforeDeparture and loadOnReturn is activated, the resource is never loading at depot. If one of these constraint is activated the resource is loading once per tour, either at the beginning of the tour or at the end of it. If both constraints are activated then the resource is loading twice a tour, at the beginning and at the end.

With standard solver only : solver always works with solution cost comparison, so it may allow reloads even if you set noReload to true if the solution cost is really lower. The only way to totally prevent reloads is to set fixedLoadingDuration to a very long duration (20:00:00 for instance). The solver will warn you about this long duration but will not add reloads to the tours. Caution : Don’t do this if you are using loadOnReturn or loadBeforeDeparture

Default : False

boolean

nonUsePenalty
optional

A cost paid for NOT using a resource in the computed planning.

Use this constraint to penalize the fact that an available resource is not used in the planning. It proves usefull when you must use all the resources in the Resources collection: you will prevent the solver from optimizing the number of resources, as using them would be too expensive a solution.

Type : float. Default: : not used.

Example : Use it to specify parking taxes when a vehicle performs no tour.

number

openDistanceStart
optional

boolean

openDistanceStop
optional

boolean

openStart
optional

Indicates whether or not a tour evaluation starts from the resource start location or from the first customer’s place.

* Set it to True to begin the tour at the first customer (no cost will be computed between the resource start location and the first customer).

* Set it to False to begin the tour at the resource start location.

Type : Boolean. Default: : False.

boolean

openStop
optional

Indicates whether or not a tour evaluation ends at the last customer’s place or at the resource end location.

* Set it to True to finish the tour at the last customer location (no cost will be computed between the last customer and the resource end location).

* Set it to False to finish the tour at the resource end location.

Type : Boolean. Default: : False.

boolean

openTimeStart
optional

boolean

openTimeStop
optional

boolean

optimumStartTime
optional

Adapts the resource start time to the best solution.

* Set this constraint to False to start the tour at the time indicated by the workStartTime constraint.

* Set this constraint to True to optimize the resource start time and enable the use of the dailyWorkTime constraint.

Notice that, in both cases, the tour will not start before the time stored in the workStartTime constraint and that the use of the weeklyWorkTime constraint is enabled.

Type : Boolean. Default: : False.

boolean

otherWorkDaysList
optional

Other working days (see workingDays)

You can define up to 3 different working days slots. If you do so, you can then specify distinct work start and end times with otherWorkStartTimes and otherWorkEndTimes.

Type : List of string (see workingDays format) Example : ["2","3=>5"]

< string > array

otherWorkEndTimes
optional

The end time of the resource work time window for the "other working days" (see otherWorkDaysList).

If you defined other working days, use this constraint to specify the time at which the tour must end. These times can be adjusted using the optimumStartTime parameter.

You can define up to 3 different end times here, corresponding to the different "other working days" slots.

Type : List of "hh:mm:ss", DateTime. Example : ["18:00:00","19:00:00]

< json_DispatcherTime > array

otherWorkStartTimes
optional

The start time of the resource work time window for the "other working days" (see otherWorkDaysList).

If you defined other working days, use this constraint to specify the time at which the tour must start. These times can be adjusted using the optimumStartTime parameter.

You can define up to 3 different start times here, corresponding to the different "other working days" slots.

Type : List of "hh:mm:ss", DateTime. Example : ["08:00:00","09:00:00]

< json_DispatcherTime > array

overnightMinDriving
optional

The max duration a resource can drive to go back to base at the end of a tour when working with night breaks.

Use this constraint when a resource can end a tour at base instead of having a night break on the road.

Type : "hh:mm:ss". Default: : not used.

json_DispatcherTime

overtimeDurations
optional

The duration of the resource overwork periods. (max 2 periods)

Use this constraint when you need to define 2 different overwork periods with regard to daily work time and their related surcharge. No overwork period can be defined with regard to weekly work time.

Type : "hh:mm:ss", DateTime. Default: : not used (no second overtime period).

Example :

workPenalty = 10, first overtime duration = "02:00:00", first overtime penalty = 5,second overtime duration = "01:00:00", second overtime penalty = 10.

The cost of the resource during the daily working time is 10 euros per hour. The resource can work during 3 more hours and each overworked hour will cost 10 + 5 euros for 2 hours and 10 + 10 euros for the last hour.

< object > array

overtimePenalties
optional

A surcharge for a resource’s overwork period (max 2 periods).

Use this constraint to specify additional cost to workPenalty as overwork time. You can define up to 2 overwork periods with regard to daily work time and their related surcharge. No overwork period can be defined with regard to weekly work time.

Type : float. Default: : not used.

Example :

workPenalty = 10, first overtime duration = "02:00:00", first overtime penalty = 5.

The cost of the resource during the daily working time is 10 euros per hour. The resource can work during 2 hours after the daily working time and each overworked hour will cost 15 (10 + 5) euros.

< number > array

parkingTime
optional

Parking time in seconds added to the travel time before each order.

This parking time is applied only once for a group of aggregated orders.

number

payWholeDay
optional

Indicates whether or not a whole work day cost is computed as soon as a resource works even a few hours.

* Set this constraint to True to account a whole day cost.

* Set it to False to account only effective worked hours.

Type : Boolean. Default: : False.

boolean

penaltyPerVisit
optional

An additional fixed cost applied each time the resource performs a visit.

Use this constraint when the cost of a resource may vary according to the number of visits it performs.

Type : float. Default: : 0.

number

providedProducts
optional

The list of products provided by a resource.

This constraint is linked with tsDepot requiredProducts constraint: a depot with a required product can only be visited by a resource providing it.

Type : string as a list of products separated with commas. Default : not used.

Example : Specify "Oxygen" in the resource can provide oxygen.
Example : "null"

string

providedSkills
optional

The list of characteristics provided by a resource.

This constraint is linked with the same order constraint: a customer with a required skill can only be delivered by a resource providing it.

Caution : use only alphanumeric characters (and _) in your characteristics values, otherwise the skill will be ignored.

Type : string as a list of characteristics separated with commas. Default: : not used.

Example :

* Specify "Maintenance" in the provided skills of a resource designed to perform maintenance visits type.

* Specify "Small vehicle" to the provided skills of a resource able to perform downtown visits.
Example : "null"

string

speedAdjustment
optional

A factor to increase or decrease the vehicle speed.

Whenever users observe a significant gap between estimated speeds and the real ones, they can adjust them by using this factor. It is expressed as a percentage of the used speed.

Type : float. Default: : not used.

Example :

* speedAdjustment = 110: resource speeds will be 10% higher than the used speeds.

* speedAdjustment = 80: resource speeds will be 20% lower than the used speeds.

number

startTravelTimeModifier
optional

travel time modifier associated with the start location of the resource

json_TSTravelTimeModifier

startX
optional

longitude of resource start (and arrival if no endX provided)

number

startY
optional

latitude of resource start (and arrival if no endY provided)

number

stopTravelTimeModifier
optional

travel time modifier associated with the stop location of the resource

json_TSTravelTimeModifier

tomTomWebFleetEnabled
optional

boolean

tomTomWebFleetIdentifier
optional

Example : "null"

string

travelPenalty
optional

The cost for a resource of driving for one distance unit.

Use this constraint to specify the average resource taxes (gazoline, wear,???) when driving one distance unit.

Type : float Default : 1.5

Example : if travelPenalty = 0.5 (euro per distance unit) and the driven distance is about 100 unit (km or miles), the total distance cost is 0,5 * 100 = 50 euros.

number

travelTimeModifier
optional

travel time modifiers

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location travelTimeModifierValue), the portion of the travel time on which the modifier applies (travelTimeModifierLength) an offset to add to any travel duration leaving or reaching the location (travelTimeModifierOffSet).

Example :

* Set travelTimeModifierValue to 1.5, travelTimeModifierLength to 300 and travelTimeModifierOffSet to 60 for Resource 1

* Set travelTimeModifierValue to 2, travelTimeModifierLength to 420 and travelTimeModifierOffSet to 0 for Order 1 If the initial travel duration between Resource 1 and Order 1 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

json_TSTravelTimeModifier

unloadingDurationPerUnit
optional

the time needed to the resource to deliver/pick-up one unit of product at the customer’s place.

This resource’s duration is added to the fixed resource’s unloading duration and to the order’s unloading duration depending on quantity to deliver/pick-up. See also tsResource fixedUnloadingDuration and tsOrder unloadingDurationPerUnit.

Example :

* Set tsOrderQuantity to 3.

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 6 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration to 10 mn and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 10 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration empty and tsResource unloadingPerUnit to 1 mn: the variable part of the order is 3 mn

Type : "hh:mm:ss", DateTime.

json_DispatcherTime

useAllCapacities
optional

Determines if both global capacity and capacities per product should be considered in the optimization or only global capacity.

Type : Boolean Default : False

Example : Set globalCapacity = 15 and useAllCapacities = False. The global capacity only is considered: the vehicle can carry 15 quantities of products, whatever product is to be carried.

boolean

useInPlanningPenalty
optional

Penalty value if the resource is used in the planning.

Use this constraint to specify the penalty if the resource is used at least one day in the planning

Type : float Default : 0

number

usePenalty
optional

A cost paid for using the resource in the computed planning. Use this constraint to ponderate the cost of using a resource element of the Resources collection, when working with rented vehicle for instance. You can use it as well to reduce the number of resources used to perform the deliveries.

Type : float. Default: : not used.

Example :

Add the cost of use to the distance and hourly costs when working with a service provider. The solver, aiming at cost reduction, will try to eliminate this resource first, as it is the most expensive.

number

vehicleCode
optional

Vehicles regulations.

Possible values are :

* bicycle

* bus

* car

* deliveryIntermediateVehicle

* deliveryLightCommercialVehicle

* emergencyTruck

* emergencyVehicle

* intermediateVehicle

* lightCommercialVehicle

* pedestrian

* taxi

* truck

If not specified, vehicle type defined in UI will be used
Example : "null"

string

weeklyWorkTime
optional

The maximum resource work duration over a week.

Use this constraint to specify the maximum weekly work duration. Weeks are defined as follows:

* year’s week, from monday to sunday, if a date has been specified in the workDays constraint

* days 1 to 7 are the days of the first week and the second week start on day 8 if no date has been specified in the workDays constraint. No over work with regard to the weekly work duration is allowed.

Type : "hh:mm:ss", DateTime. Default: : "168:00:00".

json_DispatcherTime

workEndTime
optional

The end time of a resource work time window.

Use this constraint to specify the time at which the tour must be over or the daily work duration.

* If the optimumStartTime parameter is set to True and the dailyWorkTime or weeklyWorkTime constraint value is set by user, the tour cannot finish later than the value of the workEndTime parameter, whatever overtime may be allowed by the overtime1_Duration and overtime2_Duration constraints.

* If the optimumStartTime parameter is set to True and the dailyWorkTime constraint value is not set, the end time of the tour can be adjusted to match the begining of the work time window. In this case, this parameter is used only to compute the resource daily work time and the tour can finish at midnight.

* If the optimumStartTime parameter is set to False, then this parameter is used to compute the resource daily work time and the tour can finish no later than the specified end time plus the values of the first overtime duration and the second overtime duration constraints. If the daily work duration is specified by the workEndTime constraint’s value, then it is equal to workEndTime minus workStartTime and lunchDuration.

Example : For a vehicle to work for 6 hours between 7PM and 7AM, set

* optimumStartTime=True

* dailyWorkTime="06:00:00"

* workStartTime="07:00:00"

* workEndTime="19:00:00"

For a vehicle to work for 8 hour between 8PM and 5AM with a one-hour break at 12:30, set

* workStartTime="08:00:00"

* workEndTime="17:00:00"

* lunchDuration="01:00:00"

* lunchTime="12:30:00"

Type : "hh:mm:ss", DateTime. Default: : "24:00:00".

json_DispatcherTime

workPenalty
optional

The cost of a resource working for an hour.

Use this constraint to specify the resource wages when working for an hour.

Type : float. Default: : 9.

Example :

If workPenalty = 10 (euros per hour) and daily work time is about 8 hours, the total daily work cost is 10 * 8 = 80 euros.

number

workStartTime
optional

The start time of the resource work time window.

Use this constraint to specify the time at which the tour must start. This time can be adjusted using the optimumStartTime parameter.

Type : "hh:mm:ss", DateTime. Default: : "00:00:00".

json_DispatcherTime

workingDays
optional

The resource’s work days. Use this constraint to specify the days a resource works in the planning period. This constraint is linked with the orders possible visit days constraints of Orders object elements and with the depot days of opening constraints of Depots object elements. Thus, customers and resources must have matching days for deliveries to be possible, and depots must be opened on resources working days to be used. A maximum of 64 days can be defined as work days. Working days can be written as integers (1,2???) or dates (14/05/2010, 15/05/2010, ???). If you are using dates, the oldest date in the workDays constraint defines day 1.

Type : string values containing days separated with commas (like "1, 2, 5" or "14/05/2010, 15/05/2010, 18/05/2010" to specify day 1, day 2 and day 5) or intervals (like "1-10", "2=>5" or "14/05/2010=>24/05/2010") where 1 (or 14/05/2010) is the first day of the planning period. For day intervals, prefer the "=>" separator. Be careful, if the separator of date is - then "1-5" corresponds to May 1st of the current year. If you mix integer and date formats, beware that day 1 will all the same be defined by the oldest available date.

Default: : "1".

Example :

You can define a single working day: Specify "1", "3" or "10" for the resource to work on day 1, day 3 or day 10 of the planning period. You can also define working periods. Specify "1-5" or "1=>5" or "14/05/2010=>18/05/2010" for the resource to work on a 5-days period (from day 1 to day 5 included).

You can also mix single day and periods. Specify "1, 3=>5" for the resource to work on day 1 and from day 3 to 5 of the planning period.
Example : "null"

string

6.110. (JSON) TSSimulation

Name Description Schema

depotProperties
optional

< string > array

depots
optional

< json_TSDepot > array

nbCapacities
optional

number

nbExtraTravelPenalties
optional

number

nbQuantities
optional

number

nbTimeWindows
optional

number

options
optional

json_TSOptions

orderProperties
optional

< string > array

orders
optional

< json_TSOrder > array

resourceProperties
optional

< string > array

resources
optional

< json_TSResource > array

6.111. (JSON) TSTimeWindow

Time window

Name Description Schema

beginTime
optional

the begin time

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

endTime
optional

the end time

Type : Time ("hh:mm" or "hh:mm:ss")

json_DispatcherTime

6.112. (JSON) TSTour

Details of a stop within a resource tour.

Name Description Schema

additionalCost
optional

Additional cost

Additional cost depends on additional cost configuration specified on resources and orders

number

dayId
optional

day of the tour
Example : "null"

string

deliveryCost
optional

Total delivery cost of the tour

Delivery cost depends on PenaltyPerVisit defined on resources and configuration specified in options (see countDepotsInDeliveryCost and countVisitCostOnceIfSameLocation)

number

plannedOrders
optional

Orders planned in this tour

< json_TSPlanned > array

reloadNb
optional

ReloadNb

Number of reloads during this tour

number

resourceCapacities
optional

List of resource capacities

< number > array

resourceId
optional

Assigned resource identifier
Example : "null"

string

totalCost
optional

Total cost

Total cost = (delivery cost) + (additional cost)

number

travelDistance
optional

drive distance for this tour

number

travelDuration
optional

drive duration for this tour

json_DispatcherTime

usedCapacities
optional

List of used capacities

Tour used capacities can exceed resource capacities if the tour contains one or several stops to a depot.

< number > array

6.113. (JSON) TSTravelPenalty

Name Description Schema

distance
optional

The driven distance (in the solver’s measurement system unit) from which distance cost will be applied.

Use this constraint when you need to specify a distance cost which can vary according to the covered distance. Up to 4 different distance costs can be specified. Each one must be related to the corresponding distance threshold, from which it will be applied

number

penalty
optional

The cost for a resource of driving for one distance unit.

Use this constraint to specify the average resource taxes (gazoline, wear,???) when driving one distance unit.

Type : float Default : 1.5

Example : if penalty = 0.5 (euro per distance unit) and the driven distance is about 100 unit (km or miles), the total distance cost is 0,5 * 100 = 50 euros.

number

6.114. (JSON) TSTravelTimeModifier

Name Description Schema

length
optional

Indicates the duration on which to apply the travel time modifier.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : 0

json_DispatcherTime

offset
optional

Indicates the offset of the travel time modifier.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : 0

json_DispatcherTime

value
optional

Indicates the value of the travel time modifier.

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location (tsDepotTravelTimeModifierValue), the portion of the travel time on which the modifier applies (length) an offset to add to any travel duration leaving or reaching the location (offSet).

Example :

* Set tsResource TravelTimeModifier Value to 1.5, tsResource TravelTime Modifier Length to 300 and tsResource TravelTimeModifier OffSet to 60 for Resource 1

* Set tsDepot TravelTimeModifier Value to 2, tsDepot TravelTimeModifier Length to 420 and tsDepot TravelTimeModifier OffSet to 0 for Depot 1

If the initial travel duration between Resource 1 and Depot 1 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

Type : float Default : 1

number

6.115. (JSON) TSUnplanned

Unplanned order

Name Description Schema

reason
optional

the reason why it what not planned
Example : "null"

string

stopID
optional

The id of the stop.
Example : "null"

string

6.116. (JSON) TSWarning

Warning message (and associated error code) about possible Orders and Resources elements constraints misconfiguration.

The Solver object checks automatically data configuration (if not done yet) before the optimization begins. Whenever values are detected as incoherent or invalid, warnings are emitted in the Warnings property of the involved element. Depending the warning, constraints value can be replaced by their default value or not.

Name Description Schema

constraint
optional

id of constraint causing the warning

number

constraintName
optional

Example : "null"

string

i18nMessageCode
optional

Example : "null"

string

id
optional

if of object causing the warning
Example : "null"

string

message
optional

warning message
Example : "null"

string

messageId
optional

number

objectType
optional

type of object causing the warning
Example : "null"

string

value
optional

Example : "null"

string

6.117. (JSON) TaskType

<p>Classe Java pour TaskType complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

defaultDuration
optional

Obtient la valeur de la propri??t?? defaultDuration.

number

isInProject
optional

Obtient la valeur de la propri??t?? isInProject.

boolean

taskTypeId
optional

Obtient la valeur de la propri??t?? taskTypeId.
Example : "null"

string

taskTypeName
optional

Obtient la valeur de la propri??t?? taskTypeName.
Example : "null"

string

6.118. (JSON) TaskTypes

<p>Classe Java pour TaskTypes complex type.

<p>Le fragment de schema suivant indique le contenu attendu figurant dans cette classe.

Name Description Schema

taskType
optional

Gets the value of the taskType property.

This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the taskType property.

For example, to add a new item, do as follows: <pre> getTaskType().add(newItem); </pre>

Objects of the following type(s) are allowed in the list TaskType

< json_TaskType > array

6.119. (JSON) TimeDefinition

Type : enum (UTC, WALL, STANDARD)

6.120. (JSON) TimeRange

Name Description Schema

end
optional

json_DispatcherTime

start
optional

json_DispatcherTime

6.121. (JSON) TimeWindow

Name Description Schema

wishedEnd
optional

number

wishedStart
optional

number

6.122. (JSON) ToursolverServiceResult

generic result of service

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.123. (JSON) UpdateClientsRequest

Name Description Schema

clients
optional

< json_ClientEntity > array

6.124. (JSON) UpdateClientsResult

generic result of service

Polymorphism : Composition

Name Description Schema

errCode
optional

json_ApiErrorCode

message
optional

error message
Example : "null"

string

status
optional

response status, OK or ERROR

json_Status

6.125. (JSON) UpdateOperationalOrderRequest

Name Description Schema

achievedEndDate
optional

json_Instant

achievedEndPositionLat
optional

number

achievedEndPositionLon
optional

number

achievedStartDate
optional

json_Instant

achievedStartPositionLat
optional

number

achievedStartPositionLon
optional

number

data
optional

< string, string > map

operationalOrderId
optional

Example : "null"

string

scans
optional

< json_ScanItemAchievement > array

status
optional

json_OperationalOrderStatus

svgSignature
optional

Example : "null"

string

userLogin
optional

Example : "null"

string

6.126. (JSON) UpdateOperationalOrdersRequest

Name Description Schema

orders
optional

< json_OperationalOrder > array

6.127. (JSON) UserInfo

Name Description Schema

daysOff
optional

< json_DayOff > array

enabled
optional

boolean

firstName
optional

Example : "null"

string

lastName
optional

Example : "null"

string

login
optional

Example : "null"

string

organizations
optional

< string > array

password
optional

Example : "null"

string

phoneNumber
optional

Example : "null"

string

profile
optional

Example : "null"

string

roles
optional

< json_UserRoleInfo > array

useGlobalDaysOff
optional

boolean

useSSO
optional

boolean

workPatterns
optional

< json_WorkPattern > array

6.128. (JSON) UserRoleInfo

Type : enum (ADMINISTRATION, PLANNING, MOBILE, FULFILMENT, SEEOTHERSPLANNINGS, CLIENTREAD, CLIENTWRITE, CLIENTIMPORT, HANDLERESOURCES, HANDLEDEPOTS, MODIFYOPTIMIZATIONSETTINGS, SEEOTHERSSIMULATIONS, EDITOTHERSSIMULATIONS, MODIFYMAPPINGS, MODIFYRESOURCECONSTRAINT, DASHBOARD, MISSIONREAD, MISSIONCREATE, MISSIONUPDATE, MISSIONDELETE, MISSIONIMPORT, MISSIONRECEPTION, MISSIONSTORAGE, MISSIONPREPARE, MISSIONDOCKING, MISSIONLOADING, MISSIONDELIVERY, CONTRACTORREAD, CONTRACTORCREATE, CONTRACTORUPDATE, CONTRACTORDELETE, CONTRACTORIMPORT, WEBACCESS)

6.129. (JSON) WebhookExportMode

Type : enum (NONE, ORDERS, TOURS)

6.130. (JSON) WorkPattern

Name Description Schema

days
optional

< number > array

range
optional

json_TimeRange

6.131. (JSON) ZoneId

Name Description Schema

availableZoneIds
optional

< string > array

id
optional

Example : "null"

string

rules
optional

json_ZoneRules

6.132. (JSON) ZoneOffset

Polymorphism : Composition

Name Description Schema

availableZoneIds
optional

< string > array

id
optional

Example : "null"

string

rules
optional

json_ZoneRules

totalSeconds
optional

number

6.133. (JSON) ZoneOffsetTransition

Name Description Schema

dateTimeAfter
optional

json_LocalDateTime

dateTimeBefore
optional

json_LocalDateTime

duration
optional

json_Duration

gap
optional

boolean

instant
optional

json_Instant

offsetAfter
optional

json_ZoneOffset

offsetBefore
optional

json_ZoneOffset

overlap
optional

boolean

6.134. (JSON) ZoneOffsetTransitionRule

Name Description Schema

dayOfMonthIndicator
optional

number

dayOfWeek
optional

json_DayOfWeek

localTime
optional

json_LocalTime

midnightEndOfDay
optional

boolean

month
optional

json_Month

offsetAfter
optional

json_ZoneOffset

offsetBefore
optional

json_ZoneOffset

standardOffset
optional

json_ZoneOffset

timeDefinition
optional

json_TimeDefinition

6.135. (JSON) ZoneRules

Name Description Schema

fixedOffset
optional

boolean

transitionRules
optional

< json_ZoneOffsetTransitionRule > array

transitions
optional

< json_ZoneOffsetTransition > array

6.136. (XML) TSAdditionalCost

Polymorphism : Composition

Name Description Schema

type
optional

TSOrder type (stored in a custom data)

string

value
optional

Cost for this type

number

6.137. (XML) TSDepot

The Depots object stores depots data. They are composed of X,Y coordinates, identity tags and a set of constraints.

If you want to specify depot locations or allow a resource to reload at several depots, use the Depots object to add and configure your depot data. The Depots object contains zero or more elements. If it contains no element, the base location of each resource acts as a depot location. Once a depot is associated with a resource its base location is no longer used as a depot location.

Polymorphism : Composition

Name Description Schema

TSTimeWindow
optional

The depot time windows.

Use this constraint to specify a depot time window during which the depot is opened. A depot time window is defined by its start time, its end time and days of opening. The start time of a depot time window is the first instant when a resource can enter the depot. Its end time is the last instant when a resource can enter the depot (but it may leave it afterward). You can specify up to 4 depot time windows for each depot.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

xml_ns0_TSTimeWindow

allProductsRequired
optional

Indicates whether a resource must provide all required products or one at least.

Set it to True to indicate that a resource must provide all the depot required products. Set it to False to indicate that a resource must provide at least one of the depot required products.

Type : boolean Default : True

boolean

availability
optional

Indicates whether a depot is included in the planning process or not.

This constraint enables you to easily modify your optimization problem configuration without having to add nor delete your original data.

* Set it to True to include a depot element in the planning process.

* Set it to False to ignore it: it will not be used in the planning.

boolean

deliveryQuantities
optional

The available quantities of products available at the depot.

You can specify up to 24 quantities

Type : float array

number

excludeResources
optional

The list of resources excluded from the depot.

Use this constraint to specify a list of resources that can not use the depot.

Type : string array. Default: Empty array: no resource is excluded from the depot

string

fixedLoadingDuration
optional

The fixed duration for a resource to load at depot. Use this constraint to specify how long takes any resource reload at the depot. You can specify an additional duration according to the quantity to reload, using loadingDurationPerUnit.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

Example :

tsDepot fixedVisitDuration = "00:30:00" indicates that 30 minutes are needed to load at the depot. tsDepot loadingDurationPerUnit = 120 indicates that 120 seconds are needed to load one unit. If the quantity to reload is 8, for instance, the variable part is 120*8. 16 minutes are required to load at the depot. Total load time = 30 minutes + 16 minutes = 46 minutes accounted for this reload break.

string

id
optional

The unique identifier of the depot

string

loadingDurationPerUnit
optional

The time needed to load a unit of product. This constraint is added to the fixed part of the loading duration: it depends on the total quantity to load.

Type : "hh:mm:ss", DateTime, Integer (number of seconds). Default : 0.

string

openingDaysList
optional

The depot days of opening, related to the nth depot time window.

Use this constraint to specify the days of operation of a depot referring to a depot time window. It must be related to the tsResourceWorkDays constraint of the resources, as resources work days define the planning period. Depot may be opened on a 64-days long period max, from day 1 to day 64.

Type : string value containing days separated with commas (like "1, 2, 5" or "4, 20/05/2010") or intervals (like "1-10", "2=>5" or "22/05/2010=>03/06/2010"). For day intervals, prefer the "=>" separator. 1 is the first day of the planning period, the corresponding date, if any, is defined by the oldest date, for all resources, in the tsResourceWorkDays constraint. No date in the depots days of opening description can precede the first day of the planning period defined by the resources (which is day 1). Default : 1=>64.

Example :

* Set it to "1" (or "14/05/2010) when a depot is opened on the first day of the planning period. Set it to "1, 2, 4, 5" (or "14/05/2010,15/05/2010,17/05/2010,18/05/2010") if depot may not be visited on the third day of a five-days planning period.

* Set it to "1=>5" (or "14/05/2010=>18/05/2010") to define a 5-days long period during which the depot is opened.

string

pickupQuantities
optional

The available space for a product available at the depot.

You can specify up to 24 values.

Type : float array

number

priority
optional

Depot priority.

Use this constraint to specify a priority on the depot. If two depots are nearby the system considers the one with the highest priority

**Type : * integer

number

requiredProducts
optional

The list of the products a depots contains.

Use this constraint when a depot must be affected to a specific kind of resource: these resources will have to provide the required required to be able to load at the depot.

Type : string (as a list of products separated with commas).

Default : none

string

resourceNames
optional

Lists the resources that can use the depot.

Type : string array.

Default : Empty array: no resource can use the depot.

Example : Specify ["Vehicle 1","Vehicle 2"] to allow only the resources with tags "Vehicle 1" and "Vehicle 2" to use the depot.

string

supportedProducts
optional

The list of the products a depots can receive.

Use this constraint when a depot must be affected to a specific kind of order (TSORDERPROVIDEDPRODUCTS constraint): these orders will have to provide the specified products to be able to drop at the depot.

Type : string (as a list of products separated with commas).

Default : none

string

travelTimeModifier
optional

Indicates the value of the travel time modifier.

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location (tsDepotTravelTimeModifierValue), the portion of the travel time on which the modifier applies (tsDepotTravelTimeModifierLength) an offset to add to any travel duration leaving or reaching the location (tsDepotTravelTimeModifierOffSet).

Example :

* Set tsResource travelTimeModifierValue to 1.5, tsResource travelTimeModifierLength to 300 and tsResource travelTimeModifierOffSet to 60 for Resource 1

* Set tsDepot travelTimeModifierValue to 2, tsDepot travelTimeModifierLength to 420 and tsDepot travelTimeModifierOffSet to 0 for Depot 1 If the initial travel duration between Resource 1 and Depot 1 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

Type : float, Default : 1

xml_ns0_TSTravelTimeModifier

x
optional

longitude WGS84 of depot

number

y
optional

latitude WGS84 of depot

number

6.138. (XML) TSEvaluationInfos

Polymorphism : Composition

Name Description Schema

orderOriginalResourceId
optional

The identity of the resource which visits the customer when evaluating an existing planning.

* Use this constraint when you want to 'evaluate' an existing planning.

* Use the orderOriginalVisitDay constraint to specify the working day when the visit must be planned.

* Use the orderPosition constraint to specify the position of a visit in the tour.

Type : string (storing a unique resource tag). Default: : not used

string

orderOriginalVisitDay
optional

Indicates the work day when the resource which visits the customer when evaluating an existing planning.

* Use this constraint when you want to 'evaluate' an existing planning.

* Use the orderOriginalResourceID to specify the resource which visit the customer.

* Use the orderPosition to specify the position of a visit in the tour.

Type : integer between 1 and 64 or string representing a date.

1 is the first day of the planning period, the corresponding date, if any, is defined by the oldest date, for all resources, in the tsResourceWorkDays constraint. if the original visit day is in the date format, this date cannot precede the first day of the planning period defined by the resources (which is day 1).

Default : not used if the tsOrderOriginalResourceIDis not used, 1 overwise

string

orderPosition
optional

The position of a customer in a resource tour.

Use this constraint when you want to evaluate a tour.

Type : integer. Default : not used

number

6.139. (XML) TSObject

Polymorphism : Composition

No Content

6.140. (XML) TSOptions

Options for optimization request

Polymorphism : Composition

Name Description Schema

advancedSettings
optional

List of the advanced settings for standard engine

Use this to override the advanced settings set in the UI.

Type : Array of strings

Example : ["FirstSolutionStrategy=NEAREST", "ParkingTime=30"]

string

allowBoatFerry
optional

Allow ferry boats (standard solver only)

If false, all ferry boats junctions will be avoided.

Default : true.

boolean

allowBridge
optional

Allow bridge

If false, all bridges will be avoided.

Default : true.

boolean

allowLowEmissionZones
optional

Allow traveling through Low Emission Zones (standard solver only)

If false, all low emission zones will be avoided.

Default : true.

boolean

allowToll
optional

Allow toll

If false, all toll ways will be avoided.

Default : true.

boolean

allowTunnel
optional

Allow tunnel

If false, all tunnels will be avoided.

Default : true.

boolean

balanceType
optional

Route plans balancing type

* NONE : no balancing

* ORDERS : balance the number of orders (to be used with balanceValue)

* HOURS : balance the route plans duration

* QUANTITY : balance the route plans delivered quantity

Only available with OTSolver

xml_ns0_balanceType

balanceValue
optional

Route plans balancing target (to be used with balanceType)

Locked route plans are not considered.

Only available with OTSolver

number

countDepotsInDeliveryCost
optional

Depot cost configuration for tour delivery cost

Specifies how depots stops are counted in tour delivery cost (using PenaltyPerVisit defined on resources).

Possible values are :

* NONE : depots stops are not counted in tour delivery cost

* ALL : each depot stop counts as one visit in tour delivery cost

* ALLBUTFIRST : first depot stop is ignored but each following depot stop will count as one visit in tour delivery cost

* FIRST : only first depot stop is counted in tour delivery cost

Default : NONE.

xml_ns0_depotCostMode

countVisitCostOnceIfSameLocation
optional

If true, PenalPerVisit will counted only once in tour delivery cost if several visits at the same location are planned consecutively.

boolean

distanceType
optional

Set the distance unit (meters, feet, km or miles), defaut is meters

xml_ns0_distanceType

evaluation
optional

Enable this if you just want to evaluate (get cost, distances, etc) a set of tours. Therefore, you must fill the evaluationInfos objects in orders (see TSEvaluationInfos).

Default : false.

boolean

excludeVisitCostIfMaxAdditionalCost
optional

Exclude visit delivery cost for visits having the maximum additional cost

boolean

fuelCode
optional

Vehicles fuel type. Possible values are :

* diesel

* undefined

* unleaded

string

maxOptimDuration
optional

maximum optimization time. Default is one minute.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes)

string

noReload
optional

Use it to forbid/allow reloads

Default : false.

boolean

optimEngine
optional

Which optimization engine to use. Possible values: OTSOLVER(default), OTSOLVER_LOGISTIC.

OTSOLVER is the standard generic optimization engine handling many constraints.

OTSOLVER_LOGISTIC an optimization engine dedicated for logistic. It handles fewer constraints but is quicker for very dense optimizations.

xml_ns0_optimEngine

rejectFlags
optional

string

reloadDuration
optional

Default reload duration

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes)

string

routingMethod
optional

Routing method

Specifies routing method used for travel time and distance matrix computation

Possible values are :

* TIME : routes minimizing travel time are used

* DISTANCE : routes minimizing travel distance are used

Default : TIME.

xml_ns0_routingMethod

sendResultToWebhook
optional

Enable result export to webhook

If enabled, optimization result will be sent to the webook you defined in Toursolver Cloud configuration.

Possible values are :

* NONE : result will not be sent automatically when optimization finishes. You will have to call the result or toursResult service to retrieve it.

* ORDERS : the "orders" result will be sent to the specified webhook. See OptimResultResult object for details.

* TOURS : the "tours" result will be sent to the specified webhook. See OptimToursResult object for details.

Default : NONE.

xml_ns0_webhookExportMode

speedPattern
optional

Speed pattern name

Specifies the speed pattern to be used for this optimization. "default_profile" is the internal name for the default speed pattern (its actual name in UI depends on your locale).

You can use your own speed pattern (defined in Toursolver UI) but you will have to use its internal name : if you created a pattern called "Paris august speed pattern", its internal name will be "paris_august_speed_pattern".

If set to null (or not defined), no speed pattern will be used at all (same speeds for whole day).

string

startFromEvaluationInfo
optional

Enable this if you want the optimization to start from a specified initial configuration. Therefore, you must fill the evaluationInfos objects in orders (see TSEvaluationInfos).

Default : false.

boolean

teamId
optional

If you did not specify any resource in your request, all resources defined in your tenant will be used for this optimization. If you specify a team identifier, only the resources of this team will be used.

string

useForbiddenTransitAreas
optional

Whether to use forbidden transit areas

Specifies true to use forbidden transit areas, and false to ignore forbidden transit areas

If omitted, default to true, but has no effect if no forbidden transit areas are supplied

boolean

useOTSolver
optional

OTSolver is the standart optimization engine behind Toursolver. It behaves better with big problems (more than 1000 visits).

boolean

vehicleCode
optional

Vehicles regulations.

Possible values are :

* bicycle

* bus

* car

* deliveryIntermediateVehicle

* deliveryLightCommercialVehicle

* emergencyTruck

* emergencyVehicle

* intermediateVehicle

* lightCommercialVehicle

* pedestrian

* taxi

* truck

If not specified, vehicle type defined in UI will be used

string

6.141. (XML) TSOrder

The Order object stores order data.

Order is composed of X,Y coordinates, identity tags, a set of constraints and status reports.

Use the Orders object to specify your orders data. These elements can be considered as deliveries, pick-ups or commercial visits occuring at a specific locations.

The optimization process consists in assigning Orders elements to Resources elements in a way that respects the constraints of every element and minimizes the total cost of the planning.

Polymorphism : Composition

Name Description Schema

TSTimeWindow
optional

The visit time windows.

Use this constraint to specify a visit time window during which the order can be delivered. A visit time window is defined by its start time, its end time and possible visit days (see tsOrderTimeWindow1_EndTime, tsOrderPossibleVisitDays1). You can specify up to 4 visit time windows for a customer.

Type : array of time windows

Default : "00:00:00".

Example : A customer can only be delivered: *

* on Monday from 11:00:00 to 12:00:00 AM and from 04:00:00 to 05:00:00 PM,

* on Tuesday, Wednesday, Thursday from 08:00:00 to 09:00:00 AM and from 04:00:00 to 05:00:00 PM,

* on Friday from 08:00:00 to 09:00:00 AM.

Its visit time windows will be specified as follows:

* first time window StartTime = "08:00:00", EndTime = "09:00:00", first set of possible days = "2=>5",

* second time window StartTime = "11:00:00", EndTime = "12:00:00", second set of possible days = 1,

* third time window StartTime = "16:00:00", EndTime = "17:00:00", third set of possible days = "1=>4".

xml_ns0_TSTimeWindow

active
optional

Indicates whether the order should scheduled or not

Default : True.

boolean

allSkillsRequired
optional

Indicates whether a resource must provide all required skills or one at least.

* Set it to True to indicate that a resource must provide all the customer required skills.

* Set it to False to indicate that a resource must provide at least one of the customer required skills.

Default : True.

boolean

allowedDepots
optional

The list of depots where orders collected products can be dropped (standard solver only, with advanced setting "HealthDelivery=true").

This constraint is linked with tsOrder maxDurationBeforeDepotDrop constraint: a if a return to depot is enabled on an order, it will be done only at one the specified depots

Type : string as a list of depot ids separated with commas. Default : not used.

Example : "DEPOT_PARIS,DEPOT_ORLEANS"

string

cost
optional

The assignment cost of the resources that can deliver a customer (standard solver only).

Use this constraint in conjunction with assignResources if you want to set preferences between the resources. If you set assingResources=['R1','R2'] and assignCosts=[10,100], it is very likely that the order will be assigned to the resource R1 which have a lower assignment cost.

If you specified several resources in assignResources, you must specify the same number of costs (or none)

Type : int array containing const values.

Default : not used.

number

courierPenalty
optional

The cost of the order delivered by an independant transport device.

Use this constraint when an order can be delivered independantly to specify the cost of the device. The solver engine will assign it to a courier device or integrate it in a tour according to the least cost.

Type : float.

Default : not used.

number

customDataMap
optional

Private feature data.

Use this feature when you need to keep accessible private data about customers. For instance if you need to export the address of an element in a planning report, store it there. These informations can also be exported to the mobile app.

max 50 fields

Default : empty.

object

customerId
optional

string

delayPenaltyPerHour
optional

The penalty per hour for being late at a customer.

Use this constraint to allow a smarter control, with respect to time windows, than with the use of the tsOrderPunctuality constraint.

Type : float.

Default : not used.

number

docRef
optional

string

email
optional

string

evaluationInfos
optional

first order assignment (specifying resource, day and position in route).

Use it to compare optimization result with a previous optimization

Warning : used only if startFromEvaluationInfo is set to true in options.

xml_ns0_TSEvaluationInfos

fixedVisitDuration
optional

The fixed part of the total time spent visiting a customer.

Use this constraint to specify the minimum time spent at a customer’s. Use it to store the time needed by a vehicle to park, for instance, or the time planned for a commercial meeting.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

Example :

* tsOrderFixedVisitDuration = "00:30:00" indicates that the visit will be 30 minutes long.

* tsOrderUnloadingDurationPerUnit = 120 indicates that 120 seconds are necessary to unload one unit. With a tsOrderQuantity equal to 8, for instance, the variable part is 120*8 (960 seconds or 16 minutes) to unload the customer ordered quantity.

* Total delivery time = 30 minutes + 16 minutes = 46 minutes accounted for the customer delivery.

string

frequency
optional

The visit occurrence within a defined period.

Use this constraint to plan multiple visits at a customer during a period.

Type: string value describing the number of visits over a period. Default: not used.

Example :

Frequency = "3/5" means a customer must be visited 3 times within a 5-days long period. The solver engine will create and optimize routes respecting an optimal duration between consecutive visits. Thus, back to the example, the computed period is 5/3 rounded = 2. The best solution will respect, as far as possible, a 2-days long period between each visit (ex: day1, day3, day5 is a good solution).

string

getNotifications
optional

Boolean.True if a visit can receive notification email/sms

boolean

id
optional

The unique identifier of the order

string

invoiceId
optional

string

label
optional

string

maxDelayTime
optional

This constraint specifies the maximum allowed delay (standard solver only). You must specify a cost per hour through the delayPenaltyPerHour constraint.

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

maxDurationBeforeDepotDrop
optional

This constraint specifies the maximum time between the end of this order and a return to the depot (standard solver only).

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

minDuration
optional

The min duration of the visit that enables partition.

When the total duration of an order is very long, you may want to part it into multiple consecutive visits. First use this constraint to specify a duration threshold from which visit can be cut into multiple parts. Then use the tsOrderMinPartDuration to specify the min duration of one part.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

minPartDuration
optional

The min duration of a part of a split visit.

When the total duration of an order is very long, you may want to part it into multiple consecutive visits. First use the tsOrderMinDuration to specify a duration threshold from which the visit can be cut into multiple parts. Then use this constraint to specify the min duration of one part. The visit is split into parts of the set duration, and eventually a bigger one.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

originalOperationalId
optional

string

phone
optional

string

possibleVisitDaysList
optional

The possible visit days related to each visit time window.

Use this constraint to specify the possible visit days of a customer referring to a visit time window. It must be related to the tsResourceWorkDays constraint of the resources, as resources work days define the planning period. You can plan visits on a 64-days-long period max.

Type : array of string values containing visit days separated with commas (like "1, 2, 5" or "4, 20/05/2010") or intervals (like "1-10", "2=>5" or "22/05/2010=>03/06/2010"). For day intervals, prefer the "=>" separator. Be carrefull, if the separator of date is - then "1-5" corresponds to May the 1st of the current year. 1 is the first day of the planning period, the corresponding date, if any, is defined by the oldest date, for all resources, in the tsResourceWorkDays constraint. No date in the possible visit days description can precede the first day of the planning period defined by the resources (which is day 1). Default: 1=>64.

You can set up to 4 sets of visit days in this array. If you define several time windows, each time window will apply to corresponding set of possible days : first time window applies to first possible days set, second time window applies to second possible days set, etc.

Example :

* Set it to "1" (or "14/05/2010) when a customer must be visited on the first day of the planning period.

* Set it to "1, 2, 4, 5" (or "14/05/2010,15/05/2010,17/05/2010,18/05/2010") if the customer cannot be visited on the third day of a five days planning period.

* Set it to "1=>5" (or "14/05/2010=>18/05/2010") to define a 5-days long period during which the customer can be visited.

string

providedProducts
optional

The list of products collected during this orders (standard solver only, with advanced setting "HealthDelivery=true").

This constraint is linked with tsDepot supportedProducts constraint and tsOrder maxDurationBeforeDepotDrop constraint: an order collecting products and requiring a return to depot will be planned only if a depot supporting those products is available, and the return will be done only to a depot supporting those products.

Type : string as a list of products separated with commas. Default : not used.

Example : Specify "blood" in the order picked blood sample.

string

punctuality
optional

The priority for a customer to be delivered on time. With the standart engine, use maxDelaytime and delayPenaltyPerHour instead.

Use this constraint to introduce different priority levels for the respect of visit time windows (when defined). Specify a value from 1 to 5 to set the priority: customers with a punctuality set to 5 will have less risk of delayed deliveries than a customer with a punctuality set to 1. You can specify more precisely punctuality requirements to enforce delay control by using the tsOrderDelayPenaltyPerHour constraint instead of the tsOrderPunctuality constraint.

Type : integer value from 1 to 5.

Default : 1.

number

quantity
optional

The requested product quantities for an order.

Use this constraint to specify the product quantities ordered by a customer, for instance. Up to 24 quantities can be used to order different products. Useless when planning commercial tours.

Type : float array (maximum of 3 significant digits after decimal separator).

Default : 0 Max : 2,147,483.

Example :

* Use this constraint to store the number of ordered packages, when working with packages.

* Use this constraint to store the number of ordered liters, when working with liquids.

* Use multiple dimensions when working with multiple products: when delivering fuels for instance, you will use as many dimensions as types of fuels

Warning : The quantity constraint of the Orders elements must be related to the corresponding capacity constraint of the Resources elements: thus, an order will not be planned whenever no resource with the related capacity has been defined.

number

requiredSkill
optional

The list of the skills a customer requires to be visited.

Use this constraint when an order must be affected to a specific kind of resource: these resources will have to provide the required skills to be able to visit the customer.

Type : string array.

Default : none.

Example :

* Specify the word "Maintenance" as a required skill for a maintenance visit. Only the resources providing the "Maintenance" skill can perform the visit.

* Specify "Small vehicle" as a required skill for a customer living down town.

string

resource
optional

The identities of the resources which must not deliver a customer.

Use this constraint when you want to prevent some customers from being delivered by specific resources.

string

resourceCompatibility
optional

Value for compatibility with resources.

If the order has a compatibility constraint value, a resource is compatible with the order if its compatibility value is either non-existent either larger or equal to the order’s one. See tsResourceOrderCompatibility.

Example :

* Set tsOrderResourceCompatibility to 254.18 and tsResourceOrderCompatibility to 260.12: order and resource are compatible

* Set tsOrderResourceCompatibility to 254.18 and tsResourceOrderCompatibility to 200: the order can not be affected to the resource

* Set tsOrderResourceCompatibility to 254.18 and tsResourceOrderCompatibility empty: order and resource are compatible

* Set tsOrderResourceCompatibility empty and tsResourceOrderCompatibility to 260.12: order and resource are compatible

Type : double

Default : -1

number

scanItems
optional

xml_ns0_scanItem

sequenceNumber
optional

number

travelTimeModifier
optional

Indicates the value of the travel time modifier.

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location (tsOrderTravelTimeModifierValue), the portion of the travel time on which the modifier applies (tsOrderTravelTimeModifierLength) an offset to add to any travel duration leaving or reaching the location (tsOrderTravelTimeModifierOffSet).

Example :

* Set tsOrderTravelTimeModifierValue to 1.5, tsOrderTravelTimeModifierLength to 300 and tsOrderTravelTimeModifierOffSet to 60 for Order 1

* Set tsOrderTravelTimeModifierValue to 2, tsOrderTravelTimeModifierLength to 420 and tsOrderTravelTimeModifierOffSet to 0 for Order 2 If the initial travel duration between Order 1 and Order 2 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

Type : float

Default : 1

xml_ns0_TSTravelTimeModifier

tsOrderBefore
optional

This constraint lets you chain visits. Two chained visits will be performed the same day by the same driver. The visit on which this constraint is defined will be placed after the one it defines. If a visit from the chain cannot be placed, then none will be. You can specify one order id or several order ids (comma separated string).

string

tsOrderBeforeMaxTimeSpacing
optional

This constraint specifies the maximum spacing between the two chained visits.

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

tsOrderBeforeMinTimeSpacing
optional

This constraint specifies the minimum spacing between the two chained visits.

* Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

tsOrderDisjoint
optional

Use this constraint to force a return to depot between each repetition. Works only if the advanced paremeters HealthDelivery=true and TSORDERONEVISITPERTIMEWINDOW=true are set, or if tsOrderOneVisitPerTimeWindow is set to true.

boolean

tsOrderFixed
optional

If true, the order will be planned with priority over other orders, forcing the use of the specified day, resource and start time if specified (standard solver only)

You can specify orderOriginalResourceId and orderOriginalVisitDay of evaluationInfo and set the time window to the exact time (respecting the duration) if you want to the visit to be planned at a specific time.

boolean

tsOrderLastVisit
optional

The number of days before the beginning of the planning the last visit belonging to the order has been performed

Use this constraint in case of a frequency order to specify from how many days the last visit was performed before starting the current planning. The default value indicates this constraint is to be unused in the planning.

Type : negative integer

Default : 0 Max : -2,147,483.

Example :

If tsOrderLastVisit = -2, the last visit of the same order has been performed two days ago.

Warning : if the number of occurences of the frequency is more than one, the constraints tsOrderLastVisit and tsOrderMinimumSpacing are not considered.

number

tsOrderMaxDropHours
optional

Use this constraint to specify a maximum drop hour corresponding to each time window. Works only if the advanced parameter HealthDelivery=true is set and if advanced parameter HealthFrequency=true is set or if tsOrderOneVisitPerTimeWindow=true constraint is set.

You must give the same number of values as defined time windows (limited to 4 values then).

Type : Time ("hh:mm" or "hh:mm:ss").

Default : not used.

Example :

You defined 2 time windows : from 08:00 to 10:00 and from 14:00 to 16:00. If you give this value for tsOrderMaxDropHours : ['11:00','17:00'], a return to depot will be generated before 11:00 for the visit corresponding to the first time window (08:00 to 10:00), another one will be generated before 17:00 for the visit corresponding to the second time window (14:00 to 16:00).

string

tsOrderMaximumSpacing
optional

The maximum number of days required between two visits of a same order.

Use this constraint in case of frequency order to specify how many days at most should be left between two visits of the order.

Type : integer

Max : 2,147,483.

number

tsOrderMinimumSpacing
optional

The minimum number of days required between two visits of a same order.

Use this constraint in case of frequency order to specify how many days at least should be left between two visits of the order.

Type : integer

Default : 0 Max : 2,147,483.

Warning : if the number of occurences of the frequency is more than one, the constraints tsOrderLastVisit and tsOrderMinimumSpacing are not considered.

number

tsOrderOneVisitPerTimeWindow
optional

Use this constraint to generate several instances of this visit in the same route (one per time window).

boolean

type
optional

The type of visit at a customer.

* 0 (Delivery): the resource will deliver related quantities.

* 1 (PickUp): the resource will pick-up related quantities.

* 2 (DeliveryFirst): the resource will not mix deliveries and pick-ups in a same rotation.

It is possible to mix pickups and 0 type deliveries in the same rotation. However, the delivered products will come from the depot and the pickup products will be unloaded at the depot. No product delivered to a customer can come from a pickup at another customer’s.

Type : Integer.

Default : 0 (Delivery).

number

unloadingDurationPerUnit
optional

The time needed to deliver one unit of product.

Use this constraint when the time spent at a customer depends on the quantity to deliver. It is the time needed to unload one unit of the quantity stored in the customer tsOrderQuantity constraint.

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

Default : not used.

string

wholeVisitInTimeWindow
optional

Whole visit ends before time window end.

Use this constraint if you want that a visit ends before the end of the time window.

Default : false.

boolean

x
optional

longitude of order location

number

y
optional

latitude of order location

number

6.142. (XML) TSPause

Polymorphism : Composition

Name Description Schema

duration
optional

Duration

Type : Time ("hh:mm" or "hh:mm:ss") or Integer (number of minutes).

string

end
optional

maximum end time

Type : Time ("hh:mm" or "hh:mm:ss")

string

start
optional

minimum start time

Type : Time ("hh:mm" or "hh:mm:ss")

string

6.143. (XML) TSPlanned

Details of a stop within a resource tour.

Polymorphism : Composition

Name Description Schema

dayId
optional

day of the stop

string

resourceId
optional

Assigned resource identifier

string

stopDriveDistance
optional

The drive distance from the previous to the current stop.

number

stopDriveTime
optional

The drive time from the previous to the current stop.

Type : Time ("hh:mm" or "hh:mm:ss")

string

stopDuration
optional

The duration of the stop.

Type : Time ("hh:mm" or "hh:mm:ss")

string

stopElapsedDistance
optional

The tour cumulated driven distance at the stop.

number

stopId
optional

the ID of the stop or order

string

stopPosition
optional

The position of the stop in the resource tour.

number

stopStartTime
optional

The time the stop starts at.

Type : Time ("hh:mm" or "hh:mm:ss")

string

stopStatus
optional

The status of the stop.

An order can be on time, late, waited, impossible (non compliant). It can also be a courier service delivery and not planned. See StopStatusConstants for more information about stop status.

Type : integer.

* 0 = OnTime: The stop begins into the specified visit time window.

* 1 = Late: The stop begins after the specified visit time window.

* 2 = Waited: The resource waits at the stop for the specified stop start time.

* 3 = Impossible: The stop cannot be planned.

* 4 = BadDay: The stop is planned without respect of frequency.

* NotPlanned: The courier service is in charge of a stop or the stop is not included in the planning process.

* BadPrevious : When the visits are split, the parts should follow one another. This status is that of a part following another visit instead of the previous part of the split visit.

number

stopType
optional

The stop type

A tour is composed of stops, which can be either customers visits or breaks, like reload breaks, lunch breaks, or even night breaks.

StopTypeConstants are

* 0 = Visit: The stop is an element of the Orders object.

* 1 = Start: The stop is the initial stage (departure) of the tour, occurring at the resource’s start location.

* 2 = End: The stop is the the last stage (arrival) of the tour, occurring at the resource’s stop location.

* 3 = EndBeforeOvernight: The stop is the the last stage (arrival) of the tour, occurring where the resource stopped for the night.

* 4 = ReloadBreak: The stop is a reload break within the tour, occurring at a depot location.

* 5 = LunchBreak: The stop is the lunch break within the tour, occurring anywhere between two other located stops.

* 6 = RestBreak: The stop is a rest break within the tour, occurring anywhere between two located stops.

* 7 = WaitBreak: The stop is a wait break within the tour, occurring before a visit.

* 8 = StartAfterOvernight: The stop is the last stage (arrival) of the tour, it occurs where the resource stopped for the night. tsStopDriveDistance

* 9 = Briefing: The stop is a briefing break within the tour, occurring right after the departure of the tour.

* 10 = DeBriefing: The stop is a wait break within the tour, occurring right before the arrival of the tour.

number

stopX
optional

The X coordinate of the stop.

number

stopY
optional

The Y coordinate of the stop.

number

6.144. (XML) TSResource

The Resources object stores the collection of the elements which will perform deliveries, pick-ups, commercial visit, etc.

Each element can be seen as a driver/vehicle pair and their related driving and working constraints.

It is composed of an identity tag, and location coordinates (base or depot, departure, arrival location). Eventually, each element can be configured through a set of constraints which stores information like capacity, driver work time, penalties and so on.

Polymorphism : Composition

Name Description Schema

additionalCostOperator
optional

Operator used to compute additional cost (see toursResult object)

Possible values are :

* SUM : tour additional cost will be the sum of additional costs of planned orders

* MAX : tour additional cost will be the maximum value of additional costs of planned orders

* MIN : tour additional cost will be the minimum value of additional costs of planned orders

* AVERAGE : tour additional cost will be the average of additional costs of planned orders

xml_ns0_costOperator

additionalCostOrderCustomDataName
optional

Name of TSOrder customData that will contain the TSOrder type used for additional cost computation (see toursResult object)

string

additionalCosts
optional

List of additional cost (cost per order type)

xml_ns0_TSAdditionalCost

allowedNights
optional

string

available
optional

Indicates whether a resource is included in the planning process or not.

This constraint enables you to easily modify your optimization problem configuration without having to add nor delete original data.

* Set it to True to include a resource element in the planning process.

* Set it to False to ignore it: it will not be used in the planning.

Type : Boolean. Default : not used.

boolean

avgConsumption
optional

Average consumption of the resource. Use this constraint to specify the average consumption of the resource. This consumption must be defined in liters per 100 distance unit (km or miles)

Default : The consumption indicated in the VehicleProfile.Consumption property.

number

briefingDuration
optional

An additional duration applied before the tour starts. Use this constraint to specify an additional duration before the resource begins the tour. For instance, to brief drivers before they leave or to simulate an initial vehicle loading time (no depot).

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

string

capacity
optional

The total product capacity a resource can carry. Use this constraint to specify the amount of product a resource can deliver or pick-up. It must be linked with the customers related quantity constraint. 23 more dimensions can be used in order to specify various products. They must be linked with the customers related dimensions.

Type : float (maximum of 3 significant digits after decimal separator). Default: None. Max : 2,147,483.

Example :

* Use it to store the total number of packages a resource can deliver before reloading, when working with packages.

* Use it to store the total number of litres a resource can deliver before reloading, when working with liquids.

* Use multiple capacity dimensions when working with multiple products: when delivering fuels, you will use as many capacities as types of fuels.

number

customDataMap
optional

Private custom data.

Use this feature when you need to keep attributes values of your own into the optimization context. For instance if you need the address of an element, store it there.

object

dailyWorkTime
optional

The maximum resource work duration over a day. Use this constraint to specify the maximum daily work duration (unless overtime periods have been defined). If the dailyWorkTime constraint is not set to a value, default daily work time is computed from resource time window and lunch duration (workStartTime, workEndTime and lunchDuration).

Type : "hh:mm:ss", DateTime. Default : not used.

string

daysOff
optional

xml_ns0_dayOff

debriefingDuration
optional

An additional duration applied at the end of the tour. Use this constraint to specify an additional duration after the resources stops at the end location. For instance, to debrief drivers after their tour or to account an ultimate vehicle unloading time, or a parking time.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

string

driveRestAtCustomer
optional

Indicates whether or not time spent at customer during deliveries can be considered as rest break.

* Set it to True if a visit can be considered as a rest break, as soon as its duration is equal or higher than the legalMinRestDuration constraint.

* Set it to False if not.

Type : Boolean. Default : False.

boolean

driveRestAtDepot
optional

Indicates whether time spent at depot during a reload break can be considered as drive break or not.

Use this constraint to take into account drive time legislation in your planning results.

* Set it to True if load breaks can be considered as drive breaks, as soon as their duration is equal or higher than the legalMinRestDuration constraint.

* Set it to False if not.

Type : Boolean. Default : False.

boolean

endX
optional

longitude of resource arrival

Specify it only if arrival and start are not the same.

number

endY
optional

latitude of resource arrival

Specify it only if arrival and start are not the same.

number

extraTravelPenalty
optional

The costs for a resource of driving for one distance unit.

xml_ns0_TSTravelPenalty

fixedLoadingDuration
optional

The fixed duration of the resource load break. Use this constraint to specify how long takes a resource reload at depot. You can specify an additional duration according to the quantity to reload, using loadingDurationPerUnit.

Type : "hh:mm:ss", DateTime. Default : "00:00:00".

Example :

* fixedVisitDuration = "00:30:00" indicates that 30 minutes are needed to load the resource.

* loadingDurationPerUnit = 120 indicates that 120 sec are needed to load one unit. If the quantity to reload is 8, for instance, the variable part is 120*8. 16 minutes are required to load the resource.

* Total load time = 30 minutes + 16 minutes = 46 minutes accounted for this reload break.

string

fixedUnloadingDuration
optional

The fixed time needed for the resource to deliver/pick-up at the customer’s place.

This fixed resource’s unloading duration is added to the resource’s unloading duration depending on the quantity to deliver/pick-up and to the order’s unloading duration depending on the quantity to deliver/pick-up. See also tsResource unloadingDurationPerUnit and tsOrder unloadingDurationPerUnit. Example :

* Set tsOrderQuantity to 3.

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 6 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration to 10 mn and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 10 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration empty and tsResource unloadingPerUnit to 1 mn: the variable part of the order is 3 mn

Type : "hh:mm:ss", DateTime. Default : ""

Warning : the fixed/per unit unloading duration for resource is not compatible with the orders constraints: partition and whole visit in time window. Hence if one of the constraint at least tsResource fixedUnloadingDuration and tsResource unloadingDurationPerUnit is non null, partition and whole visit in time window are disabled.

string

fuelCode
optional

Vehicles fuel type. Possible values are :

* diesel

* undefined

* unleaded

string

fuelType
optional

The fuel type of the resource.

Use this constraint to specify the fuel type of the resource. Available fuel types are :

* 0: Unknown fuel type

* 1: No fuel type (pedestrian)

* 2: Diesel

* 3: Unleaded fuel

* 4: LPG

Type : Integer. Default : The fuel type indicated in the VehicleProfile.FuelType property.

number

globalCapacity
optional

Global capacity for a resource. This constraint unables to set a maximum capacity on a resource, whatever product is carried. If both global capacity and capacity per product are to be used, set True for the value of useAllCapacities.

Type : Float Default : None Max : 2,147,483.

Example : Set globalCapacity = 15 and useAllCapacities = False. The global capacity only is considered: the vehicle can carry 15 quantities of products, whatever product is to be carried.

number

id
optional

The unique identifier of the resource.

This id can not contain special characters like '=' or ':'

string

legalDailyDriveDuration
optional

The legal daily duration a resource can drive before having a rest break.

Use this constraint to take into account drive time legislation in your planning results. Specify the rest duration in the legalDailyRestDuration: rest breaks occur as soon as the resource has driven the legal daily driving duration or has completed its daily work time.

Type : "hh:mm:ss", DateTime. Default : not used.

Example : legalDailyDriveDuration = "09:00:00", legalDailyRestDuration = "11:00:00". The resource can cumulate a 9-hours daily drive time before having to rest during 11 hours.

string

legalDailyRestDuration
optional

The legal rest duration a resource must have after the daily max drive duration.

Use this constraint to take into account drive time legislation in your planning results. Rest breaks occur as soon as the resource has driven the legal max daily duration or has complete its daily work time. The use of both legalDailyDriveDuration and legalDailyRestDuration implies that the start and end time of tours are no longer defined by the workStartTime and workEndTime constraints, but may vary as long as the legalDailyRestDuration constraint is respected.

Type : "hh:mm:ss", DateTime. Default : not used.

string

legalDriveRestDuration
optional

The resource break duration after max drive duration. Use this constraint to take into account drive time legislation in your planning results.

Type : "hh:mm:ss", DateTime. Default : not used.

string

legalMaxDriveDuration
optional

The legal max duration a resource can drive without a break. Use this constraint to take into account drive time legislation in your planning results.

Type : "hh:mm:ss", DateTime. Default: : not used.

Example :

* legalMaxDriveDuration = "04:30:00", legalDriveRestDuration = "00:45:00". The resource can drive for 4 hours and 30 minutes before having a 45 minutes break. Then it can start driving again for 4 hours and 30 minutes???etc.

* If added driveRestAtCustomer = True and legalMinRestDuration = "00:15:00", rest time is cumulated as soon as customer visit duration is equal or higher than the specified min rest duration. If the 45 minutes rest break has not occured when the resource has driven for 4 hours and 30 minutes, it must stop to complete the break. Otherwise, it can drive again for 4 hours and 30 minutes.

string

legalMinRestDuration
optional

The minimum duration a resource breaks for it to be considered as a drive break. Use this constraint to take into account drive time legislation in your planning results. When breaks occur at customer or at depot, they are considered as drive breaks if their duration is equal or higher than the specified min rest duration.

Type : "hh:mm:ss", DateTime. Default: : not used.

string

loadBeforeDeparture
optional

Indicates whether a resource must load before starting a tour or not.

* Set this constraint to True to insert a load break at depot before the tour starts.

* Set it to False to consider the vehicle loaded.

Type : Boolean. Default: : False.

boolean

loadOnReturn
optional

Indicates whether a resource must reload after a tour or not.

* Set this constraint to True to insert a load break at depot after the tour ends.

* Set it to False to not reload the vehicle.

Type : Boolean. Default: : False.

boolean

loadingDurationPerUnit
optional

The time needed to load a unit of product. This constraint is added to the fixed part of the loading duration: it depends on the total quantity to load.

Type : "hh:mm:ss", DateTime, Integer (number of seconds). Default: : 0.

string

lunch
optional

The lunch break

Default: : no lunch break

xml_ns0_TSPause

maxNightsOutPerJourney
optional

The number of nights a resource can spend out to perform deliveries before coming back to base.

Use this constraint to enable night breaks trip: it will store how many days a resource can drive away from depot. Unless the vehicle needs to reload, it will not come back before.

Type : integer. Default: : not used.

Example: maxNightsOutPerJourney = 4, workDays = 1=>5. The resource can perform deliveries during 5 days (and 4 nights) without coming back to depot. Starting on day 1, it must come back to depot on day 5.

number

maxNightsOutPerWeek
optional

The number of nights a resource can spend out to perform deliveries before coming back to base in a week.

Type : integer. Default: : not used.

number

maximumDistance
optional

The maximum distance the resource should travel per day.

Use this constraint to specify the distance the resource should not exceed in one day

Type : integer Default : -1 (no limit)

number

maximumReloads
optional

Value for maximum number of reloads per day.

number

maximumReloadsPenalty
optional

Value of the penalty if the resource exceeds the maximum number of reloads per day.

If the resource exceeds the maximum number of reloads per day, it will be penalized by the maximum reloads penalty multiplied by the number of reloads' overtaking. The default value is 1024 if the constraint maximumReloads is set. See also maximumReloads.

number

maximumVisits
optional

The maximum number of visits the resource can perform in one day.

Type : integer Default : -1 (no limit) Max : 2,147,483.

number

minDriveDuration
optional

The minimum laps of time between 2 consecutive visits.

Use this constraint to specify a minimum drive time accounted when consecutive visits are very close, in order to compute a realistic timing.

Type : "hh:mm:ss", DateTime. Default: : not used.

string

minimumQuantity
optional

Value for minimum quantity to deliver.

If the resource has a non null minimum quantity to deliver constraint value, the resource can visit on order only if the quantity to be picked-up or delivered at this order is higher than the constraint value.

*Example : *

* set order quantity to 3 and resource minimumQuantity to 2 : resource might visit the order

* set order quantity to 3 and resource minimumQuantity to 5 : resource can not visit the order

Type : float

number

mobileLogin
optional

Mobile login to be specified only if you need to be able to export the optimization result to operation planning from TsCloud GUI. If you trigger operational planning export from the API, you will still need to specify the mapping between resource name and login.

string

nightPenalty
optional

The night cost of a resource when planning night breaks.

Use this constrainte to specify how much a night out costs (lunch, bed, breakfeast???) for a resource when night breaks are allowed.

Type : float. Default: : 0

number

noReload
optional

Constraint providing resource to reload at depot during a tour.

If none of the constraints loadBeforeDeparture and loadOnReturn is activated, the resource is never loading at depot. If one of these constraint is activated the resource is loading once per tour, either at the beginning of the tour or at the end of it. If both constraints are activated then the resource is loading twice a tour, at the beginning and at the end.

With standard solver only : solver always works with solution cost comparison, so it may allow reloads even if you set noReload to true if the solution cost is really lower. The only way to totally prevent reloads is to set fixedLoadingDuration to a very long duration (20:00:00 for instance). The solver will warn you about this long duration but will not add reloads to the tours. Caution : Don’t do this if you are using loadOnReturn or loadBeforeDeparture

Default : False

boolean

nonUsePenalty
optional

A cost paid for NOT using a resource in the computed planning.

Use this constraint to penalize the fact that an available resource is not used in the planning. It proves usefull when you must use all the resources in the Resources collection: you will prevent the solver from optimizing the number of resources, as using them would be too expensive a solution.

Type : float. Default: : not used.

Example : Use it to specify parking taxes when a vehicle performs no tour.

number

openDistanceStart
optional

boolean

openDistanceStop
optional

boolean

openStart
optional

Indicates whether or not a tour evaluation starts from the resource start location or from the first customer’s place.

* Set it to True to begin the tour at the first customer (no cost will be computed between the resource start location and the first customer).

* Set it to False to begin the tour at the resource start location.

Type : Boolean. Default: : False.

boolean

openStop
optional

Indicates whether or not a tour evaluation ends at the last customer’s place or at the resource end location.

* Set it to True to finish the tour at the last customer location (no cost will be computed between the last customer and the resource end location).

* Set it to False to finish the tour at the resource end location.

Type : Boolean. Default: : False.

boolean

openTimeStart
optional

boolean

openTimeStop
optional

boolean

optimumStartTime
optional

Adapts the resource start time to the best solution.

* Set this constraint to False to start the tour at the time indicated by the workStartTime constraint.

* Set this constraint to True to optimize the resource start time and enable the use of the dailyWorkTime constraint.

Notice that, in both cases, the tour will not start before the time stored in the workStartTime constraint and that the use of the weeklyWorkTime constraint is enabled.

Type : Boolean. Default: : False.

boolean

otherWorkEndTime
optional

The end time of the resource work time window for the "other working days" (see otherWorkDaysList).

If you defined other working days, use this constraint to specify the time at which the tour must end. These times can be adjusted using the optimumStartTime parameter.

You can define up to 3 different end times here, corresponding to the different "other working days" slots.

Type : List of "hh:mm:ss", DateTime. Example : ["18:00:00","19:00:00]

string

otherWorkStartTime
optional

The start time of the resource work time window for the "other working days" (see otherWorkDaysList).

If you defined other working days, use this constraint to specify the time at which the tour must start. These times can be adjusted using the optimumStartTime parameter.

You can define up to 3 different start times here, corresponding to the different "other working days" slots.

Type : List of "hh:mm:ss", DateTime. Example : ["08:00:00","09:00:00]

string

otherWorkingDay
optional

Other working days (see workingDays)

You can define up to 3 different working days slots. If you do so, you can then specify distinct work start and end times with otherWorkStartTimes and otherWorkEndTimes.

Type : List of string (see workingDays format) Example : ["2","3=>5"]

string

overnightMinDriving
optional

The max duration a resource can drive to go back to base at the end of a tour when working with night breaks.

Use this constraint when a resource can end a tour at base instead of having a night break on the road.

Type : "hh:mm:ss". Default: : not used.

string

overtimeDuration
optional

The duration of the resource overwork periods. (max 2 periods)

Use this constraint when you need to define 2 different overwork periods with regard to daily work time and their related surcharge. No overwork period can be defined with regard to weekly work time.

Type : "hh:mm:ss", DateTime. Default: : not used (no second overtime period).

Example :

workPenalty = 10, first overtime duration = "02:00:00", first overtime penalty = 5,second overtime duration = "01:00:00", second overtime penalty = 10.

The cost of the resource during the daily working time is 10 euros per hour. The resource can work during 3 more hours and each overworked hour will cost 10 + 5 euros for 2 hours and 10 + 10 euros for the last hour.

string

overtimePenalty
optional

A surcharge for a resource’s overwork period (max 2 periods).

Use this constraint to specify additional cost to workPenalty as overwork time. You can define up to 2 overwork periods with regard to daily work time and their related surcharge. No overwork period can be defined with regard to weekly work time.

Type : float. Default: : not used.

Example :

workPenalty = 10, first overtime duration = "02:00:00", first overtime penalty = 5.

The cost of the resource during the daily working time is 10 euros per hour. The resource can work during 2 hours after the daily working time and each overworked hour will cost 15 (10 + 5) euros.

number

parkingTime
optional

Parking time in seconds added to the travel time before each order.

This parking time is applied only once for a group of aggregated orders.

number

payWholeDay
optional

Indicates whether or not a whole work day cost is computed as soon as a resource works even a few hours.

* Set this constraint to True to account a whole day cost.

* Set it to False to account only effective worked hours.

Type : Boolean. Default: : False.

boolean

penaltyPerVisit
optional

An additional fixed cost applied each time the resource performs a visit.

Use this constraint when the cost of a resource may vary according to the number of visits it performs.

Type : float. Default: : 0.

number

providedProducts
optional

The list of products provided by a resource.

This constraint is linked with tsDepot requiredProducts constraint: a depot with a required product can only be visited by a resource providing it.

Type : string as a list of products separated with commas. Default : not used.

Example : Specify "Oxygen" in the resource can provide oxygen.

string

providedSkills
optional

The list of characteristics provided by a resource.

This constraint is linked with the same order constraint: a customer with a required skill can only be delivered by a resource providing it.

Caution : use only alphanumeric characters (and _) in your characteristics values, otherwise the skill will be ignored.

Type : string as a list of characteristics separated with commas. Default: : not used.

Example :

* Specify "Maintenance" in the provided skills of a resource designed to perform maintenance visits type.

* Specify "Small vehicle" to the provided skills of a resource able to perform downtown visits.

string

speedAdjustment
optional

A factor to increase or decrease the vehicle speed.

Whenever users observe a significant gap between estimated speeds and the real ones, they can adjust them by using this factor. It is expressed as a percentage of the used speed.

Type : float. Default: : not used.

Example :

* speedAdjustment = 110: resource speeds will be 10% higher than the used speeds.

* speedAdjustment = 80: resource speeds will be 20% lower than the used speeds.

number

startTravelTimeModifier
optional

travel time modifier associated with the start location of the resource

xml_ns0_TSTravelTimeModifier

startX
optional

longitude of resource start (and arrival if no endX provided)

number

startY
optional

latitude of resource start (and arrival if no endY provided)

number

stopTravelTimeModifier
optional

travel time modifier associated with the stop location of the resource

xml_ns0_TSTravelTimeModifier

tomTomWebFleetEnabled
optional

boolean

tomTomWebFleetIdentifier
optional

string

travelPenalty
optional

The cost for a resource of driving for one distance unit.

Use this constraint to specify the average resource taxes (gazoline, wear,???) when driving one distance unit.

Type : float Default : 1.5

Example : if travelPenalty = 0.5 (euro per distance unit) and the driven distance is about 100 unit (km or miles), the total distance cost is 0,5 * 100 = 50 euros.

number

travelTimeModifier
optional

travel time modifiers

When reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion. The travel time modifier enables to increase the travel times around a location. It is describes by three values. The value by which multiply the travel times around the location travelTimeModifierValue), the portion of the travel time on which the modifier applies (travelTimeModifierLength) an offset to add to any travel duration leaving or reaching the location (travelTimeModifierOffSet).

Example :

* Set travelTimeModifierValue to 1.5, travelTimeModifierLength to 300 and travelTimeModifierOffSet to 60 for Resource 1

* Set travelTimeModifierValue to 2, travelTimeModifierLength to 420 and travelTimeModifierOffSet to 0 for Order 1 If the initial travel duration between Resource 1 and Order 1 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660

xml_ns0_TSTravelTimeModifier

unloadingDurationPerUnit
optional

the time needed to the resource to deliver/pick-up one unit of product at the customer’s place.

This resource’s duration is added to the fixed resource’s unloading duration and to the order’s unloading duration depending on quantity to deliver/pick-up. See also tsResource fixedUnloadingDuration and tsOrder unloadingDurationPerUnit.

Example :

* Set tsOrderQuantity to 3.

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 6 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration to 10 mn and tsResource unloadingPerUnit to 0 or empty: the variable part of the order is 10 mn

* Set tsOrder unloadingDurationPerUnit to 2 mn and tsResource fixedUnloadingDuration empty and tsResource unloadingPerUnit to 1 mn: the variable part of the order is 3 mn

Type : "hh:mm:ss", DateTime.

string

useAllCapacities
optional

Determines if both global capacity and capacities per product should be considered in the optimization or only global capacity.

Type : Boolean Default : False

Example : Set globalCapacity = 15 and useAllCapacities = False. The global capacity only is considered: the vehicle can carry 15 quantities of products, whatever product is to be carried.

boolean

useInPlanningPenalty
optional

Penalty value if the resource is used in the planning.

Use this constraint to specify the penalty if the resource is used at least one day in the planning

Type : float Default : 0

number

usePenalty
optional

A cost paid for using the resource in the computed planning. Use this constraint to ponderate the cost of using a resource element of the Resources collection, when working with rented vehicle for instance. You can use it as well to reduce the number of resources used to perform the deliveries.

Type : float. Default: : not used.

Example :

Add the cost of use to the distance and hourly costs when working with a service provider. The solver, aiming at cost reduction, will try to eliminate this resource first, as it is the most expensive.

number

vehicleCode
optional

Vehicles regulations.

Possible values are :

* bicycle

* bus

* car

* deliveryIntermediateVehicle

* deliveryLightCommercialVehicle

* emergencyTruck

* emergencyVehicle

* intermediateVehicle

* lightCommercialVehicle

* pedestrian

* taxi

* truck

If not specified, vehicle type defined in UI will be used

string

weeklyWorkTime
optional

The maximum resource work duration over a week.

Use this constraint to specify the maximum weekly work duration. Weeks are defined as follows:

* year’s week, from monday to sunday, if a date has been specified in the workDays constraint

* days 1 to 7 are the days of the first week and the second week start on day 8 if no date has been specified in the workDays constraint. No over work with regard to the weekly work duration is allowed.

Type : "hh:mm:ss", DateTime. Default: : "168:00:00".

string

workEndTime
optional

The end time of a resource work time window.

Use this constraint to specify the time at which the tour must be over or the daily work duration.

* If the optimumStartTime parameter is set to True and the dailyWorkTime or weeklyWorkTime constraint value is set by user, the tour cannot finish later than the value of the workEndTime parameter, whatever overtime may be allowed by the overtime1_Duration and overtime2_Duration constraints.

* If the optimumStartTime parameter is set to True and the dailyWorkTime constraint value is not set, the end time of the tour can be adjusted to match the begining of the work time window. In this case, this parameter is used only to compute the resource daily work time and the tour can finish at midnight.

* If the optimumStartTime parameter is set to False, then this parameter is used to compute the resource daily work time and the tour can finish no later than the specified end time plus the values of the first overtime duration and the second overtime duration constraints. If the daily work duration is specified by the workEndTime constraint’s value, then it is equal to workEndTime minus workStartTime and lunchDuration.

Example : For a vehicle to work for 6 hours between 7PM and 7AM, set

* optimumStartTime=True

* dailyWorkTime="06:00:00"

* workStartTime="07:00:00"

* workEndTime="19:00:00"

For a vehicle to work for 8 hour between 8PM and 5AM with a one-hour break at 12:30, set

* workStartTime="08:00:00"

* workEndTime="17:00:00"

* lunchDuration="01:00:00"

* lunchTime="12:30:00"

Type : "hh:mm:ss", DateTime. Default: : "24:00:00".

string

workPenalty
optional

The cost of a resource working for an hour.

Use this constraint to specify the resource wages when working for an hour.

Type : float. Default: : 9.

Example :

If workPenalty = 10 (euros per hour) and daily work time is about 8 hours, the total daily work cost is 10 * 8 = 80 euros.

number

workStartTime
optional

The start time of the resource work time window.

Use this constraint to specify the time at which the tour must start. This time can be adjusted using the optimumStartTime parameter.

Type : "hh:mm:ss", DateTime. Default: : "00:00:00".

string

workingDays
optional

The resource’s work days. Use this constraint to specify the days a resource works in the planning period. This constraint is linked with the orders possible visit days constraints of Orders object elements and with the depot days of opening constraints of Depots object elements. Thus, customers and resources must have matching days for deliveries to be possible, and depots must be opened on resources working days to be used. A maximum of 64 days can be defined as work days. Working days can be written as integers (1,2???) or dates (14/05/2010, 15/05/2010, ???). If you are using dates, the oldest date in the workDays constraint defines day 1.

Type : string values containing days separated with commas (like "1, 2, 5" or "14/05/2010, 15/05/2010, 18/05/2010" to specify day 1, day 2 and day 5) or intervals (like "1-10", "2=>5" or "14/05/2010=>24/05/2010") where 1 (or 14/05/2010) is the first day of the planning period. For day intervals, prefer the "=>" separator. Be careful, if the separator of date is - then "1-5" corresponds to May 1st of the current year. If you mix integer and date formats, beware that day 1 will all the same be defined by the oldest available date.

Default: : "1".

Example :

You can define a single working day: Specify "1", "3" or "10" for the resource to work on day 1, day 3 or day 10 of the planning period. You can also define working periods. Specify "1-5" or "1=>5" or "14/05/2010=>18/05/2010" for the resource to work on a 5-days period (from day 1 to day 5 included).

You can also mix single day and periods. Specify "1, 3=>5" for the resource to work on day 1 and from day 3 to 5 of the planning period.

string

6.145. (XML) TSSimulation

Polymorphism : Composition

Name Description Schema

depots
optional

xml_ns0_TSDepot

nbCapacities
optional

number

nbExtraTravelPenalties
optional

number

nbQuantities
optional

number

nbTimeWindows
optional

number

options
optional

xml_ns0_TSOptions

orders
optional

xml_ns0_TSOrder

resources
optional

xml_ns0_TSResource

6.146. (XML) TSTimeWindow

Time window

Polymorphism : Composition

Name Description Schema

beginTime
optional

the minimum begin time

Type : Time ("hh:mm" or "hh:mm:ss")

string

endTime
optional

the maximum end time

Type : Time ("hh:mm" or "hh:mm:ss")

string

6.147. (XML) TSTour

Details of a stop within a resource tour.

Polymorphism : Composition

Name Description Schema

additionalCost
optional

Additional cost

Additional cost depends on additional cost configuration specified on resources and orders

number

dayId
optional

day of the tour

string

deliveryCost
optional

Total delivery cost of the tour

Delivery cost depends on PenaltyPerVisit defined on resources and configuration specified in options (see countDepotsInDeliveryCost and countVisitCostOnceIfSameLocation)

number

plannedOrders
optional

Orders planned in this tour

xml_ns0_TSPlanned

reloadNb
optional

ReloadNb

Number of reloads during this tour

number

resourceCapacities
optional

List of resource capacities

number

resourceId
optional

Assigned resource identifier

string

totalCost
optional

Total cost

Total cost = (delivery cost) + (additional cost)

number

travelDistance
optional

drive distance for this tour

number

travelDuration
optional

drive duration for this tour

string

usedCapacities
optional

List of used capacities

Tour used capacities can exceed resource capacities if the tour contains one or several stops to a depot.

number

6.148. (XML) TSTravelPenalty

Polymorphism : Composition

Name Description Schema

distance
optional

The driven distance (in the solver’s measurement system unit) from which distance cost will be applied.

Use this constraint when you need to specify a distance cost which can vary according to the covered distance. Up to 4 different distance costs can be specified. Each one must be related to the corresponding distance threshold, from which it will be applied

number

penalty
optional

The cost for a resource of driving for one distance unit.

Use this constraint to specify the average resource taxes (gazoline, wear,???) when driving one distance unit.

Type : float Default : 1.5 <