{"info":{"_postman_id":"53038c8c-b075-40cc-80b8-799a8b4d6981","name":"Tesco API Docs","description":"<html><head></head><body><p>Document Version History</p>\n<p>This table shows a record of significant changes to the document.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Revision Date</th>\n<th>New Version</th>\n<th>Details of revisions</th>\n<th>Initials</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>03/03/2020</td>\n<td>v1.0</td>\n<td>Release version</td>\n<td>PB</td>\n</tr>\n<tr>\n<td>29/04/2020</td>\n<td>v1.0.1</td>\n<td>Clarifications to the assignment and deassignment documentation</td>\n<td>JK</td>\n</tr>\n<tr>\n<td>28/07/2020</td>\n<td>v1.0.2</td>\n<td>Croydon store number assignment documented</td>\n<td>PB</td>\n</tr>\n<tr>\n<td>24/08/2020</td>\n<td>v1.0.3</td>\n<td>Updated docs for two new trunk stores following Croydons work packet</td>\n<td>PB</td>\n</tr>\n<tr>\n<td>23/10/2020</td>\n<td>v1.0.4</td>\n<td>Updated docs for driver name to no longer use store and badge number</td>\n<td>PB</td>\n</tr>\n<tr>\n<td>07/11/2022</td>\n<td>v1.0.5</td>\n<td>Additional request fields added to the deassignment endpoint</td>\n<td>JK</td>\n</tr>\n<tr>\n<td>10/02/2023</td>\n<td>v1.0.6</td>\n<td>Added dotcom functionality to deassignment endpoint.</td>\n<td>PB</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"overview\">OVERVIEW</h1>\n<p>Dev API Url: <a href=\"https://devapi.lightfoot.co.uk\">https://devapi.lightfoot.co.uk</a></p>\n<p>API Url: <a href=\"https://data.lightfoot.co.uk\">https://data.lightfoot.co.uk</a></p>\n<p>The Lightfoot Application Programming Interface (API) is a RESTful API, using the Bearer Authentication method from OAuth2. Utilising JSON as the data structure for responses.</p>\n<p>The API is designed to provide customers with direct access to product data held by Lightfoot. This document is aimed at both business and technical users to provide an understanding the data available via the API, and how to obtain it. To cater for these different audiences, this document will provide the following:</p>\n<ul>\n<li><p>Data and functionality available through the API</p>\n</li>\n<li><p>Security and Access to the API functionality</p>\n</li>\n<li><p>How usage of the API is monitored and controlled</p>\n</li>\n</ul>\n<h1 id=\"authentication-and-security\">AUTHENTICATION AND SECURITY</h1>\n<p>The API uses Basic Authentication for all endpoints, and a 2-factor authentication method. All users must log in to obtain a token using their Lightfoot account credentials. Once a token has been obtained, it must then be used for further requests to obtain any data.</p>\n<p>A Lightfoot account is required to login through the API and retrieve data. Please see the /login endpoint for details on how to login, and obtain a session token. Each user can only access data and entities relating to their account privilege.</p>\n<p>All API connections are encrypted using TLS (HTTPS). User sessions timeout after a period of inactivity.</p>\n<p>All successful and unsuccessful logins and usage of the API are recorded for security. Accounts are locked if 8 failed login attempts are made in consecutively, after the account password must be reset within the web portal <a href=\"https://my.lightfoot.co.uk/\">https://my.lightfoot.co.uk/</a>.</p>\n<p>User sessions expire after 1 hour of inactivity. If a session is no longer needed before this time then a request can be sent to the logout endpoint to terminate the current session token. More information is available in the /logout endpoint information.</p>\n<h1 id=\"usage-thresholds\">USAGE THRESHOLDS</h1>\n<p>Usage limits are in place to maintain system load and ensure consistent service for all customers. The standard limit for endpoints is 1 request per second. Exceptions are stated in the individual endpoints’ documentation.</p>\n<p>Should a user reach their limit then the server will issue a 405 response with the ‘Request Limit Exceeded’ message.</p>\n<p>It is the responsibility of each API user to ensure the agreed number of requests is not exceeded. Connections may be throttled or terminated without notice if the limits are exceeded.</p>\n<h1 id=\"data-history\">DATA HISTORY</h1>\n<p>Product usage data is available for 9 weeks from the logged / creation time.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"OVERVIEW","slug":"overview"},{"content":"AUTHENTICATION AND SECURITY","slug":"authentication-and-security"},{"content":"USAGE THRESHOLDS","slug":"usage-thresholds"},{"content":"DATA HISTORY","slug":"data-history"}],"owner":"6999201","collectionId":"53038c8c-b075-40cc-80b8-799a8b4d6981","publishedId":"SzKbNbcL","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"378642"},"publishDate":"2020-03-03T14:50:26.000Z"},"item":[{"name":"/login","event":[{"listen":"prerequest","script":{"id":"2aa70fb1-4d88-46d6-b6ad-ac4c9d764803","exec":[""],"type":"text/javascript"}}],"id":"3b097213-ae5b-4b90-8754-605c868c3a6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{username}}"},{"key":"password","value":"{{password}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"{{url}}/v1/login","description":"<p>Used to authenticate the user. The endpoint will return a Session Id (token) to be used for all future calls to endpoints. The token (user session) expires after 1 hour of inactivity.</p>\n<p>A Lightfoot username and password must be used in the authorisation header on the login Endpoint to receive a session token. For all future requests to the other endpoints, 'bearer' must be used for the username and the token as the password.</p>\n<p>Please note: when the session token expires, the server will return a 403 status response with 'Incorrect user credentials' error message.</p>\n","urlObject":{"path":["v1","login"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"82295c6a-6385-49db-bf5f-49c9252f1182","name":"/login","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Basic ZGVtby5lbWFpbEBkb21haW4uY28udWs6eW91cnBhc3N3b3Jk==","type":"text"}],"url":"https://data.lightfoot.co.uk/v1/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"Connection","value":"Keep-Alive","description":"Options that are desired for the connection"},{"key":"Content-Length","value":"88","description":"The length of the response body in octets (8-bit bytes)"},{"key":"Content-Type","value":"application/json","description":"The mime type of this content"},{"key":"Date","value":"Thu, 27 Sep 2018 13:44:03 GMT","description":"The date and time that the message was sent"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT","description":"Gives the date/time after which the response is considered stale"},{"key":"Keep-Alive","value":"timeout=5, max=100","description":"Custom header"},{"key":"Pragma","value":"no-cache","description":"Implementation-specific headers that may have various effects anywhere along the request-response chain."},{"key":"Server","value":"Apache/2.4.18 (Ubuntu)","description":"A name for the server"}],"cookie":[{"expires":"Invalid Date","httpOnly":false,"domain":"192.168.33.10","path":"/","secure":false,"value":"27s8qknbnv85mccgbe5on44ch2","key":"PHPSESSID"}],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"userID\": 49,\r\n        \"username\": \"Lightfoot Demo\",\r\n        \"vehicleCheckEnabled\": 1,\r\n        \"dashcamEnabled\": null,\r\n\t\t\"userTimezone\": \"Europe/London\",\r\n        \"apiToken\": \"270b1aa9aaa87f20cf5c8bd8ec8900d98f5358bd3e070a1282f70c8a2450833c\"\r\n    }\r\n}"}],"_postman_id":"3b097213-ae5b-4b90-8754-605c868c3a6e"},{"name":"/logout","id":"4bf02c7e-bbfd-451e-9fb1-698f8d88b326","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{username}}"},{"key":"password","value":"{{password}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"{{url}}/v1/logout","description":"<p>Terminates the current user token.</p>\n","urlObject":{"path":["v1","logout"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4bf02c7e-bbfd-451e-9fb1-698f8d88b326"},{"name":"/fleet/assignDriverRetrospectively","id":"1bcdfe2d-6ae9-444e-b07e-02c081452470","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{username}}"},{"key":"password","value":"{{password}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"assignments\": [\n        {\n            \"vrm\": \"ENG08ABC\",\n            \"firstName\": \"Engineering\",\n            \"lastName\": \"Driver1\",\n            \"badgeNum\": \"ENG123\",\n            \"storeNum\": \"111\",\n            \"assignedFromDate\": \"2021-02-05 09:00:00\",\n            \"deassignedFromDate\": \"2021-02-05 13:00:00\"\n        },\n        {\n            \"vrm\": \"ENG08ABC\",\n            \"firstName\": \"Engineering\",\n            \"lastName\": \"Driver8\",\n            \"badgeNum\": \"ENG130\",\n            \"storeNum\": \"111\",\n            \"assignedFromDate\": \"2021-02-05 13:00:00\"\n        }\n    ],\n    \"fleetLevelID\" : 3767\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/v1/fleet/assignDriverRetrospectively","description":"<h2 id=\"endpoint-summary\">Endpoint Summary</h2>\n<p><strong>Purpose:</strong> Assign drivers to vehicles retrospectively using driver names (Tesco-specific format). Processes a batch of assignments.</p>\n<hr />\n<h2 id=\"endpoint-notes\">Endpoint Notes</h2>\n<ul>\n<li><p>Request contains <code>assignments</code> array; each item undergoes parsing and validation, with errors aggregated.</p>\n</li>\n<li><p><code>deassignedFromDate</code> is optional; when omitted or set as string literal <code>\"null\"</code> (case-insensitive), it is treated as null.</p>\n</li>\n<li><p>On any aggregated validation/construction errors, the endpoint throws with a message of all errors prefixed by <code>\"There are errors:\"</code> (one per line).</p>\n</li>\n<li><p>Presenter returns success data; otherwise, an error with appropriate HTTP status and message is returned.</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"http-info\">HTTP Info</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>/v1/fleet/assignDriverRetrospectively</code><br /><strong>Status Codes:</strong> <code>200 OK</code>, <code>4xx</code> (presenter-driven), <code>400 Bad Request</code></p>\n<hr />\n<h2 id=\"request-fields\">Request Fields</h2>\n<h3 id=\"required-body\">Required (Body)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>assignments</code></td>\n<td>array</td>\n<td>Array of assignment objects.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"assignment-object-fields\">Assignment Object Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>vrm</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Vehicle registration (string).</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Driver first name.</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Driver last name.</td>\n</tr>\n<tr>\n<td><code>badgeNum</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Badge number.</td>\n</tr>\n<tr>\n<td><code>storeNum</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Store number.</td>\n</tr>\n<tr>\n<td><code>assignedFromDate</code></td>\n<td>string (datetime)</td>\n<td>yes</td>\n<td>Start datetime (format consumed by PHP DateTime).</td>\n</tr>\n<tr>\n<td><code>deassignedFromDate</code></td>\n<td>string (datetime) or <code>\"null\"</code></td>\n<td>no</td>\n<td>End datetime; if literal <code>\"null\"</code>, treated as null.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"includes\">Includes</h3>\n<p>Not applicable.</p>\n<h3 id=\"filter-fields\">Filter Fields</h3>\n<p>Not applicable.</p>\n<h3 id=\"entity-aliases\">Entity Aliases</h3>\n<p>Not applicable.</p>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"response-notes\">Response Notes</h3>\n<ul>\n<li><p>On success: returns presenter data (implementation-defined fields representing the processed assignments).</p>\n</li>\n<li><p>On presenter error: returns HTTP status and message determined by presenter.</p>\n</li>\n</ul>\n<h3 id=\"example-response-success\">Example Response (success)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"assignments\": [\n            {\n                \"vehicleID\": 26361,\n                \"vrm\": \"ENG08ABC\",\n                \"driverID\": 59705,\n                \"firstName\": \"Engineering\",\n                \"lastName\": \"Driver1\",\n                \"badgeNum\": \"ENG123\",\n                \"storeNum\": \"AB127\",\n                \"assignedFromDate\": \"2020-02-05 09:00:00\",\n                \"deassignedDate\": \"2020-02-05 13:00:00\"\n            },\n            {\n                \"vehicleID\": 26361,\n                \"vrm\": \"ENG08ABC\",\n                \"driverID\": 59700,\n                \"firstName\": \"Engineering\",\n                \"lastName\": \"Driver8\",\n                \"badgeNum\": \"ENG130\",\n                \"storeNum\": \"AB127\",\n                \"assignedFromDate\": \"2020-02-05 13:00:00\",\n                \"deassignedDate\": null\n            }\n        ]\n    }\n}\n\n</code></pre>\n<h3 id=\"example-error-aggregated\">Example Error (aggregated)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  \"There are errors:\",\n  \"1101: Missing data\"\n]\n\n</code></pre>\n<h2 id=\"errors--status-codes\">Errors / Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP Code</th>\n<th>Error</th>\n<th>Description</th>\n<th>Possible Causes</th>\n<th>Suggested Handling</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>OK</td>\n<td>Assignments processed</td>\n<td>Valid payload</td>\n<td>Consume response</td>\n</tr>\n<tr>\n<td>400</td>\n<td>BadRequest</td>\n<td>Aggregated validation errors</td>\n<td>Invalid or incomplete assignments</td>\n<td>Correct and retry</td>\n</tr>\n<tr>\n<td>4xx</td>\n<td>Presenter error</td>\n<td>Presenter-controlled error</td>\n<td>Business rule violations</td>\n<td>Inspect message</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n","urlObject":{"path":["v1","fleet","assignDriverRetrospectively"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"ef01262c-27d5-4f60-bc72-a67e387356b4","name":"/fleet/assignDriverRetrospectively","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"assignments\": [\n        {\n            \"vrm\": \"ENG08ABC\",\n            \"firstName\": \"Engineering\",\n            \"lastName\": \"Driver1\",\n            \"badgeNum\": \"ENG123\",\n            \"storeNum\": \"AB127\",\n            \"assignedFromDate\": \"2020-02-05 09:00:00\",\n            \"deassignedFromDate\": \"2020-02-05 13:00:00\"\n        },\n        {\n            \"vrm\": \"ENG08ABC\",\n            \"firstName\": \"Engineering\",\n            \"lastName\": \"Driver8\",\n            \"badgeNum\": \"ENG130\",\n            \"storeNum\": \"AB127\",\n            \"assignedFromDate\": \"2020-02-05 13:00:00\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/v1/fleet/assignDriverRetrospectively"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 27 Feb 2020 20:31:15 GMT"},{"key":"Server","value":"Apache/2.4.39 (Unix)"},{"key":"X-Powered-By","value":"PHP/7.3.14"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"assignments\": [\n            {\n                \"vehicleID\": 26361,\n                \"vrm\": \"ENG08ABC\",\n                \"driverID\": 59705,\n                \"firstName\": \"Engineering\",\n                \"lastName\": \"Driver1\",\n                \"badgeNum\": \"ENG123\",\n                \"storeNum\": \"AB127\",\n                \"assignedFromDate\": \"2020-02-05 09:00:00\",\n                \"deassignedDate\": \"2020-02-05 13:00:00\"\n            },\n            {\n                \"vehicleID\": 26361,\n                \"vrm\": \"ENG08ABC\",\n                \"driverID\": 59700,\n                \"firstName\": \"Engineering\",\n                \"lastName\": \"Driver8\",\n                \"badgeNum\": \"ENG130\",\n                \"storeNum\": \"AB127\",\n                \"assignedFromDate\": \"2020-02-05 13:00:00\",\n                \"deassignedDate\": null\n            }\n        ]\n    }\n}"}],"_postman_id":"1bcdfe2d-6ae9-444e-b07e-02c081452470"},{"name":"/fleet/deassignDriverRetrospectively","id":"2f7c7178-0ed3-4fe8-938d-b5a46ad04878","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{username}}"},{"key":"password","value":"{{password}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"assignments\": [\n        {\n            \"vrm\": \"ENG08ABC\",\n            \"deassignedFromDate\": \"2020-02-05 09:00:00\",\n            \"firstName\": \"Engineering\",\n            \"lastName\": \"Driver1\",\n            \"badgeNum\": \"ENG123\",\n            \"storeNum\": \"AB127\"\n        }\n    ],\n    \"fleetLevelID\" : 3767\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/v1/fleet/deassignDriverRetrospectively","description":"<h2 id=\"endpoint-summary\">Endpoint Summary</h2>\n<p><strong>Purpose:</strong> Deassign one or more drivers from journeys retrospectively.</p>\n<hr />\n<h2 id=\"endpoint-notes\">Endpoint Notes</h2>\n<ul>\n<li>Request body must include <code>assignments</code> array; contents are passed to the use case.</li>\n<li>Presenter drives success/error with HTTP status and message when needed.</li>\n</ul>\n<hr />\n<h2 id=\"http-info\">HTTP Info</h2>\n<p><strong>Method:</strong> <code>PUT</code><br /><strong>URL:</strong> <code>/v1/fleet/deassignDriverRetrospectively</code><br /><strong>Status Codes:</strong> <code>200 OK</code>, <code>4xx</code> (presenter-driven)</p>\n<hr />\n<h2 id=\"request-fields\">Request Fields</h2>\n<h3 id=\"required-body\">Required (Body)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>assignments</code></td>\n<td>array</td>\n<td>Assignment items to deassign (structure defined by use case).</td>\n</tr>\n<tr>\n<td>Field Name</td>\n<td>Definition</td>\n<td>Format</td>\n</tr>\n<tr>\n<td>---</td>\n<td>---</td>\n<td>---</td>\n</tr>\n<tr>\n<td>VRM</td>\n<td>The VRM of the vehicle being driven</td>\n<td></td>\n</tr>\n<tr>\n<td>deassignedFromDate</td>\n<td>The date and time at which the new assignment ended (UTC)</td>\n<td>yyyy-mm-dd hh:mm:ss</td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>The driver's first name</td>\n<td></td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>The driver's last name</td>\n<td></td>\n</tr>\n<tr>\n<td>badgeNum</td>\n<td>The driver's badge number</td>\n<td></td>\n</tr>\n<tr>\n<td>storeNum</td>\n<td>The driver's store number</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"includes\">Includes</h3>\n<p>Not applicable.</p>\n<h3 id=\"filter-fields\">Filter Fields</h3>\n<p>Not applicable.</p>\n<h3 id=\"entity-aliases\">Entity Aliases</h3>\n<p>Not applicable.</p>\n<hr />\n<h2 id=\"response\">Response</h2>\n<h3 id=\"response-notes\">Response Notes</h3>\n<h3 id=\"fields\">Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Definition</th>\n<th>Format</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>vehicleID</td>\n<td>The ID of the vehicle being driver</td>\n<td></td>\n</tr>\n<tr>\n<td>VRM</td>\n<td>The VRM of the vehicle being driven</td>\n<td></td>\n</tr>\n<tr>\n<td>deassignedFromDate</td>\n<td>The date and time at which the new assignment ends</td>\n<td>yyyy-mm-dd hh:mm:ss</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-response-success\">Example Response (success)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"deassigned\": 5\n}\n</code></pre>\n<h2 id=\"errors--status-codes\">Errors / Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP Code</th>\n<th>Error</th>\n<th>Description</th>\n<th>Suggested Handling</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>OK</td>\n<td>Deassignment processed</td>\n<td>Consume response</td>\n</tr>\n<tr>\n<td>4xx</td>\n<td>Presenter error</td>\n<td>Failure per use case</td>\n<td>Inspect payload</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n","urlObject":{"path":["v1","fleet","deassignDriverRetrospectively"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"9163c259-9197-4cb7-95dc-55bc225b129e","name":"/fleet/deassignDriverRetrospectively","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"assignments\": [\n        {\n            \"vrm\": \"ENG08ABC\",\n            \"deassignedFromDate\": \"2020-02-05 09:00:00\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/v1/fleet/deassignDriverRetrospectively"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 27 Feb 2020 21:47:49 GMT"},{"key":"Server","value":"Apache/2.4.39 (Unix)"},{"key":"X-Powered-By","value":"PHP/7.3.14"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Keep-Alive","value":"timeout=5, max=99"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"assignments\": [\n            {\n                \"vehicleID\": 26361,\n                \"vrm\": \"ENG08ABC\",\n                \"deassignedFromDate\": \"2020-02-05 09:00:00\"\n            }\n        ]\n    }\n}"}],"_postman_id":"2f7c7178-0ed3-4fe8-938d-b5a46ad04878"}],"event":[{"listen":"prerequest","script":{"id":"57c022d0-d64c-401c-a72d-2f91b6b2352b","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"4bb7973d-32c9-47f8-ab47-efaa121dd33f","type":"text/javascript","exec":[""]}}]}