{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"df5a7f32-5a89-4087-a958-bc35797d43fb","name":"GBB Submission API Reference","description":"The Submission API enables participants to submit data to the Gas Bulletin Board (GBB).\n\nFor details on the business rules for this API, see the [BB Submission Guide](https://www.aemo.com.au/-/media/files/gas/natural_gas_services_bulletin_board/site-content/gbb-documents/guides-and-procedures/bb-data-submission-guide.pdf?la=en).\n\n# API status\n\nIn progress. This API includes a new blendCurtailment endpoint.\n\n# Assumed knowledge\n\n- API and JSON or YAML basics\n    \n- [API Reference](https://visualisations.aemo.com.au/aemo/web-help/Content/API_Reference/API_introduction.htm?tocpath=API)\n    \n- [Connecting to Markets Systems](https://visualisations.aemo.com.au/aemo/web-help/Content/ConnectingToAEMO/Interfaces.htm?tocpath=Connecting%20to%20Market%20Systems%7C_____0)\n    \n\n# Getting access\n\nRegistration is required to be a participant in the GBB. See [GBB facility registration](https://aemo.com.au/en/energy-systems/gas/gas-bulletin-board-gbb/gbb-facility-registration).\n\n# Prerequisites\n\nBefore using the Submission API, you must:\n\n- Have a Participant ID. If your company is a Registered Participant, it is set up during the registration process.Have a Participant ID with an effective date of registration.\n    \n- Have a user ID and password with access rights provided by your company's participant administrator. For details, see user rights access below.\n    \n- Understand the applicable rules and procedures. See **Related rules and procedures**.\n    \n- Have an API gateway and a [TLS certificate.](https://dev.aemo.com.au/tls-certificates)\n    \n- 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.\n    \n\n# API portal\n\nPre-production: [https://dev.preprod.aemo.com.au/submission](https://dev.preprod.aemo.com.au/submission)\n\nProduction: [https://dev.aemo.com.au/submission](https://dev.aemo.com.au/submission)\n\n# Related rules and procedures\n\n- [NGR Part 18: Natural Gas Services Bulletin Board - AEMC Energy Rules](https://energy-rules.aemc.gov.au/ngr/471/259623#18)\n    \n- [NGR Part 27: East coast gas system reliability and supply adequacy](https://energy-rules.aemc.gov.au/ngr/471)\n    \n- [AEMO | Procedures and guides](https://www.aemo.com.au/energy-systems/gas/gas-bulletin-board-gbb/procedures-policies-and-guides/procedures-and-guides)\n    \n\n# Authentication\n\n- API connections use mTLS certificates to secure the transport layer with encrypted communication and secure interactions between participants’ and AEMO’s systems.\n    \n- TLS [certificates](https://dev.aemo.com.au/tls-certificates) are self-managed by participants.\n    \n- All communications between AEMO’s API gateway and participants’ gateways use HTTPS. AEMO APIs do not support HTTP.\n    \n\n# Authorisation\n\nAll API requests are authorised by Basic HTTP authentication ([Basic Auth](https://dev.aemo.com.au/urm-username-password)) using a Base64-encoded username and password. The credentials are assigned by your company’s participant administrator.\n\nWhen making an API request, include the Base64-encoded string in a HTTPS Authorization header.\n\n# User rights access\n\nParticipant administrators provide access to the Submission API using the **GBB - Gas Bulletin Board** entity.\n\nParticipants Users provide the base-64 encoded URM credentials in the Basic Auth header.\n\nFor details about user rights access, creating new Participant Users and assigning rights, see the [User RIghts Management help](https://visualisations.aemo.com.au/aemo/web-help/Content/UserRightsManagement/URM.htm?tocpath=User%20Rights%20Management%7C_____0).\n\n# Compression\n\nYou can submit your API compressed or uncompressed. Compression protocols are gzip or deflate.\n\n# Throttling\n\nTo control traffic, AEMO implements throttling on API endpoint requests. When requests exceed the throttling limit, a HTTP 429 or 422 response is returned.\n\n| **Throttling level** | **Limit** |\n| --- | --- |\n| Level 1 | 60 requests/min per X-initiatingParticipantID |\n| Level 2 | 250 requests/min |\n\n# API gateway\n\nParticipants can connect to the AEMO API Gateway through the internet or MarketNet. See [URL format](https://portal.preprod.nemnet.net.au/help/Content/API_Reference/URL_format.htm?TocPath=API%20Reference%7CAbout%20AEMO%E2%80%99s%20APIs%7CURL%20format%7C_____0) in the API Reference.\n\n# Submission size\n\nA submission request or response has a payload limit of 10 MB (compressed or uncompressed).\n\n# Submission interfaces\n\nIn addition to the API, you can use the Markets Portal to submit GBB data and retrieve private reports. For details, see [GBB](https://visualisations.aemo.com.au/aemo/web-help/Content/GasBulletinBoard/GBB.htm?tocpath=Gas%20Bulletin%20Board%20(GBB)%7C_____0) in Markets Portal Help.\n\n# Response codes\n\nSee [HTTP Response Codes](https://portal.preprod.nemnet.net.au/help/Content/API_Reference/HTTP_response.htm?TocPath=API%20Reference%7CAbout%20AEMO%E2%80%99s%20APIs%7CHTTP%20response%7C_____0) in Markets Portal Help.\n\n# Response fields\n\nA submission response returns a `data` object with the results of a submission and an `errors` array.\n\nSuccessful submission response example:\n\n``` json\n{\n  \"data\": {},\n  \"errors\": null\n}\n\n ```\n\nAn unsuccessful submission reponse with 422 status code includes the transaction error code and error details in the `errors` array. Example:\n\n``` json\n{\n    {\n    \"data\": {},\n    \"errors\": [\n        {\n            \"code\": 73,\n            \"title\": \"InvalidBuySell\",\n            \"detail\": \"BuySell value 24.1 is not valid\",\n            \"source\": null\n        }\n    ]\n}\n\n ```\n\nFor a complete list of validation errors, see **Validation error codes**.\n\n# Validation error codes\n\nThe following tables lists validation error codes for all transaction types.\n\n| Label | Description |\n| --- | --- |\n| {0} | The invalid data provided for a field in the uploaded file |\n| {1} | The data type for a field in the uploaded file |\n\n| Error code | Error type | Transaction log description |\n| --- | --- | --- |\n| 0 | File processing success | File processed without errors or alarms, {0} rows accepted |\n| 1 | File processing error | Unexpected file processing error |\n| 2 | File processing error | Unexpected file processing error |\n| 3 | File processing error | File name provided does not comply with COMPID_TRANSACTIONNAME_CCYYMMDDHHMMSS.CSV naming convention |\n| 4 | File processing error | The transaction name {0} within the file name provided is not of a known type |\n| 5 | File processing error | The transaction fields do not match those associated to the transaction name |\n| 8 | File processing error | Invalid data provided {0} for type {1} |\n| 9 | File processing error | Empty file submitted |\n| 89 | File processing error | Rows with duplicate key information are present in the file |\n| 20 | Date | The GasDate {0} provided is not a valid date |\n| 21 | Date | The GasDate {0:yyyy-MM-dd HH:mm:ss} provided must be a current or future date |\n| 22 | Date | The EffectiveDate {0} provided is not a valid date |\n| 23 | Date | Effective Date {1:yyyy-MM-dd HH:mm:ss} for facility {0} is in the past |\n| 24 | Date | The TerminationDate {0} provided is not a valid date |\n| 25 | Date | The TerminationDate {0:yyyy-MM-dd HH:mm:ss} provided must be a current or future date |\n| 26 | Date | Gas Date {1:yyyy-MM-dd HH:mm:ss} for facility {0} is not a historical date |\n| 27 | Date | The TerminationDate {0:yyyy-MM-dd HH:mm:ss} must be later than the EffectiveDate |\n| 28 | Date | ToGasDate must be equal to or greater than FromGasDate |\n| 29 | Date | Effective Date {1:yyyy-MM-dd} for connection point {0} is in the past |\n| 30 | Date | Month {0} provided is not valid. Must be between 1 and 12 |\n| 31 | Date | Year {0} provided is not valid |\n| 32 | Date | Gas Date {0:yyyy-MM-dd HH:mm:ss} is not a historical date |\n| 33 | Date | FromGasDate must be equal to or greater than current gas day |\n| 34 | Date | FromGasDate must not overlap the date range of any other row for the same FacilityId and Outlook Type |\n| 35 | Date | ToGasDate must not overlap the date range of any other row for the same FacilityId and Outlook Type |\n| 36 | Date | FromGasDate and ToGasDate can only be a maximum of one calendar month apart |\n| 37 | Date | Gas Date {0:yyyy-MM-dd} can be for either of D, D+1 or D+2 |\n| 105 | Date | Gas Date is older than a month |\n| 40 | Identifier | Facility Id {0} does not exist in the database |\n| 41 | Identifier | Participant is not the registered operator of Facility {0} |\n| 42 | Identifier | Zone ID {0} does not exist in the database |\n| 43 | Identifier | Zone ID {1} is not associated with Facility Id {0} |\n| 44 | Identifier | The OfferId provided does not exist in the database |\n| 45 | Identifier | The UserId provided does not exist on the database. |\n| 46 | Identifier | The UserId provided is not associated with the file provider |\n| 47 | Identifier | The EventId provided does not exist on the database. |\n| 48 | Identifier | The file provider is not authorised to upload transactions of this type |\n| 49 | Identifier | ConnectionPointId {0} does not exist in the database |\n| 50 | Identifier | Participant is not the registered operator of connection point {0}. |\n| 51 | Identifier | Participant is not permitted to submit data for {0} transactions. |\n| 52 | Identifier | Zone does not exist in the database for Facility {0} |\n| 53 | Identifier | Facility Id {0} is not a valid storage facility |\n| 54 | Identifier | Facility Id {0} is not a valid pipeline |\n| 60 | Type | Capacity type {1} for facility {0} is not valid |\n| 61 | Type | Demand type {1} for facility {0} is not valid |\n| 62 | Type | Nomination type {1} for facility {0} is not valid. |\n| 63 | Type | Outlook type {1} for facility {0} is not valid |\n| 64 | Type | Flow type {1} for facility {0} is not valid |\n| 65 | Type | Offer type {1} for facility {0} is not valid |\n| 66 | Type | Status type {1} for facility {0} is not valid |\n| 67 | Type | Event type {1} for facility {0} is not valid |\n| 68 | Type | Flag type {1} for facility {0} is not valid |\n| 69 | Type | Quality type {1} for facility {0} is not valid |\n| 70 | Type | Outlook type {0} is not valid for a pipeline. Valid values are TRANC and REVC |\n| 71 | Type | Outlook type {0} is not valid for a storage facility. Valid values are PRODC, WDLC, INJC |\n| 72 | Type | Outlook type {0} is not valid for a production facility. Valid value is PRODC |\n| 73 | Type | BuySell value {0} is not valid |\n| 74 | Type | Nomination type {0} is invalid for a Declared Transmission System facility. Valid values are D+0, D+1, D+2, D+3, D+4, D+5 or D+6 |\n| 75 | Type | Nomination type {0} is invalid for a non-Declared Transmission System facility. Valid values are FCNOM, FIRMN or FIRMR |\n| 76 | Type | Flow Direction {0} is not valid |\n| 77 | Type | Transmission Direction {0} is not valid |\n\n# API endpoints","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"26491644","collectionId":"df5a7f32-5a89-4087-a958-bc35797d43fb","publishedId":"2s93m8xzcw","public":true,"publicUrl":"https://documenter-api.postman.tech/view/26491644/2s93m8xzcw","privateUrl":"https://go.postman.co/documentation/26491644-df5a7f32-5a89-4087-a958-bc35797d43fb","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Data submissions to the AEMO Gas Bulletin Board."},{"name":"title","value":"Submission API"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2023-05-29T05:38:39.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Submission API","description":"Data submissions to the AEMO Gas Bulletin Board."},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s93m8xzcw"}