{"info":{"_postman_id":"c701a387-bc78-4430-82e4-ab62d33e8579","name":"Blind Update Tool API Reference","description":"<html><head></head><body><h1 id=\"status\">Status</h1>\n<p>Final. Participants can use this specification to build their APIs.</p>\n<h1 id=\"purpose\">Purpose</h1>\n<p>Participants use this API to submit a csv formatted payload for the initial population of new CATS Standing Data fields. The Blind Update takes the current record and overwrites it leaving the creation and maintenance dates unchanged. A Blind Update does not:</p>\n<ul>\n<li><p>Send notifications to participants.</p>\n</li>\n<li><p>Create new records.</p>\n</li>\n</ul>\n<p>For more details about the Blind Update Tool, see <a href=\"https://visualisations.aemo.com.au/aemo/web-help/Content/MSATSTechnicalGuide/Technical_Guide_to_MSATS.htm?TocPath=MSATS%7CTechnical%20Guide%20to%20MSATS%7C_____0\">Technical Guide to MSATS</a>.</p>\n<p>This documentation explains the standards, rules, context, conventions, parameters, and methods for the API endpoints.</p>\n<h1 id=\"audience\">Audience</h1>\n<p>AEMO provides this information as a service targeting Registered Participant's:</p>\n<ol>\n<li><p>Business analysts and technology staff.</p>\n</li>\n<li><p>API developers.</p>\n</li>\n</ol>\n<h1 id=\"related-rules-and-procedures\">Related rules and procedures</h1>\n<ul>\n<li><p><a href=\"https://aemo.com.au/energy-systems/electricity/national-electricity-market-nem/market-operations/retail-and-metering/market-settlement-and-transfer-solutions-msats\">MSATS procedures</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/energy-systems/electricity/national-electricity-market-nem/market-operations/retail-and-metering/market-settlement-and-transfer-solutions-msats\">Standing Data for MSATS</a></p>\n</li>\n</ul>\n<h1 id=\"assumed-knowledge\">Assumed knowledge</h1>\n<p>An understanding of the following is required:</p>\n<ol>\n<li><p>API and JSON or YAML fundamentals.</p>\n</li>\n<li><p><a href=\"https://visualisations.aemo.com.au/aemo/web-help/Content/API_Reference/API_introduction.htm\">API Reference</a>.</p>\n</li>\n<li><p><a href=\"https://aemo.com.au/-/media/files/market-it-systems/guide-to-csv-data-format-standard.pdf?la=en\">Guide to CSV Data Format Standard</a>.</p>\n</li>\n<li><p><a href=\"https://aemo.com.au/-/media/files/electricity/nem/5ms/systems-workstream/2020/guide-to-nem-retail-b2m-apis-final.pdf?la=en\">Guide to NEM Retail APIs</a>.</p>\n</li>\n<li><p><a href=\"https://aemo.com.au/energy-systems/electricity/national-electricity-market-nem/market-operations/retail-and-metering/market-settlement-and-transfer-solutions-msats\">MSATS procedures</a> &gt; provision and maintenance of CATS Standing Data.</p>\n</li>\n<li><p><a href=\"https://aemo.com.au/energy-systems/electricity/national-electricity-market-nem/market-operations/retail-and-metering/market-settlement-and-transfer-solutions-msats\">Standing Data for MSATS</a>.</p>\n</li>\n<li><p><a href=\"https://portal.prod.nemnet.net.au/help/Content/InformationSystems/Electricity/Interfaces.htm?TocPath=Connecting%20to%20Market%20Systems%7C_____0\">Connecting to AEMO's Market Systems</a>.</p>\n</li>\n<li><p>RESTful programming architecture.</p>\n</li>\n</ol>\n<h1 id=\"prerequisites\">Prerequisites</h1>\n<p>Before you can use the Blind Update Tool API you must:</p>\n<ol>\n<li><p>Have a Participant ID. If your company is a Registered Participant, it is set up during the registration process.</p>\n</li>\n<li><p>Have a user ID and password with access rights provided by your company's participant administrator. For details, see user rights access below.</p>\n</li>\n<li><p><a href=\"https://dev.aemo.com.au/register-on-the-portal\">Register with AEMO to use APIs</a>.</p>\n</li>\n<li><p>Have an API gateway and a <a href=\"https://dev.aemo.com.au/tls-certificates\">Certificate.</a></p>\n</li>\n<li><p>Test your submission in the pre-production environment before submitting to production. AEMO encourages participants to use the pre-production environment to test procedures and train staff.</p>\n</li>\n</ol>\n<h1 id=\"resources\">Resources</h1>\n<ul>\n<li><p><a href=\"https://visualisations.aemo.com.au/aemo/web-help/Content/API_Reference/API_introduction.htm\">API Reference</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/-/media/files/market-it-systems/guide-to-information-systems.pdf?la=en\">Guide to Information Systems</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/-/media/files/electricity/nem/retail_and_metering/market_settlement_and_transfer_solutions/2021/guide-to-msats-reports.pdf?la=en\">Guide to MSATS Reports</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/-/media/files/electricity/nem/retail_and_metering/market_settlement_and_transfer_solutions/2021/guide-to-msats-web-portal.pdf?la=en\">Guide to MSATS Web Portal</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/energy-systems/market-it-systems/electricity-system-guides/participant-administration-and-user-rights\">Guide to User Rights Management (URM)</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/learn/industry-terminology\">Industry Terminology</a></p>\n</li>\n<li><p><a href=\"https://aemo.com.au/energy-systems/electricity/national-electricity-market-nem/market-operations/retail-and-metering/market-settlement-and-transfer-solutions-msats\">MSATS procedures</a></p>\n</li>\n<li><p><a href=\"https://visualisations.aemo.com.au/aemo/web-help/Content/MSATSTechnicalGuide/Technical_Guide_to_MSATS.htm?TocPath=MSATS%7CTechnical%20Guide%20to%20MSATS%7C_____0\">Technical Guide to MSATS</a></p>\n</li>\n<li><p><a href=\"https://dev.aemo.com.au/tls-certificates\">TLS certificates</a></p>\n</li>\n</ul>\n<h1 id=\"submission-interfaces\">Submission interfaces</h1>\n<p>You can use the following interfaces:</p>\n<ul>\n<li><p>AEMO's API Gateway: Submit csv, track status and retrieve submission results using the Blind Update Tool API.</p>\n</li>\n<li><p>MSATS Web Portal: Upload csv files, track status, and retrieve submission results. For details, see <a href=\"https://aemo.com.au/-/media/files/electricity/nem/retail_and_metering/market_settlement_and_transfer_solutions/2021/guide-to-msats-web-portal.pdf?la=en\">Guide to MSATS Web Portal</a>.</p>\n</li>\n</ul>\n<p>Interfaces are interchangeable for submitting and retrieving information. For example, you can upload a Payload to MSATS Web Portal and retrieve results using AEMO’s API Gateway.</p>\n<h1 id=\"submission-process\">Submission process</h1>\n<p>Participant Roles having a current relationship with the NMI use the following process to upload and view Blind Update Submissions. Once you are registered for APIs, there is no coordination required with AEMO.<br>The high-level submission process is:</p>\n<ol>\n<li><p>Create a CSV payload with your Blind Update Submissions following the <a href=\"https://visualisations.aemo.com.au/aemo/web-help/Content/CSVdataFormat/CSV_Format.htm\">Guide to CSV Data Format Standard</a>.</p>\n</li>\n<li><p>Submit the CSV payload to AEMO using one of the submission interfaces.</p>\n</li>\n<li><p>AEMO receives and validates the submission for security and syntax (typically not business validations at this stage).</p>\n</li>\n<li><p>AEMO acknowledges the submission with Accept or Reject. Accept or Reject applies to the entire payload.</p>\n</li>\n<li><p>If AEMO accepts the submission, it applies business validations and processes the updates later.</p>\n</li>\n<li><p>Track your submission status using the submissionList endpoint or MSATS Web Portal.</p>\n</li>\n<li><p>Download the results when ready using the downloadFile endpoint or MSATS Web Portal. The results are a mixture of payload successes and failures. The content is a similar CSV format to the submission with some extra columns.</p>\n</li>\n</ol>\n<h1 id=\"submission-rules\">Submission rules</h1>\n<p>The following submission rules apply:</p>\n<ul>\n<li><p>A rejection on submission, results in the entire payload being rejected.</p>\n</li>\n<li><p>It must adhere to <a href=\"https://aemo.com.au/-/media/files/market-it-systems/guide-to-csv-data-format-standard.pdf?la=en\">AEMO's CSV Data Format Standard</a>.</p>\n</li>\n<li><p>Each record in the Blind Update Payload must start with one of the following 3 characters:<br>  – C = comment (metadata)<br>  – I = information<br>  – D = data</p>\n</li>\n<li><p>Must have a C record for its first and last row.</p>\n</li>\n<li><p>If you are updating multiple columns for a single MSATS record in the same submission payload, there is one csv row per column.</p>\n</li>\n<li><p>Can have any mixture of tables and columns</p>\n</li>\n<li><p>Can have mixed BUT record types.</p>\n</li>\n</ul>\n<h1 id=\"submission-daily-volumes\">Submission daily volumes</h1>\n<p>To be confirmed.</p>\n<h1 id=\"submission-row-limit\">Submission row limit</h1>\n<p>The limit for a single Payload is 100,000 rows.</p>\n<h1 id=\"submission-status\">Submission status</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Who</strong></th>\n<th><strong>Action</strong></th>\n<th><strong>From status</strong></th>\n<th><strong>To status</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Response?</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Participant</td>\n<td>Submit</td>\n<td>n/a</td>\n<td>ERROR</td>\n<td>Security &amp; syntax validation fail  <br>The entire submission is rejected  <br>No further processing</td>\n<td>Acknowledgement  <br>Payload is not stored</td>\n</tr>\n<tr>\n<td>Participant</td>\n<td>Submit</td>\n<td>n/a</td>\n<td>PENDING</td>\n<td>Security &amp; syntax validation pass  <br>Applies to the entire payload, not individual rows  <br>Initial accepted status</td>\n<td>Response and Payload is stored</td>\n</tr>\n<tr>\n<td>AEMO</td>\n<td>Process</td>\n<td>PENDING</td>\n<td>Processed</td>\n<td>All rows processed where each payload row is updated with a success or fail reason and a timestamp  <br>Result awaiting participant download</td>\n<td>Response with row level details</td>\n</tr>\n<tr>\n<td>Participant</td>\n<td>Retrieve result</td>\n<td>PROCESSED</td>\n<td>DOWNLOADED</td>\n<td>End-to-end processing complete  <br>Submission payload ready for download  <br>Downloads can be repeated but Only the first download moves status from PROCESSED to DOWNLOADED</td>\n<td>Response with row level details</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"payload-format\">Payload format</h1>\n<h2 id=\"first-row\">First row</h2>\n<p>The first row of the Blind Update Payload is C and must consist of the following 13 comma separated values:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Row</th>\n<th>Field</th>\n<th>Example</th>\n<th>Data format</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td>C</td>\n<td>Row type (C, I, D)</td>\n<td>C</td>\n<td>UPPERCASE</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>B</td>\n<td>C</td>\n<td>SYSTEM</td>\n<td>The AEMO environment:  <br>PRODUCTION or PRE-PRODUCTION</td>\n<td>UPPERCASE</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>C</td>\n<td>C</td>\n<td>REPORT ID</td>\n<td>BLIND_UPDATE_SUBMISSION: Send blind update request to AEMO  <br>BLIND_UPDATE_RESPONSE: Send blind update response to participants</td>\n<td>UPPERCASE</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>D</td>\n<td>C</td>\n<td>FROM</td>\n<td>PARTICIPANTID</td>\n<td>UPPERCASE</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>E</td>\n<td>C</td>\n<td>TO</td>\n<td>NEMMCO</td>\n<td>UPPERCASE</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>F</td>\n<td>C</td>\n<td>PAYLOAD CREATION DATE</td>\n<td>2021/09/03</td>\n<td>YYYY/MM/DD (Market Time e.g. AEST)</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>G</td>\n<td>C</td>\n<td>PAYLOAD CREATION TIME</td>\n<td>22:04:05</td>\n<td>HH24:MI:SS (Market Time)</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>H</td>\n<td>C</td>\n<td>EMMS only</td>\n<td>Empty column for BUT submissions</td>\n<td>null</td>\n<td>These are vital containers in the csv data format structure and cannot be ignored</td>\n</tr>\n<tr>\n<td>I</td>\n<td>C</td>\n<td>EMMS only</td>\n<td>Empty column for BUT submissions</td>\n<td>null</td>\n<td>These are vital containers in the csv data format structure and cannot be ignored</td>\n</tr>\n<tr>\n<td>J</td>\n<td>C</td>\n<td>EMMS only</td>\n<td>Empty column for BUT submissions</td>\n<td>null</td>\n<td>These are vital containers in the csv data format structure and cannot be ignored</td>\n</tr>\n<tr>\n<td>K</td>\n<td>C</td>\n<td>MARKET</td>\n<td>NEM</td>\n<td>UPPERCASE</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>L</td>\n<td>C</td>\n<td>PAYLOAD ID</td>\n<td>Initiator provided payload reference. It can be any combination of characters; however, it should be unique</td>\n<td>UPPERCASE Free text (50)</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>M</td>\n<td>C</td>\n<td>PAYLOAD RESPONSE ID</td>\n<td>Responder (AEMO) provided unique payload reference for the BLIND_UPDATE_RESPONSE (e.g. 324-BB321)  <br>Also provided in the sync payload acknowledgement</td>\n<td>UPPERCASE</td>\n<td>Empty for a BLIND_UPDATE_SUBMISSION  <br>Required for BLIND_UPDATE_RESPONSE</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"i-and-d-rows\">I and D rows</h2>\n<p>I – information row and D – data row record definitions for each BUT submission.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>I row</strong></th>\n<th><strong>D row</strong></th>\n<th><strong>Data format/notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Record type</td>\n<td>I</td>\n<td>D</td>\n<td>Fixed value</td>\n</tr>\n<tr>\n<td>Payload type</td>\n<td>BUS</td>\n<td>BUS</td>\n<td></td>\n</tr>\n<tr>\n<td>Payload subtype</td>\n<td>NMI_DATA</td>\n<td>NMI_DATA</td>\n<td></td>\n</tr>\n<tr>\n<td>Payload version</td>\n<td>1</td>\n<td>1</td>\n<td>Fixed value</td>\n</tr>\n<tr>\n<td>NMI</td>\n<td>NMI</td>\n<td>N123456789</td>\n<td>10-character NMI</td>\n</tr>\n<tr>\n<td>Field ID</td>\n<td>FIELD</td>\n<td>SHARED_ISOLATION_POINT_FLAG  <br>SECTION_NUMBER  <br>DP_NUMBER  <br>CONNECTION_CONFIGURATION</td>\n<td>String(1)  <br>String(20)  <br>String(20)  <br>String(2)</td>\n</tr>\n<tr>\n<td>Value</td>\n<td>VALUE</td>\n<td>Y  <br>Section 23K  <br>DP 825310  <br>L1</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"api-format\">API format</h1>\n<p>The submission endpoint has the following 2 elements:</p>\n<ol>\n<li><p>A request header.</p>\n</li>\n<li><p>A csv Payload (no query parameters or JSON schema).</p>\n</li>\n</ol>\n<h1 id=\"query-parameters\">Query parameters</h1>\n<p>None</p>\n<h1 id=\"api-access\">API access</h1>\n<p>The Blind Update Tool API endpoints are accessible over the internet or MarketNet via AEMO's e-Hub API gateway. For details, see <a href=\"https://aemo.com.au/-/media/files/electricity/nem/it-systems-and-change/2020/guide-to-aemos-ehub-apis.pdf\">Guide to AEMO's e-Hub APIs</a>.</p>\n<h1 id=\"authentication\">Authentication</h1>\n<ul>\n<li><p>API connections use mTLS certificates to secure the transport layer with encrypted communication and<br>  secure interactions between participants’ and AEMO’s systems.</p>\n</li>\n<li><p>AEMO issues mTLS <a href=\"https://dev.aemo.com.au/tls-certificates\">certificates</a> to participants on request.</p>\n</li>\n</ul>\n<h1 id=\"authorisation\">Authorisation</h1>\n<ul>\n<li>API calls are authorised by Basic HTTP authentication (<a href=\"https://dev.aemo.com.au/urm-username-password\">Basic Auth</a>) using a username and password assigned by your company’s participant administrator. See <a href=\"https://aemo.com.au/energy-systems/market-it-systems/electricity-system-guides/participant-administration-and-user-rights\">Guide to User Rights Management (URM)</a>.</li>\n</ul>\n<h1 id=\"user-rights-access\">User rights access</h1>\n<p>The access right participant administrators provide for access to the Blind Update Tool API endpoints are:</p>\n<ul>\n<li><p>submission: Web Service Submit CSV BUT</p>\n</li>\n<li><p>submissionList: Web Service getBlindUpdateRunList</p>\n</li>\n<li><p>downloadFile: Web Service Get CSV BUT</p>\n</li>\n</ul>\n<p>For details about user rights access, creating new Participant Users and assigning rights, see <a href=\"https://aemo.com.au/energy-systems/market-it-systems/electricity-system-guides/participant-administration-and-user-rights\">Guide to User Rights Management (URM)</a>.</p>\n<h1 id=\"urls\">URLs</h1>\n<p>The Blind Update Tool API is available over the internet on the following base URLs:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>MarketNet base URL</strong></th>\n<th><strong>Internet direct base URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Pre-production</td>\n<td><a href=\"https://apis.preprod.marketnet.net.au:9319/NEMRetail/BlindUpdateUI/v1/\">https://apis.preprod.marketnet.net.au:9319/NEMRetail/BlindUpdateUI/v1/</a></td>\n<td><a href=\"https://apis.preprod.aemo.com.au:9319/NEMRetail/BlindUpdateUI/v1/\">https://apis.preprod.aemo.com.au:9319/NEMRetail/BlindUpdateUI/v1/</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://apis.prod.marketnet.net.au:9319/NEMRetail/BlindUpdateUI/v1/\">https://apis.prod.marketnet.net.au:9319/NEMRetail/BlindUpdateUI/v1/</a></td>\n<td><a href=\"https://apis.prod.aemo.com.au:9319/NEMRetail/BlindUpdateUI/v1/\">https://apis.prod.aemo.com.au:9319/NEMRetail/BlindUpdateUI/v1/</a></td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"aemo-api-portal\">AEMO API portal</h1>\n<p>API details, including Swagger/OAS files are available from AEMO’s API Portal:</p>\n<ul>\n<li><p><a href=\"https://dev.preprod.aemo.com.au/\">Pre-production</a></p>\n</li>\n<li><p><a href=\"https://dev.aemo.com.au/\">Production</a></p>\n</li>\n</ul>\n<h1 id=\"compression\">Compression</h1>\n<p>AEMO APIs support HTTP protocol compression controlled by the HTTP request header attributes, allowing compression before sending and responding. The Blind Update API has the following compressed payload:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Parameter</strong></th>\n<th><strong>Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Content-Encoding</td>\n<td>gzip, compress, or deflate  <br>If not provided no compression is assumed</td>\n</tr>\n<tr>\n<td>Accept-Encoding</td>\n<td>gzip, compress, or deflate  <br>If not provided no compression is assumed</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"throttling\">Throttling</h1>\n<p>To control traffic, AEMO implements Throttling on API Endpoint requests. If Participant ID requests exceed the throttling limit, a HTTP 429 or 422 response returns. For more details, see Response codes.</p>\n<table><tbody><tr><th><p>Endpoint</p></th><th><p>Limits</p></th></tr><tr><td><div><p>submission</p></div><div><div><div><div></div></div></div><div></div></div></td><td><div><p>100 requests per minute per participantId</p><p>The participantId is identified from the X-initiatingParticipantID request header parameter</p><p>Participants systems must manage this Throttling limit because if you submit multiple JSON requests for the same participantId at the same time, AEMO may reject some</p></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p>submissionList</p></div><div><div><div><div></div></div></div><div></div></div></td><td><div><p>100 requests per minute per participantId</p></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>downloadFile</div><div><div><div><div></div></div></div><div></div></div></td><td><div><p>100 requests per minute per participantId</p></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h1 id=\"validation\">Validation</h1>\n<p>BUT can update NMIs regardless of their Status Code. This means BUT can update Standing Data for active (NMI Status Code = A), not energised (D, G), Extinct (X), or off market NMIs.</p>\n<h2 id=\"validation-rules\">Validation rules</h2>\n<p><strong>Pass</strong><br>If the entire submission is valid, the Initiator receives a positive Acknowledgement 200 with the response code and description.</p>\n<p><strong>Fail</strong><br>The entire Submission is rejected with a negative message acknowledgment sent to the Initiator if it:</p>\n<ol>\n<li><p>Fails header validation.</p>\n</li>\n<li><p>Fails CSV Payload validation.</p>\n</li>\n<li><p>Fails message level validation.</p>\n</li>\n<li><p>Has duplicate update instructions (same field for the same NMI Standing Data record).</p>\n</li>\n<li><p>Where a D row or field within the row fails validation, MSATS does not update the CATS Standing Data field.</p>\n</li>\n<li><p>The submission response D record is updated with the validation failure code and description, for example:</p>\n</li>\n</ol>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>I record</strong></th>\n<th><strong>D Record example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Response code</td>\n<td>RESPONSE_CODE</td>\n<td>56</td>\n</tr>\n<tr>\n<td>Response description</td>\n<td>RESPONSE_DESRIPTION</td>\n<td>The participant does not have a current role for the NMI</td>\n</tr>\n</tbody>\n</table>\n</div><p>For more information, see <a href=\"https://visualisations.aemo.com.au/aemo/web-help/Content/MSATSBlindUpdateTool/ValidationMessages.htm?tocpath=MSATS%7CTransactions%7CBlind%20Updates%7C_____7\">Validation</a>.</p>\n<h1 id=\"acknowledgement\">Acknowledgement</h1>\n<p>AEMO sends a positive message acknowledgment (status=’Accept’) to the initiating party indicating the payload submitted successfully.</p>\n<h1 id=\"response\">Response</h1>\n<p>Message acknowledgements include the same X-initiatingTransactionID populated to the request header by the gateway on receipt of the BUT Submission.</p>\n<h1 id=\"response-times\">Response times</h1>\n<ul>\n<li><p>Connection timeout 10 seconds.</p>\n</li>\n<li><p>Response timeout (including connection timeout) 30 seconds.</p>\n</li>\n</ul>\n<h1 id=\"response-codes\">Response codes</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n<th>Scenario</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>OK</td>\n<td>The Authorization (Basic Auth) and Header parameters are correct so a Successful response returns</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Mandatory header X-initiatingParticipantID is missing and/or Mandatory header X-Market is missing</td>\n<td>One of the mandatory header parameters, initiatingParticipantID or X-Market are missing</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>The Authorization credentials, Username or Password are entered incorrectly or invalid  <br>  <br>The e-Hub also sends the following payload:  <br>  <br>{\"Exception\": \"Unauthorized:Invalid UserName or Password\"}</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid Role</td>\n<td>The participantId does not have access to the API. For help, see <a href=\"https://dev.aemo.com.au/tls-certificates\">TLS Certificates</a></td>\n</tr>\n<tr>\n<td>404</td>\n<td>Resources for the endpoint URI not found</td>\n<td>The URI details are incorrect</td>\n</tr>\n<tr>\n<td>405</td>\n<td>Method not allowed</td>\n<td>The request method is invalid, e.g. GET instead of POST</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity</td>\n<td>The API content failed business validation rules.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Primary Key Violation (A Bid/Offer already exists for the same time)</td>\n<td>This message is equivalent to 429 Too Many Requests. Due to a backend process error where the request slips through the throttling validation and triggers a primary key violation. Wait and retry the submission</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Too Many Requests</td>\n<td>Possible reasons:  <br>  <br>* The requests exceed the throttling limit of 1 request per second. Wait and retry the submission  <br>* A primary key violation due to a backend process error where the request slips through the throttling validation and triggers a primary key violation. Wait and retry the submission</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Application Unavailable</td>\n<td>Possible reasons:  <br>  <br>* The Certificate or key do not match  <br>* The AEMO Gateway is unavailable. Wait and retry the submission</td>\n</tr>\n<tr>\n<td>502</td>\n<td>Bad Gateway</td>\n<td>The AEMO Gateway is unavailable. Wait and retry the submission</td>\n</tr>\n<tr>\n<td>503</td>\n<td>Exceeds throttling Limits</td>\n<td>429 Too Many Requests replaces this response code</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"reports\">Reports</h1>\n<p>For parties having a relationship with the NMI, you can see the modified fields in a C1 or MSATS Snapshot report, retrieved using API, file, or web interface. The reports provide no specific indication the Blind Update Tool altered the data or when.</p>\n<p>You can find the updated fields in the C1 report Snapshot report. For details, see <a href=\"https://aemo.com.au/-/media/files/electricity/nem/retail_and_metering/market_settlement_and_transfer_solutions/2021/guide-to-msats-reports.pdf?la=en\">Guide to MSATS Reports</a>.</p>\n<p>The C1 report may have records where both the Create and Update timestamps fall outside the C1 reporting period. Ensure this does not cause an issue to your C1 processing.</p>\n<h1 id=\"api-endpoints-and-response-details\">API endpoints and response details</h1>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Status","slug":"status"},{"content":"Purpose","slug":"purpose"},{"content":"Audience","slug":"audience"},{"content":"Related rules and procedures","slug":"related-rules-and-procedures"},{"content":"Assumed knowledge","slug":"assumed-knowledge"},{"content":"Prerequisites","slug":"prerequisites"},{"content":"Resources","slug":"resources"},{"content":"Submission interfaces","slug":"submission-interfaces"},{"content":"Submission process","slug":"submission-process"},{"content":"Submission rules","slug":"submission-rules"},{"content":"Submission daily volumes","slug":"submission-daily-volumes"},{"content":"Submission row limit","slug":"submission-row-limit"},{"content":"Submission status","slug":"submission-status"},{"content":"Payload format","slug":"payload-format"},{"content":"API format","slug":"api-format"},{"content":"Query parameters","slug":"query-parameters"},{"content":"API access","slug":"api-access"},{"content":"Authentication","slug":"authentication"},{"content":"Authorisation","slug":"authorisation"},{"content":"User rights access","slug":"user-rights-access"},{"content":"URLs","slug":"urls"},{"content":"AEMO API portal","slug":"aemo-api-portal"},{"content":"Compression","slug":"compression"},{"content":"Throttling","slug":"throttling"},{"content":"Validation","slug":"validation"},{"content":"Acknowledgement","slug":"acknowledgement"},{"content":"Response","slug":"response"},{"content":"Response times","slug":"response-times"},{"content":"Response codes","slug":"response-codes"},{"content":"Reports","slug":"reports"},{"content":"API endpoints and response details","slug":"api-endpoints-and-response-details"}],"owner":"10342609","collectionId":"c701a387-bc78-4430-82e4-ab62d33e8579","publishedId":"Uyr7JKLw","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"492249","highlight":"B766C2"},"publishDate":"2022-04-20T00:47:18.000Z"},"item":[{"name":"submission","id":"a316358f-9952-4d6c-890e-ef737c7016b7","request":{"method":"POST","header":[{"key":"X-initiatingParticipantID","value":"{{X-initiatingParticipantID}}","type":"text","description":"<p>Header and Payload C row must match. String, Required</p>\n"},{"key":"X-market","value":"NEM","type":"text","description":"<p>NEM, header and payload C row must match. String, Required</p>\n"},{"key":"Content-Type","value":"text/csv","type":"text","description":"<p>Specifies the posted request data is in text format. If not provided, AEMO gateway assumes text/csv. String, Optional</p>\n"},{"key":"Accept","value":"text/csv","type":"text","description":"<p>Identifies which content types (expressed as MIME types) the client can understand</p>\n"},{"key":"Accept-Encoding","value":"gzip, compress, or deflate","type":"text","description":"<p>Optional</p>\n"},{"key":"Authorisation","value":"Basic Auth","type":"text","description":"<p>The Participant User’s URM username and password\nThe username and password are concatenated with a colon and encoded in Base64 for security. String, Required</p>\n"}],"body":{"mode":"raw","raw":"C,PREPROD,BLIND_UPDATE_SUBMISSION,EASTERN,NEMMCO,2022/06/28,12:02:07,,,,NEM,ABHI-006\r\nI,BUS,NMI_DATA,1,NMI,FIELD,NEW_VALUE\r\nD,BUS,NMI_DATA,1,4102482266,SHARED_ISOLATION_POINT_FLAG,Y\r\nC,END OF REPORT,4","options":{"raw":{"language":"text"}}},"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/submission","auth":{"type":"basic","basic":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"c701a387-bc78-4430-82e4-ab62d33e8579","id":"c701a387-bc78-4430-82e4-ab62d33e8579","name":"Blind Update Tool API Reference","type":"collection"}},"urlObject":{"path":["NEMRetail","BlindUpdate","v1","submission"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"92c11de5-f896-45c3-894b-93b83cc367ee","name":"Submission example","originalRequest":{"method":"POST","header":[],"url":"NEMRetail/BlindUpdateUI/v1/submission"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{ \r\n  \"transactionId\": \"12345-abcd-27\",\r\n  \"data\": { \r\n\t  \"submissionDate\": \"2022-04-07T22:04:05+10:00\",\r\n      \"payloadID\": \"BUT-PARTID-010\",\r\n      \"payloadResponseID\": \"100000000001244\",\r\n      \"status\": \"Accept\"\r\n  }\r\n} "},{"id":"53e955cf-075c-4bf7-818f-8a4e70668727","name":"Successful  response","originalRequest":{"method":"POST","header":[{"key":"X-initiatingParticipantID","value":"NEMMCO","description":"The ID of the Initiating Participant","type":"text"},{"key":"X-market","value":"NEM","description":"The ID of the Market","type":"text"},{"key":"Content-Type","value":"text/csv","description":"Required request header","type":"text"}],"body":{"mode":"raw","raw":"C,PREPROD,BLIND_UPDATE_SUBMISSION,EASTERN,NEMMCO,2022/06/28,12:02:07,,,,NEM,ABHI-006\r\nI,BUS,NMI_DATA,1,NMI,FIELD,NEW_VALUE\r\nD,BUS,NMI_DATA,1,4102482266,SHARED_ISOLATION_POINT_FLAG,Y\r\nC,END OF REPORT,4"},"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/submission"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"C,PREPROD,BLIND_UPDATE_TOOL,NEMMCO,EASTERN,2022/06/29,14:32:51,,,,NEM,,,\r\nI,BUA,SUBMISSION_DATE,PAYLOAD_ID,PAYLOAD_RESPONSE_ID,STATUS\r\nD,BUA,2022/06/28 12:02:07,ABHI-006,100000000000010,Accept\r\nC,END OF REPORT,4"},{"id":"44fbc937-d07f-4282-9363-78e576df875f","name":"Error example - Missing Header - X-initiatingParticipantID","originalRequest":{"method":"POST","header":[{"key":"X-market","value":"NEM","description":"The ID of the Market","type":"text"},{"key":"Content-Type","value":"text/csv","description":"Required request header","type":"text"}],"body":{"mode":"raw","raw":"C,TEST,BLIND_UPDATE_SUBMISSION,NEMMCO,NEMMCO,2022/05/25,11:01:02,,,,NEM,123ABC-456,,\r\nI,BUS,NMI_DATA,1,NMI,FIELD,VALUE\r\nD,BUT,NMI_DATA,1,N123456789,SHARED_ISOLATION_POINT_FLAG,Y\r\nI,BUS,METER_REGISTER,1,NMI,METER_SERIAL,FIELD,VALUE\r\nD,BUT,METER_REGISTER,1,N123456789,123-AZ56,GPS_COORDINATES_LAT,-37.8409350\r\nI,BUS,REGISTER_IDENTIFIER,1,NMI,METER_SERIAL,REGISTER_ID,FIELD,VALUE\r\nD,BUT,REGISTER_IDENTIFIER,1,N123456789,123-AZ56,13,GPS_COORDINATES,ALLDAY\r\nC,END OF REPORT,8,,,,,,,,,,"},"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/submission"},"status":"Missing Header","code":400,"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"errors\": [\r\n        {\r\n            \"code\": \"400\",\r\n            \"title\": \"Missing Header\",\r\n            \"detail\": \"Header X-initiatingParticipantID was not found in the request. Access denied.\",\r\n            \"source\": \"API Gateway\"\r\n        }\r\n    ]\r\n}"}],"_postman_id":"a316358f-9952-4d6c-890e-ef737c7016b7"},{"name":"submissionList","id":"d062b1e8-7948-4264-9a90-28ff421cb735","request":{"method":"GET","header":[{"key":"X-initiatingParticipantID","value":"{{X-initiatingParticipantID}}","description":"<p>The ID of the Initiating Participant</p>\n","type":"text"},{"key":"X-market","value":"{{X-market}}","description":"<p>The ID of the Market</p>\n","type":"text"},{"key":"Accept","value":"application/json","description":"<p>Required request header</p>\n","type":"text"}],"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/submissionList?status=PROCESSED,RUNNING, ERROR, DOWNLOAD&submissionFromDate=Date&submissionToDate=Date&participantMessageId=Id&butRunId=Id","auth":{"type":"basic","basic":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"c701a387-bc78-4430-82e4-ab62d33e8579","id":"c701a387-bc78-4430-82e4-ab62d33e8579","name":"Blind Update Tool API Reference","type":"collection"}},"urlObject":{"path":["NEMRetail","BlindUpdate","v1","submissionList"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Status</p>\n","type":"text/plain"},"key":"status","value":"PROCESSED,RUNNING, ERROR, DOWNLOAD"},{"key":"submissionFromDate","value":"Date"},{"key":"submissionToDate","value":"Date"},{"key":"participantMessageId","value":"Id"},{"key":"butRunId","value":"Id"}],"variable":[]}},"response":[{"id":"42e6d637-87a7-4f57-b73b-6393fbabbb88","name":"submissionList","originalRequest":{"method":"GET","header":[{"key":"X-initiatingParticipantID","value":"NEMMCO","description":"The ID of the Initiating Participant","type":"text"},{"key":"X-market","value":"NEM","description":"The ID of the Market","type":"text"},{"key":"Accept","value":"application/json","description":"Required request header","type":"text"}],"url":{"raw":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/submissionList?submissionFromDate=2022-05-23&submissionToDate=2022-05-24","host":["{{baseUrl}}"],"path":["NEMRetail","BlindUpdate","v1","submissionList"],"query":[{"key":"submissionFromDate","value":"2022-05-23"},{"key":"submissionToDate","value":"2022-05-24"},{"key":"status","value":"PROCESSED","description":"Status","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"blindUpdateRuns\": {\r\n        \"resultCount\": \"2\",\r\n        \"runDetails\": [\r\n            {\r\n                \"butRunId\": \"100000000000009\",\r\n                \"status\": \"PROCESSED\",\r\n                \"submissionTimestamp\": \"2022-06-29T14:23:01\",\r\n                \"participantId\": \"EASTERN\",\r\n                \"partMessageId\": \"ABHI-006\",\r\n                \"rowsSubmitted\": \"1\",\r\n                \"rowsSuccess\": \"0\"\r\n            },\r\n            {\r\n                \"butRunId\": \"100000000000010\",\r\n                \"status\": \"PENDING\",\r\n                \"submissionTimestamp\": \"2022-06-29T14:32:51\",\r\n                \"participantId\": \"EASTERN\",\r\n                \"partMessageId\": \"ABHI-006\",\r\n                \"rowsSubmitted\": \"1\",\r\n                \"rowsSuccess\": \"0\"\r\n            }\r\n        ]\r\n    }\r\n}"},{"id":"5382df3f-0be5-42c5-8e71-6bd0c8159011","name":"Error example - Missing Header - X-market","originalRequest":{"method":"GET","header":[{"key":"X-initiatingParticipantID","value":"NEMMCO","description":"The ID of the Initiating Participant","type":"text"},{"key":"Accept","value":"application/json","description":"Required request header","type":"text"}],"url":{"raw":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/submissionList?status=PROCESSED","host":["{{baseUrl}}"],"path":["NEMRetail","BlindUpdate","v1","submissionList"],"query":[{"key":"status","value":"PROCESSED","description":"Status"}]}},"status":"Missing Header","code":400,"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"errors\": [\r\n        {\r\n            \"code\": \"400\",\r\n            \"title\": \"Missing Header\",\r\n            \"detail\": \"Header X-market was not found in the request. Access denied.\",\r\n            \"source\": \"API Gateway\"\r\n        }\r\n    ]\r\n}"}],"_postman_id":"d062b1e8-7948-4264-9a90-28ff421cb735"},{"name":"submissionList - response","id":"2d24b3ad-9515-4238-bac3-4d0ebcfd80d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"RESPONSE","header":[],"auth":{"type":"basic","basic":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"c701a387-bc78-4430-82e4-ab62d33e8579","id":"c701a387-bc78-4430-82e4-ab62d33e8579","name":"Blind Update Tool API Reference","type":"collection"}},"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"2d24b3ad-9515-4238-bac3-4d0ebcfd80d2"},{"name":"downloadFile","id":"88c7aff0-1e3c-4789-85c6-7b9e93eadb40","request":{"method":"GET","header":[{"key":"X-initiatingParticipantID","value":"{{X-initiatingParticipantID}}","type":"text"},{"key":"X-market","value":"{{X-market}}","type":"text"}],"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/downloadFile","auth":{"type":"basic","basic":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"c701a387-bc78-4430-82e4-ab62d33e8579","id":"c701a387-bc78-4430-82e4-ab62d33e8579","name":"Blind Update Tool API Reference","type":"collection"}},"urlObject":{"path":["NEMRetail","BlindUpdate","v1","downloadFile"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"b448b4d9-e848-4fd1-84ce-acc209ea514c","name":"downloadFile","originalRequest":{"method":"GET","header":[{"key":"X-initiatingParticipantID","value":"NEMMCO","type":"text"},{"key":"X-market","value":"NEM","type":"text"}],"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/downloadFile"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"C,PREPROD,BLIND_UPDATE_RESPONSE,NEMMCO,EASTERN,2022/06/29,14:12:49,,,,NEM,ABHI-006,100000000000007\r\nI,BUR,NMI_DATA,1,NMI,FIELD,NEW_VALUE,STATUS,RESPONSE_CODE,RESPONSE_DESCRIPTION,OLD_VALUE,UPDATED_ROW_ID,BUT_UPDATE_TS\r\nD,BUR,NMI_DATA,1,2002185326,SHARED_ISOLATION_POINT_FLAG,Y,ERROR,14,This field has been updated by a prior BUT run,,,\r\nC,END OF REPORT,4"},{"id":"d2f05337-9386-43c2-a6d9-a447e3d94e30","name":"Error example - Missing Header - X-initiatingParticipantID","originalRequest":{"method":"GET","header":[{"key":"X-market","value":"NEM","type":"text"}],"url":"{{baseUrl}}/NEMRetail/BlindUpdate/v1/downloadFile"},"status":"Missing Header","code":400,"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"errors\": [\r\n        {\r\n            \"code\": \"400\",\r\n            \"title\": \"Missing Header\",\r\n            \"detail\": \"Header X-initiatingParticipantID was not found in the request. Access denied.\",\r\n            \"source\": \"API Gateway\"\r\n        }\r\n    ]\r\n}"}],"_postman_id":"88c7aff0-1e3c-4789-85c6-7b9e93eadb40"},{"name":"downloadFile - response","id":"e7dfe588-5131-43ac-b3a9-9ab1049684a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"RESPONSE","header":[],"url":"DownloadList: C,PREPROD,BLIND_UPDATE_RESPONSE,NEMMCO,EASTERN,2022/06/29,14:12:49,,,,NEM,ABHI-006,100000000000007\nI,BUR,NMI_DATA,1,NMI,FIELD,NEW_VALUE,STATUS,RESPONSE_CODE,RESPONSE_DESCRIPTION,OLD_VALUE,UPDATED_ROW_ID,BUT_UPDATE_TS\nD,BUR,NMI_DATA,1,2002185326,SHARED_ISOLATION_POINT_FLAG,Y,ERROR,14,This field has been updated by a prior BUT run,,,\nC,END OF REPORT,4","auth":{"type":"basic","basic":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"c701a387-bc78-4430-82e4-ab62d33e8579","id":"c701a387-bc78-4430-82e4-ab62d33e8579","name":"Blind Update Tool API Reference","type":"collection"}},"urlObject":{"port":" C,PREPROD,BLIND_UPDATE_RESPONSE,NEMMCO,EASTERN,2022","path":["06","29,14:12:49,,,,NEM,ABHI-006,100000000000007\nI,BUR,NMI_DATA,1,NMI,FIELD,NEW_VALUE,STATUS,RESPONSE_CODE,RESPONSE_DESCRIPTION,OLD_VALUE,UPDATED_ROW_ID,BUT_UPDATE_TS\nD,BUR,NMI_DATA,1,2002185326,SHARED_ISOLATION_POINT_FLAG,Y,ERROR,14,This field has been updated by a prior BUT run,,,\nC,END OF REPORT,4"],"host":["DownloadList"],"query":[],"variable":[]}},"response":[],"_postman_id":"e7dfe588-5131-43ac-b3a9-9ab1049684a5"}],"auth":{"type":"basic","basic":{"basicConfig":[]}},"event":[{"listen":"prerequest","script":{"id":"b4cb3a13-0bfe-43d9-9385-76af0bf82542","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"6c5a67fc-3011-4780-9f78-115be381bab3","type":"text/javascript","exec":[""]}}]}