From d03fc709062ba08fdbf9ac78bcd9b56cb7c3d53f Mon Sep 17 00:00:00 2001 From: James Bligh <40985476+JamesMBligh@users.noreply.github.com> Date: Thu, 21 Dec 2023 15:01:14 +1100 Subject: [PATCH] Release/1.29.0 (#339) * Create clean version of release 1.29.0 * Added releasenotes file for 1.29.0 * Added redirect_uri * Update CX Guidlines link * Removed amending authz * added RFC7636 to refs * Updated Intro DSB link * Differences in naming of Register endpoints * Added obligation schedule to FDO * Updated desc of minimumValue maximumValue unitOfMeasure * Updated markdown of minimumValue maximumValue unitOfMeasure * Added missing fields for PAID_OUT_AT_MATURITY ROLLED_OVER for maturityInstructions * Updated definition of Number in common field types * Updated descriptions on ErrorMetricsV2 * Modified URL in line with request example * url encoded * Retain Version Delta for Additional Standards Re-added the 1.28.0 Version Delta comments for the Candidate and Draft Standards recently updated and still under consultation in 1.29.0. * Added authorization_signed_response_alg & authorization_encrypted_response_alg as conditional * Resolve link and navigation issues Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/222 * Switch tracking and add Standards category ribbon Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/334, https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/332 * Corrected minor typos only Addresses typos: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/312 * Remove resource name to reduce length + complexity Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/222 * Added end & * Removed FDO Obligation date from Amending authorisation * Created a single link for [PKCE] / [RFC7636] * Standards Maintenance Issue #587: Added new field measureUnit in EnergyBillingDemandTransaction * Adjust heading levels and add navigation classes Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/338 * Identifying superseded versions in obsolete path Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/334 * Business Consumer Provisions Addresses: https://github.com/ConsumerDataStandardsAustralia/standards/issues/333 * Added link to change description * Added link to change description * Standards Maintenance Issue #587: Fixed typos. Re-arranged order of api versions for consistency * Add style to override class for CX submenu items * Added Data Holder Dashboards section Addresses: https://github.com/ConsumerDataStandardsAustralia/standards/issues/334 * Added link to issue * Added issue link to description * Added issue link to description * Updated with data attribute to apply CSS * Updated with data attribute * Added FDO details * Standards Maintenance Issue #613: Changed type of time fields in energy plan data to ExternalRef referring to ISO 8601 Times specification * Standards Maintenance Issue #613: Changed description of affected time fields for clarity. * Standards Maintenance Issue #587: Fixed typos * Standards Maintenance Issue #587: Fixed typo in FDO table * Retaining majority of useful original anchors Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/222 * Display the x-cds-type for array items Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/348 * Show format of request parameter enums correctly Addresses: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/349 * Adding release notes and delta comments Update for: https://github.com/ConsumerDataStandardsAustralia/standards-staging/issues/348 * Update to release notes and NBL version delta * Remove last diffs * Moving NBL Draft to Candidate Standards Addresses: https://github.com/ConsumerDataStandardsAustralia/standards/issues/318 * Rebuild * Add FDO diff statement for 587 * Add diff statements and release notes * Add diff and release notes * Add release note reference to CR620 * Add release notes * Add santa hat * Update release date * Fix release notes Update obligation date counts * Corrected typo * Add MI 17 DP to release notes Addresses: https://github.com/ConsumerDataStandardsAustralia/standards/issues/328 * Updated links * Updated dates * Added deprecation dates * Corrected typo * Rebuild * Update change log with DP328 --------- Co-authored-by: Hemang Rathod Co-authored-by: kirkycdr Co-authored-by: Nils Berge <60594671+nils-work@users.noreply.github.com> --- docs/images/logo.png | Bin 50758 -> 82689 bytes ...fzfko => additional20231221-24839-11ma7eu} | 14 +- .../candidates/dp306/banking-dp306.html | 1418 +++-- .../candidates/dp306/banking-dp306_apis | 5 +- .../banking-non-bank-lending.html | 1560 ++++-- .../banking-non-bank-lending_apis | 7 + .../candidates/non-bank-lending/cx_nbl | 2 + .../includes/additional/candidates/telco.html | 1441 ++++-- .../banking-non-bank-lending_apis | 30 - .../additional/drafts/non-bank-lending/cx_nbl | 3 - docs/includes/archives | 12 +- docs/includes/cds_admin | 257 +- docs/includes/cds_banking | 1023 ++-- docs/includes/cds_banking_dp306 | 1201 +++-- docs/includes/cds_banking_non_bank_lending | 1049 ++-- docs/includes/cds_common | 263 +- docs/includes/cds_dcr | 113 +- docs/includes/cds_energy | 1124 ++-- docs/includes/cds_energy_sdh | 283 +- docs/includes/cds_register | 449 +- .../cds_register_banking_non_bank_lending | 219 +- docs/includes/cds_telco | 1203 +++-- docs/includes/changelog | 13 +- docs/includes/cx | 5 +- docs/includes/cx_standards/consent | 44 +- docs/includes/cx_standards/dashboards | 22 + docs/includes/cx_standards/notifications | 12 +- .../endpoint-version-schedule/index.html | 41 +- docs/includes/known-issues | 12 +- .../obsolete/get-account-detail-v1.html | 2 +- .../obsolete/get-account-detail-v2.html | 2 +- .../obsolete/get-account-detail-v3.html | 2 +- docs/includes/obsolete/get-accounts-v1.html | 2 +- docs/includes/obsolete/get-accounts-v2.html | 2 +- .../obsolete/get-billing-for-account-v1.html | 2 +- .../obsolete/get-billing-for-account-v2.html | 1793 +++++++ .../get-billing-for-specific-accounts-v1.html | 2 +- .../get-billing-for-specific-accounts-v2.html | 1845 +++++++ .../obsolete/get-bulk-balances-v1.html | 2 +- .../obsolete/get-bulk-billing-v1.html | 2 +- .../obsolete/get-bulk-billing-v2.html | 1773 +++++++ .../obsolete/get-bulk-direct-debits-v1.html | 2 +- .../obsolete/get-customer-detail-v1.html | 2 +- .../get-data-holder-brands-summary-v1.html | 2 +- .../obsolete/get-data-holder-brands-v1.html | 2 +- .../obsolete/get-data-holder-brands-v2.html | 2 +- .../obsolete/get-data-holder-statuses-v1.html | 2 +- .../get-data-recipient-statuses-v1.html | 2 +- .../obsolete/get-data-recipients-v2.html | 2 +- .../get-energy-account-detail-v1.html | 2 +- .../get-energy-account-detail-v2.html | 2 +- .../obsolete/get-energy-accounts-v1.html | 2 +- .../obsolete/get-generic-plan-detail-v1.html | 2 +- docs/includes/obsolete/get-metrics-v1.html | 2 +- docs/includes/obsolete/get-metrics-v2.html | 2 +- docs/includes/obsolete/get-metrics-v3.html | 2 +- docs/includes/obsolete/get-metrics-v4.html | 2 +- .../obsolete/get-payee-detail-v1.html | 2 +- docs/includes/obsolete/get-payees-v1.html | 2 +- .../obsolete/get-product-detail-v1.html | 2 +- .../obsolete/get-product-detail-v2.html | 2 +- .../obsolete/get-product-detail-v3.html | 2 +- .../obsolete/get-product-detail-v4.html | 2 +- docs/includes/obsolete/get-products-v1.html | 2 +- docs/includes/obsolete/get-products-v2.html | 2 +- docs/includes/obsolete/get-products-v3.html | 2 +- .../get-scheduled-payments-bulk-v1.html | 2 +- .../get-scheduled-payments-bulk-v2.html | 2 +- ...get-scheduled-payments-for-account-v1.html | 2 +- ...led-payments-for-specific-accounts-v1.html | 2 +- .../get-software-product-statuses-v1.html | 2 +- .../get-software-statement-assertion-v1.html | 2 +- .../get-software-statement-assertion-v2.html | 2 +- .../releasenotes/releasenotes.1.29.0.html | 482 ++ docs/includes/swagger/cds_admin.json | 8 +- docs/includes/swagger/cds_admin.yaml | 11 +- docs/includes/swagger/cds_banking.json | 8 +- docs/includes/swagger/cds_banking.yaml | 28 +- docs/includes/swagger/cds_banking_dp306.json | 2 +- docs/includes/swagger/cds_banking_dp306.yaml | 2 +- .../swagger/cds_banking_non_bank_lending.json | 2 +- .../swagger/cds_banking_non_bank_lending.yaml | 2 +- docs/includes/swagger/cds_common.json | 4 +- docs/includes/swagger/cds_common.yaml | 4 +- docs/includes/swagger/cds_dcr.json | 4 +- docs/includes/swagger/cds_dcr.yaml | 4 +- docs/includes/swagger/cds_energy.json | 71 +- docs/includes/swagger/cds_energy.yaml | 204 +- docs/includes/swagger/cds_energy_sdh.json | 2 +- docs/includes/swagger/cds_energy_sdh.yaml | 2 +- docs/includes/swagger/cds_register.json | 2 +- docs/includes/swagger/cds_register.yaml | 2 +- ...cds_register_banking_non_bank_lending.json | 2 +- ...cds_register_banking_non_bank_lending.yaml | 2 +- docs/includes/swagger/cds_telco.json | 2 +- docs/includes/swagger/cds_telco.yaml | 2 +- docs/index.html | 4607 +++++++++++------ docs/javascripts/all.js | 12 +- docs/javascripts/all_nosearch.js | 14 +- docs/javascripts/cds/standards-category.js | 1 + docs/stylesheets/screen.css | 2 +- slate/source/images/logo.png | Bin 50758 -> 82689 bytes slate/source/includes/_banking_apis.md.erb | 5 + slate/source/includes/_cx_standards.md.erb | 1 + slate/source/includes/_energy_apis.md.erb | 30 + slate/source/includes/_register.md.erb | 14 +- slate/source/includes/_scopes.md.erb | 2 +- slate/source/includes/additional.md | 12 +- .../dp306/banking-dp306_apis.md.erb | 6 + .../non-bank-lending/_cx_standards_nbl.md.erb | 0 .../_product_categories_nbl.md | 0 .../_product_components_nbl.md | 0 .../_register_banking_non_bank_lending.md.erb | 9 - .../non-bank-lending/_sector_definitions.md | 0 ..._standards_banking_non_bank_lending.md.erb | 14 + .../banking-non-bank-lending.html.md | 25 + .../banking-non-bank-lending_apis.md.erb | 10 + .../candidates/non-bank-lending/cx_nbl.md | 5 + ..._standards_banking_non_bank_lending.md.erb | 9 - .../banking-non-bank-lending.html.md | 25 - .../banking-non-bank-lending_apis.md.erb | 33 - .../drafts/non-bank-lending/cx_nbl.md | 7 - slate/source/includes/archives.md | 9 +- .../includes/banking/_product_categories.md | 2 +- .../includes/banking/_product_components.md | 8 +- slate/source/includes/cds_admin.md | 194 +- slate/source/includes/cds_banking.md | 667 +-- slate/source/includes/cds_banking_dp306.md | 772 +-- .../includes/cds_banking_non_bank_lending.md | 681 +-- slate/source/includes/cds_common.md | 168 +- slate/source/includes/cds_dcr.md | 81 +- slate/source/includes/cds_energy.md | 726 +-- slate/source/includes/cds_energy_sdh.md | 187 +- slate/source/includes/cds_register.md | 295 +- .../cds_register_banking_non_bank_lending.md | 142 +- slate/source/includes/cds_telco.md | 779 +-- slate/source/includes/changelog.md | 9 +- slate/source/includes/cx.md | 5 +- slate/source/includes/cx_standards/consent.md | 55 +- .../includes/cx_standards/dashboards.md | 14 + .../includes/cx_standards/notifications.md | 9 +- .../includes/_energy-dh.md | 11 +- .../endpoint-version-schedule/index.html.md | 6 +- slate/source/includes/introduction/_fdo.md | 57 +- slate/source/includes/introduction/_intro.md | 12 +- .../includes/introduction/_references.md | 6 +- slate/source/includes/known-issues.md | 12 +- .../get-billing-for-account-v2.html.md | 804 +++ ...t-billing-for-specific-accounts-v2.html.md | 847 +++ .../obsolete/get-bulk-billing-v2.html.md | 798 +++ slate/source/includes/register/_dcr_apis.md | 5 +- .../releasenotes/releasenotes.1.29.0.html.md | 115 + .../includes/secondary/_energy_security.md | 4 +- .../security/_authentication_flows.md | 2 - .../security/_client_authentication.md | 2 +- .../security/_client_registration.md.erb | 4 +- slate/source/includes/security/_consent.md | 1 - .../security/_participant_statuses.md.erb | 2 +- .../includes/security/_request_object.md | 5 +- .../security/endpoints/_authorisation.md | 3 +- .../includes/security/endpoints/_register.md | 4 +- slate/source/includes/standards/_types.md | 8 +- slate/source/includes/standards/_uri.md | 2 +- slate/source/includes/swagger/cds_admin.json | 8 +- slate/source/includes/swagger/cds_admin.yaml | 11 +- .../source/includes/swagger/cds_banking.json | 8 +- .../source/includes/swagger/cds_banking.yaml | 28 +- .../includes/swagger/cds_banking_dp306.json | 2 +- .../includes/swagger/cds_banking_dp306.yaml | 2 +- .../swagger/cds_banking_non_bank_lending.json | 2 +- .../swagger/cds_banking_non_bank_lending.yaml | 2 +- slate/source/includes/swagger/cds_common.json | 4 +- slate/source/includes/swagger/cds_common.yaml | 4 +- slate/source/includes/swagger/cds_dcr.json | 4 +- slate/source/includes/swagger/cds_dcr.yaml | 4 +- slate/source/includes/swagger/cds_energy.json | 71 +- slate/source/includes/swagger/cds_energy.yaml | 204 +- .../includes/swagger/cds_energy_sdh.json | 2 +- .../includes/swagger/cds_energy_sdh.yaml | 2 +- .../source/includes/swagger/cds_register.json | 2 +- .../source/includes/swagger/cds_register.yaml | 2 +- ...cds_register_banking_non_bank_lending.json | 2 +- ...cds_register_banking_non_bank_lending.yaml | 2 +- slate/source/includes/swagger/cds_telco.json | 2 +- slate/source/includes/swagger/cds_telco.yaml | 2 +- slate/source/javascripts/all_nosearch.js | 1 + slate/source/javascripts/app/_toc.js | 9 + .../javascripts/cds/standards-category.js | 85 + slate/source/layouts/layout.erb | 2 +- slate/source/stylesheets/screen.css.scss | 16 + swagger-gen/api/cds_admin.json | 8 +- swagger-gen/api/cds_banking.json | 8 +- swagger-gen/api/cds_banking_dp306.json | 2 +- .../api/cds_banking_non_bank_lending.json | 2 +- swagger-gen/api/cds_common.json | 4 +- swagger-gen/api/cds_dcr.json | 6 +- swagger-gen/api/cds_energy.json | 68 +- swagger-gen/api/cds_energy_sdh.json | 2 +- swagger-gen/api/cds_register.json | 2 +- ...cds_register_banking_non_bank_lending.json | 2 +- swagger-gen/api/cds_telco.json | 2 +- swagger-gen/cds_admin.md | 194 +- swagger-gen/cds_banking.md | 667 +-- swagger-gen/cds_banking_dp306.md | 772 +-- swagger-gen/cds_banking_non_bank_lending.md | 681 +-- swagger-gen/cds_common.md | 168 +- swagger-gen/cds_dcr.md | 81 +- swagger-gen/cds_energy.md | 726 +-- swagger-gen/cds_energy_sdh.md | 187 +- swagger-gen/cds_register.md | 295 +- .../cds_register_banking_non_bank_lending.md | 142 +- swagger-gen/cds_telco.md | 779 +-- swagger-gen/widdershins-cdr/common.js | 3 + swagger-gen/widdershins-cdr/openapi3.js | 4 + .../templates/openapi3/main.dot | 8 +- .../templates/openapi3/operation.dot | 9 +- .../templates/openapi3/parameters.def | 6 +- .../templates/openapi3/responses.def | 8 +- utils/release_notes_template.md | 5 + 219 files changed, 25806 insertions(+), 10044 deletions(-) rename docs/includes/additional/{additional20231110-68925-1vfzfko => additional20231221-24839-11ma7eu} (68%) rename docs/includes/additional/{drafts => candidates}/non-bank-lending/banking-non-bank-lending.html (93%) create mode 100644 docs/includes/additional/candidates/non-bank-lending/banking-non-bank-lending_apis create mode 100644 docs/includes/additional/candidates/non-bank-lending/cx_nbl delete mode 100644 docs/includes/additional/drafts/non-bank-lending/banking-non-bank-lending_apis delete mode 100644 docs/includes/additional/drafts/non-bank-lending/cx_nbl create mode 100644 docs/includes/cx_standards/dashboards create mode 100644 docs/includes/obsolete/get-billing-for-account-v2.html create mode 100644 docs/includes/obsolete/get-billing-for-specific-accounts-v2.html create mode 100644 docs/includes/obsolete/get-bulk-billing-v2.html create mode 100644 docs/includes/releasenotes/releasenotes.1.29.0.html create mode 100644 docs/javascripts/cds/standards-category.js rename slate/source/includes/additional/{drafts => candidates}/non-bank-lending/_cx_standards_nbl.md.erb (100%) rename slate/source/includes/additional/{drafts => candidates}/non-bank-lending/_product_categories_nbl.md (100%) rename slate/source/includes/additional/{drafts => candidates}/non-bank-lending/_product_components_nbl.md (100%) rename slate/source/includes/additional/{drafts => candidates}/non-bank-lending/_register_banking_non_bank_lending.md.erb (74%) rename slate/source/includes/additional/{drafts => candidates}/non-bank-lending/_sector_definitions.md (100%) create mode 100644 slate/source/includes/additional/candidates/non-bank-lending/_standards_banking_non_bank_lending.md.erb create mode 100644 slate/source/includes/additional/candidates/non-bank-lending/banking-non-bank-lending.html.md create mode 100644 slate/source/includes/additional/candidates/non-bank-lending/banking-non-bank-lending_apis.md.erb create mode 100644 slate/source/includes/additional/candidates/non-bank-lending/cx_nbl.md delete mode 100644 slate/source/includes/additional/drafts/non-bank-lending/_standards_banking_non_bank_lending.md.erb delete mode 100644 slate/source/includes/additional/drafts/non-bank-lending/banking-non-bank-lending.html.md delete mode 100644 slate/source/includes/additional/drafts/non-bank-lending/banking-non-bank-lending_apis.md.erb delete mode 100644 slate/source/includes/additional/drafts/non-bank-lending/cx_nbl.md create mode 100644 slate/source/includes/cx_standards/dashboards.md create mode 100644 slate/source/includes/obsolete/get-billing-for-account-v2.html.md create mode 100644 slate/source/includes/obsolete/get-billing-for-specific-accounts-v2.html.md create mode 100644 slate/source/includes/obsolete/get-bulk-billing-v2.html.md create mode 100644 slate/source/includes/releasenotes/releasenotes.1.29.0.html.md create mode 100644 slate/source/javascripts/cds/standards-category.js diff --git a/docs/images/logo.png b/docs/images/logo.png index 36c2504e51302ae86eba8452f88ed76776f3c625..add21ee2d38602076cd666ece7f18923a7612ae5 100644 GIT binary patch literal 82689 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

ja<606h28z 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 Standards

Added Candidate Standards for Banking Decision Proposal 306
-Updated the Draft Standards for the Banking and Non-Bank Lending sector (related to Decision Proposal 318)
+

Additional Standards

The Draft Non-Bank Lending Standards have been made as Candidate Standards -
++ Candidate Standards for the Banking and Non-Bank Lending sector
+- Draft Standards for the Banking and Non-Bank Lending sector
+
+Added a red ribbon below the CDS logo on different Standards versions to visually distinguish them from the binding version
 

The Consumer Data Standards also incorporate other non-binding standards that are developed to facilitate consultation and feedback or to facilitate voluntary extension of CDR implementations.

@@ -16,12 +19,9 @@ Updated the Draft Standards for the Banking and Non-Bank Lending sector (related

Draft Standards

-

The Consumer Data Standards currently include the following Draft Standards:

- - +

The Consumer Data Standards do not currently include any Draft Standards.

Experimental Standards

The experimental standards developed by the Data Standards Body are developed in this GitHub repository and are published here.

diff --git a/docs/includes/additional/candidates/dp306/banking-dp306.html b/docs/includes/additional/candidates/dp306/banking-dp306.html index ab115d40..b6f46d1d 100644 --- a/docs/includes/additional/candidates/dp306/banking-dp306.html +++ b/docs/includes/additional/candidates/dp306/banking-dp306.html @@ -8,7 +8,7 @@ DSB Candidate Standard - Banking Decision Proposal 306 - + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Billing For Account V2

+

This page documents version 2 of the Get Billing For Account end point.

+ +
    +
  • Data Holders MAY retire this version on September 9th 2024 if they implement v3.
  • +
+

Get Billing For Account

+

+ +
+

Code samples

+
+
GET /energy/accounts/{accountId}/billing HTTP/1.1
+
+Accept: application/json
+x-v: string
+x-min-v: string
+x-fapi-interaction-id: string
+x-fapi-auth-date: string
+x-fapi-customer-ip-address: string
+x-cds-client-headers: string
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string',
+  'x-fapi-interaction-id':'string',
+  'x-fapi-auth-date':'string',
+  'x-fapi-customer-ip-address':'string',
+  'x-cds-client-headers':'string'
+
+};
+
+fetch('/energy/accounts/{accountId}/billing',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+

GET /energy/accounts/{accountId}/billing

+ +

Obtain the billing transactions for a specific account

+ +

Other Versions: v1

+

Endpoint Version

+ + + + + + + + + + +
Version2
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
accountIdpathstringmandatoryID of a specific account to obtain data for. This is a tokenised ID previous obtained from the Account List end point.
newest-timequeryDateTimeStringoptionalConstrain 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
oldest-timequeryDateTimeStringoptionalConstrain 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
pagequeryPositiveIntegeroptionalPage of results to request (standard pagination)
page-sizequeryPositiveIntegeroptionalPage size to request. Default is 25 (standard pagination)
x-vheaderstringmandatoryVersion 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 and x-v. If the value of x-min-v is equal to or higher than the value of x-v then the x-min-v 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
x-min-vheaderstringoptionalMinimum 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 and x-v. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.
x-fapi-interaction-idheaderstringoptionalAn [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.
x-fapi-auth-dateheaderstringconditionalThe time when the customer last logged in to the Data Recipient Software Product as described in [FAPI-1.0-Baseline]. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
x-fapi-customer-ip-addressheaderstringoptionalThe 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.
x-cds-client-headersheaderBase64conditionalThe customer's original standard http headers Base64 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.
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "transactions": [
+      {
+        "accountId": "string",
+        "executionDateTime": "string",
+        "gst": "string",
+        "transactionUType": "usage",
+        "usage": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "measureUnit": "KWH",
+          "usage": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "demand": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "rate": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "onceOff": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "amount": "string",
+          "description": "string"
+        },
+        "otherCharges": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "startDate": "string",
+          "endDate": "string",
+          "type": "ENVIRONMENTAL",
+          "amount": "string",
+          "description": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "payment": {
+          "amount": "string",
+          "method": "DIRECT_DEBIT"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessful responseEnergyBillingListResponseV2
400Bad RequestThe following error codes MUST be supported:
ResponseErrorListV2
404Not FoundThe following error codes MUST be supported:
ResponseErrorListV2
406Not AcceptableThe following error codes MUST be supported:
ResponseErrorListV2
422Unprocessable EntityThe following error codes MUST be supported:
ResponseErrorListV2
+

Response Headers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
200x-fapi-interaction-idstringAn [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.
400x-fapi-interaction-idstringAn [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.
404x-fapi-interaction-idstringAn [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.
406x-fapi-interaction-idstringAn [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.
422x-fapi-interaction-idstringAn [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.
+ +

+ +

Schemas

+ +

+ +

EnergyBillingListResponseV2

+ +

+
{
+  "data": {
+    "transactions": [
+      {
+        "accountId": "string",
+        "executionDateTime": "string",
+        "gst": "string",
+        "transactionUType": "usage",
+        "usage": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "measureUnit": "KWH",
+          "usage": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "demand": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "rate": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "onceOff": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "amount": "string",
+          "description": "string"
+        },
+        "otherCharges": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "startDate": "string",
+          "endDate": "string",
+          "type": "ENVIRONMENTAL",
+          "amount": "string",
+          "description": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "payment": {
+          "amount": "string",
+          "method": "DIRECT_DEBIT"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
dataobjectmandatorynone
» transactions[EnergyBillingTransactionV2]mandatoryArray of transactions sorted by date and time in descending order
linksLinksPaginatedmandatorynone
metaMetaPaginatedmandatorynone
+ +

ResponseErrorListV2

+ +

+
{
+  "errors": [
+    {
+      "code": "string",
+      "title": "string",
+      "detail": "string",
+      "meta": {
+        "urn": "string"
+      }
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
errors[object]mandatorynone
» codestringmandatoryThe code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.
» titlestringmandatoryA short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.
» detailstringmandatoryA human-readable explanation specific to this occurrence of the problem.
» metaobjectoptionalAdditional data for customised error codes
»» urnstringconditionalThe CDR error code URN which the application-specific error code extends. Mandatory if the error code is an application-specific error rather than a standardised error code.
+ +

EnergyBillingTransactionV2

+ +

+
{
+  "accountId": "string",
+  "executionDateTime": "string",
+  "gst": "string",
+  "transactionUType": "usage",
+  "usage": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "timeOfUseType": "PEAK",
+    "description": "string",
+    "isEstimate": true,
+    "startDate": "string",
+    "endDate": "string",
+    "measureUnit": "KWH",
+    "usage": 0,
+    "amount": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "demand": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "timeOfUseType": "PEAK",
+    "description": "string",
+    "isEstimate": true,
+    "startDate": "string",
+    "endDate": "string",
+    "rate": 0,
+    "amount": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "onceOff": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "amount": "string",
+    "description": "string"
+  },
+  "otherCharges": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "startDate": "string",
+    "endDate": "string",
+    "type": "ENVIRONMENTAL",
+    "amount": "string",
+    "description": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "payment": {
+    "amount": "string",
+    "method": "DIRECT_DEBIT"
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
accountIdstringmandatoryThe ID of the account for which transaction applies
executionDateTimeDateTimeStringmandatoryThe date and time that the transaction occurred
gstAmountStringoptionalThe GST incurred in the transaction. Should not be included for credits or payments. If absent zero is assumed
transactionUTypeEnummandatoryIndicator of the type of transaction object present in this record
usageEnergyBillingUsageTransactionV2conditionalRepresents a usage charge or generation credit. Mandatory if transactionUType is equal to usage
demandEnergyBillingDemandTransactionV2optionalRepresents a demand charge or generation credit. Mandatory if transactionUType is equal to demand
onceOffEnergyBillingOnceOffTransactionconditionalRepresents a once off charge or credit. Mandatory if transactionUType is equal to onceOff
otherChargesEnergyBillingOtherTransactionoptionalRepresents charge other than usage and once off. Mandatory if transactionUType is equal to otherCharge
paymentEnergyBillingPaymentTransactionconditionalRepresents a payment to the account. Mandatory if transactionUType is equal to payment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
transactionUTypeusage
transactionUTypedemand
transactionUTypeonceOff
transactionUTypeotherCharges
transactionUTypepayment
+ +

EnergyBillingUsageTransactionV2

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "timeOfUseType": "PEAK",
+  "description": "string",
+  "isEstimate": true,
+  "startDate": "string",
+  "endDate": "string",
+  "measureUnit": "KWH",
+  "usage": 0,
+  "amount": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
timeOfUseTypeEnummandatoryThe time of use type that the transaction applies to
descriptionstringoptionalOptional description of the transaction that can be used for display purposes
isEstimatebooleanoptionalFlag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual
startDateDateTimeStringmandatoryDate and time when the usage period starts
endDateDateTimeStringmandatoryDate and time when the usage period ends
measureUnitEnumoptionalThe measurement unit of rate. Assumed to be KWH if absent
usagenumbermandatoryThe usage for the period in measure unit. A negative value indicates power generated
amountAmountStringmandatoryThe amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
timeOfUseTypePEAK
timeOfUseTypeOFF_PEAK
timeOfUseTypeOFF_PEAK_DEMAND_CHARGE
timeOfUseTypeSHOULDER
timeOfUseTypeSHOULDER1
timeOfUseTypeSHOULDER2
timeOfUseTypeCONTROLLED_LOAD
timeOfUseTypeSOLAR
timeOfUseTypeAGGREGATE
timeOfUseTypeALL_DAY
measureUnitKWH
measureUnitKVA
measureUnitKVAR
measureUnitKVARH
measureUnitKW
measureUnitDAYS
measureUnitMETER
measureUnitMONTH
typeDLF
typeMLF
+ +

EnergyBillingDemandTransactionV2

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "timeOfUseType": "PEAK",
+  "description": "string",
+  "isEstimate": true,
+  "startDate": "string",
+  "endDate": "string",
+  "rate": 0,
+  "amount": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
timeOfUseTypeEnummandatoryThe time of use type that the transaction applies to
descriptionstringoptionalOptional description of the transaction that can be used for display purposes
isEstimatebooleanoptionalFlag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual
startDateDateTimeStringmandatoryDate and time when the demand period starts
endDateDateTimeStringmandatoryDate and time when the demand period ends
ratenumbermandatoryThe rate for the demand charge in kVA. A negative value indicates power generated
amountAmountStringmandatoryThe amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
timeOfUseTypePEAK
timeOfUseTypeOFF_PEAK
timeOfUseTypeOFF_PEAK_DEMAND_CHARGE
timeOfUseTypeSHOULDER
timeOfUseTypeSHOULDER1
timeOfUseTypeSHOULDER2
timeOfUseTypeCONTROLLED_LOAD
timeOfUseTypeSOLAR
timeOfUseTypeAGGREGATE
timeOfUseTypeALL_DAY
timeOfUseTypeEXCESS
typeDLF
typeMLF
+ +

EnergyBillingOnceOffTransaction

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "amount": "string",
+  "description": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
amountAmountStringmandatoryThe amount of the charge or credit. A positive value indicates a charge and a negative value indicates a credit
descriptionstringmandatoryA free text description of the item
+ +

EnergyBillingOtherTransaction

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "startDate": "string",
+  "endDate": "string",
+  "type": "ENVIRONMENTAL",
+  "amount": "string",
+  "description": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
startDateDateStringoptionalOptional start date for the application of the charge
endDateDateStringoptionalOptional end date for the application of the charge
typeEnumoptionalType of charge. Assumed to be other if absent
amountAmountStringmandatoryThe amount of the charge
descriptionstringmandatoryA free text description of the item
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
typeENVIRONMENTAL
typeREGULATED
typeNETWORK
typeMETERING
typeRETAIL_SERVICE
typeRCTI
typeOTHER
typeDLF
typeMLF
+ +

EnergyBillingPaymentTransaction

+ +

+
{
+  "amount": "string",
+  "method": "DIRECT_DEBIT"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
amountAmountStringmandatoryThe amount paid
methodEnummandatoryThe method of payment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
methodDIRECT_DEBIT
methodCARD
methodTRANSFER
methodBPAY
methodCASH
methodCHEQUE
methodOTHER
+ +

LinksPaginated

+ +

+
{
+  "self": "string",
+  "first": "string",
+  "prev": "string",
+  "next": "string",
+  "last": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
selfURIStringmandatoryFully qualified link that generated the current response document
firstURIStringconditionalURI to the first page of this set. Mandatory if this response is not the first page
prevURIStringconditionalURI to the previous page of this set. Mandatory if this response is not the first page
nextURIStringconditionalURI to the next page of this set. Mandatory if this response is not the last page
lastURIStringconditionalURI to the last page of this set. Mandatory if this response is not the last page
+ +

MetaPaginated

+ +

+
{
+  "totalRecords": 0,
+  "totalPages": 0
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
totalRecordsNaturalNumbermandatoryThe total number of records in the full set. See pagination.
totalPagesNaturalNumbermandatoryThe total number of pages in the full set. See pagination.
+ +
+
+
+ + +
+
+
+ + diff --git a/docs/includes/obsolete/get-billing-for-specific-accounts-v1.html b/docs/includes/obsolete/get-billing-for-specific-accounts-v1.html index 417cd6d3..05508312 100644 --- a/docs/includes/obsolete/get-billing-for-specific-accounts-v1.html +++ b/docs/includes/obsolete/get-billing-for-specific-accounts-v1.html @@ -8,7 +8,7 @@ Get Billing For Specific Accounts v1 - + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Billing For Specific Accounts V2

+

This page documents version 2 of the Get Billing For Specific Accounts end point.

+ +
    +
  • Data Holders MAY retire this version on September 9th 2024 if they implement v3.
  • +
+

Get Billing For Specific Accounts

+

+ +
+

Code samples

+
+
POST /energy/accounts/billing HTTP/1.1
+
+Content-Type: application/json
+Accept: application/json
+x-v: string
+x-min-v: string
+x-fapi-interaction-id: string
+x-fapi-auth-date: string
+x-fapi-customer-ip-address: string
+x-cds-client-headers: string
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "data": {
+    "accountIds": [
+      "string"
+    ]
+  },
+  "meta": {}
+}';
+const headers = {
+  'Content-Type':'application/json',
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string',
+  'x-fapi-interaction-id':'string',
+  'x-fapi-auth-date':'string',
+  'x-fapi-customer-ip-address':'string',
+  'x-cds-client-headers':'string'
+
+};
+
+fetch('/energy/accounts/billing',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+

POST /energy/accounts/billing

+ +

Obtain billing for a specified set of accounts

+ +

Other Versions: v1

+ +
+

Body parameter

+
+
{
+  "data": {
+    "accountIds": [
+      "string"
+    ]
+  },
+  "meta": {}
+}
+

Endpoint Version

+ + + + + + + + + + +
Version2
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
newest-timequeryDateTimeStringoptionalConstrain 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
oldest-timequeryDateTimeStringoptionalConstrain 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
pagequeryPositiveIntegeroptionalPage of results to request (standard pagination)
page-sizequeryPositiveIntegeroptionalPage size to request. Default is 25 (standard pagination)
x-vheaderstringmandatoryVersion 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 and x-v. If the value of x-min-v is equal to or higher than the value of x-v then the x-min-v 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
x-min-vheaderstringoptionalMinimum 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 and x-v. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.
x-fapi-interaction-idheaderstringoptionalAn [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.
x-fapi-auth-dateheaderstringconditionalThe time when the customer last logged in to the Data Recipient Software Product as described in [FAPI-1.0-Baseline]. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
x-fapi-customer-ip-addressheaderstringoptionalThe 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.
x-cds-client-headersheaderBase64conditionalThe customer's original standard http headers Base64 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.
bodybodyRequestAccountIdListmandatoryRequest payload containing list of specific Accounts to obtain data for
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "transactions": [
+      {
+        "accountId": "string",
+        "executionDateTime": "string",
+        "gst": "string",
+        "transactionUType": "usage",
+        "usage": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "measureUnit": "KWH",
+          "usage": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "demand": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "rate": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "onceOff": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "amount": "string",
+          "description": "string"
+        },
+        "otherCharges": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "startDate": "string",
+          "endDate": "string",
+          "type": "ENVIRONMENTAL",
+          "amount": "string",
+          "description": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "payment": {
+          "amount": "string",
+          "method": "DIRECT_DEBIT"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessful responseEnergyBillingListResponseV2
400Bad RequestThe following error codes MUST be supported:
ResponseErrorListV2
406Not AcceptableThe following error codes MUST be supported:
ResponseErrorListV2
422Unprocessable EntityThe following error codes MUST be supported:
ResponseErrorListV2
+

Response Headers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
200x-fapi-interaction-idstringAn [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.
400x-fapi-interaction-idstringAn [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.
406x-fapi-interaction-idstringAn [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.
422x-fapi-interaction-idstringAn [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.
+ +

+ +

Schemas

+ +

+ +

EnergyBillingListResponseV2

+ +

+
{
+  "data": {
+    "transactions": [
+      {
+        "accountId": "string",
+        "executionDateTime": "string",
+        "gst": "string",
+        "transactionUType": "usage",
+        "usage": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "measureUnit": "KWH",
+          "usage": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "demand": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "rate": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "onceOff": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "amount": "string",
+          "description": "string"
+        },
+        "otherCharges": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "startDate": "string",
+          "endDate": "string",
+          "type": "ENVIRONMENTAL",
+          "amount": "string",
+          "description": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "payment": {
+          "amount": "string",
+          "method": "DIRECT_DEBIT"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
dataobjectmandatorynone
» transactions[EnergyBillingTransactionV2]mandatoryArray of transactions sorted by date and time in descending order
linksLinksPaginatedmandatorynone
metaMetaPaginatedmandatorynone
+ +

ResponseErrorListV2

+ +

+
{
+  "errors": [
+    {
+      "code": "string",
+      "title": "string",
+      "detail": "string",
+      "meta": {
+        "urn": "string"
+      }
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
errors[object]mandatorynone
» codestringmandatoryThe code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.
» titlestringmandatoryA short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.
» detailstringmandatoryA human-readable explanation specific to this occurrence of the problem.
» metaobjectoptionalAdditional data for customised error codes
»» urnstringconditionalThe CDR error code URN which the application-specific error code extends. Mandatory if the error code is an application-specific error rather than a standardised error code.
+ +

EnergyBillingTransactionV2

+ +

+
{
+  "accountId": "string",
+  "executionDateTime": "string",
+  "gst": "string",
+  "transactionUType": "usage",
+  "usage": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "timeOfUseType": "PEAK",
+    "description": "string",
+    "isEstimate": true,
+    "startDate": "string",
+    "endDate": "string",
+    "measureUnit": "KWH",
+    "usage": 0,
+    "amount": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "demand": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "timeOfUseType": "PEAK",
+    "description": "string",
+    "isEstimate": true,
+    "startDate": "string",
+    "endDate": "string",
+    "rate": 0,
+    "amount": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "onceOff": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "amount": "string",
+    "description": "string"
+  },
+  "otherCharges": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "startDate": "string",
+    "endDate": "string",
+    "type": "ENVIRONMENTAL",
+    "amount": "string",
+    "description": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "payment": {
+    "amount": "string",
+    "method": "DIRECT_DEBIT"
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
accountIdstringmandatoryThe ID of the account for which transaction applies
executionDateTimeDateTimeStringmandatoryThe date and time that the transaction occurred
gstAmountStringoptionalThe GST incurred in the transaction. Should not be included for credits or payments. If absent zero is assumed
transactionUTypeEnummandatoryIndicator of the type of transaction object present in this record
usageEnergyBillingUsageTransactionV2conditionalRepresents a usage charge or generation credit. Mandatory if transactionUType is equal to usage
demandEnergyBillingDemandTransactionV2optionalRepresents a demand charge or generation credit. Mandatory if transactionUType is equal to demand
onceOffEnergyBillingOnceOffTransactionconditionalRepresents a once off charge or credit. Mandatory if transactionUType is equal to onceOff
otherChargesEnergyBillingOtherTransactionoptionalRepresents charge other than usage and once off. Mandatory if transactionUType is equal to otherCharge
paymentEnergyBillingPaymentTransactionconditionalRepresents a payment to the account. Mandatory if transactionUType is equal to payment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
transactionUTypeusage
transactionUTypedemand
transactionUTypeonceOff
transactionUTypeotherCharges
transactionUTypepayment
+ +

EnergyBillingUsageTransactionV2

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "timeOfUseType": "PEAK",
+  "description": "string",
+  "isEstimate": true,
+  "startDate": "string",
+  "endDate": "string",
+  "measureUnit": "KWH",
+  "usage": 0,
+  "amount": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
timeOfUseTypeEnummandatoryThe time of use type that the transaction applies to
descriptionstringoptionalOptional description of the transaction that can be used for display purposes
isEstimatebooleanoptionalFlag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual
startDateDateTimeStringmandatoryDate and time when the usage period starts
endDateDateTimeStringmandatoryDate and time when the usage period ends
measureUnitEnumoptionalThe measurement unit of rate. Assumed to be KWH if absent
usagenumbermandatoryThe usage for the period in measure unit. A negative value indicates power generated
amountAmountStringmandatoryThe amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
timeOfUseTypePEAK
timeOfUseTypeOFF_PEAK
timeOfUseTypeOFF_PEAK_DEMAND_CHARGE
timeOfUseTypeSHOULDER
timeOfUseTypeSHOULDER1
timeOfUseTypeSHOULDER2
timeOfUseTypeCONTROLLED_LOAD
timeOfUseTypeSOLAR
timeOfUseTypeAGGREGATE
timeOfUseTypeALL_DAY
measureUnitKWH
measureUnitKVA
measureUnitKVAR
measureUnitKVARH
measureUnitKW
measureUnitDAYS
measureUnitMETER
measureUnitMONTH
typeDLF
typeMLF
+ +

EnergyBillingDemandTransactionV2

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "timeOfUseType": "PEAK",
+  "description": "string",
+  "isEstimate": true,
+  "startDate": "string",
+  "endDate": "string",
+  "rate": 0,
+  "amount": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
timeOfUseTypeEnummandatoryThe time of use type that the transaction applies to
descriptionstringoptionalOptional description of the transaction that can be used for display purposes
isEstimatebooleanoptionalFlag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual
startDateDateTimeStringmandatoryDate and time when the demand period starts
endDateDateTimeStringmandatoryDate and time when the demand period ends
ratenumbermandatoryThe rate for the demand charge in kVA. A negative value indicates power generated
amountAmountStringmandatoryThe amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
timeOfUseTypePEAK
timeOfUseTypeOFF_PEAK
timeOfUseTypeOFF_PEAK_DEMAND_CHARGE
timeOfUseTypeSHOULDER
timeOfUseTypeSHOULDER1
timeOfUseTypeSHOULDER2
timeOfUseTypeCONTROLLED_LOAD
timeOfUseTypeSOLAR
timeOfUseTypeAGGREGATE
timeOfUseTypeALL_DAY
timeOfUseTypeEXCESS
typeDLF
typeMLF
+ +

EnergyBillingOnceOffTransaction

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "amount": "string",
+  "description": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
amountAmountStringmandatoryThe amount of the charge or credit. A positive value indicates a charge and a negative value indicates a credit
descriptionstringmandatoryA free text description of the item
+ +

EnergyBillingOtherTransaction

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "startDate": "string",
+  "endDate": "string",
+  "type": "ENVIRONMENTAL",
+  "amount": "string",
+  "description": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
startDateDateStringoptionalOptional start date for the application of the charge
endDateDateStringoptionalOptional end date for the application of the charge
typeEnumoptionalType of charge. Assumed to be other if absent
amountAmountStringmandatoryThe amount of the charge
descriptionstringmandatoryA free text description of the item
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
typeENVIRONMENTAL
typeREGULATED
typeNETWORK
typeMETERING
typeRETAIL_SERVICE
typeRCTI
typeOTHER
typeDLF
typeMLF
+ +

EnergyBillingPaymentTransaction

+ +

+
{
+  "amount": "string",
+  "method": "DIRECT_DEBIT"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
amountAmountStringmandatoryThe amount paid
methodEnummandatoryThe method of payment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
methodDIRECT_DEBIT
methodCARD
methodTRANSFER
methodBPAY
methodCASH
methodCHEQUE
methodOTHER
+ +

RequestAccountIdList

+ +

+
{
+  "data": {
+    "accountIds": [
+      "string"
+    ]
+  },
+  "meta": {}
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
dataobjectmandatorynone
» accountIds[string]mandatoryArray of specific accountIds to obtain data for
metaMetaoptionalnone
+ +

LinksPaginated

+ +

+
{
+  "self": "string",
+  "first": "string",
+  "prev": "string",
+  "next": "string",
+  "last": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
selfURIStringmandatoryFully qualified link that generated the current response document
firstURIStringconditionalURI to the first page of this set. Mandatory if this response is not the first page
prevURIStringconditionalURI to the previous page of this set. Mandatory if this response is not the first page
nextURIStringconditionalURI to the next page of this set. Mandatory if this response is not the last page
lastURIStringconditionalURI to the last page of this set. Mandatory if this response is not the last page
+ +

MetaPaginated

+ +

+
{
+  "totalRecords": 0,
+  "totalPages": 0
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
totalRecordsNaturalNumbermandatoryThe total number of records in the full set. See pagination.
totalPagesNaturalNumbermandatoryThe total number of pages in the full set. See pagination.
+ +
+
+
+ + +
+
+
+ + diff --git a/docs/includes/obsolete/get-bulk-balances-v1.html b/docs/includes/obsolete/get-bulk-balances-v1.html index 01699674..beb5834f 100644 --- a/docs/includes/obsolete/get-bulk-balances-v1.html +++ b/docs/includes/obsolete/get-bulk-balances-v1.html @@ -8,7 +8,7 @@ Get Bulk Balances v1 - + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Bulk Billing V2

+

This page documents version 2 of the Get Bulk Billing end point.

+ +
    +
  • Data Holders MAY retire this version on September 9th 2024 if they implement v3.
  • +
+

Get Bulk Billing

+

+ +
+

Code samples

+
+
GET /energy/accounts/billing HTTP/1.1
+
+Accept: application/json
+x-v: string
+x-min-v: string
+x-fapi-interaction-id: string
+x-fapi-auth-date: string
+x-fapi-customer-ip-address: string
+x-cds-client-headers: string
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string',
+  'x-fapi-interaction-id':'string',
+  'x-fapi-auth-date':'string',
+  'x-fapi-customer-ip-address':'string',
+  'x-cds-client-headers':'string'
+
+};
+
+fetch('/energy/accounts/billing',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+

GET /energy/accounts/billing

+ +

Obtain billing transactions for all accounts

+ +

Other Versions: v1

+

Endpoint Version

+ + + + + + + + + + +
Version2
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
newest-timequeryDateTimeStringoptionalConstrain 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
oldest-timequeryDateTimeStringoptionalConstrain 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
pagequeryPositiveIntegeroptionalPage of results to request (standard pagination)
page-sizequeryPositiveIntegeroptionalPage size to request. Default is 25 (standard pagination)
x-vheaderstringmandatoryVersion 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 and x-v. If the value of x-min-v is equal to or higher than the value of x-v then the x-min-v 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
x-min-vheaderstringoptionalMinimum 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 and x-v. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.
x-fapi-interaction-idheaderstringoptionalAn [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.
x-fapi-auth-dateheaderstringconditionalThe time when the customer last logged in to the Data Recipient Software Product as described in [FAPI-1.0-Baseline]. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
x-fapi-customer-ip-addressheaderstringoptionalThe 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.
x-cds-client-headersheaderBase64conditionalThe customer's original standard http headers Base64 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.
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "transactions": [
+      {
+        "accountId": "string",
+        "executionDateTime": "string",
+        "gst": "string",
+        "transactionUType": "usage",
+        "usage": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "measureUnit": "KWH",
+          "usage": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "demand": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "rate": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "onceOff": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "amount": "string",
+          "description": "string"
+        },
+        "otherCharges": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "startDate": "string",
+          "endDate": "string",
+          "type": "ENVIRONMENTAL",
+          "amount": "string",
+          "description": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "payment": {
+          "amount": "string",
+          "method": "DIRECT_DEBIT"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessful responseEnergyBillingListResponseV2
400Bad RequestThe following error codes MUST be supported:
ResponseErrorListV2
406Not AcceptableThe following error codes MUST be supported:
ResponseErrorListV2
422Unprocessable EntityThe following error codes MUST be supported:
ResponseErrorListV2
+

Response Headers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
200x-fapi-interaction-idstringAn [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.
400x-fapi-interaction-idstringAn [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.
406x-fapi-interaction-idstringAn [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.
422x-fapi-interaction-idstringAn [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.
+ +

+ +

Schemas

+ +

+ +

EnergyBillingListResponseV2

+ +

+
{
+  "data": {
+    "transactions": [
+      {
+        "accountId": "string",
+        "executionDateTime": "string",
+        "gst": "string",
+        "transactionUType": "usage",
+        "usage": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "measureUnit": "KWH",
+          "usage": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "demand": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "timeOfUseType": "PEAK",
+          "description": "string",
+          "isEstimate": true,
+          "startDate": "string",
+          "endDate": "string",
+          "rate": 0,
+          "amount": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "onceOff": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "amount": "string",
+          "description": "string"
+        },
+        "otherCharges": {
+          "servicePointId": "string",
+          "invoiceNumber": "string",
+          "startDate": "string",
+          "endDate": "string",
+          "type": "ENVIRONMENTAL",
+          "amount": "string",
+          "description": "string",
+          "calculationFactors": [
+            {
+              "value": 0,
+              "type": "DLF"
+            }
+          ],
+          "adjustments": [
+            {
+              "amount": "string",
+              "description": "string"
+            }
+          ]
+        },
+        "payment": {
+          "amount": "string",
+          "method": "DIRECT_DEBIT"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
dataobjectmandatorynone
» transactions[EnergyBillingTransactionV2]mandatoryArray of transactions sorted by date and time in descending order
linksLinksPaginatedmandatorynone
metaMetaPaginatedmandatorynone
+ +

ResponseErrorListV2

+ +

+
{
+  "errors": [
+    {
+      "code": "string",
+      "title": "string",
+      "detail": "string",
+      "meta": {
+        "urn": "string"
+      }
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
errors[object]mandatorynone
» codestringmandatoryThe code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.
» titlestringmandatoryA short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.
» detailstringmandatoryA human-readable explanation specific to this occurrence of the problem.
» metaobjectoptionalAdditional data for customised error codes
»» urnstringconditionalThe CDR error code URN which the application-specific error code extends. Mandatory if the error code is an application-specific error rather than a standardised error code.
+ +

EnergyBillingTransactionV2

+ +

+
{
+  "accountId": "string",
+  "executionDateTime": "string",
+  "gst": "string",
+  "transactionUType": "usage",
+  "usage": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "timeOfUseType": "PEAK",
+    "description": "string",
+    "isEstimate": true,
+    "startDate": "string",
+    "endDate": "string",
+    "measureUnit": "KWH",
+    "usage": 0,
+    "amount": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "demand": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "timeOfUseType": "PEAK",
+    "description": "string",
+    "isEstimate": true,
+    "startDate": "string",
+    "endDate": "string",
+    "rate": 0,
+    "amount": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "onceOff": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "amount": "string",
+    "description": "string"
+  },
+  "otherCharges": {
+    "servicePointId": "string",
+    "invoiceNumber": "string",
+    "startDate": "string",
+    "endDate": "string",
+    "type": "ENVIRONMENTAL",
+    "amount": "string",
+    "description": "string",
+    "calculationFactors": [
+      {
+        "value": 0,
+        "type": "DLF"
+      }
+    ],
+    "adjustments": [
+      {
+        "amount": "string",
+        "description": "string"
+      }
+    ]
+  },
+  "payment": {
+    "amount": "string",
+    "method": "DIRECT_DEBIT"
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
accountIdstringmandatoryThe ID of the account for which transaction applies
executionDateTimeDateTimeStringmandatoryThe date and time that the transaction occurred
gstAmountStringoptionalThe GST incurred in the transaction. Should not be included for credits or payments. If absent zero is assumed
transactionUTypeEnummandatoryIndicator of the type of transaction object present in this record
usageEnergyBillingUsageTransactionV2conditionalRepresents a usage charge or generation credit. Mandatory if transactionUType is equal to usage
demandEnergyBillingDemandTransactionV2optionalRepresents a demand charge or generation credit. Mandatory if transactionUType is equal to demand
onceOffEnergyBillingOnceOffTransactionconditionalRepresents a once off charge or credit. Mandatory if transactionUType is equal to onceOff
otherChargesEnergyBillingOtherTransactionoptionalRepresents charge other than usage and once off. Mandatory if transactionUType is equal to otherCharge
paymentEnergyBillingPaymentTransactionconditionalRepresents a payment to the account. Mandatory if transactionUType is equal to payment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
transactionUTypeusage
transactionUTypedemand
transactionUTypeonceOff
transactionUTypeotherCharges
transactionUTypepayment
+ +

EnergyBillingUsageTransactionV2

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "timeOfUseType": "PEAK",
+  "description": "string",
+  "isEstimate": true,
+  "startDate": "string",
+  "endDate": "string",
+  "measureUnit": "KWH",
+  "usage": 0,
+  "amount": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
timeOfUseTypeEnummandatoryThe time of use type that the transaction applies to
descriptionstringoptionalOptional description of the transaction that can be used for display purposes
isEstimatebooleanoptionalFlag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual
startDateDateTimeStringmandatoryDate and time when the usage period starts
endDateDateTimeStringmandatoryDate and time when the usage period ends
measureUnitEnumoptionalThe measurement unit of rate. Assumed to be KWH if absent
usagenumbermandatoryThe usage for the period in measure unit. A negative value indicates power generated
amountAmountStringmandatoryThe amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
timeOfUseTypePEAK
timeOfUseTypeOFF_PEAK
timeOfUseTypeOFF_PEAK_DEMAND_CHARGE
timeOfUseTypeSHOULDER
timeOfUseTypeSHOULDER1
timeOfUseTypeSHOULDER2
timeOfUseTypeCONTROLLED_LOAD
timeOfUseTypeSOLAR
timeOfUseTypeAGGREGATE
timeOfUseTypeALL_DAY
measureUnitKWH
measureUnitKVA
measureUnitKVAR
measureUnitKVARH
measureUnitKW
measureUnitDAYS
measureUnitMETER
measureUnitMONTH
typeDLF
typeMLF
+ +

EnergyBillingDemandTransactionV2

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "timeOfUseType": "PEAK",
+  "description": "string",
+  "isEstimate": true,
+  "startDate": "string",
+  "endDate": "string",
+  "rate": 0,
+  "amount": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
timeOfUseTypeEnummandatoryThe time of use type that the transaction applies to
descriptionstringoptionalOptional description of the transaction that can be used for display purposes
isEstimatebooleanoptionalFlag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual
startDateDateTimeStringmandatoryDate and time when the demand period starts
endDateDateTimeStringmandatoryDate and time when the demand period ends
ratenumbermandatoryThe rate for the demand charge in kVA. A negative value indicates power generated
amountAmountStringmandatoryThe amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
timeOfUseTypePEAK
timeOfUseTypeOFF_PEAK
timeOfUseTypeOFF_PEAK_DEMAND_CHARGE
timeOfUseTypeSHOULDER
timeOfUseTypeSHOULDER1
timeOfUseTypeSHOULDER2
timeOfUseTypeCONTROLLED_LOAD
timeOfUseTypeSOLAR
timeOfUseTypeAGGREGATE
timeOfUseTypeALL_DAY
timeOfUseTypeEXCESS
typeDLF
typeMLF
+ +

EnergyBillingOnceOffTransaction

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "amount": "string",
+  "description": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
amountAmountStringmandatoryThe amount of the charge or credit. A positive value indicates a charge and a negative value indicates a credit
descriptionstringmandatoryA free text description of the item
+ +

EnergyBillingOtherTransaction

+ +

+
{
+  "servicePointId": "string",
+  "invoiceNumber": "string",
+  "startDate": "string",
+  "endDate": "string",
+  "type": "ENVIRONMENTAL",
+  "amount": "string",
+  "description": "string",
+  "calculationFactors": [
+    {
+      "value": 0,
+      "type": "DLF"
+    }
+  ],
+  "adjustments": [
+    {
+      "amount": "string",
+      "description": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
servicePointIdstringoptionalThe ID of the service point to which this transaction applies if any
invoiceNumberstringoptionalThe number of the invoice in which this transaction is included if it has been issued
startDateDateStringoptionalOptional start date for the application of the charge
endDateDateStringoptionalOptional end date for the application of the charge
typeEnumoptionalType of charge. Assumed to be other if absent
amountAmountStringmandatoryThe amount of the charge
descriptionstringmandatoryA free text description of the item
calculationFactors[object]optionalAdditional calculation factors that inform the transaction
» valuenumbermandatoryThe value of the calculation factor
» typeEnummandatoryThe type of the calculation factor
adjustments[object]optionalOptional array of adjustments arising for this transaction
» amountAmountStringmandatoryThe amount of the adjustment
» descriptionstringmandatoryA free text description of the adjustment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
typeENVIRONMENTAL
typeREGULATED
typeNETWORK
typeMETERING
typeRETAIL_SERVICE
typeRCTI
typeOTHER
typeDLF
typeMLF
+ +

EnergyBillingPaymentTransaction

+ +

+
{
+  "amount": "string",
+  "method": "DIRECT_DEBIT"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
amountAmountStringmandatoryThe amount paid
methodEnummandatoryThe method of payment
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
methodDIRECT_DEBIT
methodCARD
methodTRANSFER
methodBPAY
methodCASH
methodCHEQUE
methodOTHER
+ +

LinksPaginated

+ +

+
{
+  "self": "string",
+  "first": "string",
+  "prev": "string",
+  "next": "string",
+  "last": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
selfURIStringmandatoryFully qualified link that generated the current response document
firstURIStringconditionalURI to the first page of this set. Mandatory if this response is not the first page
prevURIStringconditionalURI to the previous page of this set. Mandatory if this response is not the first page
nextURIStringconditionalURI to the next page of this set. Mandatory if this response is not the last page
lastURIStringconditionalURI to the last page of this set. Mandatory if this response is not the last page
+ +

MetaPaginated

+ +

+
{
+  "totalRecords": 0,
+  "totalPages": 0
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
totalRecordsNaturalNumbermandatoryThe total number of records in the full set. See pagination.
totalPagesNaturalNumbermandatoryThe total number of pages in the full set. See pagination.
+ +
+
+
+ + +
+
+
+ + diff --git a/docs/includes/obsolete/get-bulk-direct-debits-v1.html b/docs/includes/obsolete/get-bulk-direct-debits-v1.html index d42bf21b..82ea8646 100644 --- a/docs/includes/obsolete/get-bulk-direct-debits-v1.html +++ b/docs/includes/obsolete/get-bulk-direct-debits-v1.html @@ -8,7 +8,7 @@ Get Bulk Direct Debits v1 - + + + + + + + + + + NAV + Navbar + + + +
+
+

V1.29.0 Release Notes

+

Release notes for version v1.29.0 of the CDR Standards.

+

Changes Made

Change Requests

+

This release addresses the following minor defects raised on Standards Staging:

+ + + +

This release addresses the following change requests raised on Standards Maintenance:

+ + +

Decision Proposals

+

This release addresses the following Decision Proposals published on Standards:

+ + +

General Changes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Navigation linksStandards Staging #222: Updated anchor links throughout the Standards to remove duplicates, and updated menu navigation code to prevent the page from jumping to the previous section when opening in a new window.Most navigation links
Documentation correctionStandards Staging #312: Minor typos in table headingsChange Log, Archives
Standards category ribbonStandards Staging #334: Added a red ribbon below the CDS logo on different Standards versions to visually distinguish them from the binding versionDraft, Candidate, Staging, Archived, and superseded endpoint version pages
CX navigation linksStandards Staging #338: Included subheadings in Consumer Experience navigation for two sectionsConsumer Experience
Common Field Types in arraysStandards Staging #348: Properties defined in response schemas with specific 'Common Field Types' values inside arrays should show the specific type instead of a generic typeResponse Properties tables
Enum property typeStandards Staging #349: Request parameters defined with enumerated values will now show the type as 'Enum' instead of 'string'Request Parameters tables
+

Introduction

+ + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Obligation Date ReferenceStandards Maintenance #612 Added a reference to the Obligation Date ScheduleFuture Dated Obligations
Updated DSB LinkStandards Maintenance #612 Updated the reference to information on the DSBIntroduction
Normative Ref UpdateStandards Maintenance #612 Add reference to RFC7636 to the entry for PKCENormative References
+

High Level Standards

+ + + + + + + + + + + + +
ChangeDescriptionLink
Number ClarificationStandards Maintenance #612 Clarified that a number can be integer or decimalCommon Field Types
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Measure Unit in EnergyBillingDemandTransactionStandards Maintenance #587: Added new field measureUnit in EnergyBillingDemandTransaction. Incremented versions of Get Billing for Account, Get Billing for Specific Account and Get Bulk Billing endpointsEnergy APIs
Change time field typeStandards Maintenance #613: Change the type of time fields in energy plan data to ExternalRef referring to ISO 8601 Times specification.Energy APIs
Register API NamesStandards Maintenance #612 Minor changes to the names of the Register APIs in the summary tableRegister APIs
Term Deposit Account TypesStandards Maintenance #612 Added additional additionalValue field explanations for term deposit account typesProduct Deposit Rate Types
Corrected Field ReferencesStandards Maintenance #612 Modified references to three incorrect field labels (tierMinimumValue, tierMaximumValue, tierUnitOfMeasure) in the property descriptions of BankingProductRateTierV3BankingProductRateTierV3
+

Information Security Profile

+ + + + + + + + + + + + +
ChangeDescriptionLink
Updated ExampleStandards Maintenance #288 Added redirect_uri to the Client authentication example in the non-normative examplesClient Authentication
+

Register Standards

+ + + + + + + + + + + + +
ChangeDescriptionLink
Field ClarificationStandards Maintenance #620 Changed authorization_signed_response_alg and authorization_encrypted_response_alg from optional to conditional to align to the field descriptionClient Registration
+

Consumer Experience

+ + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Dashboard StandardsDecision Proposal #334: Added Dashboard Standards section to include detail for Data Holder DashboardsDashboard Standards
Business Consumer ProvisionsDecision Proposal #333: Updated requirements for Business consumer statements and Business consumer disclosure consentsConsent Standards
New Guidelines LinkStandards Maintenance #612 Updated the CX Guidelines link to the new siteConsumer Experience
+

Non-Functional Requirements

+

None

+

Additional Standards

+ + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Non-Bank Lending Candidate StandardsDecision Proposal #318: The Draft Non-Bank Lending Standards have been made as Candidate Standards. No other changes were made between the Draft and Candidate version.Additional Standards
Version DeltaNo changes were made to the Candidate Standards for Banking Decision Proposal 306 in this release, but the Version Delta notes in that Candidate have been retained from version 1.28.0 for reference.Additional Standards
+

Known Issues

+

None

+ +
+
+ + diff --git a/docs/includes/swagger/cds_admin.json b/docs/includes/swagger/cds_admin.json index 073cde4e..5982f373 100644 --- a/docs/includes/swagger/cds_admin.json +++ b/docs/includes/swagger/cds_admin.json @@ -12,7 +12,7 @@ "url" : "https://opensource.org/licenses/MIT" }, "title" : "CDR Admin API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/cds-au/v1" @@ -400,7 +400,7 @@ "type" : "object" }, "ErrorMetricsV2" : { - "description" : "Number of calls resulting in error due to server execution over time", + "description" : "Number of calls resulting in error, over time", "properties" : { "aggregate" : { "$ref" : "#/components/schemas/ErrorMetricsV2_aggregate" @@ -1333,7 +1333,7 @@ "x-conditional" : [ "currentDay", "previousDays" ] }, "ErrorMetricsV2_unauthenticated" : { - "description" : "Number of calls resulting in error due to server execution over time for unauthenticated endpoints", + "description" : "Number of calls resulting in error for unauthenticated endpoints", "properties" : { "currentDay" : { "additionalProperties" : { @@ -1375,7 +1375,7 @@ "x-conditional" : [ "currentDay", "previousDays" ] }, "ErrorMetricsV2_authenticated" : { - "description" : "Number of calls resulting in error due to server execution over time for authenticated endpoints", + "description" : "Number of calls resulting in error for authenticated endpoints", "properties" : { "currentDay" : { "additionalProperties" : { diff --git a/docs/includes/swagger/cds_admin.yaml b/docs/includes/swagger/cds_admin.yaml index 0c723711..c36c4871 100644 --- a/docs/includes/swagger/cds_admin.yaml +++ b/docs/includes/swagger/cds_admin.yaml @@ -11,7 +11,7 @@ info: name: MIT License url: https://opensource.org/licenses/MIT title: CDR Admin API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/cds-au/v1 paths: @@ -983,8 +983,7 @@ components: - unauthenticated type: object ErrorMetricsV2: - description: Number of calls resulting in error due to server execution over - time + description: Number of calls resulting in error, over time example: authenticated: previousDays: @@ -2706,8 +2705,7 @@ components: - currentDay - previousDays ErrorMetricsV2_unauthenticated: - description: Number of calls resulting in error due to server execution over - time for unauthenticated endpoints + description: Number of calls resulting in error for unauthenticated endpoints example: previousDays: - key: 3 @@ -2760,8 +2758,7 @@ components: - currentDay - previousDays ErrorMetricsV2_authenticated: - description: Number of calls resulting in error due to server execution over - time for authenticated endpoints + description: Number of calls resulting in error for authenticated endpoints example: previousDays: - key: 5 diff --git a/docs/includes/swagger/cds_banking.json b/docs/includes/swagger/cds_banking.json index 9a1bd82d..6f08a2d7 100644 --- a/docs/includes/swagger/cds_banking.json +++ b/docs/includes/swagger/cds_banking.json @@ -12,7 +12,7 @@ "url" : "https://opensource.org/licenses/MIT" }, "title" : "CDR Banking API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/cds-au/v1" @@ -4254,17 +4254,17 @@ "type" : "string" }, "unitOfMeasure" : { - "description" : "The unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. a **DOLLAR** amount. **PERCENT** (in the case of loan-to-value ratio or LVR). Tier term period representing a discrete number of **MONTH**'s or **DAY**'s (in the case of term deposit tiers)", + "description" : "The unit of measure that applies to the minimumValue and maximumValue values e.g. a **DOLLAR** amount. **PERCENT** (in the case of loan-to-value ratio or LVR). Tier term period representing a discrete number of **MONTH**'s or **DAY**'s (in the case of term deposit tiers)", "enum" : [ "DAY", "DOLLAR", "MONTH", "PERCENT" ], "type" : "string" }, "minimumValue" : { - "description" : "The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value", + "description" : "The number of unitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value", "type" : "number", "x-cds-type" : "Number" }, "maximumValue" : { - "description" : "The number of tierUnitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as tierValueMinimum. Where this is the same as the tierValueMinimum value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound.", + "description" : "The number of unitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as minimumValue. Where this is the same as the minimumValue value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound.", "type" : "number", "x-cds-type" : "Number" }, diff --git a/docs/includes/swagger/cds_banking.yaml b/docs/includes/swagger/cds_banking.yaml index 94257ffe..34955b36 100644 --- a/docs/includes/swagger/cds_banking.yaml +++ b/docs/includes/swagger/cds_banking.yaml @@ -11,7 +11,7 @@ info: name: MIT License url: https://opensource.org/licenses/MIT title: CDR Banking API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/cds-au/v1 paths: @@ -4694,10 +4694,10 @@ components: description: A display name for the tier type: string unitOfMeasure: - description: The unit of measure that applies to the tierValueMinimum and - tierValueMaximum values e.g. a **DOLLAR** amount. **PERCENT** (in the - case of loan-to-value ratio or LVR). Tier term period representing a discrete - number of **MONTH**'s or **DAY**'s (in the case of term deposit tiers) + description: The unit of measure that applies to the minimumValue and maximumValue + values e.g. a **DOLLAR** amount. **PERCENT** (in the case of loan-to-value + ratio or LVR). Tier term period representing a discrete number of **MONTH**'s + or **DAY**'s (in the case of term deposit tiers) enum: - DAY - DOLLAR @@ -4705,19 +4705,19 @@ components: - PERCENT type: string minimumValue: - description: The number of tierUnitOfMeasure units that form the lower bound + description: The number of unitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value type: number x-cds-type: Number maximumValue: - description: 'The number of tierUnitOfMeasure units that form the upper - bound of the tier or band. For a tier with a discrete value (as opposed - to a range of values e.g. 1 month) this must be the same as tierValueMinimum. - Where this is the same as the tierValueMinimum value of the next-higher - tier the referenced tier should be exclusive of this value. For example - a term deposit of 2 months falls into the upper tier of the following - tiers: (1 – 2 months, 2 – 3 months). If absent the tier''s range has no - upper bound.' + description: 'The number of unitOfMeasure units that form the upper bound + of the tier or band. For a tier with a discrete value (as opposed to a + range of values e.g. 1 month) this must be the same as minimumValue. Where + this is the same as the minimumValue value of the next-higher tier the + referenced tier should be exclusive of this value. For example a term + deposit of 2 months falls into the upper tier of the following tiers: + (1 – 2 months, 2 – 3 months). If absent the tier''s range has no upper + bound.' type: number x-cds-type: Number rateApplicationMethod: diff --git a/docs/includes/swagger/cds_banking_dp306.json b/docs/includes/swagger/cds_banking_dp306.json index 73144d9f..e2d9c7e7 100644 --- a/docs/includes/swagger/cds_banking_dp306.json +++ b/docs/includes/swagger/cds_banking_dp306.json @@ -12,7 +12,7 @@ "url" : "https://opensource.org/licenses/MIT" }, "title" : "CDR Banking API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/cds-au/v1" diff --git a/docs/includes/swagger/cds_banking_dp306.yaml b/docs/includes/swagger/cds_banking_dp306.yaml index c2d3cfd2..9836e82d 100644 --- a/docs/includes/swagger/cds_banking_dp306.yaml +++ b/docs/includes/swagger/cds_banking_dp306.yaml @@ -11,7 +11,7 @@ info: name: MIT License url: https://opensource.org/licenses/MIT title: CDR Banking API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/cds-au/v1 paths: diff --git a/docs/includes/swagger/cds_banking_non_bank_lending.json b/docs/includes/swagger/cds_banking_non_bank_lending.json index c9ad4a1d..5c592935 100644 --- a/docs/includes/swagger/cds_banking_non_bank_lending.json +++ b/docs/includes/swagger/cds_banking_non_bank_lending.json @@ -12,7 +12,7 @@ "url" : "https://opensource.org/licenses/MIT" }, "title" : "CDR Banking API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/cds-au/v1" diff --git a/docs/includes/swagger/cds_banking_non_bank_lending.yaml b/docs/includes/swagger/cds_banking_non_bank_lending.yaml index 79219b36..2c684b3c 100644 --- a/docs/includes/swagger/cds_banking_non_bank_lending.yaml +++ b/docs/includes/swagger/cds_banking_non_bank_lending.yaml @@ -11,7 +11,7 @@ info: name: MIT License url: https://opensource.org/licenses/MIT title: CDR Banking API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/cds-au/v1 paths: diff --git a/docs/includes/swagger/cds_common.json b/docs/includes/swagger/cds_common.json index b39d1dc5..7119c5ba 100644 --- a/docs/includes/swagger/cds_common.json +++ b/docs/includes/swagger/cds_common.json @@ -12,7 +12,7 @@ "url" : "https://opensource.org/licenses/MIT" }, "title" : "CDR Common API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/cds-au/v1" @@ -20,7 +20,7 @@ "paths" : { "/common/customer" : { "get" : { - "description" : "Obtain basic information on the customer that has authorised the current session\n\n### Conventions\nIn the customer payloads relevant conventions are explained here, in one place.\n\n#### Given Names\n\n`firstName` represents the first of a person's given names.\n\n`middleNames` represents a collection of given names if the person has more than one given name.\n\nWhere a data holder holds a person's given names as a single string in source systems, it may not possible in some situations to reliably split these given names into their component first and middle names. In these situations, data holders MAY use the `firstName` field to return the single string of given names and an empty `middleNames` array.\n\nFor example, a person whose given names are \"John Paul Winston\" but the data holder cannot determine what is the first name, can return `\"firstName\": \"John Paul Winston\"`.", + "description" : "Obtain basic information on the customer that has authorised the current session\n\n

Conventions

\nIn the customer payloads relevant conventions are explained here, in one place.\n\n#### Given Names\n\n`firstName` represents the first of a person's given names.\n\n`middleNames` represents a collection of given names if the person has more than one given name.\n\nWhere a data holder holds a person's given names as a single string in source systems, it may not possible in some situations to reliably split these given names into their component first and middle names. In these situations, data holders MAY use the `firstName` field to return the single string of given names and an empty `middleNames` array.\n\nFor example, a person whose given names are \"John Paul Winston\" but the data holder cannot determine what is the first name, can return `\"firstName\": \"John Paul Winston\"`.", "operationId" : "getCustomer", "parameters" : [ { "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)", diff --git a/docs/includes/swagger/cds_common.yaml b/docs/includes/swagger/cds_common.yaml index 7bc49911..281de100 100644 --- a/docs/includes/swagger/cds_common.yaml +++ b/docs/includes/swagger/cds_common.yaml @@ -11,7 +11,7 @@ info: name: MIT License url: https://opensource.org/licenses/MIT title: CDR Common API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/cds-au/v1 paths: @@ -20,7 +20,7 @@ paths: description: |- Obtain basic information on the customer that has authorised the current session - ### Conventions +

Conventions

In the customer payloads relevant conventions are explained here, in one place. #### Given Names diff --git a/docs/includes/swagger/cds_dcr.json b/docs/includes/swagger/cds_dcr.json index b210a359..3d371b0b 100644 --- a/docs/includes/swagger/cds_dcr.json +++ b/docs/includes/swagger/cds_dcr.json @@ -3,7 +3,7 @@ "info" : { "description" : "This specification defines the APIs for Data Holders exposing Dynamic Client Registration endpoints.", "title" : "CDR Dynamic Client Registration API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/" @@ -517,7 +517,7 @@ }, "required" : [ "client_description", "client_id", "client_name", "client_uri", "grant_types", "id_token_signed_response_alg", "jwks_uri", "logo_uri", "org_id", "org_name", "redirect_uris", "request_object_signing_alg", "response_types", "scope", "software_id", "software_statement", "token_endpoint_auth_method", "token_endpoint_auth_signing_alg" ], "type" : "object", - "x-conditional" : [ "id_token_encrypted_response_alg", "id_token_encrypted_response_enc" ] + "x-conditional" : [ "id_token_encrypted_response_alg", "id_token_encrypted_response_enc", "authorization_signed_response_alg", "authorization_encrypted_response_alg" ] }, "ClientRegistration" : { "allOf" : [ { diff --git a/docs/includes/swagger/cds_dcr.yaml b/docs/includes/swagger/cds_dcr.yaml index a5e69c94..16b17d1d 100644 --- a/docs/includes/swagger/cds_dcr.yaml +++ b/docs/includes/swagger/cds_dcr.yaml @@ -3,7 +3,7 @@ info: description: This specification defines the APIs for Data Holders exposing Dynamic Client Registration endpoints. title: CDR Dynamic Client Registration API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/ paths: @@ -541,6 +541,8 @@ components: x-conditional: - id_token_encrypted_response_alg - id_token_encrypted_response_enc + - authorization_signed_response_alg + - authorization_encrypted_response_alg ClientRegistration: allOf: - $ref: '#/components/schemas/ClientRegistration_allOf' diff --git a/docs/includes/swagger/cds_energy.json b/docs/includes/swagger/cds_energy.json index 11984b91..5da8affe 100644 --- a/docs/includes/swagger/cds_energy.json +++ b/docs/includes/swagger/cds_energy.json @@ -3,7 +3,7 @@ "info" : { "description" : "Consumer Data Right end points and payloads for the Energy sector", "title" : "CDR Energy API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "/" @@ -3816,7 +3816,7 @@ }, "/energy/accounts/{accountId}/billing" : { "get" : { - "description" : "Obtain the billing transactions for a specific account\n\nOther Versions: [v1](includes/obsolete/get-billing-for-account-v1.html)", + "description" : "Obtain the billing transactions for a specific account\n\nDeprecated Versions: \n\n- [v1](includes/obsolete/get-billing-for-account-v1.html) - This version is to be ceased to be called by data recipients by September 9th 2024 and **MAY** be decommissioned by data holders as of that date \n- [v2](includes/obsolete/get-billing-for-account-v2.html) - This version **MAY** be retired by September 9th 2024 if v3 is implemented.", "operationId" : "getBillingForAccount", "parameters" : [ { "description" : "ID of a specific account to obtain data for. This is a tokenised ID previous obtained from the Account List end point.", @@ -3941,7 +3941,7 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/EnergyBillingListResponseV2" + "$ref" : "#/components/schemas/EnergyBillingListResponseV3" } } }, @@ -4049,12 +4049,12 @@ "summary" : "Get Billing For Account", "tags" : [ "Energy", "Billing" ], "x-scopes" : [ "energy:billing:read" ], - "x-version" : "2" + "x-version" : "3" } }, "/energy/accounts/billing" : { "get" : { - "description" : "Obtain billing transactions for all accounts\n\nOther Versions: [v1](includes/obsolete/get-bulk-billing-v1.html)", + "description" : "Obtain billing transactions for all accounts\n\nDeprecated Versions: \n\n- [v1](includes/obsolete/get-bulk-billing-v1.html) - This version is to be ceased to be called by data recipients by September 9th 2024 and **MAY** be decommissioned by data holders as of that date \n- [v2](includes/obsolete/get-bulk-billing-v2.html) - This version **MAY** be retired by September 9th 2024 if v3 is implemented.", "operationId" : "listBillingBulk", "parameters" : [ { "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", @@ -4169,7 +4169,7 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/EnergyBillingListResponseV2" + "$ref" : "#/components/schemas/EnergyBillingListResponseV3" } } }, @@ -4260,7 +4260,7 @@ "x-version" : "2" }, "post" : { - "description" : "Obtain billing for a specified set of accounts\n\nOther Versions: [v1](includes/obsolete/get-billing-for-specific-accounts-v1.html)", + "description" : "Obtain billing for a specified set of accounts\n\nDeprecated Versions: \n\n- [v1](includes/obsolete/get-billing-for-specific-accounts-v1.html) - This version is to be ceased to be called by data recipients by September 9th 2024 and **MAY** be decommissioned by data holders as of that date \n- [v2](includes/obsolete/get-billing-for-specific-accounts-v2.html) - This version **MAY** be retired by September 9th 2024 if v3 is implemented.", "operationId" : "listBillingForAccounts", "parameters" : [ { "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", @@ -4386,7 +4386,7 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/EnergyBillingListResponseV2" + "$ref" : "#/components/schemas/EnergyBillingListResponseV3" } } }, @@ -5075,7 +5075,7 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/EnergyBillingListResponseV2" + "$ref" : "#/components/schemas/EnergyBillingListResponseV3" } } }, @@ -5311,10 +5311,10 @@ "required" : [ "data", "links", "meta" ], "type" : "object" }, - "EnergyBillingListResponseV2" : { + "EnergyBillingListResponseV3" : { "properties" : { "data" : { - "$ref" : "#/components/schemas/EnergyBillingListResponseV2_data" + "$ref" : "#/components/schemas/EnergyBillingListResponseV3_data" }, "links" : { "$ref" : "#/components/schemas/LinksPaginated" @@ -5611,14 +5611,14 @@ "type" : "array" }, "startTime" : { - "description" : "The beginning of the time period per day for which the controlled load rate applies. Required if endTime provided", + "description" : "The beginning of the time period per day for which the controlled load rate applies. Required if endTime provided.\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" }, "endTime" : { - "description" : "The end of the time period per day for which the controlled load rate applies. Required if startTime provided", + "description" : "The end of the time period per day for which the controlled load rate applies. Required if startTime provided.\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" }, "additionalInfo" : { "description" : "Display text providing more information on the contrlled load, for e.g. controlled load availability if specific day/time is not known. Required if startTime and endTime absent or if additionalInfoUri provided", @@ -5997,14 +5997,14 @@ "type" : "array" }, "startTime" : { - "description" : "The beginning of the time period per day for which the tariff applies. If absent assumes start of day (ie. midnight)", + "description" : "The beginning of the time period per day for which the tariff applies. If absent assumes start of day (ie. midnight).\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" }, "endTime" : { - "description" : "The end of the time period per day for which the tariff applies. If absent assumes end of day (ie. one second before midnight)", + "description" : "The end of the time period per day for which the tariff applies. If absent assumes end of day (ie. one second before midnight).\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" } }, "required" : [ "days" ], @@ -6158,14 +6158,14 @@ "type" : "array" }, "startTime" : { - "description" : "Start of the period", + "description" : "Start of the period.\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" }, "endTime" : { - "description" : "End of the period", + "description" : "End of the period.\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" } }, "required" : [ "days", "endTime", "startTime" ], @@ -6207,14 +6207,14 @@ "type" : "string" }, "startTime" : { - "description" : "Start of the period", + "description" : "Start of the period.\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" }, "endTime" : { - "description" : "End of the period", + "description" : "End of the period.\n\nFormatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone.", "type" : "string", - "x-cds-type" : "TimeString" + "x-cds-type" : "ExternalRef" }, "days" : { "description" : "The days that the demand tariff applies to", @@ -6764,7 +6764,7 @@ "required" : [ "totalCharges", "totalDiscounts" ], "type" : "object" }, - "EnergyBillingTransactionV2" : { + "EnergyBillingTransactionV3" : { "properties" : { "accountId" : { "description" : "The ID of the account for which transaction applies", @@ -6789,7 +6789,7 @@ "$ref" : "#/components/schemas/EnergyBillingUsageTransactionV2" }, "demand" : { - "$ref" : "#/components/schemas/EnergyBillingDemandTransactionV2" + "$ref" : "#/components/schemas/EnergyBillingDemandTransactionV3" }, "onceOff" : { "$ref" : "#/components/schemas/EnergyBillingOnceOffTransaction" @@ -6870,7 +6870,7 @@ "required" : [ "amount", "endDate", "startDate", "timeOfUseType", "usage" ], "type" : "object" }, - "EnergyBillingDemandTransactionV2" : { + "EnergyBillingDemandTransactionV3" : { "properties" : { "servicePointId" : { "description" : "The ID of the service point to which this transaction applies if any", @@ -6903,8 +6903,13 @@ "type" : "string", "x-cds-type" : "DateTimeString" }, + "measureUnit" : { + "description" : "The measurement unit of rate. Assumed to be KVA if absent", + "enum" : [ "KWH", "KVA", "KVAR", "KVARH", "KW", "DAYS", "METER", "MONTH" ], + "type" : "string" + }, "rate" : { - "description" : "The rate for the demand charge in kVA. A negative value indicates power generated", + "description" : "The rate for the demand charge in measureUnit. Assumed to be KVA if measureUnit not provided. A negative value indicates power generated", "type" : "number" }, "amount" : { @@ -7407,12 +7412,12 @@ "required" : [ "invoices" ], "type" : "object" }, - "EnergyBillingListResponseV2_data" : { + "EnergyBillingListResponseV3_data" : { "properties" : { "transactions" : { "description" : "Array of transactions sorted by date and time in descending order", "items" : { - "$ref" : "#/components/schemas/EnergyBillingTransactionV2" + "$ref" : "#/components/schemas/EnergyBillingTransactionV3" }, "type" : "array" } diff --git a/docs/includes/swagger/cds_energy.yaml b/docs/includes/swagger/cds_energy.yaml index 958451f2..75c564a6 100644 --- a/docs/includes/swagger/cds_energy.yaml +++ b/docs/includes/swagger/cds_energy.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: description: Consumer Data Right end points and payloads for the Energy sector title: CDR Energy API - version: 1.28.0 + version: 1.29.0 servers: - url: / paths: @@ -3825,10 +3825,12 @@ paths: x-version: "1" /energy/accounts/{accountId}/billing: get: - description: |- - Obtain the billing transactions for a specific account - - Other Versions: [v1](includes/obsolete/get-billing-for-account-v1.html) + description: "Obtain the billing transactions for a specific account\n\nDeprecated\ + \ Versions: \n\n- [v1](includes/obsolete/get-billing-for-account-v1.html)\ + \ - This version is to be ceased to be called by data recipients by September\ + \ 9th 2024 and **MAY** be decommissioned by data holders as of that date \n\ + - [v2](includes/obsolete/get-billing-for-account-v2.html) - This version **MAY**\ + \ be retired by September 9th 2024 if v3 is implemented." operationId: getBillingForAccount parameters: - description: ID of a specific account to obtain data for. This is a tokenised @@ -3958,7 +3960,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/EnergyBillingListResponseV2' + $ref: '#/components/schemas/EnergyBillingListResponseV3' description: Successful response headers: x-v: @@ -4060,13 +4062,14 @@ paths: - Billing x-scopes: - energy:billing:read - x-version: "2" + x-version: "3" /energy/accounts/billing: get: - description: |- - Obtain billing transactions for all accounts - - Other Versions: [v1](includes/obsolete/get-bulk-billing-v1.html) + description: "Obtain billing transactions for all accounts\n\nDeprecated Versions:\ + \ \n\n- [v1](includes/obsolete/get-bulk-billing-v1.html) - This version is\ + \ to be ceased to be called by data recipients by September 9th 2024 and **MAY**\ + \ be decommissioned by data holders as of that date \n- [v2](includes/obsolete/get-bulk-billing-v2.html)\ + \ - This version **MAY** be retired by September 9th 2024 if v3 is implemented." operationId: listBillingBulk parameters: - description: Constrain the request to records with effective time at or before @@ -4187,7 +4190,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/EnergyBillingListResponseV2' + $ref: '#/components/schemas/EnergyBillingListResponseV3' description: Successful response headers: x-v: @@ -4272,10 +4275,12 @@ paths: - energy:billing:read x-version: "2" post: - description: |- - Obtain billing for a specified set of accounts - - Other Versions: [v1](includes/obsolete/get-billing-for-specific-accounts-v1.html) + description: "Obtain billing for a specified set of accounts\n\nDeprecated Versions:\ + \ \n\n- [v1](includes/obsolete/get-billing-for-specific-accounts-v1.html)\ + \ - This version is to be ceased to be called by data recipients by September\ + \ 9th 2024 and **MAY** be decommissioned by data holders as of that date \n\ + - [v2](includes/obsolete/get-billing-for-specific-accounts-v2.html) - This\ + \ version **MAY** be retired by September 9th 2024 if v3 is implemented." operationId: listBillingForAccounts parameters: - description: Constrain the request to records with effective time at or before @@ -4404,7 +4409,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/EnergyBillingListResponseV2' + $ref: '#/components/schemas/EnergyBillingListResponseV3' description: Successful response headers: x-v: @@ -5023,7 +5028,7 @@ components: content: application/json: schema: - $ref: '#/components/schemas/EnergyBillingListResponseV2' + $ref: '#/components/schemas/EnergyBillingListResponseV3' description: Successful response headers: x-v: @@ -5984,7 +5989,7 @@ components: - links - meta type: object - EnergyBillingListResponseV2: + EnergyBillingListResponseV3: example: data: transactions: @@ -6052,6 +6057,7 @@ components: servicePointId: servicePointId invoiceNumber: invoiceNumber description: description + measureUnit: KWH calculationFactors: - type: DLF value: 6.027456183070403 @@ -6123,6 +6129,7 @@ components: servicePointId: servicePointId invoiceNumber: invoiceNumber description: description + measureUnit: KWH calculationFactors: - type: DLF value: 6.027456183070403 @@ -6141,7 +6148,7 @@ components: first: first properties: data: - $ref: '#/components/schemas/EnergyBillingListResponseV2_data' + $ref: '#/components/schemas/EnergyBillingListResponseV3_data' links: $ref: '#/components/schemas/LinksPaginated' meta: @@ -6480,17 +6487,19 @@ components: type: string type: array startTime: - description: The beginning of the time period per day - for which the controlled load rate applies. Required - if endTime provided + description: |- + The beginning of the time period per day for which the controlled load rate applies. Required if endTime provided. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: The end of the time period per day for which - the controlled load rate applies. Required if startTime - provided + description: |- + The end of the time period per day for which the controlled load rate applies. Required if startTime provided. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef additionalInfo: description: Display text providing more information on the contrlled load, for e.g. controlled load availability @@ -6957,17 +6966,19 @@ components: type: string type: array startTime: - description: The beginning of the time period per day for - which the tariff applies. If absent assumes start of - day (ie. midnight) + description: |- + The beginning of the time period per day for which the tariff applies. If absent assumes start of day (ie. midnight). + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: The end of the time period per day for which - the tariff applies. If absent assumes end of day (ie. - one second before midnight) + description: |- + The end of the time period per day for which the tariff applies. If absent assumes end of day (ie. one second before midnight). + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef required: - days type: object @@ -7155,13 +7166,19 @@ components: type: string type: array startTime: - description: Start of the period + description: |- + Start of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: End of the period + description: |- + End of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef required: - days - endTime @@ -7214,13 +7231,19 @@ components: - MONTH type: string startTime: - description: Start of the period + description: |- + Start of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: End of the period + description: |- + End of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef days: description: The days that the demand tariff applies to items: @@ -7433,17 +7456,19 @@ components: type: string type: array startTime: - description: The beginning of the time period per day for - which the controlled load rate applies. Required if endTime - provided + description: |- + The beginning of the time period per day for which the controlled load rate applies. Required if endTime provided. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: The end of the time period per day for which - the controlled load rate applies. Required if startTime - provided + description: |- + The end of the time period per day for which the controlled load rate applies. Required if startTime provided. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef additionalInfo: description: Display text providing more information on the contrlled load, for e.g. controlled load availability if @@ -7909,16 +7934,19 @@ components: type: string type: array startTime: - description: The beginning of the time period per day for which - the tariff applies. If absent assumes start of day (ie. midnight) + description: |- + The beginning of the time period per day for which the tariff applies. If absent assumes start of day (ie. midnight). + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: The end of the time period per day for which the - tariff applies. If absent assumes end of day (ie. one second - before midnight) + description: |- + The end of the time period per day for which the tariff applies. If absent assumes end of day (ie. one second before midnight). + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef required: - days type: object @@ -8103,13 +8131,19 @@ components: type: string type: array startTime: - description: Start of the period + description: |- + Start of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: End of the period + description: |- + End of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef required: - days - endTime @@ -8160,13 +8194,19 @@ components: - MONTH type: string startTime: - description: Start of the period + description: |- + Start of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef endTime: - description: End of the period + description: |- + End of the period. + + Formatted according to [ISO 8601 Times](https://en.wikipedia.org/wiki/ISO_8601#Times). If the time is provided without a UTC offset, the time zone will be determined by the value of EnergyPlanContract.timeZone. type: string - x-cds-type: TimeString + x-cds-type: ExternalRef days: description: The days that the demand tariff applies to items: @@ -9172,7 +9212,7 @@ components: - totalCharges - totalDiscounts type: object - EnergyBillingTransactionV2: + EnergyBillingTransactionV3: example: accountId: accountId onceOff: @@ -9238,6 +9278,7 @@ components: servicePointId: servicePointId invoiceNumber: invoiceNumber description: description + measureUnit: KWH calculationFactors: - type: DLF value: 6.027456183070403 @@ -9271,7 +9312,7 @@ components: usage: $ref: '#/components/schemas/EnergyBillingUsageTransactionV2' demand: - $ref: '#/components/schemas/EnergyBillingDemandTransactionV2' + $ref: '#/components/schemas/EnergyBillingDemandTransactionV3' onceOff: $ref: '#/components/schemas/EnergyBillingOnceOffTransaction' otherCharges: @@ -9386,7 +9427,7 @@ components: - timeOfUseType - usage type: object - EnergyBillingDemandTransactionV2: + EnergyBillingDemandTransactionV3: example: amount: amount adjustments: @@ -9400,6 +9441,7 @@ components: servicePointId: servicePointId invoiceNumber: invoiceNumber description: description + measureUnit: KWH calculationFactors: - type: DLF value: 6.027456183070403 @@ -9447,9 +9489,21 @@ components: description: Date and time when the demand period ends type: string x-cds-type: DateTimeString + measureUnit: + description: The measurement unit of rate. Assumed to be KVA if absent + enum: + - KWH + - KVA + - KVAR + - KVARH + - KW + - DAYS + - METER + - MONTH + type: string rate: - description: The rate for the demand charge in kVA. A negative value indicates - power generated + description: The rate for the demand charge in measureUnit. Assumed to be + KVA if measureUnit not provided. A negative value indicates power generated type: number amount: description: The amount charged or credited for this transaction prior to @@ -10501,7 +10555,7 @@ components: required: - invoices type: object - EnergyBillingListResponseV2_data: + EnergyBillingListResponseV3_data: example: transactions: - accountId: accountId @@ -10568,6 +10622,7 @@ components: servicePointId: servicePointId invoiceNumber: invoiceNumber description: description + measureUnit: KWH calculationFactors: - type: DLF value: 6.027456183070403 @@ -10639,6 +10694,7 @@ components: servicePointId: servicePointId invoiceNumber: invoiceNumber description: description + measureUnit: KWH calculationFactors: - type: DLF value: 6.027456183070403 @@ -10651,7 +10707,7 @@ components: description: Array of transactions sorted by date and time in descending order items: - $ref: '#/components/schemas/EnergyBillingTransactionV2' + $ref: '#/components/schemas/EnergyBillingTransactionV3' type: array required: - transactions diff --git a/docs/includes/swagger/cds_energy_sdh.json b/docs/includes/swagger/cds_energy_sdh.json index ad383064..2bd67f62 100644 --- a/docs/includes/swagger/cds_energy_sdh.json +++ b/docs/includes/swagger/cds_energy_sdh.json @@ -3,7 +3,7 @@ "info" : { "description" : "Consumer Data Right end points and payloads for Secondary Data Holder for the Energy sector", "title" : "CDR Energy Secondary Data Holder API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "/" diff --git a/docs/includes/swagger/cds_energy_sdh.yaml b/docs/includes/swagger/cds_energy_sdh.yaml index 5b4ec29a..eee0ab05 100644 --- a/docs/includes/swagger/cds_energy_sdh.yaml +++ b/docs/includes/swagger/cds_energy_sdh.yaml @@ -3,7 +3,7 @@ info: description: Consumer Data Right end points and payloads for Secondary Data Holder for the Energy sector title: CDR Energy Secondary Data Holder API - version: 1.28.0 + version: 1.29.0 servers: - url: / paths: diff --git a/docs/includes/swagger/cds_register.json b/docs/includes/swagger/cds_register.json index 8f290647..87cec54c 100644 --- a/docs/includes/swagger/cds_register.json +++ b/docs/includes/swagger/cds_register.json @@ -2,7 +2,7 @@ "openapi" : "3.0.3", "info" : { "title" : "CDR Participant Discovery API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https:///" diff --git a/docs/includes/swagger/cds_register.yaml b/docs/includes/swagger/cds_register.yaml index a9ec29fe..9783f188 100644 --- a/docs/includes/swagger/cds_register.yaml +++ b/docs/includes/swagger/cds_register.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: CDR Participant Discovery API - version: 1.28.0 + version: 1.29.0 servers: - url: https:/// paths: diff --git a/docs/includes/swagger/cds_register_banking_non_bank_lending.json b/docs/includes/swagger/cds_register_banking_non_bank_lending.json index 89e42e9d..3286691b 100644 --- a/docs/includes/swagger/cds_register_banking_non_bank_lending.json +++ b/docs/includes/swagger/cds_register_banking_non_bank_lending.json @@ -2,7 +2,7 @@ "openapi" : "3.0.3", "info" : { "title" : "CDR Participant Discovery API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https:///" diff --git a/docs/includes/swagger/cds_register_banking_non_bank_lending.yaml b/docs/includes/swagger/cds_register_banking_non_bank_lending.yaml index bed4b45b..dbca65d2 100644 --- a/docs/includes/swagger/cds_register_banking_non_bank_lending.yaml +++ b/docs/includes/swagger/cds_register_banking_non_bank_lending.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: CDR Participant Discovery API - version: 1.28.0 + version: 1.29.0 servers: - url: https:/// paths: diff --git a/docs/includes/swagger/cds_telco.json b/docs/includes/swagger/cds_telco.json index 237a68de..18e3757b 100644 --- a/docs/includes/swagger/cds_telco.json +++ b/docs/includes/swagger/cds_telco.json @@ -12,7 +12,7 @@ "url" : "https://opensource.org/licenses/MIT" }, "title" : "CDR Telco API", - "version" : "1.28.0" + "version" : "1.29.0" }, "servers" : [ { "url" : "https://data.holder.com.au/cds-au/v1" diff --git a/docs/includes/swagger/cds_telco.yaml b/docs/includes/swagger/cds_telco.yaml index b8ad75c1..883fb4ab 100644 --- a/docs/includes/swagger/cds_telco.yaml +++ b/docs/includes/swagger/cds_telco.yaml @@ -11,7 +11,7 @@ info: name: MIT License url: https://opensource.org/licenses/MIT title: CDR Telco API - version: 1.28.0 + version: 1.29.0 servers: - url: https://data.holder.com.au/cds-au/v1 paths: diff --git a/docs/index.html b/docs/index.html index 9c47400d..490c1346 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,7 +8,7 @@ Consumer Data Standards - +