Download OpenAPI specification:Download
Our resources are the first part of the URI and then eventually followed by some sub-resources (i.e. /users/timesheet
) or actions (i.e. /task/{id}/discard
). Those URIs are predictable and make use of the various HTTP verbs, such as GET
, POST
, PUT
and DELETE
. For more details about the REST specification, visit the dedicated Wikipedia page.
When an issue occurs, we will return standardized error codes, such as 401
(you did not authenticate), 400
(bad payload), 403
(requested action is not allowed), 404
(resource not found), and so on. If you want a list of the available HTTP status codes, please click here.
Our sole type of content is JSON. Please be sure to be able to process JSON responses when implementing our APIs in your programs. We also solely accept application/json
as a Content-Type
when sending us payloads.
Our documentation is written following the OAS 3.0.2 format. This allows you to download our YAML
documentation and use it with other documentation generators, generate client SDKs to consume it, or even make your developer's life easier by giving them simply the file instead of having to navigate through a website. If you wish to learn more about the OAS format, please click here.
Some of our endpoints implement pagination, which allows you to retrieve a limited number of results per query and navigate through these results using pages.
In this section, we'll explain how pagination works in Urbantz APIs. Pagination is employed in endpoints that return lists of entities such as tasks, rounds, reservations, or announcements. This approach enhances efficiency by managing large datasets effectively.
When you make requests to endpoints that support pagination, the results are constrained to a specific page size. This page size is determined by the endpoint itself and the size of the retrieved data. To utilize pagination, you are required to include the page number with every request. Although the page size is optional, you can find information about the default value and maximum limit for each endpoint in their respective documentation.
page
: An integer indicating the page number to retrieve. The default value is 0
.pageSize
: An integer representing the number of results to retrieve in a single request. Each endpoint has a default value and a predefined maximum limit.To retrieve all results associated with a particular request, you need to increment the page number. If the number of results is fewer than the page size, it indicates that you've reached the last available page. Any page number beyond this limit will result in an empty array ([]
) being returned.
Make sure to consult the documentation for each specific endpoint to determine if it supports pagination.
By following these guidelines, you can effectively implement pagination in Urbantz APIs and optimize the process of retrieving large sets of data.
If you wish to dry-run the calls to our APIs, (i.e. to develop your integration to our APIs) without playing with live/real data, you are invited to use the sandbox endpoints. Those endpoints are the same as production ones, but the domain is different. Production data is made with domain api.urbantz.com
, where sandbox uses the api.sandbox.urbantz.com
domain.
Please note that the domains have independent credentials. This is useful if you mistakenly switched environments and went into production instead of sandbox.
Feel free to contact our Support Team if any question remains after reading this documentation our looking up in our Help center.
Announcements are the tasks and services you created - There is one for the tasks and services created using the Web interface, and one for each announce made using the APIs, FTP or file upload.
Returns a list of announcements. By default, it will return the 10 announcements for today (UTC). If you provide the date
query parameter, it will return announcements for that specific date instead. It is possible to get the next ones adding the 'page' parameter. Announcements with unplanned tasks will be returned regardless of the date provided.
An announcement is the action of sending tasks into the system by making an API call. Tasks will be routed within the system according to the flow configuration.
date | string <date> Example: date=2019-09-30 The date the announcement was received |
page | number (Page) Default: 0 The page index of the requested records |
status | string Enum: "SUCCESS" "FAILED" "IN_PROGRESS" Example: status=IN_PROGRESS The announcement's status |
[- {
- "_id": "507f191e810c19729de860ea",
- "name": "string",
- "flux": "507f191e810c19729de860ea",
- "endpoint": "507f191e810c19729de860ea",
- "by": "507f191e810c19729de860ea",
- "count": 0,
- "updatedCount": 0,
- "platform": "4D3F12345AAAF30B2DD1CCFB",
- "mode": "FILE",
- "targetFluxes": [
- {
- "_id": "507f191e810c19729de860ea",
- "name": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "date": "2019-03-13T12:34:56.012Z",
- "hub": "507f191e810c19729de860ea",
- "status": "NON_OPTIMIZED",
- "logs": [
- { }
], - "count": 0,
- "issues": {
- "geocoding": 0,
- "validation": 0
}, - "jobs": [
- "string"
], - "published": true,
- "updated": "2019-03-13T12:34:56.012Z",
- "validated": true,
- "updateWarnings": {
- "rounds": [
- "string"
], - "tasks": [
- "string"
]
}
}
], - "status": "SUCCESS",
- "start": "2019-03-13T12:34:56.012Z",
- "end": "2019-03-13T12:34:56.012Z",
- "isLocked": true,
- "error": {
- "details": [
- "bad geocoding"
]
}, - "issues": {
- "geocoding": 0,
- "validation": 0
}
}
]
Returns one single announcement by its ID that is attached to the platform you are querying with. An announcement is the action of sending tasks into the system by making an API call. Tasks will be routed within the system according to the flow configuration.
id required | string Example: 4dfc181e09d4e5eb4d3463da Id of the announcement |
{- "_id": "507f191e810c19729de860ea",
- "name": "string",
- "flux": "507f191e810c19729de860ea",
- "endpoint": "507f191e810c19729de860ea",
- "by": "507f191e810c19729de860ea",
- "count": 0,
- "updatedCount": 0,
- "platform": "4D3F12345AAAF30B2DD1CCFB",
- "mode": "FILE",
- "targetFluxes": [
- {
- "_id": "507f191e810c19729de860ea",
- "name": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "date": "2019-03-13T12:34:56.012Z",
- "hub": "507f191e810c19729de860ea",
- "status": "NON_OPTIMIZED",
- "logs": [
- { }
], - "count": 0,
- "issues": {
- "geocoding": 0,
- "validation": 0
}, - "jobs": [
- "string"
], - "published": true,
- "updated": "2019-03-13T12:34:56.012Z",
- "validated": true,
- "updateWarnings": {
- "rounds": [
- "string"
], - "tasks": [
- "string"
]
}
}
], - "status": "SUCCESS",
- "start": "2019-03-13T12:34:56.012Z",
- "end": "2019-03-13T12:34:56.012Z",
- "isLocked": true,
- "error": {
- "details": [
- "bad geocoding"
]
}, - "issues": {
- "geocoding": 0,
- "validation": 0
}
}
This endpoint is for getting a URI that can be used to download an attachment for an entity.
The relative path for this can be found on the attachments/[attachment]/url value when retrieving an entity.
The API does not check for the existence of the attachment, but generates a signed URI to retrieve the attachment. This means that if you provide details for an attachment that does not exist, then you will still get a signed URI, but will not be able to retrieve the document.
type required | string Enum: "platforms" "tasks" The type of the entity that the attachment is on (plural form) Use “platforms” to retrieve any image of the task (signature, failed delivery picture, etc..) Use “tasks” to retrieve the delivery note of the task (pdf file) |
id required | string Example: 5f9af3044f8cc32e047d83a7 The ID of the entity |
key required | string Example: cd360c3e-b917-40b2-ad71-885413c98dd6.pdf The key for the attachment |
The optimization endpoints allow you to trigger optimizations, without using the web interface.
Runs the optimizer for all valid target flows
targetFlux required | string A target flux is the combination of parameters allowing to isolate an optimisation problem. It is a key composed of:
An independent optimization problem occurs at a hub, on a particular date, during a specific shift in a defined flow and using a specific optimisation. |
A round, also called mission, is a grouping of tasks with a determined sequence. This sequence is the order in which drivers should complete them to be most efficient based on criteria defined on the platform (duration, distance…).
Fetches a paginated list of all rounds on the authenticated platform. By default, the results displayed are date independent. To retrieve rounds of a specific day, use the date
query parameter.
You are also able, with that endpoint, to filter rounds per hub, using the hub
query parameter. If not specified, it will take all hubs into account.
date | string <date> Example: date=2019-03-19 Date of the round, format YYYY-MM-DD |
page | number (Page) Default: 0 The page index of the requested records |
pageSize | number (PageSize) Default: 10 The page size of the requested records |
hub | string (ID) Example: hub=507f191e810c19729de860ea The internal hub identifier (Urbantz) |
[- {
- "_id": "507f191e810c19729de860ea",
- "realInfo": {
- "hasPrepared": "2019-03-03T02:03:05.366Z",
- "hasStarted": "2019-03-03T02:03:05.366Z",
- "hasFinished": "2019-03-03T02:03:05.366Z",
- "preparationTime": 2273,
- "hasLasted": 14935
}, - "name": "string",
- "status": "CREATED",
- "activity": "classic",
- "shift": "string",
- "targetFlux": "string",
- "platform": "507f191e810c19729de860ea",
- "metadata": {
- "exampleKey": "example value"
}, - "labelsAndSkills": [
- "string"
], - "date": "2019-03-13T12:34:56.012Z",
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "hub": {
- "_id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "startTime": "2019-03-13T12:34:56.012Z",
- "endTime": "2019-03-13T12:34:56.012Z",
- "validated": true,
- "totalViolationTime": 0,
- "totalWaitTime": 0,
- "totalDistance": 0,
- "totalTravelTime": 0,
- "totalBreakServiceTime": 0,
- "totalOrderServiceTime": 0,
- "totalTime": 0,
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "totalCost": 0,
- "orderCount": 0,
- "updated": "2019-03-13T12:34:56.012Z",
- "reloads": [
- "string"
], - "flux": "5c3c63f23b37f30c4fd0240e",
- "id": "507f191e810c19729de860ea",
- "orderDone": 0,
- "senders": [
- {
- "name": "ExoCraft Productions",
- "reference": "5c3c615d3b37f30b3fc0240c",
- "count": 1,
- "_id": "string"
}
], - "picture": "string",
- "driver": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "stops": [
- {
- "stopType": 0,
- "type": "hub",
- "stopSequence": 1,
- "travelDistance": 0,
- "arriveTime": "2019-03-13T12:34:56.012Z",
- "departTime": "2019-03-13T12:34:56.012Z",
- "parcel": "507f191e810c19729de860ea",
- "sequence": 0,
- "taskId": "string",
- "taskReference": "task-ref-001-d",
- "violationTime": 0,
- "waitTime": 0,
- "serviceTime": 0,
- "travelTime": 0,
- "coordinates": [
- 0
]
}
], - "delay": {
- "time": 1567000,
- "when": "2019-04-01T08:31:05.121Z"
}, - "vehicle": {
- "name": "string",
- "id": "507f191e810c19729de860ea",
- "_id": "507f191e810c19729de860ea"
}
}
]
Retrieves a specific round, based on its id
. You can get this id
by retrieving all rounds or via the web interface, when displaying a round's details, under the Identifier
key of the General
tab.
id required | string (ID) Example: 507f191e810c19729de860ea The task identifier |
{- "_id": "507f191e810c19729de860ea",
- "realInfo": {
- "hasPrepared": "2019-03-03T02:03:05.366Z",
- "hasStarted": "2019-03-03T02:03:05.366Z",
- "hasFinished": "2019-03-03T02:03:05.366Z",
- "preparationTime": 2273,
- "hasLasted": 14935
}, - "name": "string",
- "status": "CREATED",
- "activity": "classic",
- "shift": "string",
- "targetFlux": "string",
- "platform": "507f191e810c19729de860ea",
- "metadata": {
- "exampleKey": "example value"
}, - "labelsAndSkills": [
- "string"
], - "date": "2019-03-13T12:34:56.012Z",
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "hub": {
- "_id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "startTime": "2019-03-13T12:34:56.012Z",
- "endTime": "2019-03-13T12:34:56.012Z",
- "validated": true,
- "totalViolationTime": 0,
- "totalWaitTime": 0,
- "totalDistance": 0,
- "totalTravelTime": 0,
- "totalBreakServiceTime": 0,
- "totalOrderServiceTime": 0,
- "totalTime": 0,
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "totalCost": 0,
- "orderCount": 0,
- "updated": "2019-03-13T12:34:56.012Z",
- "reloads": [
- "string"
], - "flux": "5c3c63f23b37f30c4fd0240e",
- "id": "507f191e810c19729de860ea",
- "orderDone": 0,
- "senders": [
- {
- "name": "ExoCraft Productions",
- "reference": "5c3c615d3b37f30b3fc0240c",
- "count": 1,
- "_id": "string"
}
], - "picture": "string",
- "driver": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "stops": [
- {
- "stopType": 0,
- "type": "hub",
- "stopSequence": 1,
- "travelDistance": 0,
- "arriveTime": "2019-03-13T12:34:56.012Z",
- "departTime": "2019-03-13T12:34:56.012Z",
- "parcel": "507f191e810c19729de860ea",
- "sequence": 0,
- "taskId": "string",
- "taskReference": "task-ref-001-d",
- "violationTime": 0,
- "waitTime": 0,
- "serviceTime": 0,
- "travelTime": 0,
- "coordinates": [
- 0
]
}
], - "delay": {
- "time": 1567000,
- "when": "2019-04-01T08:31:05.121Z"
}, - "vehicle": {
- "name": "string",
- "id": "507f191e810c19729de860ea",
- "_id": "507f191e810c19729de860ea"
}
}
This endpoint allows you to create rounds based on preset tasks. As a user, you are responsible to provide the exact information required for the round.
This is useful, when you have your own optimization system and you want the results of your optimization to be reflected in Urbantz.
To use it, you have to provide an ordered list of stops for the round.
roundName | string <string> The round name to create. example: |
date | string <date> The day to create the round. If omitted, the system will try to use the date given in example: |
startTime | string <date-time> The start time of the round. The value must be an ISO 8601 date time string. This value can be omitted if When omitted, the system will try to use the example: |
endTime | string <date-time> The end time of the round. The value must be an ISO 8601 date time string. This value can be omitted if When omitted, the system will try to use the example: |
driver | string <string> Use the This value is optional unless you use a stop of type |
vehicle | string <string> Use the vehicle name to assign a specific vehicle to the round. This value is optional. example: |
hub | string <string> Use This value is mandatory if you use a stop of type hub. example: |
Array of objects The ordered list of stops to include in the round. |
[- {
- "roundName": "ROUND_FROM_HUB",
- "date": "2021-02-14",
- "startTime": "2021-02-14T09:00:00.000Z",
- "endTime": "2021-02-14T10:30:00.000Z",
- "hub": "hub_1",
- "stops": [
- {
- "type": "hub",
- "arriveTime": "2021-02-14T09:00:00.000Z"
}, - {
- "type": "pickup",
- "id": "5ffeb8445389a819937a095e",
- "arriveTime": "2021-02-14T09:15:00.000Z"
}, - {
- "type": "break",
- "arriveTime": "2021-02-14T09:30:00.000Z",
- "duration": 15,
- "location": [
- 48.8583701,
- 2.2922926
]
}, - {
- "type": "delivery",
- "id": "5ffeb8445389a819937a095f",
- "arriveTime": "2021-02-14T10:00:00.000Z"
}, - {
- "type": "hub",
- "arriveTime": "2021-02-14T10:30:00.000Z"
}
]
}, - {
- "roundName": "ROUND_FROM_DRIVER'S_HOME",
- "date": "2021-02-14",
- "startTime": "2021-02-14T08:45:00.000Z",
- "endTime": "2021-02-14T14:00:00.000Z",
- "stops": [
- {
- "type": "driver",
- "arriveTime": "2021-02-14T08:45:00.000Z"
}, - {
- "type": "pickup",
- "taskId": 11223344,
- "arriveTime": "2021-02-14T09:15:00.000Z"
}, - {
- "type": "break",
- "arriveTime": "2021-02-14T09:30:00.000Z",
- "duration": 15,
- "location": [
- 48.8583701,
- 2.2922926
]
}, - {
- "type": "delivery",
- "taskId": 11223344,
- "arriveTime": "2021-02-14T10:00:00.000Z"
}, - {
- "type": "driver",
- "arriveTime": "2021-02-14T14:00:00.000Z"
}
]
}, - {
- "roundName": "ROUND_FROM_FIRST_AND_LAST_TASK",
- "date": "2021-02-14",
- "startTime": "2021-02-14T08:30:00.000Z",
- "endTime": "2021-02-14T11:30:00.000Z",
- "stops": [
- {
- "type": "pickup",
- "id": "5ffeb8445389a819937a096a",
- "arriveTime": "2021-02-14T08:30:00.000Z"
}, - {
- "type": "break",
- "arriveTime": "2021-02-14T09:30:00.000Z",
- "duration": 15,
- "location": [
- 48.8583701,
- 2.2922926
]
}, - {
- "type": "delivery",
- "id": "5ffeb8445389a819937a096b",
- "arriveTime": "2021-02-14T11:30:00.000Z"
}
]
}, - {
- "roundName": "INVALID_ROUND_EXAMPLE_DATE",
- "date": "1970-01-01",
- "startTime": "1970-01-01T08:00:00.000Z",
- "endTime": "1970-01-01T12:00:00.000Z",
- "stops": [
- {
- "type": "pickup",
- "id": "5ffeb8445389a819937a096c",
- "arriveTime": "2021-02-14T08:30:00.000Z"
}, - {
- "type": "break",
- "arriveTime": "2021-02-14T09:30:00.000Z",
- "duration": 15,
- "location": [
- 48.8583701,
- 2.2922926
]
}, - {
- "type": "delivery",
- "id": "5ffeb8445389a819937a096d",
- "arriveTime": "2021-02-14T11:30:00.000Z"
}
]
}, - {
- "roundName": "INVALID_ROUND_EXAMPLE_TASK",
- "date": "2021-02-14",
- "startTime": "2021-02-14T08:30:00.000Z",
- "endTime": "2021-02-14T11:30:00.000Z",
- "stops": [
- {
- "type": "pickup",
- "id": "5ffeb8445389a819937a096c",
- "arriveTime": "2021-02-14T08:30:00.000Z"
}, - {
- "type": "break",
- "arriveTime": "2021-02-14T09:30:00.000Z",
- "duration": 15,
- "location": [
- 48.8583701,
- 2.2922926
]
}, - {
- "type": "delivery",
- "id": "an_invalid_id",
- "arriveTime": "2021-02-14T11:30:00.000Z"
}
]
}
]
[- {
- "round": "ROUND_FROM_HUB",
- "errors": 0,
- "warnings": [ ],
- "orders": [
- "5ffeb8445389a819937a095e",
- "5ffeb8445389a819937a095f"
], - "message": "ROUND_FROM_HUB successfully created."
}, - {
- "round": "ROUND_FROM_DRIVER'S_HOME",
- "errors": 0,
- "warnings": [ ],
- "orders": [
- "5ffeb8445389a819937a095a",
- "5ffeb8445389a819937a09b"
], - "message": "ROUND_FROM_DRIVER'S_HOME successfully created."
}, - {
- "round": "ROUND_FROM_FIRST_AND_LAST_TASK",
- "errors": 0,
- "warnings": [ ],
- "orders": [
- "5ffeb8445389a819937a096a",
- "5ffeb8445389a819937a096b"
], - "message": "ROUND_FROM_FIRST_AND_LAST_TASK successfully created."
}, - {
- "round": "INVALID_ROUND_EXAMPLE_DATE",
- "errors": 0,
- "warnings": [
- {
- "code": "000-014",
- "message": "Invalid parameter providen. startTime must be for the current day or in the future",
- "details": [ ]
}, - {
- "code": "000-014",
- "message": "Invalid parameter providen. endTime must be for the current day or in the future",
- "details": [ ]
}, - {
- "code": "000-014",
- "message": "Invalid parameter providen. arriveTime for the first order must be filled with the same value as the round startTime",
- "details": [
- "arriveTime of the first stop must have the same value than the round startTime."
]
}, - {
- "code": "000-014",
- "message": "Invalid parameter providen. arriveTime for the last order must be filled with the same value as the round endTime",
- "details": [
- "arriveTime of the last stop must have the same value than the round endTime."
]
}
], - "message": "INVALID_ROUND_EXAMPLE_DATE creation aborted. Please check data."
}, - {
- "round": "INVALID_ROUND_EXAMPLE_TASK",
- "errors": 1,
- "warnings": [
- {
- "code": "001-003",
- "message": "Task Does Not Exist: The task:'an_invalid_id' could not be found in database.",
- "details": [ ]
}
], - "message": "INVALID_ROUND_EXAMPLE_TASK creation aborted. Please check data."
}
]
Get the real distance travelled by the driver during the round as calculated using GPS points collected while the driver is en route. This is only available after a round completes.
id required | string (ID) Example: 507f191e810c19729de860ea The round identifier |
{- "realDistanceInMeter": 0,
- "confidenceLevel": "HIGH",
- "when": "2019-03-13T12:34:56.012Z"
}
Get metrics about green house gases that were emitted during the round while the driver is en route. This is only available after a round completes.
id required | string (ID) Example: 507f191e810c19729de860ea The round identifier |
{- "totalCo2Emission": 0,
- "totalDistanceInMeter": 0,
- "distanceType": "REAL",
- "vehicleType": "string",
- "energyType": "string",
- "when": "2019-03-13T12:34:56.012Z",
- "roundStartDate": "2019-03-13T12:34:56.012Z",
- "roundEndDate": "2019-03-13T12:34:56.012Z",
- "co2EmissionPerTask": [
- {
- "id": "string",
- "weightInKg": 0,
- "defaultWeightUsed": true,
- "co2Emission": 0,
- "accuracy": "string"
}
]
}
Rename rounds. Only 100 rounds can be updated per request.
roundId required | string The round identifier. |
name required | string <= 15 characters The new name that you want to assign to the round. Not allowed to use names that are already in use by active rounds on the same platform when round numbering per hub is disabled. Not allowed to use names that are already in use by active rounds of the same hub when round numbering for that hub is enabled. Ongoing or completed rounds cannot be updated. |
[- {
- "roundId": "5ffeb8445389a819937a095f",
- "name": "newRoundName1"
}, - {
- "roundId": "5ffeb8445389a819937a096b",
- "name": "newRoundName2"
}
]
Shift rounds start time. Only 100 rounds can be updated per request.
roundId required | string The round identifier. |
startTime required | string <date> The new start time that you want to assign to the round. The round start time can be updated multiple times. The new start time cannot fall on or after the original start time (start time when round is created), both on the first and later shifts. The new start time cannot fall more than 24 hours in the past compared to the moment the request is made. The new start time must fall on the same day as the round deliveries unless "long services" is enabled for the platform. Ongoing or completed rounds cannot be updated. |
[- {
- "roundId": "5ffeb8445389a819937a095f",
- "startTime": "1970-01-01T08:00:00.000Z"
}, - {
- "roundId": "5ffeb8445389a819937a096b",
- "startTime": "1970-01-01T10:30:00.000Z"
}
]
A task can either be a pickup
, or a delivery
. Each task has its own metadata, items, products, and so on. A group of one pickup task and one delivery task is called an Order
.
Multiple tasks can be assigned to a Round
to be picked up and/or delivered.
Retrieves a (paginated) list of all tasks for the platform.
You can combine query parameters in order to reduce the potential results.
page | number (Page) Default: 0 The page index of the requested records |
pageSize | number <= 500 Default: 10 The page size of the requested records. It has a limit of 500, i.e. if you provide a value greater than 500, maximum 500 records will be returned. |
taskId | string The external task id to search for |
taskReference | string (TaskReference) <= 256 characters Example: taskReference=task-ref-001-d The secondary task id to search for |
hub | string (ID) Example: hub=507f191e810c19729de860ea The ID of the hub to which the task has been assigned |
date | string <date> Example: date=2022-09-03 The date the task needs to be executed, in the format YYYY-MM-DD. If the |
round | string (ID) Example: round=507f191e810c19729de860ea The round id to which the task was assigned |
full | string Full text search on contact details or address details |
announcement | string (ID) Example: announcement=507f191e810c19729de860ea The announcement id associated with the tasks |
unplanned | boolean Get the tasks without date. It overrides the date parameter of the query. |
progress | string (TaskProgress) Enum: "ANNOUNCED" "ASSIGNED" "COMPLETED" "DISCARDED" "ERROR" "GEOCODED" "MISSING" "ONGOING" "READY_TO_COLLECT" "UNPLANNED" Search based on progress of the task |
[- {
- "_id": "string",
- "zone": "string",
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "507f191e810c19729de860ea",
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "source": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "driver": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "ANNOUNCED",
- "by": "string"
}
], - "alert": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "service": "B2B",
- "assets": {
- "deliver": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
], - "return": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
]
}, - "returnedProducts": [
- {
- "_id": "507f191e810c19729de860ea",
- "barcode": "5410078235370",
- "description": "Soft",
- "name": "Coca Cola zero SG 20clx24",
- "productId": "001234",
- "type": "Food",
- "unitPrice": 13.95,
- "quantity": 3
}
]
}
]
This endpoint allows you to announce tasks for execution by a platform you are entitled to use. As a task sender, you are configured to send tasks to one or more logistics or servicing platforms.
The announcement is an asynchronous process; If you wish to know what is the status of the announcement you made, you can query it using our retrieve announcements endpoint. You can also configure an endpoint to send a callback (webhook) once the announcement is completed.
For more information, please refer to the How to use WebHooks documentation section of this documentation.
type | string (TaskType) Enum: "delivery" "pickup" The type of task to be performed |
taskId | string (TaskId) Your own task identifier. This enables you to use your backend (ERP, CMS, ...) system identifier. |
taskReference | string (TaskReference) <= 256 characters A secondary task identifier to use for mapping data between systems. |
Array of objects (AnnounceTaskProductsArray) A list of products that the delivery will include | |
hasBeenPaid | boolean |
object (TaskNotificationSettings) Notification settings for this task | |
carrier | string <= 128 characters Identifier of the carrier to which the task will be associated. If the identifier is not valid, the task won't be associated to any carrier. |
client | string The value provided here will depend on the option selected in the flow configuration.
If the value provided doesn't match any of the rules, the sender associated to the "secret" value provided in the headers will be used. Important note: If the sender in the announcement does not match any of our record, then the sender associated to the "secret" value provided in the headers will be used. |
collectedAmount | number >= 0 The amount of money the driver collected while delivering the goods |
price | number >= 0 |
round | string |
sequence | integer >= 1 |
instructions | string (Instructions) <= 1024 characters Extra information for the driver to reach the destination |
date | string <date-time> |
serviceTime | integer (ServiceTime) [ 0 .. 18000 ] The amount of time in minutes required to effectively complete the task. It cannot be modified once the task is assigned to a round |
maxTransitTime | integer (MaxTransitTime) >= 0 The maximum transit time in minutes. The transit time is the duration from the departure time of the pickup to the arrival time at the delivery. |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (Contact) | |
required | object (AnnouncedAddress) |
Array of objects (AnnouncedItem) | |
object (Requirements) Required actions in the mobile application. It cannot be modified once the task is assigned to a round | |
object (Metadata) A general-purpose mechanism to store additional data. At the task level, metadata can be made explicit with a base schema in order to push or capture information during the execution of the task. Ask for support if you believe this can enhance your use case. Note: New metadata are merged with the existing one when updating a task | |
categories | Array of strings (Categories) Categories are labels assigned to tasks. They can be used to collect delivery preferences in the tracking page or to show information on the driver app as icons. |
category | string (Category) Deprecated [This field will be removed on 21/08/2023] In specific cases, can be used as an alternative to flux, but such use could have a performance cost. |
object (Collect) The click and collect information | |
timeslotReservationId | string (TimeslotReservationId) Internal identifier to associate a task to a timeslot reservation |
priority | number >= 0 Priority can influence the result optimization. In case not all of the tasks can fit in the round(s), the tasks with a higher priority are more likely to be included than the ones with lower priority. The higher the number, the higher the priority of the task will be. |
[- {
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasBeenPaid": false,
- "notificationSettings": {
- "sms": false,
- "email": false
}, - "carrier": "string",
- "client": "00014",
- "collectedAmount": 0,
- "price": 0,
- "round": "R01",
- "sequence": 1,
- "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "date": "2019-03-13T12:34:56.012Z",
- "serviceTime": 5,
- "maxTransitTime": 0,
- "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "address": {
- "building": "Villa Delaroche",
- "number": "31-A",
- "street": "Aberdeen St.",
- "city": "Brussels",
- "zip": "1050",
- "country": "BE",
- "longitude": "50.165168",
- "latitude": "17.1135468",
- "addressLines": [
- "string"
]
}, - "items": [
- {
- "type": "string",
- "name": "string",
- "description": "string",
- "barcode": "string",
- "barcodeEncoding": "CODE128",
- "reference": "string",
- "quantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "categories": [
- "B2B"
], - "category": "B2B",
- "collect": {
- "activated": true,
- "point": "point1",
- "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}
}, - "timeslotReservationId": "string",
- "priority": 0
}
]
{- "announcement": "string",
- "received": 0,
- "time": "2019-03-13T12:34:56.012Z"
}
Fetches information about a specific task, based on its internal identifier.
id required | string (ID) Example: 507f191e810c19729de860ea The task id |
{- "createdBy": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "__v": 0,
- "_id": "string",
- "initialSequence": 0,
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "extTrackId": "ext-12345",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "R01",
- "archived": false,
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "endpoint": "5c3c645e3b37f30b3fc0240f",
- "errorLocation": {
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}
}, - "customerCalls": [
- {
- "when": "2019-03-13T12:34:56.012Z",
- "by": "string"
}
], - "issues": [
- {
- "type": "GEOCODING",
- "code": 0,
- "line": 0,
- "error": "string"
}
], - "notifications": [
- {
- "notificationId": "string",
- "sentDate": "2019-12-23T12:34:56.123Z",
- "by": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}
}
], - "notificationSettings": {
- "sms": false,
- "email": false
}, - "optimizationGroup": "string",
- "optimizationCount": 0,
- "replanned": false,
- "sourceHash": "string",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "realServiceTime": {
- "serviceTime": 120,
- "tasksDeliveredInSameStop": 1,
- "confidence": "HIGH",
- "version": 2
}, - "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "stopSequence": 2,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "source": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "driver": "5c98f80a6b3dc61664c05cbb",
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "ANNOUNCED",
- "by": "string"
}
], - "alerts": {
- "driverRefused": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "pendingAcceptance": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "exception": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "outOfTime": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "driverLate": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "contactless": {
- "pin": 7270
}, - "assets": {
- "deliver": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
], - "return": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
]
}, - "attachments": [
- {
- "_id": "5f9af33b4f8cc32e047d83b2",
- "name": "Delivery Note",
- "url": "/attachments/tasks/5c3c63c23c32c30cb3cc1234c/af6227d6-f915-4924-8873-98da8131df3a.pdf"
}
], - "brandingTemplate": "010101_FR"
}
Updates a task after it has been announced, based on its internal identifier.
It is not needed to send the complete task every time, only the fields that are to be updated. Items must be sent as a whole, therefore, all the properties of the items are required in each time an item is updated.
When providing items
, it is possible to update or replace them. When updating the items, they will keep the history logs and the timeslot availability won't be recalculated (unless dimensions or labels are changed). When replacing them, the items will be reset, and the timeslot availability will be recalculated. To avoid replacing the items, it is required to provide _id
.
Note that the update of some fields is only possible if the task has not already been assigned to a round. Some fields can no longer be updated once a task has its progress
property set to COMPLETED
.
id required | string (ID) Example: 507f191e810c19729de860ea The task internal identifier |
taskId | string (TaskId) Your own task identifier. This enables you to use your backend (ERP, CMS, ...) system identifier. |
taskReference | string (TaskReference) <= 256 characters A secondary task identifier to use for mapping data between systems. |
paymentType | string Enum: "CCOD" "COD" "(null value)" |
skills | Array of strings (Skills) |
Array of objects (TaskProductsArray) A list of products that the delivery will include | |
activity | string The type of activity |
sequence | integer >= 1 |
collectedAmount | number >= 0 The amount of money the driver collected while delivering the goods |
serviceTime | integer (ServiceTime) [ 0 .. 18000 ] The amount of time in minutes required to effectively complete the task. It cannot be modified once the task is assigned to a round |
maxTransitTime | integer (MaxTransitTime) >= 0 The maximum transit time in minutes. The transit time is the duration from the departure time of the pickup to the arrival time at the delivery. |
timeWindowMargin | number >= 0 Default: 0 A margin in minutes to the time window which is deemed acceptable |
labels | Array of strings (Labels) |
instructions | string (Instructions) <= 1024 characters Extra information for the driver to reach the destination |
object (Metadata) A general-purpose mechanism to store additional data. At the task level, metadata can be made explicit with a base schema in order to push or capture information during the execution of the task. Ask for support if you believe this can enhance your use case. Note: New metadata are merged with the existing one when updating a task | |
object (Dimensions) An object of key-value pairs where the key represents the dimension type (such as weight or volume) and the value the corresponding dimensional value. For the keys, only dimensions which have been defined on the Platform can be used. For values, up to 6 decimals are taken into account, extra decimals are truncated. | |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (Contact) | |
object (Address) | |
object (SourceAddress) | |
hasBeenPaid | boolean |
price | number >= 0 |
Array of objects (Item) | |
object (Requirements) Required actions in the mobile application. It cannot be modified once the task is assigned to a round | |
object (TaskExecution) | |
Array of objects (CategoriesDetails) Deprecated [This field will be removed on 21/08/2023] In specific cases, can be used as an alternative to flux, but such use could have a performance cost. | |
categories | Array of strings (Categories) Categories are labels assigned to tasks. They can be used to collect delivery preferences in the tracking page or to show information on the driver app as icons. |
category | string (Category) Deprecated [This field will be removed on 21/08/2023] In specific cases, can be used as an alternative to flux, but such use could have a performance cost. |
object (TaskNotificationSettings) Notification settings for this task | |
object (Collect) The click and collect information | |
Array of objects (TaskReturnedProductsArray) An array containing a list of the returned products for this task | |
priority | number >= 0 Priority can influence the result optimization. In case not all of the tasks can fit in the round(s), the tasks with a higher priority are more likely to be included than the ones with lower priority. The higher the number, the higher the priority of the task will be. |
brandingTemplate | string The branding template code for this task. |
recalculateServiceTime | boolean Default: false Recalculates service time based on preconfigured service time rules. |
{- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "paymentType": "CCOD",
- "skills": [
- "speaks_french"
], - "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "activity": "classic",
- "sequence": 1,
- "collectedAmount": 0,
- "serviceTime": 5,
- "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "address": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "notificationSettings": {
- "sms": false,
- "email": false
}, - "collect": {
- "activated": true,
- "point": "point1",
- "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}
}, - "returnedProducts": [
- {
- "_id": "507f191e810c19729de860ea",
- "barcode": "5410078235370",
- "description": "Soft",
- "name": "Coca Cola zero SG 20clx24",
- "productId": "001234",
- "type": "Food",
- "unitPrice": 13.95,
- "quantity": 3
}
], - "priority": 0,
- "brandingTemplate": "010101_FR",
- "recalculateServiceTime": false
}
{- "createdBy": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "__v": 0,
- "_id": "string",
- "initialSequence": 0,
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "extTrackId": "ext-12345",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "R01",
- "archived": false,
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "endpoint": "5c3c645e3b37f30b3fc0240f",
- "errorLocation": {
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}
}, - "customerCalls": [
- {
- "when": "2019-03-13T12:34:56.012Z",
- "by": "string"
}
], - "issues": [
- {
- "type": "GEOCODING",
- "code": 0,
- "line": 0,
- "error": "string"
}
], - "notifications": [
- {
- "notificationId": "string",
- "sentDate": "2019-12-23T12:34:56.123Z",
- "by": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}
}
], - "notificationSettings": {
- "sms": false,
- "email": false
}, - "optimizationGroup": "string",
- "optimizationCount": 0,
- "replanned": false,
- "sourceHash": "string",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "realServiceTime": {
- "serviceTime": 120,
- "tasksDeliveredInSameStop": 1,
- "confidence": "HIGH",
- "version": 2
}, - "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "stopSequence": 2,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "source": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "driver": "5c98f80a6b3dc61664c05cbb",
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "ANNOUNCED",
- "by": "string"
}
], - "alerts": {
- "driverRefused": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "pendingAcceptance": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "exception": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "outOfTime": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "driverLate": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "contactless": {
- "pin": 7270
}, - "assets": {
- "deliver": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
], - "return": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
]
}, - "attachments": [
- {
- "_id": "5f9af33b4f8cc32e047d83b2",
- "name": "Delivery Note",
- "url": "/attachments/tasks/5c3c63c23c32c30cb3cc1234c/af6227d6-f915-4924-8873-98da8131df3a.pdf"
}
], - "brandingTemplate": "010101_FR"
}
Updates a task after it has been announced, based on its taskId. It requires the taskId to be unique, otherwise the update will be rejected.
It is not needed to send the complete task every time, only the fields that are to be updated. Items must be sent as a whole, therefore, all the properties of the items are required in each time an item is updated.
When providing items
, it is possible to update or replace them. When updating the items, they will keep the history logs and the timeslot availability won't be recalculated (unless dimensions or labels are changed). When replacing them, the items will be reset, and the timeslot availability will be recalculated. To avoid replacing the items, it is required to provide _id
.
Note that the update of some fields is only possible if the task has not already been assigned to a round. Some fields can no longer be updated once a task has its progress
property set to COMPLETED
.
taskId required | string (TaskId) Example: my-task-id The taskId |
taskId | string (TaskId) Your own task identifier. This enables you to use your backend (ERP, CMS, ...) system identifier. |
taskReference | string (TaskReference) <= 256 characters A secondary task identifier to use for mapping data between systems. |
paymentType | string Enum: "CCOD" "COD" "(null value)" |
skills | Array of strings (Skills) |
Array of objects (TaskProductsArray) A list of products that the delivery will include | |
activity | string The type of activity |
sequence | integer >= 1 |
collectedAmount | number >= 0 The amount of money the driver collected while delivering the goods |
serviceTime | integer (ServiceTime) [ 0 .. 18000 ] The amount of time in minutes required to effectively complete the task. It cannot be modified once the task is assigned to a round |
maxTransitTime | integer (MaxTransitTime) >= 0 The maximum transit time in minutes. The transit time is the duration from the departure time of the pickup to the arrival time at the delivery. |
timeWindowMargin | number >= 0 Default: 0 A margin in minutes to the time window which is deemed acceptable |
labels | Array of strings (Labels) |
instructions | string (Instructions) <= 1024 characters Extra information for the driver to reach the destination |
object (Metadata) A general-purpose mechanism to store additional data. At the task level, metadata can be made explicit with a base schema in order to push or capture information during the execution of the task. Ask for support if you believe this can enhance your use case. Note: New metadata are merged with the existing one when updating a task | |
object (Dimensions) An object of key-value pairs where the key represents the dimension type (such as weight or volume) and the value the corresponding dimensional value. For the keys, only dimensions which have been defined on the Platform can be used. For values, up to 6 decimals are taken into account, extra decimals are truncated. | |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (Contact) | |
object (Address) | |
object (SourceAddress) | |
hasBeenPaid | boolean |
price | number >= 0 |
Array of objects (Item) | |
object (Requirements) Required actions in the mobile application. It cannot be modified once the task is assigned to a round | |
object (TaskExecution) | |
Array of objects (CategoriesDetails) Deprecated [This field will be removed on 21/08/2023] In specific cases, can be used as an alternative to flux, but such use could have a performance cost. | |
categories | Array of strings (Categories) Categories are labels assigned to tasks. They can be used to collect delivery preferences in the tracking page or to show information on the driver app as icons. |
category | string (Category) Deprecated [This field will be removed on 21/08/2023] In specific cases, can be used as an alternative to flux, but such use could have a performance cost. |
object (TaskNotificationSettings) Notification settings for this task | |
object (Collect) The click and collect information | |
Array of objects (TaskReturnedProductsArray) An array containing a list of the returned products for this task | |
priority | number >= 0 Priority can influence the result optimization. In case not all of the tasks can fit in the round(s), the tasks with a higher priority are more likely to be included than the ones with lower priority. The higher the number, the higher the priority of the task will be. |
brandingTemplate | string The branding template code for this task. |
recalculateServiceTime | boolean Default: false Recalculates service time based on preconfigured service time rules. |
{- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "paymentType": "CCOD",
- "skills": [
- "speaks_french"
], - "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "activity": "classic",
- "sequence": 1,
- "collectedAmount": 0,
- "serviceTime": 5,
- "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "address": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "notificationSettings": {
- "sms": false,
- "email": false
}, - "collect": {
- "activated": true,
- "point": "point1",
- "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}
}, - "returnedProducts": [
- {
- "_id": "507f191e810c19729de860ea",
- "barcode": "5410078235370",
- "description": "Soft",
- "name": "Coca Cola zero SG 20clx24",
- "productId": "001234",
- "type": "Food",
- "unitPrice": 13.95,
- "quantity": 3
}
], - "priority": 0,
- "brandingTemplate": "010101_FR",
- "recalculateServiceTime": false
}
{- "createdBy": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "__v": 0,
- "_id": "string",
- "initialSequence": 0,
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "extTrackId": "ext-12345",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "R01",
- "archived": false,
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "endpoint": "5c3c645e3b37f30b3fc0240f",
- "errorLocation": {
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}
}, - "customerCalls": [
- {
- "when": "2019-03-13T12:34:56.012Z",
- "by": "string"
}
], - "issues": [
- {
- "type": "GEOCODING",
- "code": 0,
- "line": 0,
- "error": "string"
}
], - "notifications": [
- {
- "notificationId": "string",
- "sentDate": "2019-12-23T12:34:56.123Z",
- "by": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}
}
], - "notificationSettings": {
- "sms": false,
- "email": false
}, - "optimizationGroup": "string",
- "optimizationCount": 0,
- "replanned": false,
- "sourceHash": "string",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "realServiceTime": {
- "serviceTime": 120,
- "tasksDeliveredInSameStop": 1,
- "confidence": "HIGH",
- "version": 2
}, - "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "stopSequence": 2,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "source": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "driver": "5c98f80a6b3dc61664c05cbb",
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "ANNOUNCED",
- "by": "string"
}
], - "alerts": {
- "driverRefused": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "pendingAcceptance": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "exception": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "outOfTime": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "driverLate": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "contactless": {
- "pin": 7270
}, - "assets": {
- "deliver": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
], - "return": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
]
}, - "attachments": [
- {
- "_id": "5f9af33b4f8cc32e047d83b2",
- "name": "Delivery Note",
- "url": "/attachments/tasks/5c3c63c23c32c30cb3cc1234c/af6227d6-f915-4924-8873-98da8131df3a.pdf"
}
], - "brandingTemplate": "010101_FR"
}
Cancels a task execution, based on the task internal identifier. This requires the task to not be in a round yet. To force the discard if the task is in a round, please see the removeFromRound
optional query parameter.
id required | string (ID) Example: 507f191e810c19729de860ea The database ID of the task to discard. |
removeFromRound | boolean Set to true if the task should be removed from its current round before being discarded. When set to false the API will reject requests to discard tasks that are assigned to a round. Defaults to false. |
{- "createdBy": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "__v": 0,
- "_id": "string",
- "initialSequence": 0,
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "extTrackId": "ext-12345",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "R01",
- "archived": false,
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "endpoint": "5c3c645e3b37f30b3fc0240f",
- "errorLocation": {
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}
}, - "customerCalls": [
- {
- "when": "2019-03-13T12:34:56.012Z",
- "by": "string"
}
], - "issues": [
- {
- "type": "GEOCODING",
- "code": 0,
- "line": 0,
- "error": "string"
}
], - "notifications": [
- {
- "notificationId": "string",
- "sentDate": "2019-12-23T12:34:56.123Z",
- "by": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}
}
], - "notificationSettings": {
- "sms": false,
- "email": false
}, - "optimizationGroup": "string",
- "optimizationCount": 0,
- "replanned": false,
- "sourceHash": "string",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "realServiceTime": {
- "serviceTime": 120,
- "tasksDeliveredInSameStop": 1,
- "confidence": "HIGH",
- "version": 2
}, - "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "stopSequence": 2,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "source": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "driver": "5c98f80a6b3dc61664c05cbb",
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "ANNOUNCED",
- "by": "string"
}
], - "alerts": {
- "driverRefused": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "pendingAcceptance": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "exception": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "outOfTime": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "driverLate": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "contactless": {
- "pin": 7270
}, - "assets": {
- "deliver": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
], - "return": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
]
}, - "attachments": [
- {
- "_id": "5f9af33b4f8cc32e047d83b2",
- "name": "Delivery Note",
- "url": "/attachments/tasks/5c3c63c23c32c30cb3cc1234c/af6227d6-f915-4924-8873-98da8131df3a.pdf"
}
], - "brandingTemplate": "010101_FR"
}
Cancels a task execution, based on the TaskId. This requires the task to not be in a round yet. To force the discard if the task is in a round, please see the removeFromRound
optional query parameter.
Please note that it requires the taskId to be the only one without a discarded status active. If multiple tasks have the same taskId for and aren't discarded or completed, this call will fail and tell you to use the ID as there is an ambiguity. A list of IDs will be given to you to compare the tasks having the same TaskId.
taskId required | string (TaskId) Example: my-task-id The taskId of the task to discard. |
removeFromRound | boolean Set to true if the task should be removed from its current round before being discarded. When set to false the API will reject requests to discard tasks that are assigned to a round. Defaults to false. |
{- "createdBy": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "__v": 0,
- "_id": "string",
- "initialSequence": 0,
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "extTrackId": "ext-12345",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "R01",
- "archived": false,
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "endpoint": "5c3c645e3b37f30b3fc0240f",
- "errorLocation": {
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}
}, - "customerCalls": [
- {
- "when": "2019-03-13T12:34:56.012Z",
- "by": "string"
}
], - "issues": [
- {
- "type": "GEOCODING",
- "code": 0,
- "line": 0,
- "error": "string"
}
], - "notifications": [
- {
- "notificationId": "string",
- "sentDate": "2019-12-23T12:34:56.123Z",
- "by": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}
}
], - "notificationSettings": {
- "sms": false,
- "email": false
}, - "optimizationGroup": "string",
- "optimizationCount": 0,
- "replanned": false,
- "sourceHash": "string",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "realServiceTime": {
- "serviceTime": 120,
- "tasksDeliveredInSameStop": 1,
- "confidence": "HIGH",
- "version": 2
}, - "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "stopSequence": 2,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "contact": {
- "account": "ACC123456789",
- "name": "Acme Inc.",
- "person": "Paco Jones",
- "phone": "+32 477 99 99 99",
- "extraPhones": [
- "+32 477 99 99 99"
], - "language": "fr",
- "buildingInfo": {
- "floor": 5,
- "hasElevator": true,
- "digicode1": "1234A",
- "digicode2": "4321A",
- "hasInterphone": true,
- "interphoneCode": "4524#"
}
}, - "location": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "city": "Brussels",
- "zip": "1050",
- "origin": "ADDRESS_BOOK",
- "country": "Belgium",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 avenue louise, 1050 Brussels, Belgium",
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "countryCode": "BEL"
}, - "source": {
- "building": "A cool building name",
- "number": "251",
- "street": "Avenue Louise",
- "location": {
- "geometry": [
- 0
], - "type": "Point"
}, - "address": "251 Avenue Louise, 1050 BRUXELLES, BELGIQUE",
- "city": "Brussels",
- "zip": "1050",
- "country": "Belgium",
- "geocodeScore": 98,
- "addressLines": [
- "251 Avenue Louise",
- "1050 Brussels",
- "Belgium"
]
}, - "hasBeenPaid": false,
- "price": 0,
- "driver": "5c98f80a6b3dc61664c05cbb",
- "items": [
- {
- "_id": "507f191e810c19729de860ea",
- "type": "Box",
- "status": "ARRIVED",
- "name": "Soft Drink 6 pack",
- "description": "Big box with a red mark on the top",
- "barcode": 9876543211234,
- "barcodeEncoding": "CODE128",
- "reference": 9876543211234,
- "quantity": 1,
- "processedQuantity": 1,
- "dimensions": {
- "weight": 200,
- "volume": 0.2
}, - "damaged": {
- "confirmed": false,
- "pictures": [
- "string"
]
}, - "labels": [
- "frozen"
], - "skills": [
- "speaks_french"
], - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "PENDING",
- "by": "string"
}
], - "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "group": "string"
}
], - "requires": {
- "pickup": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "signature": false,
- "signatureAndComment": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "delivery": {
- "dispatcher": {
- "scan": false
}, - "driver": {
- "contactless": false,
- "prepCheckList": false,
- "prepScan": false,
- "signature": false,
- "signatureAndComment": false,
- "signatureAndItemConcerns": false,
- "scan": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "service": {
- "driver": {
- "signature": false,
- "signatureAndComment": false,
- "comment": false,
- "photo": false
}, - "stop": {
- "onSite": false
}, - "failure": {
- "photo": false
}
}, - "other": {
- "driver": {
- "timer": false
}
}
}, - "execution": {
- "successComment": "string",
- "successPicture": "string",
- "failedReason": {
- "reasonId": "507f191e810c19729de860ea",
- "reason": "string",
- "custom": "string",
- "picture": "string"
}, - "timer": {
- "timestamps": [
- {
- "type": "start",
- "time": "2019-12-23T12:34:56.123Z"
}
]
}, - "signature": {
- "data": "string",
- "name": "string"
}, - "position": {
- "accuracy": 0,
- "altitude": 0,
- "heading": 0,
- "latitude": 50.812345,
- "longitude": 4.312345,
- "speed": 0,
- "timestamp": 1553529404789
}, - "contactless": {
- "forced": true,
- "reason": "string"
}
}, - "log": [
- {
- "_id": "507f191e810c19729de860ea",
- "when": "2019-03-13T12:34:56.012Z",
- "to": "ANNOUNCED",
- "by": "string"
}
], - "alerts": {
- "driverRefused": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "pendingAcceptance": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "exception": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "outOfTime": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}, - "driverLate": {
- "when": "2019-03-13T12:34:56.012Z",
- "solved": "2019-03-13T12:34:56.012Z",
- "data": { }
}
}, - "categoriesDetails": [
- [
- {
- "name": "B2B",
- "description": "desc",
- "icon": "ic_assembly"
}, - {
- "name": "ENG",
- "description": "desc",
- "icon": "ic_assembly"
}
]
], - "categories": [
- "B2B"
], - "category": "B2B",
- "contactless": {
- "pin": 7270
}, - "assets": {
- "deliver": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
], - "return": [
- {
- "assetId": "string",
- "name": "string",
- "price": 0,
- "amount": 0
}
]
}, - "attachments": [
- {
- "_id": "5f9af33b4f8cc32e047d83b2",
- "name": "Delivery Note",
- "url": "/attachments/tasks/5c3c63c23c32c30cb3cc1234c/af6227d6-f915-4924-8873-98da8131df3a.pdf"
}
], - "brandingTemplate": "010101_FR"
}
Replan the failed tasks to another day and time slot. The task must be COMPLETED, and all the items in it must be not delivered or not picked up.
id required | string (ID) Example: 507f191e810c19729de860ea The database ID the task to replan. |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round | |
object (TimeWindow) The time window during which the task should be completed. This field is required if there's a type specified. It cannot be modified once the task is assigned to a round |
{- "timeWindow": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}, - "timeWindow2": {
- "start": "2019-03-13T12:34:56.012Z",
- "stop": "2019-03-13T12:34:56.012Z"
}
}
{- "createdBy": {
- "firstName": "John",
- "lastName": "Doe",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}, - "__v": 0,
- "_id": "string",
- "initialSequence": 0,
- "trackingId": "abcdef-123456-4abc-acbacbfcabcfbcbfbacbfab",
- "extTrackId": "ext-12345",
- "type": "delivery",
- "taskId": "my-task-id",
- "taskReference": "task-ref-001-d",
- "progress": "ANNOUNCED",
- "status": "ARRIVED",
- "client": "507f191e810c19729de860ea",
- "hub": "507f191e810c19729de860ea",
- "hubName": "My Warehouse",
- "associatedName": "Lumikko Oyj",
- "associated": "5c3c63c23c32c30cb3cc1234c",
- "dependency": "507f191e810c19729de860ea",
- "hasDependency": "507f191e810c19729de860ea",
- "round": "R01",
- "archived": false,
- "actualTime": {
- "arrive": {
- "when": "2019-03-24T12:34:56.123Z",
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}, - "forced": false,
- "isCorrectAddress": false
}
}, - "order": "5c98f80a6b3dc61664c05cbf",
- "paymentType": "CCOD",
- "platform": "5c98f80a6b3dc61664c05cbf",
- "platformName": "Cortedal SYS, Oy",
- "endpoint": "5c3c645e3b37f30b3fc0240f",
- "errorLocation": {
- "addressLines": [
- "string"
], - "geocodeScore": 98,
- "location": {
- "type": "Point",
- "geometry": [
- 0
]
}
}, - "customerCalls": [
- {
- "when": "2019-03-13T12:34:56.012Z",
- "by": "string"
}
], - "issues": [
- {
- "type": "GEOCODING",
- "code": 0,
- "line": 0,
- "error": "string"
}
], - "notifications": [
- {
- "notificationId": "string",
- "sentDate": "2019-12-23T12:34:56.123Z",
- "by": {
- "firstName": "John",
- "lastName": "Doe",
- "phoneNumber": "32123123123",
- "picture": "/some/folder/image/c1235b6a253cd12d3",
- "_id": "507f191e810c19729de860ea",
- "id": "507f191e810c19729de860ea",
- "externalId": "string"
}
}
], - "notificationSettings": {
- "sms": false,
- "email": false
}, - "optimizationGroup": "string",
- "optimizationCount": 0,
- "replanned": false,
- "sourceHash": "string",
- "updated": "2019-03-24T12:34:56.123Z",
- "when": "2019-03-24T12:34:56.123Z",
- "targetFlux": "56fe250f1eb3571100bb081c_MORNING_57454b1556950a11005189fa_2017-11-15",
- "skills": [
- "speaks_french"
], - "roundName": "R03",
- "roundColor": "#FFCC0D",
- "products": [
- {
- "productId": "001234",
- "name": "CHEESE",
- "description": "Goat cheese pack, 400gr",
- "type": "food",
- "barcode": "11231212121",
- "quantity": 3,
- "unitPrice": 13.95,
- "isSubstitution": false,
- "quantityRejected": 0,
- "rejectedReason": {
- "_id": "507f191e810c19729de860ea",
- "name": "damaged"
}
}
], - "hasRejectedProducts": false,
- "activity": "classic",
- "sequence": 1,
- "id": "5c98f80a6b3dc61664c05cbb",
- "flux": "5c3c63c23c32c30cb3cc1234c",
- "collectedAmount": 10.2,
- "closureDate": "2019-03-25T15:50:50.123Z",
- "by": "5c3c63c23c32c30cb3cc1234c",
- "attempts": 0,
- "arriveTime": "2019-03-25T15:50:50.123Z",
- "announcement": "507f191e810c19729de860ea",
- "shift": "string",
- "serviceTime": 5,
- "realServiceTime": {
- "serviceTime": 120,
- "tasksDeliveredInSameStop": 1,
- "confidence": "HIGH",
- "version": 2
}, - "maxTransitTime": 0,
- "timeWindowMargin": 0,
- "stopSequence": 2,
- "date": "2019-03-13T12:34:56.012Z",
- "labels": [
- "frozen"
], - "instructions": "Once inside of the building, follow the corridor on the right and take the elevator",
- "metadata": {
- "property1": 23,
- "property2": "Hello World"
}, - "dimensions": {
- "weight": 200,
- "volume