{"info":{"_postman_id":"79fde42b-3b2d-42ac-8f41-77391d512e85","name":"Vertical Integrate API","description":"<html><head></head><body><p>This documentation will describe the verious endpoints available to interact with your wholesale agreement via the Vertical Integrate API.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"47421989","collectionId":"79fde42b-3b2d-42ac-8f41-77391d512e85","publishedId":"2sB3WvKwyo","public":true,"customColor":{"top-bar":"1c1c3b","right-sidebar":"1c1c3b","highlight":"6b38e5"},"publishDate":"2025-11-12T14:39:49.000Z"},"item":[{"name":"Auth","item":[],"id":"86b397e9-986f-469d-b77b-3ec9643b495f","description":"<p>The Vertical Integrate API is a RESTful API which requires an API key and an API secret, issued by Vertical, to access.</p>\n<h2 id=\"get-requests\">GET requests</h2>\n<p>GET requests contain no body payload and so only require the API key to be passed in the API-KEY header</p>\n<h2 id=\"post-put-and-patch-requests\">POST, PUT and PATCH requests</h2>\n<p>Requests which send a payload in the body require, in addition to the API key passed in the headers, an HMAC hash of the body payload to be sent in another header, API-HASH, using the issued API secret.</p>\n<p>Example in PHP, where <code>$payload</code> is your JSON body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-php\">    $hash = hash_hmac(\"sha512\", $payload, $secret);\n    curl_setopt($ch, CURLOPT_HTTPHEADER, array(\n        \"API-KEY: {$key}\",\n        \"API-HASH: {$hash}\"\n    ));\n\n</code></pre>\n<h2 id=\"variables\">Variables</h2>\n<p>To use this postman collections the below environmental variables should be set:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Test Value</strong></th>\n<th><strong>Live Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>base_url</td>\n<td>default</td>\n<td><a href=\"https://api.test.durham.cloud/wholesale\">https://api.test.durham.cloud/wholesale</a></td>\n<td><a href=\"https://api.durham.cloud/wholesale\">https://api.durham.cloud/wholesale</a></td>\n</tr>\n<tr>\n<td>API_key</td>\n<td>secret</td>\n<td>to be provided by TSEG</td>\n<td>to be provided by TSEG</td>\n</tr>\n<tr>\n<td>secret</td>\n<td>secret</td>\n<td>to be provided by TSEG</td>\n<td>to be provided by TSEG</td>\n</tr>\n</tbody>\n</table>\n</div><p>All values in single {} should be replaced with the appropriate value.</p>\n","_postman_id":"86b397e9-986f-469d-b77b-3ec9643b495f"},{"name":"Quote","item":[{"name":"Get Quote","event":[{"listen":"prerequest","script":{"id":"371623b3-734b-42e8-9e64-4758804e2c12","exec":[""],"type":"text/javascript","packages":{}}}],"id":"78d829cb-2e08-457b-9476-232438183a0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/quote?address={address}&town={town}&postcode={postcode}&capacity={capacity}&start_date={start_date}&end_date={end_date}&udprn={udprn}&uprn={uprn}&electricity={electricity}&gas={gas}&broadband={broadband}&water={water}&tvl={tvl}&is_unlimited={is_unlimited}","urlObject":{"path":["quote"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The properies address lines, excluding the town and postcode</p>\n","type":"text/plain"},"key":"address","value":"{address}"},{"description":{"content":"<p>The town of the property.</p>\n","type":"text/plain"},"key":"town","value":"{town}"},{"description":{"content":"<p>The properties postcode. The format must include a space between the outward and inward code.</p>\n","type":"text/plain"},"key":"postcode","value":"{postcode}"},{"description":{"content":"<p>The number of people who will be living at the property. </p>\n","type":"text/plain"},"key":"capacity","value":"{capacity}"},{"description":{"content":"<p>The date the contract will start in YYYY-MM-DD format. </p>\n","type":"text/plain"},"key":"start_date","value":"{start_date}"},{"description":{"content":"<p>The contract end date. Must be 10 months or more after the start date. Format is YYYY-MM-DD. </p>\n","type":"text/plain"},"key":"end_date","value":"{end_date}"},{"description":{"content":"<p>The unique delivery point reference number.</p>\n","type":"text/plain"},"key":"udprn","value":"{udprn}"},{"description":{"content":"<p>The unique property reference number.</p>\n","type":"text/plain"},"key":"uprn","value":"{uprn}"},{"description":{"content":"<p>Use 1 to include the service in the quote. Otherwise, 0. </p>\n","type":"text/plain"},"key":"electricity","value":"{electricity}"},{"description":{"content":"<p>Use 1 to include the service in the quote. Otherwise, 0. </p>\n","type":"text/plain"},"key":"gas","value":"{gas}"},{"description":{"content":"<p>Use 1 to include the service in the quote. Otherwise, 0. </p>\n","type":"text/plain"},"key":"broadband","value":"{broadband}"},{"description":{"content":"<p>Use 1 to include the service in the quote. Otherwise, 0. </p>\n","type":"text/plain"},"key":"water","value":"{water}"},{"description":{"content":"<p>Use 1 to include the service in the quote. Otherwise, 0. </p>\n","type":"text/plain"},"key":"tvl","value":"{tvl}"},{"description":{"content":"<p>Is for unlimited agreement</p>\n","type":"text/plain"},"key":"is_unlimited","value":"{is_unlimited}"}],"variable":[]}},"response":[{"id":"16a43766-cb37-4af5-bf3b-01b92288970d","name":"200 Success","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"https://api.test.durham.cloud/wholesale/quote?address=&town=&postcode&capacity=&start_date=&end_date=&udprn=&uprn=&electricity=1&gas=1&broadband=1&water=1&tvl=0","protocol":"https","host":["api","test","durham","cloud"],"path":["wholesale","quote"],"query":[{"key":"address","value":"","description":"The properies address lines, excluding the town and postcode **Required**"},{"key":"town","value":"","description":"The town of the property. **Required**"},{"key":"postcode","value":null,"description":"The properties postcode. The format must include a space between the outward and inward code."},{"key":"capacity","value":"","description":"The number of people who will be living at the property. **Required**"},{"key":"start_date","value":"","description":"The date the contract will start in YYYY-MM-DD format. **Required**"},{"key":"end_date","value":"","description":"The contract end date. Must be 10 months or more after the start date. Format is YYYY-MM-DD. **Required**"},{"key":"udprn","value":"","description":"The unique delivery point reference number."},{"key":"uprn","value":"","description":"The unique property reference number."},{"key":"electricity","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0. **Required**"},{"key":"gas","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0. **Required**"},{"key":"broadband","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0. **Required**"},{"key":"water","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0. **Required**"},{"key":"tvl","value":"0","description":"Use 1 to include the service in the quote. Otherwise, 0. (TV Licence) **Required**"},{"key":"is_unlimited","value":"0","description":"Is for unlimited agreement","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 11 Aug 2025 13:19:10 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"298"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"electricity\":\t{\n//Price structure for an energy service quote. Service will only be displayed if selected on request.\n\n        \"is_available\": \"<boolean>\",\n        //True if the service is available. Otherwise, false.\n\n        \"monthly_fee\": \"<number>\",\n        //Price for the service for the whole property per month.\n\n        \"tenant_week\": \"<number>\",\n        //Price for the service per tenant per week.\n\n        \"tenant_month\":\t\"<number>\",\n        //Price for the service per tenant per month.\n\n        \"unit_rate\": \"<number>\",\n        //Price per kWh unit.\n\n        \"standing_charge\": \"<number>\",\n        //Price per day for the service.\n\n        \"annual_consumption\": \"<number>\",\n        //Annual consumption.\n\n        \"tariff_pricing_type\": \"<string>\",\n        //Tariff pricing type. (area, capacity, consumption)\n\n        \"is_ppm\": \"<boolean>\",\n        //Is pre-payment meter. Value can be null if it is unknown.\n\n        \"comment\": \"<string>\"\n        //Feedback on generating quote on service if any.\n    },\n    \"gas\":\t{\n//Price structure for an energy service quote. Service will only be displayed if selected on request.\n\n        \"is_available\":\t\"<boolean>\",\n        //True if the service is available. Otherwise, false.\n\n        \"monthly_fee\": \"<number>\",\n        //Price for the service for the whole property per month.\n\n        \"tenant_week\": \"<number>\",\n        //Price for the service per tenant per week.\n\n        \"tenant_month\": \"<number>\",\n        //Price for the service per tenant per month.\n\n        \"unit_rate\": \"<number>\",\n        //Price per kWh unit.\n\n        \"standing_charge\": \"<number>\",\n        //Price per day for the service.\n\n        \"annual_consumption\": \"<number>\",\n        //Annual consumption.\n\n        \"tariff_pricing_type\": \"<string>\",\n        //Tariff pricing type. (area, capacity, consumption)\n        \n        \"is_ppm\": \"<boolean>\",\n        //Is pre-payment meter. Value can be null if it is unknown.\n\n        \"comment\": \"<string>\"\n        //Feedback on generating quote on service if any.\n    },\n    \"broadband\": {\n//Broadband quotes for available packages. Service will only be displayed if selected on request.\n\n        \"is_available\":\t\"<boolean>\",\n        //True if the service is available. Otherwise, false.\n\n        \"provider\":\t\"<string>\",\n        //Supplier name.\n\n        \"package_name\": \"<string>\",\n        //Package name.\n\n        \"package_code\":\t\"<string>\",\n        //Package code. This is to be used for POST /contracts\n\n        \"monthly_fee\":\t\"<number>\",\n        //Price for the service for the whole property per month.\n\n        \"tenant_week\":\t\"<number>\",\n        //Price for the service per tenant per week.\n\n        \"tenant_month\": \"<number>\",\n        //Price for the service per tenant per month.\n\n        \"min_speed\": \"<number>\",\n        //Minimum download speed.\n\n        \"max_speed\": \"<number>\",\n        //Maximum download speed\n\n        \"estimated_speed\": \"<number>\",\n        //Estimated speed\n\n        \"comment\": \"<string>\"\n        //Feedback on generating quote on service if any.\n\n    },\n    \"water\": {\n//Price structure for a service on a quote. Service will only be displayed if selected on request.\n\n        \"is_available\": \"<boolean>\",\n        //True if the service is available. Otherwise, false.\n\n        \"monthly_fee\": \"<number>\",\n        //Price for the service for the whole property per month.\n\n        \"tenant_week\": \"<number>\",\n        //Price for the service per tenant per week.\n\n        \"tenant_month\": \"<number>\",\n        //Price for the service per tenant per month.\n\n        \"comment\": \"<string>\"\n        //Feedback on generating quote on service if any.\n\n    },\n    \"tvl\": {\n//Price structure for a service on a quote. Service will only be displayed if selected on request.\n\n        \"is_available\":\t\"<boolean>\",\n        //True if the service is available. Otherwise, false.\n\n        \"monthly_fee\": \"<number>\",\n        //Price for the service for the whole property per month.\n\n        \"tenant_week\": \"<number>\",\n        //Price for the service per tenant per week.\n\n        \"tenant_month\": \"<number>\",\n        //Price for the service per tenant per month.\n\n        \"comment\": \"<string>\"\n        //Feedback on generating quote on service if any.\n    }\n }"},{"id":"2d1a84bd-8348-489a-9508-f3a8907d4df3","name":"400 Bad Request - required field missing","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"https://api.test.durham.cloud/wholesale/quote?address={address}&town={town}&postcode={postcode}&electricity=1&gas=1&broadband=1&water=1&tvl=0","protocol":"https","host":["api","test","durham","cloud"],"path":["wholesale","quote"],"query":[{"key":"address","value":"{address}","description":"The properies address lines, excluding the town and postcode"},{"key":"town","value":"{town}","description":"The town of the property."},{"key":"postcode","value":"{postcode}","description":"The properties postcode. The format must include a space between the outward and inward code."},{"key":"capacity","value":"","description":"The number of people who will be living at the property.","disabled":true},{"key":"start_date","value":"","description":"The date the contract will start in YYYY-MM-DD format.","disabled":true},{"key":"end_date","value":"","description":"The contract end date. Must be 10 months or more after the start date. Format is YYYY-MM-DD.\n\n","disabled":true},{"key":"udprn","value":"","description":"The unique delivery point reference number.","type":"text","disabled":true},{"key":"uprn","value":"","description":"The unique property reference number.","type":"text","disabled":true},{"key":"electricity","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"gas","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"broadband","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"water","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"tvl","value":"0","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"is_unlimited","value":"0","description":"Is for unlimited agreement","type":"text","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 11 Aug 2025 13:24:48 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"The capacity field is required. (and 2 more errors)\",\n    \"errors\": {\n        \"capacity\": [\n            \"The capacity field is required.\"\n        ],\n        \"start_date\": [\n            \"The start date field is required.\"\n        ],\n        \"end_date\": [\n            \"The end date field is required.\"\n        ]\n    }\n}"},{"id":"b7b4f209-7384-453a-8e4f-e2d46e5ac10f","name":"400 Bad Request - invalid postcode","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"https://api.test.durham.cloud/wholesale/quote?address={address}&town={town}&postcode={postcode}&capacity={capacity}&start_date={start_date}&end_date={end_date}&electricity=1&gas=1&broadband=1&water=1&tvl=0","protocol":"https","host":["api","test","durham","cloud"],"path":["wholesale","quote"],"query":[{"key":"address","value":"{address}","description":"The properies address lines, excluding the town and postcode"},{"key":"town","value":"{town}","description":"The town of the property."},{"key":"postcode","value":"{postcode}","description":"The properties postcode. The format must include a space between the outward and inward code."},{"key":"capacity","value":"{capacity}","description":"The number of people who will be living at the property."},{"key":"start_date","value":"{start_date}","description":"The date the contract will start in YYYY-MM-DD format."},{"key":"end_date","value":"{end_date}","description":"The contract end date. Must be 10 months or more after the start date. Format is YYYY-MM-DD.\n\n"},{"key":"udprn","value":"","description":"The unique delivery point reference number.","type":"text","disabled":true},{"key":"uprn","value":"","description":"The unique property reference number.","type":"text","disabled":true},{"key":"electricity","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"gas","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"broadband","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"water","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"tvl","value":"0","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"is_unlimited","value":"0","description":"Is for unlimited agreement","type":"text","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 11 Aug 2025 13:25:41 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"298"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"The postcode is not a valid postcode.\",\n    \"errors\": {\n        \"postcode\": [\n            \"The postcode is not a valid postcode.\"\n        ]\n    }\n}"},{"id":"838dd489-9b1b-42f9-9efc-4161d14b4fa8","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text","disabled":true},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-KEY","value":"12345","type":"text"}],"url":{"raw":"https://api.test.durham.cloud/wholesale/quote?address={address}&town={town}&postcode={postcode}&capacity={capacity}&start_date={start_date}&end_date={end_date}&electricity=1&gas=1&broadband=1&water=1&tvl=0","protocol":"https","host":["api","test","durham","cloud"],"path":["wholesale","quote"],"query":[{"key":"address","value":"{address}","description":"The properies address lines, excluding the town and postcode"},{"key":"town","value":"{town}","description":"The town of the property."},{"key":"postcode","value":"{postcode}","description":"The properties postcode. The format must include a space between the outward and inward code."},{"key":"capacity","value":"{capacity}","description":"The number of people who will be living at the property."},{"key":"start_date","value":"{start_date}","description":"The date the contract will start in YYYY-MM-DD format."},{"key":"end_date","value":"{end_date}","description":"The contract end date. Must be 10 months or more after the start date. Format is YYYY-MM-DD.\n\n"},{"key":"udprn","value":"","description":"The unique delivery point reference number.","type":"text","disabled":true},{"key":"uprn","value":"","description":"The unique property reference number.","type":"text","disabled":true},{"key":"electricity","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"gas","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"broadband","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"water","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"tvl","value":"0","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"is_unlimited","value":"0","description":"Is for unlimited agreement","type":"text","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 11 Aug 2025 13:28:51 GMT"},{"key":"Content-Type","value":"text/html; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":null},{"id":"1b30d771-b9c9-417e-8cce-7a1dee327e9c","name":"404 Not Found","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"https://api.test.durham.cloud/wholesale/quote?address={address}&town={town}&postcode={postcode}&capacity={capacity}&start_date={start_date}&end_date={end_date}&electricity=1&gas=1&broadband=1&water=1&tvl=0","protocol":"https","host":["api","test","durham","cloud"],"path":["wholesale","quote"],"query":[{"key":"address","value":"{address}","description":"The properies address lines, excluding the town and postcode"},{"key":"town","value":"{town}","description":"The town of the property."},{"key":"postcode","value":"{postcode}","description":"The properties postcode. The format must include a space between the outward and inward code."},{"key":"capacity","value":"{capacity}","description":"The number of people who will be living at the property."},{"key":"start_date","value":"{start_date}","description":"The date the contract will start in YYYY-MM-DD format."},{"key":"end_date","value":"{end_date}","description":"The contract end date. Must be 10 months or more after the start date. Format is YYYY-MM-DD.\n\n"},{"key":"udprn","value":"","description":"The unique delivery point reference number.","type":"text","disabled":true},{"key":"uprn","value":"","description":"The unique property reference number.","type":"text","disabled":true},{"key":"electricity","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"gas","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"broadband","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"water","value":"1","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"tvl","value":"0","description":"Use 1 to include the service in the quote. Otherwise, 0."},{"key":"is_unlimited","value":"0","description":"Is for unlimited agreement","type":"text","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 11 Aug 2025 13:23:35 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"We were unable to find a property using the address details provided.\",\n    \"context\": {\n        \"search_results\": [\n            {\n                \"Id\": \"UPRN|1000000000001\",\n                \"Type\": \"Address\",\n                \"Text\": \"1 Example Road\",\n                \"Highlight\": \"\",\n                \"Description\": \"Birmingham B1 1AA\"\n            },\n            {\n                \"Id\": \"UPRN|1000000000002\",\n                \"Type\": \"Address\",\n                \"Text\": \"2 Example Rpad\",\n                \"Highlight\": \"\",\n                \"Description\": \"Birmingham B1 1AA\"\n            },\n            {\n                \"Id\": \"UPRN|1000000000003\",\n                \"Type\": \"Address\",\n                \"Text\": \"3 Example Road\",\n                \"Highlight\": \"\",\n                \"Description\": \"Birmingham B1 1AA\"\n            }\n        ]\n    }\n}"}],"_postman_id":"78d829cb-2e08-457b-9476-232438183a0d"}],"id":"9f5a8732-5366-40c4-86dc-e18d87bce366","description":"<p>Use this endpoint to generate a quote for a contract based on the information provided.</p>\n","_postman_id":"9f5a8732-5366-40c4-86dc-e18d87bce366"},{"name":"Contract","item":[{"name":"Create Contract","event":[{"listen":"prerequest","script":{"id":"bc5d26a7-11ff-4b24-ba89-b57d0c0319c0","exec":["// get secret","var secret = pm.environment.get(\"secret\");","// get request body","var req = request.data","var requestBody = pm.variables.replaceIn(pm.request.body.raw);","","// create HMAC SHA512 hash request body and secret","var hashHmacSHA512 = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestBody, secret));","// add headers to request","pm.environment.set(\"API-HASH\", hashHmacSHA512);"],"type":"text/javascript","packages":{}}}],"id":"c76b3956-0ceb-4ad2-af4d-ac824b4e38ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"address\": \"string\", //The properties address lines, excluding the town and postcode.\n  \n  \"town\": \"sting\", //The town of the property.\n  \n  \"postcode\": \"string\", //The properties postcode. The format must include a space between the outward and inward code.\n  \n  \"capacity\": 2, //The number of people that will be living at the property. (Min: 1, Max: 12)\n  \n  \"start_date\": \"string\", //The date the contract will be started from in YYYY-MM-DD format.\n  \n  \"end_date\": \"string\", //The end date for the contract. Date must be 10 months ahead of start_date and format YYYY-MM-DD.\n  \n  \"udprn\": \"sting\", //8 char unique delivery point reference number.\n  \n  \"uprn\": \"string\", //12 char unique property reference number.\n  \n  \"electricity\": true, //Wholesale contracts must have electricity. Therefore, this should be true.\n  \n  \"gas\": true, //True if the contract should have gas. Otherwise, false\n  \n  \"water\": true, //True if the contract should have water. Otherwise, false.\n  \n  \"tvl\": false, //True if the contract should have TV licence. Otherwise, false.\n  \n  \"broadband\": true, //True if the contract should have broadband. Otherwise, false.\n  \n  \"is_unlimited\": true //Is for unlimited agreement\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contract","description":"<p>Add a new contract to your existing wholesale agreement.</p>\n","urlObject":{"path":["contract"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1db07185-4e28-459f-95ca-32c0cb76faca","name":"200 Success","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"address\": \"string\",\n  \"town\": \"sting\",\n  \"postcode\": \"string\",\n  \"capacity\": 2,\n  \"start_date\": \"string\",\n  \"end_date\": \"string\",\n  \"udprn\": \"sting\",\n  \"uprn\": \"string\",\n  \"electricity\": true,\n  \"gas\": true,\n  \"water\": true,\n  \"tvl\": false,\n  \"broadband\": true,\n  \"is_unlimited\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contract"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"reference\": \"<string>\",\n    //The customer reference number of the contract.\n\n    \"address\": \"<string>\",\n    //The address the contract relates to.\n\n    \"capacity\":\t\"<integer>\",\n    //The amount of people living at the property.\n\n    \"start_date\": \"<string>\",\n    //The start date of the contract in YYYY-MM-DD format.\n\n    \"end_date\":\t\"<string>\",\n    //The end date of the contract in YYYY-MM-DD format.\n\n    \"balance\": \"<number>\",\n    //The current balance of the contract.\n\n    \"future_balance\": \"<number>\",\n    //The balance of the contract including payment notices due in the future.\n\n    \"is_reconciled\": \"<boolean>\",\n    //True if the account has had a reconciliation. Otherwise, false.\n\n    \"payment_notices_due\": \"<number>\",\n    //The total of payment notices, in pounds, due for the contract.\n\n    \"payment_notices_issued\": \"<number>\",\n    //The total of payment notices, in pounds, issued to a contract including those due in the future.\n\n    \"total_payments\": \"<number>\",\n    //The total of payments made, in pounds.\n\n    \"occupants\": [\n    //The details of the people living in the property.\n\n        {\n            \"firstname\": \"<string>\",\n            \"lastname\": \"<string>\",\n            \"email\": \"<string>\",\n            \"mobile\": \"<string>\",\n            \"start_date\": \"<string>\",\n            \"end_date\": \"<string>\"\n        }\n    ],\n\n    \"letting_agent\": {\n    //The currently active letting agent that we have details for. Null if there aren't any details.\n\n        \"name\": \"<string>\",\n        \"email\": \"<string>\",\n        \"telephone\": \"<string>\"\n    },\n    \n    \"services\":\t[\n    //Array of services that have been requested for the contract.\n\n        {\n            \"name\":\t\"<string>\",\n            //Name of the service.\n\n            \"order_status\":\t\"<string>\",\n            //The current status of ordering for the service.\n\n            \"start_date\": \"<string>\",\n            //The date the service was requested from for this contract.\n\n            \"billing_start_date\": \"<string>\",\n            //The date the service is being billed from for this contract.\n\n            \"billing_end_date\":\t\"<string>\",\n            //The date the service is being billed up to for this contract.\n\n            \"delivery_point_reference\":\t\"<string>\",\n            //The MPAN or MPRN for the energy services.\n\n            \"meter_type\": \"<string>\",\n            //A code for the currently active meter. A list of codes and what they represent can be found https://www.edq.com/globalassets/documentation/data-guides/adg_gbu.pdf on page 13.\n\n            \"price_per_week\": \"<number>\"\n        }\n    ],\n    \n    \"usage\": {\n    //Usage data for energy services. This will be null if the service is not an energy service.\n\n        \"success\": \"<boolean>\",\n        //True if all data is available to generate a usage timeline, excluding readings. If false, data will be null and message will provide extra detail.\n\n        \"message\": \"<string>\",\n        //An error message if an error occurred. Otherwise, null.\n\n        \"data\":\t{\n            \"actual\":\t{\n            //Usage that has been calculated from readings provided.\n\n                \"success\": \"<boolean>\",\n                //True if all data is available to calculate usage, including readings. If false, data will be null and message will provide extra detail.\n\n                \"message\": \"<string>\",\n                //An error message if an error occurred. Otherwise, null.\n\n                \"data\":\t{\n                    \n                    \"total_pounds\": \"<number>\",\n                    //The calculated usage so far in pounds from the readings provided.\n\n                    \"up_to_date\": \"<string>\",\n                    //The date the actual usage is up to in YYYY-MM-DD format.\n\n                    \"readings\":\t[\n                    //The readings used to calculate cost in each usage period.\n\n                        {\n                    \n                            \"start\": {\n                                \"reading1\":\t\"<integer>\",\n                                //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                                \"reading2\":\t\"<integer>\",\n                                //The night reading if the meter is economy 7. Otherwise, null.\n\n                                \"date\":\t\"<string>\",\n                                //The date the reading was taken in YYYY-MM-DD format.\n\n                                \"is_estimated\":\t\"<boolean>\"\n                                //True if the reading is an estimated reading.\n                            },\n                        \n                            \"end\": {\n                                \n                                \"reading1\":\t\"<integer>\",\n                                //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                                \"reading2\":\t\"<integer>\",\n                                //The night reading if the meter is economy 7. Otherwise, null.\n\n                                \"date\":\t\"<string>\",\n                                //The date the reading was taken in YYYY-MM-DD format.\n\n                                \"is_estimated\": \"<boolean>\"\n                                //True if the reading is an estimated reading.\n                            }\n                        }\n                    ]\n                }\n            },\n\n            \"forecast\":\t{\n            //Forecasting usage using the estimated annual kilowatt hours for the service. If actual usage has been calculated, that will be factored in.\n\n                \"total_pounds\":\t\"<number>\",\n                //The predicted usage in pounds for all usage periods.\n\n                \"estimated_annual_kwh\":\t\"<integer>\",\n                //The kilowatt hours the property is estimated to use in a year. This is used to predict total usage.\n\n                \"suggested_price_per_week\":\t\"<number>\",\n                //The price per person per week that has been calculated using the forecast and payment notices issued so far.\n\n                \"up_to_date\": \"<string>\",\n                //The date the forecasted usage is up to in YYYY-MM-DD format.\n\n                \"includes_usage\": \"<boolean>\"\n                //True if the forecast has actual usage factored into it. Otherwise, false if the forecast is completely based from the estimated consumption.\n            },\n\n            \"periods\": [\n            //The usage periods. Periods could indicate a change in tariff, meter exchange etc.\n\n                {\n\n                    \"period_start_date\": \"<string>\",\n                    \"period_end_date\": \"<string>\",\n                    \"meter\": {\n                        \"serial_number\": \"<string>\",\n                        \"profile_class\": \"<string>\",\n                        \"is_imperial\": \"<boolean>\",\n                        \"is_prepayment\": \"<boolean>\"\n                    },\n                    \n                    \"tariff\": {\n                        \"calorific_value\": \"<number>\",\n                        \"standard_unit_rate\": \"<number>\",\n                        \"economy_unit_rate_day\": \"<number>\",\n                        \"economy_unit_rate_night\": \"<number>\",\n                        \"standard_standing_charge\": \"<number>\",\n                        \"economy_standing_charge\": \"<number>\",\n                        \"vat\": \"<number>\"\n                    }\n                }\n            ]\n        }\n    }\n}"},{"id":"95366d2e-8870-4ced-ad38-ddb3c7ee9f90","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"address\": \"string\",\n  \"town\": \"sting\",\n  \"postcode\": \"string\",\n  \"capacity\": 2,\n  \"start_date\": \"string\",\n  \"end_date\": \"string\",\n  \"udprn\": \"sting\",\n  \"uprn\": \"string\",\n  \"electricity\": true,\n  \"gas\": true,\n  \"water\": true,\n  \"tvl\": false,\n  \"broadband\": true,\n  \"is_unlimited\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contract"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 07:54:02 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message\n}"},{"id":"09c492f9-3df7-40b1-ac75-4df9e33e0db0","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"API-KEY","value":"1234","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"address\": \"string\",\n  \"town\": \"sting\",\n  \"postcode\": \"string\",\n  \"capacity\": 2,\n  \"start_date\": \"string\",\n  \"end_date\": \"string\",\n  \"udprn\": \"sting\",\n  \"uprn\": \"string\",\n  \"electricity\": true,\n  \"gas\": true,\n  \"water\": true,\n  \"tvl\": false,\n  \"broadband\": true,\n  \"is_unlimited\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contract"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 12 Aug 2025 07:50:18 GMT"},{"key":"Content-Type","value":"text/html; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":null},{"id":"2fb2a411-17bc-4eb2-a83e-c5bc3312e169","name":"404 Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"address\": \"string\",\n  \"town\": \"sting\",\n  \"postcode\": \"string\",\n  \"capacity\": 2,\n  \"start_date\": \"string\",\n  \"end_date\": \"string\",\n  \"udprn\": \"sting\",\n  \"uprn\": \"string\",\n  \"electricity\": true,\n  \"gas\": true,\n  \"water\": true,\n  \"tvl\": false,\n  \"broadband\": true,\n  \"is_unlimited\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contract"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 07:44:00 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"We were unable to find a property using the address details provided.\",\n    \"context\": {\n        \"search_results\": [\n            {\n                \"Id\": \"UPRN|1000000000001\",\n                \"Type\": \"Address\",\n                \"Text\": \"1 Example Road\",\n                \"Highlight\": \"\",\n                \"Description\": \"Birmingham B1 1AA\"\n            },\n            {\n                \"Id\": \"UPRN|1000000000002\",\n                \"Type\": \"Address\",\n                \"Text\": \"2 Example Rpad\",\n                \"Highlight\": \"\",\n                \"Description\": \"Birmingham B1 1AA\"\n            },\n            {\n                \"Id\": \"UPRN|1000000000003\",\n                \"Type\": \"Address\",\n                \"Text\": \"3 Example Road\",\n                \"Highlight\": \"\",\n                \"Description\": \"Birmingham B1 1AA\"\n            }\n        ]\n    }\n}"}],"_postman_id":"c76b3956-0ceb-4ad2-af4d-ac824b4e38ab"},{"name":"Get Contract","id":"6e29fcec-d7f8-4030-a26f-17d8d2911ad2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/contracts/{contract_reference}","description":"<p>Retrive information of an existing contract assosiated with your wholesale agreement.</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Desc</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>contract_reference</td>\n<td>string</td>\n<td>The customer reference number for the contract.</td>\n<td>Y</td>\n</tr>\n</tbody>\n</table>\n</div><p>The contract reference can be obtained via the 'Properties' tab location in your TSEG portal</p>\n","urlObject":{"path":["contracts","{contract_reference}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"215793ef-bc35-4bf5-bd19-30de5f0b28a8","name":"200 Success","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/contracts/{contract_reference}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"reference\": \"<string>\",\n    //The customer reference number of the contract.\n\n    \"address\": \"<string>\",\n    //The address the contract relates to.\n\n    \"capacity\":\t\"<integer>\",\n    //The amount of people living at the property.\n\n    \"start_date\": \"<string>\",\n    //The start date of the contract in YYYY-MM-DD format.\n\n    \"end_date\":\t\"<string>\",\n    //The end date of the contract in YYYY-MM-DD format.\n\n    \"balance\": \"<number>\",\n    //The current balance of the contract.\n\n    \"future_balance\": \"<number>\",\n    //The balance of the contract including payment notices due in the future.\n\n    \"is_reconciled\": \"<boolean>\",\n    //True if the account has had a reconciliation. Otherwise, false.\n\n    \"payment_notices_due\": \"<number>\",\n    //The total of payment notices, in pounds, due for the contract.\n\n    \"payment_notices_issued\": \"<number>\",\n    //The total of payment notices, in pounds, issued to a contract including those due in the future.\n\n    \"total_payments\": \"<number>\",\n    //The total of payments made, in pounds.\n\n    \"occupants\": [\n    //The details of the people living in the property.\n\n        {\n            \"firstname\": \"<string>\",\n            \"lastname\": \"<string>\",\n            \"email\": \"<string>\",\n            \"mobile\": \"<string>\",\n            \"start_date\": \"<string>\",\n            \"end_date\": \"<string>\"\n        }\n    ],\n\n    \"letting_agent\": {\n    //The currently active letting agent that we have details for. Null if there aren't any details.\n\n        \"name\": \"<string>\",\n        \"email\": \"<string>\",\n        \"telephone\": \"<string>\"\n    },\n    \n    \"services\":\t[\n    //Array of services that have been requested for the contract.\n\n        {\n            \"name\":\t\"<string>\",\n            //Name of the service.\n\n            \"order_status\":\t\"<string>\",\n            //The current status of ordering for the service.\n\n            \"start_date\": \"<string>\",\n            //The date the service was requested from for this contract.\n\n            \"billing_start_date\": \"<string>\",\n            //The date the service is being billed from for this contract.\n\n            \"billing_end_date\":\t\"<string>\",\n            //The date the service is being billed up to for this contract.\n\n            \"delivery_point_reference\":\t\"<string>\",\n            //The MPAN or MPRN for the energy services.\n\n            \"meter_type\": \"<string>\",\n            //A code for the currently active meter. A list of codes and what they represent can be found https://www.edq.com/globalassets/documentation/data-guides/adg_gbu.pdf on page 13.\n\n            \"price_per_week\": \"<number>\"\n        }\n    ],\n    \n    \"usage\": {\n    //Usage data for energy services. This will be null if the service is not an energy service.\n\n        \"success\": \"<boolean>\",\n        //True if all data is available to generate a usage timeline, excluding readings. If false, data will be null and message will provide extra detail.\n\n        \"message\": \"<string>\",\n        //An error message if an error occurred. Otherwise, null.\n\n        \"data\":\t{\n            \"actual\":\t{\n            //Usage that has been calculated from readings provided.\n\n                \"success\": \"<boolean>\",\n                //True if all data is available to calculate usage, including readings. If false, data will be null and message will provide extra detail.\n\n                \"message\": \"<string>\",\n                //An error message if an error occurred. Otherwise, null.\n\n                \"data\":\t{\n                    \n                    \"total_pounds\": \"<number>\",\n                    //The calculated usage so far in pounds from the readings provided.\n\n                    \"up_to_date\": \"<string>\",\n                    //The date the actual usage is up to in YYYY-MM-DD format.\n\n                    \"readings\":\t[\n                    //The readings used to calculate cost in each usage period.\n\n                        {\n                    \n                            \"start\": {\n                                \"reading1\":\t\"<integer>\",\n                                //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                                \"reading2\":\t\"<integer>\",\n                                //The night reading if the meter is economy 7. Otherwise, null.\n\n                                \"date\":\t\"<string>\",\n                                //The date the reading was taken in YYYY-MM-DD format.\n\n                                \"is_estimated\":\t\"<boolean>\"\n                                //True if the reading is an estimated reading.\n                            },\n                        \n                            \"end\": {\n                                \n                                \"reading1\":\t\"<integer>\",\n                                //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                                \"reading2\":\t\"<integer>\",\n                                //The night reading if the meter is economy 7. Otherwise, null.\n\n                                \"date\":\t\"<string>\",\n                                //The date the reading was taken in YYYY-MM-DD format.\n\n                                \"is_estimated\": \"<boolean>\"\n                                //True if the reading is an estimated reading.\n                            }\n                        }\n                    ]\n                }\n            },\n\n            \"forecast\":\t{\n            //Forecasting usage using the estimated annual kilowatt hours for the service. If actual usage has been calculated, that will be factored in.\n\n                \"total_pounds\":\t\"<number>\",\n                //The predicted usage in pounds for all usage periods.\n\n                \"estimated_annual_kwh\":\t\"<integer>\",\n                //The kilowatt hours the property is estimated to use in a year. This is used to predict total usage.\n\n                \"suggested_price_per_week\":\t\"<number>\",\n                //The price per person per week that has been calculated using the forecast and payment notices issued so far.\n\n                \"up_to_date\": \"<string>\",\n                //The date the forecasted usage is up to in YYYY-MM-DD format.\n\n                \"includes_usage\": \"<boolean>\"\n                //True if the forecast has actual usage factored into it. Otherwise, false if the forecast is completely based from the estimated consumption.\n            },\n\n            \"periods\": [\n            //The usage periods. Periods could indicate a change in tariff, meter exchange etc.\n\n                {\n\n                    \"period_start_date\": \"<string>\",\n                    \"period_end_date\": \"<string>\",\n                    \"meter\": {\n                        \"serial_number\": \"<string>\",\n                        \"profile_class\": \"<string>\",\n                        \"is_imperial\": \"<boolean>\",\n                        \"is_prepayment\": \"<boolean>\"\n                    },\n                    \n                    \"tariff\": {\n                        \"calorific_value\": \"<number>\",\n                        \"standard_unit_rate\": \"<number>\",\n                        \"economy_unit_rate_day\": \"<number>\",\n                        \"economy_unit_rate_night\": \"<number>\",\n                        \"standard_standing_charge\": \"<number>\",\n                        \"economy_standing_charge\": \"<number>\",\n                        \"vat\": \"<number>\"\n                    }\n                }\n            ]\n        }\n    }\n}"},{"id":"3706e554-5309-4404-8247-61d5a44aca22","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"1234","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/contracts/{contract_reference}"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 08:04:24 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":""},{"id":"94f1fd6c-443f-4226-85da-1e7feedc036b","name":"404 Not Found","originalRequest":{"method":"GET","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/contracts/{contract_reference}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 08:03:00 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Record not found.\"\n}"}],"_postman_id":"6e29fcec-d7f8-4030-a26f-17d8d2911ad2"},{"name":"Update Contract End Dates","event":[{"listen":"prerequest","script":{"id":"61c53363-c505-4753-932c-b38e49358b82","exec":["// get secret","var secret = pm.environment.get(\"secret\");","// get request body","var req = request.data","var requestBody = pm.variables.replaceIn(pm.request.body.raw);","","// create HMAC SHA512 hash request body and secret","var hashHmacSHA512 = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestBody, secret));","// add headers to request","pm.environment.set(\"API_Hash\", hashHmacSHA512);"],"type":"text/javascript","packages":{}}}],"id":"9c2b9676-86c6-4a2e-82d9-b8916f535087","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"API_HASH","value":"{API_hash}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n   \"date\": \"string\" //The date the contract is expected to end in YYYY-MM-DD format.\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/dates/end","description":"<p>Use this endpoint to update the end date of a contract</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Desc</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>contract_reference</td>\n<td>string</td>\n<td>The customer reference number for the contract.</td>\n<td>Y</td>\n</tr>\n</tbody>\n</table>\n</div><p>The contract reference can be obtained via the 'Properties' tab location in your TSEG portal.</p>\n","urlObject":{"path":["contracts","{contract_reference}","dates","end"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"4ea89f93-c02e-4705-b11d-7f77e3982dd2","name":"200 Success","originalRequest":{"method":"PATCH","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"date\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/dates/end"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 08:11:55 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n    //Truthy boolean indicating successful operation.\n}"},{"id":"f2bce951-4193-4fa0-98ab-98b6e9b25e7f","name":"400 Bad Request","originalRequest":{"method":"PATCH","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"date\": \"2026/09/01\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/dates/end"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 08:12:48 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message.\n}"},{"id":"9ce64bd0-79fb-4efd-98dc-bd5fdcf4c1a3","name":"401 Unauthorized","originalRequest":{"method":"PATCH","header":[{"key":"API-KEY","value":"1234","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n   \"date\": \"2026-09-01\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/dates/end"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:21:29 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":""},{"id":"56152e4d-886b-4b93-9b46-b1628bb7de2e","name":"404 Not Found","originalRequest":{"method":"PATCH","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n   \"date\": \"2026-09-01\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/dates/end"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:22:17 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Record not found.\"\n}"}],"_postman_id":"9c2b9676-86c6-4a2e-82d9-b8916f535087"},{"name":"Add Letting Agent Details","event":[{"listen":"test","script":{"id":"b679d66f-8f76-4214-8655-e12284c092bb","exec":[""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"fd70204c-f315-4f09-bbf8-0f8b9a6f5634","exec":["// get secret","var secret = pm.environment.get(\"secret\");","// get request body","var req = request.data","var requestBody = pm.variables.replaceIn(pm.request.body.raw);","","// create HMAC SHA512 hash request body and secret","var hashHmacSHA512 = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestBody, secret));","// add headers to request","pm.environment.set(\"API-HASH\", hashHmacSHA512);"],"type":"text/javascript","packages":{}}}],"id":"42c298e0-85d1-4a24-a6e8-e40573be06b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"string\", //The name of the letting agent.\n    \n    \"email\": \"string\", //The preferred email address of the letting agent.\n    \n    \"telephone\": \"string\", //The preferred telephone number of the letting agent. Must begin with a 0 and have 11 digits.\n    \n    \"responsible_from\": \"string\" //The date of which the letting agent became responsible in YYYY-MM-DD format.\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/letting-agents","description":"<p>Use this endpont to provide the letting agent details of a contract realted to your wholesale agreement.</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Desc</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>contract_reference</td>\n<td>string</td>\n<td>The customer reference number for the contract the letting agent relates to.</td>\n<td>Y</td>\n</tr>\n</tbody>\n</table>\n</div><p>The contract reference can be obtained via the 'Properties' tab location in your TSEG portal.</p>\n","urlObject":{"path":["contracts","{contract_reference}","letting-agents"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"a4f63528-7197-47c2-bc8a-bf53610f7093","name":"200 Success","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"telephone\": \"string\",\n    \"responsible_from\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/letting-agents"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:34:10 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n    //Truthy boolean indicating successful operation.\n}"},{"id":"1077faa3-0f33-4791-a685-196ef5d9b791","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"telephone\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/letting-agents"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:33:19 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message.\n}"},{"id":"70043bcc-71b4-44dd-a133-7349900f7110","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"1111","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"telephone\": \"string\",\n    \"responsible_from\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/letting-agents"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:35:07 GMT"},{"key":"Content-Type","value":"text/html; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":null},{"id":"1311c307-1342-46d9-90d2-3d3bf18d9c7e","name":"403 Forbidden","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"telephone\": \"string\",\n    \"responsible_from\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/letting-agents"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:39:36 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"This action is unauthorized.\"\n}"}],"_postman_id":"42c298e0-85d1-4a24-a6e8-e40573be06b2"},{"name":"Add Occupant Details","event":[{"listen":"test","script":{"id":"deec8ab4-4105-4671-9f45-cb483ba312a3","exec":[""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"ab8a044c-e714-490d-9ea3-038cfc35f0ea","exec":["// get secret","var secret = pm.environment.get(\"secret\");","// get request body","var req = request.data","var requestBody = pm.variables.replaceIn(pm.request.body.raw);","","// create HMAC SHA512 hash request body and secret","var hashHmacSHA512 = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestBody, secret));","// add headers to request","pm.environment.set(\"API-HASH\", hashHmacSHA512);"],"type":"text/javascript","packages":{}}}],"id":"60086733-e1e6-4cd2-b84f-2af67c0a3839","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"firstname\": \"string\", //The first name of the occupant\n    \n    \"lastname\": \"string\", //The last name of the occupant\n    \n    \"email\": \"string\", //The email address of the occupant. \n    \n    \"mobile\": \"string\", //The mobile number of the occupant. Must begin with a 0 and have 11 digits.\n    \n    \"date_of_birth\": \"string\", //The date of birth of the occupant in YYYY-MM-DD format.\n    \n    \"start_date\": \"string\", //The date of birth of the occupant in YYYY-MM-DD format.\n    \n    \"end_date\": \"string\" //The date of birth of the occupant in YYYY-MM-DD format.\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/occupants","description":"<p>Use this endpoint to proved details of a person living in the property this contract relates to.</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Desc</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>contract_reference</td>\n<td>string</td>\n<td>The customer reference number for the contract the occupant relates to.</td>\n<td>Y</td>\n</tr>\n</tbody>\n</table>\n</div><p>The contract reference can be obtained via the 'Properties' tab location in your TSEG portal.</p>\n","urlObject":{"path":["contracts","{contract_reference}","occupants"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"35052beb-59d1-4170-8094-b0c847728fc5","name":"200 Success","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"firstname\": \"string\",\n    \"lastname\": \"string\",\n    \"email\": \"string\",\n    \"mobile\": \"string\",\n    \"date_of_birth\": \"string\",\n    \"start_date\": \"string\",\n    \"end_date\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/occupants"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:54:14 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n    //Truthy boolean indicating successful operation.\n}"},{"id":"7daa617e-aca7-4d62-80d4-072495da980e","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"firstname\": \"string\",\n    \"lastname\": \"string\",\n    \"email\": \"string\",\n    \"mobile\": \"string\",\n    \"date_of_birth\": \"string\",\n    \"start_date\": \"string\",\n    \"end_date\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/occupants"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 12:57:46 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message.\n}"},{"id":"5c259632-0c0a-4be8-9dce-c1fab00600da","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"1111","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"firstname\": \"string\",\n    \"lastname\": \"string\",\n    \"email\": \"string\",\n    \"mobile\": \"string\",\n    \"date_of_birth\": \"string\",\n    \"start_date\": \"string\",\n    \"end_date\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/occupants"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 13:04:39 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":""},{"id":"9ab7b0ed-d968-4fc9-b14e-e7b83f6515ee","name":"404 Record Not Found","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"firstname\": \"string\",\n    \"lastname\": \"string\",\n    \"email\": \"string\",\n    \"mobile\": \"string\",\n    \"date_of_birth\": \"string\",\n    \"start_date\": \"string\",\n    \"end_date\": \"string\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/occupants"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 13:03:38 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Record not found.\"\n}"}],"_postman_id":"60086733-e1e6-4cd2-b84f-2af67c0a3839"},{"name":"Generate Reconciliation","event":[{"listen":"prerequest","script":{"id":"17173e25-993e-4dce-a324-a11e75776fb9","exec":["// get secret","var secret = pm.environment.get(\"secret\");","// get request body","var req = request.data","var requestBody = pm.variables.replaceIn(pm.request.body.raw);","","// create HMAC SHA512 hash request body and secret","var hashHmacSHA512 = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestBody, secret));","// add headers to request","pm.environment.set(\"API-HASH\", hashHmacSHA512);"],"type":"text/javascript","packages":{}}}],"id":"39988c4c-34a2-4f62-bffa-9aaba6fd1f23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"url":"{{base_url}}/contracts/{reference}/reconciliation","description":"<p>Use this endpoint to reconcile a contract, this will calculate and return usage data for energy services.</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Desc</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>contract_reference</td>\n<td>string</td>\n<td>The customer reference number for the contract the readings relates to..</td>\n<td>Y</td>\n</tr>\n</tbody>\n</table>\n</div><p>The contract reference can be obtained via the 'Properties' tab location in your TSEG portal.</p>\n","urlObject":{"path":["contracts","{reference}","reconciliation"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"9378addc-3aed-40fe-b780-9ccef09e0265","name":"200 Success","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"date\": \"string\" //The date to reconcile up to in YYYY-MM-DD format.\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{reference}/reconciliation"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n//The services included in the reconciliation.\n    {\n        \"name\": \"<string>\",\n        //Name of the service.\n\n        \"delivery_point_reference\":\t\"<string>\",\n        //The MPAN or MPRN for the energy services.\n\n        \"start_date\": \"<string>\",\n        //The date the reconciliation is being billed from for this service.\n\n        \"up_to_date\": \"<string>\",\n        //The date the reconciliation is being billed up to for this service.\n\n        \"meter_type\": \"<string>\",\n        //A code for the currently active meter. A list of codes and what they represent can be found https://www.edq.com/globalassets/documentation/data-guides/adg_gbu.pdf on page 13.\n\n        \"price_per_month\": \"<number>\",\n        //The current payment notice price per month.\n\n        \"usage\": {\n        //Usage data for energy services. This will be null if the service has not been billed on usage (only being bill managed).\n\n            \"success\": \"<boolean>\",\n            //True if all data is available to generate usage periods. If false, periods will be null and message will provide extra detail.\n\n            \"message\": \"<string>\",\n            //An error message if an error occurred. Otherwise, null.\n\n            \"periods\": [\n            //The periods used to calculate usage. Periods could indicate a change in tariff, meter exchange etc.\n\n                {\n                    \"period_start_date\": \"<string>\",\n                    \"period_end_date\": \"<string>\",\n                    \"kwh\": \"<number>\",\n                    \"kwh_night\": \"<number>\",\n                    \"meter\": {\n                        \"serial_number\": \"<string>\",\n                        \"profile_class\": \"<string>\",\n                        \"is_imperial\": \"<boolean>\",\n                        \"is_prepayment\": \"<boolean>\"\n                    },\n                    \n                    \"tariff\": {\n                        \"calorific_value\": \"<number>\",\n                        \"standard_unit_rate\": \"<number>\",\n                        \"economy_unit_rate_day\": \"<number>\",\n                        \"economy_unit_rate_night\": \"<number>\",\n                        \"standard_standing_charge\": \"<number>\",\n                        \"economy_standing_charge\": \"<number>\",\n                        \"vat\": \"<number>\",\n                        \"egp_unit_rate_reduction\": \"<number>\",\n                        \"egp_unit_rate_reduction_night\": \"<number>\"\n                    },\n                    \n                    \"start_reading\": {\n                        \"reading1\": \"<integer>\",\n                        //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                        \"reading2\": \"<integer>\",\n                        //The night reading if the meter is economy 7. Otherwise, null.\n\n                        \"date\": \"<string>\",\n                        //The date the reading was taken in YYYY-MM-DD format.\n\n                        \"is_estimated\":\t\"<boolean>\"\n                        //True if the reading is an estimated reading.\n                    },\n\n                    \"end_reading\": {\n                        \"reading1\":\t\"<integer>\",\n                        //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                        \"reading2\": \"<integer>\",\n                        //The night reading if the meter is economy 7. Otherwise, null.\n\n                        \"date\":\t\"<string>\",\n                        //The date the reading was taken in YYYY-MM-DD format.\n\n                        \"is_estimated\":\t\"<boolean>\"\n                        //True if the reading is an estimated reading.\n                    }\n                }\n            ]\n        },\n\n        \"bill_management\": {\n        //Bill management data. This will be null if the service has never been bill managed.\n\n            \"start_date\": \"<string>\",\n            //The start date the service was bill managed.\n\n            \"end_date\":\t\"<string>\",\n            //The end date the service was bill managed.\n\n            \"total\": \"<number>\"\n            //The total amount billed during the bill managed period. This will be included in the totals.\n        },\n\n        \"totals\": {\n        //The cost of service totals.\n\n            \"total_pounds\":\t\"<number>\",\n            //The total cost of the service.\n\n            \"total_pounds_inc_epg\":\t\"<number>\",\n            //The total cost of the service.\n\n            \"total_pounds_ex_epg\": \"<number>\"\n            //The total cost of the service excluding the Energy Price Guarantee rates.\n        },\n\n        \"ebss\": {\n        //Energy Bill Support Scheme. This will be null if the service has never benefited.\n\n            \"start_date\": \"<string>\",\n            //The date the service started receiving Energy Bill Support Scheme.\n\n            \"end_date\":\t\"<string>\",\n            //The date the service stopped receiving Energy Bill Support Scheme.\n\n            \"total\": \"<number>\"\n            //The total Energy Bill Support Scheme. This is NOT included in the totals.\n        }\n    }\n]"},{"id":"cb515930-1f95-46fc-9acb-5035f1b6b15a","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"date\": \"2025-09-12\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{reference}/reconciliation"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 15:33:06 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message\n}"},{"id":"1a1321c8-2344-4ab6-bb05-506d118d66f0","name":"406 Not Acceptable","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"date\": \"2025-07-12\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{reference}/reconciliation"},"status":"Not Acceptable","code":406,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Aug 2025 15:30:14 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"[\n//The services included in the reconciliation.\n    {\n        \"name\": \"<string>\",\n        //Name of the service.\n\n        \"delivery_point_reference\":\t\"<string>\",\n        //The MPAN or MPRN for the energy services.\n\n        \"start_date\": \"<string>\",\n        //The date the reconciliation is being billed from for this service.\n\n        \"up_to_date\": \"<string>\",\n        //The date the reconciliation is being billed up to for this service.\n\n        \"meter_type\": \"<string>\",\n        //A code for the currently active meter. A list of codes and what they represent can be found https://www.edq.com/globalassets/documentation/data-guides/adg_gbu.pdf on page 13.\n\n        \"price_per_month\": \"<number>\",\n        //The current payment notice price per month.\n\n        \"usage\": {\n        //Usage data for energy services. This will be null if the service has not been billed on usage (only being bill managed).\n\n            \"success\": \"<boolean>\",\n            //True if all data is available to generate usage periods. If false, periods will be null and message will provide extra detail.\n\n            \"message\": \"<string>\",\n            //An error message if an error occurred. Otherwise, null.\n\n            \"periods\": [\n            //The periods used to calculate usage. Periods could indicate a change in tariff, meter exchange etc.\n\n                {\n                    \"period_start_date\": \"<string>\",\n                    \"period_end_date\": \"<string>\",\n                    \"kwh\": \"<number>\",\n                    \"kwh_night\": \"<number>\",\n                    \"meter\": {\n                        \"serial_number\": \"<string>\",\n                        \"profile_class\": \"<string>\",\n                        \"is_imperial\": \"<boolean>\",\n                        \"is_prepayment\": \"<boolean>\"\n                    },\n                    \n                    \"tariff\": {\n                        \"calorific_value\": \"<number>\",\n                        \"standard_unit_rate\": \"<number>\",\n                        \"economy_unit_rate_day\": \"<number>\",\n                        \"economy_unit_rate_night\": \"<number>\",\n                        \"standard_standing_charge\": \"<number>\",\n                        \"economy_standing_charge\": \"<number>\",\n                        \"vat\": \"<number>\",\n                        \"egp_unit_rate_reduction\": \"<number>\",\n                        \"egp_unit_rate_reduction_night\": \"<number>\"\n                    },\n                    \n                    \"start_reading\": {\n                        \"reading1\": \"<integer>\",\n                        //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                        \"reading2\": \"<integer>\",\n                        //The night reading if the meter is economy 7. Otherwise, null.\n\n                        \"date\": \"<string>\",\n                        //The date the reading was taken in YYYY-MM-DD format.\n\n                        \"is_estimated\":\t\"<boolean>\"\n                        //True if the reading is an estimated reading.\n                    },\n\n                    \"end_reading\": {\n                        \"reading1\":\t\"<integer>\",\n                        //The day reading if the meter is an economy 7. Otherwise, the only reading.\n\n                        \"reading2\": \"<integer>\",\n                        //The night reading if the meter is economy 7. Otherwise, null.\n\n                        \"date\":\t\"<string>\",\n                        //The date the reading was taken in YYYY-MM-DD format.\n\n                        \"is_estimated\":\t\"<boolean>\"\n                        //True if the reading is an estimated reading.\n                    }\n                }\n            ]\n        },\n\n        \"bill_management\": {\n        //Bill management data. This will be null if the service has never been bill managed.\n\n            \"start_date\": \"<string>\",\n            //The start date the service was bill managed.\n\n            \"end_date\":\t\"<string>\",\n            //The end date the service was bill managed.\n\n            \"total\": \"<number>\"\n            //The total amount billed during the bill managed period. This will be included in the totals.\n        },\n\n        \"totals\": {\n        //The cost of service totals.\n\n            \"total_pounds\":\t\"<number>\",\n            //The total cost of the service.\n\n            \"total_pounds_inc_epg\":\t\"<number>\",\n            //The total cost of the service.\n\n            \"total_pounds_ex_epg\": \"<number>\"\n            //The total cost of the service excluding the Energy Price Guarantee rates.\n        },\n\n        \"ebss\": {\n        //Energy Bill Support Scheme. This will be null if the service has never benefited.\n\n            \"start_date\": \"<string>\",\n            //The date the service started receiving Energy Bill Support Scheme.\n\n            \"end_date\":\t\"<string>\",\n            //The date the service stopped receiving Energy Bill Support Scheme.\n\n            \"total\": \"<number>\"\n            //The total Energy Bill Support Scheme. This is NOT included in the totals.\n        }\n    }\n]"},{"id":"4390ccbc-056b-4c3f-b8f8-e3b022358557","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"{{API_key}","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"date\": \"2025-09-12\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{reference}/reconciliation"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 12 Aug 2025 15:34:23 GMT"},{"key":"Content-Type","value":"text/html; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"39988c4c-34a2-4f62-bffa-9aaba6fd1f23"},{"name":"Submit Meter Reading","event":[{"listen":"test","script":{"id":"7e82d876-8535-4a9b-a1e9-783c95df5866","exec":[""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"aaa00340-83b9-466c-8b35-bb186050495b","exec":["// get secret","var secret = pm.environment.get(\"secret\");","// get request body","var req = request.data","var requestBody = pm.variables.replaceIn(pm.request.body.raw);","","// create HMAC SHA512 hash request body and secret","var hashHmacSHA512 = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestBody, secret));","// add headers to request","pm.environment.set(\"API-HASH\", hashHmacSHA512);"],"type":"text/javascript","packages":{}}}],"id":"8367e9ee-adcb-4af2-b603-fb29cbc6421e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"API-KEY","value":"{{API_key}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"reading1\": \"integer\", //Reading 1 (day reading, or the only reading if there is no night reading).\n    \n    \"reading2\": \"integer\", //Reading 2 (night reading, if it exists).\n    \n    \"date\": \"string\", //Date the reading was taken in YYYY-MM-DD format.\n    \n    \"serial_number\": \"string\" //The meter serial number for extra validation. Required only when the service has more than one active meter.\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/{service}/readings","description":"<p>Use this endpoint to submit a meter reading for a particular contract and service.</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Desc</strong></th>\n<th><strong>Required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>contract_reference</td>\n<td>string</td>\n<td>The customer reference number for the contract the readings relates to.</td>\n<td>Y</td>\n</tr>\n<tr>\n<td>service</td>\n<td>string</td>\n<td>The service the reading is for. E.g: gas or electricity.</td>\n<td>Y</td>\n</tr>\n</tbody>\n</table>\n</div><p>The contract reference can be obtained via the 'Properties' tab location in your TSEG portal.</p>\n","urlObject":{"path":["contracts","{contract_reference}","{service}","readings"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"f399af3e-0250-4b6a-b512-b5bc39b67c77","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"reading1\": \"6360\",\n    \"reading2\": null,\n    \"date\": \"2025-08-13\",\n    \"serial_number\": null\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/{service}/readings"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 13 Aug 2025 15:20:23 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"298"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n    //Truthy boolean indicating successful operation.\n}"},{"id":"7f00857e-68fb-4b1b-903f-d8b946483876","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"reading1\": \"16360\",\n    \"reading2\": null,\n    \"date\": \"2025-08-14\",\n    \"serial_number\": null\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/{service}/readings"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 13 Aug 2025 15:23:20 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"298"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message.\n}"},{"id":"5ef3ea9a-e6bf-45a6-aa91-325232e9f301","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"1234","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"reading1\": \"6360\",\n    \"reading2\": null,\n    \"date\": \"2025-08-13\",\n    \"serial_number\": null\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/{service}/readings"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 13 Aug 2025 15:21:48 GMT"},{"key":"Content-Type","value":"text/html; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"}],"cookie":[],"responseTime":null,"body":null},{"id":"ac1992e8-46f1-4327-9d6b-61d61814bebb","name":"406 Not Acceptable","originalRequest":{"method":"POST","header":[{"key":"API-KEY","value":"•••••••","type":"text"},{"key":"Accept","value":"application/json","type":"text"},{"key":"API-HASH","value":"{API-HASH}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"reading1\": \"16360\",\n    \"reading2\": null,\n    \"date\": \"2025-08-13\",\n    \"serial_number\": null\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/contracts/{contract_reference}/{service}/readings"},"status":"Not Acceptable","code":406,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 13 Aug 2025 15:22:38 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"nginx"},{"key":"Cache-Control","value":"private, must-revalidate"},{"key":"pragma","value":"no-cache"},{"key":"expires","value":"-1"},{"key":"X-RateLimit-Limit","value":"300"},{"key":"X-RateLimit-Remaining","value":"299"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"<string>\"\n    //Simple error message.\n}"}],"_postman_id":"8367e9ee-adcb-4af2-b603-fb29cbc6421e"}],"id":"d7e14a86-61d2-4553-9911-2e80db26d124","description":"<p>Use these endpoints to fetch, created and update contracts on your B2B wholsale agreement.</p>\n<p><em>The POST, PUT and PATCH requests in this collection contain a Pre-req script to generate the API-HASH and add the value to the API-HASH header</em></p>\n","_postman_id":"d7e14a86-61d2-4553-9911-2e80db26d124"}],"event":[{"listen":"prerequest","script":{"id":"7f4bb106-b0ef-4fd1-a4c1-73eca9ca1ff6","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"e50358cf-e676-4454-88d8-acab17ba323c","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"address","value":"","type":"string"},{"key":"town","value":"","type":"string"},{"key":"postcode","value":"","type":"string"},{"key":"capacity","value":"","type":"string"},{"key":"start_date","value":"","type":"string"},{"key":"end_date","value":"","type":"string"},{"key":"udprn","value":"","type":"string"},{"key":"uprn","value":"","type":"string"},{"key":"electricity","value":"1","type":"string"},{"key":"gas","value":"1","type":"string"},{"key":"broadband","value":"1","type":"string"},{"key":"water","value":"1","type":"string"},{"key":"tvl","value":"0","type":"string"},{"key":"is_unlimited","value":"0","type":"string"},{"key":"API-HASH","value":"{API-HASH}","type":"string"},{"key":"contract_reference","value":"","type":"string"},{"key":"letting_agent_name","value":"Test Letting Agent","type":"string"},{"key":"letting_agent_email","value":"test_letting_agent@test.com","type":"string"},{"key":"letting_agent_telephone","value":"07777777777","type":"string"},{"key":"letting_agent_responsible_from","value":"2025-08-13","type":"string"},{"key":"service","value":"","type":"default"}]}