{"info":{"_postman_id":"a19677f4-51c8-4b10-ad8e-f23de57a595d","name":"Vasanda Integration API","description":"# Vasanda API\n\nThis collection provides sample requests to Vasanda REST API.\nThey can be used to build integration interfaces between your applications and  Vasanda platform.\n\n## Using environment variables\n\nMany requests in this collection use environment variables. For example 'Login' request body looks like:\n\n```\n{\n\t\"username\": \"{{loginEmail}}\",\n\t\"password\": \"{{loginPwd}}\"\n}\n\n```\nIf working with Postman, it is recommended to create a Postman environment and populate environment variables. A sample environment JSON with required variables can be provided if needed.\n\n\n## Authentication\n\nFor Authentication - please see sample requests and documentation in 'Login' subfolder.\n\nConsider the following guidelines:\n\n* Create an additional user under your Vasanda account which will be used for integration purposes. Do not use your main 'Admin' account for integration to limit the risk. Vasanda platform will support special API Keys in the future for automated integration access\n\n* Do not Login for each request, instead Login once and re-use access token with subsequent requests until it's experiaion. Use refresh token to obtain new valid access token when required.\n\n\n## Date/time values\nFor all date/time values Vasanda API uses UTC milliseconds timestamp format.\nYou can use the following online tool for converting human date/time values to/from UTC timestamps:\nhttps://www.unixtimestamp.com/index.php\n\n\n\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json"},"item":[{"name":"Login","item":[{"name":"Login","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('authToken', json.accessToken)","pm.environment.set('refreshToken', json.refreshToken)","pm.environment.set('userId', json.userId)","","// Response is OK","pm.test('Response is OK', function () {","","    // Status is 200","    pm.response.to.have.status(200)","    // Response time","    pm.expect(pm.response.responseTime).to.be.below(1000)","","}); ","            ","// Response has all data","pm.test('Response has all data', function () {","    pm.expect(json.code).to.equal('success')","    pm.expect(json).to.have.ownProperty('userId')","    pm.expect(json).to.have.ownProperty('accessToken')","    pm.expect(json).to.have.ownProperty('refreshToken')","})","",""],"type":"text/javascript"}}],"id":"5b2d1c92-ab04-48ce-822f-d76f401dac5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"username\": \"{{loginEmail}}\",\n\t\"password\": \"{{loginPwd}}\"\n}\n\n\n "},"url":"https://{{apiUrl}}/account/sessions","description":"Authenticate in the system and retreive access and refresh token.\nResponse will have:\n* access token : it must be sent with all subsequent requests to Vasanda API in 'Authorization' header. \n* access token expriation : the time period in seconds specifying for how long the access tokaen is valid.\n* refresh token : you can use this token to refresh access token after or just before it will be expired.\n\nDo not execute Login for every request to Vasanda API, instead follow these recommendations:\n* execute Login once and retreive access token\n* re-use obtained access token for the time period specified by expiration value from the response\n* use refresh token to obtain updated access token upon its expiration (or shortly before that)\n"},"response":[],"_postman_id":"5b2d1c92-ab04-48ce-822f-d76f401dac5c"},{"name":"Refresh authentication token","event":[{"listen":"test","script":{"id":"cdb1551d-15f4-4de5-9e5e-993e2f138688","exec":["let resp = pm.response.json()","pm.environment.set('authToken', resp.accessToken)",""],"type":"text/javascript"}}],"id":"5da1876f-eee5-4750-8c38-99ffe11861ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"refreshToken\": \"{{refreshToken}}\"\n}\n\n\n "},"url":"https://{{apiUrl}}/account/sessions","description":"Refresh access token"},"response":[],"_postman_id":"5da1876f-eee5-4750-8c38-99ffe11861ed"}],"id":"8fcc2d93-2441-4ace-b73d-87f395f117c0","description":"Almost any integration workflow will start from the 'Login' request.\nYou need to provide your credentials in the request body, and if authentication is successful, the API will respond with two tokens:\n * access token\n * refresh token\n \nYou need to send access token in 'Authorization' header with each following up request to Vasanda API which requires authentication.\n\nAccess token will be valid for 60 minutes.\nIt can be refreshed by using refresh token. See sample request for details.","_postman_id":"8fcc2d93-2441-4ace-b73d-87f395f117c0"},{"name":"Customers","item":[{"name":"Create customer","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('customerId', json.id)",""],"type":"text/javascript"}}],"id":"823a033a-9811-4cff-9388-525ab8f741f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Radioshack #2\",\n    \"website\": \"www.radio-shack.com\",\n    \"contacts\": [\n        {\n            \"default\": true,\n            \"firstName\": \"John\",\n            \"lastName\": \"Shacky\",\n            \"jobTitle\": \"Manager\",\n            \"contacts\": [\n                {\n                    \"type\": \"EMAIL\",\n                    \"id\": \"john.shacky@radiosh.com\",\n                    \"label\": \"Office email\"\n                },\n                {\n                    \"type\": \"PHONE\",\n                    \"id\": \"+1234 567-3232\",\n                    \"label\": \"Mobile phone\"\n                }\n            ]\n        }\n    ],\n    \"addresses\": [\n        {\n            \"default\": true,\n            \"address\": {\n                \"components\": {\n                    \"postcode\": \"06880\",\n                    \"country\": \"United States\",\n                    \"countryCode\": \"US\",\n                    \"city\": \"Westport\",\n                    \"address\": \"301 Riverside Avenue\"\n                },\n                \"text\": \"301 Riverside Avenue, Westport, 06880, United States\",\n                \"location\": {\n                    \"lat\": 41.1293281,\n                    \"lng\": -73.3687973\n                },\n                \"geocoder\": \"google\",\n                \"note\": \"\"\n            },\n            \"type\": \"SHIPPING\"\n        },\n        {\n            \"default\": true,\n            \"address\": {\n                \"text\": \"301 Riverside Avenue, Westport, 06880, United States\",\n                \"location\": null,\n                \"geocoder\": \"\",\n                \"note\": \"\"\n            },\n            \"type\": \"BILLING\"\n        }\n    ]\n}"},"url":"https://{{apiUrl}}/sale/customers"},"response":[],"_postman_id":"823a033a-9811-4cff-9388-525ab8f741f0"},{"name":"Update customer","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"edd8ad64-295d-4c05-95a4-a800dbc9c587","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n\t\"id\": \"{{customerId}}\",\n    \"name\": \"Radioshack #2 UPDATED\",\n    \"website\": \"www.radio-shack.com\",\n    \"contacts\": [\n        {\n            \"default\": true,\n            \"firstName\": \"John\",\n            \"lastName\": \"Shacky\",\n            \"jobTitle\": \"Manager\",\n            \"contacts\": [\n                {\n                    \"type\": \"EMAIL\",\n                    \"id\": \"john.shacky@radiosh.com\",\n                    \"label\": \"Office email\"\n                },\n                {\n                    \"type\": \"PHONE\",\n                    \"id\": \"+1234 567-3232\",\n                    \"label\": \"Mobile phone\"\n                }\n            ]\n        }\n    ],\n    \"addresses\": [\n        {\n            \"default\": true,\n            \"address\": {\n                \"components\": {\n                    \"postcode\": \"06880\",\n                    \"country\": \"United States\",\n                    \"countryCode\": \"US\",\n                    \"city\": \"Westport\",\n                    \"address\": \"301 Riverside Avenue\"\n                },\n                \"text\": \"301 Riverside Avenue, Westport, 06880, United States\",\n                \"location\": {\n                    \"lat\": 41.1293281,\n                    \"lng\": -73.3687973\n                },\n                \"geocoder\": \"google\",\n                \"note\": \"\"\n            },\n            \"type\": \"SHIPPING\"\n        },\n        {\n            \"default\": true,\n            \"address\": {\n                \"text\": \"301 Riverside Avenue, Westport, 06880, United States\",\n                \"location\": null,\n                \"geocoder\": \"\",\n                \"note\": \"\"\n            },\n            \"type\": \"BILLING\"\n        }\n    ]\n}"},"url":"https://{{apiUrl}}/sale/customers/{{customerId}}"},"response":[],"_postman_id":"edd8ad64-295d-4c05-95a4-a800dbc9c587"},{"name":"Get customer by ID","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"d9089cd8-0588-4450-9d01-d69fc40d4b6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/sale/customers/{{customerId}}"},"response":[],"_postman_id":"d9089cd8-0588-4450-9d01-d69fc40d4b6c"},{"name":"List active customers","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"e5463dc0-bd6f-4811-bea6-b065500a2b28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/sale/customers?active=true","protocol":"https","host":["{{apiUrl}}"],"path":["sale","customers"],"query":[{"key":"active","value":"true"}]},"description":"To list only active (not deleted) customers, you can pass the following query parameter:\n\n?active=true\n\n"},"response":[],"_postman_id":"e5463dc0-bd6f-4811-bea6-b065500a2b28"},{"name":"Search customer by name","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"0c9a989e-5453-4a26-a336-3af3413562be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/sale/customers?search=radio","protocol":"https","host":["{{apiUrl}}"],"path":["sale","customers"],"query":[{"key":"search","value":"radio"}]}},"response":[],"_postman_id":"0c9a989e-5453-4a26-a336-3af3413562be"},{"name":"Delete customer","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"1ac0573a-0191-4650-aa37-f8039efb90c7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/sale/customers/{{customerId}}","description":"Delete customer.\n\nDelete operation will not physically delete the data, instead it will change 'active' property to value 'false':\n\n```\nactive: false\n```\n\nCustomer data still can be retreived.\nDelete operation is used to mark certain customers as 'inactive' to not see them on UI."},"response":[],"_postman_id":"1ac0573a-0191-4650-aa37-f8039efb90c7"}],"id":"3a03e033-890e-43cf-b4bf-8bbb061613e0","description":"This collection provides sample requests to manage customers.\n\n","event":[{"listen":"prerequest","script":{"id":"b800e65a-461f-4625-89ce-07670b983369","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"5e403fc6-d25d-4f87-a099-482a8de1d5d2","type":"text/javascript","exec":[""]}}],"_postman_id":"3a03e033-890e-43cf-b4bf-8bbb061613e0"},{"name":"Sale","item":[{"name":"Create sale order with 2 deliveries","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('saleOrderId', json.id)","pm.environment.set('saleOrderNumber', json.number)",""],"type":"text/javascript"}}],"id":"ce72893f-ba04-4fa8-be14-2c88df01ee50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"warehouse\": {\n        \"id\": \"5c257c87c7147678ab6b83c9\",\n        \"name\": \"Test Warehouse UK-1\"\n    },\n    \"customer\": {\n        \"id\": \"5e2bc289e1a46556fccd7c0d\",\n        \"name\": \"UK Customer-2\",\n        \"billingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Cheltenham\",\n                \"postcode\": \"GL51\",\n                \"address\": \"Hatherley Lane\"\n            },\n            \"text\": \"Hatherley Lane, Cheltenham, GL51, United Kingdom\",\n            \"location\": {\n                \"lat\": 51.8904861,\n                \"lng\": -2.1253681\n            },\n            \"note\": \"\"\n        },\n        \"shippingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Cheltenham\",\n                \"postcode\": \"GL51\",\n                \"address\": \"Hatherley Lane\"\n            },\n            \"text\": \"Hatherley Lane, Cheltenham, GL51, United Kingdom\",\n            \"location\": {\n                \"lat\": 51.8904861,\n                \"lng\": -2.1253681\n            },\n            \"note\": \"\"\n        },\n        \"contact\": {\n            \"contacts\": [\n                {\n                    \"type\": \"EMAIL\",\n                    \"id\": \"test-uk-customer-2@vasanda.com\",\n                    \"label\": \"\"\n                }\n            ],\n            \"default\": true,\n            \"firstName\": \"Mari\",\n            \"lastName\": \"Lipi\",\n            \"jobTitle\": \"Manager\"\n        }\n    },\n    \"tags\": [\n        \"TEST\"\n    ],\n    \"date\": 1579842000000,\n    \"requiredDate\": 1580169600000,\n    \"delivery\": [\n        {\n            \"products\": [\n                {\n                    \"product\": {\n                        \"id\": \"5c257de0c7147678ab6b83ca\",\n                        \"name\": \"Cable  USB 3.0\",\n                        \"code\": \"CBL-001\"\n                    },\n                    \"quantity\": {\n                        \"value\": 200,\n                        \"uom\": {\n                            \"code\": \"base_unit\",\n                            \"name\": \"Unit\",\n                            \"base\": true,\n                            \"default\": true,\n                            \"units\": 1\n                        }\n                    },\n                    \"price\": {\n                        \"value\": 3.4,\n                        \"currency\": \"GBP\"\n                    }\n                }\n            ],\n            \"costs\": [\n                {\n                    \"type\": \"SUBTOTAL\",\n                    \"name\": \"Subtotal\",\n                    \"amount\": 680,\n                    \"currency\": \"GBP\"\n                },\n                {\n                    \"type\": \"TOTAL\",\n                    \"name\": \"Total\",\n                    \"amount\": 680,\n                    \"currency\": \"GBP\"\n                }\n            ],\n            \"id\": \"57PU\",\n            \"expectedDate\": 1580896854000,\n            \"status\": \"CONFIRMED\"\n        },\n        {\n            \"products\": [\n                {\n                    \"product\": {\n                        \"id\": \"5e2bc33d4a4f75574f8ac922\",\n                        \"name\": \"Black/White Printer \",\n                        \"code\": \"PRNT-001\"\n                    },\n                    \"quantity\": {\n                        \"value\": 20,\n                        \"uom\": {\n                            \"code\": \"base_unit\",\n                            \"name\": \"Unit\",\n                            \"base\": true,\n                            \"default\": true,\n                            \"units\": 1\n                        }\n                    },\n                    \"price\": {\n                        \"value\": 67.77,\n                        \"currency\": \"GBP\"\n                    }\n                }\n            ],\n            \"costs\": [\n                {\n                    \"type\": \"SUBTOTAL\",\n                    \"name\": \"Subtotal\",\n                    \"amount\": 1355.4,\n                    \"currency\": \"GBP\"\n                },\n                {\n                    \"type\": \"TOTAL\",\n                    \"name\": \"Total\",\n                    \"amount\": 1355.4,\n                    \"currency\": \"GBP\"\n                }\n            ],\n            \"id\": \"2WXV\",\n            \"expectedDate\": 1581328854000,\n            \"status\": \"CONFIRMED\"\n        }\n    ],\n    \"currency\": \"GBP\",\n    \"status\": \"PENDING\",\n    \"description\": \"\",\n    \"note\": \"Call before arriving\",\n    \"costs\": [\n        {\n            \"type\": \"TOTAL\",\n            \"name\": \"Total\",\n            \"amount\": 2035.4,\n            \"currency\": \"GBP\"\n        }\n    ]\n}"},"url":"https://{{apiUrl}}/sale/orders","description":"Create new sale order.\n\nOrder data consists of the following main sections.\n\n__Order header__\nThese are order model properties presented at the top level and includes:\n* date : order date\n* number : optional order number, can be sent in the request, if not specified system will generate a number as 'SO-***'\n* currency : order currency\n* requiredDate : order must be delivered by this date.\n\n__Status__\nOrder status property is used to track order lifecycle and to trigger downstream workflows for order processing (for example in a Warehouse integrated environments).\nStatus can be in one of the following states:\n* PENDING : order is created but not fullfilled yet\n* INCOMPLETE : order fullfilment is in progress\n* COMPLETE : order fullfilment is completed\n* CANCELED : order is canceled\n\n__Warehouse__\nThis section provides information about warehouse. Warehouse information is required. If you do not use Warehouse functionality, you can submit some hardcoded values.\n\n__Delivery__\nOrder product specification can be broken into multiple 'delivery' sections, each with its own delivery date and status. This enables to delivery ordered products to the customer in parts based on the customer needs and products availabilities.\nFor example, if you have only part of the ordered products in stock and customer needs it sooner, you can delivery that part of the order earlier, and the remaining products later.\n\n__Tags__\nOrder model has property:\ntags: [String]\nwhich is an array of string values. These values can be used as 'labels' to provide additional description or to add additional custom 'categories' to this Sale Order. \nThese lables can be used to search and filter Sale Orders in GET API endpoint.\nHere are a few examples for using lables.\n\nSales area: if you want to categorize/segregate orders by sale area, you can add your sale area name (label) to order tags. For example, you can add a tah like:\n\n```\n'tags':[ 'Greater London' ] \n```\n\nPriority: if you want to group your orders by priority, you can use tags like 'critical':\n\n```\n'tags' : ['critical']\n```\n\nYou can mix and match tags for different purposes, for example:\n\n```\n'tags': ['Greater London', 'critical']\n```\n"},"response":[],"_postman_id":"ce72893f-ba04-4fa8-be14-2c88df01ee50"},{"name":"Update sale order no deliver ID","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","","// Response is OK","pm.test('Response is OK', function () {","","    // Status is 200","    pm.response.to.have.status(200)","    // Response time","    pm.expect(pm.response.responseTime).to.be.below(1000)","","}); ","            ","// Response has all data","pm.test('Response has all data', function () {","    pm.expect(json).to.have.ownProperty('id')","})","","pm.environment.set('requestId', json.id)",""],"type":"text/javascript"}}],"id":"4acd4822-8a3d-4e57-9c09-3b353d4e6caf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"accountId\": \"5b800dea023e062a40c3bdd0\",\n\t\"id\": \"{{saleOrderId}}\",\n\t\"number\": \"{{saleOrderNumber}}\",\n    \"tags\": [\n        \"TEST\"\n    ],\n    \"active\": true,\n    \"warehouse\": {\n        \"id\": \"5c257c87c7147678ab6b83c9\",\n        \"name\": \"Test Warehouse UK-1\"\n    },\n    \"customer\": {\n        \"id\": \"5e2bc289e1a46556fccd7c0d\",\n        \"name\": \"UK Customer-2\",\n        \"billingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Cheltenham\",\n                \"postcode\": \"GL51\",\n                \"address\": \"Hatherley Lane\"\n            },\n            \"text\": \"Hatherley Lane, Cheltenham, GL51, United Kingdom\",\n            \"location\": {\n                \"lat\": 51.8904861,\n                \"lng\": -2.1253681\n            },\n            \"note\": \"\"\n        },\n        \"shippingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Cheltenham\",\n                \"postcode\": \"GL51\",\n                \"address\": \"Hatherley Lane\"\n            },\n            \"text\": \"Hatherley Lane, Cheltenham, GL51, United Kingdom\",\n            \"location\": {\n                \"lat\": 51.8904861,\n                \"lng\": -2.1253681\n            },\n            \"note\": \"\"\n        },\n        \"contact\": {\n            \"contacts\": [\n                {\n                    \"type\": \"EMAIL\",\n                    \"id\": \"test-uk-customer-2@vasanda.com\",\n                    \"label\": \"\"\n                }\n            ],\n            \"default\": true,\n            \"firstName\": \"Mari\",\n            \"lastName\": \"Lipi\",\n            \"jobTitle\": \"Manager\"\n        }\n    },\n    \"date\": 1579842000000,\n    \"requiredDate\": 1580169600000,\n    \"delivery\": [\n        {\n            \"products\": [\n                {\n                    \"product\": {\n                        \"id\": \"5c257de0c7147678ab6b83ca\",\n                        \"name\": \"Cable  USB 3.0\",\n                        \"code\": \"CBL-001\"\n                    },\n                    \"quantity\": {\n                        \"value\": 200,\n                        \"uom\": {\n                            \"code\": \"base_unit\",\n                            \"name\": \"Unit\",\n                            \"base\": true,\n                            \"default\": true,\n                            \"units\": 1\n                        }\n                    },\n                    \"price\": {\n                        \"value\": 3.4,\n                        \"currency\": \"GBP\"\n                    }\n                }\n            ],\n            \"costs\": [\n                {\n                    \"type\": \"SUBTOTAL\",\n                    \"name\": \"Subtotal\",\n                    \"amount\": 680,\n                    \"currency\": \"GBP\"\n                },\n                {\n                    \"type\": \"TOTAL\",\n                    \"name\": \"Total\",\n                    \"amount\": 680,\n                    \"currency\": \"GBP\"\n                }\n            ],\n            \"expectedDate\": 1580896854000,\n            \"status\": \"CONFIRMED\"\n        },\n        {\n            \"products\": [\n                {\n                    \"product\": {\n                        \"id\": \"5e2bc33d4a4f75574f8ac922\",\n                        \"name\": \"Black/White Printer \",\n                        \"code\": \"PRNT-001\"\n                    },\n                    \"quantity\": {\n                        \"value\": 20,\n                        \"uom\": {\n                            \"code\": \"base_unit\",\n                            \"name\": \"Unit\",\n                            \"base\": true,\n                            \"default\": true,\n                            \"units\": 1\n                        }\n                    },\n                    \"price\": {\n                        \"value\": 67.77,\n                        \"currency\": \"GBP\"\n                    }\n                }\n            ],\n            \"costs\": [\n                {\n                    \"type\": \"SUBTOTAL\",\n                    \"name\": \"Subtotal\",\n                    \"amount\": 1355.4,\n                    \"currency\": \"GBP\"\n                },\n                {\n                    \"type\": \"TOTAL\",\n                    \"name\": \"Total\",\n                    \"amount\": 1355.4,\n                    \"currency\": \"GBP\"\n                }\n            ],\n            \"expectedDate\": 1581760854000,\n            \"status\": \"CONFIRMED\"\n        }\n    ],\n    \"currency\": \"GBP\",\n    \"status\": \"PENDING\",\n    \"description\": \"\",\n    \"note\": \"Call before arriving\",\n    \"costs\": [\n        {\n            \"type\": \"TOTAL\",\n            \"name\": \"Total\",\n            \"amount\": 2035.4,\n            \"currency\": \"GBP\"\n        }\n    ]\n}\n"},"url":"https://{{apiUrl}}/sale/orders/{{saleOrderId}}","description":"Update existing sale order.\nYou need to send the complete sale order data model.\n"},"response":[],"_postman_id":"4acd4822-8a3d-4e57-9c09-3b353d4e6caf"},{"name":"Create sale order  - no geo location","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('saleOrderId', json.id)","pm.environment.set('saleOrderNumber', json.number)",""],"type":"text/javascript"}}],"id":"2c42102c-cac1-4d81-93d0-0e480f8d5609","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"warehouse\": {\n        \"id\": \"5c257c87c7147678ab6b83c9\",\n        \"name\": \"Test Warehouse UK-1\"\n    },\n    \"customer\": {\n        \"id\": \"5e1cf57e2a67873630db010d\",\n        \"name\": \"UK Customer - 1\",\n        \"billingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Oxford\",\n                \"postcode\": \"OX1 4BJ\",\n                \"address\": \"92-94 High Street\"\n            },\n            \"text\": \"92-94 High Street, Oxford, OX1 4BJ, United Kingdom\",\n            \"location\": {\n                \"lat\": 51.7524601,\n                \"lng\": -1.2531496\n            },\n            \"note\": \"\"\n        },\n        \"shippingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Oxford\",\n                \"postcode\": \"OX1 4BJ\",\n                \"address\": \"92-94 High Street\"\n            },\n            \"text\": \"92-94 High Street, Oxford, OX1 4BJ, United Kingdom\",\n            \"note\": \"\"\n        },\n        \"contact\": {\n            \"contacts\": [\n                {\n                    \"type\": \"EMAIL\",\n                    \"id\": \"john-ukay@test-customer.com\",\n                    \"label\": \"\"\n                }\n            ],\n            \"default\": true,\n            \"firstName\": \"John\",\n            \"lastName\": \"Ukay\",\n            \"jobTitle\": \"Manager\"\n        }\n    },\n    \"tags\": [\n        \"SALE\"\n    ],\n    \"date\": 1578891600000,\n    \"requiredDate\": 1579712400000,\n    \"delivery\": [\n        {\n            \"products\": [\n                {\n                    \"product\": {\n                        \"id\": \"5c257de0c7147678ab6b83ca\",\n                        \"name\": \"Cable  USB 3.0\",\n                        \"code\": \"CBL-001\"\n                    },\n                    \"quantity\": {\n                        \"value\": 100,\n                        \"uom\": {\n                            \"code\": \"base_unit\",\n                            \"name\": \"Unit\",\n                            \"base\": true,\n                            \"default\": true,\n                            \"units\": 1\n                        }\n                    },\n                    \"price\": {\n                        \"value\": 3.44,\n                        \"currency\": \"GBP\"\n                    }\n                }\n            ],\n            \"costs\": [\n                {\n                    \"type\": \"SUBTOTAL\",\n                    \"name\": \"Subtotal\",\n                    \"amount\": 344,\n                    \"currency\": \"GBP\"\n                },\n                {\n                    \"type\": \"TOTAL\",\n                    \"name\": \"Total\",\n                    \"amount\": 344,\n                    \"currency\": \"GBP\"\n                }\n            ],\n            \"id\": \"DmS4\",\n            \"expectedDate\": 1579712400000,\n            \"status\": \"CONFIRMED\"\n        }\n    ],\n    \"currency\": \"GBP\",\n    \"status\": \"PENDING\",\n    \"description\": \"\",\n    \"note\": \"Deliver to building #3 , floor 5\",\n    \"costs\": [\n        {\n            \"type\": \"TOTAL\",\n            \"name\": \"Total\",\n            \"amount\": 344,\n            \"currency\": \"GBP\"\n        }\n    ]\n}"},"url":"https://{{apiUrl}}/sale/orders","description":"Create new sale order.\n\nOrder data consists of the following main sections.\n\n__Order header__\nThese are order model properties presented at the top level and includes:\n* date : order date\n* number : optional order number, can be sent in the request, if not specified system will generate a number as 'SO-***'\n* currency : order currency\n* requiredDate : order must be delivered by this date.\n\n__Status__\nOrder status property is used to track order lifecycle and to trigger downstream workflows for order processing (for example in a Warehouse integrated environments).\nStatus can be in one of the following states:\n* PENDING : order is created but not fullfilled yet\n* INCOMPLETE : order fullfilment is in progress\n* COMPLETE : order fullfilment is completed\n* CANCELED : order is canceled\n\n__Warehouse__\nThis section provides information about warehouse. Warehouse information is required. If you do not use Warehouse functionality, you can submit some hardcoded values.\n\n__Delivery__\nOrder product specification can be broken into multiple 'delivery' sections, each with its own delivery date and status. This enables to delivery ordered products to the customer in parts based on the customer needs and products availabilities.\nFor example, if you have only part of the ordered products in stock and customer needs it sooner, you can delivery that part of the order earlier, and the remaining products later.\n\n__Tags__\nOrder model has property:\ntags: [String]\nwhich is an array of string values. These values can be used as 'labels' to provide additional description or to add additional custom 'categories' to this Sale Order. \nThese lables can be used to search and filter Sale Orders in GET API endpoint.\nHere are a few examples for using lables.\n\nSales area: if you want to categorize/segregate orders by sale area, you can add your sale area name (label) to order tags. For example, you can add a tah like:\n\n```\n'tags':[ 'Greater London' ] \n```\n\nPriority: if you want to group your orders by priority, you can use tags like 'critical':\n\n```\n'tags' : ['critical']\n```\n\nYou can mix and match tags for different purposes, for example:\n\n```\n'tags': ['Greater London', 'critical']\n```\n"},"response":[],"_postman_id":"2c42102c-cac1-4d81-93d0-0e480f8d5609"},{"name":"Create sale order  - wrong address","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('saleOrderId', json.id)","pm.environment.set('saleOrderNumber', json.number)",""],"type":"text/javascript"}}],"id":"fa84e999-c1af-4cca-ba98-2cb4eb71d30a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"warehouse\": {\n        \"id\": \"5c257c87c7147678ab6b83c9\",\n        \"name\": \"Test Warehouse UK-1\"\n    },\n    \"customer\": {\n        \"id\": \"5e1cf57e2a67873630db010d\",\n        \"name\": \"UK Customer - 1\",\n        \"billingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Oxford\",\n                \"postcode\": \"OX1 4BJ\",\n                \"address\": \"92-94 High Street\"\n            },\n            \"text\": \"92-94 High Street, Oxford, OX1 4BJ, United Kingdom\",\n            \"location\": {\n                \"lat\": 51.7524601,\n                \"lng\": -1.2531496\n            },\n            \"note\": \"\"\n        },\n        \"shippingAddress\": {\n            \"components\": {\n                \"country\": \"United Kingdom\",\n                \"countryCode\": \"GB\",\n                \"city\": \"Oxford\",\n                \"postcode\": \"OX1 4BJ\",\n                \"address\": \"92-94 High Street\"\n            },\n            \"text\": \"Food store  Alibaba London UK\",\n            \"note\": \"\"\n        },\n        \"contact\": {\n            \"contacts\": [\n                {\n                    \"type\": \"EMAIL\",\n                    \"id\": \"john-ukay@test-customer.com\",\n                    \"label\": \"\"\n                }\n            ],\n            \"default\": true,\n            \"firstName\": \"John\",\n            \"lastName\": \"Ukay\",\n            \"jobTitle\": \"Manager\"\n        }\n    },\n    \"tags\": [\n        \"SALE\"\n    ],\n    \"date\": 1578891600000,\n    \"requiredDate\": 1579712400000,\n    \"delivery\": [\n        {\n            \"products\": [\n                {\n                    \"product\": {\n                        \"id\": \"5c257de0c7147678ab6b83ca\",\n                        \"name\": \"Cable  USB 3.0\",\n                        \"code\": \"CBL-001\"\n                    },\n                    \"quantity\": {\n                        \"value\": 100,\n                        \"uom\": {\n                            \"code\": \"base_unit\",\n                            \"name\": \"Unit\",\n                            \"base\": true,\n                            \"default\": true,\n                            \"units\": 1\n                        }\n                    },\n                    \"price\": {\n                        \"value\": 3.44,\n                        \"currency\": \"GBP\"\n                    }\n                }\n            ],\n            \"costs\": [\n                {\n                    \"type\": \"SUBTOTAL\",\n                    \"name\": \"Subtotal\",\n                    \"amount\": 344,\n                    \"currency\": \"GBP\"\n                },\n                {\n                    \"type\": \"TOTAL\",\n                    \"name\": \"Total\",\n                    \"amount\": 344,\n                    \"currency\": \"GBP\"\n                }\n            ],\n            \"id\": \"DmS4\",\n            \"expectedDate\": 1579712400000,\n            \"status\": \"CONFIRMED\"\n        }\n    ],\n    \"currency\": \"GBP\",\n    \"status\": \"PENDING\",\n    \"description\": \"\",\n    \"note\": \"Deliver to building #3 , floor 5\",\n    \"costs\": [\n        {\n            \"type\": \"TOTAL\",\n            \"name\": \"Total\",\n            \"amount\": 344,\n            \"currency\": \"GBP\"\n        }\n    ]\n}"},"url":"https://{{apiUrl}}/sale/orders","description":"Create new sale order.\n\nOrder data consists of the following main sections.\n\n__Order header__\nThese are order model properties presented at the top level and includes:\n* date : order date\n* number : optional order number, can be sent in the request, if not specified system will generate a number as 'SO-***'\n* currency : order currency\n* requiredDate : order must be delivered by this date.\n\n__Status__\nOrder status property is used to track order lifecycle and to trigger downstream workflows for order processing (for example in a Warehouse integrated environments).\nStatus can be in one of the following states:\n* PENDING : order is created but not fullfilled yet\n* INCOMPLETE : order fullfilment is in progress\n* COMPLETE : order fullfilment is completed\n* CANCELED : order is canceled\n\n__Warehouse__\nThis section provides information about warehouse. Warehouse information is required. If you do not use Warehouse functionality, you can submit some hardcoded values.\n\n__Delivery__\nOrder product specification can be broken into multiple 'delivery' sections, each with its own delivery date and status. This enables to delivery ordered products to the customer in parts based on the customer needs and products availabilities.\nFor example, if you have only part of the ordered products in stock and customer needs it sooner, you can delivery that part of the order earlier, and the remaining products later.\n\n__Tags__\nOrder model has property:\ntags: [String]\nwhich is an array of string values. These values can be used as 'labels' to provide additional description or to add additional custom 'categories' to this Sale Order. \nThese lables can be used to search and filter Sale Orders in GET API endpoint.\nHere are a few examples for using lables.\n\nSales area: if you want to categorize/segregate orders by sale area, you can add your sale area name (label) to order tags. For example, you can add a tah like:\n\n```\n'tags':[ 'Greater London' ] \n```\n\nPriority: if you want to group your orders by priority, you can use tags like 'critical':\n\n```\n'tags' : ['critical']\n```\n\nYou can mix and match tags for different purposes, for example:\n\n```\n'tags': ['Greater London', 'critical']\n```\n"},"response":[],"_postman_id":"fa84e999-c1af-4cca-ba98-2cb4eb71d30a"},{"name":"List sale orders","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('orderNumber', json.data[0].number)",""],"type":"text/javascript"}}],"id":"6ca90c5e-dcf0-475b-822a-45788d58fe84","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/sale/orders","description":"Retreive existing Sale Orders.\nThis API endpoint can be used for:\n* list existing sale orders\n* search/filter sale order by some criteria \n\n__Filtering__\nUse query parameter 'search' to filter sales orders by:\n* order number\n* customer name \n\n__Pagination__\nThis API uses pagination and for a particular request returns only part of the records.\nUse the following parameters to control result pages:\n* page : page number, first page number is 0 by default\n* size : page size, not larger than 100 , 100 is by default \n"},"response":[],"_postman_id":"6ca90c5e-dcf0-475b-822a-45788d58fe84"},{"name":"Search Order by number","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"d52113f8-6cda-417b-9227-77b74c790b08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/sale/orders?number={{orderNumber}}","protocol":"https","host":["{{apiUrl}}"],"path":["sale","orders"],"query":[{"key":"number","value":"{{orderNumber}}"}]},"description":"Search existing Sale Order by Number.\n\nSame API as List sale orders with added filter by order number\n\nAPI will return a list of found orders. \nUsually, order number is unique so returned list will have one entry.\n"},"response":[],"_postman_id":"d52113f8-6cda-417b-9227-77b74c790b08"},{"name":"Update sale order","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","","// Response is OK","pm.test('Response is OK', function () {","","    // Status is 200","    pm.response.to.have.status(200)","    // Response time","    pm.expect(pm.response.responseTime).to.be.below(1000)","","}); ","            ","// Response has all data","pm.test('Response has all data', function () {","    pm.expect(json).to.have.ownProperty('id')","})","","pm.environment.set('requestId', json.id)",""],"type":"text/javascript"}}],"id":"986d361c-ac1f-47dd-a89b-6531e69fffe1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"{{saleOrderId}}\",\n  \"number\": \"{{saleOrderNumber}}\",\n  \"active\": true,\n  \"date\": 1574632800000,\n  \"status\": \"PENDING\",\n  \"requiredDate\": 1575064800000,\n  \"description\": \"Computer cables for Radioshack\",\n  \"note\": \"Customer needs express delivery by the end of the week\",\n  \"currency\": \"USD\",\n\n  \"warehouse\": {\n    \"id\": \"5c257c87c7147678ab6b83c9\",\n    \"name\": \"Test Warehouse 001\"\n  },\n\n  \"customer\": {\n    \"id\": \"5c257da2610ecd79616529a1\",\n    \"name\": \"Radioshack #1\",\n    \"billingAddress\": {\n      \"text\": \"301 Riverside Avenue, Westport, 06880, United States\",\n      \"location\": null,\n      \"geocoder\": \"\",\n      \"note\": \"\"\n    },\n    \"shippingAddress\": {\n      \"components\": {\n        \"postcode\": \"06880\",\n        \"country\": \"United States\",\n        \"countryCode\": \"US\",\n        \"city\": \"Westport\",\n        \"address\": \"301 Riverside Avenue\"\n      },\n      \"text\": \"301 Riverside Avenue, Westport, 06880, United States\",\n      \"location\": {\n        \"lat\": 41.1293281,\n        \"lng\": -73.3687973\n      },\n      \"geocoder\": \"google\",\n      \"note\": \"\"\n    },\n    \"contact\": {\n      \"contacts\": [{\n        \"type\": \"EMAIL\",\n        \"id\": \"john.shacky@radiosh.com\",\n        \"label\": \"\"\n      }],\n      \"default\": true,\n      \"firstName\": \"John\",\n      \"lastName\": \"Shacky\",\n      \"jobTitle\": \"Manager\"\n    }\n  },\n\n  \"delivery\": [{\n    \"id\": \"Evkt\",\n    \"expectedDate\": 1575064800000,\n    \"status\": \"CONFIRMED\",\n    \"products\": [{\n      \"product\": {\n        \"id\": \"5c257de0c7147678ab6b83ca\",\n        \"name\": \"Cable  USB 3.0\",\n        \"code\": \"CBL-001\"\n      },\n      \"quantity\": {\n        \"value\": 200,\n        \"uom\": {\n          \"code\": \"base_unit\",\n          \"name\": \"Unit\",\n          \"base\": true,\n          \"default\": true,\n          \"units\": 1\n        }\n      },\n      \"price\": {\n        \"value\": 5.40,\n        \"currency\": \"USD\"\n      }\n    }],\n    \"costs\": [{\n      \"type\": \"SUBTOTAL\",\n      \"name\": \"Subtotal\",\n      \"amount\": 540,\n      \"currency\": \"USD\"\n    }, {\n      \"type\": \"TOTAL\",\n      \"name\": \"Total\",\n      \"amount\": 540,\n      \"currency\": \"USD\"\n    }]\n  }],\n\n  \"costs\": [{\n    \"type\": \"TOTAL\",\n    \"name\": \"Total\",\n    \"amount\": 540,\n    \"currency\": \"USD\"\n  }]\n\n}\n"},"url":"https://{{apiUrl}}/sale/orders/{{saleOrderId}}","description":"Update existing sale order.\nYou need to send the complete sale order data model.\n"},"response":[],"_postman_id":"986d361c-ac1f-47dd-a89b-6531e69fffe1"},{"name":"Search sale orders by tag (sale area)","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"fe4b4abb-d507-40e8-9734-6dbf6e19a7b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/sale/orders?search=LONDON-1","protocol":"https","host":["{{apiUrl}}"],"path":["sale","orders"],"query":[{"key":"search","value":"LONDON-1"}]},"description":"Retreive existing Sale Orders.\nThis API endpoint can be used for:\n* list existing sale orders\n* search/filter sale order by some criteria \n\n__Filtering__\nUse query parameter 'search' to filter sales orders by:\n* order number\n* customer name \n\n__Pagination__\nThis API uses pagination and for a particular request returns only part of the records.\nUse the following parameters to control result pages:\n* page : page number, first page number is 0 by default\n* size : page size, not larger than 100 , 100 is by default \n"},"response":[],"_postman_id":"fe4b4abb-d507-40e8-9734-6dbf6e19a7b5"},{"name":"Get sale order detailed data","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"db993771-67a7-4b0a-8294-a28481f40cf4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/sale/orders/{{saleOrderId}}","description":"Retreive complete sale order data by order ID.\n"},"response":[],"_postman_id":"db993771-67a7-4b0a-8294-a28481f40cf4"},{"name":"Cancel sale order","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"de91277e-3db8-413d-a6bf-e1104fbd2e8d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n\t\"status\": \"CANCELED\"\n}"},"url":"https://{{apiUrl}}/sale/orders/{{saleOrderId}}/status","description":"Canceling sale orders canbe done by changing order status value to 'CANCELED'.\n\nKeep in mind that that when a sale order is created, depending on its state the downstream processes may create or update additional data or change the system state.\n\nFor example in an integrated workflow with Warehouse operations, Warehouse Pick job may be created etc. Those downstream processes may be in a state, when they cannot be changed. \nFor example, if your sale order created a Pick job in Warehouse process, and that Pick job has been completed, canceling sale order will not change and revert the Pick job.\n"},"response":[],"_postman_id":"de91277e-3db8-413d-a6bf-e1104fbd2e8d"}],"id":"03760eee-4f25-49df-9a66-96f146a72ff1","description":"This collection has sample requests for Sale-related workflows.\nMost typical use case is to create new or update existing Sale Orders.\nSee the corresponding requests and API endpoints.","event":[{"listen":"prerequest","script":{"id":"b800e65a-461f-4625-89ce-07670b983369","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"5e403fc6-d25d-4f87-a099-482a8de1d5d2","type":"text/javascript","exec":[""]}}],"_postman_id":"03760eee-4f25-49df-9a66-96f146a72ff1"},{"name":"Products","item":[{"name":"Create product","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('productId', json.id)",""],"type":"text/javascript"}}],"id":"c5a01454-c33b-46f3-bc78-9bc1eb8a4b88","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"CBL-006\",\n    \"name\": \"Cable Black USB 6.0\",\n    \"description\": \"USB Cable 6.0 white in a package \",\n    \"size\": {\n        \"length\": {\n            \"value\": 10,\n            \"uom\": \"CENTIMETER\"\n        },\n        \"width\": {\n            \"value\": 5,\n            \"uom\": \"CENTIMETER\"\n        },\n        \"height\": {\n            \"value\": 5,\n            \"uom\": \"CENTIMETER\"\n        },\n        \"volume\": {\n            \"value\": 0.25,\n            \"uom\": \"CUBIC_METER\"\n        },\n        \"weight\": {\n            \"value\": 0.2,\n            \"uom\": \"KILOGRAM\"\n        }\n    },\n    \"codes\": {\n        \"ups\": \"111222333344445555\",\n        \"ein\": \"EIN00000111111\",\n        \"sourceId\": \"123\",\n        \"qrcode\": \"4422334455667788\",\n        \"variant\": \"WHITE\"\n    },\n    \"misc\": {\n        \"type\": \"Computer\",\n        \"range\": \"Cables\",\n        \"group\": \"Hardware\",\n        \"method\": \"A/B\",\n        \"abc\": \"C\",\n        \"country\": \"China\",\n        \"complaint\": true\n    },\n    \"packaging\": [\n        {\n            \"code\": \"base_unit\",\n            \"name\": \"Unit\",\n            \"base\": true,\n            \"default\": true,\n            \"units\": 1\n        }\n    ],\n    \"bom\": {\n        \"parts\": []\n    }\n}"},"url":"https://{{apiUrl}}/warehouse/products"},"response":[],"_postman_id":"c5a01454-c33b-46f3-bc78-9bc1eb8a4b88"},{"name":"Update product","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"3dc6e32c-29cc-4944-9a3a-2df2e8e657f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n\t\"id\": \"{{productId}}\",\n    \"code\": \"CBL-004\",\n    \"name\": \"Cable White USB 4.0 UPDATED\",\n    \"description\": \"USB Cable 4.0 white in a package \",\n    \"size\": {\n        \"length\": {\n            \"value\": 10,\n            \"uom\": \"CENTIMETER\"\n        },\n        \"width\": {\n            \"value\": 5,\n            \"uom\": \"CENTIMETER\"\n        },\n        \"height\": {\n            \"value\": 5,\n            \"uom\": \"CENTIMETER\"\n        },\n        \"volume\": {\n            \"value\": 25,\n            \"uom\": \"CUBIC_CENTIMETER\"\n        },\n        \"weight\": {\n            \"value\": 0.2,\n            \"uom\": \"KILOGRAM\"\n        }\n    },\n    \"codes\": {\n        \"ups\": \"111222333344445555\",\n        \"ein\": \"EIN00000111111\",\n        \"bar\": \"4400000111\",\n        \"sourceId\": \"123\",\n        \"qrcode\": \"4422334455667788\",\n        \"variant\": \"WHITE\"\n    },\n    \"misc\": {\n        \"type\": \"Computer\",\n        \"range\": \"Cables\",\n        \"group\": \"Hardware\",\n        \"method\": \"A/B\",\n        \"abc\": \"C\",\n        \"country\": \"China\",\n        \"complaint\": true\n    },\n    \"packaging\": [\n        {\n            \"code\": \"base_unit\",\n            \"name\": \"Unit\",\n            \"base\": true,\n            \"default\": true,\n            \"units\": 1\n        }\n    ],\n    \"bom\": {\n        \"parts\": []\n    }\n}"},"url":"https://{{apiUrl}}/warehouse/products/{{productId}}"},"response":[],"_postman_id":"3dc6e32c-29cc-4944-9a3a-2df2e8e657f2"},{"name":"Get product by ID","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"23100b2e-eba3-4879-8f9a-96e970de1893","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/warehouse/products/{{productId}}"},"response":[],"_postman_id":"23100b2e-eba3-4879-8f9a-96e970de1893"},{"name":"List active products","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"13e7c7a8-1d63-481f-8fcb-44973cf49844","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/warehouse/products?active=true","protocol":"https","host":["{{apiUrl}}"],"path":["warehouse","products"],"query":[{"key":"active","value":"true"}]}},"response":[],"_postman_id":"13e7c7a8-1d63-481f-8fcb-44973cf49844"},{"name":"Search products by name or code","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"86df2f09-8ab7-4042-ba95-be2908c590aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/warehouse/products?search=4.0&active=true","protocol":"https","host":["{{apiUrl}}"],"path":["warehouse","products"],"query":[{"key":"search","value":"4.0"},{"key":"active","value":"true"}]}},"response":[],"_postman_id":"86df2f09-8ab7-4042-ba95-be2908c590aa"},{"name":"Search products by code","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"41a8a4ac-001d-43c2-b14a-da5cd0244adf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/warehouse/products?code=CBL-001","protocol":"https","host":["{{apiUrl}}"],"path":["warehouse","products"],"query":[{"key":"code","value":"CBL-001"}]}},"response":[],"_postman_id":"41a8a4ac-001d-43c2-b14a-da5cd0244adf"},{"name":"Delete product","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"943f08d8-15ff-4957-8f13-d91c3e0a8b45","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/warehouse/products/{{productId}}","description":"Delete operation will not delete physical record, it will change the property 'active' to value 'false'.\n\nIt is used to apply filter by 'active' property in GET queries for user convenience:\n\n```\nGET  .../products?active=true\n```"},"response":[],"_postman_id":"943f08d8-15ff-4957-8f13-d91c3e0a8b45"}],"id":"9c2c2c2c-a5c4-4559-9507-3116dc763333","description":"This collection provides sample requests to manage products.\n\n","event":[{"listen":"prerequest","script":{"id":"b800e65a-461f-4625-89ce-07670b983369","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"5e403fc6-d25d-4f87-a099-482a8de1d5d2","type":"text/javascript","exec":[""]}}],"_postman_id":"9c2c2c2c-a5c4-4559-9507-3116dc763333"},{"name":"Stock","item":[{"name":"Create product stock with qty","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"896f8b81-3ed4-4438-90e2-3bf69236012d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"productId\": \"{{productId}}\",\n    \"warehouseId\": \"{{warehouseId}}\",\n    \"zone\": {\n        \"id\": \"{{zoneId}}\",\n        \"code\": \"S02\"\n    },\n    \"type\": \"RESET\",\n    \"quantity\": {\n        \"value\": 100,\n        \"uom\": {\n            \"code\": \"base_unit\",\n            \"name\": \"Unit\",\n            \"base\": true,\n            \"default\": true,\n            \"units\": 1\n        }\n    }\n}"},"url":"https://{{apiUrl}}/warehouse/stock/transactions","description":"Stock quantity is managed by posting stock transactions. Stock transaction represents a product movement in a warehouse and affects stock quantity. \n\nAt the moment system supports the following stock transaction types:\n- PUTAWAY: putting product into the warehouse for storage, increases stock quantity\n- PICK: picking product from the warehouse, decreases stock quantity\n- ADJUSTMENT: other stock quantity adjustment, quantity value can be positive or negative\n- RESET: resets stock quantity into the given value. This is a special type of stock transaction, recommended only if correct stock quantity is tracked in another system. Using this transaction type may cause loosing stock quantity audit and traceability.\n\nEach stock transaction must have the following key properties:\n - warehouse Id\n - warehouse zone Id (stock is always maintained by zones)\n - product Id\n - transaction type\n - transaction quantity\n\nTransaction cannot be updated. Create another 'ADJUSTMENT' transaction to correct the quantity if needed.\n"},"response":[],"_postman_id":"896f8b81-3ed4-4438-90e2-3bf69236012d"},{"name":"Adjust stock - add qty","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"66b32dac-8856-4f32-97b8-01c2b3709560","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"productId\": \"{{productId}}\",\n    \"warehouseId\": \"{{warehouseId}}\",\n    \"zone\": {\n        \"id\": \"{{zoneId}}\",\n        \"code\": \"S02\"\n    },\n    \"type\": \"ADJUSTMENT\",\n    \"quantity\": {\n        \"value\": 10,\n        \"uom\": {\n            \"code\": \"base_unit\",\n            \"name\": \"Unit\",\n            \"base\": true,\n            \"default\": true,\n            \"units\": 1\n        }\n    }\n}"},"url":"https://{{apiUrl}}/warehouse/stock/transactions","description":"Stock quantity is managed by posting stock transactions. Stock transaction represents a product movement in a warehouse and affects stock quantity. \n\nAt the moment system supports the following stock transaction types:\n- PUTAWAY: putting product into the warehouse for storage, increases stock quantity\n- PICK: picking product from the warehouse, decreases stock quantity\n- ADJUSTMENT: other stock quantity adjustment, quantity value can be positive or negative\n- RESET: resets stock quantity into the given value. This is a special type of stock transaction, recommended only if correct stock quantity is tracked in another system. Using this transaction type may cause loosing stock quantity audit and traceability.\n\nEach stock transaction must have the following key properties:\n - warehouse Id\n - warehouse zone Id (stock is always maintained by zones)\n - product Id\n - transaction type\n - transaction quantity\n\nTransaction cannot be updated. Create another 'ADJUSTMENT' transaction to correct the quantity if needed.\n"},"response":[],"_postman_id":"66b32dac-8856-4f32-97b8-01c2b3709560"},{"name":"Adjust stock - remove qty","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"a660ee26-41ec-4b02-9841-deafa34654c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"productId\": \"{{productId}}\",\n    \"warehouseId\": \"{{warehouseId}}\",\n    \"zone\": {\n        \"id\": \"{{zoneId}}\",\n        \"code\": \"S02\"\n    },\n    \"type\": \"ADJUSTMENT\",\n    \"quantity\": {\n        \"value\": -20,\n        \"uom\": {\n            \"code\": \"base_unit\",\n            \"name\": \"Unit\",\n            \"base\": true,\n            \"default\": true,\n            \"units\": 1\n        }\n    }\n}"},"url":"https://{{apiUrl}}/warehouse/stock/transactions","description":"Stock quantity is managed by posting stock transactions. Stock transaction represents a product movement in a warehouse and affects stock quantity. \n\nAt the moment system supports the following stock transaction types:\n- PUTAWAY: putting product into the warehouse for storage, increases stock quantity\n- PICK: picking product from the warehouse, decreases stock quantity\n- ADJUSTMENT: other stock quantity adjustment, quantity value can be positive or negative\n- RESET: resets stock quantity into the given value. This is a special type of stock transaction, recommended only if correct stock quantity is tracked in another system. Using this transaction type may cause loosing stock quantity audit and traceability.\n\nEach stock transaction must have the following key properties:\n - warehouse Id\n - warehouse zone Id (stock is always maintained by zones)\n - product Id\n - transaction type\n - transaction quantity\n\nTransaction cannot be updated. Create another 'ADJUSTMENT' transaction to correct the quantity if needed.\n"},"response":[],"_postman_id":"a660ee26-41ec-4b02-9841-deafa34654c8"},{"name":"Reset product stock","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"1329ee6f-898d-4aa9-a93a-fd6f59e0469a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n    \"productId\": \"{{productId}}\",\n    \"warehouseId\": \"{{warehouseId}}\",\n    \"zone\": {\n        \"id\": \"{{zoneId}}\",\n        \"code\": \"S02\"\n    },\n    \"type\": \"RESET\",\n    \"quantity\": {\n        \"value\": 200,\n        \"uom\": {\n            \"code\": \"base_unit\",\n            \"name\": \"Unit\",\n            \"base\": true,\n            \"default\": true,\n            \"units\": 1\n        }\n    }\n}"},"url":"https://{{apiUrl}}/warehouse/stock/transactions","description":"Stock quantity is managed by posting stock transactions. Stock transaction represents a product movement in a warehouse and affects stock quantity. \n\nAt the moment system supports the following stock transaction types:\n- PUTAWAY: putting product into the warehouse for storage, increases stock quantity\n- PICK: picking product from the warehouse, decreases stock quantity\n- ADJUSTMENT: other stock quantity adjustment, quantity value can be positive or negative\n- RESET: resets stock quantity into the given value. This is a special type of stock transaction, recommended only if correct stock quantity is tracked in another system. Using this transaction type may cause loosing stock quantity audit and traceability.\n\nEach stock transaction must have the following key properties:\n - warehouse Id\n - warehouse zone Id (stock is always maintained by zones)\n - product Id\n - transaction type\n - transaction quantity\n\nTransaction cannot be updated. Create another 'ADJUSTMENT' transaction to correct the quantity if needed.\n"},"response":[],"_postman_id":"1329ee6f-898d-4aa9-a93a-fd6f59e0469a"},{"name":"Reset product stock  - 123 case","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"35a64911-85d0-4b2c-a821-f29fa71d71cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\r\n   \"productId\":\"5e2826ed612c7441126da310\",\r\n   \"warehouseId\":\"5e08befb6f808d678793af57\",\r\n   \"zone\":{\r\n      \"id\":\"5e08befb6f808d678793af57\",\r\n      \"code\":\"S02\"\r\n   },\r\n   \"type\":\"RESET\",\r\n   \"quantity\":{\r\n      \"value\":10.0,\r\n      \"uom\":{\r\n         \"code\":\"base_unit\",\r\n         \"name\":\"Unit\",\r\n         \"base\":true,\r\n         \"default\":true,\r\n         \"units\":1\r\n      }\r\n   }\r\n}"},"url":"https://{{apiUrl}}/warehouse/stock/transactions","description":"Stock quantity is managed by posting stock transactions. Stock transaction represents a product movement in a warehouse and affects stock quantity. \n\nAt the moment system supports the following stock transaction types:\n- PUTAWAY: putting product into the warehouse for storage, increases stock quantity\n- PICK: picking product from the warehouse, decreases stock quantity\n- ADJUSTMENT: other stock quantity adjustment, quantity value can be positive or negative\n- RESET: resets stock quantity into the given value. This is a special type of stock transaction, recommended only if correct stock quantity is tracked in another system. Using this transaction type may cause loosing stock quantity audit and traceability.\n\nEach stock transaction must have the following key properties:\n - warehouse Id\n - warehouse zone Id (stock is always maintained by zones)\n - product Id\n - transaction type\n - transaction quantity\n\nTransaction cannot be updated. Create another 'ADJUSTMENT' transaction to correct the quantity if needed.\n"},"response":[],"_postman_id":"35a64911-85d0-4b2c-a821-f29fa71d71cb"}],"id":"a849a526-13cb-4d62-96c6-bc097973efd1","description":"Product stock management.","_postman_id":"a849a526-13cb-4d62-96c6-bc097973efd1"},{"name":"Picks","item":[{"name":"Search Picks by order number","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('pickId', json.data[0].id)",""],"type":"text/javascript"}}],"id":"ef28ef8d-131a-47ae-8b30-9c3e18762cdf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/warehouse/picks?order.number=SO-100/TST-003","protocol":"https","host":["{{apiUrl}}"],"path":["warehouse","picks"],"query":[{"key":"order.number","value":"SO-100/TST-003"}]},"description":"Retreive existing Sale Orders.\nThis API endpoint can be used for:\n* list existing sale orders\n* search/filter sale order by some criteria \n\n__Filtering__\nUse query parameter 'search' to filter sales orders by:\n* order number\n* customer name \n\n__Pagination__\nThis API uses pagination and for a particular request returns only part of the records.\nUse the following parameters to control result pages:\n* page : page number, first page number is 0 by default\n* size : page size, not larger than 100 , 100 is by default \n"},"response":[],"_postman_id":"ef28ef8d-131a-47ae-8b30-9c3e18762cdf"},{"name":"Search Picks by order number and expected date","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('pickId', json.data[0].id)",""],"type":"text/javascript"}}],"id":"154b3f01-bbc8-4e03-8328-6a703c454f11","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/warehouse/picks?order.number=SO-100/TST-002&order.expectedDate=1577232000000","protocol":"https","host":["{{apiUrl}}"],"path":["warehouse","picks"],"query":[{"key":"order.number","value":"SO-100/TST-002"},{"key":"order.expectedDate","value":"1577232000000"}]},"description":"Retreive existing Sale Orders.\nThis API endpoint can be used for:\n* list existing sale orders\n* search/filter sale order by some criteria \n\n__Filtering__\nUse query parameter 'search' to filter sales orders by:\n* order number\n* customer name \n\n__Pagination__\nThis API uses pagination and for a particular request returns only part of the records.\nUse the following parameters to control result pages:\n* page : page number, first page number is 0 by default\n* size : page size, not larger than 100 , 100 is by default \n"},"response":[],"_postman_id":"154b3f01-bbc8-4e03-8328-6a703c454f11"},{"name":"Get Pick data by ID","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":[""],"type":"text/javascript"}}],"id":"b215df64-0945-4b96-af0d-6b7f746cf95c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":"https://{{apiUrl}}/warehouse/picks/{{pickId}}","description":"Retreive existing Sale Orders.\nThis API endpoint can be used for:\n* list existing sale orders\n* search/filter sale order by some criteria \n\n__Filtering__\nUse query parameter 'search' to filter sales orders by:\n* order number\n* customer name \n\n__Pagination__\nThis API uses pagination and for a particular request returns only part of the records.\nUse the following parameters to control result pages:\n* page : page number, first page number is 0 by default\n* size : page size, not larger than 100 , 100 is by default \n"},"response":[],"_postman_id":"b215df64-0945-4b96-af0d-6b7f746cf95c"}],"id":"83184cb2-e681-418c-b0e2-c6bb7b59d58c","description":"This collection demonstrates Vasanda API for warehouse Pick jobs.\nIt is a part of 'Warehouse' Vasanda module. All requests must be authorized with a token sent in 'Authorization' header.","_postman_id":"83184cb2-e681-418c-b0e2-c6bb7b59d58c"},{"name":"Shipping","item":[{"name":"Post shipment request","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","","// Response is OK","pm.test('Response is OK', function () {","","    // Status is 200","    pm.response.to.have.status(200)","    // Response time","    pm.expect(pm.response.responseTime).to.be.below(1000)","","}); ","            ","// Response has all data","pm.test('Response has all data', function () {","    pm.expect(json).to.have.ownProperty('id')","})","","pm.environment.set('requestId', json.id)",""],"type":"text/javascript"}}],"id":"02432041-c3c3-4147-a41f-ad29fccfad18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Tea shipment London Nov 26\",\n  \"number\": \"CN-25\",\n\n  \"type\": \"DOOR_TO_DOOR\",\n  \"mode\": \"ROAD\",\n  \"term\": \"EXW\",\n  \"market\": \"PUBLIC\",\n\n  \"startLocation\": {\n    \"expectedPeriod\": {\n      \"startDate\": 1574758800000,\n      \"endDate\": 1574766000000\n    },\n    \"port\": null,\n    \"airport\": null,\n    \"type\": \"CUSTOM\",\n    \"address\": {\n      \"text\": \"Warren Road, Brighton, BN2 9XX, United Kingdom\",\n      \"components\": {\n        \"country\": \"United Kingdom\",\n        \"countryCode\": \"GB\",\n        \"city\": \"Brighton\",\n        \"postcode\": \"BN2 9XX\",\n        \"address\": \"Warren Road\"\n      },\n      \"location\": {\n        \"lat\": 50.8321873,\n        \"lng\": -0.1117071\n      },\n      \"note\": \"\"\n    }\n  },\n\n  \"endLocation\": {\n    \"expectedPeriod\": {\n      \"startDate\": 1574787600000,\n      \"endDate\": 1574798400000\n    },\n    \"port\": null,\n    \"airport\": null,\n    \"type\": \"CUSTOM\",\n    \"address\": {\n      \"text\": \"Great Russell Street, London, United Kingdom\",\n      \"components\": {\n        \"country\": \"United Kingdom\",\n        \"countryCode\": \"GB\",\n        \"city\": \"London\",\n        \"postcode\": \"\",\n        \"address\": \"Great Russell Street\"\n      },\n      \"location\": {\n        \"lat\": 51.5179223,\n        \"lng\": -0.1271087\n      },\n      \"note\": \"\"\n    }\n  },\n\n  \"consignee\": {\n    \"accountId\": \"\",\n    \"name\": \"Test Consignee\",\n    \"contacts\": [{\n      \"name\": \"Test Consignee\",\n      \"email\": \"test-consignee@vasanda.com\",\n      \"phones\": [{\n        \"value\": \"+18002223344\"\n      }]\n    }]\n  },\n\n  \"freight\": {\n    \"class\": 300,\n    \"type\": \"BOXES\",\n    \"items\": [{\n      \"name\": \"10 boxes of tea\",\n      \"description\": \"Black bagged tea , A grade, 10 boxes in wooden cases\",\n      \"hsCode\": \"09\",\n      \"quantity\": 10,\n      \"dimensions\": {\n        \"volume\": {\n          \"value\": 0.0563,\n          \"uom\": \"CUBIC_METER\"\n        },\n        \"weight\": {\n          \"value\": 2.5,\n          \"uom\": \"KILOGRAM\"\n        },\n        \"length\": {\n          \"value\": 0.5,\n          \"uom\": \"METER\"\n        },\n        \"width\": {\n          \"value\": 0.25,\n          \"uom\": \"METER\"\n        },\n        \"height\": {\n          \"value\": 0.45,\n          \"uom\": \"METER\"\n        }\n      },\n      \"type\": \"BOX\",\n      \"palletType\": null,\n      \"products\": []\n    }],\n    \"total\": {\n      \"weight\": {\n        \"value\": 25,\n        \"uom\": \"KILOGRAM\"\n      },\n      \"volume\": {\n        \"value\": 0.563,\n        \"uom\": \"CUBIC_METER\"\n      }\n    },\n    \"properties\": {\n      \"liquid\": false,\n      \"fragile\": true,\n      \"dangerous\": false\n    }\n  },\n  \n  \"services\": {\n    \"loading\": true,\n    \"unloading\": true,\n    \"packing\": false,\n    \"labeling\": false,\n    \"wrapping\": false\n  }\n\n}\n"},"url":"https://{{apiUrl}}/sale/shipmentrequests","description":"User this API endpoint to create a new shipment request. \n\nKey data model properties are described below.\n\n__type__\nThis property specifies type of delivery required for this shipment. Supported values are:\n* DOOR_TO_DOOR\n* DOOR_TO_PORT\n* DOOR_TO_WAREHOUSE\n* WAREHOUSE_TO_PORT\n* WAREHOUSE_TO_DOOR\n* WAREHOUSE_TO_WAREHOUSE\n* PORT_TO_PORT\n* PORT_TO_DOOR\n* CUSTOM_CLEARANCE\n* AIRPORT_TO_AIRPORT\n\n__mode__\nThis property specifies the mode of transport:\n* ROAD\n* SEA\n* AIR\n\n__term__\nThe value must be one of standard Inco-terms used in logistic.\n\n__market__\nThis property specifies if this shipment request must be published on Vasanda public marketplace or not. Suported values are:\n* PUBLIC : request visible to all marketplace carriers registered on Vasanda platform. \n* PRIVATE : request visible only to invited carriers. See Shipment Request Invitation description for more details.\n* INTERNAL : request is visible only to this Vasanda account. This can be used if you have your own transport fleet and you will handle this shipment internally within your own company.\n\n__status__\nThis property tracks shipment request lifecycle, supported values are:\n* DRAFT : create request but do not publish it on a marketplace, or do not make it visible in Logistic module yet. Can be used to create shipment request with some missing information , or not yet approved etc.\n* ACTIVE : active request will be published on a marketplace (if market=PUBLIC), or will be available for private partner carrier invitation etc.\n* CLOSED : request has been quoted and the quote has been accepted. In this state public request will not be availble for quoting on a marketplace.\n* CANCELED : request has been canceled. Keep in mind, that if certain downstream processing has been initiated (such as delivery planning and execution), canceling the request may not always impact or cancel those downstream workflows.\n\n__consignee__\nInformation about shipment receiver, or consignee. This information provides shipment receiver contact detailes which may be used for delivery planning and execution.\n\n__freight__\nThis section provides the freight (shipping goods) specificaion. It consists of shipping items. Each item must have unique name.\nYou can use shipping items to specify your freight in terms of standard packaging options - boxes, pallets, or containers. Also you can use freight type 'LOOSE' to specify actuall products or non-standard packaging. For example, you can specify your shipment item as:\n'Black leather sofa' \nif you want to provide more detailed description of your shipping item.\n\nIf you describe your freight in terms of boxes, pallets or containers, additionally, for each item you can provide detailed products specification (this is optional, and can be used only if required).\n"},"response":[],"_postman_id":"02432041-c3c3-4147-a41f-ad29fccfad18"},{"name":"Search Shipment by order number","event":[{"listen":"test","script":{"id":"bfaefae0-8eaf-48b9-aefc-861e9b5a768c","exec":["let json = pm.response.json()","pm.environment.set('pickId', json.data[0].id)",""],"type":"text/javascript"}}],"id":"1b6e6d30-bc63-4853-b05e-a68165e62e4f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","type":"text","value":"{{authToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"https://{{apiUrl}}/logistic/shipments?order.number=SO-100/TST-002","protocol":"https","host":["{{apiUrl}}"],"path":["logistic","shipments"],"query":[{"key":"order.number","value":"SO-100/TST-002"}]},"description":"Retreive existing Sale Orders.\nThis API endpoint can be used for:\n* list existing sale orders\n* search/filter sale order by some criteria \n\n__Filtering__\nUse query parameter 'search' to filter sales orders by:\n* order number\n* customer name \n\n__Pagination__\nThis API uses pagination and for a particular request returns only part of the records.\nUse the following parameters to control result pages:\n* page : page number, first page number is 0 by default\n* size : page size, not larger than 100 , 100 is by default \n"},"response":[],"_postman_id":"1b6e6d30-bc63-4853-b05e-a68165e62e4f"}],"id":"459ee412-e54b-4cf1-8b21-43dbed814422","description":"This folder provides sample requests for Shipper workflows integration. ","event":[{"listen":"prerequest","script":{"id":"4018d78e-5754-4698-8840-5ac5e09e3b36","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"a8106350-9982-429b-a554-9f66b83e1da4","type":"text/javascript","exec":[""]}}],"_postman_id":"459ee412-e54b-4cf1-8b21-43dbed814422"}],"auth":{"type":"apikey","apikey":{}},"event":[{"listen":"prerequest","script":{"id":"90937d14-8e37-4f50-a182-2c4aeecd7002","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"fd968a3e-2d68-474b-b0d0-62a5a239fa96","type":"text/javascript","exec":[""]}}],"variable":[{"key":"loginEmail","value":""}]}