diff --git a/docs/archive/standards-1.8.0/LICENCE b/docs/archive/standards-1.8.0/LICENCE
new file mode 100644
index 00000000..1bc87155
--- /dev/null
+++ b/docs/archive/standards-1.8.0/LICENCE
@@ -0,0 +1,9 @@
+
Unless otherwise stated, all specifications and downloadable reference applications are subject to this MIT Open Licence.
+
MIT Licence
+
Copyright 2018 Data61
+
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/docs/archive/standards-1.8.0/README b/docs/archive/standards-1.8.0/README
new file mode 100644
index 00000000..8df6bea2
--- /dev/null
+++ b/docs/archive/standards-1.8.0/README
@@ -0,0 +1,30 @@
+
Consumer Data Right Standards
+
This repository contains the binding API Standards and Information Security profile created in response to the Consumer Data Right legislation and the subsequent regulatory rules. The purpose of the Consumer Data Right regime is to give Australians greater control over their data and is intended to apply sector by sector across the whole Australian economy.
Data Standards Body Web Site - Contains additional information on the CDR and the DSB as well as notifications of the latest developments in the regime.
+
Formal Standards Site - The published contents of the standards in this repository. This is the formal documentation of the binding standards.
+
CDR Register Design Documentation - The documentation for the CDR Register which is a core piece of infrastructure that facilitates the operation of the CDR regime.
+
+
Contributing To The Standards
+
Consultation on the standards as they evolve is performed transparently with any interested contributor invited to participate in accordance with the rules of engagement described below.
+
+
There are a number ofways to contribute to these standards:
+
+
+
Issues posted on this repository - The issues posted on this repository are used for formal consultation of specific decision proposals that are to be considered by the Data Standards Chair. These decisions constitute significant changes to the standards and are raised as required. These issues constitute an audit trail of the decisions taken by the Data Standards Chair. As this is the case it is requested that contributors do not raise new issues and instead contribute comments to the issues created by the DSB.
+
The standards maintenance repository - This repository is used to manage minor changes to established aspects of the standards. Contributors are encouraged to raise new issues in this repository that will then be prioritised for resolution in a series of multi-week iterations. Outcomes of these iterations will then be submitted to the Data Standards Chair for approval on this repository as a decision. The Consumer Data Right Support Portal is the preferred way to search for answers, raise questions and request clarification of the standards.
+
Via Email - If you would like to submit a confidential question or item of feedback, or if GitHub feels unfamiliar, the DSB welcome email correspondence related to the standards and the standards development process.
+
+
Rules of engagement for this repository
+
We're committed to undertaking conversations relating to the technical standards in the open. Questions or comments that participants might ask us via email or private message are likely to be questions or comments other participants have as well. Our answers will be of interest to everyone. There are likely to be experiences and lessons everybody working in this ecosystem can learn from. Having these conversations transparently helps us reduce duplication, resolve issues faster and keep everyone up to date with the conversation.
In addition, it would be appreciated if the following rules are adhered to when commenting or contributing:
+* Please provide a single, considered response to each proposal covering all feedback concerning the proposal.
+* For transparency, if you work at or are associated with an organisation with an interest in the standards, please indicate this in your response.
+* Please ensure you are aware of and compliant with any social media guidelines or internal processes for response set by your organisation before providing feedback.
+* Please refrain from initiating new issues or pull requests in this repository due to the need for formal approval of all aspects of the standards
diff --git a/docs/archive/standards-1.8.0/docs/draft/energy.json b/docs/archive/standards-1.8.0/docs/draft/energy.json
new file mode 100644
index 00000000..8d09f2c3
--- /dev/null
+++ b/docs/archive/standards-1.8.0/docs/draft/energy.json
@@ -0,0 +1,7068 @@
+{
+ "openapi": "3.0.3",
+ "info":
+ {
+ "title": "CDR Energy Standards - DRAFT",
+ "description": "Consumer Data Right end points and payloads for the Energy sector",
+ "version": "0.1.0"
+ },
+ "components":
+ {
+ "schemas":
+ {
+ "derRecord":
+ {
+ "type": "object",
+ "required": [
+ "servicePointId",
+ "approvedCapacity",
+ "availablePhasesCount",
+ "installedPhasesCount",
+ "islandableInstallation"
+ ],
+ "x-conditional": [
+ "protectionMode"
+ ],
+ "properties":
+ {
+ "servicePointId": {
+ "description": "Tokenised ID of the service point to be used for referring to the service point in the CDR API suite. To be created in accordance with CDR ID permanence requirements",
+ "type": "string"
+ },
+ "approvedCapacity": {
+ "description": "Approved small generating unit capacity as agreed with NSP in the connection agreement, expressed in kVA",
+ "type": "number"
+ },
+ "availablePhasesCount": {
+ "description": "The number of phases available for the installation of DER",
+ "type": "number"
+ },
+ "installedPhasesCount": {
+ "description": "The number of phases that DER is installed on",
+ "type": "number"
+ },
+ "islandableInstallation": {
+ "description": "For identification of small generating units designed with the ability to operate in an islanded mode",
+ "type": "string"
+ },
+ "hasCentralProtectionControl": {
+ "description": "For DER installations where NSPs specify the need for additional forms of protection above those inbuilt in an inverter. If absent then assumed to be false",
+ "type": "boolean",
+ "default": false
+ },
+ "protectionMode": {
+ "description": "Required only when the hasCentralProtectionAndControl flag is set to true",
+ "type": "object",
+ "properties": {
+ "exportLimitkva": {
+ "description": "Maximum amount of power (kVA) that may be exported from a connection point to the grid, as monitored by a control / relay function. A null value indicates no limit",
+ "type": "number"
+ },
+ "underFrequencyProtection": {
+ "description": "Protective function limit. Default value 47 Hz according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "underFrequencyProtectionDelay": {
+ "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "overFrequencyProtection": {
+ "description": "Protective function limit. Default value 52 Hz according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "overFrequencyProtectionDelay": {
+ "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "underVoltageProtection": {
+ "description": "Protective function limit. Default value 180V according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "underVoltageProtectionDelay": {
+ "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "overVoltageProtection": {
+ "description": "Protective function limit. Default value 260 V according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "overVoltageProtectionDelay": {
+ "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2",
+ "type": "number"
+ },
+ "sustainedOverVoltage": {
+ "description": "Sustained over voltage",
+ "type": "number"
+ },
+ "sustainedOverVoltageDelay": {
+ "description": "Trip delay time in seconds",
+ "type": "number"
+ },
+ "frequencyRateOfChange": {
+ "description": "Rate of change of frequency trip point (Hz/s)",
+ "type": "number"
+ },
+ "voltageVectorShift": {
+ "description": "Trip angle in degrees",
+ "type": "number"
+ },
+ "interTripScheme": {
+ "description": "Description of the form of inter-trip (e.g. 'from local substation')",
+ "type": "string"
+ },
+ "neutralVoltageDisplacement": {
+ "description": "Trip voltage",
+ "type": "number"
+ }
+ }
+ },
+ "acConnections": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "connectionIdentifier",
+ "count"
+ ],
+ "properties": {
+ "connectionIdentifier": {
+ "description": "AC Connection ID as defined in the DER register. Does not align with CDR ID permanence standards",
+ "type": "number"
+ },
+ "count": {
+ "description": "Number of AC Connections in the group. For the suite of AC Connections to be considered as a group, all of the AC Connections included must have the same attributes",
+ "type": "string",
+ "x-cds-type": "PositiveInteger"
+ },
+ "equipmentType": {
+ "description": "Indicates whether the DER device is connected via an inverter (and what category of inverter it is) or not (e.g. rotating machine)",
+ "type": "string"
+ },
+ "manufacturerName": {
+ "description": "The name of the inverter manufacturer",
+ "type": "string"
+ },
+ "inverterSeries": {
+ "description": "The inverter series",
+ "type": "string"
+ },
+ "inverterModelNumber": {
+ "description": "The inverter model number",
+ "type": "string"
+ },
+ "commissioningDate": {
+ "description": "The date that the DER installation is commissioned",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "installationStage": {
+ "description": "Description of the installation stage",
+ "type": "string"
+ },
+ "status": {
+ "description": "Code used to indicate the status of the Inverter. This will be used to identify if an inverter is active or inactive or decommissioned",
+ "type": "string",
+ "enum": [
+ "ACTIVE",
+ "INACTIVE",
+ "DECOMMISSIONED"
+ ]
+ },
+ "inverterDeviceCapacity": {
+ "description": "The rated AC output power that is listed in the product specified by the manufacturer",
+ "type": "number"
+ },
+ "derDevices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "count"
+ ],
+ "properties": {
+ "count": {
+ "description": "Number of devices in the group of DER devices",
+ "type": "number"
+ },
+ "manufacturer": {
+ "description": "The name of the device manufacturer",
+ "type": "string"
+ },
+ "modelNumber": {
+ "description": "The model number of the device",
+ "type": "string"
+ },
+ "status": {
+ "description": "Code used to indicate the status of the device. This will be used to identify if an inverter is active or inactive or decommissioned",
+ "type": "string",
+ "enum": [
+ "ACTIVE",
+ "INACTIVE",
+ "DECOMMISSIONED"
+ ]
+ },
+ "installationStage": {
+ "description": "Description of the device installation stage",
+ "type": "number"
+ },
+ "type": {
+ "description": "Used to indicate the primary technology used in the DER device",
+ "type": "string",
+ "enum": [
+ "FOSSIL",
+ "HYDRO",
+ "WIND",
+ "SOLAR_PV",
+ "RENEWABLE",
+ "GEOTHERMAL",
+ "STORAGE",
+ "OTHER"
+ ]
+ },
+ "subtype": {
+ "description": "This field is also used to record for example the battery chemistry, or the type of PV panel. It is also used to record if a battery is contained in an electric vehicle connected in a vehicle-to-grid arrangement",
+ "type": "string"
+ },
+ "nominalRatedCapacity": {
+ "description": "Maximum output in kVA that is listed in the product specification by the manufacturer. This refers to the capacity of each unit within the device group",
+ "type": "number"
+ },
+ "nominalStorageCapacity": {
+ "description": "Maximum storage capacity in kVAh. This refers to the capacity of each storage module within the device group",
+ "type": "number"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "type": "object",
+ "required": ["self"],
+ "properties":
+ {
+ "self":
+ {
+ "type": "string",
+ "description": "Fully qualified link that generated the current response document",
+ "x-cds-type": "URIString"
+ }
+ }
+ },
+ "meta":
+ {
+ "type": "object"
+ },
+ "linksPaginated":
+ {
+ "type": "object",
+ "required": ["self"],
+ "x-conditional": [
+ "first",
+ "prev",
+ "next",
+ "last"
+ ],
+ "properties": {
+ "self":
+ {
+ "type": "string",
+ "description": "Fully qualified link that generated the current response document",
+ "x-cds-type": "URIString"
+ },
+ "first":
+ {
+ "type": "string",
+ "description": "URI to the first page of this set. Mandatory if this response is not the first page",
+ "x-cds-type": "URIString"
+ },
+ "prev":
+ {
+ "type": "string",
+ "description": "URI to the previous page of this set. Mandatory if this response is not the first page",
+ "x-cds-type": "URIString"
+ },
+ "next":
+ {
+ "type": "string",
+ "description": "URI to the next page of this set. Mandatory if this response is not the last page",
+ "x-cds-type": "URIString"
+ },
+ "last":
+ {
+ "type": "string",
+ "description": "URI to the last page of this set. Mandatory if this response is not the last page",
+ "x-cds-type": "URIString"
+ }
+ }
+ },
+ "metaPaginated":
+ {
+ "type": "object",
+ "required": ["totalPages", "totalRecords"],
+ "properties":
+ {
+ "totalRecords":
+ {
+ "type": "integer",
+ "description": "The total number of records in the full set. See [pagination](#pagination).",
+ "x-cds-type": "NaturalNumber"
+ },
+ "totalPages":
+ {
+ "type": "integer",
+ "description": "The total number of pages in the full set. See [pagination](#pagination).",
+ "x-cds-type": "NaturalNumber"
+ }
+ }
+ }
+ },
+ "parameters":
+ {
+ "servicePointId":
+ {
+ "name": "servicePointId",
+ "description": "ID of the specific service point requested. This is a tokenised ID previous obtained from the Service Point List Data end point. Note that it is not a nationalMeteringId.",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "accountId":
+ {
+ "name": "accountId",
+ "description": "ID of a specific account to obtain data for. This is a tokenised ID previous obtained from the Account List end point.",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "newest-time":
+ {
+ "name": "newest-time",
+ "in": "query",
+ "description": "Constrain the request to records with effective time at or before this date/time. If absent defaults to current date/time. Format is aligned to DateTimeString common type",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "x-cds-type": "DateTimeString"
+ },
+ "oldest-time":
+ {
+ "name": "oldest-time",
+ "in": "query",
+ "description": "Constrain the request to records with effective time at or after this date/time. If absent defaults to newest-time minus 12 months. Format is aligned to DateTimeString common type",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "x-cds-type": "DateTimeString"
+ },
+ "newest-date":
+ {
+ "name": "newest-date",
+ "in": "query",
+ "description": "Constrain the request to records with effective date at or before this date. If absent defaults to current date. Format is aligned to DateString common type",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "x-cds-type": "DateString"
+ },
+ "oldest-date":
+ {
+ "name": "oldest-date",
+ "in": "query",
+ "description": "Constrain the request to records with effective date at or after this date. If absent defaults to newest-date minus 24 months days. Format is aligned to DateString common type",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "x-cds-type": "DateString"
+ },
+ "page":
+ {
+ "name": "page",
+ "description": "Page of results to request (standard pagination)",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number",
+ "default": "1"
+ }
+ },
+ "page-size":
+ {
+ "name": "page-size",
+ "description": "Page size to request. Default is 25 (standard pagination)",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number",
+ "default": "25"
+ }
+ },
+ "x-v":
+ {
+ "name": "x-v",
+ "description": "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)",
+ "in": "header",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "x-min-v":
+ {
+ "name": "x-min-v",
+ "description": "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "x-fapi-interaction-id":
+ {
+ "name": "x-fapi-interaction-id",
+ "description": "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "x-fapi-auth-date":
+ {
+ "name": "x-fapi-auth-date",
+ "description": "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "x-fapi-customer-ip-address":
+ {
+ "name": "x-fapi-customer-ip-address",
+ "description": "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "x-cds-client-headers":
+ {
+ "name": "x-cds-client-headers",
+ "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "x-cds-type": "Base64"
+ }
+ },
+ "requestBodies":
+ {
+ "servicePointIdList":
+ {
+ "description": "Request payload containing list of specific Service Points to obtain data for",
+ "required": true,
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "servicePointIds"
+ ],
+ "properties":
+ {
+ "servicePointIds":
+ {
+ "description": "Array of specific servicePointIds to obtain data for",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "accountIdList":
+ {
+ "description": "Request payload containing list of specific Accounts to obtain data for",
+ "required": true,
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "accountIds"
+ ],
+ "properties":
+ {
+ "accountIds":
+ {
+ "description": "Array of specific accountIds to obtain data for",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses":
+ {
+ "planList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "plans"
+ ],
+ "properties":
+ {
+ "plans":
+ {
+ "description": "Array of plans",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "planId",
+ "lastUpdated",
+ "type",
+ "fuelType",
+ "brand",
+ "brandName"
+ ],
+ "properties":
+ {
+ "planId":
+ {
+ "type": "string",
+ "x-cds-type": "ASCIIString",
+ "description": "The ID of the specific plan"
+ },
+ "effectiveFrom":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time from which this plan is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate"
+ },
+ "effectiveTo":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time at which this plan will be retired and will no longer be offered. Used to enable the managed deprecation of plans"
+ },
+ "lastUpdated":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The last date and time that the information for this plan was changed (or the creation date for the plan if it has never been altered)"
+ },
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the plan"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the plan"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the plan",
+ "enum": ["STANDING",
+ "MARKET",
+ "REGULATED"
+ ],
+ },
+ "fuelType":
+ {
+ "type": "string",
+ "description": "The fuel types covered by the plan",
+ "enum": [
+ "ELECTRICITY",
+ "GAS",
+ "DUAL"
+ ]
+ },
+ "availability":
+ {
+ "type": "string",
+ "description": "The availability of the plan. If absent then the value GENERAL is assumed",
+ "enum": [
+ "RESTRICTED",
+ "GENERAL"
+ ],
+ "default": "GENERAL"
+ },
+ "brand":
+ {
+ "type": "string",
+ "x-cds-type": "ASCIIString",
+ "description": "The ID of the brand under which this plan is offered"
+ },
+ "brandName":
+ {
+ "type": "string",
+ "description": "The display name of the brand under which this plan is offered"
+ },
+ "thirdPartyAgentId":
+ {
+ "type": "string",
+ "description": "The ID of the Third Party through which this plan may be originated"
+ },
+ "thirdPartyAgentName":
+ {
+ "type": "string",
+ "description": "The display name of the Third Party through which this plan may be originated"
+ },
+ "applicationUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to an application web page where this plan can be applied for"
+ },
+ "additionalInformation":
+ {
+ "type": "object",
+ "description": "Object that contains links to additional information on specific topics",
+ "properties":
+ {
+ "overviewUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to a general overview of the plan"
+ },
+ "termsUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to terms and conditions for the plan"
+ },
+ "eligibilityUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to detail on eligibility criteria for the plan"
+ },
+ "pricingUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to detail on pricing for the plan"
+ },
+ "bundleUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to detail on bundles that this plan can be a part of"
+ }
+ }
+ },
+ "customerType":
+ {
+ "type": "string",
+ "description": "The type of customer that the plan is offered to. If absent then the plan is available to all customers",
+ "enum": ["RESIDENTIAL",
+ "BUSINESS"
+ ]
+ },
+ "geography":
+ {
+ "type": "object",
+ "description": "Describes the geographical area that the plan is available for. If absent then it is assumed the plan is not geographically limited",
+ "required": ["supplyAreaId", "displayName"],
+ "properties":
+ {
+ "excludedPostcodes":
+ {
+ "description": "Array of valid Australian post codes that are specifically excluded from the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "includedPostcodes":
+ {
+ "description": "Array of valid Australian post codes that are included from the plan. If absent defaults to all non-excluded post codes",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "supplyAreas":
+ {
+ "description": "Array of supply areas for which this plan is available",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "properties":
+ {
+ "supplyAreaId":
+ {
+ "type": "string",
+ "x-cds-type": "ASCIIString",
+ "description": "ID of the supply area"
+ },
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the supply area"
+ },
+ "distributor":
+ {
+ "type": "string",
+ "description": "The name of the distributor for the supply area"
+ },
+ "state":
+ {
+ "type": "string",
+ "description": "The Australian state that the plan is applicable to. Valid values are defined by Australia Post PAF code file State Type Abbreviation. For example: NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT"
+ },
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "planDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "planId",
+ "lastUpdated",
+ "type",
+ "fuelType",
+ "brand",
+ "brandName"
+ ],
+ "x-conditional": [
+ "gasContract",
+ "electricityContract"
+ ],
+ "properties":
+ {
+ "planId":
+ {
+ "type": "string",
+ "x-cds-type": "ASCIIString",
+ "description": "The ID of the specific plan"
+ },
+ "effectiveFrom":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time from which this plan is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate"
+ },
+ "effectiveTo":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time at which this plan will be retired and will no longer be offered. Used to enable the managed deprecation of plans"
+ },
+ "lastUpdated":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The last date and time that the information for this plan was changed (or the creation date for the plan if it has never been altered)"
+ },
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the plan"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the plan"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the plan",
+ "enum": ["STANDING",
+ "MARKET",
+ "REGULATED"
+ ],
+ },
+ "fuelType":
+ {
+ "type": "string",
+ "description": "The fuel types covered by the plan",
+ "enum": [
+ "ELECTRICITY",
+ "GAS",
+ "DUAL"
+ ],
+ },
+ "availability":
+ {
+ "type": "string",
+ "description": "The availability of the plan. If absent then the value GENERAL is assumed",
+ "enum": ["RESTRICTED",
+ "GENERAL"
+ ],
+ },
+ "brand":
+ {
+ "type": "string",
+ "x-cds-type": "ASCIIString",
+ "description": "The ID of the brand under which this plan is offered"
+ },
+ "brandName":
+ {
+ "type": "string",
+ "description": "The display name of the brand under which this plan is offered"
+ },
+ "thirdPartyAgentId":
+ {
+ "type": "string",
+ "description": "The ID of the Third Party through which this plan may be originated"
+ },
+ "thirdPartyAgentName":
+ {
+ "type": "string",
+ "description": "The display name of the Third Party through which this plan may be originated"
+ },
+ "applicationUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to an application web page where this plan can be applied for"
+ },
+ "additionalInformation":
+ {
+ "type": "object",
+ "description": "Object that contains links to additional information on specific topics",
+ "properties":
+ {
+ "overviewUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to a general overview of the plan"
+ },
+ "termsUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to terms and conditions for the plan"
+ },
+ "eligibilityUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to detail on eligibility criteria for the plan"
+ },
+ "pricingUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to detail on pricing for the plan"
+ },
+ "bundleUri":
+ {
+ "type": "string",
+ "x-cds-type": "URIString",
+ "description": "A link to detail on bundles that this plan can be a part of"
+ }
+ }
+ },
+ "customerType":
+ {
+ "type": "string",
+ "description": "The type of customer that the plan is offered to. If absent then the plan is available to all customers",
+ "enum": ["RESIDENTIAL",
+ "BUSINESS"
+ ]
+ },
+ "geography":
+ {
+ "type": "object",
+ "description": "Describes the geographical area that the plan is available for. If absent then it is assumed the plan is not geographically limited",
+ "required": ["supplyAreaId", "displayName"],
+ "properties":
+ {
+ "excludedPostcodes":
+ {
+ "description": "Array of valid Australian post codes that are specifically excluded from the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "includedPostcodes":
+ {
+ "description": "Array of valid Australian post codes that are included from the plan. If absent defaults to all non-excluded post codes",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "supplyAreas":
+ {
+ "description": "Array of supply areas for which this plan is available",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "properties":
+ {
+ "supplyAreaId":
+ {
+ "type": "string",
+ "x-cds-type": "ASCIIString",
+ "description": "ID of the supply area"
+ },
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the supply area"
+ },
+ "distributor":
+ {
+ "type": "string",
+ "description": "The name of the distributor for the supply area"
+ },
+ "state":
+ {
+ "type": "string",
+ "description": "The Australian state that the plan is applicable to. Valid values are defined by Australia Post PAF code file State Type Abbreviation. For example: NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT"
+ },
+ }
+ }
+ }
+ }
+ },
+ "meteringCharges":
+ {
+ "description": "Charges for metering included in the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "minimumValue"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the charge"
+ },
+ "minimumValue":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Minimum value of the charge if the charge is a range or the absolute value of the charge if no range is specified"
+ },
+ "maximumValue":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The upper limit of the charge if the charge could occur in a range"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "The charges that occur on a schedule indicates the frequency. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ }
+ }
+ }
+ },
+ "gasContract":
+ {
+ "type": "object",
+ "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to GAS or DUAL",
+ "required": [
+ "pricingModel",
+ "isFixed",
+ "billFrequency",
+ "paymentOption",
+ "tariffPeriod"
+ ],
+ "x-conditional": [
+ "timeZone",
+ "benefitPeriod",
+ "variation",
+ "coolingOffDays",
+ "controlledLoad"
+ ],
+ "properties":
+ {
+ "additionalFeeInformation":
+ {
+ "type": "string",
+ "description": "Free text field containing additional information of the fees for this contract"
+ },
+ "pricingModel":
+ {
+ "type": "string",
+ "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE",
+ "enum": ["SINGLE_RATE",
+ "SINGLE_RATE_CONT_LOAD",
+ "TIME_OF_USE",
+ "TIME_OF_USE_CONT_LOAD",
+ "FLEXIBLE",
+ "FLEXIBLE_CONT_LOAD",
+ "QUOTA"
+ ]
+ },
+ "termType":
+ {
+ "type": "string",
+ "description": "The term for the contract. If absent assumes no specified term",
+ "enum": ["1_YEAR",
+ "2_YEAR",
+ "3_YEAR",
+ "4_YEAR",
+ "5_YEAR",
+ "ONGOING",
+ "OTHER"
+ ]
+ },
+ "timeZone":
+ {
+ "type": "string",
+ "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds",
+ "enum": ["LOCAL",
+ "AEST"
+ ]
+ },
+ "benefitPeriod":
+ {
+ "type": "string",
+ "description": "Description of the benefit period. Should only be present if termType has the value ONGOING"
+ },
+ "terms":
+ {
+ "type": "string",
+ "description": "Free text description of the terms for the contract"
+ },
+ "isFixed":
+ {
+ "type": "boolean",
+ "description": "Flag indicating whether prices are fixed or variable"
+ },
+ "variation":
+ {
+ "type": "string",
+ "description": "Free text description of price variation policy and conditions for the contract. Mandatory if isFixed is true"
+ },
+ "onExpiryDescription":
+ {
+ "type": "string",
+ "description": "Free text field that describes what will occur on or prior to expiry of the fixed contract term or benefit period"
+ },
+ "meterTypes":
+ {
+ "description": "An array of the meter types that this contract is available for",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "coolingOffDays":
+ {
+ "type": "string",
+ "x-cds-type": "PositiveInteger",
+ "description": "Number of days in the cooling off period for the contract. Mandatory for plans with type of MARKET "
+ },
+ "billFrequency":
+ {
+ "description": "An array of the available billing schedules for this contract. Formatted according to ISO 8601 Durations (excludes recurrence syntax)",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "controlledLoad":
+ {
+ "type": "object",
+ "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD",
+ "required": ["displayName", "dailyCharge", "period", "rates"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "A display name for the controlled load tier"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the controlled load tier"
+ },
+ "dailyCharge":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The daily supply charge (exclusive of GST) for this controlled load tier"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ },
+ }
+ }
+ }
+ }
+ },
+ "paymentOption":
+ {
+ "description": "Payment options for this contract",
+ "type": "array",
+ "items":
+ {
+ "type": "string",
+ "enum": [
+ "PAPER_BILL",
+ "CREDIT_CARD",
+ "DIRECT_DEBIT",
+ "BPAY"
+ ]
+ }
+ },
+ "incentives":
+ {
+ "description": "Optional list of incentives available for the contract",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "description"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the incentive"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the incentive"
+ },
+ }
+ }
+ },
+ "discounts":
+ {
+ "description": "Optional list of discounts available for the contract",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "methodUType"],
+ "x-conditional": [
+ "category",
+ "percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the discount"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the discount"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the discount",
+ "enum": ["CONDITIONAL",
+ "GUARANTEED"
+ ]
+ },
+ "category":
+ {
+ "type": "string",
+ "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL",
+ "enum": ["PAY_ON_TIME",
+ "DIRECT_DEBIT"
+ ]
+ },
+ "methodUType":
+ {
+ "type": "string",
+ "description": "The method of calculation of the discount",
+ "enum": [
+ "percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ]
+ },
+ "percentOfBill":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfBill",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the bill amount (some types of charges may be excluded from this discount based on plan terms)"
+ },
+ }
+ },
+ "percentOfUse":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfUse",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the usageamount"
+ }
+ }
+ },
+ "fixedAmount":
+ {
+ "type": "object",
+ "description": "Required if methodUType is fixedAmount",
+ "required": ["amount"],
+ "properties":
+ {
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the discount"
+ }
+ }
+ },
+ "percentOverThreshold":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOverThreshold",
+ "required": ["rate", "usageAmount"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount over the usage amount"
+ },
+ "usageAmount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The usage amount threshold above which the discount applies"
+ }
+ }
+ }
+ }
+ }
+ },
+ "greenPowerCharges":
+ {
+ "description": "Optional list of charges applicable to green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "tiers"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the charge"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of charge",
+ "enum": ["FIXED_PER_DAY",
+ "FIXED_PER_WEEK",
+ "FIXED_PER_MONTH",
+ "FIXED_PER_UNIT",
+ "PERCENT_OF_USE",
+ "PERCENT_OF_BILL"
+ ]
+ },
+ "tiers":
+ {
+ "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["percentGreen"],
+ "x-conditional": [
+ "rate",
+ "amount"
+ ],
+ "properties":
+ {
+ "percentGreen":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The upper percentage of green power used applicable for this tier"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the charge if the type implies the application of a rate"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the charge if the type implies the application of a fixed amount"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "eligibility":
+ {
+ "description": "Eligibility restrictions or requirements",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type", "information"],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the eligibility restriction",
+ "enum": ["EXISTING_CUST",
+ "EXISTING_POOL",
+ "EXISTING_SOLAR",
+ "EXISTING_BATTERY",
+ "EXISTING_SMART_METER",
+ "EXISTING_BASIC_METER",
+ "SENIOR_CARD",
+ "SMALL_BUSINESS",
+ "NO_SOLAR_FIT",
+ "NEW_CUSTOMER",
+ "ONLINE_ONLY",
+ "REQ_EQUIP_SUPPLIER",
+ "THIRD_PARTY_ONLY",
+ "SPORT_CLUB_MEMBER",
+ "ORG_MEMBER",
+ "SPECIFIC_LOCATION",
+ "MINIMUM_USAGE",
+ "LOYALTY_MEMBER",
+ "GROUP_BUY_MEMBER",
+ "OTHER"
+ ]
+ },
+ "information":
+ {
+ "type": "string",
+ "description": "Information of the eligibility restriction specific to the type of the restriction"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the eligibility restriction"
+ },
+ }
+ }
+ },
+ "fee":
+ {
+ "description": "An array of fees applicable to the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type", "term"],
+ "x-conditional": [
+ "rate",
+ "amount"
+ ],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the fee",
+ "enum": ["EXIT",
+ "ESTABLISHMENT",
+ "LATE_PAYMENT",
+ "DISCONNECTION",
+ "DISCONNECT_MOVE_OUT",
+ "DISCONNECT_NON_PAY",
+ "RECONNECTION",
+ "CONNECTION",
+ "PAYMENT_PROCESSING",
+ "CC_PROCESSING",
+ "CHEQUE_DISHONOUR",
+ "DD_DISHONOUR",
+ "MEMBERSHIP",
+ "CONTRIBUTION",
+ "PAPER_BILL",
+ "OTHER"
+ ]
+ },
+ "term":
+ {
+ "type": "string",
+ "description": "The term of the fee",
+ "enum": ["FIXED",
+ "1_YEAR",
+ "2_YEAR",
+ "3_YEAR",
+ "4_YEAR",
+ "5_YEAR",
+ "PERCENT_OF_BILL",
+ "ANNUAL",
+ "MONTHLY",
+ "BIANNUAL"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The fee amount. Required if term is not PERCENT_OF_BILL"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The fee rate. Required if term is PERCENT_OF_BILL"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the fee"
+ },
+ }
+ }
+ },
+ "solarFeedInTariff":
+ {
+ "description": "Array of feed in tariffs for solar power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type"],
+ "x-conditional": [
+ "amount"
+ ],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the tariff",
+ "enum": ["GOVERNMENT",
+ "RETAILER"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The tariff amount per kWh"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the tariff"
+ },
+ }
+ }
+ },
+ "tariffPeriod":
+ {
+ "description": "Array of tariff periods",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "dailySupplyCharges", "rateBlockUType"],
+ "x-conditional": [
+ "startDate",
+ "endDate",
+ "singleRate",
+ "timeOfUseRates"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The name of the tariff period"
+ },
+ "startDate":
+ {
+ "type": "string",
+ "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "endDate":
+ {
+ "type": "string",
+ "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "dailySupplyCharges":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST."
+ },
+ "rateBlockUType":
+ {
+ "type": "string",
+ "description": "Specifies the type of rate applicable to this tariff period",
+ "enum": ["singleRate",
+ "timeOfUseRates"
+ ]
+ },
+ "singleRate":
+ {
+ "type": "object",
+ "description": "Object representing a single rate. Required if rateBlockUType is singleRate",
+ "required": ["displayName", "rates"],
+ "x-conditional": [
+ "generalUnitPrice"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "generalUnitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ }
+ }
+ },
+ "timeOfUseRates":
+ {
+ "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "rates", "timeOfUse"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of usage that the rate applies to",
+ "enum": ["PEAK",
+ "OFF_PEAK",
+ "OFF_PEAK_DC",
+ "SHOULDER",
+ "SHOULDER1",
+ "SHOULDER2"
+ ]
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ },
+ "timeOfUse":
+ {
+ "description": "Array of times of use",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["days", "startTime", "endTime"],
+ "properties":
+ {
+ "days":
+ {
+ "description": "The days that the rate applies to",
+ "type": "array",
+ "items":
+ {
+ "type": "string",
+ "enum": ["SUNDAY",
+ "MONDAY",
+ "TUESDAY",
+ "WEDNESDAY",
+ "THURSDAY",
+ "FRIDAY",
+ "SATURDAY",
+ "BUSINESS_DAYS"
+ ]
+ }
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format"
+ }
+ }
+ }
+ },
+ "demandCharges":
+ {
+ "description": "Array of demand charges",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "startTime", "endTime"],
+ "x-conditional": [
+ "amount"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the charge"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The charge amount per kWh exclusive of GST"
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "electricityContract":
+ {
+ "type": "object",
+ "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to ELECTRICITY or DUAL",
+ "required": [
+ "pricingModel",
+ "isFixed",
+ "billFrequency",
+ "paymentOption",
+ "tariffPeriod"
+ ],
+ "x-conditional": [
+ "timeZone",
+ "controlledLoad"
+ ],
+ "properties":
+ {
+ "additionalFeeInformation":
+ {
+ "type": "string",
+ "description": "Free text field containing additional information of the fees for this contract"
+ },
+ "pricingModel":
+ {
+ "type": "string",
+ "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE",
+ "enum": ["SINGLE_RATE",
+ "SINGLE_RATE_CONT_LOAD",
+ "TIME_OF_USE",
+ "TIME_OF_USE_CONT_LOAD",
+ "FLEXIBLE",
+ "FLEXIBLE_CONT_LOAD",
+ "QUOTA"
+ ]
+ },
+ "termType":
+ {
+ "type": "string",
+ "description": "The term for the contract. If absent assumes no specified term",
+ "enum": ["1_YEAR",
+ "2_YEAR",
+ "3_YEAR",
+ "4_YEAR",
+ "5_YEAR",
+ "ONGOING",
+ "OTHER"
+ ]
+ },
+ "timeZone":
+ {
+ "type": "string",
+ "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds",
+ "enum": ["LOCAL",
+ "AEST"
+ ]
+ },
+ "benefitPeriod":
+ {
+ "type": "string",
+ "description": "Description of the benefit period. Should only be present if termType has the value ONGOING"
+ },
+ "terms":
+ {
+ "type": "string",
+ "description": "Free text description of the terms for the contract"
+ },
+ "isFixed":
+ {
+ "type": "boolean",
+ "description": "Flag indicating whether prices are fixed or variable"
+ },
+ "variation":
+ {
+ "type": "string",
+ "description": "Free text description of price variation policy and conditions for the contract. Mandatory if isFixed is true"
+ },
+ "onExpiryDescription":
+ {
+ "type": "string",
+ "description": "Free text field that describes what will occur on or prior to expiry of the fixed contract term or benefit period"
+ },
+ "meterTypes":
+ {
+ "description": "An array of the meter types that this contract is available for",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "coolingOffDays":
+ {
+ "type": "string",
+ "x-cds-type": "PositiveInteger",
+ "description": "Number of days in the cooling off period for the contract. Mandatory for plans with type of MARKET "
+ },
+ "billFrequency":
+ {
+ "description": "An array of the available billing schedules for this contract. Formatted according to ISO 8601 Durations (excludes recurrence syntax)",
+ "type": "array",
+ "items":
+ {
+ "type": "string"
+ }
+ },
+ "controlledLoad":
+ {
+ "type": "object",
+ "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD",
+ "required": ["displayName", "dailyCharge", "period", "rates"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "A display name for the controlled load tier"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the controlled load tier"
+ },
+ "dailyCharge":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The daily supply charge (exclusive of GST) for this controlled load tier"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ },
+ }
+ }
+ }
+ }
+ },
+ "paymentOption":
+ {
+ "description": "Payment options for this contract",
+ "type": "array",
+ "items":
+ {
+ "type": "string",
+ "enum": ["PAPER_BILL",
+ "CREDIT_CARD",
+ "DIRECT_DEBIT",
+ "BPAY"
+ ]
+ }
+ },
+ "incentives":
+ {
+ "description": "Optional list of incentives available for the contract",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "description"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the incentive"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the incentive"
+ },
+ }
+ }
+ },
+ "discounts":
+ {
+ "description": "Optional list of discounts available for the contract",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "methodUType"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the discount"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the discount"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the discount",
+ "enum": ["CONDITIONAL",
+ "GUARANTEED"
+ ]
+ },
+ "category":
+ {
+ "type": "string",
+ "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL",
+ "enum": ["PAY_ON_TIME",
+ "DIRECT_DEBIT"
+ ]
+ },
+ "methodUType":
+ {
+ "type": "string",
+ "description": "The method of calculation of the discount",
+ "enum": ["percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ]
+ },
+ "percentOfBill":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfBill",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the bill amount"
+ },
+ }
+ },
+ "percentOfUse":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfUse",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the usageamount"
+ }
+ }
+ },
+ "fixedAmount":
+ {
+ "type": "object",
+ "description": "Required if methodUType is fixedAmount",
+ "required": ["amount"],
+ "properties":
+ {
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the discount"
+ }
+ }
+ },
+ "percentOverThreshold":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOverThreshold",
+ "required": ["rate", "usageAmount"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount over the usage amount"
+ },
+ "usageAmount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The usage amount threshold above which the discount applies"
+ }
+ }
+ }
+ }
+ }
+ },
+ "greenPowerCharges":
+ {
+ "description": "Optional list of charges applicable to green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "tiers"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the charge"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of charge",
+ "enum": ["FIXED_PER_DAY",
+ "FIXED_PER_WEEK",
+ "FIXED_PER_MONTH",
+ "FIXED_PER_UNIT",
+ "PERCENT_OF_USE",
+ "PERCENT_OF_BILL"
+ ]
+ },
+ "tiers":
+ {
+ "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["percentGreen"],
+ "properties":
+ {
+ "percentGreen":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The upper percentage of green power used applicable for this tier"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the charge if the type implies the application of a rate"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the charge if the type implies the application of a fixed amount"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "eligibility":
+ {
+ "description": "Eligibility restrictions or requirements",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type", "information"],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the eligibility restriction",
+ "enum": ["EXISTING_CUST",
+ "EXISTING_POOL",
+ "EXISTING_SOLAR",
+ "EXISTING_BATTERY",
+ "EXISTING_SMART_METER",
+ "EXISTING_BASIC_METER",
+ "SENIOR_CARD",
+ "SMALL_BUSINESS",
+ "NO_SOLAR_FIT",
+ "NEW_CUSTOMER",
+ "ONLINE_ONLY",
+ "REQ_EQUIP_SUPPLIER",
+ "THIRD_PARTY_ONLY",
+ "SPORT_CLUB_MEMBER",
+ "ORG_MEMBER",
+ "SPECIFIC_LOCATION",
+ "MINIMUM_USAGE",
+ "LOYALTY_MEMBER",
+ "GROUP_BUY_MEMBER",
+ "OTHER"
+ ]
+ },
+ "information":
+ {
+ "type": "string",
+ "description": "Information of the eligibility restriction specific to the type of the restriction"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the eligibility restriction"
+ },
+ }
+ }
+ },
+ "fee":
+ {
+ "description": "An array of fees applicable to the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type", "term"],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the fee",
+ "enum": ["EXIT",
+ "ESTABLISHMENT",
+ "LATE_PAYMENT",
+ "DISCONNECTION",
+ "DISCONNECT_MOVE_OUT",
+ "DISCONNECT_NON_PAY",
+ "RECONNECTION",
+ "CONNECTION",
+ "PAYMENT_PROCESSING",
+ "CC_PROCESSING",
+ "CHEQUE_DISHONOUR",
+ "DD_DISHONOUR",
+ "MEMBERSHIP",
+ "CONTRIBUTION",
+ "PAPER_BILL",
+ "OTHER"
+ ]
+ },
+ "term":
+ {
+ "type": "string",
+ "description": "The term of the fee",
+ "enum": ["FIXED",
+ "1_YEAR",
+ "2_YEAR",
+ "3_YEAR",
+ "4_YEAR",
+ "5_YEAR",
+ "PERCENT_OF_BILL",
+ "ANNUAL",
+ "MONTHLY",
+ "BIANNUAL"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The fee amount. Required if term is not PERCENT_OF_BILL"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The fee rate. Required if term is PERCENT_OF_BILL"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the fee"
+ },
+ }
+ }
+ },
+ "solarFeedInTariff":
+ {
+ "description": "Array of feed in tariffs for solar power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type"],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the tariff",
+ "enum": ["GOVERNMENT",
+ "RETAILER"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The tariff amount per kWh"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the tariff"
+ },
+ }
+ }
+ },
+ "tariffPeriod":
+ {
+ "description": "Array of tariff periods",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "dailySupplyCharges", "rateBlockUType"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The name of the tariff period"
+ },
+ "startDate":
+ {
+ "type": "string",
+ "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "endDate":
+ {
+ "type": "string",
+ "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "dailySupplyCharges":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST."
+ },
+ "rateBlockUType":
+ {
+ "type": "string",
+ "description": "Specifies the type of rate applicable to this tariff period",
+ "enum": ["singleRate",
+ "timeOfUseRates"
+ ]
+ },
+ "singleRate":
+ {
+ "type": "object",
+ "description": "Object representing a single rate. Required if rateBlockUType is singleRate",
+ "required": ["displayName", "rates"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "generalUnitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ }
+ }
+ },
+ "timeOfUseRates":
+ {
+ "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "rates", "timeOfUse"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of usage that the rate applies to",
+ "enum": ["PEAK",
+ "OFF_PEAK",
+ "OFF_PEAK_DC",
+ "SHOULDER",
+ "SHOULDER1",
+ "SHOULDER2"
+ ]
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ },
+ "timeOfUse":
+ {
+ "description": "Array of times of use",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["days", "startTime", "endTime"],
+ "properties":
+ {
+ "days":
+ {
+ "description": "The days that the rate applies to",
+ "type": "array",
+ "items":
+ {
+ "type": "string",
+ "enum": ["SUNDAY",
+ "MONDAY",
+ "TUESDAY",
+ "WEDNESDAY",
+ "THURSDAY",
+ "FRIDAY",
+ "SATURDAY",
+ "BUSINESS_DAYS"
+ ]
+ }
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format"
+ }
+ }
+ }
+ },
+ "demandCharges":
+ {
+ "description": "Array of demand charges",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "startTime", "endTime"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the charge"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The charge amount per kWh exclusive of GST"
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format "
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "servicePointList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "servicePoints"
+ ],
+ "properties":
+ {
+ "servicePoints":
+ {
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "servicePointId",
+ "nationalMeteringId",
+ "servicePointClassification",
+ "servicePointStatus",
+ "jurisdictionCode",
+ "validFromDate",
+ "lastUpdateDateTime",
+ "creationDateTime"
+ ],
+ "properties":
+ {
+ "servicePointId":
+ {
+ "type": "string",
+ "description": "The ID of the service point for use in the CDR APIs. Created according to the rules for ID permanence"
+ },
+ "nationalMeteringId":
+ {
+ "type": "string",
+ "description": "The independent ID of the service point, known in the industry as the NMI"
+ },
+ "servicePointClassification":
+ {
+ "type": "string",
+ "description": "The classification of the service point as defined in MSATS procedures",
+ "enum": ["EXTERNAL_PROFILE",
+ "GENERATOR",
+ "INTERCONNECTOR",
+ "LARGE",
+ "SAMPLE",
+ "SMALL",
+ "WHOLESALE"
+ ]
+ },
+ "servicePointStatus":
+ {
+ "type": "string",
+ "description": "Code used to indicate the status of the service point",
+ "enum": ["ACTIVE",
+ "DE_ENERGISED",
+ "EXTINCT",
+ "GREENFIELD",
+ "OFF_MARKET"
+ ]
+ },
+ "jurisdictionCode":
+ {
+ "type": "string",
+ "description": "Jurisdiction code to which the service point belongs.This code defines the jurisdictional rules which apply to the service point",
+ "enum": ["ALL",
+ "ACT",
+ "NEM",
+ "NSW",
+ "QLD",
+ "SA",
+ "TAS",
+ "VIC"
+ ]
+ },
+ "isGenerator":
+ {
+ "type": "boolean",
+ "description": "This flag determines whether the energy at this connection point is to be treated as consumer load or as a generating unit(this may include generator auxiliary loads).If absent defaults to false"
+ },
+ "validFromDate":
+ {
+ "type": "string",
+ "x-cds-type": "DateString",
+ "description": "The start date from which this service point first became valid"
+ },
+ "lastUpdateDateTime":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time that the information for this service point was modified"
+ },
+ "consumerProfile":
+ {
+ "type": "object",
+ "properties":
+ {
+ "classification":
+ {
+ "type": "string",
+ "description": "A code that defines the consumer class as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments",
+ "enum": ["BUSINESS",
+ "RESIDENTIAL",
+ "BULK",
+ "XBOUNDARY",
+ "NCONUML",
+ "NREG",
+ "DWHOLSAL"
+ ]
+ },
+ "threshold":
+ {
+ "description": "A code that defines the consumption threshold as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments",
+ "enum": ["LOW",
+ "MEDIUM",
+ "HIGH"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "servicePointDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "required": [
+ "servicePointId",
+ "nationalMeteringId",
+ "servicePointClassification",
+ "servicePointStatus",
+ "jurisdictionCode",
+ "lastUpdateDateTime",
+ "distributionLossFactor",
+ "relatedParticipants",
+ "meters"
+ ],
+ "properties":
+ {
+ "servicePointId":
+ {
+ "type": "string",
+ "description": "The ID of the service point for use in the CDR APIs. Created according to the rules for ID permanence"
+ },
+ "nationalMeteringId":
+ {
+ "type": "string",
+ "description": "The independent ID of the service point, known in the industry as the NMI"
+ },
+ "servicePointClassification":
+ {
+ "type": "string",
+ "description": "The classification of the service point as defined in MSATS procedures",
+ "enum": ["EXTERNAL_PROFILE",
+ "GENERATOR",
+ "INTERCONNECTOR",
+ "LARGE",
+ "SAMPLE",
+ "SMALL",
+ "WHOLESALE"
+ ]
+ },
+ "servicePointStatus":
+ {
+ "type": "string",
+ "description": "Code used to indicate the status of the service point",
+ "enum": ["ACTIVE",
+ "DE_ENERGISED",
+ "EXTINCT",
+ "GREENFIELD",
+ "OFF_MARKET"
+ ]
+ },
+ "jurisdictionCode":
+ {
+ "type": "string",
+ "description": "Jurisdiction code to which the service point belongs.This code defines the jurisdictional rules which apply to the service point",
+ "enum": ["ALL",
+ "ACT",
+ "NEM",
+ "NSW",
+ "QLD",
+ "SA",
+ "TAS",
+ "VIC"
+ ]
+ },
+ "isGenerator":
+ {
+ "type": "boolean",
+ "description": "This flag determines whether the energy at this connection point is to be treated as consumer load or as a generating unit(this may include generator auxiliary loads).If absent defaults to false"
+ },
+ "lastUpdateDateTime":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time that the information for this service point was modified"
+ },
+ "creationDateTime":
+ {
+ "type": "string",
+ "x-cds-type": "DateTimeString",
+ "description": "The date and time that this service point was created as a data entity"
+ },
+ "consumerProfile":
+ {
+ "type": "object",
+ "properties":
+ {
+ "classification":
+ {
+ "type": "string",
+ "description": "A code that defines the consumer class as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments",
+ "enum": ["BUSINESS",
+ "RESIDENTIAL"
+ ]
+ },
+ "threshold":
+ {
+ "description": "A code that defines the consumption threshold as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments",
+ "enum": ["LOW",
+ "MEDIUM",
+ "HIGH"
+ ]
+ }
+ }
+ },
+ "distributionLossFactor":
+ {
+ "type": "object",
+ "required": [
+ "code",
+ "description",
+ "lossValue"
+ ],
+ "properties":
+ {
+ "code":
+ {
+ "type": "string",
+ "description": "A code used to identify data loss factor for the service point values. Refer to AEMO distribution loss factor documents for each financial year to interpret"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the data loss factor code and value"
+ },
+ "lossValue":
+ {
+ "type": "string",
+ "description": "The value associated with the loss factor code"
+ }
+ }
+ },
+ "relatedParticipants":
+ {
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["party", "role", "location"],
+ "properties":
+ {
+
+ "party":
+ {
+ "type": "string",
+ "description": "An identifier of the party related to this service point"
+ },
+ "role":
+ {
+ "type": "string",
+ "description": "The role performed by this participant in relation to the service point",
+ "enum": ["FRMP",
+ "LNSP",
+ "LR",
+ "MDP",
+ "MPB",
+ "MPC",
+ "NEMM",
+ "NSP2",
+ "ROLR",
+ "RP"
+ ]
+ },
+ "location":
+ {
+ "type": "object",
+ "required": ["addressUType"],
+ "x-conditional": [
+ "simple",
+ "paf"
+ ],
+ "properties":
+ {
+ "addressUType":
+ {
+ "type": "string",
+ "description": "The type of address object present",
+ "enum": ["simple",
+ "paf"
+ ]
+ },
+ "simple":
+ {
+ "description": "The address of the service point. Mandatory if addressUType is set to simple",
+ "type": "object",
+ "required" : [ "addressLine1", "city", "state" ],
+ "x-conditional" : [ "postcode" ],
+ "properties" : {
+ "mailingName" : {
+ "type" : "string",
+ "description" : "Name of the individual or business formatted for inclusion in an address used for physical mail"
+ },
+ "addressLine1" : {
+ "type" : "string",
+ "description" : "First line of the standard address object"
+ },
+ "addressLine2" : {
+ "type" : "string",
+ "description" : "Second line of the standard address object"
+ },
+ "addressLine3" : {
+ "type" : "string",
+ "description" : "Third line of the standard address object"
+ },
+ "postcode" : {
+ "type" : "string",
+ "description" : "Mandatory for Australian addresses"
+ },
+ "city" : {
+ "type" : "string",
+ "description" : "Name of the city or locality"
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT"
+ },
+ "country" : {
+ "type" : "string",
+ "description" : "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.",
+ "default" : "AUS",
+ "x-cds-type" : "ExternalRef"
+ }
+ }
+ },
+ "paf":
+ {
+ "description": "The address of the service point. Mandatory if addressUType is set to paf. Formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)",
+ "type": "object",
+ "required" : [ "localityName", "postcode", "state" ],
+ "properties" : {
+ "dpid" : {
+ "type" : "string",
+ "description" : "Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier"
+ },
+ "thoroughfareNumber1" : {
+ "type" : "integer",
+ "description" : "Thoroughfare number for a property (first number in a property ranged address)",
+ "x-cds-type" : "PositiveInteger"
+ },
+ "thoroughfareNumber1Suffix" : {
+ "type" : "string",
+ "description" : "Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated"
+ },
+ "thoroughfareNumber2" : {
+ "type" : "integer",
+ "description" : "Second thoroughfare number (only used if the property has a ranged address eg 23-25)",
+ "x-cds-type" : "PositiveInteger"
+ },
+ "thoroughfareNumber2Suffix" : {
+ "type" : "string",
+ "description" : "Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated"
+ },
+ "flatUnitType" : {
+ "type" : "string",
+ "description" : "Type of flat or unit for the address"
+ },
+ "flatUnitNumber" : {
+ "type" : "string",
+ "description" : "Unit number (including suffix, if applicable)"
+ },
+ "floorLevelType" : {
+ "type" : "string",
+ "description" : "Type of floor or level for the address"
+ },
+ "floorLevelNumber" : {
+ "type" : "string",
+ "description" : "Floor or level number (including alpha characters)"
+ },
+ "lotNumber" : {
+ "type" : "string",
+ "description" : "Allotment number for the address"
+ },
+ "buildingName1" : {
+ "type" : "string",
+ "description" : "Building/Property name 1"
+ },
+ "buildingName2" : {
+ "type" : "string",
+ "description" : "Building/Property name 2"
+ },
+ "streetName" : {
+ "type" : "string",
+ "description" : "The name of the street"
+ },
+ "streetType" : {
+ "type" : "string",
+ "description" : "The street type. Valid enumeration defined by Australia Post PAF code file"
+ },
+ "streetSuffix" : {
+ "type" : "string",
+ "description" : "The street type suffix. Valid enumeration defined by Australia Post PAF code file"
+ },
+ "postalDeliveryType" : {
+ "type" : "string",
+ "description" : "Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file"
+ },
+ "postalDeliveryNumber" : {
+ "type" : "integer",
+ "description" : "Postal delivery number if the address is a postal delivery type",
+ "x-cds-type" : "PositiveInteger"
+ },
+ "postalDeliveryNumberPrefix" : {
+ "type" : "string",
+ "description" : "Postal delivery number prefix related to the postal delivery number"
+ },
+ "postalDeliveryNumberSuffix" : {
+ "type" : "string",
+ "description" : "Postal delivery number suffix related to the postal delivery number"
+ },
+ "localityName" : {
+ "type" : "string",
+ "description" : "Full name of locality"
+ },
+ "postcode" : {
+ "type" : "string",
+ "description" : "Postcode for the locality"
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "meters":
+ {
+ "type": "object",
+ "required": [
+ "meterId",
+ "specifications",
+ "streams"
+ ],
+ "properties":
+ {
+ "meterId":
+ {
+ "type": "string",
+ "description": "The meter ID uniquely identifies a meter for a given service point. Is unique in the context of the service point. Is not globally unique"
+ },
+ "specifications":
+ {
+ "type": "object",
+ "description": "Technical characteristics of the meter",
+ "required": [
+ "status",
+ "installationType"
+ ],
+ "properties":
+ {
+ "status":
+ {
+ "type": "string",
+ "description": "A code to denote the status of the meter",
+ "enum": ["CURRENT",
+ "REMOVED",
+ "DISCONNECTED"
+ ]
+ },
+ "installationType":
+ {
+ "type": "string",
+ "description": "The metering Installation type code indicates whether the metering installation has to be manually read",
+ "enum": ["BASIC",
+ "COMMS1",
+ "COMMS2",
+ "COMMS3",
+ "COMMS4",
+ "COMMS4C",
+ "COMMS4D",
+ "MRAM",
+ "MRIM",
+ "PROF",
+ "SAMPLE",
+ "UMCP",
+ "VICAMI",
+ "NCOLNUML"
+ ]
+ },
+ "manufacturer":
+ {
+ "type": "string",
+ "description": "Free text field to identify the manufacturer of the installed meter"
+ },
+ "model":
+ {
+ "type": "string",
+ "description": "Free text field to identify the meter manufacturer’s designation for the meter model"
+ },
+ "readType":
+ {
+ "type": "string",
+ "description": "Code to denote the method and frequency of Meter Reading"
+ }
+ }
+ },
+ "streams":
+ {
+ "type": "object",
+ "description": "Usage data streams available from the meter",
+ "required": [
+ "streamId",
+ "registerConsumptionType",
+ "networkTariffType"
+ ],
+ "properties":
+ {
+ "streamId":
+ {
+ "type": "string",
+ "description": "Unique identifier of the stream within this service point. Is not globally unique"
+ },
+ "averagedDailyLoad":
+ {
+ "type": "number",
+ "description": "The energy delivered through a connection point or metering point over an extended period normalised to a 'per day' basis (kWh)"
+ },
+ "registerConsumptionType":
+ {
+ "type": "string",
+ "description": "Indicates the consumption type of register",
+ "enum": ["INTERVAL",
+ "BASIC",
+ "PROFILE_DATA",
+ "NON_MARKET_ACTIVE_IMPORT",
+ "NON_MARKET_ACTIVE",
+ "NON_MARKET_REACTIVE_IMPORT",
+ "NON_MARKET_REACTIVE"
+ ]
+ },
+ "networkTariffType":
+ {
+ "type": "string",
+ "description": "The Network Tariff Code is a free text field containing a code supplied and published by the local network service provider"
+ },
+ "unitOfMeasure":
+ {
+ "type": "string",
+ "description": "The unit of measure for data held in this register"
+ },
+ "timeOfDay":
+ {
+ "type": "string",
+ "description": "Code to identify the time validity of register contents"
+ },
+ "multiplier":
+ {
+ "type": "number",
+ "description": "Multiplier required to take a register value and turn it into a value representing billable energy"
+ },
+ "controlledLoad":
+ {
+ "type": "string",
+ "description": "Indicates whether the energy recorded by this register is created under a Controlled Load regime. ControlledLoad field will have 'No' if register does not relate to a Controlled Load. If the register relates to a Controlled Load, it should contain a description of the Controlled Load regime."
+ },
+ "consumptionType":
+ {
+ "type": "string",
+ "description": "Actual/Subtractive Indicator",
+ "enum": ["ACTUAL",
+ "CUMULATIVE"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "usageList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "reads"
+ ],
+ "properties":
+ {
+ "reads":
+ {
+ "description": "Array of meter reads",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "servicePointId",
+ "registerSuffix",
+ "readStartDate",
+ "readUType"
+ ],
+ "x-conditional": [
+ "basicRead",
+ "intervalRead"
+ ],
+ "properties":
+ {
+ "servicePointId": {
+ "description": "Tokenised ID of the service point to be used for referring to the service point in the CDR API suite. To be created in accordance with CDR ID permanence requirements",
+ "type": "string"
+ },
+ "registerId": {
+ "description": "Register ID of the meter register where the meter reads are obtained",
+ "type": "string"
+ },
+ "registerSuffix": {
+ "description": "Register suffix of the meter register where the meter reads are obtained",
+ "type": "string"
+ },
+ "meterSerial": {
+ "description": "Meter serial number as it appears in customer’s bill",
+ "type": "string"
+ },
+ "readStartDate": {
+ "description": "Date time when the meter reads start",
+ "type": "string",
+ "x-cds-type": "DateString",
+ },
+ "readEndDate": {
+ "description": "Date time when the meter reads end. If absent then assumed to be equal to readStartDate. In this case the entry represents data for a single date specified by readStartDate",
+ "type": "string",
+ "x-cds-type": "DateString",
+ },
+ "unitOfMeasure": {
+ "description": "Unit of measure of the meter reads. If absent then assumed to be KWH",
+ "type": "string",
+ "enum": [
+ "KWH",
+ "GWH"
+ ],
+ "default": "KWH"
+ },
+ "readUType": {
+ "description": "Specify the type of the meter read data",
+ "type": "string",
+ "enum": [
+ "basicRead",
+ "intervalRead"
+ ]
+ },
+ "basicRead": {
+ "description": "Mandatory if readUType is set to basicRead",
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "quality": {
+ "description": "The quality of the read taken. If absent then assumed to be ACTUAL",
+ "type": "string",
+ "enum": [
+ "ACTUAL",
+ "SUBSTITUTE",
+ "FINAL_SUBSTITUTE"
+ ],
+ "default": "ACTUAL"
+ },
+ "value": {
+ "description": "Meter read value. If positive then it means consumption, if negative it means export",
+ "type": "number"
+ }
+ }
+ },
+ "intervalRead": {
+ "description": "Mandatory if readUType is set to intervalRead",
+ "type": "object",
+ "required": [
+ "aggregateValue",
+ "intervalReads"
+ ],
+ "properties": {
+ "readIntervalLength": {
+ "description": "Read interval length in minutes",
+ "type": "string",
+ "x-cds-type": "PositiveInteger"
+ },
+ "aggregateValue": {
+ "description": "The aggregate sum of the interval read values. If positive then it means net consumption, if negative it means net export from the premise",
+ "type": "number"
+ },
+ "intervalReads": {
+ "description": "Array of reads with each element indicating the read for the interval specified by readIntervalLength beginning at midnight of readStartDate",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "quality": {
+ "description": "The quality of the read taken. If absent then assumed to be ACTUAL",
+ "type": "string",
+ "enum": [
+ "ACTUAL",
+ "SUBSTITUTE",
+ "FINAL_SUBSTITUTE"
+ ],
+ "default": "ACTUAL"
+ },
+ "value": {
+ "description": "Interval value. If positive then it means consumption, if negative it means export",
+ "type": "number"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "derRecords"
+ ],
+ "properties":
+ {
+ "derRecords":
+ {
+ "description": "Array of meter reads",
+ "type": "array",
+ "items":
+ {
+ "$ref": "#/components/schemas/derRecord"
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "$ref": "#/components/schemas/derRecord"
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "accountList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "accounts"
+ ],
+ "properties":
+ {
+ "accounts": {
+ "description": "Array of accounts",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "accountId",
+ "creationDate",
+ "servicePointIds",
+ "planOverview"
+ ],
+ "properties":
+ {
+ "accountId": {
+ "description": "The ID of the account. To be created in accordance with CDR ID permanence requirements",
+ "type": "string"
+ },
+ "accountNumber": {
+ "description": "Optional identifier of the account as defined by the data holder. This must be the value presented on physical statements (if it exists) and must not be used for the value of accountId",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "An optional display name for the account if one exists or can be derived. The content of this field is at the discretion of the data holder",
+ "type": "string"
+ },
+ "creationDate": {
+ "description": "The date that the account was created or opened",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "servicePointIds": {
+ "description": "An array of servicePointIds, representing NMIs, that this account is linked to",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "planOverview": {
+ "type": "object",
+ "required": [
+ "startDate"
+ ],
+ "properties": {
+ "displayName": {
+ "description": "The name of the plan if one exists",
+ "type": "string"
+ },
+ "startDate": {
+ "description": "The start date of the applicability of this plan",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "endDate": {
+ "description": "The end date of the applicability of this plan",
+ "type": "string",
+ "x-cds-type": "DateString"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "accountDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "accountId",
+ "creationDate",
+ "servicePointIds",
+ "planOverview",
+ "planDetail",
+ "authorisedContacts"
+ ],
+ "properties":
+ {
+ "accountId": {
+ "description": "The ID of the account. To be created in accordance with CDR ID permanence requirements",
+ "type": "string"
+ },
+ "accountNumber": {
+ "description": "Optional identifier of the account as defined by the data holder. This must be the value presented on physical statements (if it exists) and must not be used for the value of accountId",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "An optional display name for the account if one exists or can be derived. The content of this field is at the discretion of the data holder",
+ "type": "string"
+ },
+ "creationDate": {
+ "description": "The date that the account was created or opened",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "servicePointIds": {
+ "description": "An array of servicePointIds, representing NMIs, that this account is linked to",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "planOverview": {
+ "type": "object",
+ "required": [
+ "startDate"
+ ],
+ "properties": {
+ "displayName": {
+ "description": "The name of the plan if one exists",
+ "type": "string"
+ },
+ "startDate": {
+ "description": "The start date of the applicability of this plan",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "endDate": {
+ "description": "The end date of the applicability of this plan",
+ "type": "string",
+ "x-cds-type": "DateString"
+ }
+ }
+ },
+ "planDetail": {
+ "description": "Detail on the plan applicable to this account",
+ "type": "object",
+ "required": [
+ "fuelType"
+ ],
+ "x-conditional": [
+ "gasContract",
+ "electricityContract"
+ ],
+ "properties": {
+ "fuelType":
+ {
+ "type": "string",
+ "description": "The fuel types covered by the plan",
+ "enum": [
+ "ELECTRICITY",
+ "GAS",
+ "DUAL"
+ ]
+ },
+ "meteringCharges":
+ {
+ "description": "Charges for metering included in the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "minimumValue"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the charge"
+ },
+ "minimumValue":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Minimum value of the charge if the charge is a range or the absolute value of the charge if no range is specified"
+ },
+ "maximumValue":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The upper limit of the charge if the charge could occur in a range"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "The charges that occur on a schedule indicates the frequency. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ }
+ }
+ }
+ },
+ "gasContract":
+ {
+ "type": "object",
+ "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to GAS or DUAL",
+ "required": [
+ "pricingModel",
+ "isFixed",
+ "billFrequency",
+ "paymentOption",
+ "tariffPeriod"
+ ],
+ "x-conditional": [
+ "timeZone",
+ "controlledLoad"
+ ],
+ "properties":
+ {
+ "additionalFeeInformation":
+ {
+ "type": "string",
+ "description": "Free text field containing additional information of the fees for this contract"
+ },
+ "pricingModel":
+ {
+ "type": "string",
+ "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE",
+ "enum": [
+ "SINGLE_RATE",
+ "SINGLE_RATE_CONT_LOAD",
+ "TIME_OF_USE",
+ "TIME_OF_USE_CONT_LOAD",
+ "FLEXIBLE",
+ "FLEXIBLE_CONT_LOAD",
+ "QUOTA"
+ ]
+ },
+ "timeZone":
+ {
+ "type": "string",
+ "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds",
+ "enum": ["LOCAL",
+ "AEST"
+ ]
+ },
+ "isFixed":
+ {
+ "type": "boolean",
+ "description": "Flag indicating whether prices are fixed or variable"
+ },
+ "controlledLoad":
+ {
+ "type": "object",
+ "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD",
+ "required": ["displayName", "dailyCharge", "period", "rates"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "A display name for the controlled load tier"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the controlled load tier"
+ },
+ "dailyCharge":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The daily supply charge (exclusive of GST) for this controlled load tier"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ },
+ }
+ }
+ }
+ }
+ },
+ "discounts":
+ {
+ "description": "Optional list of discounts available for the contract",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "displayName",
+ "type",
+ "methodUType"
+ ],
+ "x-conditional": [
+ "category",
+ "percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the discount"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the discount"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the discount",
+ "enum": [
+ "CONDITIONAL",
+ "GUARANTEED",
+ "OTHER"
+ ]
+ },
+ "category":
+ {
+ "type": "string",
+ "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL",
+ "enum": [
+ "PAY_ON_TIME",
+ "DIRECT_DEBIT"
+ ]
+ },
+ "methodUType":
+ {
+ "type": "string",
+ "description": "The method of calculation of the discount",
+ "enum": [
+ "percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ]
+ },
+ "percentOfBill":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfBill",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the bill amount (some types of charges may be excluded from this discount based on plan terms)"
+ },
+ }
+ },
+ "percentOfUse":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfUse",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the usageamount"
+ }
+ }
+ },
+ "fixedAmount":
+ {
+ "type": "object",
+ "description": "Required if methodUType is fixedAmount",
+ "required": ["amount"],
+ "properties":
+ {
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the discount"
+ }
+ }
+ },
+ "percentOverThreshold":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOverThreshold",
+ "required": ["rate", "usageAmount"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount over the usage amount"
+ },
+ "usageAmount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The usage amount threshold above which the discount applies"
+ }
+ }
+ }
+ }
+ }
+ },
+ "greenPowerCharges":
+ {
+ "description": "Optional list of charges applicable to green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "tiers"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the charge"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of charge",
+ "enum": ["FIXED_PER_DAY",
+ "FIXED_PER_WEEK",
+ "FIXED_PER_MONTH",
+ "FIXED_PER_UNIT",
+ "PERCENT_OF_USE",
+ "PERCENT_OF_BILL"
+ ]
+ },
+ "tiers":
+ {
+ "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["percentGreen"],
+ "x-conditional": [
+ "rate",
+ "amount"
+ ],
+ "properties":
+ {
+ "percentGreen":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The upper percentage of green power used applicable for this tier"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the charge if the type implies the application of a rate"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the charge if the type implies the application of a fixed amount"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "fee":
+ {
+ "description": "An array of fees applicable to the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type", "term"],
+ "x-conditional": [
+ "rate",
+ "amount"
+ ],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the fee",
+ "enum": ["EXIT",
+ "ESTABLISHMENT",
+ "LATE_PAYMENT",
+ "DISCONNECTION",
+ "DISCONNECT_MOVE_OUT",
+ "DISCONNECT_NON_PAY",
+ "RECONNECTION",
+ "CONNECTION",
+ "PAYMENT_PROCESSING",
+ "CC_PROCESSING",
+ "CHEQUE_DISHONOUR",
+ "DD_DISHONOUR",
+ "MEMBERSHIP",
+ "CONTRIBUTION",
+ "PAPER_BILL",
+ "OTHER"
+ ]
+ },
+ "term":
+ {
+ "type": "string",
+ "description": "The term of the fee",
+ "enum": ["FIXED",
+ "1_YEAR",
+ "2_YEAR",
+ "3_YEAR",
+ "4_YEAR",
+ "5_YEAR",
+ "PERCENT_OF_BILL",
+ "ANNUAL",
+ "MONTHLY",
+ "BIANNUAL"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The fee amount. Required if term is not PERCENT_OF_BILL"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The fee rate. Required if term is PERCENT_OF_BILL"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the fee"
+ },
+ }
+ }
+ },
+ "solarFeedInTariff":
+ {
+ "description": "Array of feed in tariffs for solar power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type"],
+ "x-conditional": [
+ "amount"
+ ],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the tariff",
+ "enum": ["GOVERNMENT",
+ "RETAILER"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The tariff amount per kWh"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the tariff"
+ },
+ }
+ }
+ },
+ "tariffPeriod":
+ {
+ "description": "Array of tariff periods",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "dailySupplyCharges", "rateBlockUType"],
+ "x-conditional": [
+ "startDate",
+ "endDate",
+ "singleRate",
+ "timeOfUseRates"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The name of the tariff period"
+ },
+ "startDate":
+ {
+ "type": "string",
+ "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "endDate":
+ {
+ "type": "string",
+ "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "dailySupplyCharges":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST."
+ },
+ "rateBlockUType":
+ {
+ "type": "string",
+ "description": "Specifies the type of rate applicable to this tariff period",
+ "enum": ["singleRate",
+ "timeOfUseRates"
+ ]
+ },
+ "singleRate":
+ {
+ "type": "object",
+ "description": "Object representing a single rate. Required if rateBlockUType is singleRate",
+ "required": ["displayName", "rates"],
+ "x-conditional": [
+ "generalUnitPrice"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "generalUnitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ }
+ }
+ },
+ "timeOfUseRates":
+ {
+ "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "rates", "timeOfUse"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of usage that the rate applies to",
+ "enum": ["PEAK",
+ "OFF_PEAK",
+ "OFF_PEAK_DC",
+ "SHOULDER",
+ "SHOULDER1",
+ "SHOULDER2"
+ ]
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ },
+ "timeOfUse":
+ {
+ "description": "Array of times of use",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["days", "startTime", "endTime"],
+ "properties":
+ {
+ "days":
+ {
+ "description": "The days that the rate applies to",
+ "type": "array",
+ "items":
+ {
+ "type": "string",
+ "enum": ["SUNDAY",
+ "MONDAY",
+ "TUESDAY",
+ "WEDNESDAY",
+ "THURSDAY",
+ "FRIDAY",
+ "SATURDAY",
+ "BUSINESS_DAYS"
+ ]
+ }
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format"
+ }
+ }
+ }
+ },
+ "demandCharges":
+ {
+ "description": "Array of demand charges",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "startTime", "endTime"],
+ "x-conditional": [
+ "amount"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the charge"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The charge amount per kWh exclusive of GST"
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format "
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "electricityContract":
+ {
+ "type": "object",
+ "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to GAS or DUAL",
+ "required": [
+ "pricingModel",
+ "isFixed",
+ "billFrequency",
+ "paymentOption",
+ "tariffPeriod"
+ ],
+ "x-conditional": [
+ "timeZone",
+ "controlledLoad"
+ ],
+ "properties":
+ {
+ "additionalFeeInformation":
+ {
+ "type": "string",
+ "description": "Free text field containing additional information of the fees for this contract"
+ },
+ "pricingModel":
+ {
+ "type": "string",
+ "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE",
+ "enum": ["SINGLE_RATE",
+ "SINGLE_RATE_CONT_LOAD",
+ "TIME_OF_USE",
+ "TIME_OF_USE_CONT_LOAD",
+ "FLEXIBLE",
+ "FLEXIBLE_CONT_LOAD",
+ "QUOTA"
+ ]
+ },
+ "timeZone":
+ {
+ "type": "string",
+ "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds",
+ "enum": ["LOCAL",
+ "AEST"
+ ]
+ },
+ "isFixed":
+ {
+ "type": "boolean",
+ "description": "Flag indicating whether prices are fixed or variable"
+ },
+ "controlledLoad":
+ {
+ "type": "object",
+ "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD",
+ "required": ["displayName", "dailyCharge", "period", "rates"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "A display name for the controlled load tier"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the controlled load tier"
+ },
+ "dailyCharge":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The daily supply charge (exclusive of GST) for this controlled load tier"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ },
+ }
+ }
+ }
+ }
+ },
+ "discounts":
+ {
+ "description": "Optional list of discounts available for the contract",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "displayName",
+ "type",
+ "methodUType"
+ ],
+ "x-conditional": [
+ "category",
+ "percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the discount"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the discount"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the discount",
+ "enum": [
+ "CONDITIONAL",
+ "GUARANTEED",
+ "OTHER"
+ ]
+ },
+ "category":
+ {
+ "type": "string",
+ "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL",
+ "enum": [
+ "PAY_ON_TIME",
+ "DIRECT_DEBIT"
+ ]
+ },
+ "methodUType":
+ {
+ "type": "string",
+ "description": "The method of calculation of the discount",
+ "enum": [
+ "percentOfBill",
+ "percentOfUse",
+ "fixedAmount",
+ "percentOverThreshold"
+ ]
+ },
+ "percentOfBill":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfBill",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the bill amount (some types of charges may be excluded from this discount based on plan terms)"
+ },
+ }
+ },
+ "percentOfUse":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOfUse",
+ "required": ["rate"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount applied to the usageamount"
+ }
+ }
+ },
+ "fixedAmount":
+ {
+ "type": "object",
+ "description": "Required if methodUType is fixedAmount",
+ "required": ["amount"],
+ "properties":
+ {
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the discount"
+ }
+ }
+ },
+ "percentOverThreshold":
+ {
+ "type": "object",
+ "description": "Required if methodUType is percentOverThreshold",
+ "required": ["rate", "usageAmount"],
+ "properties":
+ {
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the discount over the usage amount"
+ },
+ "usageAmount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The usage amount threshold above which the discount applies"
+ }
+ }
+ }
+ }
+ }
+ },
+ "greenPowerCharges":
+ {
+ "description": "Optional list of charges applicable to green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "tiers"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "The description of the charge"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of charge",
+ "enum": ["FIXED_PER_DAY",
+ "FIXED_PER_WEEK",
+ "FIXED_PER_MONTH",
+ "FIXED_PER_UNIT",
+ "PERCENT_OF_USE",
+ "PERCENT_OF_BILL"
+ ]
+ },
+ "tiers":
+ {
+ "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["percentGreen"],
+ "x-conditional": [
+ "rate",
+ "amount"
+ ],
+ "properties":
+ {
+ "percentGreen":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The upper percentage of green power used applicable for this tier"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The rate of the charge if the type implies the application of a rate"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of the charge if the type implies the application of a fixed amount"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "fee":
+ {
+ "description": "An array of fees applicable to the plan",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type", "term"],
+ "x-conditional": [
+ "rate",
+ "amount"
+ ],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the fee",
+ "enum": ["EXIT",
+ "ESTABLISHMENT",
+ "LATE_PAYMENT",
+ "DISCONNECTION",
+ "DISCONNECT_MOVE_OUT",
+ "DISCONNECT_NON_PAY",
+ "RECONNECTION",
+ "CONNECTION",
+ "PAYMENT_PROCESSING",
+ "CC_PROCESSING",
+ "CHEQUE_DISHONOUR",
+ "DD_DISHONOUR",
+ "MEMBERSHIP",
+ "CONTRIBUTION",
+ "PAPER_BILL",
+ "OTHER"
+ ]
+ },
+ "term":
+ {
+ "type": "string",
+ "description": "The term of the fee",
+ "enum": ["FIXED",
+ "1_YEAR",
+ "2_YEAR",
+ "3_YEAR",
+ "4_YEAR",
+ "5_YEAR",
+ "PERCENT_OF_BILL",
+ "ANNUAL",
+ "MONTHLY",
+ "BIANNUAL"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The fee amount. Required if term is not PERCENT_OF_BILL"
+ },
+ "rate":
+ {
+ "type": "string",
+ "x-cds-type": "RateString",
+ "description": "The fee rate. Required if term is PERCENT_OF_BILL"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the fee"
+ },
+ }
+ }
+ },
+ "solarFeedInTariff":
+ {
+ "description": "Array of feed in tariffs for solar power",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["type"],
+ "x-conditional": [
+ "amount"
+ ],
+ "properties":
+ {
+ "type":
+ {
+ "type": "string",
+ "description": "The type of the tariff",
+ "enum": ["GOVERNMENT",
+ "RETAILER"
+ ]
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The tariff amount per kWh"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "A description of the tariff"
+ },
+ }
+ }
+ },
+ "tariffPeriod":
+ {
+ "description": "Array of tariff periods",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "dailySupplyCharges", "rateBlockUType"],
+ "x-conditional": [
+ "startDate",
+ "endDate",
+ "singleRate",
+ "timeOfUseRates"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "The name of the tariff period"
+ },
+ "startDate":
+ {
+ "type": "string",
+ "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "endDate":
+ {
+ "type": "string",
+ "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format"
+ },
+ "dailySupplyCharges":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST."
+ },
+ "rateBlockUType":
+ {
+ "type": "string",
+ "description": "Specifies the type of rate applicable to this tariff period",
+ "enum": ["singleRate",
+ "timeOfUseRates"
+ ]
+ },
+ "singleRate":
+ {
+ "type": "object",
+ "description": "Object representing a single rate. Required if rateBlockUType is singleRate",
+ "required": ["displayName", "rates"],
+ "x-conditional": [
+ "generalUnitPrice"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "generalUnitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’"
+ },
+ "period":
+ {
+ "type": "string",
+ "x-cds-type": "ExternalRef",
+ "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)"
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ }
+ }
+ },
+ "timeOfUseRates":
+ {
+ "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "type", "rates", "timeOfUse"],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the rate"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the rate"
+ },
+ "type":
+ {
+ "type": "string",
+ "description": "The type of usage that the rate applies to",
+ "enum": ["PEAK",
+ "OFF_PEAK",
+ "OFF_PEAK_DC",
+ "SHOULDER",
+ "SHOULDER1",
+ "SHOULDER2"
+ ]
+ },
+ "rates":
+ {
+ "description": "Array of controlled load rates in order of usage volume",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["unitPrice"],
+ "properties":
+ {
+ "unitPrice":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "Unit price of usage per kWh (exclusive of GST)"
+ },
+ "volume":
+ {
+ "type": "number",
+ "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period"
+ }
+ }
+ }
+ },
+ "timeOfUse":
+ {
+ "description": "Array of times of use",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["days", "startTime", "endTime"],
+ "properties":
+ {
+ "days":
+ {
+ "description": "The days that the rate applies to",
+ "type": "array",
+ "items":
+ {
+ "type": "string",
+ "enum": ["SUNDAY",
+ "MONDAY",
+ "TUESDAY",
+ "WEDNESDAY",
+ "THURSDAY",
+ "FRIDAY",
+ "SATURDAY",
+ "BUSINESS_DAYS"
+ ]
+ }
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format"
+ }
+ }
+ }
+ },
+ "demandCharges":
+ {
+ "description": "Array of demand charges",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": ["displayName", "startTime", "endTime"],
+ "x-conditional": [
+ "amount"
+ ],
+ "properties":
+ {
+ "displayName":
+ {
+ "type": "string",
+ "description": "Display name of the charge"
+ },
+ "description":
+ {
+ "type": "string",
+ "description": "Description of the charge"
+ },
+ "amount":
+ {
+ "type": "string",
+ "x-cds-type": "AmountString",
+ "description": "The charge amount per kWh exclusive of GST"
+ },
+ "startTime":
+ {
+ "type": "string",
+ "description": "Start of the period in HHMM format using 24 hour clock format"
+ },
+ "endTime":
+ {
+ "type": "string",
+ "description": "End of the period in HHMM format using 24 hour clock format "
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "authorisedContacts": {
+ "description": "An array of additional contacts that are authorised to act on this account",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "lastName"
+ ],
+ "properties": {
+ "firstName": {
+ "description": "For people with single names this field need not be present. The single name should be in the lastName field",
+ "type": "string"
+ },
+ "lastName": {
+ "description": "For people with single names the single name should be in this field",
+ "type": "string"
+ },
+ "middleNames": {
+ "description": "Field is mandatory but array may be empty",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "prefix": {
+ "description": "Also known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)",
+ "type": "string"
+ },
+ "suffix": {
+ "description": "Used for a trailing suffix to the name (e.g. Jr)",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "accountPaymentScheduleDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "paymentScheduleUType"
+ ],
+ "x-conditional": [
+ "cardDebit",
+ "directDebit",
+ "manualPayment"
+ ],
+ "properties":
+ {
+ "amount": {
+ "description": "Optional payment amount indicating that a constant payment amount is scheduled to be paid (used in bill smooting scenarios)",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "paymentScheduleUType": {
+ "description": "The type of object present in this response",
+ "type": "string",
+ "enum": [
+ "cardDebit",
+ "directDebit",
+ "manualPayment"
+ ]
+ },
+ "cardDebit": {
+ "description": "Represents a regular credit card payment schedule. Mandatory if paymentScheduleUType is set to cardDebit",
+ "type": "object",
+ "required": [
+ "cardScheme",
+ "paymentFrequency",
+ "calculationType"
+ ],
+ "properties": {
+ "cardScheme": {
+ "description": "The type of credit card held on file",
+ "type": "string",
+ "enum": [
+ "VISA",
+ "MASTERCARD",
+ "AMEX",
+ "DINERS",
+ "OTHER",
+ "UNKNOWN"
+ ]
+ },
+ "paymentFrequency": {
+ "description": "The frequency that payments will occur. Formatted according to ISO 8601 Durations (excludes recurrence syntax)",
+ "type": "string",
+ "x-cds-type": "ExternalRef"
+ },
+ "calculationType": {
+ "description": "The mechanism by which the payment amount is calculated",
+ "type": "string",
+ "enum": [
+ "STATIC",
+ "BALANCE",
+ "CALCULATED"
+ ]
+ }
+ }
+ },
+ "directDebit": {
+ "description": "Represents a regular direct debit from a specified bank account. Mandatory if paymentScheduleUType is set to directDebit",
+ "type": "object",
+ "required": [
+ "bsb",
+ "accountNumber",
+ "paymentFrequency",
+ "calculationType"
+ ],
+ "properties": {
+ "bsb": {
+ "description": "The unmasked BSB for the account to be debited. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces",
+ "type": "string"
+ },
+ "accountNumber": {
+ "description": "The unmasked account number for the account to be debited. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces",
+ "type": "string"
+ },
+ "paymentFrequency": {
+ "description": "The frequency that payments will occur. Formatted according to ISO 8601 Durations (excludes recurrence syntax)",
+ "type": "string",
+ "x-cds-type": "ExternalRef"
+ },
+ "calculationType": {
+ "description": "The mechanism by which the payment amount is calculated",
+ "type": "string",
+ "enum": [
+ "STATIC",
+ "BALANCE",
+ "CALCULATED"
+ ]
+ }
+ }
+ },
+ "manualPayment": {
+ "description": "Represents a manual payment schedule where the customer pays in response to a delivered statement. Mandatory if paymentScheduleUType is set to manualPayment",
+ "type": "object",
+ "required": [
+ "billFrequency"
+ ],
+ "properties": {
+ "billFrequency": {
+ "description": "The frequency with which a bill will be issued. Formatted according to ISO 8601 Durations (excludes recurrence syntax)",
+ "type": "string",
+ "x-cds-type": "ExternalRef"
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "accountConcessionsDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "concessions"
+ ],
+ "properties":
+ {
+ "concessions": {
+ "description": "Array may be empty if no concessions exist",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "displayName"
+ ],
+ "x-conditional": [
+ "dailyDiscount",
+ "monthlyDiscount",
+ "yearlyDiscount",
+ "percentageDiscount"
+ ],
+ "properties": {
+ "displayName": {
+ "description": "The display name of the concession",
+ "type": "string"
+ },
+ "additionalInfo": {
+ "description": "Display text providing more information on the concession",
+ "type": "string"
+ },
+ "additionalInfoUri": {
+ "description": "Optional link to additional information regarding the concession",
+ "type": "string",
+ "x-cds-type": "URIString"
+ },
+ "startDate": {
+ "description": "Optional start date for the application of the concession",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "endDate": {
+ "description": "Optional end date for the application of the concession",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "dailyDiscount": {
+ "description": "Daily discount value due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "monthlyDiscount": {
+ "description": "Monthly discount value due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "yearlyDiscount": {
+ "description": "Annual discount value due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "percentageDiscount": {
+ "description": "Percentage of each invoice to be discounted due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided",
+ "type": "string",
+ "x-cds-type": "RateString"
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "balanceList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "balances"
+ ],
+ "properties":
+ {
+ "balances":
+ {
+ "description": "Array of account balances",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "accountId",
+ "balance"
+ ],
+ "properties":
+ {
+ "accountId": {
+ "description": "The ID of the account",
+ "type": "string"
+ },
+ "balance": {
+ "description": "The current balance of the account. A positive value indicates that amount is owing to be paid. A negative value indicates that the account is in credit",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "balanceDetail":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "balance"
+ ],
+ "properties":
+ {
+ "balance": {
+ "description": "The current balance of the account. A positive value indicates that amount is owing to be paid. A negative value indicates that the account is in credit",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ }
+ }
+
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/links"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/meta"
+ }
+ }
+ }
+ }
+ }
+ },
+ "invoiceList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "invoices"
+ ],
+ "properties":
+ {
+ "invoices":
+ {
+ "description": "Array of invoices sorted by date in descending order",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "accountId",
+ "issueDate",
+ "period",
+ "amountDue",
+ "balanceAtIssue",
+ "servicePoints",
+ "totalAccountCharges",
+ "totalAccountDiscounts",
+ "paymentStatus"
+ ],
+ "properties":
+ {
+ "accountId": {
+ "description": "The ID of the account for which the invoice was issued",
+ "type": "string"
+ },
+ "invoiceNumber": {
+ "description": "The number assigned to this invoice by the energy Retailer",
+ "type": "string"
+ },
+ "issueDate": {
+ "description": "The date that the invoice was actually issued (as opposed to generated or calculated)",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "dueDate": {
+ "description": "The date that the invoice is due to be paid",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "period": {
+ "description": "Object containing the start and end date for the period covered by the invoice",
+ "type": "object",
+ "required": [
+ "startDate",
+ "endDate"
+ ],
+ "properties":
+ {
+ "startDate": {
+ "description": "The start date of the period covered by this invoice",
+ "type": "string",
+ "x-cds-type": "DateString"
+ },
+ "endDate": {
+ "description": "The end date of the period covered by this invoice",
+ "type": "string",
+ "x-cds-type": "DateString"
+ }
+ }
+ },
+ "invoiceAmount": {
+ "description": "The net amount due for this invoice regardless of previous balance",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "payOnTimeDiscount": {
+ "description": "A discount for on time payment",
+ "type": "object",
+ "required": [
+ "amount",
+ "date"
+ ],
+ "properties": {
+ "amount": {
+ "description": "The amount that will be discounted if the invoice is paid by the date specified",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "date": {
+ "description": "The date by which the invoice must be paid to receive the pay on time discount",
+ "type": "string",
+ "x-cds-type": "DateString"
+ }
+ }
+ },
+ "balanceAtIssue": {
+ "description": "The account balance at the time the invoice was issued",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "servicePoints": {
+ "description": "Array of service point IDs to which this invoice applies. May be empty if the invoice contains no electricity usage related charges",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "gas": {
+ "description": "Object contain charges and credits related to gas usage",
+ "type": "object",
+ "required": [
+ "totalUsageCharges",
+ "totalOnceOffCharges",
+ "totalOnceOffDiscounts"
+ ],
+ "properties": {
+ "totalUsageCharges": {
+ "description": "The aggregate total of usage charges for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "totalOnceOffCharges": {
+ "description": "The aggregate total of any once off charges arising from electricity usage for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "totalOnceOffDiscounts": {
+ "description": "The aggregate total of any once off discounts or credits arising from electricity usage for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ }
+ }
+ },
+ "electricity": {
+ "description": "Object contain charges and credits related to electricity usage",
+ "type": "object",
+ "required": [
+ "totalUsageCharges",
+ "totalGenerationCredits",
+ "totalOnceOffCharges",
+ "totalOnceOffDiscounts"
+ ],
+ "properties": {
+ "totalUsageCharges": {
+ "description": "The aggregate total of usage charges for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "totalGenerationCredits": {
+ "description": "The aggregate total of generation credits for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "totalOnceOffCharges": {
+ "description": "The aggregate total of any once off charges arising from electricity usage for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "totalOnceOffDiscounts": {
+ "description": "The aggregate total of any once off discounts or credits arising from electricity usage for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ }
+ }
+ },
+ "totalAccountCharges": {
+ "description": "The aggregate total of account level charges for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "totalAccountDiscounts": {
+ "description": "The aggregate total of account level discounts or credits for the period covered by the invoice",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "paymentStatus": {
+ "description": "Indicator of the payment status for the invoice",
+ "type": "string",
+ "enum": [
+ "PAID",
+ "PARTIALLY_PAID",
+ "NOT_PAID"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ },
+ "billingList":
+ {
+ "description": "Successful response",
+ "content":
+ {
+ "application/json":
+ {
+ "schema":
+ {
+ "type": "object",
+ "required": [
+ "data",
+ "links",
+ "meta"
+ ],
+ "properties":
+ {
+ "data":
+ {
+ "type": "object",
+ "required": [
+ "transactions"
+ ],
+ "properties":
+ {
+ "transactions":
+ {
+ "description": "Array of transactions sorted by date and time in descending order",
+ "type": "array",
+ "items":
+ {
+ "type": "object",
+ "required": [
+ "accountId",
+ "executionDateTime",
+ "transactionUType"
+ ],
+ "x-conditional": [
+ "usage",
+ "onceOff",
+ "payment"
+ ],
+ "properties":
+ {
+ "accountId": {
+ "description": "The ID of the account for which transaction applies",
+ "type": "string"
+ },
+ "executionDateTime": {
+ "description": "The date and time that the transaction occurred",
+ "type": "string",
+ "x-cds-type": "DateTimeString"
+ },
+ "transactionUType": {
+ "description": "Indicator of the type of transaction object present in this record",
+ "type": "string",
+ "enum": [
+ "usage",
+ "onceOff",
+ "payment"
+ ]
+ },
+ "usage": {
+ "description": "Represents a usage charge or generation credit. Mandatory if transactionUType is equal to usage",
+ "type": "object",
+ "required": [
+ "timeOfUseType",
+ "startDate",
+ "endDate",
+ "usage",
+ "amount"
+ ],
+ "properties": {
+ "servicePointId": {
+ "description": "The ID of the service point to which this transaction applies if any",
+ "type": "string"
+ },
+ "invoiceNumber": {
+ "description": "The number of the invoice in which this transaction is included if it has been issued",
+ "type": "string"
+ },
+ "timeOfUseType": {
+ "description": "The time of use type that the transaction applies to",
+ "type": "string",
+ "enum": [
+ "PEAK",
+ "OFF_PEAK",
+ "OFF_PEAK_DC",
+ "SHOULDER",
+ "SHOULDER1",
+ "SHOULDER2"
+ ]
+ },
+ "isEstimate": {
+ "description": "Flag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual",
+ "type": "boolean"
+ },
+ "startDate": {
+ "description": "Date and time when the usage period starts",
+ "type": "string",
+ "x-cds-type": "DateTimeString"
+ },
+ "endDate": {
+ "description": "Date and time when the usage period ends",
+ "type": "string",
+ "x-cds-type": "DateTimeString"
+ },
+ "usage": {
+ "description": "The usage for the period in kWh. A negative value indicates power generated",
+ "type": "number"
+ },
+ "amount": {
+ "description": "The amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "adjustments": {
+ "description": "Optional array of adjustments arising for this transaction",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "amount",
+ "description"
+ ],
+ "properties": {
+ "amount": {
+ "description": "The amount of the adjustment",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "description": {
+ "description": "A free text description of the adjustment",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "onceOff": {
+ "description": "Represents a once off charge or credit. Mandatory if transactionUType is equal to onceOff",
+ "type": "object",
+ "required": [
+ "amount",
+ "description"
+ ],
+ "properties": {
+ "servicePointId": {
+ "description": "The ID of the service point to which this transaction applies if any",
+ "type": "string"
+ },
+ "invoiceNumber": {
+ "description": "The number of the invoice in which this transaction is included if it has been issued",
+ "type": "string"
+ },
+ "amount": {
+ "description": "The amount of the charge or credit. A positive value indicates a charge and a negative value indicates a credit",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "description": {
+ "description": "A free text description of the item",
+ "type": "string"
+ }
+ }
+ },
+ "payment": {
+ "description": "Represents a payment to the account. Mandatory if transactionUType is equal to payment",
+ "type": "object",
+ "required": [
+ "amount",
+ "method"
+ ],
+ "properties": {
+ "amount": {
+ "description": "The amount paid",
+ "type": "string",
+ "x-cds-type": "AmountString"
+ },
+ "method": {
+ "description": "The method of payment",
+ "type": "string",
+ "enum": [
+ "DIRECT_DEBIT",
+ "CARD",
+ "TRANSFER",
+ "BPAY",
+ "CASH",
+ "CHEQUE",
+ "OTHER"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "links":
+ {
+ "$ref": "#/components/schemas/linksPaginated"
+ },
+ "meta":
+ {
+ "$ref": "#/components/schemas/metaPaginated"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "paths":
+ {
+ "/energy/plans":
+ {
+ "get":
+ {
+ "summary": "Get Generic Plans",
+ "operationId": "listPlans",
+ "description": "Obtain a list of energy plans that are currently offered to the market",
+ "tags": [
+ "Generic Tariffs"
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "in": "query",
+ "description": "Used to filter results on the type field. Any one of the valid values for this field can be supplied plus 'ALL'. If absent defaults to 'ALL'",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": "ALL",
+ "enum": ["STANDING", "MARKET", "REGULATED", "ALL"]
+ }
+ },
+ {
+ "name": "fuelType",
+ "in": "query",
+ "description": "Used to filter results on the fuelType field. Any one of the valid values for this field can be supplied plus 'ALL'. If absent defaults to 'ALL'",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": "ALL",
+ "enum": ["ELECTRICITY", "GAS", "DUAL", "ALL"]
+ }
+ },
+ {
+ "name": "effective",
+ "in": "query",
+ "description": "Allows for the filtering of plans based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": "CURRENT",
+ "enum": ["CURRENT", "FUTURE", "ALL"]
+ }
+ },
+ {
+ "name": "updated-since",
+ "in": "query",
+ "description": "Only include plans that have been updated after the specified date and time. If absent defaults to include all plans",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "x-cds-type": "DateTimeString"
+ },
+ {
+ "name": "brand",
+ "in": "query",
+ "description": "Used to filter results on the brand field. If absent defaults to include all plans",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/planList"
+ }
+ }
+ }
+ },
+ "/energy/plans/{planId}":
+ {
+ "get":
+ {
+ "summary": "Get Generic Plan Detail",
+ "operationId": "getPlan",
+ "description": "Obtain detailed information on a single energy plan offered openly to the market",
+ "tags": [
+ "Generic Tariffs"
+ ],
+ "parameters": [
+ {
+ "name": "planId",
+ "description": "ID of the specific plan requested",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/planDetail"
+ }
+ }
+ }
+ },
+ "/energy/electricity/servicepoints":
+ {
+ "get":
+ {
+ "summary": "Get Service Points",
+ "operationId": "listServicePoints",
+ "description": "Obtain a list of service points owned by the customer that has authorised the current session",
+ "tags": [
+ "NMI Standing Data"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/servicePointList"
+ }
+ }
+ }
+ },
+ "/energy/electricity/servicepoints/{servicePointId}":
+ {
+ "get":
+ {
+ "summary": "Get Service Point Detail",
+ "operationId": "getServicePoint",
+ "description": "Obtain a list of service points owned by the customer that has authorised the current session",
+ "tags": [
+ "NMI Standing Data"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/servicePointId"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/servicePointDetail"
+ }
+ }
+ }
+ },
+ "/energy/electricity/servicepoints/{servicePointId}/usage":
+ {
+ "get":
+ {
+ "summary": "Get Usage For Service Point",
+ "operationId": "getUsageForServicePoint",
+ "description": "Obtain a list of electricity usage data from a particular service point",
+ "tags": [
+ "Electricity Usage"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/servicePointId"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/usageList"
+ }
+ }
+ }
+ },
+ "/energy/electricity/servicepoints/usage":
+ {
+ "get":
+ {
+ "summary": "Get Bulk Usage",
+ "operationId": "listUsageBulk",
+ "description": "Obtain usage data for all service points associated with the customer",
+ "tags": [
+ "Electricity Usage"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/usageList"
+ }
+ }
+ },
+ "post":
+ {
+ "summary": "Get Usage For Specific Service Points",
+ "operationId": "listUsageForServicePoints",
+ "description": "Obtain the electricity usage data for a specific set of service points",
+ "tags": [
+ "Electricity Usage"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "requestBody":
+ {
+ "$ref": "#/components/requestBodies/servicePointIdList"
+ },
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/usageList"
+ }
+ }
+ }
+ },
+ "/energy/electricity/servicepoints/{servicePointId}/der":
+ {
+ "get":
+ {
+ "summary": "Get DER For Service Point",
+ "operationId": "getDERForServicePoint",
+ "description": "Obtain a list of DER data from a particular service point",
+ "tags": [
+ "Distributed Energy Resources"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/servicePointId"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/derDetail"
+ }
+ }
+ }
+ },
+ "/energy/electricity/servicepoints/der":
+ {
+ "get":
+ {
+ "summary": "Get Bulk DER",
+ "operationId": "listDERBulk",
+ "description": "Obtain DER data for all service points associated with the customer",
+ "tags": [
+ "Distributed Energy Resources"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/derList"
+ }
+ }
+ },
+ "post":
+ {
+ "summary": "Get DER For Specific Service Points",
+ "operationId": "listDERForServicePoints",
+ "description": "Obtain DER data for a specific set of service points",
+ "tags": [
+ "Distributed Energy Resources"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "requestBody":
+ {
+ "$ref": "#/components/requestBodies/servicePointIdList"
+ },
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/derList"
+ }
+ }
+ }
+ },
+ "/energy/accounts":
+ {
+ "get":
+ {
+ "summary": "Get Accounts",
+ "operationId": "listAccounts",
+ "description": "Obtain the list of energy accounts available under the authorised consent",
+ "tags": [
+ "Energy Accounts"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/accountList"
+ }
+ }
+ }
+ },
+ "/energy/accounts/{accountId}":
+ {
+ "get":
+ {
+ "summary": "Get Account Detail",
+ "operationId": "getAccount",
+ "description": "Obtain detailed information for a specific energy account",
+ "tags": [
+ "Energy Accounts"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/accountId"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/accountDetail"
+ }
+ }
+ }
+ },
+ "/energy/accounts/{accountId}/payment-schedule":
+ {
+ "get":
+ {
+ "summary": "Get Agreed Payment Schedule",
+ "operationId": "getPaymentSchedule",
+ "description": "Obtain the agreed payment schedule and details, if any, for a specific energy account",
+ "tags": [
+ "Energy Accounts"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/accountId"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/accountPaymentScheduleDetail"
+ }
+ }
+ }
+ },
+ "/energy/accounts/{accountId}/concessions":
+ {
+ "get":
+ {
+ "summary": "Get Concessions",
+ "operationId": "getConcessions",
+ "description": "Obtain the details of any concessions or hardship arrangements applied to a specific energy account",
+ "tags": [
+ "Energy Accounts"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/accountId"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/accountConcessionsDetail"
+ }
+ }
+ }
+ },
+ "/energy/accounts/{accountId}/balance":
+ {
+ "get":
+ {
+ "summary": "Get Balance For Account",
+ "operationId": "getBalanceForAccount",
+ "description": "Obtain the current balance for a specific account",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/accountId"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/balanceDetail"
+ }
+ }
+ }
+ },
+ "/energy/accounts/balances":
+ {
+ "get":
+ {
+ "summary": "Get Bulk Balances",
+ "operationId": "listBalancesBulk",
+ "description": "Obtain the current balance for all accounts",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/balanceList"
+ }
+ }
+ },
+ "post":
+ {
+ "summary": "Get Balances For Specific Accounts",
+ "operationId": "listBalancesForAccounts",
+ "description": "Obtain the current balance for a specified set of accounts",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "requestBody":
+ {
+ "$ref": "#/components/requestBodies/accountIdList"
+ },
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/balanceList"
+ }
+ }
+ }
+ },
+ "/energy/accounts/{accountId}/invoices":
+ {
+ "get":
+ {
+ "summary": "Get Invoices For Account",
+ "operationId": "getInvoicesForAccount",
+ "description": "Obtain the invoices for a specific account",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/accountId"
+ },
+ {
+ "$ref": "#/components/parameters/newest-date"
+ },
+ {
+ "$ref": "#/components/parameters/oldest-date"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/invoiceList"
+ }
+ }
+ }
+ },
+ "/energy/accounts/invoices":
+ {
+ "get":
+ {
+ "summary": "Get Bulk Invoices",
+ "operationId": "listInvoicesBulk",
+ "description": "Obtain the invoices for all accounts",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/newest-date"
+ },
+ {
+ "$ref": "#/components/parameters/oldest-date"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/invoiceList"
+ }
+ }
+ },
+ "post":
+ {
+ "summary": "Get Invoices For Specific Accounts",
+ "operationId": "listInvoicesForAccounts",
+ "description": "Obtain invoices for a specified set of accounts",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/newest-date"
+ },
+ {
+ "$ref": "#/components/parameters/oldest-date"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "requestBody":
+ {
+ "$ref": "#/components/requestBodies/accountIdList"
+ },
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/invoiceList"
+ }
+ }
+ }
+ },
+ "/energy/accounts/{accountId}/billing":
+ {
+ "get":
+ {
+ "summary": "Get Billing For Account",
+ "operationId": "getBillingForAccount",
+ "description": "Obtain the billing transactions for a specific account",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/accountId"
+ },
+ {
+ "$ref": "#/components/parameters/newest-time"
+ },
+ {
+ "$ref": "#/components/parameters/oldest-time"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/billingList"
+ }
+ }
+ }
+ },
+ "/energy/accounts/billing":
+ {
+ "get":
+ {
+ "summary": "Get Bulk Billing",
+ "operationId": "listBillingBulk",
+ "description": "Obtain billing transactions for all accounts",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/newest-time"
+ },
+ {
+ "$ref": "#/components/parameters/oldest-time"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/billingList"
+ }
+ }
+ },
+ "post":
+ {
+ "summary": "Get Billing For Specific Accounts",
+ "operationId": "listBillingForAccounts",
+ "description": "Obtain billing for a specified set of accounts",
+ "tags": [
+ "Billing"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/newest-time"
+ },
+ {
+ "$ref": "#/components/parameters/oldest-time"
+ },
+ {
+ "$ref": "#/components/parameters/page"
+ },
+ {
+ "$ref": "#/components/parameters/page-size"
+ },
+ {
+ "$ref": "#/components/parameters/x-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-min-v"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-interaction-id"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-auth-date"
+ },
+ {
+ "$ref": "#/components/parameters/x-fapi-customer-ip-address"
+ },
+ {
+ "$ref": "#/components/parameters/x-cds-client-headers"
+ }],
+ "requestBody":
+ {
+ "$ref": "#/components/requestBodies/accountIdList"
+ },
+ "responses":
+ {
+ "200":
+ {
+ "$ref": "#/components/responses/billingList"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.eot b/docs/archive/standards-1.8.0/docs/fonts/slate.eot
new file mode 100755
index 00000000..13c4839a
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.eot differ
diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.svg b/docs/archive/standards-1.8.0/docs/fonts/slate.svg
new file mode 100644
index 00000000..5f349823
--- /dev/null
+++ b/docs/archive/standards-1.8.0/docs/fonts/slate.svg
@@ -0,0 +1,14 @@
+
+
+
diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.ttf b/docs/archive/standards-1.8.0/docs/fonts/slate.ttf
new file mode 100755
index 00000000..ace9a46a
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.ttf differ
diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.woff b/docs/archive/standards-1.8.0/docs/fonts/slate.woff
new file mode 100755
index 00000000..1e72e0ee
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.woff differ
diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.woff2 b/docs/archive/standards-1.8.0/docs/fonts/slate.woff2
new file mode 100755
index 00000000..7c585a72
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.woff2 differ
diff --git a/docs/archive/standards-1.8.0/docs/images/clientCredentialsSequence.png b/docs/archive/standards-1.8.0/docs/images/clientCredentialsSequence.png
new file mode 100644
index 00000000..a2de4c28
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/clientCredentialsSequence.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/cx_standards0.png b/docs/archive/standards-1.8.0/docs/images/cx_standards0.png
new file mode 100644
index 00000000..6ce278e0
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/cx_standards0.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.eot b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.eot
new file mode 100755
index 00000000..13c4839a
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.eot differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.svg b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.svg
new file mode 100644
index 00000000..5f349823
--- /dev/null
+++ b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.svg
@@ -0,0 +1,14 @@
+
+
+
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.ttf b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.ttf
new file mode 100755
index 00000000..ace9a46a
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.ttf differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff
new file mode 100755
index 00000000..1e72e0ee
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff2 b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff2
new file mode 100755
index 00000000..7c585a72
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff2 differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/clientCredentialsSequence.png b/docs/archive/standards-1.8.0/docs/images/docs/images/clientCredentialsSequence.png
new file mode 100644
index 00000000..a2de4c28
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/clientCredentialsSequence.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/favicon.ico b/docs/archive/standards-1.8.0/docs/images/docs/images/favicon.ico
new file mode 100644
index 00000000..bd624802
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/favicon.ico differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/holderDomain.png b/docs/archive/standards-1.8.0/docs/images/docs/images/holderDomain.png
new file mode 100644
index 00000000..d2bbfdfc
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/holderDomain.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/logo.png b/docs/archive/standards-1.8.0/docs/images/docs/images/logo.png
new file mode 100755
index 00000000..36c2504e
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/logo.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/logoSanta.png b/docs/archive/standards-1.8.0/docs/images/docs/images/logoSanta.png
new file mode 100644
index 00000000..23253af8
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/logoSanta.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/navbar.png b/docs/archive/standards-1.8.0/docs/images/docs/images/navbar.png
new file mode 100755
index 00000000..df38e90d
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/navbar.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartA.png b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartA.png
new file mode 100644
index 00000000..f6824ed2
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartA.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartB.png b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartB.png
new file mode 100644
index 00000000..6addc5e8
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartB.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartC.png b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartC.png
new file mode 100644
index 00000000..2e920979
Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartC.png differ
diff --git a/docs/archive/standards-1.8.0/docs/images/docs/javascripts/all.js b/docs/archive/standards-1.8.0/docs/images/docs/javascripts/all.js
new file mode 100644
index 00000000..9f775e1e
--- /dev/null
+++ b/docs/archive/standards-1.8.0/docs/images/docs/javascripts/all.js
@@ -0,0 +1,131 @@
+!function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),/*!
+ * jQuery JavaScript Library v3.2.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2017-03-20T18:59Z
+ */
+function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(e,t){t=t||ne;var n=t.createElement("script");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function r(e){var t=!!e&&"length"in e&&e.length,n=ge.type(e);return"function"!==n&&!ge.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function o(e,t,n){return ge.isFunction(t)?ge.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?ge.grep(e,function(e){return e===t!==n}):"string"!=typeof t?ge.grep(e,function(e){return ae.call(t,e)>-1!==n}):Ce.test(t)?ge.filter(t,e,n):(t=ge.filter(t,e),ge.grep(e,function(e){return ae.call(t,e)>-1!==n&&1===e.nodeType}))}function s(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function a(e){var t={};return ge.each(e.match(Le)||[],function(e,n){t[n]=!0}),t}function u(e){return e}function c(e){throw e}function l(e,t,n,r){var i;try{e&&ge.isFunction(i=e.promise)?i.call(e).done(t).fail(n):e&&ge.isFunction(i=e.then)?i.call(e,t,n):t.apply(undefined,[e].slice(r))}catch(e){n.apply(undefined,[e])}}function f(){ne.removeEventListener("DOMContentLoaded",f),e.removeEventListener("load",f),ge.ready()}function d(){this.expando=ge.expando+d.uid++}function p(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:He.test(e)?JSON.parse(e):e)}function h(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(Ie,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=p(n)}catch(e){}Pe.set(e,t,n)}else n=undefined;return n}function g(e,t,n,r){var i,o=1,s=20,a=r?function(){return r.cur()}:function(){return ge.css(e,t,"")},u=a(),c=n&&n[3]||(ge.cssNumber[t]?"":"px"),l=(ge.cssNumber[t]||"px"!==c&&+u)&&_e.exec(ge.css(e,t));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do{o=o||".5",l/=o,ge.style(e,t,l+c)}while(o!==(o=a()/u)&&1!==o&&--s)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function m(e){var t,n=e.ownerDocument,r=e.nodeName,i=ze[r];return i||(t=n.body.appendChild(n.createElement(r)),i=ge.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),ze[r]=i,i)}function v(e,t){for(var n,r,i=[],o=0,s=e.length;o-1)i&&i.push(o);else if(c=ge.contains(o.ownerDocument,o),s=y(f.appendChild(o),"script"),c&&x(s),n)for(l=0;o=s[l++];)Ue.test(o.type||"")&&n.push(o);return f}function w(){return!0}function T(){return!1}function S(){try{return ne.activeElement}catch(e){}}function E(e,t,n,r,i,o){var s,a;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=undefined);for(a in t)E(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=undefined):null==i&&("string"==typeof n?(i=r,r=undefined):(i=r,r=n,n=undefined)),!1===i)i=T;else if(!i)return e;return 1===o&&(s=i,i=function(e){return ge().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=ge.guid++)),e.each(function(){ge.event.add(this,t,i,r,n)})}function C(e,t){return i(e,"table")&&i(11!==t.nodeType?t:t.firstChild,"tr")?ge(">tbody",e)[0]||e:e}function k(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function N(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function j(e,t){var n,r,i,o,s,a,u,c;if(1===t.nodeType){if($e.hasData(e)&&(o=$e.access(e),s=$e.set(t,o),c=o.events)){delete s.handle,s.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof h&&!pe.checkClone&&nt.test(h))return e.each(function(n){var o=e.eq(n);g&&(t[0]=h.call(this,n,o.html())),L(o,t,r,i)});if(d&&(o=b(t,e[0].ownerDocument,!1,e,i),s=o.firstChild,1===o.childNodes.length&&(o=s),s||i)){for(a=ge.map(y(o,"script"),k),u=a.length;f=0&&nS.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[_]=!0,e}function i(e){var t=q.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)S.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Ee(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function p(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(s[c]=f))}}else x=v(x===s?x.splice(h,x.length):x),o?o(null,s,x,u):K.apply(s,x)})}function x(e){for(var t,n,r,i=e.length,o=S.relative[e[0].type],s=o||S.relative[" "],a=o?1:0,u=h(function(e){return e===t},s,!0),c=h(function(e){return ee(t,e)>-1},s,!0),l=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,i}];a1&&g(l),a>1&&p(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ae,"$1"),n,a0,o=e.length>0,s=function(r,s,a,u,c){var l,f,d,p=0,h="0",g=r&&[],m=[],y=A,x=r||o&&S.find.TAG("*",c),b=W+=null==y?1:Math.random()||.1,w=x.length;for(c&&(A=s===q||s||c);h!==w&&null!=(l=x[h]);h++){if(o&&l){for(f=0,s||l.ownerDocument===q||(O(l),a=!$);d=e[f++];)if(d(l,s||q,a)){u.push(l);break}c&&(W=b)}i&&((l=!d&&l)&&p--,r&&g.push(l))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,m,s,a);if(r){if(p>0)for(;h--;)g[h]||m[h]||(m[h]=J.call(u));m=v(m)}K.apply(u,m),c&&!r&&m.length>0&&p+n.length>1&&t.uniqueSort(u)}return c&&(W=b,A=y),g};return i?r(s):s}var w,T,S,E,C,k,N,j,A,L,D,O,q,F,$,P,H,I,R,_="sizzle"+1*new Date,M=e.document,W=0,B=0,z=n(),V=n(),X=n(),U=function(e,t){return e===t&&(D=!0),0},Q={}.hasOwnProperty,Y=[],J=Y.pop,G=Y.push,K=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),le=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Te=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Se=function(){O()},Ee=h(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(Y=Z.call(M.childNodes),M.childNodes),Y[M.childNodes.length].nodeType}catch(e){K={apply:Y.length?function(e,t){G.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}T=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},O=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:M;return r!==q&&9===r.nodeType&&r.documentElement?(q=r,F=q.documentElement,$=!C(q),M!==q&&(n=q.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Se,!1):n.attachEvent&&n.attachEvent("onunload",Se)),T.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),T.getElementsByTagName=i(function(e){return e.appendChild(q.createComment("")),!e.getElementsByTagName("*").length}),T.getElementsByClassName=me.test(q.getElementsByClassName),T.getById=i(function(e){return F.appendChild(e).id=_,!q.getElementsByName||!q.getElementsByName(_).length}),T.getById?(S.filter.ID=function(e){var t=e.replace(xe,be);return function(e){return e.getAttribute("id")===t}},S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&$){var n=t.getElementById(e);return n?[n]:[]}}):(S.filter.ID=function(e){var t=e.replace(xe,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&$){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),S.find.TAG=T.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):T.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},S.find.CLASS=T.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&$)return t.getElementsByClassName(e)},H=[],P=[],(T.qsa=me.test(q.querySelectorAll))&&(i(function(e){F.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+_+"-]").length||P.push("~="),e.querySelectorAll(":checked").length||P.push(":checked"),e.querySelectorAll("a#"+_+"+*").length||P.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=q.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&P.push(":enabled",":disabled"),F.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(T.matchesSelector=me.test(I=F.matches||F.webkitMatchesSelector||F.mozMatchesSelector||F.oMatchesSelector||F.msMatchesSelector))&&i(function(e){T.disconnectedMatch=I.call(e,"*"),I.call(e,"[s!='']:x"),H.push("!=",oe)}),P=P.length&&new RegExp(P.join("|")),H=H.length&&new RegExp(H.join("|")),t=me.test(F.compareDocumentPosition),R=t||me.test(F.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!T.sortDetached&&t.compareDocumentPosition(e)===n?e===q||e.ownerDocument===M&&R(M,e)?-1:t===q||t.ownerDocument===M&&R(M,t)?1:L?ee(L,e)-ee(L,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t];if(!i||!o)return e===q?-1:t===q?1:i?-1:o?1:L?ee(L,e)-ee(L,t):0;if(i===o)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?s(a[r],u[r]):a[r]===M?-1:u[r]===M?1:0},q):q},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==q&&O(e),n=n.replace(le,"='$1']"),T.matchesSelector&&$&&!X[n+" "]&&(!H||!H.test(n))&&(!P||!P.test(n)))try{var r=I.call(e,n);if(r||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,q,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==q&&O(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==q&&O(e);var n=S.attrHandle[t.toLowerCase()],r=n&&Q.call(S.attrHandle,t.toLowerCase())?n(e,t,!$):undefined;return r!==undefined?r:T.attributes||!$?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(we,Te)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(D=!T.detectDuplicates,L=!T.sortStable&&e.slice(0),e.sort(U),D){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return L=null,e},E=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},S=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,be),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=z[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&z(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(se," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,d,p,h,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?m.firstChild:m.lastChild],s&&y){for(d=m,f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),c=l[e]||[],p=c[0]===W&&c[1],x=p&&c[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){l[e]=[W,p,x];break}}else if(y&&(d=t,f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),c=l[e]||[],p=c[0]===W&&c[1],x=p),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++x||(y&&(f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),l[e]=[W,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=S.pseudos[e]||S.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[_]?o(n):o.length>1?(i=[e,e,"",n],S.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=ee(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=N(e.replace(ae,"$1"));return i[_]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,be),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,be).toLowerCase(),function(t){var n;do{if(n=$?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===F},focus:function(e){return e===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!S.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=o[0]).type&&9===t.nodeType&&$&&S.relative[o[1].type]){if(!(t=(S.find.ID(s.matches[0].replace(xe,be),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(s=o[i],!S.relative[a=s.type]);)if((u=S.find[a])&&(r=u(s.matches[0].replace(xe,be),ye.test(o[0].type)&&f(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&p(o)))return K.apply(n,r),n;break}}return(c||N(e,l))(r,t,!$,n,!t||ye.test(e)&&f(t.parentNode)||t),n},T.sortStable=_.split("").sort(U).join("")===_,T.detectDuplicates=!!D,O(),T.sortDetached=i(function(e){return 1&e.compareDocumentPosition(q.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),T.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);ge.find=be,ge.expr=be.selectors,ge.expr[":"]=ge.expr.pseudos,ge.uniqueSort=ge.unique=be.uniqueSort,ge.text=be.getText,ge.isXMLDoc=be.isXML,ge.contains=be.contains,ge.escapeSelector=be.escape;var we=function(e,t,n){for(var r=[],i=n!==undefined;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&ge(e).is(n))break;r.push(e)}return r},Te=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Se=ge.expr.match.needsContext,Ee=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,Ce=/^.[^:#\[\.,]*$/;ge.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ge.find.matchesSelector(r,e)?[r]:[]:ge.find.matches(e,ge.grep(t,function(e){return 1===e.nodeType}))},ge.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ge(e).filter(function(){for(t=0;t1?ge.uniqueSort(n):n},filter:function(e){return this.pushStack(o(this,e||[],!1))},not:function(e){return this.pushStack(o(this,e||[],!0))},is:function(e){return!!o(this,"string"==typeof e&&Se.test(e)?ge(e):e||[],!1).length}});var ke,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ge.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||ke,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ne.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ge?t[0]:t,ge.merge(this,ge.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:ne,!0)),Ee.test(r[1])&&ge.isPlainObject(t))for(r in t)ge.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=ne.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):ge.isFunction(e)?n.ready!==undefined?n.ready(e):e(ge):ge.makeArray(e,this)}).prototype=ge.fn,ke=ge(ne);var je=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};ge.fn.extend({has:function(e){var t=ge(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&ge.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ge.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?ae.call(ge(e),this[0]):ae.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ge.uniqueSort(ge.merge(this.get(),ge(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ge.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return we(e,"parentNode")},parentsUntil:function(e,t,n){return we(e,"parentNode",n)},next:function(e){return s(e,"nextSibling")},prev:function(e){return s(e,"previousSibling")},nextAll:function(e){return we(e,"nextSibling")},prevAll:function(e){return we(e,"previousSibling")},nextUntil:function(e,t,n){return we(e,"nextSibling",n)},prevUntil:function(e,t,n){return we(e,"previousSibling",n)},siblings:function(e){return Te((e.parentNode||{}).firstChild,e)},children:function(e){return Te(e.firstChild)},contents:function(e){return i(e,"iframe")?e.contentDocument:(i(e,"template")&&(e=e.content||e),ge.merge([],e.childNodes))}},function(e,t){ge.fn[e]=function(n,r){var i=ge.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ge.filter(r,i)),this.length>1&&(Ae[e]||ge.uniqueSort(i),je.test(e)&&i.reverse()),this.pushStack(i)}});var Le=/[^\x20\t\r\n\f]+/g;ge.Callbacks=function(e){e="string"==typeof e?a(e):ge.extend({},e);var t,n,r,i,o=[],s=[],u=-1,c=function(){for(i=i||e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)o.splice(n,1),n<=u&&u--}),this},has:function(e){return e?ge.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=s=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=s=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},ge.extend({Deferred:function(t){var n=[["notify","progress",ge.Callbacks("memory"),ge.Callbacks("memory"),2],["resolve","done",ge.Callbacks("once memory"),ge.Callbacks("once memory"),0,"resolved"],["reject","fail",ge.Callbacks("once memory"),ge.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return ge.Deferred(function(t){ge.each(n,function(n,r){var i=ge.isFunction(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&ge.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function o(t,n,r,i){return function(){var a=this,l=arguments,f=function(){var e,f;if(!(t=s&&(r!==c&&(a=undefined,l=[e]),n.rejectWith(a,l))}};t?d():(ge.Deferred.getStackHook&&(d.stackTrace=ge.Deferred.getStackHook()),e.setTimeout(d))}}var s=0;return ge.Deferred(function(e){n[0][3].add(o(0,e,ge.isFunction(i)?i:u,e.notifyWith)),n[1][3].add(o(0,e,ge.isFunction(t)?t:u)),n[2][3].add(o(0,e,ge.isFunction(r)?r:c))}).promise()},promise:function(e){return null!=e?ge.extend(e,i):i}},o={};return ge.each(n,function(e,t){var s=t[2],a=t[5];i[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[0][2].lock),s.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?undefined:this,arguments),this},o[t[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=ie.call(arguments),o=ge.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?ie.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(l(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||ge.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)l(i[n],s(n),o.reject);return o.promise()}});var De=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ge.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&De.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},ge.readyException=function(t){e.setTimeout(function(){throw t})};var Oe=ge.Deferred();ge.fn.ready=function(e){return Oe.then(e)["catch"](function(e){ge.readyException(e)}),this},ge.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ge.readyWait:ge.isReady)||(ge.isReady=!0,!0!==e&&--ge.readyWait>0||Oe.resolveWith(ne,[ge]))}}),ge.ready.then=Oe.then,"complete"===ne.readyState||"loading"!==ne.readyState&&!ne.documentElement.doScroll?e.setTimeout(ge.ready):(ne.addEventListener("DOMContentLoaded",f),e.addEventListener("load",f));var qe=function(e,t,n,r,i,o,s){var a=0,u=e.length,c=null==n;if("object"===ge.type(n)){i=!0;for(a in n)qe(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,ge.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ge(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each(function(){Pe.remove(this,e)})}}),ge.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=$e.get(e,t),n&&(!r||Array.isArray(n)?r=$e.access(e,t,ge.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ge.queue(e,t),r=n.length,i=n.shift(),o=ge._queueHooks(e,t),s=function(){ge.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return $e.get(e,n)||$e.access(e,n,{empty:ge.Callbacks("once memory").add(function(){$e.remove(e,[t+"queue",n])})})}}),ge.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Ue=/^$|\/(?:java|ecma)script/i,Qe={option:[1,""],thead:[1,"
The following tables describe the endpoint versions and the dates they become binding within the data standards.
+
+
Binding Date indicates the dates the particular version of an endpoint becomes binding in the data standards.
+
+
Retirement Date indicates, where relevant, denotes the date a specific version can be retired and is no longer supported. All consumers of the affected endpoint must upgrade to a more recent version currently available.
+
+
Date Introduced indicates the release of the standards, including release date, when the endpoint version was first introduced. This is not the Binding Date.
+
+
Date Deprecated indicates the release of the standards, including release date, when the endpoint version was first marked for deprecation. This is not the Retirement Date.
+
Data Holders
+
The following versioning schedule is reflective of the endpoints hosted by Data Holders. Data Holders should take into account their phasing obligations in accordance with the CDR Rules as well as any exemptions granted, when determining which API versions are considered applicable.
The following versioning schedule is reflective of the endpoints hosted by Data Recipients.
+Data Recipients should take into account their commencement date within the CDR, relevant obligations in accordance with the CDR Rules, as well as any exemptions granted when factoring in which API versions are considered applicable.