diff --git a/docs/archive/standards-1.8.0/LICENCE b/docs/archive/standards-1.8.0/LICENCE new file mode 100644 index 00000000..1bc87155 --- /dev/null +++ b/docs/archive/standards-1.8.0/LICENCE @@ -0,0 +1,9 @@ +

Unless otherwise stated, all specifications and downloadable reference applications are subject to this MIT Open Licence.

+

MIT Licence

+

Copyright 2018 Data61

+ +

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+ +

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/docs/archive/standards-1.8.0/README b/docs/archive/standards-1.8.0/README new file mode 100644 index 00000000..8df6bea2 --- /dev/null +++ b/docs/archive/standards-1.8.0/README @@ -0,0 +1,30 @@ +

Consumer Data Right Standards

+

This repository contains the binding API Standards and Information Security profile created in response to the Consumer Data Right legislation and the subsequent regulatory rules. The purpose of the Consumer Data Right regime is to give Australians greater control over their data and is intended to apply sector by sector across the whole Australian economy.

+ +

These standards are maintained by the Data Standards Body (DSB), with the Data Standards Chair as the decision maker. The Data Standards Body is part of the Treasury. The work of standards development is conducted in consultation with the Australian Competition and Consumer Commission (ACCC) as co-regulator of the Consumer Data Right, along with the Office of the Australian Information Commissioner (OAIC).

+

Additional Information

+ +

Contributing To The Standards

+

Consultation on the standards as they evolve is performed transparently with any interested contributor invited to participate in accordance with the rules of engagement described below.

+ +

There are a number ofways to contribute to these standards:

+ + +

Rules of engagement for this repository

+

We're committed to undertaking conversations relating to the technical standards in the open. Questions or comments that participants might ask us via email or private message are likely to be questions or comments other participants have as well. Our answers will be of interest to everyone. There are likely to be experiences and lessons everybody working in this ecosystem can learn from. Having these conversations transparently helps us reduce duplication, resolve issues faster and keep everyone up to date with the conversation.

+ +

We ask that all contributors to the Consumer Data Standards repositories comply with the GitHub Community Forum Code of Conduct.

+ +

In addition, it would be appreciated if the following rules are adhered to when commenting or contributing: +* Please provide a single, considered response to each proposal covering all feedback concerning the proposal. +* For transparency, if you work at or are associated with an organisation with an interest in the standards, please indicate this in your response. +* Please ensure you are aware of and compliant with any social media guidelines or internal processes for response set by your organisation before providing feedback. +* Please refrain from initiating new issues or pull requests in this repository due to the need for formal approval of all aspects of the standards

diff --git a/docs/archive/standards-1.8.0/docs/draft/energy.json b/docs/archive/standards-1.8.0/docs/draft/energy.json new file mode 100644 index 00000000..8d09f2c3 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/draft/energy.json @@ -0,0 +1,7068 @@ +{ + "openapi": "3.0.3", + "info": + { + "title": "CDR Energy Standards - DRAFT", + "description": "Consumer Data Right end points and payloads for the Energy sector", + "version": "0.1.0" + }, + "components": + { + "schemas": + { + "derRecord": + { + "type": "object", + "required": [ + "servicePointId", + "approvedCapacity", + "availablePhasesCount", + "installedPhasesCount", + "islandableInstallation" + ], + "x-conditional": [ + "protectionMode" + ], + "properties": + { + "servicePointId": { + "description": "Tokenised ID of the service point to be used for referring to the service point in the CDR API suite. To be created in accordance with CDR ID permanence requirements", + "type": "string" + }, + "approvedCapacity": { + "description": "Approved small generating unit capacity as agreed with NSP in the connection agreement, expressed in kVA", + "type": "number" + }, + "availablePhasesCount": { + "description": "The number of phases available for the installation of DER", + "type": "number" + }, + "installedPhasesCount": { + "description": "The number of phases that DER is installed on", + "type": "number" + }, + "islandableInstallation": { + "description": "For identification of small generating units designed with the ability to operate in an islanded mode", + "type": "string" + }, + "hasCentralProtectionControl": { + "description": "For DER installations where NSPs specify the need for additional forms of protection above those inbuilt in an inverter. If absent then assumed to be false", + "type": "boolean", + "default": false + }, + "protectionMode": { + "description": "Required only when the hasCentralProtectionAndControl flag is set to true", + "type": "object", + "properties": { + "exportLimitkva": { + "description": "Maximum amount of power (kVA) that may be exported from a connection point to the grid, as monitored by a control / relay function. A null value indicates no limit", + "type": "number" + }, + "underFrequencyProtection": { + "description": "Protective function limit. Default value 47 Hz according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "underFrequencyProtectionDelay": { + "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "overFrequencyProtection": { + "description": "Protective function limit. Default value 52 Hz according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "overFrequencyProtectionDelay": { + "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "underVoltageProtection": { + "description": "Protective function limit. Default value 180V according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "underVoltageProtectionDelay": { + "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "overVoltageProtection": { + "description": "Protective function limit. Default value 260 V according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "overVoltageProtectionDelay": { + "description": "Trip delay time in seconds. Default value 2 seconds according to AS4777-1: 2016 Table 2", + "type": "number" + }, + "sustainedOverVoltage": { + "description": "Sustained over voltage", + "type": "number" + }, + "sustainedOverVoltageDelay": { + "description": "Trip delay time in seconds", + "type": "number" + }, + "frequencyRateOfChange": { + "description": "Rate of change of frequency trip point (Hz/s)", + "type": "number" + }, + "voltageVectorShift": { + "description": "Trip angle in degrees", + "type": "number" + }, + "interTripScheme": { + "description": "Description of the form of inter-trip (e.g. 'from local substation')", + "type": "string" + }, + "neutralVoltageDisplacement": { + "description": "Trip voltage", + "type": "number" + } + } + }, + "acConnections": { + "type": "array", + "items": { + "type": "object", + "required": [ + "connectionIdentifier", + "count" + ], + "properties": { + "connectionIdentifier": { + "description": "AC Connection ID as defined in the DER register. Does not align with CDR ID permanence standards", + "type": "number" + }, + "count": { + "description": "Number of AC Connections in the group. For the suite of AC Connections to be considered as a group, all of the AC Connections included must have the same attributes", + "type": "string", + "x-cds-type": "PositiveInteger" + }, + "equipmentType": { + "description": "Indicates whether the DER device is connected via an inverter (and what category of inverter it is) or not (e.g. rotating machine)", + "type": "string" + }, + "manufacturerName": { + "description": "The name of the inverter manufacturer", + "type": "string" + }, + "inverterSeries": { + "description": "The inverter series", + "type": "string" + }, + "inverterModelNumber": { + "description": "The inverter model number", + "type": "string" + }, + "commissioningDate": { + "description": "The date that the DER installation is commissioned", + "type": "string", + "x-cds-type": "DateString" + }, + "installationStage": { + "description": "Description of the installation stage", + "type": "string" + }, + "status": { + "description": "Code used to indicate the status of the Inverter. This will be used to identify if an inverter is active or inactive or decommissioned", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "DECOMMISSIONED" + ] + }, + "inverterDeviceCapacity": { + "description": "The rated AC output power that is listed in the product specified by the manufacturer", + "type": "number" + }, + "derDevices": { + "type": "array", + "items": { + "type": "object", + "required": [ + "count" + ], + "properties": { + "count": { + "description": "Number of devices in the group of DER devices", + "type": "number" + }, + "manufacturer": { + "description": "The name of the device manufacturer", + "type": "string" + }, + "modelNumber": { + "description": "The model number of the device", + "type": "string" + }, + "status": { + "description": "Code used to indicate the status of the device. This will be used to identify if an inverter is active or inactive or decommissioned", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "DECOMMISSIONED" + ] + }, + "installationStage": { + "description": "Description of the device installation stage", + "type": "number" + }, + "type": { + "description": "Used to indicate the primary technology used in the DER device", + "type": "string", + "enum": [ + "FOSSIL", + "HYDRO", + "WIND", + "SOLAR_PV", + "RENEWABLE", + "GEOTHERMAL", + "STORAGE", + "OTHER" + ] + }, + "subtype": { + "description": "This field is also used to record for example the battery chemistry, or the type of PV panel. It is also used to record if a battery is contained in an electric vehicle connected in a vehicle-to-grid arrangement", + "type": "string" + }, + "nominalRatedCapacity": { + "description": "Maximum output in kVA that is listed in the product specification by the manufacturer. This refers to the capacity of each unit within the device group", + "type": "number" + }, + "nominalStorageCapacity": { + "description": "Maximum storage capacity in kVAh. This refers to the capacity of each storage module within the device group", + "type": "number" + } + } + } + } + } + } + } + } + }, + "links": + { + "type": "object", + "required": ["self"], + "properties": + { + "self": + { + "type": "string", + "description": "Fully qualified link that generated the current response document", + "x-cds-type": "URIString" + } + } + }, + "meta": + { + "type": "object" + }, + "linksPaginated": + { + "type": "object", + "required": ["self"], + "x-conditional": [ + "first", + "prev", + "next", + "last" + ], + "properties": { + "self": + { + "type": "string", + "description": "Fully qualified link that generated the current response document", + "x-cds-type": "URIString" + }, + "first": + { + "type": "string", + "description": "URI to the first page of this set. Mandatory if this response is not the first page", + "x-cds-type": "URIString" + }, + "prev": + { + "type": "string", + "description": "URI to the previous page of this set. Mandatory if this response is not the first page", + "x-cds-type": "URIString" + }, + "next": + { + "type": "string", + "description": "URI to the next page of this set. Mandatory if this response is not the last page", + "x-cds-type": "URIString" + }, + "last": + { + "type": "string", + "description": "URI to the last page of this set. Mandatory if this response is not the last page", + "x-cds-type": "URIString" + } + } + }, + "metaPaginated": + { + "type": "object", + "required": ["totalPages", "totalRecords"], + "properties": + { + "totalRecords": + { + "type": "integer", + "description": "The total number of records in the full set. See [pagination](#pagination).", + "x-cds-type": "NaturalNumber" + }, + "totalPages": + { + "type": "integer", + "description": "The total number of pages in the full set. See [pagination](#pagination).", + "x-cds-type": "NaturalNumber" + } + } + } + }, + "parameters": + { + "servicePointId": + { + "name": "servicePointId", + "description": "ID of the specific service point requested. This is a tokenised ID previous obtained from the Service Point List Data end point. Note that it is not a nationalMeteringId.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "accountId": + { + "name": "accountId", + "description": "ID of a specific account to obtain data for. This is a tokenised ID previous obtained from the Account List end point.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "newest-time": + { + "name": "newest-time", + "in": "query", + "description": "Constrain the request to records with effective time at or before this date/time. If absent defaults to current date/time. Format is aligned to DateTimeString common type", + "required": false, + "schema": { + "type": "string" + }, + "x-cds-type": "DateTimeString" + }, + "oldest-time": + { + "name": "oldest-time", + "in": "query", + "description": "Constrain the request to records with effective time at or after this date/time. If absent defaults to newest-time minus 12 months. Format is aligned to DateTimeString common type", + "required": false, + "schema": { + "type": "string" + }, + "x-cds-type": "DateTimeString" + }, + "newest-date": + { + "name": "newest-date", + "in": "query", + "description": "Constrain the request to records with effective date at or before this date. If absent defaults to current date. Format is aligned to DateString common type", + "required": false, + "schema": { + "type": "string" + }, + "x-cds-type": "DateString" + }, + "oldest-date": + { + "name": "oldest-date", + "in": "query", + "description": "Constrain the request to records with effective date at or after this date. If absent defaults to newest-date minus 24 months days. Format is aligned to DateString common type", + "required": false, + "schema": { + "type": "string" + }, + "x-cds-type": "DateString" + }, + "page": + { + "name": "page", + "description": "Page of results to request (standard pagination)", + "in": "query", + "required": false, + "schema": { + "type": "number", + "default": "1" + } + }, + "page-size": + { + "name": "page-size", + "description": "Page size to request. Default is 25 (standard pagination)", + "in": "query", + "required": false, + "schema": { + "type": "number", + "default": "25" + } + }, + "x-v": + { + "name": "x-v", + "description": "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + "x-min-v": + { + "name": "x-min-v", + "description": "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": + { + "name": "x-fapi-interaction-id", + "description": "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-auth-date": + { + "name": "x-fapi-auth-date", + "description": "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-customer-ip-address": + { + "name": "x-fapi-customer-ip-address", + "description": "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + "x-cds-client-headers": + { + "name": "x-cds-client-headers", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "in": "header", + "required": false, + "schema": { + "type": "string" + }, + "x-cds-type": "Base64" + } + }, + "requestBodies": + { + "servicePointIdList": + { + "description": "Request payload containing list of specific Service Points to obtain data for", + "required": true, + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "servicePointIds" + ], + "properties": + { + "servicePointIds": + { + "description": "Array of specific servicePointIds to obtain data for", + "type": "array", + "items": + { + "type": "string" + } + } + } + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "accountIdList": + { + "description": "Request payload containing list of specific Accounts to obtain data for", + "required": true, + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "accountIds" + ], + "properties": + { + "accountIds": + { + "description": "Array of specific accountIds to obtain data for", + "type": "array", + "items": + { + "type": "string" + } + } + } + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + } + }, + "responses": + { + "planList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "plans" + ], + "properties": + { + "plans": + { + "description": "Array of plans", + "type": "array", + "items": + { + "type": "object", + "required": [ + "planId", + "lastUpdated", + "type", + "fuelType", + "brand", + "brandName" + ], + "properties": + { + "planId": + { + "type": "string", + "x-cds-type": "ASCIIString", + "description": "The ID of the specific plan" + }, + "effectiveFrom": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time from which this plan is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate" + }, + "effectiveTo": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time at which this plan will be retired and will no longer be offered. Used to enable the managed deprecation of plans" + }, + "lastUpdated": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The last date and time that the information for this plan was changed (or the creation date for the plan if it has never been altered)" + }, + "displayName": + { + "type": "string", + "description": "The display name of the plan" + }, + "description": + { + "type": "string", + "description": "A description of the plan" + }, + "type": + { + "type": "string", + "description": "The type of the plan", + "enum": ["STANDING", + "MARKET", + "REGULATED" + ], + }, + "fuelType": + { + "type": "string", + "description": "The fuel types covered by the plan", + "enum": [ + "ELECTRICITY", + "GAS", + "DUAL" + ] + }, + "availability": + { + "type": "string", + "description": "The availability of the plan. If absent then the value GENERAL is assumed", + "enum": [ + "RESTRICTED", + "GENERAL" + ], + "default": "GENERAL" + }, + "brand": + { + "type": "string", + "x-cds-type": "ASCIIString", + "description": "The ID of the brand under which this plan is offered" + }, + "brandName": + { + "type": "string", + "description": "The display name of the brand under which this plan is offered" + }, + "thirdPartyAgentId": + { + "type": "string", + "description": "The ID of the Third Party through which this plan may be originated" + }, + "thirdPartyAgentName": + { + "type": "string", + "description": "The display name of the Third Party through which this plan may be originated" + }, + "applicationUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to an application web page where this plan can be applied for" + }, + "additionalInformation": + { + "type": "object", + "description": "Object that contains links to additional information on specific topics", + "properties": + { + "overviewUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to a general overview of the plan" + }, + "termsUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to terms and conditions for the plan" + }, + "eligibilityUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to detail on eligibility criteria for the plan" + }, + "pricingUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to detail on pricing for the plan" + }, + "bundleUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to detail on bundles that this plan can be a part of" + } + } + }, + "customerType": + { + "type": "string", + "description": "The type of customer that the plan is offered to. If absent then the plan is available to all customers", + "enum": ["RESIDENTIAL", + "BUSINESS" + ] + }, + "geography": + { + "type": "object", + "description": "Describes the geographical area that the plan is available for. If absent then it is assumed the plan is not geographically limited", + "required": ["supplyAreaId", "displayName"], + "properties": + { + "excludedPostcodes": + { + "description": "Array of valid Australian post codes that are specifically excluded from the plan", + "type": "array", + "items": + { + "type": "string" + } + }, + "includedPostcodes": + { + "description": "Array of valid Australian post codes that are included from the plan. If absent defaults to all non-excluded post codes", + "type": "array", + "items": + { + "type": "string" + } + }, + "supplyAreas": + { + "description": "Array of supply areas for which this plan is available", + "type": "array", + "items": + { + "type": "object", + "properties": + { + "supplyAreaId": + { + "type": "string", + "x-cds-type": "ASCIIString", + "description": "ID of the supply area" + }, + "displayName": + { + "type": "string", + "description": "Display name of the supply area" + }, + "distributor": + { + "type": "string", + "description": "The name of the distributor for the supply area" + }, + "state": + { + "type": "string", + "description": "The Australian state that the plan is applicable to. Valid values are defined by Australia Post PAF code file State Type Abbreviation. For example: NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + }, + } + } + } + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "planDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "planId", + "lastUpdated", + "type", + "fuelType", + "brand", + "brandName" + ], + "x-conditional": [ + "gasContract", + "electricityContract" + ], + "properties": + { + "planId": + { + "type": "string", + "x-cds-type": "ASCIIString", + "description": "The ID of the specific plan" + }, + "effectiveFrom": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time from which this plan is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate" + }, + "effectiveTo": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time at which this plan will be retired and will no longer be offered. Used to enable the managed deprecation of plans" + }, + "lastUpdated": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The last date and time that the information for this plan was changed (or the creation date for the plan if it has never been altered)" + }, + "displayName": + { + "type": "string", + "description": "The display name of the plan" + }, + "description": + { + "type": "string", + "description": "A description of the plan" + }, + "type": + { + "type": "string", + "description": "The type of the plan", + "enum": ["STANDING", + "MARKET", + "REGULATED" + ], + }, + "fuelType": + { + "type": "string", + "description": "The fuel types covered by the plan", + "enum": [ + "ELECTRICITY", + "GAS", + "DUAL" + ], + }, + "availability": + { + "type": "string", + "description": "The availability of the plan. If absent then the value GENERAL is assumed", + "enum": ["RESTRICTED", + "GENERAL" + ], + }, + "brand": + { + "type": "string", + "x-cds-type": "ASCIIString", + "description": "The ID of the brand under which this plan is offered" + }, + "brandName": + { + "type": "string", + "description": "The display name of the brand under which this plan is offered" + }, + "thirdPartyAgentId": + { + "type": "string", + "description": "The ID of the Third Party through which this plan may be originated" + }, + "thirdPartyAgentName": + { + "type": "string", + "description": "The display name of the Third Party through which this plan may be originated" + }, + "applicationUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to an application web page where this plan can be applied for" + }, + "additionalInformation": + { + "type": "object", + "description": "Object that contains links to additional information on specific topics", + "properties": + { + "overviewUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to a general overview of the plan" + }, + "termsUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to terms and conditions for the plan" + }, + "eligibilityUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to detail on eligibility criteria for the plan" + }, + "pricingUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to detail on pricing for the plan" + }, + "bundleUri": + { + "type": "string", + "x-cds-type": "URIString", + "description": "A link to detail on bundles that this plan can be a part of" + } + } + }, + "customerType": + { + "type": "string", + "description": "The type of customer that the plan is offered to. If absent then the plan is available to all customers", + "enum": ["RESIDENTIAL", + "BUSINESS" + ] + }, + "geography": + { + "type": "object", + "description": "Describes the geographical area that the plan is available for. If absent then it is assumed the plan is not geographically limited", + "required": ["supplyAreaId", "displayName"], + "properties": + { + "excludedPostcodes": + { + "description": "Array of valid Australian post codes that are specifically excluded from the plan", + "type": "array", + "items": + { + "type": "string" + } + }, + "includedPostcodes": + { + "description": "Array of valid Australian post codes that are included from the plan. If absent defaults to all non-excluded post codes", + "type": "array", + "items": + { + "type": "string" + } + }, + "supplyAreas": + { + "description": "Array of supply areas for which this plan is available", + "type": "array", + "items": + { + "type": "object", + "properties": + { + "supplyAreaId": + { + "type": "string", + "x-cds-type": "ASCIIString", + "description": "ID of the supply area" + }, + "displayName": + { + "type": "string", + "description": "Display name of the supply area" + }, + "distributor": + { + "type": "string", + "description": "The name of the distributor for the supply area" + }, + "state": + { + "type": "string", + "description": "The Australian state that the plan is applicable to. Valid values are defined by Australia Post PAF code file State Type Abbreviation. For example: NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + }, + } + } + } + } + }, + "meteringCharges": + { + "description": "Charges for metering included in the plan", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "minimumValue"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the charge" + }, + "description": + { + "type": "string", + "description": "Description of the charge" + }, + "minimumValue": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Minimum value of the charge if the charge is a range or the absolute value of the charge if no range is specified" + }, + "maximumValue": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The upper limit of the charge if the charge could occur in a range" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "The charges that occur on a schedule indicates the frequency. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + } + } + } + }, + "gasContract": + { + "type": "object", + "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to GAS or DUAL", + "required": [ + "pricingModel", + "isFixed", + "billFrequency", + "paymentOption", + "tariffPeriod" + ], + "x-conditional": [ + "timeZone", + "benefitPeriod", + "variation", + "coolingOffDays", + "controlledLoad" + ], + "properties": + { + "additionalFeeInformation": + { + "type": "string", + "description": "Free text field containing additional information of the fees for this contract" + }, + "pricingModel": + { + "type": "string", + "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE", + "enum": ["SINGLE_RATE", + "SINGLE_RATE_CONT_LOAD", + "TIME_OF_USE", + "TIME_OF_USE_CONT_LOAD", + "FLEXIBLE", + "FLEXIBLE_CONT_LOAD", + "QUOTA" + ] + }, + "termType": + { + "type": "string", + "description": "The term for the contract. If absent assumes no specified term", + "enum": ["1_YEAR", + "2_YEAR", + "3_YEAR", + "4_YEAR", + "5_YEAR", + "ONGOING", + "OTHER" + ] + }, + "timeZone": + { + "type": "string", + "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds", + "enum": ["LOCAL", + "AEST" + ] + }, + "benefitPeriod": + { + "type": "string", + "description": "Description of the benefit period. Should only be present if termType has the value ONGOING" + }, + "terms": + { + "type": "string", + "description": "Free text description of the terms for the contract" + }, + "isFixed": + { + "type": "boolean", + "description": "Flag indicating whether prices are fixed or variable" + }, + "variation": + { + "type": "string", + "description": "Free text description of price variation policy and conditions for the contract. Mandatory if isFixed is true" + }, + "onExpiryDescription": + { + "type": "string", + "description": "Free text field that describes what will occur on or prior to expiry of the fixed contract term or benefit period" + }, + "meterTypes": + { + "description": "An array of the meter types that this contract is available for", + "type": "array", + "items": + { + "type": "string" + } + }, + "coolingOffDays": + { + "type": "string", + "x-cds-type": "PositiveInteger", + "description": "Number of days in the cooling off period for the contract. Mandatory for plans with type of MARKET " + }, + "billFrequency": + { + "description": "An array of the available billing schedules for this contract. Formatted according to ISO 8601 Durations (excludes recurrence syntax)", + "type": "array", + "items": + { + "type": "string" + } + }, + "controlledLoad": + { + "type": "object", + "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD", + "required": ["displayName", "dailyCharge", "period", "rates"], + "properties": + { + "displayName": + { + "type": "string", + "description": "A display name for the controlled load tier" + }, + "description": + { + "type": "string", + "description": "A description of the controlled load tier" + }, + "dailyCharge": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The daily supply charge (exclusive of GST) for this controlled load tier" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + }, + } + } + } + } + }, + "paymentOption": + { + "description": "Payment options for this contract", + "type": "array", + "items": + { + "type": "string", + "enum": [ + "PAPER_BILL", + "CREDIT_CARD", + "DIRECT_DEBIT", + "BPAY" + ] + } + }, + "incentives": + { + "description": "Optional list of incentives available for the contract", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "description"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the incentive" + }, + "description": + { + "type": "string", + "description": "The description of the incentive" + }, + } + } + }, + "discounts": + { + "description": "Optional list of discounts available for the contract", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "methodUType"], + "x-conditional": [ + "category", + "percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the discount" + }, + "description": + { + "type": "string", + "description": "The description of the discount" + }, + "type": + { + "type": "string", + "description": "The type of the discount", + "enum": ["CONDITIONAL", + "GUARANTEED" + ] + }, + "category": + { + "type": "string", + "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL", + "enum": ["PAY_ON_TIME", + "DIRECT_DEBIT" + ] + }, + "methodUType": + { + "type": "string", + "description": "The method of calculation of the discount", + "enum": [ + "percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ] + }, + "percentOfBill": + { + "type": "object", + "description": "Required if methodUType is percentOfBill", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the bill amount (some types of charges may be excluded from this discount based on plan terms)" + }, + } + }, + "percentOfUse": + { + "type": "object", + "description": "Required if methodUType is percentOfUse", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the usageamount" + } + } + }, + "fixedAmount": + { + "type": "object", + "description": "Required if methodUType is fixedAmount", + "required": ["amount"], + "properties": + { + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the discount" + } + } + }, + "percentOverThreshold": + { + "type": "object", + "description": "Required if methodUType is percentOverThreshold", + "required": ["rate", "usageAmount"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount over the usage amount" + }, + "usageAmount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The usage amount threshold above which the discount applies" + } + } + } + } + } + }, + "greenPowerCharges": + { + "description": "Optional list of charges applicable to green power", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "tiers"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the charge" + }, + "description": + { + "type": "string", + "description": "The description of the charge" + }, + "type": + { + "type": "string", + "description": "The type of charge", + "enum": ["FIXED_PER_DAY", + "FIXED_PER_WEEK", + "FIXED_PER_MONTH", + "FIXED_PER_UNIT", + "PERCENT_OF_USE", + "PERCENT_OF_BILL" + ] + }, + "tiers": + { + "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power", + "type": "array", + "items": + { + "type": "object", + "required": ["percentGreen"], + "x-conditional": [ + "rate", + "amount" + ], + "properties": + { + "percentGreen": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The upper percentage of green power used applicable for this tier" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the charge if the type implies the application of a rate" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the charge if the type implies the application of a fixed amount" + } + } + } + } + } + } + }, + "eligibility": + { + "description": "Eligibility restrictions or requirements", + "type": "array", + "items": + { + "type": "object", + "required": ["type", "information"], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the eligibility restriction", + "enum": ["EXISTING_CUST", + "EXISTING_POOL", + "EXISTING_SOLAR", + "EXISTING_BATTERY", + "EXISTING_SMART_METER", + "EXISTING_BASIC_METER", + "SENIOR_CARD", + "SMALL_BUSINESS", + "NO_SOLAR_FIT", + "NEW_CUSTOMER", + "ONLINE_ONLY", + "REQ_EQUIP_SUPPLIER", + "THIRD_PARTY_ONLY", + "SPORT_CLUB_MEMBER", + "ORG_MEMBER", + "SPECIFIC_LOCATION", + "MINIMUM_USAGE", + "LOYALTY_MEMBER", + "GROUP_BUY_MEMBER", + "OTHER" + ] + }, + "information": + { + "type": "string", + "description": "Information of the eligibility restriction specific to the type of the restriction" + }, + "description": + { + "type": "string", + "description": "A description of the eligibility restriction" + }, + } + } + }, + "fee": + { + "description": "An array of fees applicable to the plan", + "type": "array", + "items": + { + "type": "object", + "required": ["type", "term"], + "x-conditional": [ + "rate", + "amount" + ], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the fee", + "enum": ["EXIT", + "ESTABLISHMENT", + "LATE_PAYMENT", + "DISCONNECTION", + "DISCONNECT_MOVE_OUT", + "DISCONNECT_NON_PAY", + "RECONNECTION", + "CONNECTION", + "PAYMENT_PROCESSING", + "CC_PROCESSING", + "CHEQUE_DISHONOUR", + "DD_DISHONOUR", + "MEMBERSHIP", + "CONTRIBUTION", + "PAPER_BILL", + "OTHER" + ] + }, + "term": + { + "type": "string", + "description": "The term of the fee", + "enum": ["FIXED", + "1_YEAR", + "2_YEAR", + "3_YEAR", + "4_YEAR", + "5_YEAR", + "PERCENT_OF_BILL", + "ANNUAL", + "MONTHLY", + "BIANNUAL" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The fee amount. Required if term is not PERCENT_OF_BILL" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The fee rate. Required if term is PERCENT_OF_BILL" + }, + "description": + { + "type": "string", + "description": "A description of the fee" + }, + } + } + }, + "solarFeedInTariff": + { + "description": "Array of feed in tariffs for solar power", + "type": "array", + "items": + { + "type": "object", + "required": ["type"], + "x-conditional": [ + "amount" + ], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the tariff", + "enum": ["GOVERNMENT", + "RETAILER" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The tariff amount per kWh" + }, + "description": + { + "type": "string", + "description": "A description of the tariff" + }, + } + } + }, + "tariffPeriod": + { + "description": "Array of tariff periods", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "dailySupplyCharges", "rateBlockUType"], + "x-conditional": [ + "startDate", + "endDate", + "singleRate", + "timeOfUseRates" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "The name of the tariff period" + }, + "startDate": + { + "type": "string", + "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "endDate": + { + "type": "string", + "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "dailySupplyCharges": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST." + }, + "rateBlockUType": + { + "type": "string", + "description": "Specifies the type of rate applicable to this tariff period", + "enum": ["singleRate", + "timeOfUseRates" + ] + }, + "singleRate": + { + "type": "object", + "description": "Object representing a single rate. Required if rateBlockUType is singleRate", + "required": ["displayName", "rates"], + "x-conditional": [ + "generalUnitPrice" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "generalUnitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + } + } + }, + "timeOfUseRates": + { + "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "rates", "timeOfUse"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "type": + { + "type": "string", + "description": "The type of usage that the rate applies to", + "enum": ["PEAK", + "OFF_PEAK", + "OFF_PEAK_DC", + "SHOULDER", + "SHOULDER1", + "SHOULDER2" + ] + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + }, + "timeOfUse": + { + "description": "Array of times of use", + "type": "array", + "items": + { + "type": "object", + "required": ["days", "startTime", "endTime"], + "properties": + { + "days": + { + "description": "The days that the rate applies to", + "type": "array", + "items": + { + "type": "string", + "enum": ["SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "BUSINESS_DAYS" + ] + } + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format" + } + } + } + }, + "demandCharges": + { + "description": "Array of demand charges", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "startTime", "endTime"], + "x-conditional": [ + "amount" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the charge" + }, + "description": + { + "type": "string", + "description": "Description of the charge" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The charge amount per kWh exclusive of GST" + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format" + } + } + } + } + } + } + } + } + } + } + } + }, + "electricityContract": + { + "type": "object", + "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to ELECTRICITY or DUAL", + "required": [ + "pricingModel", + "isFixed", + "billFrequency", + "paymentOption", + "tariffPeriod" + ], + "x-conditional": [ + "timeZone", + "controlledLoad" + ], + "properties": + { + "additionalFeeInformation": + { + "type": "string", + "description": "Free text field containing additional information of the fees for this contract" + }, + "pricingModel": + { + "type": "string", + "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE", + "enum": ["SINGLE_RATE", + "SINGLE_RATE_CONT_LOAD", + "TIME_OF_USE", + "TIME_OF_USE_CONT_LOAD", + "FLEXIBLE", + "FLEXIBLE_CONT_LOAD", + "QUOTA" + ] + }, + "termType": + { + "type": "string", + "description": "The term for the contract. If absent assumes no specified term", + "enum": ["1_YEAR", + "2_YEAR", + "3_YEAR", + "4_YEAR", + "5_YEAR", + "ONGOING", + "OTHER" + ] + }, + "timeZone": + { + "type": "string", + "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds", + "enum": ["LOCAL", + "AEST" + ] + }, + "benefitPeriod": + { + "type": "string", + "description": "Description of the benefit period. Should only be present if termType has the value ONGOING" + }, + "terms": + { + "type": "string", + "description": "Free text description of the terms for the contract" + }, + "isFixed": + { + "type": "boolean", + "description": "Flag indicating whether prices are fixed or variable" + }, + "variation": + { + "type": "string", + "description": "Free text description of price variation policy and conditions for the contract. Mandatory if isFixed is true" + }, + "onExpiryDescription": + { + "type": "string", + "description": "Free text field that describes what will occur on or prior to expiry of the fixed contract term or benefit period" + }, + "meterTypes": + { + "description": "An array of the meter types that this contract is available for", + "type": "array", + "items": + { + "type": "string" + } + }, + "coolingOffDays": + { + "type": "string", + "x-cds-type": "PositiveInteger", + "description": "Number of days in the cooling off period for the contract. Mandatory for plans with type of MARKET " + }, + "billFrequency": + { + "description": "An array of the available billing schedules for this contract. Formatted according to ISO 8601 Durations (excludes recurrence syntax)", + "type": "array", + "items": + { + "type": "string" + } + }, + "controlledLoad": + { + "type": "object", + "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD", + "required": ["displayName", "dailyCharge", "period", "rates"], + "properties": + { + "displayName": + { + "type": "string", + "description": "A display name for the controlled load tier" + }, + "description": + { + "type": "string", + "description": "A description of the controlled load tier" + }, + "dailyCharge": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The daily supply charge (exclusive of GST) for this controlled load tier" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + }, + } + } + } + } + }, + "paymentOption": + { + "description": "Payment options for this contract", + "type": "array", + "items": + { + "type": "string", + "enum": ["PAPER_BILL", + "CREDIT_CARD", + "DIRECT_DEBIT", + "BPAY" + ] + } + }, + "incentives": + { + "description": "Optional list of incentives available for the contract", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "description"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the incentive" + }, + "description": + { + "type": "string", + "description": "The description of the incentive" + }, + } + } + }, + "discounts": + { + "description": "Optional list of discounts available for the contract", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "methodUType"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the discount" + }, + "description": + { + "type": "string", + "description": "The description of the discount" + }, + "type": + { + "type": "string", + "description": "The type of the discount", + "enum": ["CONDITIONAL", + "GUARANTEED" + ] + }, + "category": + { + "type": "string", + "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL", + "enum": ["PAY_ON_TIME", + "DIRECT_DEBIT" + ] + }, + "methodUType": + { + "type": "string", + "description": "The method of calculation of the discount", + "enum": ["percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ] + }, + "percentOfBill": + { + "type": "object", + "description": "Required if methodUType is percentOfBill", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the bill amount" + }, + } + }, + "percentOfUse": + { + "type": "object", + "description": "Required if methodUType is percentOfUse", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the usageamount" + } + } + }, + "fixedAmount": + { + "type": "object", + "description": "Required if methodUType is fixedAmount", + "required": ["amount"], + "properties": + { + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the discount" + } + } + }, + "percentOverThreshold": + { + "type": "object", + "description": "Required if methodUType is percentOverThreshold", + "required": ["rate", "usageAmount"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount over the usage amount" + }, + "usageAmount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The usage amount threshold above which the discount applies" + } + } + } + } + } + }, + "greenPowerCharges": + { + "description": "Optional list of charges applicable to green power", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "tiers"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the charge" + }, + "description": + { + "type": "string", + "description": "The description of the charge" + }, + "type": + { + "type": "string", + "description": "The type of charge", + "enum": ["FIXED_PER_DAY", + "FIXED_PER_WEEK", + "FIXED_PER_MONTH", + "FIXED_PER_UNIT", + "PERCENT_OF_USE", + "PERCENT_OF_BILL" + ] + }, + "tiers": + { + "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power", + "type": "array", + "items": + { + "type": "object", + "required": ["percentGreen"], + "properties": + { + "percentGreen": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The upper percentage of green power used applicable for this tier" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the charge if the type implies the application of a rate" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the charge if the type implies the application of a fixed amount" + } + } + } + } + } + } + }, + "eligibility": + { + "description": "Eligibility restrictions or requirements", + "type": "array", + "items": + { + "type": "object", + "required": ["type", "information"], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the eligibility restriction", + "enum": ["EXISTING_CUST", + "EXISTING_POOL", + "EXISTING_SOLAR", + "EXISTING_BATTERY", + "EXISTING_SMART_METER", + "EXISTING_BASIC_METER", + "SENIOR_CARD", + "SMALL_BUSINESS", + "NO_SOLAR_FIT", + "NEW_CUSTOMER", + "ONLINE_ONLY", + "REQ_EQUIP_SUPPLIER", + "THIRD_PARTY_ONLY", + "SPORT_CLUB_MEMBER", + "ORG_MEMBER", + "SPECIFIC_LOCATION", + "MINIMUM_USAGE", + "LOYALTY_MEMBER", + "GROUP_BUY_MEMBER", + "OTHER" + ] + }, + "information": + { + "type": "string", + "description": "Information of the eligibility restriction specific to the type of the restriction" + }, + "description": + { + "type": "string", + "description": "A description of the eligibility restriction" + }, + } + } + }, + "fee": + { + "description": "An array of fees applicable to the plan", + "type": "array", + "items": + { + "type": "object", + "required": ["type", "term"], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the fee", + "enum": ["EXIT", + "ESTABLISHMENT", + "LATE_PAYMENT", + "DISCONNECTION", + "DISCONNECT_MOVE_OUT", + "DISCONNECT_NON_PAY", + "RECONNECTION", + "CONNECTION", + "PAYMENT_PROCESSING", + "CC_PROCESSING", + "CHEQUE_DISHONOUR", + "DD_DISHONOUR", + "MEMBERSHIP", + "CONTRIBUTION", + "PAPER_BILL", + "OTHER" + ] + }, + "term": + { + "type": "string", + "description": "The term of the fee", + "enum": ["FIXED", + "1_YEAR", + "2_YEAR", + "3_YEAR", + "4_YEAR", + "5_YEAR", + "PERCENT_OF_BILL", + "ANNUAL", + "MONTHLY", + "BIANNUAL" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The fee amount. Required if term is not PERCENT_OF_BILL" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The fee rate. Required if term is PERCENT_OF_BILL" + }, + "description": + { + "type": "string", + "description": "A description of the fee" + }, + } + } + }, + "solarFeedInTariff": + { + "description": "Array of feed in tariffs for solar power", + "type": "array", + "items": + { + "type": "object", + "required": ["type"], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the tariff", + "enum": ["GOVERNMENT", + "RETAILER" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The tariff amount per kWh" + }, + "description": + { + "type": "string", + "description": "A description of the tariff" + }, + } + } + }, + "tariffPeriod": + { + "description": "Array of tariff periods", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "dailySupplyCharges", "rateBlockUType"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The name of the tariff period" + }, + "startDate": + { + "type": "string", + "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "endDate": + { + "type": "string", + "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "dailySupplyCharges": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST." + }, + "rateBlockUType": + { + "type": "string", + "description": "Specifies the type of rate applicable to this tariff period", + "enum": ["singleRate", + "timeOfUseRates" + ] + }, + "singleRate": + { + "type": "object", + "description": "Object representing a single rate. Required if rateBlockUType is singleRate", + "required": ["displayName", "rates"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "generalUnitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + } + } + }, + "timeOfUseRates": + { + "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "rates", "timeOfUse"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "type": + { + "type": "string", + "description": "The type of usage that the rate applies to", + "enum": ["PEAK", + "OFF_PEAK", + "OFF_PEAK_DC", + "SHOULDER", + "SHOULDER1", + "SHOULDER2" + ] + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + }, + "timeOfUse": + { + "description": "Array of times of use", + "type": "array", + "items": + { + "type": "object", + "required": ["days", "startTime", "endTime"], + "properties": + { + "days": + { + "description": "The days that the rate applies to", + "type": "array", + "items": + { + "type": "string", + "enum": ["SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "BUSINESS_DAYS" + ] + } + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format" + } + } + } + }, + "demandCharges": + { + "description": "Array of demand charges", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "startTime", "endTime"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the charge" + }, + "description": + { + "type": "string", + "description": "Description of the charge" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The charge amount per kWh exclusive of GST" + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format " + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "servicePointList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "servicePoints" + ], + "properties": + { + "servicePoints": + { + "type": "array", + "items": + { + "type": "object", + "required": [ + "servicePointId", + "nationalMeteringId", + "servicePointClassification", + "servicePointStatus", + "jurisdictionCode", + "validFromDate", + "lastUpdateDateTime", + "creationDateTime" + ], + "properties": + { + "servicePointId": + { + "type": "string", + "description": "The ID of the service point for use in the CDR APIs. Created according to the rules for ID permanence" + }, + "nationalMeteringId": + { + "type": "string", + "description": "The independent ID of the service point, known in the industry as the NMI" + }, + "servicePointClassification": + { + "type": "string", + "description": "The classification of the service point as defined in MSATS procedures", + "enum": ["EXTERNAL_PROFILE", + "GENERATOR", + "INTERCONNECTOR", + "LARGE", + "SAMPLE", + "SMALL", + "WHOLESALE" + ] + }, + "servicePointStatus": + { + "type": "string", + "description": "Code used to indicate the status of the service point", + "enum": ["ACTIVE", + "DE_ENERGISED", + "EXTINCT", + "GREENFIELD", + "OFF_MARKET" + ] + }, + "jurisdictionCode": + { + "type": "string", + "description": "Jurisdiction code to which the service point belongs.This code defines the jurisdictional rules which apply to the service point", + "enum": ["ALL", + "ACT", + "NEM", + "NSW", + "QLD", + "SA", + "TAS", + "VIC" + ] + }, + "isGenerator": + { + "type": "boolean", + "description": "This flag determines whether the energy at this connection point is to be treated as consumer load or as a generating unit(this may include generator auxiliary loads).If absent defaults to false" + }, + "validFromDate": + { + "type": "string", + "x-cds-type": "DateString", + "description": "The start date from which this service point first became valid" + }, + "lastUpdateDateTime": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time that the information for this service point was modified" + }, + "consumerProfile": + { + "type": "object", + "properties": + { + "classification": + { + "type": "string", + "description": "A code that defines the consumer class as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments", + "enum": ["BUSINESS", + "RESIDENTIAL", + "BULK", + "XBOUNDARY", + "NCONUML", + "NREG", + "DWHOLSAL" + ] + }, + "threshold": + { + "description": "A code that defines the consumption threshold as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments", + "enum": ["LOW", + "MEDIUM", + "HIGH" + ] + } + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "servicePointDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "required": [ + "servicePointId", + "nationalMeteringId", + "servicePointClassification", + "servicePointStatus", + "jurisdictionCode", + "lastUpdateDateTime", + "distributionLossFactor", + "relatedParticipants", + "meters" + ], + "properties": + { + "servicePointId": + { + "type": "string", + "description": "The ID of the service point for use in the CDR APIs. Created according to the rules for ID permanence" + }, + "nationalMeteringId": + { + "type": "string", + "description": "The independent ID of the service point, known in the industry as the NMI" + }, + "servicePointClassification": + { + "type": "string", + "description": "The classification of the service point as defined in MSATS procedures", + "enum": ["EXTERNAL_PROFILE", + "GENERATOR", + "INTERCONNECTOR", + "LARGE", + "SAMPLE", + "SMALL", + "WHOLESALE" + ] + }, + "servicePointStatus": + { + "type": "string", + "description": "Code used to indicate the status of the service point", + "enum": ["ACTIVE", + "DE_ENERGISED", + "EXTINCT", + "GREENFIELD", + "OFF_MARKET" + ] + }, + "jurisdictionCode": + { + "type": "string", + "description": "Jurisdiction code to which the service point belongs.This code defines the jurisdictional rules which apply to the service point", + "enum": ["ALL", + "ACT", + "NEM", + "NSW", + "QLD", + "SA", + "TAS", + "VIC" + ] + }, + "isGenerator": + { + "type": "boolean", + "description": "This flag determines whether the energy at this connection point is to be treated as consumer load or as a generating unit(this may include generator auxiliary loads).If absent defaults to false" + }, + "lastUpdateDateTime": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time that the information for this service point was modified" + }, + "creationDateTime": + { + "type": "string", + "x-cds-type": "DateTimeString", + "description": "The date and time that this service point was created as a data entity" + }, + "consumerProfile": + { + "type": "object", + "properties": + { + "classification": + { + "type": "string", + "description": "A code that defines the consumer class as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments", + "enum": ["BUSINESS", + "RESIDENTIAL" + ] + }, + "threshold": + { + "description": "A code that defines the consumption threshold as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments", + "enum": ["LOW", + "MEDIUM", + "HIGH" + ] + } + } + }, + "distributionLossFactor": + { + "type": "object", + "required": [ + "code", + "description", + "lossValue" + ], + "properties": + { + "code": + { + "type": "string", + "description": "A code used to identify data loss factor for the service point values. Refer to AEMO distribution loss factor documents for each financial year to interpret" + }, + "description": + { + "type": "string", + "description": "Description of the data loss factor code and value" + }, + "lossValue": + { + "type": "string", + "description": "The value associated with the loss factor code" + } + } + }, + "relatedParticipants": + { + "type": "array", + "items": + { + "type": "object", + "required": ["party", "role", "location"], + "properties": + { + + "party": + { + "type": "string", + "description": "An identifier of the party related to this service point" + }, + "role": + { + "type": "string", + "description": "The role performed by this participant in relation to the service point", + "enum": ["FRMP", + "LNSP", + "LR", + "MDP", + "MPB", + "MPC", + "NEMM", + "NSP2", + "ROLR", + "RP" + ] + }, + "location": + { + "type": "object", + "required": ["addressUType"], + "x-conditional": [ + "simple", + "paf" + ], + "properties": + { + "addressUType": + { + "type": "string", + "description": "The type of address object present", + "enum": ["simple", + "paf" + ] + }, + "simple": + { + "description": "The address of the service point. Mandatory if addressUType is set to simple", + "type": "object", + "required" : [ "addressLine1", "city", "state" ], + "x-conditional" : [ "postcode" ], + "properties" : { + "mailingName" : { + "type" : "string", + "description" : "Name of the individual or business formatted for inclusion in an address used for physical mail" + }, + "addressLine1" : { + "type" : "string", + "description" : "First line of the standard address object" + }, + "addressLine2" : { + "type" : "string", + "description" : "Second line of the standard address object" + }, + "addressLine3" : { + "type" : "string", + "description" : "Third line of the standard address object" + }, + "postcode" : { + "type" : "string", + "description" : "Mandatory for Australian addresses" + }, + "city" : { + "type" : "string", + "description" : "Name of the city or locality" + }, + "state" : { + "type" : "string", + "description" : "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + }, + "country" : { + "type" : "string", + "description" : "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.", + "default" : "AUS", + "x-cds-type" : "ExternalRef" + } + } + }, + "paf": + { + "description": "The address of the service point. Mandatory if addressUType is set to paf. Formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)", + "type": "object", + "required" : [ "localityName", "postcode", "state" ], + "properties" : { + "dpid" : { + "type" : "string", + "description" : "Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier" + }, + "thoroughfareNumber1" : { + "type" : "integer", + "description" : "Thoroughfare number for a property (first number in a property ranged address)", + "x-cds-type" : "PositiveInteger" + }, + "thoroughfareNumber1Suffix" : { + "type" : "string", + "description" : "Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated" + }, + "thoroughfareNumber2" : { + "type" : "integer", + "description" : "Second thoroughfare number (only used if the property has a ranged address eg 23-25)", + "x-cds-type" : "PositiveInteger" + }, + "thoroughfareNumber2Suffix" : { + "type" : "string", + "description" : "Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated" + }, + "flatUnitType" : { + "type" : "string", + "description" : "Type of flat or unit for the address" + }, + "flatUnitNumber" : { + "type" : "string", + "description" : "Unit number (including suffix, if applicable)" + }, + "floorLevelType" : { + "type" : "string", + "description" : "Type of floor or level for the address" + }, + "floorLevelNumber" : { + "type" : "string", + "description" : "Floor or level number (including alpha characters)" + }, + "lotNumber" : { + "type" : "string", + "description" : "Allotment number for the address" + }, + "buildingName1" : { + "type" : "string", + "description" : "Building/Property name 1" + }, + "buildingName2" : { + "type" : "string", + "description" : "Building/Property name 2" + }, + "streetName" : { + "type" : "string", + "description" : "The name of the street" + }, + "streetType" : { + "type" : "string", + "description" : "The street type. Valid enumeration defined by Australia Post PAF code file" + }, + "streetSuffix" : { + "type" : "string", + "description" : "The street type suffix. Valid enumeration defined by Australia Post PAF code file" + }, + "postalDeliveryType" : { + "type" : "string", + "description" : "Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file" + }, + "postalDeliveryNumber" : { + "type" : "integer", + "description" : "Postal delivery number if the address is a postal delivery type", + "x-cds-type" : "PositiveInteger" + }, + "postalDeliveryNumberPrefix" : { + "type" : "string", + "description" : "Postal delivery number prefix related to the postal delivery number" + }, + "postalDeliveryNumberSuffix" : { + "type" : "string", + "description" : "Postal delivery number suffix related to the postal delivery number" + }, + "localityName" : { + "type" : "string", + "description" : "Full name of locality" + }, + "postcode" : { + "type" : "string", + "description" : "Postcode for the locality" + }, + "state" : { + "type" : "string", + "description" : "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + } + } + } + } + } + } + } + }, + "meters": + { + "type": "object", + "required": [ + "meterId", + "specifications", + "streams" + ], + "properties": + { + "meterId": + { + "type": "string", + "description": "The meter ID uniquely identifies a meter for a given service point. Is unique in the context of the service point. Is not globally unique" + }, + "specifications": + { + "type": "object", + "description": "Technical characteristics of the meter", + "required": [ + "status", + "installationType" + ], + "properties": + { + "status": + { + "type": "string", + "description": "A code to denote the status of the meter", + "enum": ["CURRENT", + "REMOVED", + "DISCONNECTED" + ] + }, + "installationType": + { + "type": "string", + "description": "The metering Installation type code indicates whether the metering installation has to be manually read", + "enum": ["BASIC", + "COMMS1", + "COMMS2", + "COMMS3", + "COMMS4", + "COMMS4C", + "COMMS4D", + "MRAM", + "MRIM", + "PROF", + "SAMPLE", + "UMCP", + "VICAMI", + "NCOLNUML" + ] + }, + "manufacturer": + { + "type": "string", + "description": "Free text field to identify the manufacturer of the installed meter" + }, + "model": + { + "type": "string", + "description": "Free text field to identify the meter manufacturer’s designation for the meter model" + }, + "readType": + { + "type": "string", + "description": "Code to denote the method and frequency of Meter Reading" + } + } + }, + "streams": + { + "type": "object", + "description": "Usage data streams available from the meter", + "required": [ + "streamId", + "registerConsumptionType", + "networkTariffType" + ], + "properties": + { + "streamId": + { + "type": "string", + "description": "Unique identifier of the stream within this service point. Is not globally unique" + }, + "averagedDailyLoad": + { + "type": "number", + "description": "The energy delivered through a connection point or metering point over an extended period normalised to a 'per day' basis (kWh)" + }, + "registerConsumptionType": + { + "type": "string", + "description": "Indicates the consumption type of register", + "enum": ["INTERVAL", + "BASIC", + "PROFILE_DATA", + "NON_MARKET_ACTIVE_IMPORT", + "NON_MARKET_ACTIVE", + "NON_MARKET_REACTIVE_IMPORT", + "NON_MARKET_REACTIVE" + ] + }, + "networkTariffType": + { + "type": "string", + "description": "The Network Tariff Code is a free text field containing a code supplied and published by the local network service provider" + }, + "unitOfMeasure": + { + "type": "string", + "description": "The unit of measure for data held in this register" + }, + "timeOfDay": + { + "type": "string", + "description": "Code to identify the time validity of register contents" + }, + "multiplier": + { + "type": "number", + "description": "Multiplier required to take a register value and turn it into a value representing billable energy" + }, + "controlledLoad": + { + "type": "string", + "description": "Indicates whether the energy recorded by this register is created under a Controlled Load regime. ControlledLoad field will have 'No' if register does not relate to a Controlled Load. If the register relates to a Controlled Load, it should contain a description of the Controlled Load regime." + }, + "consumptionType": + { + "type": "string", + "description": "Actual/Subtractive Indicator", + "enum": ["ACTUAL", + "CUMULATIVE" + ] + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "usageList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "reads" + ], + "properties": + { + "reads": + { + "description": "Array of meter reads", + "type": "array", + "items": + { + "type": "object", + "required": [ + "servicePointId", + "registerSuffix", + "readStartDate", + "readUType" + ], + "x-conditional": [ + "basicRead", + "intervalRead" + ], + "properties": + { + "servicePointId": { + "description": "Tokenised ID of the service point to be used for referring to the service point in the CDR API suite. To be created in accordance with CDR ID permanence requirements", + "type": "string" + }, + "registerId": { + "description": "Register ID of the meter register where the meter reads are obtained", + "type": "string" + }, + "registerSuffix": { + "description": "Register suffix of the meter register where the meter reads are obtained", + "type": "string" + }, + "meterSerial": { + "description": "Meter serial number as it appears in customer’s bill", + "type": "string" + }, + "readStartDate": { + "description": "Date time when the meter reads start", + "type": "string", + "x-cds-type": "DateString", + }, + "readEndDate": { + "description": "Date time when the meter reads end. If absent then assumed to be equal to readStartDate. In this case the entry represents data for a single date specified by readStartDate", + "type": "string", + "x-cds-type": "DateString", + }, + "unitOfMeasure": { + "description": "Unit of measure of the meter reads. If absent then assumed to be KWH", + "type": "string", + "enum": [ + "KWH", + "GWH" + ], + "default": "KWH" + }, + "readUType": { + "description": "Specify the type of the meter read data", + "type": "string", + "enum": [ + "basicRead", + "intervalRead" + ] + }, + "basicRead": { + "description": "Mandatory if readUType is set to basicRead", + "type": "object", + "required": [ + "value" + ], + "properties": { + "quality": { + "description": "The quality of the read taken. If absent then assumed to be ACTUAL", + "type": "string", + "enum": [ + "ACTUAL", + "SUBSTITUTE", + "FINAL_SUBSTITUTE" + ], + "default": "ACTUAL" + }, + "value": { + "description": "Meter read value. If positive then it means consumption, if negative it means export", + "type": "number" + } + } + }, + "intervalRead": { + "description": "Mandatory if readUType is set to intervalRead", + "type": "object", + "required": [ + "aggregateValue", + "intervalReads" + ], + "properties": { + "readIntervalLength": { + "description": "Read interval length in minutes", + "type": "string", + "x-cds-type": "PositiveInteger" + }, + "aggregateValue": { + "description": "The aggregate sum of the interval read values. If positive then it means net consumption, if negative it means net export from the premise", + "type": "number" + }, + "intervalReads": { + "description": "Array of reads with each element indicating the read for the interval specified by readIntervalLength beginning at midnight of readStartDate", + "type": "array", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "quality": { + "description": "The quality of the read taken. If absent then assumed to be ACTUAL", + "type": "string", + "enum": [ + "ACTUAL", + "SUBSTITUTE", + "FINAL_SUBSTITUTE" + ], + "default": "ACTUAL" + }, + "value": { + "description": "Interval value. If positive then it means consumption, if negative it means export", + "type": "number" + } + } + } + } + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "derList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "derRecords" + ], + "properties": + { + "derRecords": + { + "description": "Array of meter reads", + "type": "array", + "items": + { + "$ref": "#/components/schemas/derRecord" + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "derDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "$ref": "#/components/schemas/derRecord" + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "accountList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "accounts" + ], + "properties": + { + "accounts": { + "description": "Array of accounts", + "type": "array", + "items": { + "type": "object", + "required": [ + "accountId", + "creationDate", + "servicePointIds", + "planOverview" + ], + "properties": + { + "accountId": { + "description": "The ID of the account. To be created in accordance with CDR ID permanence requirements", + "type": "string" + }, + "accountNumber": { + "description": "Optional identifier of the account as defined by the data holder. This must be the value presented on physical statements (if it exists) and must not be used for the value of accountId", + "type": "string" + }, + "displayName": { + "description": "An optional display name for the account if one exists or can be derived. The content of this field is at the discretion of the data holder", + "type": "string" + }, + "creationDate": { + "description": "The date that the account was created or opened", + "type": "string", + "x-cds-type": "DateString" + }, + "servicePointIds": { + "description": "An array of servicePointIds, representing NMIs, that this account is linked to", + "type": "array", + "items": { + "type": "string" + } + }, + "planOverview": { + "type": "object", + "required": [ + "startDate" + ], + "properties": { + "displayName": { + "description": "The name of the plan if one exists", + "type": "string" + }, + "startDate": { + "description": "The start date of the applicability of this plan", + "type": "string", + "x-cds-type": "DateString" + }, + "endDate": { + "description": "The end date of the applicability of this plan", + "type": "string", + "x-cds-type": "DateString" + } + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "accountDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "accountId", + "creationDate", + "servicePointIds", + "planOverview", + "planDetail", + "authorisedContacts" + ], + "properties": + { + "accountId": { + "description": "The ID of the account. To be created in accordance with CDR ID permanence requirements", + "type": "string" + }, + "accountNumber": { + "description": "Optional identifier of the account as defined by the data holder. This must be the value presented on physical statements (if it exists) and must not be used for the value of accountId", + "type": "string" + }, + "displayName": { + "description": "An optional display name for the account if one exists or can be derived. The content of this field is at the discretion of the data holder", + "type": "string" + }, + "creationDate": { + "description": "The date that the account was created or opened", + "type": "string", + "x-cds-type": "DateString" + }, + "servicePointIds": { + "description": "An array of servicePointIds, representing NMIs, that this account is linked to", + "type": "array", + "items": { + "type": "string" + } + }, + "planOverview": { + "type": "object", + "required": [ + "startDate" + ], + "properties": { + "displayName": { + "description": "The name of the plan if one exists", + "type": "string" + }, + "startDate": { + "description": "The start date of the applicability of this plan", + "type": "string", + "x-cds-type": "DateString" + }, + "endDate": { + "description": "The end date of the applicability of this plan", + "type": "string", + "x-cds-type": "DateString" + } + } + }, + "planDetail": { + "description": "Detail on the plan applicable to this account", + "type": "object", + "required": [ + "fuelType" + ], + "x-conditional": [ + "gasContract", + "electricityContract" + ], + "properties": { + "fuelType": + { + "type": "string", + "description": "The fuel types covered by the plan", + "enum": [ + "ELECTRICITY", + "GAS", + "DUAL" + ] + }, + "meteringCharges": + { + "description": "Charges for metering included in the plan", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "minimumValue"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the charge" + }, + "description": + { + "type": "string", + "description": "Description of the charge" + }, + "minimumValue": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Minimum value of the charge if the charge is a range or the absolute value of the charge if no range is specified" + }, + "maximumValue": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The upper limit of the charge if the charge could occur in a range" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "The charges that occur on a schedule indicates the frequency. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + } + } + } + }, + "gasContract": + { + "type": "object", + "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to GAS or DUAL", + "required": [ + "pricingModel", + "isFixed", + "billFrequency", + "paymentOption", + "tariffPeriod" + ], + "x-conditional": [ + "timeZone", + "controlledLoad" + ], + "properties": + { + "additionalFeeInformation": + { + "type": "string", + "description": "Free text field containing additional information of the fees for this contract" + }, + "pricingModel": + { + "type": "string", + "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE", + "enum": [ + "SINGLE_RATE", + "SINGLE_RATE_CONT_LOAD", + "TIME_OF_USE", + "TIME_OF_USE_CONT_LOAD", + "FLEXIBLE", + "FLEXIBLE_CONT_LOAD", + "QUOTA" + ] + }, + "timeZone": + { + "type": "string", + "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds", + "enum": ["LOCAL", + "AEST" + ] + }, + "isFixed": + { + "type": "boolean", + "description": "Flag indicating whether prices are fixed or variable" + }, + "controlledLoad": + { + "type": "object", + "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD", + "required": ["displayName", "dailyCharge", "period", "rates"], + "properties": + { + "displayName": + { + "type": "string", + "description": "A display name for the controlled load tier" + }, + "description": + { + "type": "string", + "description": "A description of the controlled load tier" + }, + "dailyCharge": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The daily supply charge (exclusive of GST) for this controlled load tier" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + }, + } + } + } + } + }, + "discounts": + { + "description": "Optional list of discounts available for the contract", + "type": "array", + "items": + { + "type": "object", + "required": [ + "displayName", + "type", + "methodUType" + ], + "x-conditional": [ + "category", + "percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the discount" + }, + "description": + { + "type": "string", + "description": "The description of the discount" + }, + "type": + { + "type": "string", + "description": "The type of the discount", + "enum": [ + "CONDITIONAL", + "GUARANTEED", + "OTHER" + ] + }, + "category": + { + "type": "string", + "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL", + "enum": [ + "PAY_ON_TIME", + "DIRECT_DEBIT" + ] + }, + "methodUType": + { + "type": "string", + "description": "The method of calculation of the discount", + "enum": [ + "percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ] + }, + "percentOfBill": + { + "type": "object", + "description": "Required if methodUType is percentOfBill", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the bill amount (some types of charges may be excluded from this discount based on plan terms)" + }, + } + }, + "percentOfUse": + { + "type": "object", + "description": "Required if methodUType is percentOfUse", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the usageamount" + } + } + }, + "fixedAmount": + { + "type": "object", + "description": "Required if methodUType is fixedAmount", + "required": ["amount"], + "properties": + { + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the discount" + } + } + }, + "percentOverThreshold": + { + "type": "object", + "description": "Required if methodUType is percentOverThreshold", + "required": ["rate", "usageAmount"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount over the usage amount" + }, + "usageAmount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The usage amount threshold above which the discount applies" + } + } + } + } + } + }, + "greenPowerCharges": + { + "description": "Optional list of charges applicable to green power", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "tiers"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the charge" + }, + "description": + { + "type": "string", + "description": "The description of the charge" + }, + "type": + { + "type": "string", + "description": "The type of charge", + "enum": ["FIXED_PER_DAY", + "FIXED_PER_WEEK", + "FIXED_PER_MONTH", + "FIXED_PER_UNIT", + "PERCENT_OF_USE", + "PERCENT_OF_BILL" + ] + }, + "tiers": + { + "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power", + "type": "array", + "items": + { + "type": "object", + "required": ["percentGreen"], + "x-conditional": [ + "rate", + "amount" + ], + "properties": + { + "percentGreen": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The upper percentage of green power used applicable for this tier" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the charge if the type implies the application of a rate" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the charge if the type implies the application of a fixed amount" + } + } + } + } + } + } + }, + "fee": + { + "description": "An array of fees applicable to the plan", + "type": "array", + "items": + { + "type": "object", + "required": ["type", "term"], + "x-conditional": [ + "rate", + "amount" + ], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the fee", + "enum": ["EXIT", + "ESTABLISHMENT", + "LATE_PAYMENT", + "DISCONNECTION", + "DISCONNECT_MOVE_OUT", + "DISCONNECT_NON_PAY", + "RECONNECTION", + "CONNECTION", + "PAYMENT_PROCESSING", + "CC_PROCESSING", + "CHEQUE_DISHONOUR", + "DD_DISHONOUR", + "MEMBERSHIP", + "CONTRIBUTION", + "PAPER_BILL", + "OTHER" + ] + }, + "term": + { + "type": "string", + "description": "The term of the fee", + "enum": ["FIXED", + "1_YEAR", + "2_YEAR", + "3_YEAR", + "4_YEAR", + "5_YEAR", + "PERCENT_OF_BILL", + "ANNUAL", + "MONTHLY", + "BIANNUAL" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The fee amount. Required if term is not PERCENT_OF_BILL" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The fee rate. Required if term is PERCENT_OF_BILL" + }, + "description": + { + "type": "string", + "description": "A description of the fee" + }, + } + } + }, + "solarFeedInTariff": + { + "description": "Array of feed in tariffs for solar power", + "type": "array", + "items": + { + "type": "object", + "required": ["type"], + "x-conditional": [ + "amount" + ], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the tariff", + "enum": ["GOVERNMENT", + "RETAILER" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The tariff amount per kWh" + }, + "description": + { + "type": "string", + "description": "A description of the tariff" + }, + } + } + }, + "tariffPeriod": + { + "description": "Array of tariff periods", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "dailySupplyCharges", "rateBlockUType"], + "x-conditional": [ + "startDate", + "endDate", + "singleRate", + "timeOfUseRates" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "The name of the tariff period" + }, + "startDate": + { + "type": "string", + "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "endDate": + { + "type": "string", + "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "dailySupplyCharges": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST." + }, + "rateBlockUType": + { + "type": "string", + "description": "Specifies the type of rate applicable to this tariff period", + "enum": ["singleRate", + "timeOfUseRates" + ] + }, + "singleRate": + { + "type": "object", + "description": "Object representing a single rate. Required if rateBlockUType is singleRate", + "required": ["displayName", "rates"], + "x-conditional": [ + "generalUnitPrice" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "generalUnitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + } + } + }, + "timeOfUseRates": + { + "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "rates", "timeOfUse"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "type": + { + "type": "string", + "description": "The type of usage that the rate applies to", + "enum": ["PEAK", + "OFF_PEAK", + "OFF_PEAK_DC", + "SHOULDER", + "SHOULDER1", + "SHOULDER2" + ] + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + }, + "timeOfUse": + { + "description": "Array of times of use", + "type": "array", + "items": + { + "type": "object", + "required": ["days", "startTime", "endTime"], + "properties": + { + "days": + { + "description": "The days that the rate applies to", + "type": "array", + "items": + { + "type": "string", + "enum": ["SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "BUSINESS_DAYS" + ] + } + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format" + } + } + } + }, + "demandCharges": + { + "description": "Array of demand charges", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "startTime", "endTime"], + "x-conditional": [ + "amount" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the charge" + }, + "description": + { + "type": "string", + "description": "Description of the charge" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The charge amount per kWh exclusive of GST" + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format " + } + } + } + } + } + } + } + } + } + } + } + }, + "electricityContract": + { + "type": "object", + "description": "The details of the terms for the supply of electricity under this plan. Is mandatory if fuelType is set to GAS or DUAL", + "required": [ + "pricingModel", + "isFixed", + "billFrequency", + "paymentOption", + "tariffPeriod" + ], + "x-conditional": [ + "timeZone", + "controlledLoad" + ], + "properties": + { + "additionalFeeInformation": + { + "type": "string", + "description": "Free text field containing additional information of the fees for this contract" + }, + "pricingModel": + { + "type": "string", + "description": "The pricing model for the contract. Contracts for gas must use SINGLE_RATE", + "enum": ["SINGLE_RATE", + "SINGLE_RATE_CONT_LOAD", + "TIME_OF_USE", + "TIME_OF_USE_CONT_LOAD", + "FLEXIBLE", + "FLEXIBLE_CONT_LOAD", + "QUOTA" + ] + }, + "timeZone": + { + "type": "string", + "description": "Required if pricingModel is set to TIME_OF_USE. Defines the time zone to use for calculation of the time of use thresholds", + "enum": ["LOCAL", + "AEST" + ] + }, + "isFixed": + { + "type": "boolean", + "description": "Flag indicating whether prices are fixed or variable" + }, + "controlledLoad": + { + "type": "object", + "description": "Required if pricing model is SINGLE_RATE_CONT_LOAD or TIME_OF_USE_CONT_LOAD", + "required": ["displayName", "dailyCharge", "period", "rates"], + "properties": + { + "displayName": + { + "type": "string", + "description": "A display name for the controlled load tier" + }, + "description": + { + "type": "string", + "description": "A description of the controlled load tier" + }, + "dailyCharge": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The daily supply charge (exclusive of GST) for this controlled load tier" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "The period for which the controlled load rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + }, + } + } + } + } + }, + "discounts": + { + "description": "Optional list of discounts available for the contract", + "type": "array", + "items": + { + "type": "object", + "required": [ + "displayName", + "type", + "methodUType" + ], + "x-conditional": [ + "category", + "percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the discount" + }, + "description": + { + "type": "string", + "description": "The description of the discount" + }, + "type": + { + "type": "string", + "description": "The type of the discount", + "enum": [ + "CONDITIONAL", + "GUARANTEED", + "OTHER" + ] + }, + "category": + { + "type": "string", + "description": "The type of the discount. Mandatory if the discount type is CONDITIONAL", + "enum": [ + "PAY_ON_TIME", + "DIRECT_DEBIT" + ] + }, + "methodUType": + { + "type": "string", + "description": "The method of calculation of the discount", + "enum": [ + "percentOfBill", + "percentOfUse", + "fixedAmount", + "percentOverThreshold" + ] + }, + "percentOfBill": + { + "type": "object", + "description": "Required if methodUType is percentOfBill", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the bill amount (some types of charges may be excluded from this discount based on plan terms)" + }, + } + }, + "percentOfUse": + { + "type": "object", + "description": "Required if methodUType is percentOfUse", + "required": ["rate"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount applied to the usageamount" + } + } + }, + "fixedAmount": + { + "type": "object", + "description": "Required if methodUType is fixedAmount", + "required": ["amount"], + "properties": + { + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the discount" + } + } + }, + "percentOverThreshold": + { + "type": "object", + "description": "Required if methodUType is percentOverThreshold", + "required": ["rate", "usageAmount"], + "properties": + { + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the discount over the usage amount" + }, + "usageAmount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The usage amount threshold above which the discount applies" + } + } + } + } + } + }, + "greenPowerCharges": + { + "description": "Optional list of charges applicable to green power", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "tiers"], + "properties": + { + "displayName": + { + "type": "string", + "description": "The display name of the charge" + }, + "description": + { + "type": "string", + "description": "The description of the charge" + }, + "type": + { + "type": "string", + "description": "The type of charge", + "enum": ["FIXED_PER_DAY", + "FIXED_PER_WEEK", + "FIXED_PER_MONTH", + "FIXED_PER_UNIT", + "PERCENT_OF_USE", + "PERCENT_OF_BILL" + ] + }, + "tiers": + { + "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type. Array is in order of increasing percentage of green power", + "type": "array", + "items": + { + "type": "object", + "required": ["percentGreen"], + "x-conditional": [ + "rate", + "amount" + ], + "properties": + { + "percentGreen": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The upper percentage of green power used applicable for this tier" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The rate of the charge if the type implies the application of a rate" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of the charge if the type implies the application of a fixed amount" + } + } + } + } + } + } + }, + "fee": + { + "description": "An array of fees applicable to the plan", + "type": "array", + "items": + { + "type": "object", + "required": ["type", "term"], + "x-conditional": [ + "rate", + "amount" + ], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the fee", + "enum": ["EXIT", + "ESTABLISHMENT", + "LATE_PAYMENT", + "DISCONNECTION", + "DISCONNECT_MOVE_OUT", + "DISCONNECT_NON_PAY", + "RECONNECTION", + "CONNECTION", + "PAYMENT_PROCESSING", + "CC_PROCESSING", + "CHEQUE_DISHONOUR", + "DD_DISHONOUR", + "MEMBERSHIP", + "CONTRIBUTION", + "PAPER_BILL", + "OTHER" + ] + }, + "term": + { + "type": "string", + "description": "The term of the fee", + "enum": ["FIXED", + "1_YEAR", + "2_YEAR", + "3_YEAR", + "4_YEAR", + "5_YEAR", + "PERCENT_OF_BILL", + "ANNUAL", + "MONTHLY", + "BIANNUAL" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The fee amount. Required if term is not PERCENT_OF_BILL" + }, + "rate": + { + "type": "string", + "x-cds-type": "RateString", + "description": "The fee rate. Required if term is PERCENT_OF_BILL" + }, + "description": + { + "type": "string", + "description": "A description of the fee" + }, + } + } + }, + "solarFeedInTariff": + { + "description": "Array of feed in tariffs for solar power", + "type": "array", + "items": + { + "type": "object", + "required": ["type"], + "x-conditional": [ + "amount" + ], + "properties": + { + "type": + { + "type": "string", + "description": "The type of the tariff", + "enum": ["GOVERNMENT", + "RETAILER" + ] + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The tariff amount per kWh" + }, + "description": + { + "type": "string", + "description": "A description of the tariff" + }, + } + } + }, + "tariffPeriod": + { + "description": "Array of tariff periods", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "dailySupplyCharges", "rateBlockUType"], + "x-conditional": [ + "startDate", + "endDate", + "singleRate", + "timeOfUseRates" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "The name of the tariff period" + }, + "startDate": + { + "type": "string", + "description": "The start date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "endDate": + { + "type": "string", + "description": "The end date of the tariff period in a calendar year. Required if there is more than one period. Formatted in mm-dd format" + }, + "dailySupplyCharges": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The amount of access charge for the tariff period, in cents per day exclusive of GST." + }, + "rateBlockUType": + { + "type": "string", + "description": "Specifies the type of rate applicable to this tariff period", + "enum": ["singleRate", + "timeOfUseRates" + ] + }, + "singleRate": + { + "type": "object", + "description": "Object representing a single rate. Required if rateBlockUType is singleRate", + "required": ["displayName", "rates"], + "x-conditional": [ + "generalUnitPrice" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "generalUnitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The block rate (unit price) for any usage above the included fixed usage, in cents per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’" + }, + "period": + { + "type": "string", + "x-cds-type": "ExternalRef", + "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax)" + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + } + } + }, + "timeOfUseRates": + { + "description": "Array of objects representing time of use rates. Required if rateBlockUType is timeOfUseRates", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "type", "rates", "timeOfUse"], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the rate" + }, + "description": + { + "type": "string", + "description": "Description of the rate" + }, + "type": + { + "type": "string", + "description": "The type of usage that the rate applies to", + "enum": ["PEAK", + "OFF_PEAK", + "OFF_PEAK_DC", + "SHOULDER", + "SHOULDER1", + "SHOULDER2" + ] + }, + "rates": + { + "description": "Array of controlled load rates in order of usage volume", + "type": "array", + "items": + { + "type": "object", + "required": ["unitPrice"], + "properties": + { + "unitPrice": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "Unit price of usage per kWh (exclusive of GST)" + }, + "volume": + { + "type": "number", + "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period" + } + } + } + }, + "timeOfUse": + { + "description": "Array of times of use", + "type": "array", + "items": + { + "type": "object", + "required": ["days", "startTime", "endTime"], + "properties": + { + "days": + { + "description": "The days that the rate applies to", + "type": "array", + "items": + { + "type": "string", + "enum": ["SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "BUSINESS_DAYS" + ] + } + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format" + } + } + } + }, + "demandCharges": + { + "description": "Array of demand charges", + "type": "array", + "items": + { + "type": "object", + "required": ["displayName", "startTime", "endTime"], + "x-conditional": [ + "amount" + ], + "properties": + { + "displayName": + { + "type": "string", + "description": "Display name of the charge" + }, + "description": + { + "type": "string", + "description": "Description of the charge" + }, + "amount": + { + "type": "string", + "x-cds-type": "AmountString", + "description": "The charge amount per kWh exclusive of GST" + }, + "startTime": + { + "type": "string", + "description": "Start of the period in HHMM format using 24 hour clock format" + }, + "endTime": + { + "type": "string", + "description": "End of the period in HHMM format using 24 hour clock format " + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "authorisedContacts": { + "description": "An array of additional contacts that are authorised to act on this account", + "type": "array", + "items": { + "type": "object", + "required": [ + "lastName" + ], + "properties": { + "firstName": { + "description": "For people with single names this field need not be present. The single name should be in the lastName field", + "type": "string" + }, + "lastName": { + "description": "For people with single names the single name should be in this field", + "type": "string" + }, + "middleNames": { + "description": "Field is mandatory but array may be empty", + "type": "array", + "items": { + "type": "string" + } + }, + "prefix": { + "description": "Also known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)", + "type": "string" + }, + "suffix": { + "description": "Used for a trailing suffix to the name (e.g. Jr)", + "type": "string" + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "accountPaymentScheduleDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "paymentScheduleUType" + ], + "x-conditional": [ + "cardDebit", + "directDebit", + "manualPayment" + ], + "properties": + { + "amount": { + "description": "Optional payment amount indicating that a constant payment amount is scheduled to be paid (used in bill smooting scenarios)", + "type": "string", + "x-cds-type": "AmountString" + }, + "paymentScheduleUType": { + "description": "The type of object present in this response", + "type": "string", + "enum": [ + "cardDebit", + "directDebit", + "manualPayment" + ] + }, + "cardDebit": { + "description": "Represents a regular credit card payment schedule. Mandatory if paymentScheduleUType is set to cardDebit", + "type": "object", + "required": [ + "cardScheme", + "paymentFrequency", + "calculationType" + ], + "properties": { + "cardScheme": { + "description": "The type of credit card held on file", + "type": "string", + "enum": [ + "VISA", + "MASTERCARD", + "AMEX", + "DINERS", + "OTHER", + "UNKNOWN" + ] + }, + "paymentFrequency": { + "description": "The frequency that payments will occur. Formatted according to ISO 8601 Durations (excludes recurrence syntax)", + "type": "string", + "x-cds-type": "ExternalRef" + }, + "calculationType": { + "description": "The mechanism by which the payment amount is calculated", + "type": "string", + "enum": [ + "STATIC", + "BALANCE", + "CALCULATED" + ] + } + } + }, + "directDebit": { + "description": "Represents a regular direct debit from a specified bank account. Mandatory if paymentScheduleUType is set to directDebit", + "type": "object", + "required": [ + "bsb", + "accountNumber", + "paymentFrequency", + "calculationType" + ], + "properties": { + "bsb": { + "description": "The unmasked BSB for the account to be debited. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces", + "type": "string" + }, + "accountNumber": { + "description": "The unmasked account number for the account to be debited. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces", + "type": "string" + }, + "paymentFrequency": { + "description": "The frequency that payments will occur. Formatted according to ISO 8601 Durations (excludes recurrence syntax)", + "type": "string", + "x-cds-type": "ExternalRef" + }, + "calculationType": { + "description": "The mechanism by which the payment amount is calculated", + "type": "string", + "enum": [ + "STATIC", + "BALANCE", + "CALCULATED" + ] + } + } + }, + "manualPayment": { + "description": "Represents a manual payment schedule where the customer pays in response to a delivered statement. Mandatory if paymentScheduleUType is set to manualPayment", + "type": "object", + "required": [ + "billFrequency" + ], + "properties": { + "billFrequency": { + "description": "The frequency with which a bill will be issued. Formatted according to ISO 8601 Durations (excludes recurrence syntax)", + "type": "string", + "x-cds-type": "ExternalRef" + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "accountConcessionsDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "concessions" + ], + "properties": + { + "concessions": { + "description": "Array may be empty if no concessions exist", + "type": "array", + "items": { + "type": "object", + "required": [ + "displayName" + ], + "x-conditional": [ + "dailyDiscount", + "monthlyDiscount", + "yearlyDiscount", + "percentageDiscount" + ], + "properties": { + "displayName": { + "description": "The display name of the concession", + "type": "string" + }, + "additionalInfo": { + "description": "Display text providing more information on the concession", + "type": "string" + }, + "additionalInfoUri": { + "description": "Optional link to additional information regarding the concession", + "type": "string", + "x-cds-type": "URIString" + }, + "startDate": { + "description": "Optional start date for the application of the concession", + "type": "string", + "x-cds-type": "DateString" + }, + "endDate": { + "description": "Optional end date for the application of the concession", + "type": "string", + "x-cds-type": "DateString" + }, + "dailyDiscount": { + "description": "Daily discount value due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided", + "type": "string", + "x-cds-type": "AmountString" + }, + "monthlyDiscount": { + "description": "Monthly discount value due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided", + "type": "string", + "x-cds-type": "AmountString" + }, + "yearlyDiscount": { + "description": "Annual discount value due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided", + "type": "string", + "x-cds-type": "AmountString" + }, + "percentageDiscount": { + "description": "Percentage of each invoice to be discounted due to the concession. At least one dailyDiscount, monthlyDiscount, yearlyDiscount and percentageDiscount must be provided", + "type": "string", + "x-cds-type": "RateString" + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "balanceList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "balances" + ], + "properties": + { + "balances": + { + "description": "Array of account balances", + "type": "array", + "items": + { + "type": "object", + "required": [ + "accountId", + "balance" + ], + "properties": + { + "accountId": { + "description": "The ID of the account", + "type": "string" + }, + "balance": { + "description": "The current balance of the account. A positive value indicates that amount is owing to be paid. A negative value indicates that the account is in credit", + "type": "string", + "x-cds-type": "AmountString" + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "balanceDetail": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "balance" + ], + "properties": + { + "balance": { + "description": "The current balance of the account. A positive value indicates that amount is owing to be paid. A negative value indicates that the account is in credit", + "type": "string", + "x-cds-type": "AmountString" + } + } + + }, + "links": + { + "$ref": "#/components/schemas/links" + }, + "meta": + { + "$ref": "#/components/schemas/meta" + } + } + } + } + } + }, + "invoiceList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "invoices" + ], + "properties": + { + "invoices": + { + "description": "Array of invoices sorted by date in descending order", + "type": "array", + "items": + { + "type": "object", + "required": [ + "accountId", + "issueDate", + "period", + "amountDue", + "balanceAtIssue", + "servicePoints", + "totalAccountCharges", + "totalAccountDiscounts", + "paymentStatus" + ], + "properties": + { + "accountId": { + "description": "The ID of the account for which the invoice was issued", + "type": "string" + }, + "invoiceNumber": { + "description": "The number assigned to this invoice by the energy Retailer", + "type": "string" + }, + "issueDate": { + "description": "The date that the invoice was actually issued (as opposed to generated or calculated)", + "type": "string", + "x-cds-type": "DateString" + }, + "dueDate": { + "description": "The date that the invoice is due to be paid", + "type": "string", + "x-cds-type": "DateString" + }, + "period": { + "description": "Object containing the start and end date for the period covered by the invoice", + "type": "object", + "required": [ + "startDate", + "endDate" + ], + "properties": + { + "startDate": { + "description": "The start date of the period covered by this invoice", + "type": "string", + "x-cds-type": "DateString" + }, + "endDate": { + "description": "The end date of the period covered by this invoice", + "type": "string", + "x-cds-type": "DateString" + } + } + }, + "invoiceAmount": { + "description": "The net amount due for this invoice regardless of previous balance", + "type": "string", + "x-cds-type": "AmountString" + }, + "payOnTimeDiscount": { + "description": "A discount for on time payment", + "type": "object", + "required": [ + "amount", + "date" + ], + "properties": { + "amount": { + "description": "The amount that will be discounted if the invoice is paid by the date specified", + "type": "string", + "x-cds-type": "AmountString" + }, + "date": { + "description": "The date by which the invoice must be paid to receive the pay on time discount", + "type": "string", + "x-cds-type": "DateString" + } + } + }, + "balanceAtIssue": { + "description": "The account balance at the time the invoice was issued", + "type": "string", + "x-cds-type": "AmountString" + }, + "servicePoints": { + "description": "Array of service point IDs to which this invoice applies. May be empty if the invoice contains no electricity usage related charges", + "type": "array", + "items": { + "type": "string" + } + }, + "gas": { + "description": "Object contain charges and credits related to gas usage", + "type": "object", + "required": [ + "totalUsageCharges", + "totalOnceOffCharges", + "totalOnceOffDiscounts" + ], + "properties": { + "totalUsageCharges": { + "description": "The aggregate total of usage charges for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "totalOnceOffCharges": { + "description": "The aggregate total of any once off charges arising from electricity usage for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "totalOnceOffDiscounts": { + "description": "The aggregate total of any once off discounts or credits arising from electricity usage for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + } + } + }, + "electricity": { + "description": "Object contain charges and credits related to electricity usage", + "type": "object", + "required": [ + "totalUsageCharges", + "totalGenerationCredits", + "totalOnceOffCharges", + "totalOnceOffDiscounts" + ], + "properties": { + "totalUsageCharges": { + "description": "The aggregate total of usage charges for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "totalGenerationCredits": { + "description": "The aggregate total of generation credits for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "totalOnceOffCharges": { + "description": "The aggregate total of any once off charges arising from electricity usage for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "totalOnceOffDiscounts": { + "description": "The aggregate total of any once off discounts or credits arising from electricity usage for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + } + } + }, + "totalAccountCharges": { + "description": "The aggregate total of account level charges for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "totalAccountDiscounts": { + "description": "The aggregate total of account level discounts or credits for the period covered by the invoice", + "type": "string", + "x-cds-type": "AmountString" + }, + "paymentStatus": { + "description": "Indicator of the payment status for the invoice", + "type": "string", + "enum": [ + "PAID", + "PARTIALLY_PAID", + "NOT_PAID" + ] + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + }, + "billingList": + { + "description": "Successful response", + "content": + { + "application/json": + { + "schema": + { + "type": "object", + "required": [ + "data", + "links", + "meta" + ], + "properties": + { + "data": + { + "type": "object", + "required": [ + "transactions" + ], + "properties": + { + "transactions": + { + "description": "Array of transactions sorted by date and time in descending order", + "type": "array", + "items": + { + "type": "object", + "required": [ + "accountId", + "executionDateTime", + "transactionUType" + ], + "x-conditional": [ + "usage", + "onceOff", + "payment" + ], + "properties": + { + "accountId": { + "description": "The ID of the account for which transaction applies", + "type": "string" + }, + "executionDateTime": { + "description": "The date and time that the transaction occurred", + "type": "string", + "x-cds-type": "DateTimeString" + }, + "transactionUType": { + "description": "Indicator of the type of transaction object present in this record", + "type": "string", + "enum": [ + "usage", + "onceOff", + "payment" + ] + }, + "usage": { + "description": "Represents a usage charge or generation credit. Mandatory if transactionUType is equal to usage", + "type": "object", + "required": [ + "timeOfUseType", + "startDate", + "endDate", + "usage", + "amount" + ], + "properties": { + "servicePointId": { + "description": "The ID of the service point to which this transaction applies if any", + "type": "string" + }, + "invoiceNumber": { + "description": "The number of the invoice in which this transaction is included if it has been issued", + "type": "string" + }, + "timeOfUseType": { + "description": "The time of use type that the transaction applies to", + "type": "string", + "enum": [ + "PEAK", + "OFF_PEAK", + "OFF_PEAK_DC", + "SHOULDER", + "SHOULDER1", + "SHOULDER2" + ] + }, + "isEstimate": { + "description": "Flag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual", + "type": "boolean" + }, + "startDate": { + "description": "Date and time when the usage period starts", + "type": "string", + "x-cds-type": "DateTimeString" + }, + "endDate": { + "description": "Date and time when the usage period ends", + "type": "string", + "x-cds-type": "DateTimeString" + }, + "usage": { + "description": "The usage for the period in kWh. A negative value indicates power generated", + "type": "number" + }, + "amount": { + "description": "The amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit", + "type": "string", + "x-cds-type": "AmountString" + }, + "adjustments": { + "description": "Optional array of adjustments arising for this transaction", + "type": "array", + "items": { + "type": "object", + "required": [ + "amount", + "description" + ], + "properties": { + "amount": { + "description": "The amount of the adjustment", + "type": "string", + "x-cds-type": "AmountString" + }, + "description": { + "description": "A free text description of the adjustment", + "type": "string" + } + } + } + } + } + }, + "onceOff": { + "description": "Represents a once off charge or credit. Mandatory if transactionUType is equal to onceOff", + "type": "object", + "required": [ + "amount", + "description" + ], + "properties": { + "servicePointId": { + "description": "The ID of the service point to which this transaction applies if any", + "type": "string" + }, + "invoiceNumber": { + "description": "The number of the invoice in which this transaction is included if it has been issued", + "type": "string" + }, + "amount": { + "description": "The amount of the charge or credit. A positive value indicates a charge and a negative value indicates a credit", + "type": "string", + "x-cds-type": "AmountString" + }, + "description": { + "description": "A free text description of the item", + "type": "string" + } + } + }, + "payment": { + "description": "Represents a payment to the account. Mandatory if transactionUType is equal to payment", + "type": "object", + "required": [ + "amount", + "method" + ], + "properties": { + "amount": { + "description": "The amount paid", + "type": "string", + "x-cds-type": "AmountString" + }, + "method": { + "description": "The method of payment", + "type": "string", + "enum": [ + "DIRECT_DEBIT", + "CARD", + "TRANSFER", + "BPAY", + "CASH", + "CHEQUE", + "OTHER" + ] + } + } + } + } + } + } + } + }, + "links": + { + "$ref": "#/components/schemas/linksPaginated" + }, + "meta": + { + "$ref": "#/components/schemas/metaPaginated" + } + } + } + } + } + } + } + }, + "paths": + { + "/energy/plans": + { + "get": + { + "summary": "Get Generic Plans", + "operationId": "listPlans", + "description": "Obtain a list of energy plans that are currently offered to the market", + "tags": [ + "Generic Tariffs" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Used to filter results on the type field. Any one of the valid values for this field can be supplied plus 'ALL'. If absent defaults to 'ALL'", + "required": false, + "schema": { + "type": "string", + "default": "ALL", + "enum": ["STANDING", "MARKET", "REGULATED", "ALL"] + } + }, + { + "name": "fuelType", + "in": "query", + "description": "Used to filter results on the fuelType field. Any one of the valid values for this field can be supplied plus 'ALL'. If absent defaults to 'ALL'", + "required": false, + "schema": { + "type": "string", + "default": "ALL", + "enum": ["ELECTRICITY", "GAS", "DUAL", "ALL"] + } + }, + { + "name": "effective", + "in": "query", + "description": "Allows for the filtering of plans based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'", + "required": false, + "schema": { + "type": "string", + "default": "CURRENT", + "enum": ["CURRENT", "FUTURE", "ALL"] + } + }, + { + "name": "updated-since", + "in": "query", + "description": "Only include plans that have been updated after the specified date and time. If absent defaults to include all plans", + "required": false, + "schema": { + "type": "string" + }, + "x-cds-type": "DateTimeString" + }, + { + "name": "brand", + "in": "query", + "description": "Used to filter results on the brand field. If absent defaults to include all plans", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/planList" + } + } + } + }, + "/energy/plans/{planId}": + { + "get": + { + "summary": "Get Generic Plan Detail", + "operationId": "getPlan", + "description": "Obtain detailed information on a single energy plan offered openly to the market", + "tags": [ + "Generic Tariffs" + ], + "parameters": [ + { + "name": "planId", + "description": "ID of the specific plan requested", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/planDetail" + } + } + } + }, + "/energy/electricity/servicepoints": + { + "get": + { + "summary": "Get Service Points", + "operationId": "listServicePoints", + "description": "Obtain a list of service points owned by the customer that has authorised the current session", + "tags": [ + "NMI Standing Data" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/servicePointList" + } + } + } + }, + "/energy/electricity/servicepoints/{servicePointId}": + { + "get": + { + "summary": "Get Service Point Detail", + "operationId": "getServicePoint", + "description": "Obtain a list of service points owned by the customer that has authorised the current session", + "tags": [ + "NMI Standing Data" + ], + "parameters": [ + { + "$ref": "#/components/parameters/servicePointId" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/servicePointDetail" + } + } + } + }, + "/energy/electricity/servicepoints/{servicePointId}/usage": + { + "get": + { + "summary": "Get Usage For Service Point", + "operationId": "getUsageForServicePoint", + "description": "Obtain a list of electricity usage data from a particular service point", + "tags": [ + "Electricity Usage" + ], + "parameters": [ + { + "$ref": "#/components/parameters/servicePointId" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/usageList" + } + } + } + }, + "/energy/electricity/servicepoints/usage": + { + "get": + { + "summary": "Get Bulk Usage", + "operationId": "listUsageBulk", + "description": "Obtain usage data for all service points associated with the customer", + "tags": [ + "Electricity Usage" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/usageList" + } + } + }, + "post": + { + "summary": "Get Usage For Specific Service Points", + "operationId": "listUsageForServicePoints", + "description": "Obtain the electricity usage data for a specific set of service points", + "tags": [ + "Electricity Usage" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "requestBody": + { + "$ref": "#/components/requestBodies/servicePointIdList" + }, + "responses": + { + "200": + { + "$ref": "#/components/responses/usageList" + } + } + } + }, + "/energy/electricity/servicepoints/{servicePointId}/der": + { + "get": + { + "summary": "Get DER For Service Point", + "operationId": "getDERForServicePoint", + "description": "Obtain a list of DER data from a particular service point", + "tags": [ + "Distributed Energy Resources" + ], + "parameters": [ + { + "$ref": "#/components/parameters/servicePointId" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/derDetail" + } + } + } + }, + "/energy/electricity/servicepoints/der": + { + "get": + { + "summary": "Get Bulk DER", + "operationId": "listDERBulk", + "description": "Obtain DER data for all service points associated with the customer", + "tags": [ + "Distributed Energy Resources" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/derList" + } + } + }, + "post": + { + "summary": "Get DER For Specific Service Points", + "operationId": "listDERForServicePoints", + "description": "Obtain DER data for a specific set of service points", + "tags": [ + "Distributed Energy Resources" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "requestBody": + { + "$ref": "#/components/requestBodies/servicePointIdList" + }, + "responses": + { + "200": + { + "$ref": "#/components/responses/derList" + } + } + } + }, + "/energy/accounts": + { + "get": + { + "summary": "Get Accounts", + "operationId": "listAccounts", + "description": "Obtain the list of energy accounts available under the authorised consent", + "tags": [ + "Energy Accounts" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/accountList" + } + } + } + }, + "/energy/accounts/{accountId}": + { + "get": + { + "summary": "Get Account Detail", + "operationId": "getAccount", + "description": "Obtain detailed information for a specific energy account", + "tags": [ + "Energy Accounts" + ], + "parameters": [ + { + "$ref": "#/components/parameters/accountId" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/accountDetail" + } + } + } + }, + "/energy/accounts/{accountId}/payment-schedule": + { + "get": + { + "summary": "Get Agreed Payment Schedule", + "operationId": "getPaymentSchedule", + "description": "Obtain the agreed payment schedule and details, if any, for a specific energy account", + "tags": [ + "Energy Accounts" + ], + "parameters": [ + { + "$ref": "#/components/parameters/accountId" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/accountPaymentScheduleDetail" + } + } + } + }, + "/energy/accounts/{accountId}/concessions": + { + "get": + { + "summary": "Get Concessions", + "operationId": "getConcessions", + "description": "Obtain the details of any concessions or hardship arrangements applied to a specific energy account", + "tags": [ + "Energy Accounts" + ], + "parameters": [ + { + "$ref": "#/components/parameters/accountId" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/accountConcessionsDetail" + } + } + } + }, + "/energy/accounts/{accountId}/balance": + { + "get": + { + "summary": "Get Balance For Account", + "operationId": "getBalanceForAccount", + "description": "Obtain the current balance for a specific account", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/accountId" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/balanceDetail" + } + } + } + }, + "/energy/accounts/balances": + { + "get": + { + "summary": "Get Bulk Balances", + "operationId": "listBalancesBulk", + "description": "Obtain the current balance for all accounts", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/balanceList" + } + } + }, + "post": + { + "summary": "Get Balances For Specific Accounts", + "operationId": "listBalancesForAccounts", + "description": "Obtain the current balance for a specified set of accounts", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "requestBody": + { + "$ref": "#/components/requestBodies/accountIdList" + }, + "responses": + { + "200": + { + "$ref": "#/components/responses/balanceList" + } + } + } + }, + "/energy/accounts/{accountId}/invoices": + { + "get": + { + "summary": "Get Invoices For Account", + "operationId": "getInvoicesForAccount", + "description": "Obtain the invoices for a specific account", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/accountId" + }, + { + "$ref": "#/components/parameters/newest-date" + }, + { + "$ref": "#/components/parameters/oldest-date" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/invoiceList" + } + } + } + }, + "/energy/accounts/invoices": + { + "get": + { + "summary": "Get Bulk Invoices", + "operationId": "listInvoicesBulk", + "description": "Obtain the invoices for all accounts", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/newest-date" + }, + { + "$ref": "#/components/parameters/oldest-date" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/invoiceList" + } + } + }, + "post": + { + "summary": "Get Invoices For Specific Accounts", + "operationId": "listInvoicesForAccounts", + "description": "Obtain invoices for a specified set of accounts", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/newest-date" + }, + { + "$ref": "#/components/parameters/oldest-date" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "requestBody": + { + "$ref": "#/components/requestBodies/accountIdList" + }, + "responses": + { + "200": + { + "$ref": "#/components/responses/invoiceList" + } + } + } + }, + "/energy/accounts/{accountId}/billing": + { + "get": + { + "summary": "Get Billing For Account", + "operationId": "getBillingForAccount", + "description": "Obtain the billing transactions for a specific account", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/accountId" + }, + { + "$ref": "#/components/parameters/newest-time" + }, + { + "$ref": "#/components/parameters/oldest-time" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/billingList" + } + } + } + }, + "/energy/accounts/billing": + { + "get": + { + "summary": "Get Bulk Billing", + "operationId": "listBillingBulk", + "description": "Obtain billing transactions for all accounts", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/newest-time" + }, + { + "$ref": "#/components/parameters/oldest-time" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "responses": + { + "200": + { + "$ref": "#/components/responses/billingList" + } + } + }, + "post": + { + "summary": "Get Billing For Specific Accounts", + "operationId": "listBillingForAccounts", + "description": "Obtain billing for a specified set of accounts", + "tags": [ + "Billing" + ], + "parameters": [ + { + "$ref": "#/components/parameters/newest-time" + }, + { + "$ref": "#/components/parameters/oldest-time" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/page-size" + }, + { + "$ref": "#/components/parameters/x-v" + }, + { + "$ref": "#/components/parameters/x-min-v" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-cds-client-headers" + }], + "requestBody": + { + "$ref": "#/components/requestBodies/accountIdList" + }, + "responses": + { + "200": + { + "$ref": "#/components/responses/billingList" + } + } + } + } + } +} diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.eot b/docs/archive/standards-1.8.0/docs/fonts/slate.eot new file mode 100755 index 00000000..13c4839a Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.eot differ diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.svg b/docs/archive/standards-1.8.0/docs/fonts/slate.svg new file mode 100644 index 00000000..5f349823 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/fonts/slate.svg @@ -0,0 +1,14 @@ + + + +Generated by IcoMoon + + + + + + + + + + diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.ttf b/docs/archive/standards-1.8.0/docs/fonts/slate.ttf new file mode 100755 index 00000000..ace9a46a Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.ttf differ diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.woff b/docs/archive/standards-1.8.0/docs/fonts/slate.woff new file mode 100755 index 00000000..1e72e0ee Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.woff differ diff --git a/docs/archive/standards-1.8.0/docs/fonts/slate.woff2 b/docs/archive/standards-1.8.0/docs/fonts/slate.woff2 new file mode 100755 index 00000000..7c585a72 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/fonts/slate.woff2 differ diff --git a/docs/archive/standards-1.8.0/docs/images/clientCredentialsSequence.png b/docs/archive/standards-1.8.0/docs/images/clientCredentialsSequence.png new file mode 100644 index 00000000..a2de4c28 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/clientCredentialsSequence.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/cx_standards0.png b/docs/archive/standards-1.8.0/docs/images/cx_standards0.png new file mode 100644 index 00000000..6ce278e0 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/cx_standards0.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.eot b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.eot new file mode 100755 index 00000000..13c4839a Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.eot differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.svg b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.svg new file mode 100644 index 00000000..5f349823 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.svg @@ -0,0 +1,14 @@ + + + +Generated by IcoMoon + + + + + + + + + + diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.ttf b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.ttf new file mode 100755 index 00000000..ace9a46a Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.ttf differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff new file mode 100755 index 00000000..1e72e0ee Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff2 b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff2 new file mode 100755 index 00000000..7c585a72 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/fonts/slate.woff2 differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/clientCredentialsSequence.png b/docs/archive/standards-1.8.0/docs/images/docs/images/clientCredentialsSequence.png new file mode 100644 index 00000000..a2de4c28 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/clientCredentialsSequence.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/favicon.ico b/docs/archive/standards-1.8.0/docs/images/docs/images/favicon.ico new file mode 100644 index 00000000..bd624802 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/favicon.ico differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/holderDomain.png b/docs/archive/standards-1.8.0/docs/images/docs/images/holderDomain.png new file mode 100644 index 00000000..d2bbfdfc Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/holderDomain.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/logo.png b/docs/archive/standards-1.8.0/docs/images/docs/images/logo.png new file mode 100755 index 00000000..36c2504e Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/logo.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/logoSanta.png b/docs/archive/standards-1.8.0/docs/images/docs/images/logoSanta.png new file mode 100644 index 00000000..23253af8 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/logoSanta.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/navbar.png b/docs/archive/standards-1.8.0/docs/images/docs/images/navbar.png new file mode 100755 index 00000000..df38e90d Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/navbar.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartA.png b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartA.png new file mode 100644 index 00000000..f6824ed2 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartA.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartB.png b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartB.png new file mode 100644 index 00000000..6addc5e8 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartB.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartC.png b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartC.png new file mode 100644 index 00000000..2e920979 Binary files /dev/null and b/docs/archive/standards-1.8.0/docs/images/docs/images/redirPartC.png differ diff --git a/docs/archive/standards-1.8.0/docs/images/docs/javascripts/all.js b/docs/archive/standards-1.8.0/docs/images/docs/javascripts/all.js new file mode 100644 index 00000000..9f775e1e --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/images/docs/javascripts/all.js @@ -0,0 +1,131 @@ +!function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(e,t){t=t||ne;var n=t.createElement("script");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function r(e){var t=!!e&&"length"in e&&e.length,n=ge.type(e);return"function"!==n&&!ge.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function o(e,t,n){return ge.isFunction(t)?ge.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?ge.grep(e,function(e){return e===t!==n}):"string"!=typeof t?ge.grep(e,function(e){return ae.call(t,e)>-1!==n}):Ce.test(t)?ge.filter(t,e,n):(t=ge.filter(t,e),ge.grep(e,function(e){return ae.call(t,e)>-1!==n&&1===e.nodeType}))}function s(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function a(e){var t={};return ge.each(e.match(Le)||[],function(e,n){t[n]=!0}),t}function u(e){return e}function c(e){throw e}function l(e,t,n,r){var i;try{e&&ge.isFunction(i=e.promise)?i.call(e).done(t).fail(n):e&&ge.isFunction(i=e.then)?i.call(e,t,n):t.apply(undefined,[e].slice(r))}catch(e){n.apply(undefined,[e])}}function f(){ne.removeEventListener("DOMContentLoaded",f),e.removeEventListener("load",f),ge.ready()}function d(){this.expando=ge.expando+d.uid++}function p(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:He.test(e)?JSON.parse(e):e)}function h(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(Ie,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=p(n)}catch(e){}Pe.set(e,t,n)}else n=undefined;return n}function g(e,t,n,r){var i,o=1,s=20,a=r?function(){return r.cur()}:function(){return ge.css(e,t,"")},u=a(),c=n&&n[3]||(ge.cssNumber[t]?"":"px"),l=(ge.cssNumber[t]||"px"!==c&&+u)&&_e.exec(ge.css(e,t));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do{o=o||".5",l/=o,ge.style(e,t,l+c)}while(o!==(o=a()/u)&&1!==o&&--s)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function m(e){var t,n=e.ownerDocument,r=e.nodeName,i=ze[r];return i||(t=n.body.appendChild(n.createElement(r)),i=ge.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),ze[r]=i,i)}function v(e,t){for(var n,r,i=[],o=0,s=e.length;o-1)i&&i.push(o);else if(c=ge.contains(o.ownerDocument,o),s=y(f.appendChild(o),"script"),c&&x(s),n)for(l=0;o=s[l++];)Ue.test(o.type||"")&&n.push(o);return f}function w(){return!0}function T(){return!1}function S(){try{return ne.activeElement}catch(e){}}function E(e,t,n,r,i,o){var s,a;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=undefined);for(a in t)E(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=undefined):null==i&&("string"==typeof n?(i=r,r=undefined):(i=r,r=n,n=undefined)),!1===i)i=T;else if(!i)return e;return 1===o&&(s=i,i=function(e){return ge().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=ge.guid++)),e.each(function(){ge.event.add(this,t,i,r,n)})}function C(e,t){return i(e,"table")&&i(11!==t.nodeType?t:t.firstChild,"tr")?ge(">tbody",e)[0]||e:e}function k(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function N(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function j(e,t){var n,r,i,o,s,a,u,c;if(1===t.nodeType){if($e.hasData(e)&&(o=$e.access(e),s=$e.set(t,o),c=o.events)){delete s.handle,s.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof h&&!pe.checkClone&&nt.test(h))return e.each(function(n){var o=e.eq(n);g&&(t[0]=h.call(this,n,o.html())),L(o,t,r,i)});if(d&&(o=b(t,e[0].ownerDocument,!1,e,i),s=o.firstChild,1===o.childNodes.length&&(o=s),s||i)){for(a=ge.map(y(o,"script"),k),u=a.length;f=0&&nS.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[_]=!0,e}function i(e){var t=q.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)S.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Ee(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function p(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(s[c]=f))}}else x=v(x===s?x.splice(h,x.length):x),o?o(null,s,x,u):K.apply(s,x)})}function x(e){for(var t,n,r,i=e.length,o=S.relative[e[0].type],s=o||S.relative[" "],a=o?1:0,u=h(function(e){return e===t},s,!0),c=h(function(e){return ee(t,e)>-1},s,!0),l=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,i}];a1&&g(l),a>1&&p(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ae,"$1"),n,a0,o=e.length>0,s=function(r,s,a,u,c){var l,f,d,p=0,h="0",g=r&&[],m=[],y=A,x=r||o&&S.find.TAG("*",c),b=W+=null==y?1:Math.random()||.1,w=x.length;for(c&&(A=s===q||s||c);h!==w&&null!=(l=x[h]);h++){if(o&&l){for(f=0,s||l.ownerDocument===q||(O(l),a=!$);d=e[f++];)if(d(l,s||q,a)){u.push(l);break}c&&(W=b)}i&&((l=!d&&l)&&p--,r&&g.push(l))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,m,s,a);if(r){if(p>0)for(;h--;)g[h]||m[h]||(m[h]=J.call(u));m=v(m)}K.apply(u,m),c&&!r&&m.length>0&&p+n.length>1&&t.uniqueSort(u)}return c&&(W=b,A=y),g};return i?r(s):s}var w,T,S,E,C,k,N,j,A,L,D,O,q,F,$,P,H,I,R,_="sizzle"+1*new Date,M=e.document,W=0,B=0,z=n(),V=n(),X=n(),U=function(e,t){return e===t&&(D=!0),0},Q={}.hasOwnProperty,Y=[],J=Y.pop,G=Y.push,K=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),le=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Te=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Se=function(){O()},Ee=h(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(Y=Z.call(M.childNodes),M.childNodes),Y[M.childNodes.length].nodeType}catch(e){K={apply:Y.length?function(e,t){G.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}T=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},O=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:M;return r!==q&&9===r.nodeType&&r.documentElement?(q=r,F=q.documentElement,$=!C(q),M!==q&&(n=q.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Se,!1):n.attachEvent&&n.attachEvent("onunload",Se)),T.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),T.getElementsByTagName=i(function(e){return e.appendChild(q.createComment("")),!e.getElementsByTagName("*").length}),T.getElementsByClassName=me.test(q.getElementsByClassName),T.getById=i(function(e){return F.appendChild(e).id=_,!q.getElementsByName||!q.getElementsByName(_).length}),T.getById?(S.filter.ID=function(e){var t=e.replace(xe,be);return function(e){return e.getAttribute("id")===t}},S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&$){var n=t.getElementById(e);return n?[n]:[]}}):(S.filter.ID=function(e){var t=e.replace(xe,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&$){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),S.find.TAG=T.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):T.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},S.find.CLASS=T.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&$)return t.getElementsByClassName(e)},H=[],P=[],(T.qsa=me.test(q.querySelectorAll))&&(i(function(e){F.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+_+"-]").length||P.push("~="),e.querySelectorAll(":checked").length||P.push(":checked"),e.querySelectorAll("a#"+_+"+*").length||P.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=q.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&P.push(":enabled",":disabled"),F.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(T.matchesSelector=me.test(I=F.matches||F.webkitMatchesSelector||F.mozMatchesSelector||F.oMatchesSelector||F.msMatchesSelector))&&i(function(e){T.disconnectedMatch=I.call(e,"*"),I.call(e,"[s!='']:x"),H.push("!=",oe)}),P=P.length&&new RegExp(P.join("|")),H=H.length&&new RegExp(H.join("|")),t=me.test(F.compareDocumentPosition),R=t||me.test(F.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!T.sortDetached&&t.compareDocumentPosition(e)===n?e===q||e.ownerDocument===M&&R(M,e)?-1:t===q||t.ownerDocument===M&&R(M,t)?1:L?ee(L,e)-ee(L,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t];if(!i||!o)return e===q?-1:t===q?1:i?-1:o?1:L?ee(L,e)-ee(L,t):0;if(i===o)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?s(a[r],u[r]):a[r]===M?-1:u[r]===M?1:0},q):q},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==q&&O(e),n=n.replace(le,"='$1']"),T.matchesSelector&&$&&!X[n+" "]&&(!H||!H.test(n))&&(!P||!P.test(n)))try{var r=I.call(e,n);if(r||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,q,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==q&&O(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==q&&O(e);var n=S.attrHandle[t.toLowerCase()],r=n&&Q.call(S.attrHandle,t.toLowerCase())?n(e,t,!$):undefined;return r!==undefined?r:T.attributes||!$?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(we,Te)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(D=!T.detectDuplicates,L=!T.sortStable&&e.slice(0),e.sort(U),D){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return L=null,e},E=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},S=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,be),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=z[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&z(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(se," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,d,p,h,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?m.firstChild:m.lastChild],s&&y){for(d=m,f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),c=l[e]||[],p=c[0]===W&&c[1],x=p&&c[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){l[e]=[W,p,x];break}}else if(y&&(d=t,f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),c=l[e]||[],p=c[0]===W&&c[1],x=p),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++x||(y&&(f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),l[e]=[W,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=S.pseudos[e]||S.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[_]?o(n):o.length>1?(i=[e,e,"",n],S.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=ee(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=N(e.replace(ae,"$1"));return i[_]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,be),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,be).toLowerCase(),function(t){var n;do{if(n=$?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===F},focus:function(e){return e===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!S.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=o[0]).type&&9===t.nodeType&&$&&S.relative[o[1].type]){if(!(t=(S.find.ID(s.matches[0].replace(xe,be),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(s=o[i],!S.relative[a=s.type]);)if((u=S.find[a])&&(r=u(s.matches[0].replace(xe,be),ye.test(o[0].type)&&f(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&p(o)))return K.apply(n,r),n;break}}return(c||N(e,l))(r,t,!$,n,!t||ye.test(e)&&f(t.parentNode)||t),n},T.sortStable=_.split("").sort(U).join("")===_,T.detectDuplicates=!!D,O(),T.sortDetached=i(function(e){return 1&e.compareDocumentPosition(q.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),T.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);ge.find=be,ge.expr=be.selectors,ge.expr[":"]=ge.expr.pseudos,ge.uniqueSort=ge.unique=be.uniqueSort,ge.text=be.getText,ge.isXMLDoc=be.isXML,ge.contains=be.contains,ge.escapeSelector=be.escape;var we=function(e,t,n){for(var r=[],i=n!==undefined;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&ge(e).is(n))break;r.push(e)}return r},Te=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Se=ge.expr.match.needsContext,Ee=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,Ce=/^.[^:#\[\.,]*$/;ge.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ge.find.matchesSelector(r,e)?[r]:[]:ge.find.matches(e,ge.grep(t,function(e){return 1===e.nodeType}))},ge.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ge(e).filter(function(){for(t=0;t1?ge.uniqueSort(n):n},filter:function(e){return this.pushStack(o(this,e||[],!1))},not:function(e){return this.pushStack(o(this,e||[],!0))},is:function(e){return!!o(this,"string"==typeof e&&Se.test(e)?ge(e):e||[],!1).length}});var ke,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ge.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||ke,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ne.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ge?t[0]:t,ge.merge(this,ge.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:ne,!0)),Ee.test(r[1])&&ge.isPlainObject(t))for(r in t)ge.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=ne.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):ge.isFunction(e)?n.ready!==undefined?n.ready(e):e(ge):ge.makeArray(e,this)}).prototype=ge.fn,ke=ge(ne);var je=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};ge.fn.extend({has:function(e){var t=ge(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&ge.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ge.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?ae.call(ge(e),this[0]):ae.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ge.uniqueSort(ge.merge(this.get(),ge(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ge.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return we(e,"parentNode")},parentsUntil:function(e,t,n){return we(e,"parentNode",n)},next:function(e){return s(e,"nextSibling")},prev:function(e){return s(e,"previousSibling")},nextAll:function(e){return we(e,"nextSibling")},prevAll:function(e){return we(e,"previousSibling")},nextUntil:function(e,t,n){return we(e,"nextSibling",n)},prevUntil:function(e,t,n){return we(e,"previousSibling",n)},siblings:function(e){return Te((e.parentNode||{}).firstChild,e)},children:function(e){return Te(e.firstChild)},contents:function(e){return i(e,"iframe")?e.contentDocument:(i(e,"template")&&(e=e.content||e),ge.merge([],e.childNodes))}},function(e,t){ge.fn[e]=function(n,r){var i=ge.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ge.filter(r,i)),this.length>1&&(Ae[e]||ge.uniqueSort(i),je.test(e)&&i.reverse()),this.pushStack(i)}});var Le=/[^\x20\t\r\n\f]+/g;ge.Callbacks=function(e){e="string"==typeof e?a(e):ge.extend({},e);var t,n,r,i,o=[],s=[],u=-1,c=function(){for(i=i||e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)o.splice(n,1),n<=u&&u--}),this},has:function(e){return e?ge.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=s=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=s=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},ge.extend({Deferred:function(t){var n=[["notify","progress",ge.Callbacks("memory"),ge.Callbacks("memory"),2],["resolve","done",ge.Callbacks("once memory"),ge.Callbacks("once memory"),0,"resolved"],["reject","fail",ge.Callbacks("once memory"),ge.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return ge.Deferred(function(t){ge.each(n,function(n,r){var i=ge.isFunction(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&ge.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function o(t,n,r,i){return function(){var a=this,l=arguments,f=function(){var e,f;if(!(t=s&&(r!==c&&(a=undefined,l=[e]),n.rejectWith(a,l))}};t?d():(ge.Deferred.getStackHook&&(d.stackTrace=ge.Deferred.getStackHook()),e.setTimeout(d))}}var s=0;return ge.Deferred(function(e){n[0][3].add(o(0,e,ge.isFunction(i)?i:u,e.notifyWith)),n[1][3].add(o(0,e,ge.isFunction(t)?t:u)),n[2][3].add(o(0,e,ge.isFunction(r)?r:c))}).promise()},promise:function(e){return null!=e?ge.extend(e,i):i}},o={};return ge.each(n,function(e,t){var s=t[2],a=t[5];i[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[0][2].lock),s.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?undefined:this,arguments),this},o[t[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=ie.call(arguments),o=ge.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?ie.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(l(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||ge.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)l(i[n],s(n),o.reject);return o.promise()}});var De=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ge.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&De.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},ge.readyException=function(t){e.setTimeout(function(){throw t})};var Oe=ge.Deferred();ge.fn.ready=function(e){return Oe.then(e)["catch"](function(e){ge.readyException(e)}),this},ge.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ge.readyWait:ge.isReady)||(ge.isReady=!0,!0!==e&&--ge.readyWait>0||Oe.resolveWith(ne,[ge]))}}),ge.ready.then=Oe.then,"complete"===ne.readyState||"loading"!==ne.readyState&&!ne.documentElement.doScroll?e.setTimeout(ge.ready):(ne.addEventListener("DOMContentLoaded",f),e.addEventListener("load",f));var qe=function(e,t,n,r,i,o,s){var a=0,u=e.length,c=null==n;if("object"===ge.type(n)){i=!0;for(a in n)qe(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,ge.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ge(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each(function(){Pe.remove(this,e)})}}),ge.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=$e.get(e,t),n&&(!r||Array.isArray(n)?r=$e.access(e,t,ge.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ge.queue(e,t),r=n.length,i=n.shift(),o=ge._queueHooks(e,t),s=function(){ge.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return $e.get(e,n)||$e.access(e,n,{empty:ge.Callbacks("once memory").add(function(){$e.remove(e,[t+"queue",n])})})}}),ge.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Ue=/^$|\/(?:java|ecma)script/i,Qe={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Qe.optgroup=Qe.option,Qe.tbody=Qe.tfoot=Qe.colgroup=Qe.caption=Qe.thead,Qe.th=Qe.td;var Ye=/<|&#?\w+;/;!function(){var e=ne.createDocumentFragment(),t=e.appendChild(ne.createElement("div")),n=ne.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),pe.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",pe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Je=ne.documentElement,Ge=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^([^.]*)(?:\.(.+)|)/;ge.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,c,l,f,d,p,h,g,m=$e.get(e);if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&ge.find.matchesSelector(Je,i), +n.guid||(n.guid=ge.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return void 0!==ge&&ge.event.triggered!==t.type?ge.event.dispatch.apply(e,arguments):undefined}),t=(t||"").match(Le)||[""],c=t.length;c--;)a=Ze.exec(t[c])||[],p=g=a[1],h=(a[2]||"").split(".").sort(),p&&(f=ge.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=ge.event.special[p]||{},l=ge.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ge.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||(d=u[p]=[],d.delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,s)||e.addEventListener&&e.addEventListener(p,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),ge.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,c,l,f,d,p,h,g,m=$e.hasData(e)&&$e.get(e);if(m&&(u=m.events)){for(t=(t||"").match(Le)||[""],c=t.length;c--;)if(a=Ze.exec(t[c])||[],p=g=a[1],h=(a[2]||"").split(".").sort(),p){for(f=ge.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=u[p]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)l=d[o],!i&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(d.splice(o,1),l.selector&&d.delegateCount--,f.remove&&f.remove.call(e,l));s&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,m.handle)||ge.removeEvent(e,p,m.handle),delete u[p])}else for(p in u)ge.event.remove(e,p+t[c],n,r,!0);ge.isEmptyObject(u)&&$e.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=ge.event.fix(e),u=new Array(arguments.length),c=($e.get(this,"events")||{})[a.type]||[],l=ge.event.special[a.type]||{};for(u[0]=a,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],s={},n=0;n-1:ge.find(i,this,null,[c]).length),s[i]&&o.push(r);o.length&&a.push({elem:c,handlers:o})}return c=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,tt=/\s*$/g;ge.extend({htmlPrefilter:function(e){return e.replace(et,"<$1>")},clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=ge.contains(e.ownerDocument,e);if(!(pe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ge.isXMLDoc(e)))for(s=y(a),o=y(e),r=0,i=o.length;r0&&x(s,!u&&y(e,"script")),a},cleanData:function(e){for(var t,n,r,i=ge.event.special,o=0;(n=e[o])!==undefined;o++)if(Fe(n)){if(t=n[$e.expando]){if(t.events)for(r in t.events)i[r]?ge.event.remove(n,r):ge.removeEvent(n,r,t.handle);n[$e.expando]=undefined}n[Pe.expando]&&(n[Pe.expando]=undefined)}}}),ge.fn.extend({detach:function(e){return D(this,e,!0)},remove:function(e){return D(this,e)},text:function(e){return qe(this,function(e){return e===undefined?ge.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return L(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||C(this,e).appendChild(e)})},prepend:function(){return L(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return L(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return L(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ge.cleanData(y(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ge.clone(this,e,t)})},html:function(e){return qe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tt.test(e)&&!Qe[(Xe.exec(e)||["",""])[1].toLowerCase()]){e=ge.htmlPrefilter(e);try{for(;n1)}}),ge.Tween=R,R.prototype={constructor:R,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ge.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ge.cssNumber[n]?"":"px")},cur:function(){var e=R.propHooks[this.prop];return e&&e.get?e.get(this):R.propHooks._default.get(this)},run:function(e){var t,n=R.propHooks[this.prop];return this.options.duration?this.pos=t=ge.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):R.propHooks._default.set(this),this}},R.prototype.init.prototype=R.prototype,R.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ge.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){ge.fx.step[e.prop]?ge.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[ge.cssProps[e.prop]]&&!ge.cssHooks[e.prop]?e.elem[e.prop]=e.now:ge.style(e.elem,e.prop,e.now+e.unit)}}},R.propHooks.scrollTop=R.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ge.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ge.fx=R.prototype.init,ge.fx.step={};var ht,gt,mt=/^(?:toggle|show|hide)$/,vt=/queueHooks$/;ge.Animation=ge.extend(X,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return g(n.elem,e,_e.exec(t),n),n}]},tweener:function(e,t){ge.isFunction(e)?(t=e,e=["*"]):e=e.match(Le);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){ge.removeAttr(this,e)})}}),ge.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ge.prop(e,t,n):(1===o&&ge.isXMLDoc(e)||(i=ge.attrHooks[t.toLowerCase()]||(ge.expr.match.bool.test(t)?yt:undefined)),n!==undefined?null===n?void ge.removeAttr(e,t):i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=ge.find.attr(e,t),null==r?undefined:r))},attrHooks:{type:{set:function(e,t){if(!pe.radioValue&&"radio"===t&&i(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Le);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),yt={set:function(e,t,n){return!1===t?ge.removeAttr(e,n):e.setAttribute(n,n),n}},ge.each(ge.expr.match.bool.source.match(/\w+/g),function(e,t){var n=xt[t]||ge.find.attr;xt[t]=function(e,t,r){var i,o,s=t.toLowerCase();return r||(o=xt[s],xt[s]=i,i=null!=n(e,t,r)?s:null,xt[s]=o),i}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;ge.fn.extend({prop:function(e,t){return qe(this,ge.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[ge.propFix[e]||e]})}}),ge.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ge.isXMLDoc(e)||(t=ge.propFix[t]||t,i=ge.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ge.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),pe.optSelected||(ge.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ge.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ge.propFix[this.toLowerCase()]=this}),ge.fn.extend({addClass:function(e){var t,n,r,i,o,s,a,u=0;if(ge.isFunction(e))return this.each(function(t){ge(this).addClass(e.call(this,t,Q(this)))});if("string"==typeof e&&e)for(t=e.match(Le)||[];n=this[u++];)if(i=Q(n),r=1===n.nodeType&&" "+U(i)+" "){for(s=0;o=t[s++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");a=U(r),i!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,i,o,s,a,u=0;if(ge.isFunction(e))return this.each(function(t){ge(this).removeClass(e.call(this,t,Q(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Le)||[];n=this[u++];)if(i=Q(n),r=1===n.nodeType&&" "+U(i)+" "){for(s=0;o=t[s++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");a=U(r),i!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):ge.isFunction(e)?this.each(function(n){ge(this).toggleClass(e.call(this,n,Q(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=ge(this),o=e.match(Le)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else e!==undefined&&"boolean"!==n||(t=Q(this),t&&$e.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":$e.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+U(Q(n))+" ").indexOf(t)>-1)return!0;return!1}});var Tt=/\r/g;ge.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=ge.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ge(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=ge.map(i,function(e){return null==e?"":e+""})),(t=ge.valHooks[this.type]||ge.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))})):i?(t=ge.valHooks[i.type]||ge.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace(Tt,""):null==n?"":n):void 0}}),ge.extend({valHooks:{option:{get:function(e){var t=ge.find.attr(e,"value");return null!=t?t:U(ge.text(e))}},select:{get:function(e){var t,n,r,o=e.options,s=e.selectedIndex,a="select-one"===e.type,u=a?null:[],c=a?s+1:o.length;for(r=s<0?c:a?s:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ge.each(["radio","checkbox"],function(){ge.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=ge.inArray(ge(e).val(),t)>-1}},pe.checkOn||(ge.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var St=/^(?:focusinfocus|focusoutblur)$/;ge.extend(ge.event,{trigger:function(t,n,r,i){var o,s,a,u,c,l,f,d=[r||ne],p=le.call(t,"type")?t.type:t,h=le.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||ne,3!==r.nodeType&&8!==r.nodeType&&!St.test(p+ge.event.triggered)&&(p.indexOf(".")>-1&&(h=p.split("."),p=h.shift(),h.sort()),c=p.indexOf(":")<0&&"on"+p,t=t[ge.expando]?t:new ge.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:ge.makeArray(n,[t]),f=ge.event.special[p]||{},i||!f.trigger||!1!==f.trigger.apply(r,n))){if(!i&&!f.noBubble&&!ge.isWindow(r)){for(u=f.delegateType||p,St.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),a=s;a===(r.ownerDocument||ne)&&d.push(a.defaultView||a.parentWindow||e)}for(o=0;(s=d[o++])&&!t.isPropagationStopped();)t.type=o>1?u:f.bindType||p,l=($e.get(s,"events")||{})[t.type]&&$e.get(s,"handle"),l&&l.apply(s,n),(l=c&&s[c])&&l.apply&&Fe(s)&&(t.result=l.apply(s,n),!1===t.result&&t.preventDefault());return t.type=p,i||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(d.pop(),n)||!Fe(r)||c&&ge.isFunction(r[p])&&!ge.isWindow(r)&&(a=r[c],a&&(r[c]=null),ge.event.triggered=p,r[p](),ge.event.triggered=undefined,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=ge.extend(new ge.Event,n,{type:e,isSimulated:!0});ge.event.trigger(r,null,t)}}),ge.fn.extend({trigger:function(e,t){return this.each(function(){ge.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ge.event.trigger(e,t,n,!0)}}),ge.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){ge.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ge.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),pe.focusin="onfocusin"in e,pe.focusin||ge.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ge.event.simulate(t,e.target,ge.event.fix(e))};ge.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=$e.access(r,t);i||r.addEventListener(e,n,!0),$e.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=$e.access(r,t)-1;i?$e.access(r,t,i):(r.removeEventListener(e,n,!0),$e.remove(r,t))}}});var Et=e.location,Ct=ge.now(),kt=/\?/;ge.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=undefined}return n&&!n.getElementsByTagName("parsererror").length||ge.error("Invalid XML: "+t),n};var Nt=/\[\]$/,jt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Lt=/^(?:input|select|textarea|keygen)/i;ge.param=function(e,t){var n,r=[],i=function(e,t){var n=ge.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!ge.isPlainObject(e))ge.each(e,function(){i(this.name,this.value)});else for(n in e)Y(n,e[n],t,i);return r.join("&")},ge.fn.extend({serialize:function(){return ge.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ge.prop(this,"elements");return e?ge.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ge(this).is(":disabled")&&Lt.test(this.nodeName)&&!At.test(e)&&(this.checked||!Ve.test(e))}).map(function(e,t){var n=ge(this).val();return null==n?null:Array.isArray(n)?ge.map(n,function(e){return{name:t.name,value:e.replace(jt,"\r\n")}}):{name:t.name,value:n.replace(jt,"\r\n")}}).get()}});var Dt=/%20/g,Ot=/#.*$/,qt=/([?&])_=[^&]*/,Ft=/^(.*?):[ \t]*([^\r\n]*)$/gm,$t=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Pt=/^(?:GET|HEAD)$/,Ht=/^\/\//,It={},Rt={},_t="*/".concat("*"),Mt=ne.createElement("a");Mt.href=Et.href,ge.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:$t.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ge.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?K(K(e,ge.ajaxSettings),t):K(ge.ajaxSettings,e)},ajaxPrefilter:J(It),ajaxTransport:J(Rt),ajax:function(t,n){function r(t,n,r,a){var c,d,p,b,w,T=n;l||(l=!0,u&&e.clearTimeout(u),i=undefined,s=a||"",S.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(b=Z(h,S,r)),b=ee(h,b,S,c),c?(h.ifModified&&(w=S.getResponseHeader("Last-Modified"),w&&(ge.lastModified[o]=w),(w=S.getResponseHeader("etag"))&&(ge.etag[o]=w)),204===t||"HEAD"===h.type?T="nocontent":304===t?T="notmodified":(T=b.state,d=b.data,p=b.error,c=!p)):(p=T,!t&&T||(T="error",t<0&&(t=0))),S.status=t,S.statusText=(n||T)+"",c?v.resolveWith(g,[d,T,S]):v.rejectWith(g,[S,T,p]),S.statusCode(x),x=undefined,f&&m.trigger(c?"ajaxSuccess":"ajaxError",[S,h,c?d:p]),y.fireWith(g,[S,T]),f&&(m.trigger("ajaxComplete",[S,h]),--ge.active||ge.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=undefined),n=n||{};var i,o,s,a,u,c,l,f,d,p,h=ge.ajaxSetup({},n),g=h.context||h,m=h.context&&(g.nodeType||g.jquery)?ge(g):ge.event,v=ge.Deferred(),y=ge.Callbacks("once memory"),x=h.statusCode||{},b={},w={},T="canceled",S={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=Ft.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)S.always(e[S.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(v.promise(S),h.url=((t||h.url||Et.href)+"").replace(Ht,Et.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(Le)||[""],null==h.crossDomain){c=ne.createElement("a");try{c.href=h.url,c.href=c.href,h.crossDomain=Mt.protocol+"//"+Mt.host!=c.protocol+"//"+c.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=ge.param(h.data,h.traditional)),G(It,h,n,S),l)return S;f=ge.event&&h.global,f&&0==ge.active++&&ge.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Pt.test(h.type),o=h.url.replace(Ot,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Dt,"+")):(p=h.url.slice(o.length),h.data&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(qt,"$1"),p=(kt.test(o)?"&":"?")+"_="+Ct+++p),h.url=o+p),h.ifModified&&(ge.lastModified[o]&&S.setRequestHeader("If-Modified-Since",ge.lastModified[o]),ge.etag[o]&&S.setRequestHeader("If-None-Match",ge.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&S.setRequestHeader("Content-Type",h.contentType),S.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+_t+"; q=0.01":""):h.accepts["*"]);for(d in h.headers)S.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(g,S,h)||l))return S.abort();if(T="abort",y.add(h.complete),S.done(h.success),S.fail(h.error),i=G(Rt,h,n,S)){if(S.readyState=1,f&&m.trigger("ajaxSend",[S,h]),l)return S;h.async&&h.timeout>0&&(u=e.setTimeout(function(){S.abort("timeout")},h.timeout));try{l=!1,i.send(b,r)}catch(e){if(l)throw e;r(-1,e)}}else r(-1,"No Transport");return S},getJSON:function(e,t,n){return ge.get(e,t,n,"json")},getScript:function(e,t){return ge.get(e,undefined,t,"script")}}),ge.each(["get","post"],function(e,t){ge[t]=function(e,n,r,i){return ge.isFunction(n)&&(i=i||r,r=n,n=undefined),ge.ajax(ge.extend({url:e,type:t,dataType:i,data:n,success:r},ge.isPlainObject(e)&&e))}}),ge._evalUrl=function(e){return ge.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},ge.fn.extend({wrapAll:function(e){var t;return this[0]&&(ge.isFunction(e)&&(e=e.call(this[0])),t=ge(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return ge.isFunction(e)?this.each(function(t){ge(this).wrapInner(e.call(this,t))}):this.each(function(){var t=ge(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ge.isFunction(e);return this.each(function(n){ge(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ge(this).replaceWith(this.childNodes)}),this}}),ge.expr.pseudos.hidden=function(e){return!ge.expr.pseudos.visible(e)},ge.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ge.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Bt=ge.ajaxSettings.xhr();pe.cors=!!Bt&&"withCredentials"in Bt,pe.ajax=Bt=!!Bt,ge.ajaxTransport(function(t){var n,r;if(pe.cors||Bt&&!t.crossDomain)return{send:function(i,o){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(s in i)a.setRequestHeader(s,i[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Wt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),a.onabort!==undefined?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),ge.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ge.ajaxSetup({accepts:{ +script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ge.globalEval(e),e}}}),ge.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ge.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=ge(" + + + + + + NAV + Navbar + + + +
+
+
+

Endpoint Version Schedule

+

The following tables describe the endpoint versions and the dates they become binding within the data standards.

+ +

Binding Date indicates the dates the particular version of an endpoint becomes binding in the data standards.

+ +

Retirement Date indicates, where relevant, denotes the date a specific version can be retired and is no longer supported. All consumers of the affected endpoint must upgrade to a more recent version currently available.

+ +

Date Introduced indicates the release of the standards, including release date, when the endpoint version was first introduced. This is not the Binding Date.

+ +

Date Deprecated indicates the release of the standards, including release date, when the endpoint version was first marked for deprecation. This is not the Retirement Date.

+

Data Holders

+

The following versioning schedule is reflective of the endpoints hosted by Data Holders. Data Holders should take into account their phasing obligations in accordance with the CDR Rules as well as any exemptions granted, when determining which API versions are considered applicable.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SectionSub-sectionEndpointMethodVersionBinding DateRetirement DateDate IntroducedDate Deprecated
Banking APIsGet Products/banking/productsGETV12020-02-012020-09-292019-09-30, v1.0.02020-01-31, v1.2.0
Banking APIsGet Products/banking/productsGETV22020-07-31N/A2020-01-31, V1.2.0N/A
Banking APIsGet Products/banking/productsGETV32021-02-28N/A2020-04-17, V1.3.0N/A
Banking APIsGet Product Detail/banking/product/{productId}GETV12020-02-012020-09-292019-09-30, v1.0.02020-09-01
Banking APIsGet Product Detail/banking/product/{productId}GETV22020-07-31N/A2020-01-31, V1.2.0N/A
Banking APIsGet Product Detail/banking/product/{productId}GETV32021-02-28N/A2020-04-17, V1.3.0N/A
Banking APIsGet Accounts/banking/accounts/GETV12020-07-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Account Balances/banking/accounts/balancesGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Balances For Specific Accounts/banking/accounts/balancesPOSTV12020-07-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Account Balance/banking/accounts/{accountId}/balanceGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Account Detail/banking/accounts/{accountId}/GETV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Transactions For Account/banking/accounts/{accountId}/transactionsGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Transaction Detail/banking/accounts/{accountId}/transactions/{transactionId}GETV12020-07-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Direct Debits For Account/banking/accounts/{accountId}/direct-debitsGETV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Bulk Direct Debits/banking/accounts/direct-debitsGETV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Direct Debits For Specific Accounts/banking/accounts/direct-debitsPOSTV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Scheduled Payments For Account/banking/accounts/{accountId}/payments/scheduledGETV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Scheduled Payments Bulk/banking/payments/scheduledGETV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Scheduled Payments For Specific Accounts/banking/payments/scheduledPOSTV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Payees/banking/payeesGETV12020-11-01N/A2019-09-30, v1.0.0N/A
Banking APIsGet Payee Detail/banking/payees/{payeeId}GETV12020-11-01N/A2019-09-30, v1.0.0N/A
Common APIsGet Customer/common/customerGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Common APIsGet Customer Detail/common/customer/detailGETV12020-11-01N/A2019-09-30, v1.0.0N/A
Common APIsGet Status/discovery/statusGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Common APIsGet Outages/discovery/outagesGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Admin APIsMetadata Update/admin/register/metadataPOSTV12020-07-01N/A2019-09-30, v1.0.0N/A
Admin APIsGet Metrics/admin/metricsGETV12020-07-01N/A2019-09-30, v1.0.0N/A
Admin APIsGet Metrics/admin/metricsGETV22021-07-31N/A2020-09-16, v1.5.0N/A
InfoSec ProfileEndpointsCDR Arrangement Revocation EndpointPOST1.5.02020-11-01N/A2020-04-17, v1.2.0N/A
+

Data Recipients

+

The following versioning schedule is reflective of the endpoints hosted by Data Recipients. +Data Recipients should take into account their commencement date within the CDR, relevant obligations in accordance with the CDR Rules, as well as any exemptions granted when factoring in which API versions are considered applicable.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SectionSub-sectionEndpointMethodVersionBinding DateRetirement DateDate IntroducedDate Deprecated
InfoSec ProfileEndpointsADR Token Revocation EndpointPOST1.5.02020-07-012021-02-012019-09-30, v1.0.02020-04-17, v1.2.0
InfoSec ProfileEndpointsCDR Arrangement Revocation EndpointPOST1.5.02020-11-01N/A2020-04-17, v1.2.0N/A
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/known-issues b/docs/archive/standards-1.8.0/docs/includes/known-issues new file mode 100644 index 00000000..bdb19773 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/known-issues @@ -0,0 +1,2 @@ +

Known Issues

+

This version of the standards currently has no known issues

diff --git a/docs/archive/standards-1.8.0/docs/includes/nfrs b/docs/archive/standards-1.8.0/docs/includes/nfrs new file mode 100644 index 00000000..cd077eb0 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/nfrs @@ -0,0 +1,187 @@ +

Non-functional Requirements

+ + +

The non-functional requirements (NFRs) for the Consumer Data Right regime cover a number of considerations:

+ +
    +
  • Minimum performance and availability expectations for data holders. Included to ensure a reliable and performant service is offered to data recipients and customers.
  • +
  • Maximum traffic expectations for data holders. Included to ensure there is a ceiling for the amount of traffic that a data holder is expected to service.
  • +
  • Requirements for reporting of performance. Included to provide transparency of performance without the need for time consuming auditing or inspection.
  • +
  • Requirements for data latency and quality. Included to give a clear indication to the depth and recency of the data available under the regime.
  • +
  • Limitations on the number of calls that a data recipient can make to a single provider. Included to protect data holders from poorly designed or overly transactional data recipient implementations.
  • +
+

Definitions

+

In the following definition of NFRs specific terms have the following meanings:

+ +
    +
  • Data Recipient: For the purposes of these NFRs a data recipient is defined as a configured application presented in the register meta data. This acknowledges that a single accredited entity may be able to register multiple independent services (or apps) that can obtain authorisations from consumers independently of each other.
  • +
  • Session: A session is defined as the life span of a unique Access Token. Multiple API requests made with a single, valid, Access Token would be considered part of a single Session.
  • +
  • Customer Present: Authenticated API requests made in direct response to interactions by the end customer using the digital services of the data recipient will be considered “Customer Present”. Technically a data holder will define an API request as “Customer Present” if, and only if, the x-fapi-customer-ip-address header is populated with a valid IP address of the end customer’s device.
  • +
  • Customer Not Present: Authenticated API requests that are not deemed to be “Customer Present”
  • +
  • Unattended: A synonym of “Customer Not Present”
  • +
  • Authenticated: API requests to API end points that the standards require to be protected by security mechanisms that enforce explicit customer authorisation
  • +
  • Unauthenticated: API requests to API end points that the standards deem to be publically available. This implies that these end points may be accessed by any client without the client performing any authentication or authorisation actions
  • +
  • High Traffic Period: Any time in the 18 hour period between 6am and 12am (midnight) is considered to be a high traffic period
  • +
  • Low Traffic Period: Any time of the day not considered to be included in a high traffic period.
  • +
  • Large Payload: An API which is capable of returning a large data response that would reasonably impose higher data retrieval times on the resource server. Typically bulk request end points.
  • +
+

Session Requirements

+

A expiry time of a unique session should be set according to the statements included in the Security Profile.

+ +

After a unique session is expired it is expected that the data recipient, for the same customer, may establish a new session as long as the authorisation is still valid.

+

Availability Requirements

+

Service availability requirement for data holders: +99.5% per month

+ +

The definition of a period of unavailability is any period of time when any of the API end points defined in the standard is unable to reliably provide a successful response to an appropriately constructed request.

+ +

The availability requirement applies to both authenticated and unauthenticated end points.

+ +

The availability requirement does not include planned outages. Planned outages should be:

+ +
    +
  • Commensurate in length and frequency to other primary digital channels offered by the data holder,
  • +
  • Published to data recipients with at least one week lead time for normal outages,
  • +
  • May occur without notification if the change is to resolve a critical service or security issue.
  • +
+

Performance Requirements

+

API end point performance will be measured in response time of individual API requests from receipt of request to delivery of response.

+ +

It is understood that different response times can be measured depending on which technical layer of an API implementation stack is instrumented and that not all of the technical layers between the data recipient and the data holder will be in the control of the data holder. As this is implementation specific it is expected that the data holder will ensure that the measurement of response time occurs as close to the data recipient as practicable.

+ +

In light of these considerations, the performance requirement for data holders is:

+ +

95% of calls per hour responded to within a nominated threshold

+ +

The nominated threshold for each end point will be according to the following table:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TierResponse TimeApplies To…
Unauthenticated1500msAll Unauthenticated end points not otherwise specified in a separate threshold.
High Priority1000msAll calls to the following end points:
  • All InfoSec end points including Dynamic Client Registration
  • CDR Arrangement Revocation
The following Unauthenticated end points:
  • Get Status
  • Get Outages
Customer Present calls to the following end points:
  • Get Accounts
  • Get Customer
  • Get Customer Detail
Low Priority1500msCustomer Present calls to the following end points:
  • Get Account Detail
  • Get Account Balance
  • Get Bulk Balances
  • Get Balances For Specific Accounts
  • Get Transactions For Account
  • Get Transaction Detail
  • Get Payees
  • Get Payee Detail
  • Get Direct Debits For Account
  • Get Scheduled Payments For Account
  • Get Scheduled Payments Bulk
  • Get Scheduled Payments For Specific Accounts
Unattended4000msUnattended calls to the following end points that are not Large Payload end points:
  • High Priority Authenticated end points
  • Low Priority Authenticated end points
  • All Admin end points.
Large Payload6000msAny Unattended calls to the following end points:
  • Get Bulk Direct Debits
  • Get Direct Debits For Specific Accounts
+ +

Note that calls initiated in excess of a traffic threshold (see next section) may be excluded from the performance requirement.

+

Traffic Thresholds

+

Calls in excess of the following traffic thresholds will be able to be freely throttled or rejected by a data holder without impact to their performance or availability requirements.

+ +

Traffic thresholds will be set using the following metrics:

+ +
    +
  • Number of sessions per day – the number of individual sessions initiated in a calendar day.
  • +
  • Transactions Per Second (TPS) – the number of concurrent transactions each second.
  • +
  • Number of calls – the number of end point calls initiated for a specified duration.
  • +
+ +

For Customer Present and authorisation traffic the following traffic thresholds will apply:

+ +
    +
  • Unlimited sessions per day
  • +
  • 10 TPS per customer
  • +
  • 50 TPS per data recipient
  • +
+ +

For Unattended traffic the following traffic thresholds will apply for low traffic periods:

+ +
    +
  • 20 sessions per day, per customer, per data recipient
  • +
  • 100 total calls per session
  • +
  • 5TPS per session
  • +
  • 50 TPS per data recipient
  • +
+ +

For Unattended traffic during high traffic periods only best effort support is required.

+ +

For secure traffic (both Customer Present and Unattended) the following traffic thresholds will apply:

+ +
    +
  • 300 TPS total across all consumers
  • +
+ +

For Public traffic (i.e. traffic to unauthenticated end points) the following traffic thresholds will apply:

+ +
    +
  • 300 TPS total across all consumers (additive to secure traffic)
  • +
+

Data Recipient Requirements

+

Data recipients will be limited by the traffic thresholds documented in the previous section. In addition to this data recipients are expected to design their services according to the following principles:

+ +
    +
  • Services should be designed to minimise traffic with data holders
  • +
  • Services should be designed to be resilient in the case of the rejection of a call by a data holder due to traffic threshold breaches
  • +
  • Services should schedule unattended calls to avoid high traffic periods
  • +
  • Unattended calls should be managed to avoid short term bursts of traffic
  • +
+

Reporting Requirements

+

The mechanism for reporting will be via the CDR Administration Endpoints.

+ +

The following information is to be reported:

+ +
    +
  • Availability for current month
  • +
  • Availability for each of the previous twelve months
  • +
  • Percentage of calls within performance threshold for current day
  • +
  • Percentage of calls within performance threshold for each of the previous seven days
  • +
  • Number of calls within each performance tier for current day
  • +
  • Number of calls within each performance tier for each of the previous seven days
  • +
  • Average response time within each performance tier for current day
  • +
  • Average response time within each performance tier for each of the previous seven days
  • +
  • Number of sessions for current day
  • +
  • Number of sessions for each of the previous seven days
  • +
  • Peak total TPS for current day
  • +
  • Peak total TPS for each of the previous seven days
  • +
  • Average TPS for current day
  • +
  • Average TPS for each of the previous seven days
  • +
  • Number of calls resulting in error due to server execution for current day
  • +
  • Number of calls resulting in error due to server execution for each of the previous seven days
  • +
  • Number of calls rejected due to traffic thresholds for current day
  • +
  • Number of calls rejected due to traffic thresholds for each of the previous seven days
  • +
  • Number of customers with active authorisations
  • +
  • Number of data recipients with active authorisations
  • +
+

Data Latency

+

Within this proposal there is no specific requirement with regard to data latency (ie. how up to date data should be). Instead, the requirement for data latency is that data presented via API end points should be commensurate to data presented via other primary digital channels.

+ +

For example, for a Bank that provides a mobile application as their primary digital experience, a balance presented via one of the balance end points should be the same as the balance presented through the mobile application.

+

Data Quality

+

Data holders are required to take reasonable steps to ensure that CDR data, having regard to the purpose for which it is held, is accurate and up to date.

+ +

A data holder is required to be able to demonstrate that reasonable steps to maintain data quality are being undertaken.

+

Exemptions To Protect Service

+

In the event of the following extreme circumstances data holders will be able to obtain relief from non-functional requirements:

+ +
    +
  • Periods of time when the digital channels for the data holder are the target for a distributed denial of service or equivalent form of attack (this should result in http error 429 Too Many Requests being returned).
  • +
  • A significant increase in traffic from a poorly designed or misbehaving data recipient (this should result in http error 429 Too Many Requests being returned).
  • +
  • If the data holder identifies a situation where there is the potential for physical or financial harm or abuse (this should result in http error 403 Forbidden being returned).
  • +
diff --git a/docs/archive/standards-1.8.0/docs/includes/obsolete/get-metrics-v1.html b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-metrics-v1.html new file mode 100644 index 00000000..dce57644 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-metrics-v1.html @@ -0,0 +1,1325 @@ + + + + + + + + Get Metrics v1 + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Metrics V1

+

This page documents the obsolete version 1 of the Get Metrics end point.

+ +

This version is to be ceased to be called by data recipients by 31st July 2021 and can be decommissioned by data holders as of that date.

+

Get Metrics

+

+ +
+

Code samples

+
+
GET https://data.holder.com.au/cds-au/v1/admin/metrics HTTP/1.1
+Host: data.holder.com.au
+Accept: application/json
+x-v: string
+x-min-v: string
+
+
var headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string'
+
+};
+
+$.ajax({
+  url: 'https://data.holder.com.au/cds-au/v1/admin/metrics',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+

GET /admin/metrics

+ +

This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime.

+

Endpoint Version

+ + + + + + + + + + +
Version1
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
periodquerystringoptionalThe period of metrics to be requested. Values can be CURRENT (meaning metrics for current day), HISTORIC (meaning metrics for previous days or months) or ALL. If absent the default is ALL.
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 should 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]#request-headers) and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + +
ParameterValue
periodCURRENT
periodHISTORIC
periodALL
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "requestTime": "string",
+    "availability": {
+      "currentMonth": 0,
+      "previousMonths": [
+        0
+      ]
+    },
+    "performance": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "invocations": {
+      "unauthenticated": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "highPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "lowPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "unattended": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "largePayload": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      }
+    },
+    "averageResponse": {
+      "unauthenticated": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "highPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "lowPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "unattended": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "largePayload": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      }
+    },
+    "sessionCount": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "averageTps": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "peakTps": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "errors": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "rejections": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "customerCount": 0,
+    "recipientCount": 0
+  },
+  "links": {
+    "self": "string"
+  },
+  "meta": {}
+}
+
+

Responses

+ + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessResponseMetricsList
+

Response Headers

+ + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
+ + +

Schemas

+

ResponseMetricsList

+ +

+
{
+  "data": {
+    "requestTime": "string",
+    "availability": {
+      "currentMonth": 0,
+      "previousMonths": [
+        0
+      ]
+    },
+    "performance": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "invocations": {
+      "unauthenticated": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "highPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "lowPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "unattended": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "largePayload": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      }
+    },
+    "averageResponse": {
+      "unauthenticated": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "highPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "lowPriority": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "unattended": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      },
+      "largePayload": {
+        "currentDay": 0,
+        "previousDays": [
+          0
+        ]
+      }
+    },
+    "sessionCount": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "averageTps": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "peakTps": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "errors": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "rejections": {
+      "currentDay": 0,
+      "previousDays": [
+        0
+      ]
+    },
+    "customerCount": 0,
+    "recipientCount": 0
+  },
+  "links": {
+    "self": "string"
+  },
+  "meta": {}
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
dataobjectmandatorynonenone
» requestTimeDateTimeStringmandatorynoneThe date and time that the metrics in this payload were requested.
» availabilityAvailabilityMetricsconditionalnonePercentage availability of the CDR platform over time
» performancePerformanceMetricsconditionalnonePercentage of calls within the performance thresholds
» invocationsInvocationMetricsconditionalnoneNumber of API calls in each performance tier over time
» averageResponseAverageResponseMetricsconditionalnoneAverage response time in seconds, at millisecond resolution, within each performance tier
» sessionCountSessionCountMetricsconditionalnoneSession counts over time. Note that a session is defined as the provisioning of an Access Token.
» averageTpsAverageTPSMetricsconditionalnoneTransactions per second over time
» peakTpsPeakTPSMetricsconditionalnoneMaximum record transactions per second over time
» errorsErrorMetricsconditionalnoneNumber of calls resulting in error due to server execution over time
» rejectionsRejectionMetricsconditionalnoneNumber of calls rejected due to traffic thresholds over time
» customerCountintegerconditionalnoneNumber of customers with active authorisations at the time of the call
» recipientCountintegerconditionalnoneNumber of data recipients with active authorisations at the time of the call
linksLinksmandatorynonenone
metaMetaoptionalnonenone
+ +

AvailabilityMetrics

+ +

+
{
+  "currentMonth": 0,
+  "previousMonths": [
+    0
+  ]
+}
+
+
+

Percentage availability of the CDR platform over time

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currentMonthnumberconditionalnonePercentage availability of the CDR platform so far for the current calendar month. 0.0 means 0%. 1.0 means 100%.
previousMonths[number]conditionalnonePercentage availability of the CDR platform for previous calendar months. The first element indicates the last month and so on. A maximum of twelve entries is required if available. 0.0 means 0%. 1.0 means 100%.
+ +

PerformanceMetrics

+ +

+
{
+  "currentDay": 0,
+  "previousDays": [
+    0
+  ]
+}
+
+
+

Percentage of calls within the performance thresholds

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currentDaynumberconditionalnonePercentage of calls within the performance threshold for the current day. 0.0 means 0%. 1.0 means 100%
previousDays[number]conditionalnonePercentage of calls within the performance threshold for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. 0.0 means 0%. 1.0 means 100%
+ +

InvocationMetrics

+ +

+
{
+  "unauthenticated": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "highPriority": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "lowPriority": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "unattended": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "largePayload": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  }
+}
+
+
+

Number of API calls in each performance tier over time

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
unauthenticatedobjectconditionalnoneAPI call counts for the unauthenticated tier
» currentDaynumberconditionalnoneAPI call counts for current day
» previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
highPriorityobjectconditionalnoneAPI call counts for the high priority tier
» currentDaynumberconditionalnoneAPI call counts for current day
» previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
lowPriorityobjectconditionalnoneAPI call counts for the low priority tier
» currentDaynumberconditionalnoneAPI call counts for current day
» previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
unattendedobjectconditionalnoneAPI call counts for the unattended tier
» currentDaynumberconditionalnoneAPI call counts for current day
» previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
largePayloadobjectconditionalnoneAPI call counts for the large payload tier
» currentDaynumberconditionalnoneAPI call counts for current day
» previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
+ +

AverageResponseMetrics

+ +

+
{
+  "unauthenticated": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "highPriority": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "lowPriority": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "unattended": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  },
+  "largePayload": {
+    "currentDay": 0,
+    "previousDays": [
+      0
+    ]
+  }
+}
+
+
+

Average response time in seconds, at millisecond resolution, within each performance tier

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
unauthenticatedobjectconditionalnoneAverage response time for the unauthenticated tier
» currentDaynumberconditionalnoneAverage response time for current day
» previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
highPriorityobjectconditionalnoneAverage response time for the high priority tier
» currentDaynumberconditionalnoneAverage response time for current day
» previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
lowPriorityobjectconditionalnoneAverage response time for the low priority tier
» currentDaynumberconditionalnoneAverage response time for current day
» previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
unattendedobjectconditionalnoneAverage response time for the unattended tier
» currentDaynumberconditionalnoneAverage response time for current day
» previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
largePayloadobjectconditionalnoneAverage response time for the large payload tier
» currentDaynumberconditionalnoneAverage response time for current day
» previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
+ +

SessionCountMetrics

+ +

+
{
+  "currentDay": 0,
+  "previousDays": [
+    0
+  ]
+}
+
+
+

Session counts over time. Note that a session is defined as the provisioning of an Access Token.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currentDaynumberconditionalnoneSession count for current day
previousDays[number]conditionalnoneSession count for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
+ +

AverageTPSMetrics

+ +

+
{
+  "currentDay": 0,
+  "previousDays": [
+    0
+  ]
+}
+
+
+

Transactions per second over time

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currentDaynumberconditionalnoneAverage TPS for current day
previousDays[number]conditionalnoneAverage TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
+ +

PeakTPSMetrics

+ +

+
{
+  "currentDay": 0,
+  "previousDays": [
+    0
+  ]
+}
+
+
+

Maximum record transactions per second over time

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currentDaynumberconditionalnonePeak TPS for current day
previousDays[number]conditionalnonePeak TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
+ +

ErrorMetrics

+ +

+
{
+  "currentDay": 0,
+  "previousDays": [
+    0
+  ]
+}
+
+
+

Number of calls resulting in error due to server execution over time

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currentDaynumberconditionalnoneNumber of errors for current day
previousDays[number]conditionalnoneNumber of errors for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
+ +

RejectionMetrics

+ +

+
{
+  "currentDay": 0,
+  "previousDays": [
+    0
+  ]
+}
+
+
+

Number of calls rejected due to traffic thresholds over time

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/obsolete/get-product-detail-v1.html b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-product-detail-v1.html new file mode 100644 index 00000000..f2ce336a --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-product-detail-v1.html @@ -0,0 +1,2692 @@ + + + + + + + + Get Product Detail v1 + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Product Detail V1

+

This page documents the obsolete version 1 of the Get Product Detail end point.

+ +

This version is to be ceased to be called by data recipients by August 29th 2020 and can be decommissioned by data holders as of that date.

+

Get Product Detail

+

+ +
+

Code samples

+
+
GET https://data.holder.com.au/cds-au/v1/banking/products/{productId} HTTP/1.1
+Host: data.holder.com.au
+Accept: application/json
+x-v: string
+x-min-v: string
+
+
var headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string'
+
+};
+
+$.ajax({
+  url: 'https://data.holder.com.au/cds-au/v1/banking/products/{productId}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+

GET /banking/products/{productId}

+ +

Obtain detailed information on a single product offered openly to the market

+

Endpoint Version

+ + + + + + + + + + +
Version1
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
productIdpathASCIIStringmandatoryID of the specific product requested
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 should 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 should respond with a 406 Not Acceptable.
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "productId": "string",
+    "effectiveFrom": "string",
+    "effectiveTo": "string",
+    "lastUpdated": "string",
+    "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+    "name": "string",
+    "description": "string",
+    "brand": "string",
+    "brandName": "string",
+    "applicationUri": "string",
+    "isTailored": true,
+    "additionalInformation": {
+      "overviewUri": "string",
+      "termsUri": "string",
+      "eligibilityUri": "string",
+      "feesAndPricingUri": "string",
+      "bundleUri": "string"
+    },
+    "bundles": [
+      {
+        "name": "string",
+        "description": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "productIds": [
+          "string"
+        ]
+      }
+    ],
+    "features": [
+      {
+        "featureType": "CARD_ACCESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "constraints": [
+      {
+        "constraintType": "MIN_BALANCE",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "eligibility": [
+      {
+        "eligibilityType": "BUSINESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "fees": [
+      {
+        "name": "string",
+        "feeType": "PERIODIC",
+        "amount": "string",
+        "balanceRate": "string",
+        "transactionRate": "string",
+        "accruedRate": "string",
+        "accrualFrequency": "string",
+        "currency": "string",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "discounts": [
+          {
+            "description": "string",
+            "discountType": "BALANCE",
+            "amount": "string",
+            "balanceRate": "string",
+            "transactionRate": "string",
+            "accruedRate": "string",
+            "feeRate": "string",
+            "additionalValue": "string",
+            "additionalInfo": "string",
+            "additionalInfoUri": "string",
+            "eligibility": [
+              {
+                "discountEligibilityType": "BUSINESS",
+                "additionalValue": "string",
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "depositRates": [
+      {
+        "depositRateType": "FIXED",
+        "rate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "lendingRates": [
+      {
+        "lendingRateType": "FIXED",
+        "rate": "string",
+        "comparisonRate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "interestPaymentDue": "IN_ARREARS",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ]
+  },
+  "links": {
+    "self": "string"
+  },
+  "meta": {}
+}
+
+

Responses

+ + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessResponseBankingProductById
+

Response Headers

+ + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
+ + + +

ResponseBankingProductById

+ +

+
{
+  "data": {
+    "productId": "string",
+    "effectiveFrom": "string",
+    "effectiveTo": "string",
+    "lastUpdated": "string",
+    "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+    "name": "string",
+    "description": "string",
+    "brand": "string",
+    "brandName": "string",
+    "applicationUri": "string",
+    "isTailored": true,
+    "additionalInformation": {
+      "overviewUri": "string",
+      "termsUri": "string",
+      "eligibilityUri": "string",
+      "feesAndPricingUri": "string",
+      "bundleUri": "string"
+    },
+    "bundles": [
+      {
+        "name": "string",
+        "description": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "productIds": [
+          "string"
+        ]
+      }
+    ],
+    "features": [
+      {
+        "featureType": "CARD_ACCESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "constraints": [
+      {
+        "constraintType": "MIN_BALANCE",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "eligibility": [
+      {
+        "eligibilityType": "BUSINESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "fees": [
+      {
+        "name": "string",
+        "feeType": "PERIODIC",
+        "amount": "string",
+        "balanceRate": "string",
+        "transactionRate": "string",
+        "accruedRate": "string",
+        "accrualFrequency": "string",
+        "currency": "string",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "discounts": [
+          {
+            "description": "string",
+            "discountType": "BALANCE",
+            "amount": "string",
+            "balanceRate": "string",
+            "transactionRate": "string",
+            "accruedRate": "string",
+            "feeRate": "string",
+            "additionalValue": "string",
+            "additionalInfo": "string",
+            "additionalInfoUri": "string",
+            "eligibility": [
+              {
+                "discountEligibilityType": "BUSINESS",
+                "additionalValue": "string",
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "depositRates": [
+      {
+        "depositRateType": "FIXED",
+        "rate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "lendingRates": [
+      {
+        "lendingRateType": "FIXED",
+        "rate": "string",
+        "comparisonRate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "interestPaymentDue": "IN_ARREARS",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ]
+  },
+  "links": {
+    "self": "string"
+  },
+  "meta": {}
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
dataBankingProductDetailmandatorynonenone
linksLinksmandatorynonenone
metaMetaoptionalnonenone
+ +

BankingProductDetail

+ +

+
{
+  "productId": "string",
+  "effectiveFrom": "string",
+  "effectiveTo": "string",
+  "lastUpdated": "string",
+  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+  "name": "string",
+  "description": "string",
+  "brand": "string",
+  "brandName": "string",
+  "applicationUri": "string",
+  "isTailored": true,
+  "additionalInformation": {
+    "overviewUri": "string",
+    "termsUri": "string",
+    "eligibilityUri": "string",
+    "feesAndPricingUri": "string",
+    "bundleUri": "string"
+  },
+  "bundles": [
+    {
+      "name": "string",
+      "description": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string",
+      "productIds": [
+        "string"
+      ]
+    }
+  ],
+  "features": [
+    {
+      "featureType": "CARD_ACCESS",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "constraints": [
+    {
+      "constraintType": "MIN_BALANCE",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "eligibility": [
+    {
+      "eligibilityType": "BUSINESS",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "fees": [
+    {
+      "name": "string",
+      "feeType": "PERIODIC",
+      "amount": "string",
+      "balanceRate": "string",
+      "transactionRate": "string",
+      "accruedRate": "string",
+      "accrualFrequency": "string",
+      "currency": "string",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string",
+      "discounts": [
+        {
+          "description": "string",
+          "discountType": "BALANCE",
+          "amount": "string",
+          "balanceRate": "string",
+          "transactionRate": "string",
+          "accruedRate": "string",
+          "feeRate": "string",
+          "additionalValue": "string",
+          "additionalInfo": "string",
+          "additionalInfoUri": "string",
+          "eligibility": [
+            {
+              "discountEligibilityType": "BUSINESS",
+              "additionalValue": "string",
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            }
+          ]
+        }
+      ]
+    }
+  ],
+  "depositRates": [
+    {
+      "depositRateType": "FIXED",
+      "rate": "string",
+      "calculationFrequency": "string",
+      "applicationFrequency": "string",
+      "tiers": [
+        {
+          "name": "string",
+          "unitOfMeasure": "DOLLAR",
+          "minimumValue": 0,
+          "maximumValue": 0,
+          "rateApplicationMethod": "WHOLE_BALANCE",
+          "applicabilityConditions": {
+            "additionalInfo": "string",
+            "additionalInfoUri": "string"
+          },
+          "subTier": {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            }
+          }
+        }
+      ],
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "lendingRates": [
+    {
+      "lendingRateType": "FIXED",
+      "rate": "string",
+      "comparisonRate": "string",
+      "calculationFrequency": "string",
+      "applicationFrequency": "string",
+      "interestPaymentDue": "IN_ARREARS",
+      "tiers": [
+        {
+          "name": "string",
+          "unitOfMeasure": "DOLLAR",
+          "minimumValue": 0,
+          "maximumValue": 0,
+          "rateApplicationMethod": "WHOLE_BALANCE",
+          "applicabilityConditions": {
+            "additionalInfo": "string",
+            "additionalInfoUri": "string"
+          },
+          "subTier": {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            }
+          }
+        }
+      ],
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ]
+}
+
+

Properties

+

allOf

+ + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousBankingProductoptionalnonenone
+ +

and

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousobjectoptionalnonenone
» bundles[BankingProductBundle]optionalnoneAn array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also
» features[BankingProductFeature]optionalnoneArray of features available for the product
» constraints[BankingProductConstraint]optionalnoneConstraints on the application for or operation of the product such as minimum balances or limit thresholds
» eligibility[BankingProductEligibility]optionalnoneEligibility criteria for the product
» fees[BankingProductFee]optionalnoneFees applicable for the product
» depositRates[BankingProductDepositRate]optionalnoneInterest rates available for deposits
» lendingRates[BankingProductLendingRate]optionalnoneInterest rates charged against lending balances
+ +

BankingProductBundle

+ +

+
{
+  "name": "string",
+  "description": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string",
+  "productIds": [
+    "string"
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
namestringmandatorynoneName of the bundle
descriptionstringmandatorynoneDescription of the bundle
additionalInfostringoptionalnoneDisplay text providing more information on the bundle
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on the bundle criteria and benefits
productIds[string]optionalnoneArray of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points
+ +

BankingProductFeature

+ +

+
{
+  "featureType": "CARD_ACCESS",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
featureTypestringmandatorynoneThe type of feature described
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of the featureType.
additionalInfostringconditionalnoneDisplay text providing more information on the feature. Mandatory if the feature type is set to OTHER
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this feature
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
featureTypeCARD_ACCESS
featureTypeADDITIONAL_CARDS
featureTypeUNLIMITED_TXNS
featureTypeFREE_TXNS
featureTypeFREE_TXNS_ALLOWANCE
featureTypeLOYALTY_PROGRAM
featureTypeOFFSET
featureTypeOVERDRAFT
featureTypeREDRAW
featureTypeINSURANCE
featureTypeBALANCE_TRANSFERS
featureTypeINTEREST_FREE
featureTypeINTEREST_FREE_TRANSFERS
featureTypeDIGITAL_WALLET
featureTypeDIGITAL_BANKING
featureTypeNPP_PAYID
featureTypeNPP_ENABLED
featureTypeDONATE_INTEREST
featureTypeBILL_PAYMENT
featureTypeCOMPLEMENTARY_PRODUCT_DISCOUNTS
featureTypeBONUS_REWARDS
featureTypeNOTIFICATIONS
featureTypeOTHER
+ +

BankingProductConstraint

+ +

+
{
+  "constraintType": "MIN_BALANCE",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
constraintTypestringmandatorynoneThe type of constraint described. See the next section for an overview of valid values and their meaning
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the constraintType specified. Whether mandatory or not is dependent on the value of constraintType
additionalInfostringoptionalnoneDisplay text providing more information the constraint
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on the constraint
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
constraintTypeMIN_BALANCE
constraintTypeMAX_BALANCE
constraintTypeOPENING_BALANCE
constraintTypeMAX_LIMIT
constraintTypeMIN_LIMIT
+ +

BankingProductEligibility

+ +

+
{
+  "eligibilityType": "BUSINESS",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
eligibilityTypestringmandatorynoneThe type of eligibility criteria described. See the next section for an overview of valid values and their meaning
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the eligibilityType specified. Whether mandatory or not is dependent on the value of eligibilityType
additionalInfostringconditionalnoneDisplay text providing more information on the eligibility criteria. Mandatory if the field is set to OTHER
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this eligibility criteria
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
eligibilityTypeBUSINESS
eligibilityTypePENSION_RECIPIENT
eligibilityTypeMIN_AGE
eligibilityTypeMAX_AGE
eligibilityTypeMIN_INCOME
eligibilityTypeMIN_TURNOVER
eligibilityTypeSTAFF
eligibilityTypeSTUDENT
eligibilityTypeEMPLOYMENT_STATUS
eligibilityTypeRESIDENCY_STATUS
eligibilityTypeNATURAL_PERSON
eligibilityTypeOTHER
+ +

BankingProductFee

+ +

+
{
+  "name": "string",
+  "feeType": "PERIODIC",
+  "amount": "string",
+  "balanceRate": "string",
+  "transactionRate": "string",
+  "accruedRate": "string",
+  "accrualFrequency": "string",
+  "currency": "string",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string",
+  "discounts": [
+    {
+      "description": "string",
+      "discountType": "BALANCE",
+      "amount": "string",
+      "balanceRate": "string",
+      "transactionRate": "string",
+      "accruedRate": "string",
+      "feeRate": "string",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string",
+      "eligibility": [
+        {
+          "discountEligibilityType": "BUSINESS",
+          "additionalValue": "string",
+          "additionalInfo": "string",
+          "additionalInfoUri": "string"
+        }
+      ]
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
namestringmandatorynoneName of the fee
feeTypestringmandatorynoneThe type of fee
amountAmountStringconditionalnoneThe amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory
balanceRateRateStringconditionalnoneA fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory
transactionRateRateStringconditionalnoneA fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory
accruedRateRateStringconditionalnoneA fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory
accrualFrequencyExternalRefoptionalnoneThe indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to ISO 8601 Durations
currencyCurrencyStringoptionalnoneThe currency the fee will be charged in. Assumes AUD if absent
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
additionalInfostringoptionalnoneDisplay text providing more information on the fee
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this fee
discounts[BankingProductDiscount]optionalnoneAn optional list of discounts to this fee that may be available
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
feeTypePERIODIC
feeTypeTRANSACTION
feeTypeWITHDRAWAL
feeTypeDEPOSIT
feeTypePAYMENT
feeTypePURCHASE
feeTypeEVENT
feeTypeUPFRONT
feeTypeEXIT
+ +

BankingProductDiscount

+ +

+
{
+  "description": "string",
+  "discountType": "BALANCE",
+  "amount": "string",
+  "balanceRate": "string",
+  "transactionRate": "string",
+  "accruedRate": "string",
+  "feeRate": "string",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string",
+  "eligibility": [
+    {
+      "discountEligibilityType": "BUSINESS",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
descriptionstringmandatorynoneDescription of the discount
discountTypestringmandatorynoneThe type of discount. See the next section for an overview of valid values and their meaning
amountAmountStringconditionalnoneValue of the discount. When following properties include one of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory
balanceRateRateStringconditionalnoneA discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
transactionRateRateStringconditionalnoneA discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory
accruedRateRateStringconditionalnoneA discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
feeRateRateStringconditionalnoneA discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType
additionalInfostringoptionalnoneDisplay text providing more information on the discount
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this discount
eligibility[BankingProductDiscountEligibility]optionalnoneEligibility constraints that apply to this discount
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
discountTypeBALANCE
discountTypeDEPOSITS
discountTypePAYMENTS
discountTypeFEE_CAP
discountTypeELIGIBILITY_ONLY
+ +

BankingProductDiscountEligibility

+ +

+
{
+  "discountEligibilityType": "BUSINESS",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
discountEligibilityTypestringmandatorynoneThe type of the specific eligibility constraint for a discount
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the discountEligibilityType specified. Whether mandatory or not is dependent on the value of discountEligibilityType
additionalInfostringoptionalnoneDisplay text providing more information on this eligibility constraint
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this eligibility constraint
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
discountEligibilityTypeBUSINESS
discountEligibilityTypePENSION_RECIPIENT
discountEligibilityTypeMIN_AGE
discountEligibilityTypeMAX_AGE
discountEligibilityTypeMIN_INCOME
discountEligibilityTypeMIN_TURNOVER
discountEligibilityTypeSTAFF
discountEligibilityTypeSTUDENT
discountEligibilityTypeEMPLOYMENT_STATUS
discountEligibilityTypeRESIDENCY_STATUS
discountEligibilityTypeNATURAL_PERSON
discountEligibilityTypeINTRODUCTORY
discountEligibilityTypeOTHER
+ +

BankingProductDepositRate

+ +

+
{
+  "depositRateType": "FIXED",
+  "rate": "string",
+  "calculationFrequency": "string",
+  "applicationFrequency": "string",
+  "tiers": [
+    {
+      "name": "string",
+      "unitOfMeasure": "DOLLAR",
+      "minimumValue": 0,
+      "maximumValue": 0,
+      "rateApplicationMethod": "WHOLE_BALANCE",
+      "applicabilityConditions": {
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      },
+      "subTier": {
+        "name": "string",
+        "unitOfMeasure": "DOLLAR",
+        "minimumValue": 0,
+        "maximumValue": 0,
+        "rateApplicationMethod": "WHOLE_BALANCE",
+        "applicabilityConditions": {
+          "additionalInfo": "string",
+          "additionalInfoUri": "string"
+        }
+      }
+    }
+  ],
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
depositRateTypestringmandatorynoneThe type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning
rateRateStringmandatorynoneThe rate to be applied
calculationFrequencyExternalRefoptionalnoneThe period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to ISO 8601 Durations
applicationFrequencyExternalRefoptionalnoneThe period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to ISO 8601 Durations
tiers[BankingProductRateTier]optionalnoneRate tiers applicable for this rate
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
additionalInfostringoptionalnoneDisplay text providing more information on the rate
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
depositRateTypeFIXED
depositRateTypeBONUS
depositRateTypeBUNDLE_BONUS
depositRateTypeVARIABLE
depositRateTypeINTRODUCTORY
depositRateTypeFLOATING
depositRateTypeMARKET_LINKED
+ +

BankingProductLendingRate

+ +

+
{
+  "lendingRateType": "FIXED",
+  "rate": "string",
+  "comparisonRate": "string",
+  "calculationFrequency": "string",
+  "applicationFrequency": "string",
+  "interestPaymentDue": "IN_ARREARS",
+  "tiers": [
+    {
+      "name": "string",
+      "unitOfMeasure": "DOLLAR",
+      "minimumValue": 0,
+      "maximumValue": 0,
+      "rateApplicationMethod": "WHOLE_BALANCE",
+      "applicabilityConditions": {
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      },
+      "subTier": {
+        "name": "string",
+        "unitOfMeasure": "DOLLAR",
+        "minimumValue": 0,
+        "maximumValue": 0,
+        "rateApplicationMethod": "WHOLE_BALANCE",
+        "applicabilityConditions": {
+          "additionalInfo": "string",
+          "additionalInfoUri": "string"
+        }
+      }
+    }
+  ],
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
lendingRateTypestringmandatorynoneThe type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning
rateRateStringmandatorynoneThe rate to be applied
comparisonRateRateStringoptionalnoneA comparison rate equivalent for this rate
calculationFrequencyExternalRefoptionalnoneThe period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to ISO 8601 Durations
applicationFrequencyExternalRefoptionalnoneThe period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to ISO 8601 Durations
interestPaymentDuestringoptionalnoneWhen loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered
tiers[BankingProductRateTier]optionalnoneRate tiers applicable for this rate
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the value of lendingRateType
additionalInfostringoptionalnoneDisplay text providing more information on the rate.
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
lendingRateTypeFIXED
lendingRateTypeVARIABLE
lendingRateTypeINTRODUCTORY
lendingRateTypeDISCOUNT
lendingRateTypePENALTY
lendingRateTypeFLOATING
lendingRateTypeMARKET_LINKED
lendingRateTypeCASH_ADVANCE
lendingRateTypePURCHASE
lendingRateTypeBUNDLE_DISCOUNT_FIXED
lendingRateTypeBUNDLE_DISCOUNT_VARIABLE
interestPaymentDueIN_ARREARS
interestPaymentDueIN_ADVANCE
+ +

BankingProductRateTier

+ +

+
{
+  "name": "string",
+  "unitOfMeasure": "DOLLAR",
+  "minimumValue": 0,
+  "maximumValue": 0,
+  "rateApplicationMethod": "WHOLE_BALANCE",
+  "applicabilityConditions": {
+    "additionalInfo": "string",
+    "additionalInfoUri": "string"
+  },
+  "subTier": {
+    "name": "string",
+    "unitOfMeasure": "DOLLAR",
+    "minimumValue": 0,
+    "maximumValue": 0,
+    "rateApplicationMethod": "WHOLE_BALANCE",
+    "applicabilityConditions": {
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  }
+}
+
+
+

Defines the criteria and conditions for which a rate applies

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
namestringmandatorynoneA display name for the tier
unitOfMeasurestringmandatorynoneThe unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. 'DOLLAR', 'MONTH' (in the case of term deposit tiers), 'PERCENT' (in the case of loan-to-value ratio or LVR)
minimumValuenumbermandatorynoneThe number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value
maximumValuenumberoptionalnoneThe 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.
rateApplicationMethodstringoptionalnoneThe method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')
applicabilityConditionsBankingProductRateConditionoptionalnoneDefines a condition for the applicability of a tiered rate
subTierobjectoptionalnoneDefines the sub-tier criteria and conditions for which a rate applies
» namestringmandatorynoneA display name for the tier
» unitOfMeasurestringmandatorynoneThe unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. 'DOLLAR', 'MONTH' (in the case of term deposit tiers), 'PERCENT' (in the case of loan-to-value ratio or LVR)
» minimumValuenumbermandatorynoneThe number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value
» maximumValuenumbermandatorynoneThe 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)
» rateApplicationMethodstringoptionalnoneThe method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')
» applicabilityConditionsBankingProductRateConditionoptionalnoneDefines a condition for the applicability of a tiered rate
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
unitOfMeasureDOLLAR
unitOfMeasurePERCENT
unitOfMeasureMONTH
unitOfMeasureDAY
rateApplicationMethodWHOLE_BALANCE
rateApplicationMethodPER_TIER
unitOfMeasureDOLLAR
unitOfMeasurePERCENT
unitOfMeasureMONTH
unitOfMeasureDAY
rateApplicationMethodWHOLE_BALANCE
rateApplicationMethodPER_TIER
+ +

BankingProductRateCondition

+ +

+
{
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+
+

Defines a condition for the applicability of a tiered rate

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
additionalInfostringoptionalnoneDisplay text providing more information on the condition
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this condition
+ +

BankingProduct

+ +

+
{
+  "productId": "string",
+  "effectiveFrom": "string",
+  "effectiveTo": "string",
+  "lastUpdated": "string",
+  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+  "name": "string",
+  "description": "string",
+  "brand": "string",
+  "brandName": "string",
+  "applicationUri": "string",
+  "isTailored": true,
+  "additionalInformation": {
+    "overviewUri": "string",
+    "termsUri": "string",
+    "eligibilityUri": "string",
+    "feesAndPricingUri": "string",
+    "bundleUri": "string"
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
productIdASCIIStringmandatorynoneA data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.
effectiveFromDateTimeStringoptionalnoneThe date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate
effectiveToDateTimeStringoptionalnoneThe date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products
lastUpdatedDateTimeStringmandatorynoneThe last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)
productCategoryBankingProductCategorymandatorynoneThe category to which a product or account belongs. See here for more details
namestringmandatorynoneThe display name of the product
descriptionstringmandatorynoneA description of the product
brandstringmandatorynoneA label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required
brandNamestringoptionalnoneAn optional display name of the brand
applicationUriURIStringoptionalnoneA link to an application web page where this product can be applied for.
isTailoredBooleanmandatorynoneIndicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable
additionalInformationobjectoptionalnoneObject that contains links to additional information on specific topics
» overviewUriURIStringoptionalnoneGeneral overview of the product
» termsUriURIStringoptionalnoneTerms and conditions for the product
» eligibilityUriURIStringoptionalnoneEligibility rules and criteria for the product
» feesAndPricingUriURIStringoptionalnoneDescription of fees, pricing, discounts, exemptions and bonuses for the product
» bundleUriURIStringoptionalnoneDescription of a bundle that this product can be part of
+ +

BankingProductCategory

+ +

+
"TRANS_AND_SAVINGS_ACCOUNTS"
+
+
+

The category to which a product or account belongs. See here for more details

+

Properties

+ + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousstringoptionalnoneThe category to which a product or account belongs. See here for more details
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
anonymousTRANS_AND_SAVINGS_ACCOUNTS
anonymousTERM_DEPOSITS
anonymousTRAVEL_CARDS
anonymousREGULATED_TRUST_ACCOUNTS
anonymousRESIDENTIAL_MORTGAGES
anonymousCRED_AND_CHRG_CARDS
anonymousPERS_LOANS
anonymousMARGIN_LOANS
anonymousLEASES
anonymousTRADE_FINANCE
anonymousOVERDRAFTS
anonymousBUSINESS_LOANS
+ + + +

+
{
+  "self": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
selfURIStringmandatorynoneFully qualified link that generated the current response document
+ +

Meta

+ +

+
{}
+
+

Properties

+

None

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/obsolete/get-product-detail-v2.html b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-product-detail-v2.html new file mode 100644 index 00000000..2c3cba6f --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-product-detail-v2.html @@ -0,0 +1,2502 @@ + + + + + + + + Get Product Detail v2 + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Product Detail V2

+

This page documents the obsolete version 2 of the Get Product Detail end point.

+

Get Product Detail

+

+ +
+

Code samples

+
+
GET https://data.holder.com.au/cds-au/v1/banking/products/{productId} HTTP/1.1
+Host: data.holder.com.au
+Accept: application/json
+x-v: string
+x-min-v: string
+
+
var headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string'
+
+};
+
+$.ajax({
+  url: 'https://data.holder.com.au/cds-au/v1/banking/products/{productId}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+

GET /banking/products/{productId}

+ +

Obtain detailed information on a single product offered openly to the market.

+ +

NOTE: This version must be implemented by July 2020

+ +

Obsolete versions: v1

+

Endpoint Version

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

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
productIdpathASCIIStringmandatoryID of the specific product requested
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 should 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 should respond with a 406 Not Acceptable.
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "productId": "string",
+    "effectiveFrom": "string",
+    "effectiveTo": "string",
+    "lastUpdated": "string",
+    "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+    "name": "string",
+    "description": "string",
+    "brand": "string",
+    "brandName": "string",
+    "applicationUri": "string",
+    "isTailored": true,
+    "additionalInformation": {
+      "overviewUri": "string",
+      "termsUri": "string",
+      "eligibilityUri": "string",
+      "feesAndPricingUri": "string",
+      "bundleUri": "string"
+    },
+    "cardArt": [
+      {
+        "title": "string",
+        "imageUri": "string"
+      }
+    ],
+    "bundles": [
+      {
+        "name": "string",
+        "description": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "productIds": [
+          "string"
+        ]
+      }
+    ],
+    "features": [
+      {
+        "featureType": "CARD_ACCESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "constraints": [
+      {
+        "constraintType": "MIN_BALANCE",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "eligibility": [
+      {
+        "eligibilityType": "BUSINESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "fees": [
+      {
+        "name": "string",
+        "feeType": "PERIODIC",
+        "amount": "string",
+        "balanceRate": "string",
+        "transactionRate": "string",
+        "accruedRate": "string",
+        "accrualFrequency": "string",
+        "currency": "string",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "discounts": [
+          {
+            "description": "string",
+            "discountType": "BALANCE",
+            "amount": "string",
+            "balanceRate": "string",
+            "transactionRate": "string",
+            "accruedRate": "string",
+            "feeRate": "string",
+            "additionalValue": "string",
+            "additionalInfo": "string",
+            "additionalInfoUri": "string",
+            "eligibility": [
+              {
+                "discountEligibilityType": "BUSINESS",
+                "additionalValue": "string",
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "depositRates": [
+      {
+        "depositRateType": "FIXED",
+        "rate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "lendingRates": [
+      {
+        "lendingRateType": "FIXED",
+        "rate": "string",
+        "comparisonRate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "interestPaymentDue": "IN_ARREARS",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ]
+  },
+  "links": {
+    "self": "string"
+  },
+  "meta": {}
+}
+
+

Responses

+ + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessResponseBankingProductById
+

Response Headers

+ + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
+ + + +

...

+ +

ResponseBankingProductById

+ +

+
{
+  "data": {
+    "productId": "string",
+    "effectiveFrom": "string",
+    "effectiveTo": "string",
+    "lastUpdated": "string",
+    "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+    "name": "string",
+    "description": "string",
+    "brand": "string",
+    "brandName": "string",
+    "applicationUri": "string",
+    "isTailored": true,
+    "additionalInformation": {
+      "overviewUri": "string",
+      "termsUri": "string",
+      "eligibilityUri": "string",
+      "feesAndPricingUri": "string",
+      "bundleUri": "string"
+    },
+    "cardArt": [
+      {
+        "title": "string",
+        "imageUri": "string"
+      }
+    ],
+    "bundles": [
+      {
+        "name": "string",
+        "description": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "productIds": [
+          "string"
+        ]
+      }
+    ],
+    "features": [
+      {
+        "featureType": "CARD_ACCESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "constraints": [
+      {
+        "constraintType": "MIN_BALANCE",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "eligibility": [
+      {
+        "eligibilityType": "BUSINESS",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "fees": [
+      {
+        "name": "string",
+        "feeType": "PERIODIC",
+        "amount": "string",
+        "balanceRate": "string",
+        "transactionRate": "string",
+        "accruedRate": "string",
+        "accrualFrequency": "string",
+        "currency": "string",
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string",
+        "discounts": [
+          {
+            "description": "string",
+            "discountType": "BALANCE",
+            "amount": "string",
+            "balanceRate": "string",
+            "transactionRate": "string",
+            "accruedRate": "string",
+            "feeRate": "string",
+            "additionalValue": "string",
+            "additionalInfo": "string",
+            "additionalInfoUri": "string",
+            "eligibility": [
+              {
+                "discountEligibilityType": "BUSINESS",
+                "additionalValue": "string",
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "depositRates": [
+      {
+        "depositRateType": "FIXED",
+        "rate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ],
+    "lendingRates": [
+      {
+        "lendingRateType": "FIXED",
+        "rate": "string",
+        "comparisonRate": "string",
+        "calculationFrequency": "string",
+        "applicationFrequency": "string",
+        "interestPaymentDue": "IN_ARREARS",
+        "tiers": [
+          {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            },
+            "subTier": {
+              "name": "string",
+              "unitOfMeasure": "DOLLAR",
+              "minimumValue": 0,
+              "maximumValue": 0,
+              "rateApplicationMethod": "WHOLE_BALANCE",
+              "applicabilityConditions": {
+                "additionalInfo": "string",
+                "additionalInfoUri": "string"
+              }
+            }
+          }
+        ],
+        "additionalValue": "string",
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      }
+    ]
+  },
+  "links": {
+    "self": "string"
+  },
+  "meta": {}
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
dataBankingProductDetailmandatorynonenone
linksLinksmandatorynonenone
metaMetaoptionalnonenone
+ +

BankingProductDetail

+ +

+
{
+  "productId": "string",
+  "effectiveFrom": "string",
+  "effectiveTo": "string",
+  "lastUpdated": "string",
+  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+  "name": "string",
+  "description": "string",
+  "brand": "string",
+  "brandName": "string",
+  "applicationUri": "string",
+  "isTailored": true,
+  "additionalInformation": {
+    "overviewUri": "string",
+    "termsUri": "string",
+    "eligibilityUri": "string",
+    "feesAndPricingUri": "string",
+    "bundleUri": "string"
+  },
+  "cardArt": [
+    {
+      "title": "string",
+      "imageUri": "string"
+    }
+  ],
+  "bundles": [
+    {
+      "name": "string",
+      "description": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string",
+      "productIds": [
+        "string"
+      ]
+    }
+  ],
+  "features": [
+    {
+      "featureType": "CARD_ACCESS",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "constraints": [
+    {
+      "constraintType": "MIN_BALANCE",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "eligibility": [
+    {
+      "eligibilityType": "BUSINESS",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "fees": [
+    {
+      "name": "string",
+      "feeType": "PERIODIC",
+      "amount": "string",
+      "balanceRate": "string",
+      "transactionRate": "string",
+      "accruedRate": "string",
+      "accrualFrequency": "string",
+      "currency": "string",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string",
+      "discounts": [
+        {
+          "description": "string",
+          "discountType": "BALANCE",
+          "amount": "string",
+          "balanceRate": "string",
+          "transactionRate": "string",
+          "accruedRate": "string",
+          "feeRate": "string",
+          "additionalValue": "string",
+          "additionalInfo": "string",
+          "additionalInfoUri": "string",
+          "eligibility": [
+            {
+              "discountEligibilityType": "BUSINESS",
+              "additionalValue": "string",
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            }
+          ]
+        }
+      ]
+    }
+  ],
+  "depositRates": [
+    {
+      "depositRateType": "FIXED",
+      "rate": "string",
+      "calculationFrequency": "string",
+      "applicationFrequency": "string",
+      "tiers": [
+        {
+          "name": "string",
+          "unitOfMeasure": "DOLLAR",
+          "minimumValue": 0,
+          "maximumValue": 0,
+          "rateApplicationMethod": "WHOLE_BALANCE",
+          "applicabilityConditions": {
+            "additionalInfo": "string",
+            "additionalInfoUri": "string"
+          },
+          "subTier": {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            }
+          }
+        }
+      ],
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ],
+  "lendingRates": [
+    {
+      "lendingRateType": "FIXED",
+      "rate": "string",
+      "comparisonRate": "string",
+      "calculationFrequency": "string",
+      "applicationFrequency": "string",
+      "interestPaymentDue": "IN_ARREARS",
+      "tiers": [
+        {
+          "name": "string",
+          "unitOfMeasure": "DOLLAR",
+          "minimumValue": 0,
+          "maximumValue": 0,
+          "rateApplicationMethod": "WHOLE_BALANCE",
+          "applicabilityConditions": {
+            "additionalInfo": "string",
+            "additionalInfoUri": "string"
+          },
+          "subTier": {
+            "name": "string",
+            "unitOfMeasure": "DOLLAR",
+            "minimumValue": 0,
+            "maximumValue": 0,
+            "rateApplicationMethod": "WHOLE_BALANCE",
+            "applicabilityConditions": {
+              "additionalInfo": "string",
+              "additionalInfoUri": "string"
+            }
+          }
+        }
+      ],
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ]
+}
+
+

Properties

+

allOf

+ + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousBankingProductV2mandatorynonenone
+ +

and

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousobjectmandatorynonenone
» bundles[BankingProductBundle]optionalnoneAn array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also
» features[BankingProductFeature]optionalnoneArray of features available for the product
» constraints[BankingProductConstraint]optionalnoneConstraints on the application for or operation of the product such as minimum balances or limit thresholds
» eligibility[BankingProductEligibility]optionalnoneEligibility criteria for the product
» fees[BankingProductFee]optionalnoneFees applicable for the product
» depositRates[BankingProductDepositRate]optionalnoneInterest rates available for deposits
» lendingRates[BankingProductLendingRate]optionalnoneInterest rates charged against lending balances
+ +

BankingProductBundle

+ +

+
{
+  "name": "string",
+  "description": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string",
+  "productIds": [
+    "string"
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
namestringmandatorynoneName of the bundle
descriptionstringmandatorynoneDescription of the bundle
additionalInfostringoptionalnoneDisplay text providing more information on the bundle
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on the bundle criteria and benefits
productIds[string]optionalnoneArray of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points
+ +

BankingProductFeature

+ +

+
{
+  "featureType": "CARD_ACCESS",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
featureTypestringmandatorynoneThe type of feature described
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of the featureType.
additionalInfostringconditionalnoneDisplay text providing more information on the feature. Mandatory if the feature type is set to OTHER
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this feature
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
featureTypeCARD_ACCESS
featureTypeADDITIONAL_CARDS
featureTypeUNLIMITED_TXNS
featureTypeFREE_TXNS
featureTypeFREE_TXNS_ALLOWANCE
featureTypeLOYALTY_PROGRAM
featureTypeOFFSET
featureTypeOVERDRAFT
featureTypeREDRAW
featureTypeINSURANCE
featureTypeBALANCE_TRANSFERS
featureTypeINTEREST_FREE
featureTypeINTEREST_FREE_TRANSFERS
featureTypeDIGITAL_WALLET
featureTypeDIGITAL_BANKING
featureTypeNPP_PAYID
featureTypeNPP_ENABLED
featureTypeDONATE_INTEREST
featureTypeBILL_PAYMENT
featureTypeCOMPLEMENTARY_PRODUCT_DISCOUNTS
featureTypeBONUS_REWARDS
featureTypeNOTIFICATIONS
featureTypeOTHER
+ +

BankingProductConstraint

+ +

+
{
+  "constraintType": "MIN_BALANCE",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
constraintTypestringmandatorynoneThe type of constraint described. See the next section for an overview of valid values and their meaning
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the constraintType specified. Whether mandatory or not is dependent on the value of constraintType
additionalInfostringoptionalnoneDisplay text providing more information the constraint
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on the constraint
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
constraintTypeMIN_BALANCE
constraintTypeMAX_BALANCE
constraintTypeOPENING_BALANCE
constraintTypeMAX_LIMIT
constraintTypeMIN_LIMIT
+ +

BankingProductEligibility

+ +

+
{
+  "eligibilityType": "BUSINESS",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
eligibilityTypestringmandatorynoneThe type of eligibility criteria described. See the next section for an overview of valid values and their meaning
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the eligibilityType specified. Whether mandatory or not is dependent on the value of eligibilityType
additionalInfostringconditionalnoneDisplay text providing more information on the eligibility criteria. Mandatory if the field is set to OTHER
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this eligibility criteria
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
eligibilityTypeBUSINESS
eligibilityTypePENSION_RECIPIENT
eligibilityTypeMIN_AGE
eligibilityTypeMAX_AGE
eligibilityTypeMIN_INCOME
eligibilityTypeMIN_TURNOVER
eligibilityTypeSTAFF
eligibilityTypeSTUDENT
eligibilityTypeEMPLOYMENT_STATUS
eligibilityTypeRESIDENCY_STATUS
eligibilityTypeNATURAL_PERSON
eligibilityTypeOTHER
+ +

BankingProductFee

+ +

+
{
+  "name": "string",
+  "feeType": "PERIODIC",
+  "amount": "string",
+  "balanceRate": "string",
+  "transactionRate": "string",
+  "accruedRate": "string",
+  "accrualFrequency": "string",
+  "currency": "string",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string",
+  "discounts": [
+    {
+      "description": "string",
+      "discountType": "BALANCE",
+      "amount": "string",
+      "balanceRate": "string",
+      "transactionRate": "string",
+      "accruedRate": "string",
+      "feeRate": "string",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string",
+      "eligibility": [
+        {
+          "discountEligibilityType": "BUSINESS",
+          "additionalValue": "string",
+          "additionalInfo": "string",
+          "additionalInfoUri": "string"
+        }
+      ]
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
namestringmandatorynoneName of the fee
feeTypestringmandatorynoneThe type of fee
amountAmountStringconditionalnoneThe amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory
balanceRateRateStringconditionalnoneA fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory
transactionRateRateStringconditionalnoneA fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory
accruedRateRateStringconditionalnoneA fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory
accrualFrequencyExternalRefoptionalnoneThe indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
currencyCurrencyStringoptionalnoneThe currency the fee will be charged in. Assumes AUD if absent
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
additionalInfostringoptionalnoneDisplay text providing more information on the fee
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this fee
discounts[BankingProductDiscount]optionalnoneAn optional list of discounts to this fee that may be available
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
feeTypePERIODIC
feeTypeTRANSACTION
feeTypeWITHDRAWAL
feeTypeDEPOSIT
feeTypePAYMENT
feeTypePURCHASE
feeTypeEVENT
feeTypeUPFRONT
feeTypeEXIT
+ +

BankingProductDiscount

+ +

+
{
+  "description": "string",
+  "discountType": "BALANCE",
+  "amount": "string",
+  "balanceRate": "string",
+  "transactionRate": "string",
+  "accruedRate": "string",
+  "feeRate": "string",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string",
+  "eligibility": [
+    {
+      "discountEligibilityType": "BUSINESS",
+      "additionalValue": "string",
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
descriptionstringmandatorynoneDescription of the discount
discountTypestringmandatorynoneThe type of discount. See the next section for an overview of valid values and their meaning
amountAmountStringconditionalnoneValue of the discount. When following properties include one of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory
balanceRateRateStringconditionalnoneA discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
transactionRateRateStringconditionalnoneA discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory
accruedRateRateStringconditionalnoneA discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
feeRateRateStringconditionalnoneA discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType
additionalInfostringoptionalnoneDisplay text providing more information on the discount
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this discount
eligibility[BankingProductDiscountEligibility]optionalnoneEligibility constraints that apply to this discount
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
discountTypeBALANCE
discountTypeDEPOSITS
discountTypePAYMENTS
discountTypeFEE_CAP
discountTypeELIGIBILITY_ONLY
+ +

BankingProductDiscountEligibility

+ +

+
{
+  "discountEligibilityType": "BUSINESS",
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
discountEligibilityTypestringmandatorynoneThe type of the specific eligibility constraint for a discount
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the discountEligibilityType specified. Whether mandatory or not is dependent on the value of discountEligibilityType
additionalInfostringoptionalnoneDisplay text providing more information on this eligibility constraint
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this eligibility constraint
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
discountEligibilityTypeBUSINESS
discountEligibilityTypePENSION_RECIPIENT
discountEligibilityTypeMIN_AGE
discountEligibilityTypeMAX_AGE
discountEligibilityTypeMIN_INCOME
discountEligibilityTypeMIN_TURNOVER
discountEligibilityTypeSTAFF
discountEligibilityTypeSTUDENT
discountEligibilityTypeEMPLOYMENT_STATUS
discountEligibilityTypeRESIDENCY_STATUS
discountEligibilityTypeNATURAL_PERSON
discountEligibilityTypeINTRODUCTORY
discountEligibilityTypeOTHER
+ +

BankingProductDepositRate

+ +

+
{
+  "depositRateType": "FIXED",
+  "rate": "string",
+  "calculationFrequency": "string",
+  "applicationFrequency": "string",
+  "tiers": [
+    {
+      "name": "string",
+      "unitOfMeasure": "DOLLAR",
+      "minimumValue": 0,
+      "maximumValue": 0,
+      "rateApplicationMethod": "WHOLE_BALANCE",
+      "applicabilityConditions": {
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      },
+      "subTier": {
+        "name": "string",
+        "unitOfMeasure": "DOLLAR",
+        "minimumValue": 0,
+        "maximumValue": 0,
+        "rateApplicationMethod": "WHOLE_BALANCE",
+        "applicabilityConditions": {
+          "additionalInfo": "string",
+          "additionalInfoUri": "string"
+        }
+      }
+    }
+  ],
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
depositRateTypestringmandatorynoneThe type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning
rateRateStringmandatorynoneThe rate to be applied
calculationFrequencyExternalRefoptionalnoneThe period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to ISO 8601 Durations (excludes recurrence syntax)
applicationFrequencyExternalRefoptionalnoneThe period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
tiers[BankingProductRateTier]optionalnoneRate tiers applicable for this rate
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
additionalInfostringoptionalnoneDisplay text providing more information on the rate
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
depositRateTypeFIXED
depositRateTypeBONUS
depositRateTypeBUNDLE_BONUS
depositRateTypeVARIABLE
depositRateTypeINTRODUCTORY
depositRateTypeFLOATING
depositRateTypeMARKET_LINKED
+ +

BankingProductLendingRate

+ +

+
{
+  "lendingRateType": "FIXED",
+  "rate": "string",
+  "comparisonRate": "string",
+  "calculationFrequency": "string",
+  "applicationFrequency": "string",
+  "interestPaymentDue": "IN_ARREARS",
+  "tiers": [
+    {
+      "name": "string",
+      "unitOfMeasure": "DOLLAR",
+      "minimumValue": 0,
+      "maximumValue": 0,
+      "rateApplicationMethod": "WHOLE_BALANCE",
+      "applicabilityConditions": {
+        "additionalInfo": "string",
+        "additionalInfoUri": "string"
+      },
+      "subTier": {
+        "name": "string",
+        "unitOfMeasure": "DOLLAR",
+        "minimumValue": 0,
+        "maximumValue": 0,
+        "rateApplicationMethod": "WHOLE_BALANCE",
+        "applicabilityConditions": {
+          "additionalInfo": "string",
+          "additionalInfoUri": "string"
+        }
+      }
+    }
+  ],
+  "additionalValue": "string",
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
lendingRateTypestringmandatorynoneThe type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning
rateRateStringmandatorynoneThe rate to be applied
comparisonRateRateStringoptionalnoneA comparison rate equivalent for this rate
calculationFrequencyExternalRefoptionalnoneThe period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to ISO 8601 Durations (excludes recurrence syntax)
applicationFrequencyExternalRefoptionalnoneThe period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
interestPaymentDuestringoptionalnoneWhen loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered
tiers[BankingProductRateTier]optionalnoneRate tiers applicable for this rate
additionalValuestringconditionalnoneGeneric field containing additional information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the value of lendingRateType
additionalInfostringoptionalnoneDisplay text providing more information on the rate.
additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
lendingRateTypeFIXED
lendingRateTypeVARIABLE
lendingRateTypeINTRODUCTORY
lendingRateTypeDISCOUNT
lendingRateTypePENALTY
lendingRateTypeFLOATING
lendingRateTypeMARKET_LINKED
lendingRateTypeCASH_ADVANCE
lendingRateTypePURCHASE
lendingRateTypeBUNDLE_DISCOUNT_FIXED
lendingRateTypeBUNDLE_DISCOUNT_VARIABLE
interestPaymentDueIN_ARREARS
interestPaymentDueIN_ADVANCE
+ +

BankingProductRateTier

+ +

+
{
+  "name": "string",
+  "unitOfMeasure": "DOLLAR",
+  "minimumValue": 0,
+  "maximumValue": 0,
+  "rateApplicationMethod": "WHOLE_BALANCE",
+  "applicabilityConditions": {
+    "additionalInfo": "string",
+    "additionalInfoUri": "string"
+  },
+  "subTier": {
+    "name": "string",
+    "unitOfMeasure": "DOLLAR",
+    "minimumValue": 0,
+    "maximumValue": 0,
+    "rateApplicationMethod": "WHOLE_BALANCE",
+    "applicabilityConditions": {
+      "additionalInfo": "string",
+      "additionalInfoUri": "string"
+    }
+  }
+}
+
+
+

Defines the criteria and conditions for which a rate applies

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
namestringmandatorynoneA display name for the tier
unitOfMeasurestringmandatorynoneThe 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)
minimumValuenumbermandatorynoneThe number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value
maximumValuenumberoptionalnoneThe 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.
rateApplicationMethodstringoptionalnoneThe method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')
applicabilityConditionsBankingProductRateConditionoptionalnoneDefines a condition for the applicability of a tiered rate
subTierobjectoptionalnoneDefines the sub-tier criteria and conditions for which a rate applies
» namestringmandatorynoneA display name for the tier
» unitOfMeasurestringmandatorynoneThe 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)
» minimumValuenumbermandatorynoneThe number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value
» maximumValuenumbermandatorynoneThe 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)
» rateApplicationMethodstringoptionalnoneThe method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')
» applicabilityConditionsBankingProductRateConditionoptionalnoneDefines a condition for the applicability of a tiered rate
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
unitOfMeasureDOLLAR
unitOfMeasurePERCENT
unitOfMeasureMONTH
unitOfMeasureDAY
rateApplicationMethodWHOLE_BALANCE
rateApplicationMethodPER_TIER
unitOfMeasureDOLLAR
unitOfMeasurePERCENT
unitOfMeasureMONTH
unitOfMeasureDAY
rateApplicationMethodWHOLE_BALANCE
rateApplicationMethodPER_TIER
+ +

BankingProductRateCondition

+ +

+
{
+  "additionalInfo": "string",
+  "additionalInfoUri": "string"
+}
+
+
+

LinksPaginated

+ +

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

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
selfURIStringmandatorynoneFully qualified link that generated the current response document
firstURIStringconditionalnoneURI to the first page of this set. Mandatory if this response is not the first page
prevURIStringconditionalnoneURI to the previous page of this set. Mandatory if this response is not the first page
nextURIStringconditionalnoneURI to the next page of this set. Mandatory if this response is not the last page
lastURIStringconditionalnoneURI to the last page of this set. Mandatory if this response is not the last page
+ +

MetaPaginated

+ +

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

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
totalRecordsNaturalNumbermandatorynoneThe total number of records in the full set. See pagination.
totalPagesNaturalNumbermandatorynoneThe total number of pages in the full set. See pagination.
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/obsolete/get-products-v1.html b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-products-v1.html new file mode 100644 index 00000000..d023922e --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-products-v1.html @@ -0,0 +1,960 @@ + + + + + + + + Get Products v1 + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Products V1

+

This page documents the obsolete version 1 of the Get Products end point.

+ +

This version is to be ceased to be called by data recipients by August 29th 2020 and can be decommissioned by data holders as of that date.

+

Get Products

+

+ +
+

Code samples

+
+
GET https://data.holder.com.au/cds-au/v1/banking/products HTTP/1.1
+Host: data.holder.com.au
+Accept: application/json
+x-v: string
+x-min-v: string
+
+
var headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string'
+
+};
+
+$.ajax({
+  url: 'https://data.holder.com.au/cds-au/v1/banking/products',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+

GET /banking/products

+ +

Obtain a list of products that are currently openly offered to the market

+ +

Note that the results returned by this end point are expected to be ordered according to updated-since

+

Conventions

+

In the product reference payloads there are a number of recurring conventions that are explained here, in one place.

+

Arrays Of Features

+

In the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows:

+ +
    +
  • Each element in an array has the same structure so that clients can reliably interpret the payloads
  • +
  • Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees.
  • +
  • Each element has a field name additionalValue. This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the ADDITIONAL_CARDS feature is the number of cards allowed while the contents of this field for the MAX_LIMIT constraint would be the maximum credit limit allowed for the product.
  • +
  • An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths.
  • +
  • An element in these arrays may contain an additionalInfo and additionalInfoUri field. The additionalInfo field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The additionalInfoUri provides a link to externally hosted information specifically relevant to that feature of the product.
  • +
  • Depending on the type of data being represented there may be additional specific fields.
  • +
+

URIs To More Information

+

As the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels.

+ +

These URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees.

+

Linkage To Accounts

+

From the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account.

+ +

For this reason, while productCategory is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime.

+ +

Similarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actual has been instantiated and created along with the associated decisions inherent in that process.

+

Dates

+

It is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a lastUpdated field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the updated-since query parameter.

+ +

In addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely.

+

Endpoint Version

+ + + + + + + + + + +
Version1
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
effectivequerystringoptionalAllows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'
updated-sincequeryDateTimeStringoptionalOnly include products that have been updated after the specified date and time. If absent defaults to include all products
brandquerystringoptionalFilter results based on a specific brand
product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
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 should 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 should respond with a 406 Not Acceptable.
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterValue
effectiveCURRENT
effectiveFUTURE
effectiveALL
product-categoryTRANS_AND_SAVINGS_ACCOUNTS
product-categoryTERM_DEPOSITS
product-categoryTRAVEL_CARDS
product-categoryREGULATED_TRUST_ACCOUNTS
product-categoryRESIDENTIAL_MORTGAGES
product-categoryCRED_AND_CHRG_CARDS
product-categoryPERS_LOANS
product-categoryMARGIN_LOANS
product-categoryLEASES
product-categoryTRADE_FINANCE
product-categoryOVERDRAFTS
product-categoryBUSINESS_LOANS
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "products": [
+      {
+        "productId": "string",
+        "effectiveFrom": "string",
+        "effectiveTo": "string",
+        "lastUpdated": "string",
+        "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+        "name": "string",
+        "description": "string",
+        "brand": "string",
+        "brandName": "string",
+        "applicationUri": "string",
+        "isTailored": true,
+        "additionalInformation": {
+          "overviewUri": "string",
+          "termsUri": "string",
+          "eligibilityUri": "string",
+          "feesAndPricingUri": "string",
+          "bundleUri": "string"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Responses

+ + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessResponseBankingProductList
+

Response Headers

+ + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
+ + + +

ResponseBankingProductList

+ +

+
{
+  "data": {
+    "products": [
+      {
+        "productId": "string",
+        "effectiveFrom": "string",
+        "effectiveTo": "string",
+        "lastUpdated": "string",
+        "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+        "name": "string",
+        "description": "string",
+        "brand": "string",
+        "brandName": "string",
+        "applicationUri": "string",
+        "isTailored": true,
+        "additionalInformation": {
+          "overviewUri": "string",
+          "termsUri": "string",
+          "eligibilityUri": "string",
+          "feesAndPricingUri": "string",
+          "bundleUri": "string"
+        }
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
dataobjectmandatorynonenone
» products[BankingProduct]mandatorynoneThe list of products returned. If the filter results in an empty set then this array may have no records
linksLinksPaginatedmandatorynonenone
metaMetaPaginatedmandatorynonenone
+ +

BankingProduct

+ +

+
{
+  "productId": "string",
+  "effectiveFrom": "string",
+  "effectiveTo": "string",
+  "lastUpdated": "string",
+  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+  "name": "string",
+  "description": "string",
+  "brand": "string",
+  "brandName": "string",
+  "applicationUri": "string",
+  "isTailored": true,
+  "additionalInformation": {
+    "overviewUri": "string",
+    "termsUri": "string",
+    "eligibilityUri": "string",
+    "feesAndPricingUri": "string",
+    "bundleUri": "string"
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
productIdASCIIStringmandatorynoneA data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.
effectiveFromDateTimeStringoptionalnoneThe date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate
effectiveToDateTimeStringoptionalnoneThe date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products
lastUpdatedDateTimeStringmandatorynoneThe last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)
productCategoryBankingProductCategorymandatorynoneThe category to which a product or account belongs. See here for more details
namestringmandatorynoneThe display name of the product
descriptionstringmandatorynoneA description of the product
brandstringmandatorynoneA label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required
brandNamestringoptionalnoneAn optional display name of the brand
applicationUriURIStringoptionalnoneA link to an application web page where this product can be applied for.
isTailoredBooleanmandatorynoneIndicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable
additionalInformationobjectoptionalnoneObject that contains links to additional information on specific topics
» overviewUriURIStringoptionalnoneGeneral overview of the product
» termsUriURIStringoptionalnoneTerms and conditions for the product
» eligibilityUriURIStringoptionalnoneEligibility rules and criteria for the product
» feesAndPricingUriURIStringoptionalnoneDescription of fees, pricing, discounts, exemptions and bonuses for the product
» bundleUriURIStringoptionalnoneDescription of a bundle that this product can be part of
+ +

BankingProductCategory

+ +

+
"TRANS_AND_SAVINGS_ACCOUNTS"
+
+
+

The category to which a product or account belongs. See here for more details

+

Properties

+ + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousstringoptionalnoneThe category to which a product or account belongs. See here for more details
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
anonymousTRANS_AND_SAVINGS_ACCOUNTS
anonymousTERM_DEPOSITS
anonymousTRAVEL_CARDS
anonymousREGULATED_TRUST_ACCOUNTS
anonymousRESIDENTIAL_MORTGAGES
anonymousCRED_AND_CHRG_CARDS
anonymousPERS_LOANS
anonymousMARGIN_LOANS
anonymousLEASES
anonymousTRADE_FINANCE
anonymousOVERDRAFTS
anonymousBUSINESS_LOANS
+ +

LinksPaginated

+ +

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

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
selfURIStringmandatorynoneFully qualified link that generated the current response document
firstURIStringconditionalnoneURI to the first page of this set. Mandatory if this response is not the first page
prevURIStringconditionalnoneURI to the previous page of this set. Mandatory if this response is not the first page
nextURIStringconditionalnoneURI to the next page of this set. Mandatory if this response is not the last page
lastURIStringconditionalnoneURI to the last page of this set. Mandatory if this response is not the last page
+ +

MetaPaginated

+ +

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

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
totalRecordsNaturalNumbermandatorynoneThe total number of records in the full set. See pagination.
totalPagesNaturalNumbermandatorynoneThe total number of pages in the full set. See pagination.
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/obsolete/get-products-v2.html b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-products-v2.html new file mode 100644 index 00000000..1fdadcbd --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/obsolete/get-products-v2.html @@ -0,0 +1,1038 @@ + + + + + + + + Get Products v2 + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

Get Products V2

+

This page documents the obsolete version 2 of the Get Products end point.

+

Get Products

+

+ +
+

Code samples

+
+
GET https://data.holder.com.au/cds-au/v1/banking/products HTTP/1.1
+Host: data.holder.com.au
+Accept: application/json
+x-v: string
+x-min-v: string
+
+
var headers = {
+  'Accept':'application/json',
+  'x-v':'string',
+  'x-min-v':'string'
+
+};
+
+$.ajax({
+  url: 'https://data.holder.com.au/cds-au/v1/banking/products',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+

GET /banking/products

+ +

Obtain a list of products that are currently openly offered to the market

+ +

Note that the results returned by this end point are expected to be ordered according to updated-since

+

Conventions

+

In the product reference payloads there are a number of recurring conventions that are explained here, in one place.

+

Arrays Of Features

+

In the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows:

+ +
    +
  • Each element in an array has the same structure so that clients can reliably interpret the payloads
  • +
  • Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees.
  • +
  • Each element has a field name additionalValue. This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the ADDITIONAL_CARDS feature is the number of cards allowed while the contents of this field for the MAX_LIMIT constraint would be the maximum credit limit allowed for the product.
  • +
  • An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths.
  • +
  • An element in these arrays may contain an additionalInfo and additionalInfoUri field. The additionalInfo field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The additionalInfoUri provides a link to externally hosted information specifically relevant to that feature of the product.
  • +
  • Depending on the type of data being represented there may be additional specific fields.
  • +
+

URIs To More Information

+

As the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels.

+ +

These URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees.

+

Linkage To Accounts

+

From the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account.

+ +

For this reason, while productCategory is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime.

+ +

Similarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actual has been instantiated and created along with the associated decisions inherent in that process.

+

Dates

+

It is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a lastUpdated field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the updated-since query parameter.

+ +

In addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely.

+ +

NOTE: This version must be implemented by July 2020

+ +

Obsolete versions: v1

+

Endpoint Version

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

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
effectivequerystringoptionalAllows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'
updated-sincequeryDateTimeStringoptionalOnly include products that have been updated after the specified date and time. If absent defaults to include all products
brandquerystringoptionalFilter results based on a specific brand
product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
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 should 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 should respond with a 406 Not Acceptable.
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterValue
effectiveCURRENT
effectiveFUTURE
effectiveALL
product-categoryTRANS_AND_SAVINGS_ACCOUNTS
product-categoryTERM_DEPOSITS
product-categoryTRAVEL_CARDS
product-categoryREGULATED_TRUST_ACCOUNTS
product-categoryRESIDENTIAL_MORTGAGES
product-categoryCRED_AND_CHRG_CARDS
product-categoryPERS_LOANS
product-categoryMARGIN_LOANS
product-categoryLEASES
product-categoryTRADE_FINANCE
product-categoryOVERDRAFTS
product-categoryBUSINESS_LOANS
+ +
+

Example responses

+ +

200 Response

+
+
{
+  "data": {
+    "products": [
+      {
+        "productId": "string",
+        "effectiveFrom": "string",
+        "effectiveTo": "string",
+        "lastUpdated": "string",
+        "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+        "name": "string",
+        "description": "string",
+        "brand": "string",
+        "brandName": "string",
+        "applicationUri": "string",
+        "isTailored": true,
+        "additionalInformation": {
+          "overviewUri": "string",
+          "termsUri": "string",
+          "eligibilityUri": "string",
+          "feesAndPricingUri": "string",
+          "bundleUri": "string"
+        },
+        "cardArt": [
+          {
+            "title": "string",
+            "imageUri": "string"
+          }
+        ]
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+
+
+

Responses

+ + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessResponseBankingProductList
+

Response Headers

+ + + + + + + + + + + + + + + + +
StatusHeaderTypeFormatDescription
200x-vstringThe version of the API end point that the data holder has responded with.
+ + + +

ResponseBankingProductList

+ +

+
{
+  "data": {
+    "products": [
+      {
+        "productId": "string",
+        "effectiveFrom": "string",
+        "effectiveTo": "string",
+        "lastUpdated": "string",
+        "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+        "name": "string",
+        "description": "string",
+        "brand": "string",
+        "brandName": "string",
+        "applicationUri": "string",
+        "isTailored": true,
+        "additionalInformation": {
+          "overviewUri": "string",
+          "termsUri": "string",
+          "eligibilityUri": "string",
+          "feesAndPricingUri": "string",
+          "bundleUri": "string"
+        },
+        "cardArt": [
+          {
+            "title": "string",
+            "imageUri": "string"
+          }
+        ]
+      }
+    ]
+  },
+  "links": {
+    "self": "string",
+    "first": "string",
+    "prev": "string",
+    "next": "string",
+    "last": "string"
+  },
+  "meta": {
+    "totalRecords": 0,
+    "totalPages": 0
+  }
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
dataobjectmandatorynonenone
» products[BankingProductV2]mandatorynoneThe list of products returned. If the filter results in an empty set then this array may have no records
linksLinksPaginatedmandatorynonenone
metaMetaPaginatedmandatorynonenone
+ +

BankingProductV2

+ +

+
{
+  "productId": "string",
+  "effectiveFrom": "string",
+  "effectiveTo": "string",
+  "lastUpdated": "string",
+  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+  "name": "string",
+  "description": "string",
+  "brand": "string",
+  "brandName": "string",
+  "applicationUri": "string",
+  "isTailored": true,
+  "additionalInformation": {
+    "overviewUri": "string",
+    "termsUri": "string",
+    "eligibilityUri": "string",
+    "feesAndPricingUri": "string",
+    "bundleUri": "string"
+  },
+  "cardArt": [
+    {
+      "title": "string",
+      "imageUri": "string"
+    }
+  ]
+}
+...
+
+### Properties
+
+<h2 id="tocSbankingproductv2">BankingProductV2</h2>
+
+<a id="schemabankingproductv2"></a>
+
+```json
+{
+  "productId": "string",
+  "effectiveFrom": "string",
+  "effectiveTo": "string",
+  "lastUpdated": "string",
+  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
+  "name": "string",
+  "description": "string",
+  "brand": "string",
+  "brandName": "string",
+  "applicationUri": "string",
+  "isTailored": true,
+  "additionalInformation": {
+    "overviewUri": "string",
+    "termsUri": "string",
+    "eligibilityUri": "string",
+    "feesAndPricingUri": "string",
+    "bundleUri": "string"
+  },
+  "cardArt": [
+    {
+      "title": "string",
+      "imageUri": "string"
+    }
+  ]
+}
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
productIdASCIIStringmandatorynoneA data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.
effectiveFromDateTimeStringoptionalnoneThe date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate
effectiveToDateTimeStringoptionalnoneThe date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products
lastUpdatedDateTimeStringmandatorynoneThe last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)
productCategoryBankingProductCategorymandatorynoneThe category to which a product or account belongs. See here for more details
namestringmandatorynoneThe display name of the product
descriptionstringmandatorynoneA description of the product
brandstringmandatorynoneA label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required
brandNamestringoptionalnoneAn optional display name of the brand
applicationUriURIStringoptionalnoneA link to an application web page where this product can be applied for.
isTailoredBooleanmandatorynoneIndicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable
additionalInformationobjectoptionalnoneObject that contains links to additional information on specific topics
» overviewUriURIStringoptionalnoneGeneral overview of the product
» termsUriURIStringoptionalnoneTerms and conditions for the product
» eligibilityUriURIStringoptionalnoneEligibility rules and criteria for the product
» feesAndPricingUriURIStringoptionalnoneDescription of fees, pricing, discounts, exemptions and bonuses for the product
» bundleUriURIStringoptionalnoneDescription of a bundle that this product can be part of
cardArt[object]optionalnoneAn array of card art images
» titlestringoptionalnoneDisplay label for the specific image
» imageUriURIStringmandatorynoneLink to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels
+ +

BankingProductCategory

+ +

+
"TRANS_AND_SAVINGS_ACCOUNTS"
+
+
+

The category to which a product or account belongs. See here for more details

+

Properties

+ + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymousstringmandatorynoneThe category to which a product or account belongs. See here for more details
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
anonymousTRANS_AND_SAVINGS_ACCOUNTS
anonymousTERM_DEPOSITS
anonymousTRAVEL_CARDS
anonymousREGULATED_TRUST_ACCOUNTS
anonymousRESIDENTIAL_MORTGAGES
anonymousCRED_AND_CHRG_CARDS
anonymousPERS_LOANS
anonymousMARGIN_LOANS
anonymousLEASES
anonymousTRADE_FINANCE
anonymousOVERDRAFTS
anonymousBUSINESS_LOANS
+ +

LinksPaginated

+ +

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

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
selfURIStringmandatorynoneFully qualified link that generated the current response document
firstURIStringconditionalnoneURI to the first page of this set. Mandatory if this response is not the first page
prevURIStringconditionalnoneURI to the previous page of this set. Mandatory if this response is not the first page
nextURIStringconditionalnoneURI to the next page of this set. Mandatory if this response is not the last page
lastURIStringconditionalnoneURI to the last page of this set. Mandatory if this response is not the last page
+ +

MetaPaginated

+ +

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

Properties

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
totalRecordsNaturalNumbermandatorynoneThe total number of records in the full set. See pagination.
totalPagesNaturalNumbermandatorynoneThe total number of pages in the full set. See pagination.
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.0.1.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.0.1.html new file mode 100644 index 00000000..07d6107e --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.0.1.html @@ -0,0 +1,280 @@ + + + + + + + + Consumer Data Standards - v1.0.1 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.0.1 Release Notes

+

Release notes for version 1.0.1 of the CDR Standards.

+

High Level Standards

+

No Change

+

API End Points

+

No Change

+

Information Security Profile

+ + + + + + + + + + + + +
ChangeDescriptionLink
grant_type ClarificationExpansion of description of the grant_type parameter to allow for the refresh_token value for the OIDC token end pointClient Authentication Section
+

Consumer Experience

+ + + + + + + + + + + + +
ChangeDescriptionLink
Account balance permission added to basic scopeThe Account balance permission has been moved from Account numbers, balanced and features data cluster to the Account name and type data cluster.CX Section
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.1.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.1.0.html new file mode 100644 index 00000000..3e8d9251 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.1.0.html @@ -0,0 +1,382 @@ + + + + + + + + Consumer Data Standards - v1.1.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.1.0 Release Notes

+

Release notes for version 1.1.0 of the CDR Standards.

+

Errata for v1.1.0

+

Since v1.1.0 was published the following errors have been identified and will be corrected in the next version:

+ +
    +
  • The x-cds-subject header was intended to be removed but was accidentally left in the standards documentation. The statements requiring x-cds-subject should be ignored.
  • +
  • The statements regarding the use of TLS in the Information Security profile imply that the authorize end point should be protected with TLS using a certificate provided by the CDR CA. As the authorize end point must be accessed by a public client this end point must use TLS but the data holder is free to use any certificate authority.
  • +
+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Content-Type header optionalityClarified that the Content-Type header is only mandatory for PUT and POST callsHTTP Headers Section
x-fapi-interaction-id description clarificationA clarification of the description recommended by the CDR Engineering teamHTTP Headers Section
x-cds-subject header removedThis header has been removed from the standards based on community consultationHTTP Headers Section
Modification of x-cds-User-Agent headerThe x-cds-User-Agent header has been renamed to x-cds-client-headers and clarified to exclude specific types of headersHTTP Headers Section
Bug fix for rate typeIn a previous decision the limitation of the rate type to plus or minus 100% was agreed to be removed. This has not been fixedCommon Field Types Section
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Clarified description of productNameClarified that the productName field in the account structure is set by the data holder not the account holderBankingAccount Section
accountName optional for domestic payeeFor some Banks the account name field is not captured for domestic payees so this field has been made optionalBankingDomesticPayeeAccount Section
Aggregated transaction clarificationThe handling of the sharing of data related to aggregated transactions has been added to the description of the transaction history end pointGet Transactions For Account Section
Term deposit maturity instructions as arrayThe termDeposit field in the account detail structure has been converted into an arrayBankingAccountDetail Section
International payees with domestic accounts clarificationDescription for how to represent international payees that are represented as a domestic account for payment purposesGet Payee Detail Section
Corrected description for amount fieldThe amount field in scheduled payments had an incorrect description text which has been fixedBankingScheduledPaymentSet Section
Updates to scheduled paymentsSeries of amendments to the scheduled payments structure for lastWeekDayLastWeekday Section
Clarification of ISO 8601 usageClarification that the recurrence syntax in ISO 8601 will not be usedVarious
Card art in product end pointsVersion 2 of Get Products and Get Product Detail has been added to allow for the inclusion of card art fieldsBanking APIs Section
+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Normative reference versionsAdded specific dates or versions to the normative reference table to avoid ambiguityNormative References
Removed references to Vectors Of TrustThis change was recommended via the maintenance iteration to remove ambiguity from the standardsInfoSec End Points Section & Scopes and Claims Section
Clarified id_token non-normative sampleNon-normative id_token has been modified to include the refresh_token_expires_at and sharing_expires_at claimsScopes and Claims Section
Added CORS support for public end pointsAdded a CORS section allowing for CORS to be enabled for Get Status, Get Outages, Get Products and Get Product Detail end pointsCORS Section
Removal of MTLS for specific end pointsRemoval of the MTLS requirements for
  • The revocation end point hosted by Data Recipients
  • The JWKS end point hosted by Data Recipients
  • The JWKS end point hosted by Data Holders
  • The OIDC discovery end point hosted by Data Holders
InfoSec End Points Section
+

Consumer Experience

+

No Change

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.1.1.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.1.1.html new file mode 100644 index 00000000..50e1e791 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.1.1.html @@ -0,0 +1,364 @@ + + + + + + + + Consumer Data Standards - v1.1.1 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.1.1 Release Notes

+

Release notes for version 1.1.1 of the CDR Standards.

+ +

This version of the standards only contains fixes and clarifications. None of the changes in this version materially impact the intent or meaning of the standards and no updates should be required for compliant implementations.

+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Summary of future bindingAdded a section highlighting the sections of the standard where an obligation will commence at a future dateFuture Dated Obligations
Updated known issuesRepurposed the known issues section to allow for clearer reporting of errata in each versionKnown Issues
Correct slashesReplaced back slashes with forward slashes in various places in samples and descriptive textVarious
Removed sample filesRemoved a series of obsolete samples were not linked but were included in the repositoryNot Applicable
x-cds-client-headers descriptionEnsured all descriptions for the x-cds-client-headers header are consistent across the standardsVarious
x-fapi-interaction-id descriptionEnsured all descriptions for the x-fapi-interaction-id header are consistent across the standardsVarious
NFR Tier ClarificationUpdated the non-functional requirements section to include the end points added to the standards after this section was originally published. Note that this section is still non-binding in the standards with no future binding date setPerformance Requirements
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
ANZSCO spellingCorrection of incorrect spelling of ANZSCOCommon Person
Remove x-cds-subjectThe x-cds-subject header was removed in v1.1.0 but references remained in swagger files and end point documentation. This has been correctedVarious
Additional enum documentationAdded additional enumeration value documentation that was in the decision proposal but not the standards for the nonBusinessDayTreatment fieldnonBusinessDayTreatment Field
UnitOfMeasure enumImproved the docuementation for the UnitOfMeasure fieldUnitOfMeasure field
Anonymous objectsCorrected API end point documentation to indicate that anonymous objects are mandatoryVarious
+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
sharing_duration typeClarified that the type of the sharing_duration parameter of the request object is a numberRequesting Sharing Duration
Normative reference correctionsFixed normative references that were inadvertently linking to RFC drafts rather than the final versionsNormative References
Removed obsolete rationaleAn obsolete statement providing rationale for a past change to the standards that did not materially change the standards was removedTransaction Security
JWKS hostingAn incorrect statement indicating that the CDR Register would host participant JWKS was removedClient Authentication
JWKS for recipientsCorrected the documentation for the JWKS end point to indicate that recipients also need to host a JWKS end pointJSON Web Key Set End Point
+

Consumer Experience

+

No Change

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.2.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.2.0.html new file mode 100644 index 00000000..30a51e60 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.2.0.html @@ -0,0 +1,359 @@ + + + + + + + + Consumer Data Standards - v1.2.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.2.0 Release Notes

+

Release notes for version 1.2.0 of the CDR Standards.

+ +

This version of the standards is considered to be the binding baseline for the Phase 2 implementation of the Consumer Data Right regime currently targeted for July 2020.

+

High Level Standards

+ + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Binding StatementModified the introduction section to include a statement of binding that is aligned to the legal framework for the CDR regimeIntroduction
Clarification of DateTimeStringChange to the description of the DateTimeString type to clarify the baselining of time to UTC. This is a clarification only and does not materially change the standardsCommon Types Section
+

API End Points

+

No Change

+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Concurrent Consent DecisionIncorporated the changes articulated in Decision 85 regarding concurrent consentConsent Section
Client Registration DiscoveryAdded the requirement that the client registration end point be included in the OIDC discovery responseSecurity End Points Section
Security TLS CertificateThe constraint that security end points requiring TLS only must use a certificate obtained from the CDR CA has been removedSecurity End Points Section
+

Consumer Experience

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Defect: Data cluster language for basic scopeCX Standards: minor defect correction for location of ‘balances’.
'Account name and type' now changed to 'Account name, type and balance'.
'Account numbers, balances and features' now changed to 'Account numbers and features'.
CX Standards
Page 21: Data Standards Language
Single/Concurrent consent guidelineCX Guidelines: example for ADRs to present withdrawal election prior to establishing a new consent.CX Guidelines
Page 64: Subsequent Consent
Rule 4.23(b) example: historical dataCX Guidelines: showing how DHs may present static ‘1 Jan 2017’ reference in authorisation flow to reflect rule 4.23(b).
CX Guidelines now also suggest other locations for this information that are not required in the rules or standards.
CX Guidelines
Page 82: Authorise / Confirmation
Page 96: ADR dashboard
Page 108: DH Dashboard
Rule 7.4 and 7.9 example: compliance with Privacy Safeguards 5 and 10CX Guidelines: example for privacy safeguard requirement on dashboards. Rules regarding disclosure of datasets, references to ADRs and DHs, and date of initial and final disclosure.CX Guidelines
Page 96: ADR dashboard
Page 108: DH dashboard
CDR BrandingCX Guidelines: official CDR branding included in screens that refer to accreditation, with reference to ACCC-supplied assets.CX Guidelines
Pages 10, 37, 39, 77, 110
Accreditation checkCX Guidelines: statement regarding ACCC-provided URL for consumers to use to verify accreditationCX Guidelines
Page 39, 111
Password copyCX Guidelines: clarified example of copy regarding CDR participants never asking for consumer passwords. Presented in body copy and footer.CX Guidelines
Pages 71 - 75
CDR Rule 7.12(2)(b)CX Guidelines: inclusion of rule in reference to outsourced providers.CX Guidelines
Page 58, 62
Design patternsCX Guidelines: guideline on encouraging consumers to be privacy conscious.CX Guidelines
Page 53, 95, 108
Rules referencesCX Guidelines: amended rules references.CX Guidelines
Pages 40, 58, 98, 99, 107
CDR Receipt: Rule 4.18CX Guidelines: copy updated to clarify that ADRs may but are not required to provide a CDR receipt on the consumer dashboard.CX Guidelines
Page 94
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.3.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.3.0.html new file mode 100644 index 00000000..a893c129 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.3.0.html @@ -0,0 +1,409 @@ + + + + + + + + Consumer Data Standards - v1.3.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.3.0 Release Notes

+

Release notes for version 1.3.0 of the CDR Standards.

+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Updated PrinciplesAmendment to high level principles to include principles for CX and for cross-sector extensionPrinciples
Maintenance LinkA link to the standards maintenance GitHub repository has been added to the table of contentsGeneral
x-fapi-auth-date ClarificationClarification that the FAPI Read profile defines the format for the x-fapi-auth-date headerHTTP Headers
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
x-cds-client-headers correctionThe x-cds-client-headers header was missing from the Get Transactions For Account end point. This has been rectifiedGet Transactions For Account
x-fapi-interaction-id correctionThe x-fapi-interaction-id header was missing from the Get Customer end point. This has been rectifiedGet Customer
Product API v3Introduction of v3 of the Product Reference end points to remove sub tiers, addition of more info and info URL fields, and addition of repayment type and loan purpose fieldsGet Products
APCA Field DescriptionClarified the description of the APCA field for the apcaNumber fieldBankingTransaction
MAX_LIMIT, MIN_LIMIT DescriptionsClarification of descriptions for MAX_LIMIT and MIN_LIMIT enumeration valuesProduct & Account Components
+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
ID Token EncryptionClarification of the non-normative examples for the OpenID Provider Configuration End Point regarding ID Token encryption algorithmsInfoSec End Points
Request Object SampleClarifications of non-normative example for the Request ObjectRequest Object
Client Authentication SampleAddition of non-normative samples for the client authentication sectionClient Authentication
Concurrent ConsentAddition of changes arising from the concurrent consent consultation. This resulted in a number of changes to the Information Security profileGeneral
MTLS RFCThe reference to the MTLS normative reference has been updated from the draft to the final standardNormative References
+

Consumer Experience

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Optional example for ‘Transaction Details’ amendedCX Standards defect. An optional example for ‘Transaction Details’ incorrectly referred to ‘BSB, account number’. This optional example has been removed.CX Standards p.14
Use of ‘One Time Password’CX Standards clarification. Amended to clarify that the use of the term “One Time Password” may be presented alongside an existing term used by a data holder (e.g. Netcode, one time pin etc.).CX Standards p.16
Unavailable accounts in the authorisation flowCX Standards clarification. This clarification has been added to the standard as follows:

Data holders are not permitted to show unavailable joint accounts as joint accounts need to be elected via a joint account management service before they are permitted to appear in the authorisation flow (See CDR Rules: Schedule 3, 4.1(1); 4.2; 4.3(3); and CDR Rule 4.24)
CX Standards p.16
Profile selection stepCX Standards, optional addition. To avoid DH non-compliance this guideline has been added as an optional part of an existing CX standard on account selection as follows:

Data holders MAY add a ‘profile selection’ step or equivalent prior to the account selection step if a single identifier provides access to different customer accounts. For example, one customer ID may give access to business customer and individual customer accounts.

The ‘profile selection’ step
SHOULD only be considered if it is an existing customer experience, and SHOULD be as minimal as possible to avoid introducing unwarranted friction (having regard to CDR Rule 4.24).

This item was previously a guideline but was uplifted to be an optional part of the standards as it is not permitted in the authorisation flow unless it is a rule or standard.
CX Standards p.16
CX PrinciplesThe CX Guidelines and CX Standards artefacts now include the CX Principles and Outcome Principle 3.
These principles guide standard/guideline development but are not standards themselves.
General
ABS hyperlink correctedBroken link replacedCX Guidelines p.24
Concurrent consentCX Guideline amended to avoid implying that concurrent consent will support re-authorisation.
Guideline amended to clarify that consumer withdrawal must occur before/in the course of replacing an existing consent.
CX Guidelines p.65
(Added to key decisions table p.3)
CDR Logo in authorisation flowCX Guideline has been removed pending the ACCC making this functionality available.CX Guidelines p.79
Accreditation ID in authorisation flowCX Guideline has been removed pending the ACCC making this functionality available. ACCC is consulting on the sharing of the accreditation ID with DHs on GitHubCX Guidelines p.79
Historical dataScreen example changed to ‘may date back to 1st January 2017’ as DH won’t know this detail.CX Guidelines p.83
User-defined tagsADR guideline refers to ‘absence of information about the purpose or use case’. This has been removed as this only relates to DHsCX Guidelines p.93, 95
Status of consent/sharingGuideline changed to clarify nuance of ‘status’ referring to both consent or data sharingCX Guidelines p.95, 108
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.3.1.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.3.1.html new file mode 100644 index 00000000..0cd8973b --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.3.1.html @@ -0,0 +1,342 @@ + + + + + + + + Consumer Data Standards - v1.3.1 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.3.1 Release Notes

+

Release notes for version 1.3.1 of the CDR Standards.

+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Removal of aside commentIn the availability section there was a redundant comment indicating the notification method for outages is pending. This has been removedAvailability Requirements
Error response clarificationThe requirement that a 406 response must be provided if x-v and x-min-v are not present was written before the must/should language was used with specific meaning. This is not clarified as a MUST (as was intended) rather than a SHOULD. This change has also been applied where the version headers are documented for end points.HTTP Headers
Example correctionCorrected the non-normative example for the base URI to remove the resource componentVersioning
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
imageUri clarificationAdd clarification to the imageUri field indicating that url-encoded data is valid for this fieldBankingProductV3 Model
MIN_LIMIT, MAX_LIMIT descriptionsAlign the language used to describe the MIN_LIMIT and MAX_LIMIT fields to remove inconsistency and ambiguityProduct & Account Components
Model versioningVersioning of schema models to accommodate v3 of the PRD end pointsVarious
PRD v2 obsolescence dateRemoved the obseloscence date for v2 PRD end points. These were included erroneouslyGet Products v2,
Get Product Detail v2
Invalid account IDClarification that a 422 error in response to an invalid Account ID is required even if only one ID in a group is invalidPOST APIs that query specific accounts
+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Markdown fixSome of the markdown for the Arrangement end point was not formatted correctly. This has been fixed.Security End Points
Revocation end point for ADRsThe documentation covering the need for ADR's to host a revocation end point until November 2020 was inadvertently removed. Revocation end point documentation has been modified to match the relevant decision proposalsSecurity End Points
Token example correctionChange the non-normative example in the Tokens section to correctly use numeric date values instead of stringsToken
Client auth for security end pointsClarify for the revocation and arrangement end points that client assertion is used to verify the identity of Data Recipients and bearer tokens are used to verify the identity of Data HoldersSecurity End Points
OIDC Discovery updateCorrected the non-normative example for ODIC Discovery end point to correctly specify the tls_client_certificate_bound_access_tokens fieldSecurity End Points
+

Consumer Experience

+

No Change

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.4.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.4.0.html new file mode 100644 index 00000000..b1925870 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.4.0.html @@ -0,0 +1,399 @@ + + + + + + + + Consumer Data Standards - v1.4.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.4.0 Release Notes

+

Release notes for version 1.4.0 of the CDR Standards.

+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Non-normative examples fix in extensibility sectionUpdated example textExtensibility
Syntax error in non-normative exampleAdded missing comma'sPayloads
Content-Type headerAdded Content-Type header non-normative exampleHTTP Headers
Accept headerAdded Accept header non-normative exampleHTTP Headers
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Add new fee type to support at-cost feesUpdate Product Fee Type enumeration feeType to include this additional enumerated value VARIABLEBankingProductFee
Update to field descriptions in BankingProductFeeDescriptions updates to amount, balanceRate, accruedRate and transactionRateBankingProductFee
Fix description of sorting order for Get ProductsThe documentation incorrectly referenced updated-since which is the filter attribute. Its been updated to lastUpdated which is a product attributeGet Products
Missing schema markdown for getProducts & getProductDetail V2Included missing schema markdownGet Product Detail V2
Increment BankingProductLendingRate to V2BankingProductLendingRate was not versioned in its last updateBankingProductLendingRateV2
Incorrect Get Product Detail V3 implementation dateUpdated to February 2021Get Product Detail
Fix description of sorting order for Get ProductsThe documentation incorrectly referenced updated-since which is the filter attribute. Its been updated to lastUpdated which is a product attributeGet Products
+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Fix broken TDIF linksUpdated to latest TDIF linksLevels of Assurance
Informative ReferencesAdd RFC7231 to the Informative References sectionInformative References
Update OpenID Connect Metadata descriptionUpdate to description for id_token_encryption_alg_values_supportedEnd Points
Update the OpenID Connect Metadata non-normative exampleUpdated values of id_token_encryption_alg_values_supportedEnd Points
Corrected "aud" claim in client authentication to Data HolderChanged description to the Token Endpoint URLEnd Points
Introspection EndpointUpdated Token Introspection documentation to include CDR Arrangement ID claim and non-normative exampleEnd Points
Error in statement on CDR Arrangement IDCDR Arrangement ID statement incorrectly mentions the ID TokenIdentifiers and subject Types
Update to PAR non-normative exampleCorrected client_idIdentifiers and subject Types
Add authorisation to PAR non-normative exampleUpdated example to include authorisation stepIdentifiers and subject Types
Update to Token Introspection non-normative exampleThe request is incorrectly represented as a token request.Identifiers and subject Types
Update PAR Request non-normative exampleRequest object should contain standard claims such as sharing_duration as well as the new cdr_arrangement_idEnd Points
+

Consumer Experience

+ + + + + + + + + + + + +
ChangeDescriptionLink
Permitting DHs to show unavailable joint accounts in authorisation flowv1.3.0 of the CX Standards reflected ACCC’s position that DHs were not permitted to show unavailable joint accounts in the authorisation flow. The ACCC have revised this position to allow DHs to show unavailable joint accounts in the authorisation flow.

This revised position is reflected in V1.4.0 as optional for November 2020. This change (1) removes the statement on data holders not being permitted to show unavailable joint accounts and (2) includes a clarification on how unavailable accounts are to be interpreted.
CX Standards p. 16
CX Guidelines p. 25, 78-80
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.5.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.5.0.html new file mode 100644 index 00000000..4e92558e --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.5.0.html @@ -0,0 +1,377 @@ + + + + + + + + Consumer Data Standards - v1.5.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.5.0 Release Notes

+

Release notes for version 1.5.0 of the CDR Standards.

+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Update NFR descriptionUpdate to the language for NFR thresholds to clarify how status and outage end points are addressedNon Functional Requirements
Future Date ObligationsFuture Dated Obligations for DP135 November consent changes and Maintenance Iteration 4 breaking changesFuture Date Obligations
Minor errata for 1.4.0Fixed links and typos in 1.4.0 and correct use of common field types
Payload ConventionsAdded section on Arrays to clarify how empty and single valued arrays should be treatedArray conventions
NFR Performance ThresholdsClarified end point performance tiers and removed ambiguous overlapsPerformance Requirements
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Update to CRN descriptionUpdate to the documentation to be clear on the expectations for masking any data that the data holder considers sensitiveBankingBillerPayee
BankingPayee nicknameUpdated description of nicknameBankingPayee
BankingBillerPayee updateAdded crnType to BankingBillerPayeeBankingBillerPayee
Extend rejection counts for unauthenticated APIsIntroduced GetMetrics V2 and RejectionMetrics V2Get Metrics
Correct isPartial field typeCorrectly references CDS Boolean common field typeDiscoveryOutage
Correct minimumValue and maximumValue field typeCorrectly references CDS Number common field typeBankingProductRateTierV3
Update to amount descriptionUpdate to the documentation for amount in BankingProductDiscount to remove grammatical mistakesBankingProductDiscount
Update to BankingProductDiscountEligibilityUpdate to correctly define additionalInfo and the eligibility array to be conditional based on applicable constraintsBankingProductDiscountEligibility
Update to Product Discount Type FEE_CAP descriptionUpdate to FEE_CAP description to correctly reference applicable ratesProduct Discount Types
Added typed version support for ANZSIC and ANZSCO codesAdded version support for industryCode and occupationCode to allow data holders to reference the applicable document versions for the codes they hold.Get Customer
Added Get Metrics v2Based on breaking changes, introduced v2 for Get Metrics end pointGet Metrics v2
+

Information Security Profile

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Mandatory Claims for ID TokenChanges related to alignment with normative references of ID TokenTokens
Required use of Authentication Time claimUpdated description in the standards to remove the requirement for auth_time unless it is requested as an essential claimScopes and Claims
Updates to November consent changesUpdates the sections covering Concurrent Consent, PAR client authentication, CDR Arrangement Revocation and CDR Arrangement ID documenation based on DP135Scopes and Claims
Update token introspection endpointUpdated token introspection text to align with normative reference and added scope claimEndpoints
+

Consumer Experience

+

No Changes

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.5.1.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.5.1.html new file mode 100644 index 00000000..28480f5a --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.5.1.html @@ -0,0 +1,280 @@ + + + + + + + + Consumer Data Standards - v1.5.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.5.1 Release Notes

+

Release notes for version 1.5.1 of the CDR Standards.

+

High Level Standards

+

No Changes

+

API End Points

+ + + + + + + + + + + + +
ChangeDescriptionLink
BankingBillerPayee updateReverted change to crnType in BankingBillerPayee back to Release 1.4.0BankingBillerPayee
+

Information Security Profile

+ + + + + + + + + + + + +
ChangeDescriptionLink
Mandatory Claims for ID TokenErrata: Added Future Dated Obligations for ID Token claim changes introduced in 1.5.0 as listed in Decision 134Future Date Obligations
+

Consumer Experience

+

No Changes

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.6.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.6.0.html new file mode 100644 index 00000000..535e76c2 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.6.0.html @@ -0,0 +1,280 @@ + + + + + + + + Consumer Data Standards - v1.6.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.6.0 Release Notes

+

Release notes for version 1.6.0 of the CDR Standards.

+

High Level Standards

+ + + + + + + + + + + + +
ChangeDescriptionLink
Remove duplicate entries from the Future Dated Obligations tableThe future dated obligations included a duplication of Get Product V2 and Get Product Detail V1 obligations. The redundant entries have been removedFuture Dated Obligations
+

API End Points

+

No Changes

+

Information Security Profile

+ + + + + + + + + + + + +
ChangeDescriptionLink
Updated requirements for setting and validating the "audience" claim in Client Authentication for Data Recipients calling Data HoldersClient Authentication has been updated to align to upstream standards. Data Recipients continue to pass the URL of the endpoint being invoked until the end of March. At which time, Data Holders must validate that the audience claim is either the issuer identifier, Token endpoint URL or the URL of the endpoint being invoked.Client Authentication
+

Consumer Experience

+

No Changes

+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.7.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.7.0.html new file mode 100644 index 00000000..5df09e41 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.7.0.html @@ -0,0 +1,336 @@ + + + + + + + + Consumer Data Standards - v1.7.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.7.0 Release Notes

+

Release notes for version 1.7.0 of the CDR Standards.

+ +

This release pertains to the changes approved by the Data Standards Chair in Decision 159.

+

High Level Standards

+ + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
CDR Support Portal LinkAdded a link to the CDR Support Portal in the side menu.
Natural sort-ordered enumerationsEnumerated lists have been sorted by natural sort order
CDR Support Portal LinkAdded a link to the CDR Support Portal in the side menu.
+

API End Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Fixed paymentsRemaining value in Scheduled Payment non-normative examplesNon-normative examples showed paymentsRemaining = 0 however paymentsRemaining is a PositiveInteger with a value of 1 or greater.Scheduled Payments APIs
Scheduled PaymentsCorrected the description for the scheduled payment nickname and made payeeReference conditional, to be provided only if there is a global payee reference for the payment set. Introduced conditional payeeReference and nickname for the individualised payments in the scheduled payment setBankingScheduledPayment
Updated CRN descriptionThe CRN description was updated for BankingBillerPayee and BankingTransaction to appropriately reference conditionality of the response based on data sensitivity considerations and availability of the data for the posted transaction or saved payee.
Draft Energy Standards UpdateUpdated the draft energy standards to accommodate the feedback from DP 149Draft Energy Standards
+

Information Security Profile

+ + + + + + + + + + + + +
ChangeDescriptionLink
One-Time Collection ConsentClarified that one-time collection consent is permitted for a shraring duration up to 24 hours. This allows the Data Recipient to obtain a Refresh Token to collect data over a period longer than a single Access Token in case of technical issues during collectionRequesting Sharing Duration
+

Consumer Experience

+ + + + + + + + + + + + + + + + + +
ChangeDescriptionLink
Added CX Standards into main Data StandardsCX Standards have been ported from the PDF version into the main Data Standards published on GitHubCX Standards
Removal of optional message in CX Standard #18An optional message in CX Standard #18 - Withdrawing Authorisation: Redundant Data has been removed to align with the v2 rules on separate consents.Consumer Experience Standard #18

Decision Proposal 168
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.8.0.html b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.8.0.html new file mode 100644 index 00000000..35b3a3be --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/releasenotes/releasenotes.1.8.0.html @@ -0,0 +1,282 @@ + + + + + + + + Consumer Data Standards - v1.8.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
+
+
+

V1.8.0 Release Notes

+

Release notes for version 1.8.0 of the CDR Standards.

+ +

This release pertains to the changes approved by the Data Standards Chair in Decision 144.

+

High Level Standards

+

No change

+

API End Points

+

No change

+

Information Security Profile

+ + + + + + + + + + + + +
ChangeDescriptionLink
Modularised build scriptChanged the security profile build process to modularise the Markdown file into separate imports. This has no change to the standards.Security Profile
+

Consumer Experience

+ + + + + + + + + + + + +
ChangeDescriptionLink
Amending Consent CX StandardsAdded new CX standards arising from Decision Proposal 144Amending Consent
+ +
+
+
+
+ + diff --git a/docs/archive/standards-1.8.0/docs/includes/swagger/cds_admin.json b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_admin.json new file mode 100644 index 00000000..466807e6 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_admin.json @@ -0,0 +1,575 @@ +{ + "swagger" : "2.0", + "info" : { + "description" : "Data Holder Consumer Data Standards Administration End Points", + "version" : "1.3.0", + "title" : "Consumer Data Standards Administration End Points", + "contact" : { + "name" : "Consumer Data Standards Administration End Points", + "url" : "https://consumerdatastandards.org.au/", + "email" : "cdr-data61@csiro.au" + }, + "license" : { + "name" : "MIT License", + "url" : "https://opensource.org/licenses/MIT" + } + }, + "host" : "data.holder.com.au", + "basePath" : "/cds-au/v1", + "schemes" : [ "https" ], + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "paths" : { + "/admin/register/metadata" : { + "post" : { + "tags" : [ "Admin", "Register" ], + "summary" : "Metadata Update", + "description" : "Indicate that a critical update to the metadata for Accredited Data Recipients has been made and should be obtained", + "operationId" : "metadataUpdate", + "parameters" : [ { + "in" : "body", + "name" : "action", + "required" : true, + "schema" : { + "$ref" : "#/definitions/RequestMetaDataUpdate" + } + }, { + "name" : "x-v", + "in" : "header", + "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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](##response-headers) of the API end point that the data holder has responded with." + } + } + } + }, + "x-version" : "1" + } + }, + "/admin/metrics" : { + "get" : { + "tags" : [ "Admin", "Metrics" ], + "summary" : "Get Metrics", + "description" : "This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime.\n\nNOTE: This version must be implemented by **July 31st 2021**\n\nObsolete versions: [v1](includes/obsolete/get-metrics-v1.html)", + "operationId" : "getMetrics", + "parameters" : [ { + "name" : "period", + "in" : "query", + "description" : "The period of metrics to be requested. Values can be CURRENT (meaning metrics for current day), HISTORIC (meaning metrics for previous days or months) or ALL. If absent the default is ALL.", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "CURRENT", "HISTORIC", "ALL" ] + }, { + "name" : "x-v", + "in" : "header", + "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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseMetricsListV2" + } + } + }, + "x-version" : "2" + } + } + }, + "definitions" : { + "RequestMetaDataUpdate" : { + "type" : "object", + "required" : [ "data" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/RequestMetaDataUpdate_data" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "ResponseMetricsListV2" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseMetricsListV2_data" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "AvailabilityMetrics" : { + "type" : "object", + "properties" : { + "currentMonth" : { + "type" : "number", + "description" : "Percentage availability of the CDR platform so far for the current calendar month. 0.0 means 0%. 1.0 means 100%." + }, + "previousMonths" : { + "type" : "array", + "description" : "Percentage availability of the CDR platform for previous calendar months. The first element indicates the last month and so on. A maximum of twelve entries is required if available. 0.0 means 0%. 1.0 means 100%.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Percentage availability of the CDR platform over time", + "x-conditional" : [ "currentMonth", "previousMonths" ] + }, + "PerformanceMetrics" : { + "type" : "object", + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Percentage of calls within the performance threshold for the current day. 0.0 means 0%. 1.0 means 100%" + }, + "previousDays" : { + "type" : "array", + "description" : "Percentage of calls within the performance threshold for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. 0.0 means 0%. 1.0 means 100%", + "items" : { + "type" : "number" + } + } + }, + "description" : "Percentage of calls within the performance thresholds", + "x-conditional" : [ "currentDay", "previousDays" ] + }, + "InvocationMetrics" : { + "type" : "object", + "properties" : { + "unauthenticated" : { + "$ref" : "#/definitions/InvocationMetrics_unauthenticated" + }, + "highPriority" : { + "$ref" : "#/definitions/InvocationMetrics_highPriority" + }, + "lowPriority" : { + "$ref" : "#/definitions/InvocationMetrics_lowPriority" + }, + "unattended" : { + "$ref" : "#/definitions/InvocationMetrics_unattended" + }, + "largePayload" : { + "$ref" : "#/definitions/InvocationMetrics_largePayload" + } + }, + "description" : "Number of API calls in each performance tier over time", + "x-conditional" : [ "unauthenticated", "highPriority", "lowPriority", "unattended", "largePayload" ] + }, + "AverageResponseMetrics" : { + "type" : "object", + "properties" : { + "unauthenticated" : { + "$ref" : "#/definitions/AverageResponseMetrics_unauthenticated" + }, + "highPriority" : { + "$ref" : "#/definitions/AverageResponseMetrics_highPriority" + }, + "lowPriority" : { + "$ref" : "#/definitions/AverageResponseMetrics_lowPriority" + }, + "unattended" : { + "$ref" : "#/definitions/AverageResponseMetrics_unattended" + }, + "largePayload" : { + "$ref" : "#/definitions/AverageResponseMetrics_largePayload" + } + }, + "description" : "Average response time in seconds, at millisecond resolution, within each performance tier", + "x-conditional" : [ "unauthenticated", "highPriority", "lowPriority", "unattended", "largePayload" ] + }, + "SessionCountMetrics" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Session count for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Session count for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "Session counts over time. Note that a session is defined as the provisioning of an Access Token.", + "x-conditional" : [ "currentDay", "previousDays" ] + }, + "AverageTPSMetrics" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Average TPS for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Average TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "Transactions per second over time", + "x-conditional" : [ "currentDay", "previousDays" ] + }, + "PeakTPSMetrics" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Peak TPS for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Peak TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "Maximum record transactions per second over time", + "x-conditional" : [ "currentDay", "previousDays" ] + }, + "ErrorMetrics" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Number of errors for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Number of errors for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "Number of calls resulting in error due to server execution over time", + "x-conditional" : [ "currentDay", "previousDays" ] + }, + "RejectionMetricsV2" : { + "properties" : { + "authenticated" : { + "$ref" : "#/definitions/RejectionMetricsV2_authenticated" + }, + "unauthenticated" : { + "$ref" : "#/definitions/RejectionMetricsV2_unauthenticated" + } + }, + "description" : "Number of calls rejected due to traffic thresholds over time", + "x-conditional" : [ "currentDay", "previousDays" ] + }, + "Links" : { + "type" : "object", + "required" : [ "self" ], + "properties" : { + "self" : { + "type" : "string", + "description" : "Fully qualified link to this API call", + "x-cds-type" : "URIString" + } + } + }, + "Meta" : { + "type" : "object" + }, + "RequestMetaDataUpdate_data" : { + "required" : [ "action" ], + "properties" : { + "action" : { + "type" : "string", + "description" : "The action to take for the meta data. At the moment the only option is REFRESH which requires the data holder to call the ACCC to refresh meta data as soon as practicable", + "default" : "REFRESH", + "enum" : [ "REFRESH" ] + } + } + }, + "ResponseMetricsListV2_data" : { + "required" : [ "requestTime" ], + "properties" : { + "requestTime" : { + "type" : "string", + "description" : "The date and time that the metrics in this payload were requested.", + "x-cds-type" : "DateTimeString" + }, + "availability" : { + "$ref" : "#/definitions/AvailabilityMetrics" + }, + "performance" : { + "$ref" : "#/definitions/PerformanceMetrics" + }, + "invocations" : { + "$ref" : "#/definitions/InvocationMetrics" + }, + "averageResponse" : { + "$ref" : "#/definitions/AverageResponseMetrics" + }, + "sessionCount" : { + "$ref" : "#/definitions/SessionCountMetrics" + }, + "averageTps" : { + "$ref" : "#/definitions/AverageTPSMetrics" + }, + "peakTps" : { + "$ref" : "#/definitions/PeakTPSMetrics" + }, + "errors" : { + "$ref" : "#/definitions/ErrorMetrics" + }, + "rejections" : { + "$ref" : "#/definitions/RejectionMetricsV2" + }, + "customerCount" : { + "type" : "integer", + "description" : "Number of customers with active authorisations at the time of the call" + }, + "recipientCount" : { + "type" : "integer", + "description" : "Number of data recipients with active authorisations at the time of the call" + } + } + }, + "InvocationMetrics_unauthenticated" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "API call counts for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "API call counts for the unauthenticated tier" + }, + "InvocationMetrics_highPriority" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "API call counts for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "API call counts for the high priority tier" + }, + "InvocationMetrics_lowPriority" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "API call counts for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "API call counts for the low priority tier" + }, + "InvocationMetrics_unattended" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "API call counts for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "API call counts for the unattended tier" + }, + "InvocationMetrics_largePayload" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "API call counts for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available", + "items" : { + "type" : "number" + } + } + }, + "description" : "API call counts for the large payload tier" + }, + "AverageResponseMetrics_unauthenticated" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Average response time for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Average response time for the unauthenticated tier" + }, + "AverageResponseMetrics_highPriority" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Average response time for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Average response time for the high priority tier" + }, + "AverageResponseMetrics_lowPriority" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Average response time for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Average response time for the low priority tier" + }, + "AverageResponseMetrics_unattended" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Average response time for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Average response time for the unattended tier" + }, + "AverageResponseMetrics_largePayload" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Average response time for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Average response time for the large payload tier" + }, + "RejectionMetricsV2_authenticated" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Number of calls rejected for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Rejection counts for all authenticated end points" + }, + "RejectionMetricsV2_unauthenticated" : { + "properties" : { + "currentDay" : { + "type" : "number", + "description" : "Number of calls rejected for current day" + }, + "previousDays" : { + "type" : "array", + "description" : "Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.", + "items" : { + "type" : "number" + } + } + }, + "description" : "Rejection counts for all uauthenticated end points" + } + }, + "parameters" : { + "RequestHeader_x-v" : { + "name" : "x-v", + "in" : "header", + "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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)", + "required" : true, + "type" : "string" + }, + "RequestHeader_x-min-v" : { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } + } +} \ No newline at end of file diff --git a/docs/archive/standards-1.8.0/docs/includes/swagger/cds_admin.yaml b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_admin.yaml new file mode 100644 index 00000000..abd355cd --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_admin.yaml @@ -0,0 +1,454 @@ +--- +swagger: "2.0" +info: + description: Data Holder Consumer Data Standards Administration End Points + version: 1.3.0 + title: Consumer Data Standards Administration End Points + contact: + name: Consumer Data Standards Administration End Points + url: https://consumerdatastandards.org.au/ + email: cdr-data61@csiro.au + license: + name: MIT License + url: https://opensource.org/licenses/MIT +host: data.holder.com.au +basePath: /cds-au/v1 +schemes: +- https +consumes: +- application/json +produces: +- application/json +paths: + /admin/register/metadata: + post: + tags: + - Admin + - Register + summary: Metadata Update + description: Indicate that a critical update to the metadata for Accredited Data Recipients has been made and should be obtained + operationId: metadataUpdate + parameters: + - in: body + name: action + required: true + schema: + $ref: '#/definitions/RequestMetaDataUpdate' + - name: x-v + in: header + 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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. + required: false + type: string + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](##response-headers) of the API end point that the data holder has responded with. + x-version: "1" + /admin/metrics: + get: + tags: + - Admin + - Metrics + summary: Get Metrics + description: |- + This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime. + + NOTE: This version must be implemented by **July 31st 2021** + + Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html) + operationId: getMetrics + parameters: + - name: period + in: query + description: The period of metrics to be requested. Values can be CURRENT (meaning metrics for current day), HISTORIC (meaning metrics for previous days or months) or ALL. If absent the default is ALL. + required: false + type: string + default: ALL + enum: + - CURRENT + - HISTORIC + - ALL + - name: x-v + in: header + 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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. + required: false + type: string + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + schema: + $ref: '#/definitions/ResponseMetricsListV2' + x-version: "2" +definitions: + RequestMetaDataUpdate: + type: object + required: + - data + properties: + data: + $ref: '#/definitions/RequestMetaDataUpdate_data' + meta: + $ref: '#/definitions/Meta' + ResponseMetricsListV2: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/ResponseMetricsListV2_data' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + AvailabilityMetrics: + type: object + properties: + currentMonth: + type: number + description: Percentage availability of the CDR platform so far for the current calendar month. 0.0 means 0%. 1.0 means 100%. + previousMonths: + type: array + description: Percentage availability of the CDR platform for previous calendar months. The first element indicates the last month and so on. A maximum of twelve entries is required if available. 0.0 means 0%. 1.0 means 100%. + items: + type: number + description: Percentage availability of the CDR platform over time + x-conditional: + - currentMonth + - previousMonths + PerformanceMetrics: + type: object + properties: + currentDay: + type: number + description: Percentage of calls within the performance threshold for the current day. 0.0 means 0%. 1.0 means 100% + previousDays: + type: array + description: Percentage of calls within the performance threshold for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. 0.0 means 0%. 1.0 means 100% + items: + type: number + description: Percentage of calls within the performance thresholds + x-conditional: + - currentDay + - previousDays + InvocationMetrics: + type: object + properties: + unauthenticated: + $ref: '#/definitions/InvocationMetrics_unauthenticated' + highPriority: + $ref: '#/definitions/InvocationMetrics_highPriority' + lowPriority: + $ref: '#/definitions/InvocationMetrics_lowPriority' + unattended: + $ref: '#/definitions/InvocationMetrics_unattended' + largePayload: + $ref: '#/definitions/InvocationMetrics_largePayload' + description: Number of API calls in each performance tier over time + x-conditional: + - unauthenticated + - highPriority + - lowPriority + - unattended + - largePayload + AverageResponseMetrics: + type: object + properties: + unauthenticated: + $ref: '#/definitions/AverageResponseMetrics_unauthenticated' + highPriority: + $ref: '#/definitions/AverageResponseMetrics_highPriority' + lowPriority: + $ref: '#/definitions/AverageResponseMetrics_lowPriority' + unattended: + $ref: '#/definitions/AverageResponseMetrics_unattended' + largePayload: + $ref: '#/definitions/AverageResponseMetrics_largePayload' + description: Average response time in seconds, at millisecond resolution, within each performance tier + x-conditional: + - unauthenticated + - highPriority + - lowPriority + - unattended + - largePayload + SessionCountMetrics: + properties: + currentDay: + type: number + description: Session count for current day + previousDays: + type: array + description: Session count for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: Session counts over time. Note that a session is defined as the provisioning of an Access Token. + x-conditional: + - currentDay + - previousDays + AverageTPSMetrics: + properties: + currentDay: + type: number + description: Average TPS for current day + previousDays: + type: array + description: Average TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: Transactions per second over time + x-conditional: + - currentDay + - previousDays + PeakTPSMetrics: + properties: + currentDay: + type: number + description: Peak TPS for current day + previousDays: + type: array + description: Peak TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: Maximum record transactions per second over time + x-conditional: + - currentDay + - previousDays + ErrorMetrics: + properties: + currentDay: + type: number + description: Number of errors for current day + previousDays: + type: array + description: Number of errors for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: Number of calls resulting in error due to server execution over time + x-conditional: + - currentDay + - previousDays + RejectionMetricsV2: + properties: + authenticated: + $ref: '#/definitions/RejectionMetricsV2_authenticated' + unauthenticated: + $ref: '#/definitions/RejectionMetricsV2_unauthenticated' + description: Number of calls rejected due to traffic thresholds over time + x-conditional: + - currentDay + - previousDays + Links: + type: object + required: + - self + properties: + self: + type: string + description: Fully qualified link to this API call + x-cds-type: URIString + Meta: + type: object + RequestMetaDataUpdate_data: + required: + - action + properties: + action: + type: string + description: The action to take for the meta data. At the moment the only option is REFRESH which requires the data holder to call the ACCC to refresh meta data as soon as practicable + default: REFRESH + enum: + - REFRESH + ResponseMetricsListV2_data: + required: + - requestTime + properties: + requestTime: + type: string + description: The date and time that the metrics in this payload were requested. + x-cds-type: DateTimeString + availability: + $ref: '#/definitions/AvailabilityMetrics' + performance: + $ref: '#/definitions/PerformanceMetrics' + invocations: + $ref: '#/definitions/InvocationMetrics' + averageResponse: + $ref: '#/definitions/AverageResponseMetrics' + sessionCount: + $ref: '#/definitions/SessionCountMetrics' + averageTps: + $ref: '#/definitions/AverageTPSMetrics' + peakTps: + $ref: '#/definitions/PeakTPSMetrics' + errors: + $ref: '#/definitions/ErrorMetrics' + rejections: + $ref: '#/definitions/RejectionMetricsV2' + customerCount: + type: integer + description: Number of customers with active authorisations at the time of the call + recipientCount: + type: integer + description: Number of data recipients with active authorisations at the time of the call + InvocationMetrics_unauthenticated: + properties: + currentDay: + type: number + description: API call counts for current day + previousDays: + type: array + description: API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: API call counts for the unauthenticated tier + InvocationMetrics_highPriority: + properties: + currentDay: + type: number + description: API call counts for current day + previousDays: + type: array + description: API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: API call counts for the high priority tier + InvocationMetrics_lowPriority: + properties: + currentDay: + type: number + description: API call counts for current day + previousDays: + type: array + description: API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: API call counts for the low priority tier + InvocationMetrics_unattended: + properties: + currentDay: + type: number + description: API call counts for current day + previousDays: + type: array + description: API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: API call counts for the unattended tier + InvocationMetrics_largePayload: + properties: + currentDay: + type: number + description: API call counts for current day + previousDays: + type: array + description: API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available + items: + type: number + description: API call counts for the large payload tier + AverageResponseMetrics_unauthenticated: + properties: + currentDay: + type: number + description: Average response time for current day + previousDays: + type: array + description: Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Average response time for the unauthenticated tier + AverageResponseMetrics_highPriority: + properties: + currentDay: + type: number + description: Average response time for current day + previousDays: + type: array + description: Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Average response time for the high priority tier + AverageResponseMetrics_lowPriority: + properties: + currentDay: + type: number + description: Average response time for current day + previousDays: + type: array + description: Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Average response time for the low priority tier + AverageResponseMetrics_unattended: + properties: + currentDay: + type: number + description: Average response time for current day + previousDays: + type: array + description: Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Average response time for the unattended tier + AverageResponseMetrics_largePayload: + properties: + currentDay: + type: number + description: Average response time for current day + previousDays: + type: array + description: Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Average response time for the large payload tier + RejectionMetricsV2_authenticated: + properties: + currentDay: + type: number + description: Number of calls rejected for current day + previousDays: + type: array + description: Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Rejection counts for all authenticated end points + RejectionMetricsV2_unauthenticated: + properties: + currentDay: + type: number + description: Number of calls rejected for current day + previousDays: + type: array + description: Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. + items: + type: number + description: Rejection counts for all uauthenticated end points +parameters: + RequestHeader_x-v: + name: x-v + in: header + 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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers) + required: true + type: string + RequestHeader_x-min-v: + name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. + required: false + type: string diff --git a/docs/archive/standards-1.8.0/docs/includes/swagger/cds_full.json b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_full.json new file mode 100644 index 00000000..6afd0dda --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_full.json @@ -0,0 +1,4451 @@ +{ + "swagger" : "2.0", + "info" : { + "description" : "API sets created by the Australian Consumer Data Standards to meet the needs of the Consumer Data Right", + "version" : "1.8.0", + "title" : "Consumer Data Standards", + "contact" : { + "name" : "Consumer Data Standards", + "url" : "https://consumerdatastandards.org.au/", + "email" : "cdr-data61@csiro.au" + }, + "license" : { + "name" : "MIT License", + "url" : "https://opensource.org/licenses/MIT" + } + }, + "host" : "data.holder.com.au", + "basePath" : "/cds-au/v1", + "schemes" : [ "https" ], + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "paths" : { + "/banking/accounts" : { + "get" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Accounts", + "description" : "Obtain a list of accounts", + "operationId" : "listAccounts", + "parameters" : [ { + "name" : "product-category", + "in" : "query", + "description" : "Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "required" : false, + "type" : "string", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, { + "name" : "open-status", + "in" : "query", + "description" : "Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "ALL", "CLOSED", "OPEN" ] + }, { + "name" : "is-owned", + "in" : "query", + "description" : "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "required" : false, + "type" : "boolean", + "x-cds-type" : "Boolean" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingAccountList" + } + } + }, + "x-scopes" : [ "bank:accounts.basic:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/balances" : { + "get" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Bulk Balances", + "description" : "Obtain balances for multiple, filtered accounts", + "operationId" : "listBalancesBulk", + "parameters" : [ { + "name" : "product-category", + "in" : "query", + "description" : "Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "required" : false, + "type" : "string", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, { + "name" : "open-status", + "in" : "query", + "description" : "Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "ALL", "CLOSED", "OPEN" ] + }, { + "name" : "is-owned", + "in" : "query", + "description" : "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "required" : false, + "type" : "boolean", + "x-cds-type" : "Boolean" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingAccountsBalanceList" + } + } + }, + "x-scopes" : [ "bank:accounts.basic:read" ], + "x-version" : "1" + }, + "post" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Balances For Specific Accounts", + "description" : "Obtain balances for a specified list of accounts", + "operationId" : "listBalancesSpecificAccounts", + "parameters" : [ { + "in" : "body", + "name" : "accountIds", + "description" : "The list of account IDs to obtain balances for", + "required" : true, + "schema" : { + "$ref" : "#/definitions/RequestAccountIds" + } + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingAccountsBalanceList" + } + }, + "422" : { + "description" : "The request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent context", + "headers" : { + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseErrorList" + } + } + }, + "x-scopes" : [ "bank:accounts.basic:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/{accountId}/balance" : { + "get" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Account Balance", + "description" : "Obtain the balance for a single specified account", + "operationId" : "getBalance", + "parameters" : [ { + "name" : "accountId", + "in" : "path", + "description" : "ID of the specific account requested", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingAccountsBalanceById" + } + } + }, + "x-scopes" : [ "bank:accounts.basic:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/{accountId}" : { + "get" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Account Detail", + "description" : "Obtain detailed information on a single account", + "operationId" : "getAccountDetail", + "parameters" : [ { + "name" : "accountId", + "in" : "path", + "description" : "A tokenised identifier for the account which is unique but not shareable", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingAccountById" + } + } + }, + "x-scopes" : [ "bank:accounts.detail:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/{accountId}/transactions" : { + "get" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Transactions For Account", + "description" : "Obtain transactions for a specific account.\n\nSome general notes that apply to all end points that retrieve transactions:\n\n- Where multiple transactions are returned, transactions should be ordered according to effective date in descending order\n- As the date and time for a transaction can alter depending on status and transaction type two separate date/times are included in the payload. There are still some scenarios where neither of these time stamps is available. For the purpose of filtering and ordering it is expected that the data holder will use the “effective” date/time which will be defined as:\n - Posted date/time if available, then\n - Execution date/time if available, then\n - A reasonable date/time nominated by the data holder using internal data structures\n- For transaction amounts it should be assumed that a negative value indicates a reduction of the available balance on the account while a positive value indicates an increase in the available balance on the account\n- For aggregated transactions (ie. groups of sub transactions reported as a single entry for the account) only the aggregated information, with as much consistent information accross the subsidiary transactions as possible, is required to be shared", + "operationId" : "getTransactions", + "parameters" : [ { + "name" : "accountId", + "in" : "path", + "description" : "ID of the account to get transactions for. Must have previously been returned by one of the account list end points.", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "oldest-time", + "in" : "query", + "description" : "Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type", + "required" : false, + "type" : "string", + "x-cds-type" : "DateTimeString" + }, { + "name" : "newest-time", + "in" : "query", + "description" : "Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type", + "required" : false, + "type" : "string", + "x-cds-type" : "DateTimeString" + }, { + "name" : "min-amount", + "in" : "query", + "description" : "Filter transactions to only transactions with amounts higher or equal to than this amount", + "required" : false, + "type" : "string", + "x-cds-type" : "AmountString" + }, { + "name" : "max-amount", + "in" : "query", + "description" : "Filter transactions to only transactions with amounts less than or equal to than this amount", + "required" : false, + "type" : "string", + "x-cds-type" : "AmountString" + }, { + "name" : "text", + "in" : "query", + "description" : "Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not)", + "required" : false, + "type" : "string" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingTransactionList" + } + } + }, + "x-scopes" : [ "bank:transactions:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/{accountId}/transactions/{transactionId}" : { + "get" : { + "tags" : [ "Banking", "Accounts" ], + "summary" : "Get Transaction Detail", + "description" : "Obtain detailed information on a transaction for a specific account", + "operationId" : "getTransactionDetail", + "parameters" : [ { + "name" : "accountId", + "in" : "path", + "description" : "ID of the account to get transactions for. Must have previously been returned by one of the account list end points", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "transactionId", + "in" : "path", + "description" : "ID of the transaction obtained from a previous call to one of the other transaction end points", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingTransactionById" + } + } + }, + "x-scopes" : [ "bank:transactions:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/{accountId}/direct-debits" : { + "get" : { + "tags" : [ "Banking", "Direct Debits" ], + "summary" : "Get Direct Debits For Account", + "description" : "Obtain direct debit authorisations for a specific account", + "operationId" : "listDirectDebits", + "parameters" : [ { + "name" : "accountId", + "in" : "path", + "description" : "ID of the account to get direct debit authorisations for. Must have previously been returned by one of the account list end points.", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingDirectDebitAuthorisationList" + } + } + }, + "x-scopes" : [ "bank:regular_payments:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/direct-debits" : { + "get" : { + "tags" : [ "Banking", "Direct Debits" ], + "summary" : "Get Bulk Direct Debits", + "description" : "Obtain direct debit authorisations for multiple, filtered accounts", + "operationId" : "listDirectDebitsBulk", + "parameters" : [ { + "name" : "product-category", + "in" : "query", + "description" : "Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "required" : false, + "type" : "string", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, { + "name" : "open-status", + "in" : "query", + "description" : "Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "ALL", "CLOSED", "OPEN" ] + }, { + "name" : "is-owned", + "in" : "query", + "description" : "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "required" : false, + "type" : "boolean", + "x-cds-type" : "Boolean" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingDirectDebitAuthorisationList" + } + } + }, + "x-scopes" : [ "bank:regular_payments:read" ], + "x-version" : "1" + }, + "post" : { + "tags" : [ "Banking", "Direct Debits" ], + "summary" : "Get Direct Debits For Specific Accounts", + "description" : "Obtain direct debit authorisations for a specified list of accounts", + "operationId" : "listDirectDebitsSpecificAccounts", + "parameters" : [ { + "in" : "body", + "name" : "accountIds", + "description" : "Array of specific accountIds to obtain authorisations for", + "required" : true, + "schema" : { + "$ref" : "#/definitions/RequestAccountIds" + } + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingDirectDebitAuthorisationList" + } + }, + "422" : { + "description" : "The request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent context", + "headers" : { + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseErrorList" + } + } + }, + "x-scopes" : [ "bank:regular_payments:read" ], + "x-version" : "1" + } + }, + "/banking/accounts/{accountId}/payments/scheduled" : { + "get" : { + "tags" : [ "Banking", "Scheduled Payments" ], + "summary" : "Get Scheduled Payments for Account", + "description" : "Obtain scheduled, outgoing payments for a specific account", + "operationId" : "listScheduledPayments", + "parameters" : [ { + "name" : "accountId", + "in" : "path", + "description" : "ID of the account to get scheduled payments for. Must have previously been returned by one of the account list end points. The account specified is the source account for the payment", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingScheduledPaymentsList" + } + } + }, + "x-scopes" : [ "bank:regular_payments:read" ], + "x-version" : "1" + } + }, + "/banking/payments/scheduled" : { + "get" : { + "tags" : [ "Banking", "Scheduled Payments" ], + "summary" : "Get Scheduled Payments Bulk", + "description" : "Obtain scheduled payments for multiple, filtered accounts that are the source of funds for the payments", + "operationId" : "listScheduledPaymentsBulk", + "parameters" : [ { + "name" : "product-category", + "in" : "query", + "description" : "Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "required" : false, + "type" : "string", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, { + "name" : "open-status", + "in" : "query", + "description" : "Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "ALL", "CLOSED", "OPEN" ] + }, { + "name" : "is-owned", + "in" : "query", + "description" : "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "required" : false, + "type" : "boolean", + "x-cds-type" : "Boolean" + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingScheduledPaymentsList" + } + } + }, + "x-scopes" : [ "bank:regular_payments:read" ], + "x-version" : "1" + }, + "post" : { + "tags" : [ "Banking", "Scheduled Payments" ], + "summary" : "Get Scheduled Payments For Specific Accounts", + "description" : "Obtain scheduled payments for a specified list of accounts", + "operationId" : "listScheduledPaymentsSpecificAccounts", + "parameters" : [ { + "in" : "body", + "name" : "accountIds", + "description" : "Array of specific accountIds to obtain scheduled payments for. The accounts specified are the source of funds for the payments returned", + "required" : true, + "schema" : { + "$ref" : "#/definitions/RequestAccountIds" + } + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingScheduledPaymentsList" + } + }, + "422" : { + "description" : "The request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent context", + "headers" : { + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseErrorList" + } + } + }, + "x-scopes" : [ "bank:regular_payments:read" ], + "x-version" : "1" + } + }, + "/banking/payees" : { + "get" : { + "tags" : [ "Banking", "Payees" ], + "summary" : "Get Payees", + "description" : "Obtain a list of pre-registered payees", + "operationId" : "listPayees", + "parameters" : [ { + "name" : "type", + "in" : "query", + "description" : "Filter on the payee type field. In addition to normal type field values, ALL can be specified to retrieve all payees. If absent the assumed value is ALL", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "ALL", "BILLER", "DOMESTIC", "INTERNATIONAL" ] + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingPayeeList" + } + } + }, + "x-scopes" : [ "bank:payees:read" ], + "x-version" : "1" + } + }, + "/banking/payees/{payeeId}" : { + "get" : { + "tags" : [ "Banking", "Payees" ], + "summary" : "Get Payee Detail", + "description" : "Obtain detailed information on a single payee.\n\nNote that the payee sub-structure should be selected to represent the payment destination only rather than any known characteristics of the payment recipient", + "operationId" : "getPayeeDetail", + "parameters" : [ { + "name" : "payeeId", + "in" : "path", + "description" : "The ID used to locate the details of a particular payee", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingPayeeById" + } + } + }, + "x-scopes" : [ "bank:payees:read" ], + "x-version" : "1" + } + }, + "/banking/products" : { + "get" : { + "tags" : [ "Banking", "Products" ], + "summary" : "Get Products", + "description" : "Obtain a list of products that are currently openly offered to the market\n\nNote that the results returned by this end point are expected to be ordered in descending order according to ``lastUpdated``.\n\n### Conventions\nIn the product reference payloads there are a number of recurring conventions that are explained here, in one place.\n\n#### Arrays Of Features\n\nIn the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows:\n\n- Each element in an array has the same structure so that clients can reliably interpret the payloads\n- Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees.\n- Each element has a field name [additionalValue](#productfeaturetypedoc). This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the ADDITIONAL_CARDS feature is the number of cards allowed while the contents of this field for the MAX_LIMIT constraint would be the maximum credit limit allowed for the product.\n- An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths.\n- An element in these arrays may contain an additionalInfo and additionalInfoUri field. The additionalInfo field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The additionalInfoUri provides a link to externally hosted information specifically relevant to that feature of the product.\n- Depending on the type of data being represented there may be additional specific fields.\n\n#### URIs To More Information\n\nAs the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels.\n\nThese URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees.\n\n#### Linkage To Accounts\nFrom the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account.\n\nFor this reason, while productCategory is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime.\n\nSimilarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actual has been instantiated and created along with the associated decisions inherent in that process.\n\n#### Dates\nIt is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a lastUpdated field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the updated-since query parameter.\n\nIn addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely.\n\nNOTE: This version must be implemented by **February 2021**\n\nObsolete versions: [v1](includes/obsolete/get-products-v1.html) [v2](includes/obsolete/get-products-v2.html)", + "operationId" : "listProducts", + "parameters" : [ { + "name" : "effective", + "in" : "query", + "description" : "Allows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'", + "required" : false, + "type" : "string", + "default" : "CURRENT", + "enum" : [ "ALL", "CURRENT", "FUTURE" ] + }, { + "name" : "updated-since", + "in" : "query", + "description" : "Only include products that have been updated after the specified date and time. If absent defaults to include all products", + "required" : false, + "type" : "string", + "x-cds-type" : "DateTimeString" + }, { + "name" : "brand", + "in" : "query", + "description" : "Filter results based on a specific brand", + "required" : false, + "type" : "string" + }, { + "name" : "product-category", + "in" : "query", + "description" : "Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "required" : false, + "type" : "string", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingProductList" + } + } + }, + "x-version" : "3" + } + }, + "/banking/products/{productId}" : { + "get" : { + "tags" : [ "Banking", "Products" ], + "summary" : "Get Product Detail", + "description" : "Obtain detailed information on a single product offered openly to the market.\n\nNOTE: This version must be implemented by **February 2021**\n\nObsolete versions: [v1](includes/obsolete/get-product-detail-v1.html) [v2](includes/obsolete/get-product-detail-v2.html)", + "operationId" : "getProductDetail", + "parameters" : [ { + "name" : "productId", + "in" : "path", + "description" : "ID of the specific product requested", + "required" : true, + "type" : "string", + "x-cds-type" : "ASCIIString" + }, { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseBankingProductById" + } + } + }, + "x-version" : "3" + } + }, + "/common/customer" : { + "get" : { + "tags" : [ "Common", "Customer" ], + "summary" : "Get Customer", + "description" : "Obtain basic information on the customer that has authorised the current session", + "operationId" : "getCustomer", + "parameters" : [ { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseCommonCustomer" + } + } + }, + "x-scopes" : [ "common:customer.basic:read" ], + "x-version" : "1" + } + }, + "/common/customer/detail" : { + "get" : { + "tags" : [ "Common", "Customer" ], + "summary" : "Get Customer Detail", + "description" : "Obtain detailed information on the authorised customer within the current session.", + "operationId" : "getCustomerDetail", + "parameters" : [ { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + }, + "x-fapi-interaction-id" : { + "type" : "string", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseCommonCustomerDetail" + } + } + }, + "x-scopes" : [ "common:customer.detail:read" ], + "x-version" : "1" + } + }, + "/discovery/status" : { + "get" : { + "tags" : [ "Common", "Discovery" ], + "summary" : "Get Status", + "description" : "Obtain a health check status for the implementation", + "operationId" : "getStatus", + "parameters" : [ { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseCommonDiscoveryStatus" + } + } + }, + "x-version" : "1" + } + }, + "/discovery/outages" : { + "get" : { + "tags" : [ "Common", "Discovery" ], + "summary" : "Get Outages", + "description" : "Obtain a list of scheduled outages for the implementation", + "operationId" : "getOutages", + "parameters" : [ { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "Success", + "headers" : { + "x-v" : { + "type" : "string", + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." + } + }, + "schema" : { + "$ref" : "#/definitions/ResponseDiscoveryOutagesList" + } + } + }, + "x-version" : "1" + } + } + }, + "definitions" : { + "RequestAccountIds" : { + "type" : "object", + "required" : [ "data" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/RequestAccountIds_data" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "ResponseBankingProductList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingProductList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "BankingProductV3" : { + "type" : "object", + "required" : [ "brand", "description", "isTailored", "lastUpdated", "name", "productCategory", "productId" ], + "properties" : { + "productId" : { + "type" : "string", + "description" : "A data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.", + "x-cds-type" : "ASCIIString" + }, + "effectiveFrom" : { + "type" : "string", + "description" : "The date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate", + "x-cds-type" : "DateTimeString" + }, + "effectiveTo" : { + "type" : "string", + "description" : "The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products", + "x-cds-type" : "DateTimeString" + }, + "lastUpdated" : { + "type" : "string", + "description" : "The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)", + "x-cds-type" : "DateTimeString" + }, + "productCategory" : { + "$ref" : "#/definitions/BankingProductCategory" + }, + "name" : { + "type" : "string", + "description" : "The display name of the product" + }, + "description" : { + "type" : "string", + "description" : "A description of the product" + }, + "brand" : { + "type" : "string", + "description" : "A label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required" + }, + "brandName" : { + "type" : "string", + "description" : "An optional display name of the brand" + }, + "applicationUri" : { + "type" : "string", + "description" : "A link to an application web page where this product can be applied for.", + "x-cds-type" : "URIString" + }, + "isTailored" : { + "type" : "boolean", + "description" : "Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable", + "x-cds-type" : "Boolean" + }, + "additionalInformation" : { + "$ref" : "#/definitions/BankingProductV3_additionalInformation" + }, + "cardArt" : { + "type" : "array", + "description" : "An array of card art images", + "items" : { + "$ref" : "#/definitions/BankingProductV3_cardArt" + } + } + } + }, + "ResponseBankingProductById" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/BankingProductDetailV3" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "BankingProductDetailV3" : { + "allOf" : [ { + "$ref" : "#/definitions/BankingProductV3" + }, { + "type" : "object", + "properties" : { + "bundles" : { + "type" : "array", + "description" : "An array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also", + "items" : { + "$ref" : "#/definitions/BankingProductBundle" + } + }, + "features" : { + "type" : "array", + "description" : "Array of features available for the product", + "items" : { + "$ref" : "#/definitions/BankingProductFeature" + } + }, + "constraints" : { + "type" : "array", + "description" : "Constraints on the application for or operation of the product such as minimum balances or limit thresholds", + "items" : { + "$ref" : "#/definitions/BankingProductConstraint" + } + }, + "eligibility" : { + "type" : "array", + "description" : "Eligibility criteria for the product", + "items" : { + "$ref" : "#/definitions/BankingProductEligibility" + } + }, + "fees" : { + "type" : "array", + "description" : "Fees applicable for the product", + "items" : { + "$ref" : "#/definitions/BankingProductFee" + } + }, + "depositRates" : { + "type" : "array", + "description" : "Interest rates available for deposits", + "items" : { + "$ref" : "#/definitions/BankingProductDepositRate" + } + }, + "lendingRates" : { + "type" : "array", + "description" : "Interest rates charged against lending balances", + "items" : { + "$ref" : "#/definitions/BankingProductLendingRateV2" + } + } + } + } ] + }, + "BankingProductBundle" : { + "type" : "object", + "required" : [ "description", "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "Name of the bundle" + }, + "description" : { + "type" : "string", + "description" : "Description of the bundle" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the bundle" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on the bundle criteria and benefits", + "x-cds-type" : "URIString" + }, + "productIds" : { + "type" : "array", + "description" : "Array of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points", + "items" : { + "type" : "string", + "x-cds-type" : "ASCIIString" + } + } + } + }, + "BankingProductFeature" : { + "type" : "object", + "required" : [ "featureType" ], + "properties" : { + "featureType" : { + "type" : "string", + "description" : "The type of feature described", + "enum" : [ "ADDITIONAL_CARDS", "BALANCE_TRANSFERS", "BILL_PAYMENT", "BONUS_REWARDS", "CARD_ACCESS", "COMPLEMENTARY_PRODUCT_DISCOUNTS", "DIGITAL_BANKING", "DIGITAL_WALLET", "DONATE_INTEREST", "FREE_TXNS", "FREE_TXNS_ALLOWANCE", "INSURANCE", "INTEREST_FREE", "INTEREST_FREE_TRANSFERS", "LOYALTY_PROGRAM", "NOTIFICATIONS", "NPP_ENABLED", "NPP_PAYID", "OFFSET", "OTHER", "OVERDRAFT", "REDRAW", "UNLIMITED_TXNS" ] + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to OTHER" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this feature", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "additionalValue", "additionalInfo" ] + }, + "BankingProductConstraint" : { + "type" : "object", + "required" : [ "constraintType" ], + "properties" : { + "constraintType" : { + "type" : "string", + "description" : "The type of constraint described. See the next section for an overview of valid values and their meaning", + "enum" : [ "MAX_BALANCE", "MAX_LIMIT", "MIN_BALANCE", "MIN_LIMIT", "OPENING_BALANCE" ] + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [constraintType](#tocSproductconstrainttypedoc) specified. Whether mandatory or not is dependent on the value of [constraintType](#tocSproductconstrainttypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information the constraint" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on the constraint", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "additionalValue" ] + }, + "BankingProductEligibility" : { + "type" : "object", + "required" : [ "eligibilityType" ], + "properties" : { + "eligibilityType" : { + "type" : "string", + "description" : "The type of eligibility criteria described. See the next section for an overview of valid values and their meaning", + "enum" : [ "BUSINESS", "EMPLOYMENT_STATUS", "MAX_AGE", "MIN_AGE", "MIN_INCOME", "MIN_TURNOVER", "NATURAL_PERSON", "OTHER", "PENSION_RECIPIENT", "RESIDENCY_STATUS", "STAFF", "STUDENT" ] + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [eligibilityType](#tocSproducteligibilitytypedoc) specified. Whether mandatory or not is dependent on the value of [eligibilityType](#tocSproducteligibilitytypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the [eligibility](#tocSproducteligibilitytypedoc) criteria. Mandatory if the field is set to OTHER" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this eligibility criteria", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "additionalValue", "additionalInfo" ] + }, + "BankingProductFee" : { + "type" : "object", + "required" : [ "feeType", "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "Name of the fee" + }, + "feeType" : { + "type" : "string", + "description" : "The type of fee", + "enum" : [ "DEPOSIT", "EVENT", "EXIT", "PAYMENT", "PERIODIC", "PURCHASE", "TRANSACTION", "UPFRONT", "VARIABLE", "WITHDRAWAL" ] + }, + "amount" : { + "type" : "string", + "description" : "The amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* \"VARIABLE\" is supplied", + "x-cds-type" : "AmountString" + }, + "balanceRate" : { + "type" : "string", + "description" : "A fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* \"VARIABLE\" is supplied.", + "x-cds-type" : "RateString" + }, + "transactionRate" : { + "type" : "string", + "description" : "A fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* \"VARIABLE\" is supplied", + "x-cds-type" : "RateString" + }, + "accruedRate" : { + "type" : "string", + "description" : "A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* \"VARIABLE\" is supplied", + "x-cds-type" : "RateString" + }, + "accrualFrequency" : { + "type" : "string", + "description" : "The indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + }, + "currency" : { + "type" : "string", + "description" : "The currency the fee will be charged in. Assumes AUD if absent", + "x-cds-type" : "CurrencyString" + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the fee" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this fee", + "x-cds-type" : "URIString" + }, + "discounts" : { + "type" : "array", + "description" : "An optional list of discounts to this fee that may be available", + "items" : { + "$ref" : "#/definitions/BankingProductDiscount" + } + } + }, + "x-conditional" : [ "additionalValue", "amount", "balanceRate", "transactionRate", "accruedRate" ] + }, + "BankingProductDiscount" : { + "type" : "object", + "required" : [ "description", "discountType" ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the discount" + }, + "discountType" : { + "type" : "string", + "description" : "The type of discount. See the next section for an overview of valid values and their meaning", + "enum" : [ "BALANCE", "DEPOSITS", "ELIGIBILITY_ONLY", "FEE_CAP", "PAYMENTS" ] + }, + "amount" : { + "type" : "string", + "description" : "Dollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory.", + "x-cds-type" : "AmountString" + }, + "balanceRate" : { + "type" : "string", + "description" : "A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee", + "x-cds-type" : "RateString" + }, + "transactionRate" : { + "type" : "string", + "description" : "A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory", + "x-cds-type" : "RateString" + }, + "accruedRate" : { + "type" : "string", + "description" : "A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee", + "x-cds-type" : "RateString" + }, + "feeRate" : { + "type" : "string", + "description" : "A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee", + "x-cds-type" : "RateString" + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the discount" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this discount", + "x-cds-type" : "URIString" + }, + "eligibility" : { + "type" : "array", + "description" : "Eligibility constraints that apply to this discount. Mandatory if ``discountType`` is ``ELIGIBILITY_ONLY``.", + "items" : { + "$ref" : "#/definitions/BankingProductDiscountEligibility" + } + } + }, + "x-conditional" : [ "accruedRate", "additionalValue", "amount", "balanceRate", "eligibility", "feeRate", "transactionRate" ] + }, + "BankingProductDiscountEligibility" : { + "type" : "object", + "required" : [ "discountEligibilityType" ], + "properties" : { + "discountEligibilityType" : { + "type" : "string", + "description" : "The type of the specific eligibility constraint for a discount", + "enum" : [ "BUSINESS", "EMPLOYMENT_STATUS", "INTRODUCTORY", "MAX_AGE", "MIN_AGE", "MIN_INCOME", "MIN_TURNOVER", "NATURAL_PERSON", "OTHER", "PENSION_RECIPIENT", "RESIDENCY_STATUS", "STAFF", "STUDENT" ] + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this eligibility constraint", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "additionalInfo", "additionalValue" ] + }, + "BankingProductDepositRate" : { + "type" : "object", + "required" : [ "depositRateType", "rate" ], + "properties" : { + "depositRateType" : { + "type" : "string", + "description" : "The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning", + "enum" : [ "BONUS", "BUNDLE_BONUS", "FIXED", "FLOATING", "INTRODUCTORY", "MARKET_LINKED", "VARIABLE" ] + }, + "rate" : { + "type" : "string", + "description" : "The rate to be applied", + "x-cds-type" : "RateString" + }, + "calculationFrequency" : { + "type" : "string", + "description" : "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + }, + "applicationFrequency" : { + "type" : "string", + "description" : "The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + }, + "tiers" : { + "type" : "array", + "description" : "Rate tiers applicable for this rate", + "items" : { + "$ref" : "#/definitions/BankingProductRateTierV3" + } + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the rate" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this rate", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "additionalValue" ] + }, + "BankingProductLendingRateV2" : { + "type" : "object", + "required" : [ "lendingRateType", "rate" ], + "properties" : { + "lendingRateType" : { + "type" : "string", + "description" : "The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning", + "enum" : [ "BUNDLE_DISCOUNT_FIXED", "BUNDLE_DISCOUNT_VARIABLE", "CASH_ADVANCE", "DISCOUNT", "FIXED", "FLOATING", "INTRODUCTORY", "MARKET_LINKED", "PENALTY", "PURCHASE", "VARIABLE" ] + }, + "rate" : { + "type" : "string", + "description" : "The rate to be applied", + "x-cds-type" : "RateString" + }, + "comparisonRate" : { + "type" : "string", + "description" : "A comparison rate equivalent for this rate", + "x-cds-type" : "RateString" + }, + "calculationFrequency" : { + "type" : "string", + "description" : "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + }, + "applicationFrequency" : { + "type" : "string", + "description" : "The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + }, + "interestPaymentDue" : { + "type" : "string", + "description" : "When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered", + "enum" : [ "IN_ADVANCE", "IN_ARREARS" ] + }, + "repaymentType" : { + "type" : "string", + "description" : "Options in place for repayments. If absent, the lending rate is applicable to all repayment types", + "enum" : [ "INTEREST_ONLY", "PRINCIPAL_AND_INTEREST" ] + }, + "loanPurpose" : { + "type" : "string", + "description" : "The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes", + "enum" : [ "INVESTMENT", "OWNER_OCCUPIED" ] + }, + "tiers" : { + "type" : "array", + "description" : "Rate tiers applicable for this rate", + "items" : { + "$ref" : "#/definitions/BankingProductRateTierV3" + } + }, + "additionalValue" : { + "type" : "string", + "description" : "Generic field containing additional information relevant to the [lendingRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [lendingRateType](#tocSproductlendingratetypedoc)" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the rate." + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this rate", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "additionalValue" ] + }, + "BankingProductRateTierV3" : { + "type" : "object", + "required" : [ "minimumValue", "name", "unitOfMeasure" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "A display name for the tier" + }, + "unitOfMeasure" : { + "type" : "string", + "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)", + "enum" : [ "DAY", "DOLLAR", "MONTH", "PERCENT" ] + }, + "minimumValue" : { + "type" : "number", + "description" : "The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value", + "x-cds-type" : "Number" + }, + "maximumValue" : { + "type" : "number", + "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.", + "x-cds-type" : "Number" + }, + "rateApplicationMethod" : { + "type" : "string", + "description" : "The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')", + "enum" : [ "PER_TIER", "WHOLE_BALANCE" ] + }, + "applicabilityConditions" : { + "$ref" : "#/definitions/BankingProductRateCondition" + }, + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the rate tier." + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this rate tier", + "x-cds-type" : "URIString" + } + }, + "description" : "Defines the criteria and conditions for which a rate applies" + }, + "BankingProductRateCondition" : { + "type" : "object", + "properties" : { + "additionalInfo" : { + "type" : "string", + "description" : "Display text providing more information on the condition" + }, + "additionalInfoUri" : { + "type" : "string", + "description" : "Link to a web page with more information on this condition", + "x-cds-type" : "URIString" + } + }, + "description" : "Defines a condition for the applicability of a tiered rate" + }, + "ResponseBankingAccountList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingAccountList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "BankingAccount" : { + "type" : "object", + "required" : [ "accountId", "displayName", "maskedNumber", "productCategory", "productName" ], + "properties" : { + "accountId" : { + "type" : "string", + "description" : "A unique ID of the account adhering to the standards for ID permanence", + "x-cds-type" : "ASCIIString" + }, + "creationDate" : { + "type" : "string", + "description" : "Date that the account was created (if known)", + "x-cds-type" : "DateString" + }, + "displayName" : { + "type" : "string", + "description" : "The display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the MaskedAccountString common type." + }, + "nickname" : { + "type" : "string", + "description" : "A customer supplied nick name for the account" + }, + "openStatus" : { + "type" : "string", + "description" : "Open or closed status for the account. If not present then OPEN is assumed", + "default" : "OPEN", + "enum" : [ "CLOSED", "OPEN" ] + }, + "isOwned" : { + "type" : "boolean", + "description" : "Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then 'true' is assumed", + "default" : true, + "x-cds-type" : "Boolean" + }, + "maskedNumber" : { + "type" : "string", + "description" : "A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number", + "x-cds-type" : "MaskedAccountString" + }, + "productCategory" : { + "$ref" : "#/definitions/BankingProductCategory" + }, + "productName" : { + "type" : "string", + "description" : "The unique identifier of the account as defined by the data holder (akin to model number for the account)" + } + } + }, + "ResponseBankingAccountById" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/BankingAccountDetail" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "BankingAccountDetail" : { + "allOf" : [ { + "$ref" : "#/definitions/BankingAccount" + }, { + "type" : "object", + "properties" : { + "bsb" : { + "type" : "string", + "description" : "The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces" + }, + "accountNumber" : { + "type" : "string", + "description" : "The unmasked account number for the account. Should not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces" + }, + "bundleName" : { + "type" : "string", + "description" : "Optional field to indicate if this account is part of a bundle that is providing additional benefit for to the customer" + }, + "specificAccountUType" : { + "type" : "string", + "description" : "The type of structure to present account specific fields.", + "enum" : [ "creditCard", "loan", "termDeposit" ] + }, + "termDeposit" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/BankingTermDepositAccount" + } + }, + "creditCard" : { + "$ref" : "#/definitions/BankingCreditCardAccount" + }, + "loan" : { + "$ref" : "#/definitions/BankingLoanAccount" + }, + "depositRate" : { + "type" : "string", + "description" : "current rate to calculate interest earned being applied to deposit balances as it stands at the time of the API call", + "x-cds-type" : "RateString" + }, + "lendingRate" : { + "type" : "string", + "description" : "The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call", + "x-cds-type" : "RateString" + }, + "depositRates" : { + "type" : "array", + "description" : "Fully described deposit rates for this account based on the equivalent structure in Product Reference", + "items" : { + "$ref" : "#/definitions/BankingProductDepositRate" + } + }, + "lendingRates" : { + "type" : "array", + "description" : "Fully described deposit rates for this account based on the equivalent structure in Product Reference", + "items" : { + "$ref" : "#/definitions/BankingProductLendingRateV2" + } + }, + "features" : { + "type" : "array", + "description" : "Array of features of the account based on the equivalent structure in Product Reference with the following additional field", + "items" : { + "type" : "object", + "allOf" : [ { + "$ref" : "#/definitions/BankingProductFeature" + }, { + "type" : "object", + "properties" : { + "isActivated" : { + "type" : "boolean", + "description" : "True if the feature is already activated and false if the feature is available for activation. Defaults to true if absent. (note this is an additional field appended to the feature object defined in the Product Reference payload)", + "default" : true, + "x-cds-type" : "Boolean" + } + } + } ] + } + }, + "fees" : { + "type" : "array", + "description" : "Fees and charges applicable to the account based on the equivalent structure in Product Reference", + "items" : { + "$ref" : "#/definitions/BankingProductFee" + } + }, + "addresses" : { + "type" : "array", + "description" : "The addresses for the account to be used for correspondence", + "items" : { + "$ref" : "#/definitions/CommonPhysicalAddress" + } + } + }, + "x-conditional" : [ "termDeposit", "creditCard", "loan" ] + } ] + }, + "BankingTermDepositAccount" : { + "type" : "object", + "required" : [ "lodgementDate", "maturityDate", "maturityInstructions" ], + "properties" : { + "lodgementDate" : { + "type" : "string", + "description" : "The lodgement date of the original deposit", + "x-cds-type" : "DateString" + }, + "maturityDate" : { + "type" : "string", + "description" : "Maturity date for the term deposit", + "x-cds-type" : "DateString" + }, + "maturityAmount" : { + "type" : "string", + "description" : "Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated", + "x-cds-type" : "AmountString" + }, + "maturityCurrency" : { + "type" : "string", + "description" : "If absent assumes AUD", + "x-cds-type" : "CurrencyString" + }, + "maturityInstructions" : { + "type" : "string", + "description" : "Current instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g. roll-over to the same term and frequency of interest payments", + "enum" : [ "HOLD_ON_MATURITY", "PAID_OUT_AT_MATURITY", "ROLLED_OVER" ] + } + } + }, + "BankingCreditCardAccount" : { + "type" : "object", + "required" : [ "minPaymentAmount", "paymentDueAmount", "paymentDueDate" ], + "properties" : { + "minPaymentAmount" : { + "type" : "string", + "description" : "The minimum payment amount due for the next card payment", + "x-cds-type" : "AmountString" + }, + "paymentDueAmount" : { + "type" : "string", + "description" : "The amount due for the next card payment", + "x-cds-type" : "AmountString" + }, + "paymentCurrency" : { + "type" : "string", + "description" : "If absent assumes AUD", + "x-cds-type" : "CurrencyString" + }, + "paymentDueDate" : { + "type" : "string", + "description" : "Date that the next payment for the card is due", + "x-cds-type" : "DateString" + } + } + }, + "BankingLoanAccount" : { + "type" : "object", + "required" : [ "loanEndDate", "nextInstalmentDate", "repaymentFrequency" ], + "properties" : { + "originalStartDate" : { + "type" : "string", + "description" : "Optional original start date for the loan", + "x-cds-type" : "DateString" + }, + "originalLoanAmount" : { + "type" : "string", + "description" : "Optional original loan value", + "x-cds-type" : "AmountString" + }, + "originalLoanCurrency" : { + "type" : "string", + "description" : "If absent assumes AUD", + "x-cds-type" : "CurrencyString" + }, + "loanEndDate" : { + "type" : "string", + "description" : "Date that the loan is due to be repaid in full", + "x-cds-type" : "DateString" + }, + "nextInstalmentDate" : { + "type" : "string", + "description" : "Next date that an instalment is required", + "x-cds-type" : "DateString" + }, + "minInstalmentAmount" : { + "type" : "string", + "description" : "Minimum amount of next instalment", + "x-cds-type" : "AmountString" + }, + "minInstalmentCurrency" : { + "type" : "string", + "description" : "If absent assumes AUD", + "x-cds-type" : "CurrencyString" + }, + "maxRedraw" : { + "type" : "string", + "description" : "Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account", + "x-cds-type" : "AmountString" + }, + "maxRedrawCurrency" : { + "type" : "string", + "description" : "If absent assumes AUD", + "x-cds-type" : "CurrencyString" + }, + "minRedraw" : { + "type" : "string", + "description" : "Minimum redraw amount", + "x-cds-type" : "AmountString" + }, + "minRedrawCurrency" : { + "type" : "string", + "description" : "If absent assumes AUD", + "x-cds-type" : "CurrencyString" + }, + "offsetAccountEnabled" : { + "type" : "boolean", + "description" : "Set to true if one or more offset accounts are configured for this loan account", + "x-cds-type" : "Boolean" + }, + "offsetAccountIds" : { + "type" : "array", + "description" : "The accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that offsetAccountEnabled is set to true but the offsetAccountIds field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation", + "items" : { + "type" : "string", + "x-cds-type" : "ASCIIString" + } + }, + "repaymentType" : { + "type" : "string", + "description" : "Options in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST", + "default" : "PRINCIPAL_AND_INTEREST", + "enum" : [ "INTEREST_ONLY", "PRINCIPAL_AND_INTEREST" ] + }, + "repaymentFrequency" : { + "type" : "string", + "description" : "The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + } + } + }, + "ResponseBankingTransactionList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingTransactionList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "BankingTransaction" : { + "type" : "object", + "required" : [ "accountId", "amount", "description", "isDetailAvailable", "reference", "status", "type" ], + "properties" : { + "accountId" : { + "type" : "string", + "description" : "ID of the account for which transactions are provided", + "x-cds-type" : "ASCIIString" + }, + "transactionId" : { + "type" : "string", + "description" : "A unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type", + "x-cds-type" : "ASCIIString" + }, + "isDetailAvailable" : { + "type" : "boolean", + "description" : "True if extended information is available using the transaction detail end point. False if extended data is not available", + "x-cds-type" : "Boolean" + }, + "type" : { + "type" : "string", + "description" : "The type of the transaction", + "enum" : [ "DIRECT_DEBIT", "FEE", "INTEREST_CHARGED", "INTEREST_PAID", "OTHER", "PAYMENT", "TRANSFER_INCOMING", "TRANSFER_OUTGOING" ] + }, + "status" : { + "type" : "string", + "description" : "Status of the transaction whether pending or posted. Note that there is currently no provision in the standards to guarantee the ability to correlate a pending transaction with an associated posted transaction", + "enum" : [ "PENDING", "POSTED" ] + }, + "description" : { + "type" : "string", + "description" : "The transaction description as applied by the financial institution" + }, + "postingDateTime" : { + "type" : "string", + "description" : "The time the transaction was posted. This field is Mandatory if the transaction has status POSTED. This is the time that appears on a standard statement", + "x-cds-type" : "DateTimeString" + }, + "valueDateTime" : { + "type" : "string", + "description" : "Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry", + "x-cds-type" : "DateTimeString" + }, + "executionDateTime" : { + "type" : "string", + "description" : "The time the transaction was executed by the originating customer, if available", + "x-cds-type" : "DateTimeString" + }, + "amount" : { + "type" : "string", + "description" : "The value of the transaction. Negative values mean money was outgoing from the account", + "x-cds-type" : "AmountString" + }, + "currency" : { + "type" : "string", + "description" : "The currency for the transaction amount. AUD assumed if not present", + "x-cds-type" : "CurrencyString" + }, + "reference" : { + "type" : "string", + "description" : "The reference for the transaction provided by the originating institution. Empty string if no data provided" + }, + "merchantName" : { + "type" : "string", + "description" : "Name of the merchant for an outgoing payment to a merchant" + }, + "merchantCategoryCode" : { + "type" : "string", + "description" : "The merchant category code (or MCC) for an outgoing payment to a merchant" + }, + "billerCode" : { + "type" : "string", + "description" : "BPAY Biller Code for the transaction (if available)" + }, + "billerName" : { + "type" : "string", + "description" : "Name of the BPAY biller for the transaction (if available)" + }, + "crn" : { + "type" : "string", + "description" : "BPAY CRN for the transaction (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type." + }, + "apcaNumber" : { + "type" : "string", + "description" : "6 Digit APCA number for the initiating institution. The field is fixed-width and padded with leading zeros if applicable." + } + }, + "x-conditional" : [ "transactionId", "postingDateTime", "crn" ] + }, + "ResponseBankingTransactionById" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/BankingTransactionDetail" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "BankingTransactionDetail" : { + "allOf" : [ { + "$ref" : "#/definitions/BankingTransaction" + }, { + "type" : "object", + "required" : [ "extendedData" ], + "properties" : { + "extendedData" : { + "$ref" : "#/definitions/BankingTransactionDetail_extendedData" + } + } + } ] + }, + "ResponseBankingAccountsBalanceList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingAccountsBalanceList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "ResponseBankingAccountsBalanceById" : { + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/BankingBalance" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "BankingBalance" : { + "type" : "object", + "required" : [ "accountId", "availableBalance", "currentBalance" ], + "properties" : { + "accountId" : { + "type" : "string", + "description" : "A unique ID of the account adhering to the standards for ID permanence", + "x-cds-type" : "ASCIIString" + }, + "currentBalance" : { + "type" : "string", + "description" : "The balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing", + "x-cds-type" : "AmountString" + }, + "availableBalance" : { + "type" : "string", + "description" : "Balance representing the amount of funds available for transfer. Assumed to be zero or positive", + "x-cds-type" : "AmountString" + }, + "creditLimit" : { + "type" : "string", + "description" : "Object representing the maximum amount of credit that is available for this account. Assumed to be zero if absent", + "x-cds-type" : "AmountString" + }, + "amortisedLimit" : { + "type" : "string", + "description" : "Object representing the available limit amortised according to payment schedule. Assumed to be zero if absent", + "x-cds-type" : "AmountString" + }, + "currency" : { + "type" : "string", + "description" : "The currency for the balance amounts. If absent assumed to be AUD", + "x-cds-type" : "CurrencyString" + }, + "purses" : { + "type" : "array", + "description" : "Optional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards", + "items" : { + "$ref" : "#/definitions/BankingBalancePurse" + } + } + } + }, + "BankingBalancePurse" : { + "type" : "object", + "required" : [ "amount" ], + "properties" : { + "amount" : { + "type" : "string", + "description" : "The balance available for this additional currency purse", + "x-cds-type" : "AmountString" + }, + "currency" : { + "type" : "string", + "description" : "The currency for the purse", + "x-cds-type" : "CurrencyString" + } + } + }, + "ResponseBankingPayeeList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingPayeeList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "ResponseBankingPayeeById" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/BankingPayeeDetail" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "BankingPayee" : { + "type" : "object", + "required" : [ "nickname", "payeeId", "type" ], + "properties" : { + "payeeId" : { + "type" : "string", + "description" : "ID of the payee adhering to the rules of ID permanence", + "x-cds-type" : "ASCIIString" + }, + "nickname" : { + "type" : "string", + "description" : "The short display name of the payee as provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank for the payee consistent with existing digital banking channels" + }, + "description" : { + "type" : "string", + "description" : "A description of the payee provided by the customer" + }, + "type" : { + "type" : "string", + "description" : "The type of payee. DOMESTIC means a registered payee for domestic payments including NPP. INTERNATIONAL means a registered payee for international payments. BILLER means a registered payee for BPAY", + "enum" : [ "BILLER", "DOMESTIC", "INTERNATIONAL" ] + }, + "creationDate" : { + "type" : "string", + "description" : "The date the payee was created by the customer", + "x-cds-type" : "DateString" + } + } + }, + "BankingPayeeDetail" : { + "allOf" : [ { + "$ref" : "#/definitions/BankingPayee" + }, { + "type" : "object", + "required" : [ "payeeUType" ], + "properties" : { + "payeeUType" : { + "type" : "string", + "description" : "Type of object included that describes the payee in detail", + "enum" : [ "biller", "domestic", "international" ] + }, + "domestic" : { + "$ref" : "#/definitions/BankingDomesticPayee" + }, + "biller" : { + "$ref" : "#/definitions/BankingBillerPayee" + }, + "international" : { + "$ref" : "#/definitions/BankingInternationalPayee" + } + }, + "x-conditional" : [ "domestic", "biller", "international" ] + } ] + }, + "BankingDomesticPayee" : { + "type" : "object", + "required" : [ "payeeAccountUType" ], + "properties" : { + "payeeAccountUType" : { + "type" : "string", + "description" : "Type of account object included. Valid values are: **account** A standard Australian account defined by BSB/Account Number. **card** A credit or charge card to pay to (note that PANs are masked). **payId** A PayID recognised by NPP", + "enum" : [ "account", "card", "payId" ] + }, + "account" : { + "$ref" : "#/definitions/BankingDomesticPayeeAccount" + }, + "card" : { + "$ref" : "#/definitions/BankingDomesticPayeeCard" + }, + "payId" : { + "$ref" : "#/definitions/BankingDomesticPayeePayId" + } + }, + "x-conditional" : [ "account", "card", "payId" ] + }, + "BankingDomesticPayeeAccount" : { + "type" : "object", + "required" : [ "accountNumber", "bsb" ], + "properties" : { + "accountName" : { + "type" : "string", + "description" : "Name of the account to pay to" + }, + "bsb" : { + "type" : "string", + "description" : "BSB of the account to pay to" + }, + "accountNumber" : { + "type" : "string", + "description" : "Number of the account to pay to" + } + } + }, + "BankingDomesticPayeeCard" : { + "type" : "object", + "required" : [ "cardNumber" ], + "properties" : { + "cardNumber" : { + "type" : "string", + "description" : "Name of the account to pay to", + "x-cds-type" : "MaskedPANString" + } + } + }, + "BankingDomesticPayeePayId" : { + "type" : "object", + "required" : [ "identifier", "type" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "The name assigned to the PayID by the owner of the PayID" + }, + "identifier" : { + "type" : "string", + "description" : "The identifier of the PayID (dependent on type)" + }, + "type" : { + "type" : "string", + "description" : "The type of the PayID", + "enum" : [ "ABN", "EMAIL", "ORG_IDENTIFIER", "TELEPHONE" ] + } + } + }, + "BankingBillerPayee" : { + "type" : "object", + "required" : [ "billerCode", "billerName" ], + "properties" : { + "billerCode" : { + "type" : "string", + "description" : "BPAY Biller Code of the Biller" + }, + "crn" : { + "type" : "string", + "description" : "BPAY CRN of the Biller (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type." + }, + "billerName" : { + "type" : "string", + "description" : "Name of the Biller" + } + }, + "x-conditional" : [ "crn" ] + }, + "BankingInternationalPayee" : { + "type" : "object", + "required" : [ "bankDetails", "beneficiaryDetails" ], + "properties" : { + "beneficiaryDetails" : { + "$ref" : "#/definitions/BankingInternationalPayee_beneficiaryDetails" + }, + "bankDetails" : { + "$ref" : "#/definitions/BankingInternationalPayee_bankDetails" + } + } + }, + "ResponseBankingDirectDebitAuthorisationList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingDirectDebitAuthorisationList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "BankingDirectDebit" : { + "type" : "object", + "required" : [ "accountId", "authorisedEntity" ], + "properties" : { + "accountId" : { + "type" : "string", + "description" : "A unique ID of the account adhering to the standards for ID permanence.", + "x-cds-type" : "ASCIIString" + }, + "authorisedEntity" : { + "$ref" : "#/definitions/BankingAuthorisedEntity" + }, + "lastDebitDateTime" : { + "type" : "string", + "description" : "The date and time of the last debit executed under this authorisation", + "x-cds-type" : "DateTimeString" + }, + "lastDebitAmount" : { + "type" : "string", + "description" : "The amount of the last debit executed under this authorisation", + "x-cds-type" : "AmountString" + } + } + }, + "BankingAuthorisedEntity" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the authorised entity derived from previously executed direct debits" + }, + "financialInstitution" : { + "type" : "string", + "description" : "Name of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme" + }, + "abn" : { + "type" : "string", + "description" : "Australian Business Number for the authorised entity" + }, + "acn" : { + "type" : "string", + "description" : "Australian Company Number for the authorised entity" + }, + "arbn" : { + "type" : "string", + "description" : "Australian Registered Body Number for the authorised entity" + } + } + }, + "ResponseBankingScheduledPaymentsList" : { + "type" : "object", + "required" : [ "data", "links", "meta" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseBankingScheduledPaymentsList_data" + }, + "links" : { + "$ref" : "#/definitions/LinksPaginated" + }, + "meta" : { + "$ref" : "#/definitions/MetaPaginated" + } + } + }, + "BankingScheduledPayment" : { + "type" : "object", + "required" : [ "from", "payerReference", "paymentSet", "recurrence", "scheduledPaymentId", "status" ], + "properties" : { + "scheduledPaymentId" : { + "type" : "string", + "description" : "A unique ID of the scheduled payment adhering to the standards for ID permanence", + "x-cds-type" : "ASCIIString" + }, + "nickname" : { + "type" : "string", + "description" : "The short display name of the scheduled payment as provided by the customer if provided. Where a customer has not provided a nickname, a display name derived by the bank for the scheduled payment should be provided that is consistent with existing digital banking channels" + }, + "payerReference" : { + "type" : "string", + "description" : "The reference for the transaction that will be used by the originating institution for the purposes of constructing a statement narrative on the payer’s account. Empty string if no data provided" + }, + "payeeReference" : { + "type" : "string", + "description" : "The reference for the transaction, if applicable, that will be provided by the originating institution for all payments in the payment set. Empty string if no data provided" + }, + "status" : { + "type" : "string", + "description" : "Indicates whether the schedule is currently active. The value SKIP is equivalent to ACTIVE except that the customer has requested the next normal occurrence to be skipped.", + "enum" : [ "ACTIVE", "INACTIVE", "SKIP" ] + }, + "from" : { + "$ref" : "#/definitions/BankingScheduledPaymentFrom" + }, + "paymentSet" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/BankingScheduledPaymentSet" + } + }, + "recurrence" : { + "$ref" : "#/definitions/BankingScheduledPaymentRecurrence" + } + }, + "x-conditional" : [ "payeeReference" ] + }, + "BankingScheduledPaymentSet" : { + "required" : [ "to" ], + "properties" : { + "to" : { + "$ref" : "#/definitions/BankingScheduledPaymentTo" + }, + "isAmountCalculated" : { + "type" : "boolean", + "description" : "Flag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then false is assumed", + "x-cds-type" : "Boolean" + }, + "amount" : { + "type" : "string", + "description" : "The amount of the next payment if known. Mandatory unless the isAmountCalculated field is set to true. Must be zero or positive if present", + "x-cds-type" : "AmountString" + }, + "currency" : { + "type" : "string", + "description" : "The currency for the payment. AUD assumed if not present", + "x-cds-type" : "CurrencyString" + } + }, + "description" : "The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry", + "x-conditional" : [ "amount" ] + }, + "BankingScheduledPaymentTo" : { + "type" : "object", + "required" : [ "toUType" ], + "properties" : { + "toUType" : { + "type" : "string", + "description" : "The type of object provided that specifies the destination of the funds for the payment.", + "enum" : [ "accountId", "biller", "domestic", "international", "payeeId" ] + }, + "accountId" : { + "type" : "string", + "description" : "Present if toUType is set to accountId. Indicates that the payment is to another account that is accessible under the current consent", + "x-cds-type" : "ASCIIString" + }, + "payeeId" : { + "type" : "string", + "description" : "Present if toUType is set to payeeId. Indicates that the payment is to registered payee that can be accessed using the payee end point. If the Bank Payees scope has not been consented to then a payeeId should not be provided and the full payee details should be provided instead", + "x-cds-type" : "ASCIIString" + }, + "nickname" : { + "type" : "string", + "description" : "The short display name of the payee as provided by the customer unless toUType is set to payeeId. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels" + }, + "payeeReference" : { + "type" : "string", + "description" : "The reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level." + }, + "domestic" : { + "$ref" : "#/definitions/BankingDomesticPayee" + }, + "biller" : { + "$ref" : "#/definitions/BankingBillerPayee" + }, + "international" : { + "$ref" : "#/definitions/BankingInternationalPayee" + } + }, + "description" : "Object containing details of the destination of the payment. Used to specify a variety of payment destination types", + "x-conditional" : [ "accountId", "payeeId", "domestic", "biller", "international", "nickname", "payeeReference" ] + }, + "BankingScheduledPaymentFrom" : { + "type" : "object", + "required" : [ "accountId" ], + "properties" : { + "accountId" : { + "type" : "string", + "description" : "ID of the account that is the source of funds for the payment", + "x-cds-type" : "ASCIIString" + } + }, + "description" : "Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object" + }, + "BankingScheduledPaymentRecurrence" : { + "type" : "object", + "required" : [ "recurrenceUType" ], + "properties" : { + "nextPaymentDate" : { + "type" : "string", + "description" : "The date of the next payment under the recurrence schedule", + "x-cds-type" : "DateString" + }, + "recurrenceUType" : { + "type" : "string", + "description" : "The type of recurrence used to define the schedule", + "enum" : [ "eventBased", "intervalSchedule", "lastWeekDay", "onceOff" ] + }, + "onceOff" : { + "$ref" : "#/definitions/BankingScheduledPaymentRecurrenceOnceOff" + }, + "intervalSchedule" : { + "$ref" : "#/definitions/BankingScheduledPaymentRecurrenceIntervalSchedule" + }, + "lastWeekDay" : { + "$ref" : "#/definitions/BankingScheduledPaymentRecurrenceLastWeekday" + }, + "eventBased" : { + "$ref" : "#/definitions/BankingScheduledPaymentRecurrenceEventBased" + } + }, + "description" : "Object containing the detail of the schedule for the payment", + "x-conditional" : [ "onceOff", "intervalSchedule", "lastWeekDay", "eventBased" ] + }, + "BankingScheduledPaymentRecurrenceOnceOff" : { + "type" : "object", + "required" : [ "paymentDate" ], + "properties" : { + "paymentDate" : { + "type" : "string", + "description" : "The scheduled date for the once off payment", + "x-cds-type" : "DateString" + } + }, + "description" : "Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff" + }, + "BankingScheduledPaymentRecurrenceIntervalSchedule" : { + "type" : "object", + "required" : [ "intervals" ], + "properties" : { + "finalPaymentDate" : { + "type" : "string", + "description" : "The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely", + "x-cds-type" : "DateString" + }, + "paymentsRemaining" : { + "type" : "integer", + "example" : 1, + "description" : "Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely", + "x-cds-type" : "PositiveInteger" + }, + "nonBusinessDayTreatment" : { + "type" : "string", + "description" : "Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored", + "default" : "ON", + "enum" : [ "AFTER", "BEFORE", "ON", "ONLY" ] + }, + "intervals" : { + "type" : "array", + "description" : "An array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry", + "items" : { + "$ref" : "#/definitions/BankingScheduledPaymentInterval" + } + } + }, + "description" : "Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule" + }, + "BankingScheduledPaymentInterval" : { + "type" : "object", + "required" : [ "interval" ], + "properties" : { + "interval" : { + "type" : "string", + "description" : "An interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate", + "x-cds-type" : "ExternalRef" + }, + "dayInInterval" : { + "type" : "string", + "description" : "Uses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is P1D. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday.", + "x-cds-type" : "ExternalRef" + } + } + }, + "BankingScheduledPaymentRecurrenceLastWeekday" : { + "type" : "object", + "required" : [ "interval", "lastWeekDay" ], + "properties" : { + "finalPaymentDate" : { + "type" : "string", + "description" : "The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely", + "x-cds-type" : "DateString" + }, + "paymentsRemaining" : { + "type" : "integer", + "example" : 1, + "description" : "Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely", + "x-cds-type" : "PositiveInteger" + }, + "interval" : { + "type" : "string", + "description" : "The interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate", + "x-cds-type" : "ExternalRef" + }, + "lastWeekDay" : { + "type" : "string", + "description" : "The weekDay specified. The payment will occur on the last occurrence of this weekday in the interval.", + "enum" : [ "FRI", "MON", "SAT", "SUN", "THU", "TUE", "WED" ] + }, + "nonBusinessDayTreatment" : { + "type" : "string", + "description" : "Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored", + "default" : "ON", + "enum" : [ "AFTER", "BEFORE", "ON", "ONLY" ] + } + }, + "description" : "Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay" + }, + "BankingScheduledPaymentRecurrenceEventBased" : { + "type" : "object", + "required" : [ "description" ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the event and conditions that will result in the payment. Expected to be formatted for display to a customer" + } + }, + "description" : "Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased" + }, + "ResponseCommonDiscoveryStatus" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseCommonDiscoveryStatus_data" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "ResponseDiscoveryOutagesList" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseDiscoveryOutagesList_data" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + } + }, + "DiscoveryOutage" : { + "type" : "object", + "required" : [ "duration", "explanation", "outageTime" ], + "properties" : { + "outageTime" : { + "type" : "string", + "description" : "Date and time that the outage is scheduled to begin", + "x-cds-type" : "DateTimeString" + }, + "duration" : { + "type" : "string", + "description" : "Planned duration of the outage. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type" : "ExternalRef" + }, + "isPartial" : { + "type" : "boolean", + "description" : "Flag that indicates, if present and set to true, that the outage is only partial meaning that only a subset of normally available end points will be affected by the outage", + "x-cds-type" : "Boolean" + }, + "explanation" : { + "type" : "string", + "description" : "Provides an explanation of the current outage that can be displayed to an end customer" + } + } + }, + "ResponseCommonCustomer" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseCommonCustomer_data" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + }, + "x-conditional" : [ "person", "organisation" ] + }, + "ResponseCommonCustomerDetail" : { + "type" : "object", + "required" : [ "data", "links" ], + "properties" : { + "data" : { + "$ref" : "#/definitions/ResponseCommonCustomerDetail_data" + }, + "links" : { + "$ref" : "#/definitions/Links" + }, + "meta" : { + "$ref" : "#/definitions/Meta" + } + }, + "x-conditional" : [ "person", "organisation" ] + }, + "CommonPerson" : { + "type" : "object", + "required" : [ "lastName", "middleNames" ], + "properties" : { + "lastUpdateTime" : { + "type" : "string", + "description" : "The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data", + "x-cds-type" : "DateTimeString" + }, + "firstName" : { + "type" : "string", + "description" : "For people with single names this field need not be present. The single name should be in the lastName field" + }, + "lastName" : { + "type" : "string", + "description" : "For people with single names the single name should be in this field" + }, + "middleNames" : { + "type" : "array", + "description" : "Field is mandatory but array may be empty", + "items" : { + "type" : "string" + } + }, + "prefix" : { + "type" : "string", + "description" : "Also known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)" + }, + "suffix" : { + "type" : "string", + "description" : "Used for a trailing suffix to the name (e.g. Jr)" + }, + "occupationCode" : { + "type" : "string", + "description" : "Value is a valid [ANZSCO](http://www.abs.gov.au/ANZSCO) Standard Occupation classification code. If the occupation code held by the data holder is not one of the supported [ANZSCO](http://www.abs.gov.au/ANZSCO) versions, then it must not be supplied.", + "x-cds-type" : "ExternalRef" + }, + "occupationCodeVersion" : { + "type" : "string", + "description" : "The applicable [ANZSCO](http://www.abs.gov.au/ANZSCO) release version of the occupation code provided. Mandatory if an ``occupationCode`` is supplied. If ``occupationCode`` is supplied but ``occupationCodeVersion`` is absent, default is ``ANZSCO_1220.0_2013_V1.2``", + "default" : "ANZSCO_1220.0_2013_V1.2", + "enum" : [ "ANZSCO_1220.0_2006_V1.0", "ANZSCO_1220.0_2006_V1.1", "ANZSCO_1220.0_2013_V1.2", "ANZSCO_1220.0_2013_V1.3" ] + } + }, + "x-conditional" : [ "occupationCodeVersion" ] + }, + "CommonPersonDetail" : { + "allOf" : [ { + "$ref" : "#/definitions/CommonPerson" + }, { + "type" : "object", + "required" : [ "emailAddresses", "phoneNumbers", "physicalAddresses" ], + "properties" : { + "phoneNumbers" : { + "type" : "array", + "description" : "Array is mandatory but may be empty if no phone numbers are held", + "items" : { + "$ref" : "#/definitions/CommonPhoneNumber" + } + }, + "emailAddresses" : { + "type" : "array", + "description" : "May be empty", + "items" : { + "$ref" : "#/definitions/CommonEmailAddress" + } + }, + "physicalAddresses" : { + "type" : "array", + "description" : "Must contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail", + "items" : { + "$ref" : "#/definitions/CommonPhysicalAddressWithPurpose" + } + } + } + } ] + }, + "CommonOrganisation" : { + "type" : "object", + "required" : [ "agentLastName", "agentRole", "businessName", "organisationType" ], + "properties" : { + "lastUpdateTime" : { + "type" : "string", + "description" : "The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data", + "x-cds-type" : "DateTimeString" + }, + "agentFirstName" : { + "type" : "string", + "description" : "The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present. The single name should be in the lastName field" + }, + "agentLastName" : { + "type" : "string", + "description" : "The last name of the individual providing access on behalf of the organisation. For people with single names the single name should be in this field" + }, + "agentRole" : { + "type" : "string", + "description" : "The role of the individual identified as the agent who is providing authorisation. Expected to be used for display. Default to Unspecified if the role is not known" + }, + "businessName" : { + "type" : "string", + "description" : "Name of the organisation" + }, + "legalName" : { + "type" : "string", + "description" : "Legal name, if different to the business name" + }, + "shortName" : { + "type" : "string", + "description" : "Short name used for communication, if different to the business name" + }, + "abn" : { + "type" : "string", + "description" : "Australian Business Number for the organisation" + }, + "acn" : { + "type" : "string", + "description" : "Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type" + }, + "isACNCRegistered" : { + "type" : "boolean", + "description" : "True if registered with the ACNC. False if not. Absent or null if not confirmed.", + "x-cds-type" : "Boolean" + }, + "industryCode" : { + "type" : "string", + "description" : "A valid [ANZSIC](http://www.abs.gov.au/ANZSIC) code for the organisation. If the industry code held by the data holder is not one of the supported [ANZSIC](http://www.abs.gov.au/ANZSIC) versions, then it must not be supplied.", + "x-cds-type" : "ExternalRef" + }, + "industryCodeVersion" : { + "type" : "string", + "description" : "The applicable [ANZSIC](http://www.abs.gov.au/ANZSIC) release version of the industry code provided. Should only be supplied if ``industryCode`` is also supplied. If ``industryCode`` is supplied but ``industryCodeVersion`` is absent, default is ``ANZSIC_1292.0_2006_V2.0``", + "default" : "ANZSIC_1292.0_2006_V2.0", + "enum" : [ "ANZSIC_1292.0_2006_V1.0", "ANZSIC_1292.0_2006_V2.0" ] + }, + "organisationType" : { + "type" : "string", + "description" : "Legal organisation type", + "enum" : [ "COMPANY", "GOVERNMENT_ENTITY", "OTHER", "PARTNERSHIP", "SOLE_TRADER", "TRUST" ] + }, + "registeredCountry" : { + "type" : "string", + "description" : "Enumeration with values from [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country codes. Assumed to be AUS if absent", + "x-cds-type" : "ExternalRef" + }, + "establishmentDate" : { + "type" : "string", + "description" : "The date the organisation described was established", + "x-cds-type" : "DateString" + } + }, + "x-conditional" : [ "industryCodeVersion" ] + }, + "CommonOrganisationDetail" : { + "allOf" : [ { + "$ref" : "#/definitions/CommonOrganisation" + }, { + "type" : "object", + "required" : [ "physicalAddresses" ], + "properties" : { + "physicalAddresses" : { + "type" : "array", + "description" : "Must contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail", + "items" : { + "$ref" : "#/definitions/CommonPhysicalAddressWithPurpose" + } + } + } + } ] + }, + "CommonPhoneNumber" : { + "type" : "object", + "required" : [ "fullNumber", "number", "purpose" ], + "properties" : { + "isPreferred" : { + "type" : "boolean", + "description" : "May be true for one and only one entry to indicate the preferred phone number. Assumed to be 'false' if not present", + "x-cds-type" : "Boolean" + }, + "purpose" : { + "type" : "string", + "description" : "The purpose of the number as specified by the customer", + "enum" : [ "HOME", "INTERNATIONAL", "MOBILE", "OTHER", "UNSPECIFIED", "WORK" ] + }, + "countryCode" : { + "type" : "string", + "description" : "If absent, assumed to be Australia (+61). The + should be included" + }, + "areaCode" : { + "type" : "string", + "description" : "Required for non Mobile Phones, if field is present and refers to Australian code - the leading 0 should be omitted." + }, + "number" : { + "type" : "string", + "description" : "The actual phone number, with leading zeros as appropriate" + }, + "extension" : { + "type" : "string", + "description" : "An extension number (if applicable)" + }, + "fullNumber" : { + "type" : "string", + "description" : "Fully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of [RFC 3966](https://www.ietf.org/rfc/rfc3966.txt)", + "x-cds-type" : "ExternalRef" + } + }, + "x-conditional" : [ "areaCode" ] + }, + "CommonEmailAddress" : { + "type" : "object", + "required" : [ "address", "purpose" ], + "properties" : { + "isPreferred" : { + "type" : "boolean", + "description" : "May be true for one and only one email record in the collection. Denotes the default email address", + "x-cds-type" : "Boolean" + }, + "purpose" : { + "type" : "string", + "description" : "The purpose for the email, as specified by the customer (Enumeration)", + "enum" : [ "HOME", "OTHER", "UNSPECIFIED", "WORK" ] + }, + "address" : { + "type" : "string", + "description" : "A correctly formatted email address, as defined by the addr_spec format in [RFC 5322](https://www.ietf.org/rfc/rfc5322.txt)", + "x-cds-type" : "ExternalRef" + } + } + }, + "CommonPhysicalAddressWithPurpose" : { + "allOf" : [ { + "$ref" : "#/definitions/CommonPhysicalAddress" + }, { + "type" : "object", + "required" : [ "purpose" ], + "properties" : { + "purpose" : { + "type" : "string", + "description" : "Enumeration of values indicating the purpose of the physical address", + "enum" : [ "MAIL", "OTHER", "PHYSICAL", "REGISTERED", "WORK" ] + } + } + } ] + }, + "CommonPhysicalAddress" : { + "type" : "object", + "required" : [ "addressUType" ], + "properties" : { + "addressUType" : { + "type" : "string", + "description" : "The type of address object present", + "enum" : [ "paf", "simple" ] + }, + "simple" : { + "$ref" : "#/definitions/CommonSimpleAddress" + }, + "paf" : { + "$ref" : "#/definitions/CommonPAFAddress" + } + }, + "x-conditional" : [ "simple", "paf" ] + }, + "CommonSimpleAddress" : { + "type" : "object", + "required" : [ "addressLine1", "city", "state" ], + "properties" : { + "mailingName" : { + "type" : "string", + "description" : "Name of the individual or business formatted for inclusion in an address used for physical mail" + }, + "addressLine1" : { + "type" : "string", + "description" : "First line of the standard address object" + }, + "addressLine2" : { + "type" : "string", + "description" : "Second line of the standard address object" + }, + "addressLine3" : { + "type" : "string", + "description" : "Third line of the standard address object" + }, + "postcode" : { + "type" : "string", + "description" : "Mandatory for Australian addresses" + }, + "city" : { + "type" : "string", + "description" : "Name of the city or locality" + }, + "state" : { + "type" : "string", + "description" : "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + }, + "country" : { + "type" : "string", + "description" : "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.", + "default" : "AUS", + "x-cds-type" : "ExternalRef" + } + }, + "x-conditional" : [ "postcode" ] + }, + "CommonPAFAddress" : { + "type" : "object", + "required" : [ "localityName", "postcode", "state" ], + "properties" : { + "dpid" : { + "type" : "string", + "description" : "Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier" + }, + "thoroughfareNumber1" : { + "type" : "integer", + "description" : "Thoroughfare number for a property (first number in a property ranged address)", + "x-cds-type" : "PositiveInteger" + }, + "thoroughfareNumber1Suffix" : { + "type" : "string", + "description" : "Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated" + }, + "thoroughfareNumber2" : { + "type" : "integer", + "description" : "Second thoroughfare number (only used if the property has a ranged address eg 23-25)", + "x-cds-type" : "PositiveInteger" + }, + "thoroughfareNumber2Suffix" : { + "type" : "string", + "description" : "Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated" + }, + "flatUnitType" : { + "type" : "string", + "description" : "Type of flat or unit for the address" + }, + "flatUnitNumber" : { + "type" : "string", + "description" : "Unit number (including suffix, if applicable)" + }, + "floorLevelType" : { + "type" : "string", + "description" : "Type of floor or level for the address" + }, + "floorLevelNumber" : { + "type" : "string", + "description" : "Floor or level number (including alpha characters)" + }, + "lotNumber" : { + "type" : "string", + "description" : "Allotment number for the address" + }, + "buildingName1" : { + "type" : "string", + "description" : "Building/Property name 1" + }, + "buildingName2" : { + "type" : "string", + "description" : "Building/Property name 2" + }, + "streetName" : { + "type" : "string", + "description" : "The name of the street" + }, + "streetType" : { + "type" : "string", + "description" : "The street type. Valid enumeration defined by Australia Post PAF code file" + }, + "streetSuffix" : { + "type" : "string", + "description" : "The street type suffix. Valid enumeration defined by Australia Post PAF code file" + }, + "postalDeliveryType" : { + "type" : "string", + "description" : "Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file" + }, + "postalDeliveryNumber" : { + "type" : "integer", + "description" : "Postal delivery number if the address is a postal delivery type", + "x-cds-type" : "PositiveInteger" + }, + "postalDeliveryNumberPrefix" : { + "type" : "string", + "description" : "Postal delivery number prefix related to the postal delivery number" + }, + "postalDeliveryNumberSuffix" : { + "type" : "string", + "description" : "Postal delivery number suffix related to the postal delivery number" + }, + "localityName" : { + "type" : "string", + "description" : "Full name of locality" + }, + "postcode" : { + "type" : "string", + "description" : "Postcode for the locality" + }, + "state" : { + "type" : "string", + "description" : "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + } + }, + "description" : "Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)" + }, + "Links" : { + "type" : "object", + "required" : [ "self" ], + "properties" : { + "self" : { + "type" : "string", + "description" : "Fully qualified link that generated the current response document", + "x-cds-type" : "URIString" + } + } + }, + "Meta" : { + "type" : "object" + }, + "LinksPaginated" : { + "type" : "object", + "required" : [ "self" ], + "properties" : { + "self" : { + "type" : "string", + "description" : "Fully qualified link that generated the current response document", + "x-cds-type" : "URIString" + }, + "first" : { + "type" : "string", + "description" : "URI to the first page of this set. Mandatory if this response is not the first page", + "x-cds-type" : "URIString" + }, + "prev" : { + "type" : "string", + "description" : "URI to the previous page of this set. Mandatory if this response is not the first page", + "x-cds-type" : "URIString" + }, + "next" : { + "type" : "string", + "description" : "URI to the next page of this set. Mandatory if this response is not the last page", + "x-cds-type" : "URIString" + }, + "last" : { + "type" : "string", + "description" : "URI to the last page of this set. Mandatory if this response is not the last page", + "x-cds-type" : "URIString" + } + }, + "x-conditional" : [ "prev", "next", "first", "last" ] + }, + "MetaPaginated" : { + "type" : "object", + "required" : [ "totalPages", "totalRecords" ], + "properties" : { + "totalRecords" : { + "type" : "integer", + "description" : "The total number of records in the full set. See [pagination](#pagination).", + "x-cds-type" : "NaturalNumber" + }, + "totalPages" : { + "type" : "integer", + "description" : "The total number of pages in the full set. See [pagination](#pagination).", + "x-cds-type" : "NaturalNumber" + } + } + }, + "ResponseErrorList" : { + "type" : "object", + "required" : [ "errors" ], + "properties" : { + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ResponseErrorList_errors" + } + } + } + }, + "BankingProductCategory" : { + "type" : "string", + "description" : "The category to which a product or account belongs. See [here](#product-categories) for more details", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, + "RequestAccountIds_data" : { + "required" : [ "accountIds" ], + "properties" : { + "accountIds" : { + "type" : "array", + "items" : { + "type" : "string", + "description" : "Array of specific accountIds to obtain authorisations for", + "x-cds-type" : "ASCIIString" + } + } + } + }, + "ResponseBankingProductList_data" : { + "required" : [ "products" ], + "properties" : { + "products" : { + "type" : "array", + "description" : "The list of products returned. If the filter results in an empty set then this array may have no records", + "items" : { + "$ref" : "#/definitions/BankingProductV3" + } + } + } + }, + "BankingProductV3_additionalInformation" : { + "properties" : { + "overviewUri" : { + "type" : "string", + "description" : "General overview of the product", + "x-cds-type" : "URIString" + }, + "termsUri" : { + "type" : "string", + "description" : "Terms and conditions for the product", + "x-cds-type" : "URIString" + }, + "eligibilityUri" : { + "type" : "string", + "description" : "Eligibility rules and criteria for the product", + "x-cds-type" : "URIString" + }, + "feesAndPricingUri" : { + "type" : "string", + "description" : "Description of fees, pricing, discounts, exemptions and bonuses for the product", + "x-cds-type" : "URIString" + }, + "bundleUri" : { + "type" : "string", + "description" : "Description of a bundle that this product can be part of", + "x-cds-type" : "URIString" + } + }, + "description" : "Object that contains links to additional information on specific topics" + }, + "BankingProductV3_cardArt" : { + "required" : [ "imageUri" ], + "properties" : { + "title" : { + "type" : "string", + "description" : "Display label for the specific image" + }, + "imageUri" : { + "type" : "string", + "description" : "URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI [RFC 2397](https://tools.ietf.org/html/rfc2397)", + "x-cds-type" : "URIString" + } + } + }, + "ResponseBankingAccountList_data" : { + "required" : [ "accounts" ], + "properties" : { + "accounts" : { + "type" : "array", + "description" : "The list of accounts returned. If the filter results in an empty set then this array may have no records", + "items" : { + "$ref" : "#/definitions/BankingAccount" + } + } + } + }, + "ResponseBankingTransactionList_data" : { + "required" : [ "transactions" ], + "properties" : { + "transactions" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/BankingTransaction" + } + } + } + }, + "BankingTransactionDetail_extendedData_x2p101Payload" : { + "required" : [ "extendedDescription" ], + "properties" : { + "extendedDescription" : { + "type" : "string", + "description" : "An extended string description. Only present if specified by the extensionUType field" + }, + "endToEndId" : { + "type" : "string", + "description" : "An end to end ID for the payment created at initiation" + }, + "purposeCode" : { + "type" : "string", + "description" : "Purpose of the payment. Format is defined by NPP standards for the x2p1.01 overlay service" + } + } + }, + "BankingTransactionDetail_extendedData" : { + "required" : [ "service" ], + "properties" : { + "payer" : { + "type" : "string", + "description" : "Label of the originating payer. Mandatory for inbound payment" + }, + "payee" : { + "type" : "string", + "description" : "Label of the target PayID. Mandatory for an outbound payment. The name assigned to the BSB/Account Number or PayID (by the owner of the PayID)" + }, + "extensionUType" : { + "type" : "string", + "description" : "Optional extended data provided specific to transaction originated via NPP", + "enum" : [ "x2p101Payload" ] + }, + "x2p101Payload" : { + "$ref" : "#/definitions/BankingTransactionDetail_extendedData_x2p101Payload" + }, + "service" : { + "type" : "string", + "description" : "Identifier of the applicable overlay service. Valid values are: X2P1.01", + "enum" : [ "X2P1.01" ] + } + } + }, + "ResponseBankingAccountsBalanceList_data" : { + "required" : [ "balances" ], + "properties" : { + "balances" : { + "type" : "array", + "description" : "The list of balances returned", + "items" : { + "$ref" : "#/definitions/BankingBalance" + } + } + } + }, + "ResponseBankingPayeeList_data" : { + "required" : [ "payees" ], + "properties" : { + "payees" : { + "type" : "array", + "description" : "The list of payees returned", + "items" : { + "$ref" : "#/definitions/BankingPayee" + } + } + } + }, + "BankingInternationalPayee_beneficiaryDetails" : { + "required" : [ "country" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "Name of the beneficiary" + }, + "country" : { + "type" : "string", + "description" : "Country where the beneficiary resides. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code", + "x-cds-type" : "ExternalRef" + }, + "message" : { + "type" : "string", + "description" : "Response message for the payment" + } + } + }, + "BankingInternationalPayee_bankDetails_bankAddress" : { + "required" : [ "address", "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "Name of the recipient Bank" + }, + "address" : { + "type" : "string", + "description" : "Address of the recipient Bank" + } + } + }, + "BankingInternationalPayee_bankDetails" : { + "required" : [ "accountNumber", "country" ], + "properties" : { + "country" : { + "type" : "string", + "description" : "Country of the recipient institution. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code", + "x-cds-type" : "ExternalRef" + }, + "accountNumber" : { + "type" : "string", + "description" : "Account Targeted for payment" + }, + "bankAddress" : { + "$ref" : "#/definitions/BankingInternationalPayee_bankDetails_bankAddress" + }, + "beneficiaryBankBIC" : { + "type" : "string", + "description" : "Swift bank code. Aligns with standard [ISO 9362](https://www.iso.org/standard/60390.html)", + "x-cds-type" : "ExternalRef" + }, + "fedWireNumber" : { + "type" : "string", + "description" : "Number for Fedwire payment (Federal Reserve Wire Network)" + }, + "sortCode" : { + "type" : "string", + "description" : "Sort code used for account identification in some jurisdictions" + }, + "chipNumber" : { + "type" : "string", + "description" : "Number for the Clearing House Interbank Payments System" + }, + "routingNumber" : { + "type" : "string", + "description" : "International bank routing number" + }, + "legalEntityIdentifier" : { + "type" : "string", + "description" : "The legal entity identifier (LEI) for the beneficiary. Aligns with [ISO 17442](https://www.iso.org/standard/59771.html)", + "x-cds-type" : "ExternalRef" + } + } + }, + "ResponseBankingDirectDebitAuthorisationList_data" : { + "required" : [ "directDebitAuthorisations" ], + "properties" : { + "directDebitAuthorisations" : { + "type" : "array", + "description" : "The list of authorisations returned", + "items" : { + "$ref" : "#/definitions/BankingDirectDebit" + } + } + } + }, + "ResponseBankingScheduledPaymentsList_data" : { + "required" : [ "scheduledPayments" ], + "properties" : { + "scheduledPayments" : { + "type" : "array", + "description" : "The list of scheduled payments to return", + "items" : { + "$ref" : "#/definitions/BankingScheduledPayment" + } + } + } + }, + "ResponseCommonDiscoveryStatus_data" : { + "required" : [ "status", "updateTime" ], + "properties" : { + "status" : { + "type" : "string", + "description" : "Enumeration with values. OK (implementation is fully functional). PARTIAL_FAILURE (one or more end points are unexpectedly unavailable). UNAVAILABLE (the full implementation is unexpectedly unavailable). SCHEDULED_OUTAGE (an advertised outage is in effect)", + "enum" : [ "OK", "PARTIAL_FAILURE", "SCHEDULED_OUTAGE", "UNAVAILABLE" ] + }, + "explanation" : { + "type" : "string", + "description" : "Provides an explanation of the current outage that can be displayed to an end customer. Mandatory if the status property is any value other than OK" + }, + "detectionTime" : { + "type" : "string", + "description" : "The date and time that the current outage was detected. Should only be present if the status property is PARTIAL_FAILURE or UNAVAILABLE", + "x-cds-type" : "DateTimeString" + }, + "expectedResolutionTime" : { + "type" : "string", + "description" : "The date and time that full service is expected to resume (if known). Should not be present if the status property has a value of OK.", + "x-cds-type" : "DateTimeString" + }, + "updateTime" : { + "type" : "string", + "description" : "The date and time that this status was last updated by the Data Holder.", + "x-cds-type" : "DateTimeString" + } + } + }, + "ResponseDiscoveryOutagesList_data" : { + "required" : [ "outages" ], + "properties" : { + "outages" : { + "type" : "array", + "description" : "List of scheduled outages. Property is mandatory but may contain and empty list if no outages are scheduled", + "items" : { + "$ref" : "#/definitions/DiscoveryOutage" + } + } + } + }, + "ResponseCommonCustomer_data" : { + "required" : [ "customerUType" ], + "properties" : { + "customerUType" : { + "type" : "string", + "description" : "The type of customer object that is present", + "enum" : [ "organisation", "person" ] + }, + "person" : { + "$ref" : "#/definitions/CommonPerson" + }, + "organisation" : { + "$ref" : "#/definitions/CommonOrganisation" + } + } + }, + "ResponseCommonCustomerDetail_data" : { + "required" : [ "customerUType" ], + "properties" : { + "customerUType" : { + "type" : "string", + "description" : "The type of customer object that is present", + "enum" : [ "organisation", "person" ] + }, + "person" : { + "$ref" : "#/definitions/CommonPersonDetail" + }, + "organisation" : { + "$ref" : "#/definitions/CommonOrganisationDetail" + } + } + }, + "ResponseErrorList_errors" : { + "required" : [ "code", "detail", "title" ], + "properties" : { + "code" : { + "type" : "string", + "description" : "Must be one of the following: 0001 – Account not able to be found" + }, + "title" : { + "type" : "string", + "description" : "Must be one of the following: Invalid account" + }, + "detail" : { + "type" : "string", + "description" : "ID of the account not found" + }, + "meta" : { + "type" : "object", + "description" : "Optional additional data for specific error types", + "properties" : { } + } + } + } + }, + "parameters" : { + "RequestHeader_x-v" : { + "name" : "x-v", + "in" : "header", + "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)", + "required" : true, + "type" : "string" + }, + "RequestHeader_x-min-v" : { + "name" : "x-min-v", + "in" : "header", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.", + "required" : false, + "type" : "string" + }, + "RequestHeader_x-fapi-interaction-id" : { + "name" : "x-fapi-interaction-id", + "in" : "header", + "description" : "An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.", + "required" : false, + "type" : "string" + }, + "RequestHeader_x-fapi-auth-date" : { + "name" : "x-fapi-auth-date", + "in" : "header", + "description" : "The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, + "RequestHeader_x-fapi-customer-ip-address" : { + "name" : "x-fapi-customer-ip-address", + "in" : "header", + "description" : "The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "required" : false, + "type" : "string" + }, + "RequestHeader_x-cds-client-headers" : { + "name" : "x-cds-client-headers", + "in" : "header", + "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "required" : false, + "type" : "string", + "x-cds-type" : "Base64" + }, + "ParamAccountOpenStatus" : { + "name" : "open-status", + "in" : "query", + "description" : "Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed", + "required" : false, + "type" : "string", + "default" : "ALL", + "enum" : [ "ALL", "CLOSED", "OPEN" ] + }, + "ParamProductCategory" : { + "name" : "product-category", + "in" : "query", + "description" : "Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "required" : false, + "type" : "string", + "enum" : [ "BUSINESS_LOANS", "CRED_AND_CHRG_CARDS", "LEASES", "MARGIN_LOANS", "OVERDRAFTS", "PERS_LOANS", "REGULATED_TRUST_ACCOUNTS", "RESIDENTIAL_MORTGAGES", "TERM_DEPOSITS", "TRADE_FINANCE", "TRANS_AND_SAVINGS_ACCOUNTS", "TRAVEL_CARDS" ] + }, + "ParamAccountIsOwned" : { + "name" : "is-owned", + "in" : "query", + "description" : "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "required" : false, + "type" : "boolean", + "x-cds-type" : "Boolean" + }, + "ParamPage" : { + "name" : "page", + "in" : "query", + "description" : "Page of results to request (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 1, + "x-cds-type" : "PositiveInteger" + }, + "ParamPageSize" : { + "name" : "page-size", + "in" : "query", + "description" : "Page size to request. Default is 25 (standard pagination)", + "required" : false, + "type" : "integer", + "default" : 25, + "x-cds-type" : "PositiveInteger" + }, + "ParamTransactionNewestTime" : { + "name" : "newest-time", + "in" : "query", + "description" : "Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type", + "required" : false, + "type" : "string", + "x-cds-type" : "DateTimeString" + }, + "ParamTransactionOldestTime" : { + "name" : "oldest-time", + "in" : "query", + "description" : "Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type", + "required" : false, + "type" : "string", + "x-cds-type" : "DateTimeString" + }, + "ParamTransactionMinAmount" : { + "name" : "min-amount", + "in" : "query", + "description" : "Filter transactions to only transactions with amounts higher or equal to than this amount", + "required" : false, + "type" : "string", + "x-cds-type" : "AmountString" + }, + "ParamTransactionMaxAmount" : { + "name" : "max-amount", + "in" : "query", + "description" : "Filter transactions to only transactions with amounts less than or equal to than this amount", + "required" : false, + "type" : "string", + "x-cds-type" : "AmountString" + }, + "ParamTransactionText" : { + "name" : "text", + "in" : "query", + "description" : "Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not)", + "required" : false, + "type" : "string" + } + } +} \ No newline at end of file diff --git a/docs/archive/standards-1.8.0/docs/includes/swagger/cds_full.yaml b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_full.yaml new file mode 100644 index 00000000..575bbc1f --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/includes/swagger/cds_full.yaml @@ -0,0 +1,4069 @@ +--- +swagger: "2.0" +info: + description: API sets created by the Australian Consumer Data Standards to meet the needs of the Consumer Data Right + version: 1.8.0 + title: Consumer Data Standards + contact: + name: Consumer Data Standards + url: https://consumerdatastandards.org.au/ + email: cdr-data61@csiro.au + license: + name: MIT License + url: https://opensource.org/licenses/MIT +host: data.holder.com.au +basePath: /cds-au/v1 +schemes: +- https +consumes: +- application/json +produces: +- application/json +paths: + /banking/accounts: + get: + tags: + - Banking + - Accounts + summary: Get Accounts + description: Obtain a list of accounts + operationId: listAccounts + parameters: + - name: product-category + in: query + description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. + required: false + type: string + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + - name: open-status + in: query + description: Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed + required: false + type: string + default: ALL + enum: + - ALL + - CLOSED + - OPEN + - name: is-owned + in: query + description: Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts + required: false + type: boolean + x-cds-type: Boolean + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingAccountList' + x-scopes: + - bank:accounts.basic:read + x-version: "1" + /banking/accounts/balances: + get: + tags: + - Banking + - Accounts + summary: Get Bulk Balances + description: Obtain balances for multiple, filtered accounts + operationId: listBalancesBulk + parameters: + - name: product-category + in: query + description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. + required: false + type: string + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + - name: open-status + in: query + description: Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed + required: false + type: string + default: ALL + enum: + - ALL + - CLOSED + - OPEN + - name: is-owned + in: query + description: Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts + required: false + type: boolean + x-cds-type: Boolean + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingAccountsBalanceList' + x-scopes: + - bank:accounts.basic:read + x-version: "1" + post: + tags: + - Banking + - Accounts + summary: Get Balances For Specific Accounts + description: Obtain balances for a specified list of accounts + operationId: listBalancesSpecificAccounts + parameters: + - in: body + name: accountIds + description: The list of account IDs to obtain balances for + required: true + schema: + $ref: '#/definitions/RequestAccountIds' + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingAccountsBalanceList' + 422: + description: The request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent context + headers: + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseErrorList' + x-scopes: + - bank:accounts.basic:read + x-version: "1" + /banking/accounts/{accountId}/balance: + get: + tags: + - Banking + - Accounts + summary: Get Account Balance + description: Obtain the balance for a single specified account + operationId: getBalance + parameters: + - name: accountId + in: path + description: ID of the specific account requested + required: true + type: string + x-cds-type: ASCIIString + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingAccountsBalanceById' + x-scopes: + - bank:accounts.basic:read + x-version: "1" + /banking/accounts/{accountId}: + get: + tags: + - Banking + - Accounts + summary: Get Account Detail + description: Obtain detailed information on a single account + operationId: getAccountDetail + parameters: + - name: accountId + in: path + description: A tokenised identifier for the account which is unique but not shareable + required: true + type: string + x-cds-type: ASCIIString + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingAccountById' + x-scopes: + - bank:accounts.detail:read + x-version: "1" + /banking/accounts/{accountId}/transactions: + get: + tags: + - Banking + - Accounts + summary: Get Transactions For Account + description: |- + Obtain transactions for a specific account. + + Some general notes that apply to all end points that retrieve transactions: + + - Where multiple transactions are returned, transactions should be ordered according to effective date in descending order + - As the date and time for a transaction can alter depending on status and transaction type two separate date/times are included in the payload. There are still some scenarios where neither of these time stamps is available. For the purpose of filtering and ordering it is expected that the data holder will use the “effective” date/time which will be defined as: + - Posted date/time if available, then + - Execution date/time if available, then + - A reasonable date/time nominated by the data holder using internal data structures + - For transaction amounts it should be assumed that a negative value indicates a reduction of the available balance on the account while a positive value indicates an increase in the available balance on the account + - For aggregated transactions (ie. groups of sub transactions reported as a single entry for the account) only the aggregated information, with as much consistent information accross the subsidiary transactions as possible, is required to be shared + operationId: getTransactions + parameters: + - name: accountId + in: path + description: ID of the account to get transactions for. Must have previously been returned by one of the account list end points. + required: true + type: string + x-cds-type: ASCIIString + - name: oldest-time + in: query + description: Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type + required: false + type: string + x-cds-type: DateTimeString + - name: newest-time + in: query + description: Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type + required: false + type: string + x-cds-type: DateTimeString + - name: min-amount + in: query + description: Filter transactions to only transactions with amounts higher or equal to than this amount + required: false + type: string + x-cds-type: AmountString + - name: max-amount + in: query + description: Filter transactions to only transactions with amounts less than or equal to than this amount + required: false + type: string + x-cds-type: AmountString + - name: text + in: query + description: Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not) + required: false + type: string + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingTransactionList' + x-scopes: + - bank:transactions:read + x-version: "1" + /banking/accounts/{accountId}/transactions/{transactionId}: + get: + tags: + - Banking + - Accounts + summary: Get Transaction Detail + description: Obtain detailed information on a transaction for a specific account + operationId: getTransactionDetail + parameters: + - name: accountId + in: path + description: ID of the account to get transactions for. Must have previously been returned by one of the account list end points + required: true + type: string + x-cds-type: ASCIIString + - name: transactionId + in: path + description: ID of the transaction obtained from a previous call to one of the other transaction end points + required: true + type: string + x-cds-type: ASCIIString + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingTransactionById' + x-scopes: + - bank:transactions:read + x-version: "1" + /banking/accounts/{accountId}/direct-debits: + get: + tags: + - Banking + - Direct Debits + summary: Get Direct Debits For Account + description: Obtain direct debit authorisations for a specific account + operationId: listDirectDebits + parameters: + - name: accountId + in: path + description: ID of the account to get direct debit authorisations for. Must have previously been returned by one of the account list end points. + required: true + type: string + x-cds-type: ASCIIString + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingDirectDebitAuthorisationList' + x-scopes: + - bank:regular_payments:read + x-version: "1" + /banking/accounts/direct-debits: + get: + tags: + - Banking + - Direct Debits + summary: Get Bulk Direct Debits + description: Obtain direct debit authorisations for multiple, filtered accounts + operationId: listDirectDebitsBulk + parameters: + - name: product-category + in: query + description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. + required: false + type: string + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + - name: open-status + in: query + description: Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed + required: false + type: string + default: ALL + enum: + - ALL + - CLOSED + - OPEN + - name: is-owned + in: query + description: Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts + required: false + type: boolean + x-cds-type: Boolean + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingDirectDebitAuthorisationList' + x-scopes: + - bank:regular_payments:read + x-version: "1" + post: + tags: + - Banking + - Direct Debits + summary: Get Direct Debits For Specific Accounts + description: Obtain direct debit authorisations for a specified list of accounts + operationId: listDirectDebitsSpecificAccounts + parameters: + - in: body + name: accountIds + description: Array of specific accountIds to obtain authorisations for + required: true + schema: + $ref: '#/definitions/RequestAccountIds' + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingDirectDebitAuthorisationList' + 422: + description: The request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent context + headers: + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseErrorList' + x-scopes: + - bank:regular_payments:read + x-version: "1" + /banking/accounts/{accountId}/payments/scheduled: + get: + tags: + - Banking + - Scheduled Payments + summary: Get Scheduled Payments for Account + description: Obtain scheduled, outgoing payments for a specific account + operationId: listScheduledPayments + parameters: + - name: accountId + in: path + description: ID of the account to get scheduled payments for. Must have previously been returned by one of the account list end points. The account specified is the source account for the payment + required: true + type: string + x-cds-type: ASCIIString + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingScheduledPaymentsList' + x-scopes: + - bank:regular_payments:read + x-version: "1" + /banking/payments/scheduled: + get: + tags: + - Banking + - Scheduled Payments + summary: Get Scheduled Payments Bulk + description: Obtain scheduled payments for multiple, filtered accounts that are the source of funds for the payments + operationId: listScheduledPaymentsBulk + parameters: + - name: product-category + in: query + description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. + required: false + type: string + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + - name: open-status + in: query + description: Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed + required: false + type: string + default: ALL + enum: + - ALL + - CLOSED + - OPEN + - name: is-owned + in: query + description: Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts + required: false + type: boolean + x-cds-type: Boolean + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingScheduledPaymentsList' + x-scopes: + - bank:regular_payments:read + x-version: "1" + post: + tags: + - Banking + - Scheduled Payments + summary: Get Scheduled Payments For Specific Accounts + description: Obtain scheduled payments for a specified list of accounts + operationId: listScheduledPaymentsSpecificAccounts + parameters: + - in: body + name: accountIds + description: Array of specific accountIds to obtain scheduled payments for. The accounts specified are the source of funds for the payments returned + required: true + schema: + $ref: '#/definitions/RequestAccountIds' + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingScheduledPaymentsList' + 422: + description: The request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent context + headers: + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseErrorList' + x-scopes: + - bank:regular_payments:read + x-version: "1" + /banking/payees: + get: + tags: + - Banking + - Payees + summary: Get Payees + description: Obtain a list of pre-registered payees + operationId: listPayees + parameters: + - name: type + in: query + description: Filter on the payee type field. In addition to normal type field values, ALL can be specified to retrieve all payees. If absent the assumed value is ALL + required: false + type: string + default: ALL + enum: + - ALL + - BILLER + - DOMESTIC + - INTERNATIONAL + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingPayeeList' + x-scopes: + - bank:payees:read + x-version: "1" + /banking/payees/{payeeId}: + get: + tags: + - Banking + - Payees + summary: Get Payee Detail + description: |- + Obtain detailed information on a single payee. + + Note that the payee sub-structure should be selected to represent the payment destination only rather than any known characteristics of the payment recipient + operationId: getPayeeDetail + parameters: + - name: payeeId + in: path + description: The ID used to locate the details of a particular payee + required: true + type: string + x-cds-type: ASCIIString + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseBankingPayeeById' + x-scopes: + - bank:payees:read + x-version: "1" + /banking/products: + get: + tags: + - Banking + - Products + summary: Get Products + description: |- + Obtain a list of products that are currently openly offered to the market + + Note that the results returned by this end point are expected to be ordered in descending order according to ``lastUpdated``. + + ### Conventions + In the product reference payloads there are a number of recurring conventions that are explained here, in one place. + + #### Arrays Of Features + + In the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows: + + - Each element in an array has the same structure so that clients can reliably interpret the payloads + - Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees. + - Each element has a field name [additionalValue](#productfeaturetypedoc). This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the ADDITIONAL_CARDS feature is the number of cards allowed while the contents of this field for the MAX_LIMIT constraint would be the maximum credit limit allowed for the product. + - An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths. + - An element in these arrays may contain an additionalInfo and additionalInfoUri field. The additionalInfo field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The additionalInfoUri provides a link to externally hosted information specifically relevant to that feature of the product. + - Depending on the type of data being represented there may be additional specific fields. + + #### URIs To More Information + + As the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels. + + These URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees. + + #### Linkage To Accounts + From the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account. + + For this reason, while productCategory is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime. + + Similarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actual has been instantiated and created along with the associated decisions inherent in that process. + + #### Dates + It is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a lastUpdated field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the updated-since query parameter. + + In addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely. + + NOTE: This version must be implemented by **February 2021** + + Obsolete versions: [v1](includes/obsolete/get-products-v1.html) [v2](includes/obsolete/get-products-v2.html) + operationId: listProducts + parameters: + - name: effective + in: query + description: Allows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT' + required: false + type: string + default: CURRENT + enum: + - ALL + - CURRENT + - FUTURE + - name: updated-since + in: query + description: Only include products that have been updated after the specified date and time. If absent defaults to include all products + required: false + type: string + x-cds-type: DateTimeString + - name: brand + in: query + description: Filter results based on a specific brand + required: false + type: string + - name: product-category + in: query + description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. + required: false + type: string + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + - name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + - name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + schema: + $ref: '#/definitions/ResponseBankingProductList' + x-version: "3" + /banking/products/{productId}: + get: + tags: + - Banking + - Products + summary: Get Product Detail + description: |- + Obtain detailed information on a single product offered openly to the market. + + NOTE: This version must be implemented by **February 2021** + + Obsolete versions: [v1](includes/obsolete/get-product-detail-v1.html) [v2](includes/obsolete/get-product-detail-v2.html) + operationId: getProductDetail + parameters: + - name: productId + in: path + description: ID of the specific product requested + required: true + type: string + x-cds-type: ASCIIString + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + schema: + $ref: '#/definitions/ResponseBankingProductById' + x-version: "3" + /common/customer: + get: + tags: + - Common + - Customer + summary: Get Customer + description: Obtain basic information on the customer that has authorised the current session + operationId: getCustomer + parameters: + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseCommonCustomer' + x-scopes: + - common:customer.basic:read + x-version: "1" + /common/customer/detail: + get: + tags: + - Common + - Customer + summary: Get Customer Detail + description: Obtain detailed information on the authorised customer within the current session. + operationId: getCustomerDetail + parameters: + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + - name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + - name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + - name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + - name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-fapi-interaction-id: + type: string + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + schema: + $ref: '#/definitions/ResponseCommonCustomerDetail' + x-scopes: + - common:customer.detail:read + x-version: "1" + /discovery/status: + get: + tags: + - Common + - Discovery + summary: Get Status + description: Obtain a health check status for the implementation + operationId: getStatus + parameters: + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + schema: + $ref: '#/definitions/ResponseCommonDiscoveryStatus' + x-version: "1" + /discovery/outages: + get: + tags: + - Common + - Discovery + summary: Get Outages + description: Obtain a list of scheduled outages for the implementation + operationId: getOutages + parameters: + - name: x-v + in: header + 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) + required: true + type: string + - name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + responses: + 200: + description: Success + headers: + x-v: + type: string + description: The [version](#response-headers) of the API end point that the data holder has responded with. + schema: + $ref: '#/definitions/ResponseDiscoveryOutagesList' + x-version: "1" +definitions: + RequestAccountIds: + type: object + required: + - data + properties: + data: + $ref: '#/definitions/RequestAccountIds_data' + meta: + $ref: '#/definitions/Meta' + ResponseBankingProductList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingProductList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + BankingProductV3: + type: object + required: + - brand + - description + - isTailored + - lastUpdated + - name + - productCategory + - productId + properties: + productId: + type: string + description: A data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines. + x-cds-type: ASCIIString + effectiveFrom: + type: string + description: The date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate + x-cds-type: DateTimeString + effectiveTo: + type: string + description: The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products + x-cds-type: DateTimeString + lastUpdated: + type: string + description: The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered) + x-cds-type: DateTimeString + productCategory: + $ref: '#/definitions/BankingProductCategory' + name: + type: string + description: The display name of the product + description: + type: string + description: A description of the product + brand: + type: string + description: A label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required + brandName: + type: string + description: An optional display name of the brand + applicationUri: + type: string + description: A link to an application web page where this product can be applied for. + x-cds-type: URIString + isTailored: + type: boolean + description: Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable + x-cds-type: Boolean + additionalInformation: + $ref: '#/definitions/BankingProductV3_additionalInformation' + cardArt: + type: array + description: An array of card art images + items: + $ref: '#/definitions/BankingProductV3_cardArt' + ResponseBankingProductById: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/BankingProductDetailV3' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + BankingProductDetailV3: + allOf: + - $ref: '#/definitions/BankingProductV3' + - type: object + properties: + bundles: + type: array + description: An array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also + items: + $ref: '#/definitions/BankingProductBundle' + features: + type: array + description: Array of features available for the product + items: + $ref: '#/definitions/BankingProductFeature' + constraints: + type: array + description: Constraints on the application for or operation of the product such as minimum balances or limit thresholds + items: + $ref: '#/definitions/BankingProductConstraint' + eligibility: + type: array + description: Eligibility criteria for the product + items: + $ref: '#/definitions/BankingProductEligibility' + fees: + type: array + description: Fees applicable for the product + items: + $ref: '#/definitions/BankingProductFee' + depositRates: + type: array + description: Interest rates available for deposits + items: + $ref: '#/definitions/BankingProductDepositRate' + lendingRates: + type: array + description: Interest rates charged against lending balances + items: + $ref: '#/definitions/BankingProductLendingRateV2' + BankingProductBundle: + type: object + required: + - description + - name + properties: + name: + type: string + description: Name of the bundle + description: + type: string + description: Description of the bundle + additionalInfo: + type: string + description: Display text providing more information on the bundle + additionalInfoUri: + type: string + description: Link to a web page with more information on the bundle criteria and benefits + x-cds-type: URIString + productIds: + type: array + description: Array of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points + items: + type: string + x-cds-type: ASCIIString + BankingProductFeature: + type: object + required: + - featureType + properties: + featureType: + type: string + description: The type of feature described + enum: + - ADDITIONAL_CARDS + - BALANCE_TRANSFERS + - BILL_PAYMENT + - BONUS_REWARDS + - CARD_ACCESS + - COMPLEMENTARY_PRODUCT_DISCOUNTS + - DIGITAL_BANKING + - DIGITAL_WALLET + - DONATE_INTEREST + - FREE_TXNS + - FREE_TXNS_ALLOWANCE + - INSURANCE + - INTEREST_FREE + - INTEREST_FREE_TRANSFERS + - LOYALTY_PROGRAM + - NOTIFICATIONS + - NPP_ENABLED + - NPP_PAYID + - OFFSET + - OTHER + - OVERDRAFT + - REDRAW + - UNLIMITED_TXNS + additionalValue: + type: string + description: Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc) + additionalInfo: + type: string + description: Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to OTHER + additionalInfoUri: + type: string + description: Link to a web page with more information on this feature + x-cds-type: URIString + x-conditional: + - additionalValue + - additionalInfo + BankingProductConstraint: + type: object + required: + - constraintType + properties: + constraintType: + type: string + description: The type of constraint described. See the next section for an overview of valid values and their meaning + enum: + - MAX_BALANCE + - MAX_LIMIT + - MIN_BALANCE + - MIN_LIMIT + - OPENING_BALANCE + additionalValue: + type: string + description: Generic field containing additional information relevant to the [constraintType](#tocSproductconstrainttypedoc) specified. Whether mandatory or not is dependent on the value of [constraintType](#tocSproductconstrainttypedoc) + additionalInfo: + type: string + description: Display text providing more information the constraint + additionalInfoUri: + type: string + description: Link to a web page with more information on the constraint + x-cds-type: URIString + x-conditional: + - additionalValue + BankingProductEligibility: + type: object + required: + - eligibilityType + properties: + eligibilityType: + type: string + description: The type of eligibility criteria described. See the next section for an overview of valid values and their meaning + enum: + - BUSINESS + - EMPLOYMENT_STATUS + - MAX_AGE + - MIN_AGE + - MIN_INCOME + - MIN_TURNOVER + - NATURAL_PERSON + - OTHER + - PENSION_RECIPIENT + - RESIDENCY_STATUS + - STAFF + - STUDENT + additionalValue: + type: string + description: Generic field containing additional information relevant to the [eligibilityType](#tocSproducteligibilitytypedoc) specified. Whether mandatory or not is dependent on the value of [eligibilityType](#tocSproducteligibilitytypedoc) + additionalInfo: + type: string + description: Display text providing more information on the [eligibility](#tocSproducteligibilitytypedoc) criteria. Mandatory if the field is set to OTHER + additionalInfoUri: + type: string + description: Link to a web page with more information on this eligibility criteria + x-cds-type: URIString + x-conditional: + - additionalValue + - additionalInfo + BankingProductFee: + type: object + required: + - feeType + - name + properties: + name: + type: string + description: Name of the fee + feeType: + type: string + description: The type of fee + enum: + - DEPOSIT + - EVENT + - EXIT + - PAYMENT + - PERIODIC + - PURCHASE + - TRANSACTION + - UPFRONT + - VARIABLE + - WITHDRAWAL + amount: + type: string + description: The amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied + x-cds-type: AmountString + balanceRate: + type: string + description: A fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied. + x-cds-type: RateString + transactionRate: + type: string + description: A fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied + x-cds-type: RateString + accruedRate: + type: string + description: A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied + x-cds-type: RateString + accrualFrequency: + type: string + description: The indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + currency: + type: string + description: The currency the fee will be charged in. Assumes AUD if absent + x-cds-type: CurrencyString + additionalValue: + type: string + description: Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc) + additionalInfo: + type: string + description: Display text providing more information on the fee + additionalInfoUri: + type: string + description: Link to a web page with more information on this fee + x-cds-type: URIString + discounts: + type: array + description: An optional list of discounts to this fee that may be available + items: + $ref: '#/definitions/BankingProductDiscount' + x-conditional: + - additionalValue + - amount + - balanceRate + - transactionRate + - accruedRate + BankingProductDiscount: + type: object + required: + - description + - discountType + properties: + description: + type: string + description: Description of the discount + discountType: + type: string + description: The type of discount. See the next section for an overview of valid values and their meaning + enum: + - BALANCE + - DEPOSITS + - ELIGIBILITY_ONLY + - FEE_CAP + - PAYMENTS + amount: + type: string + description: Dollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. + x-cds-type: AmountString + balanceRate: + type: string + description: A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee + x-cds-type: RateString + transactionRate: + type: string + description: A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory + x-cds-type: RateString + accruedRate: + type: string + description: A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee + x-cds-type: RateString + feeRate: + type: string + description: A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee + x-cds-type: RateString + additionalValue: + type: string + description: Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc) + additionalInfo: + type: string + description: Display text providing more information on the discount + additionalInfoUri: + type: string + description: Link to a web page with more information on this discount + x-cds-type: URIString + eligibility: + type: array + description: Eligibility constraints that apply to this discount. Mandatory if ``discountType`` is ``ELIGIBILITY_ONLY``. + items: + $ref: '#/definitions/BankingProductDiscountEligibility' + x-conditional: + - accruedRate + - additionalValue + - amount + - balanceRate + - eligibility + - feeRate + - transactionRate + BankingProductDiscountEligibility: + type: object + required: + - discountEligibilityType + properties: + discountEligibilityType: + type: string + description: The type of the specific eligibility constraint for a discount + enum: + - BUSINESS + - EMPLOYMENT_STATUS + - INTRODUCTORY + - MAX_AGE + - MIN_AGE + - MIN_INCOME + - MIN_TURNOVER + - NATURAL_PERSON + - OTHER + - PENSION_RECIPIENT + - RESIDENCY_STATUS + - STAFF + - STUDENT + additionalValue: + type: string + description: Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc) + additionalInfo: + type: string + description: Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc) + additionalInfoUri: + type: string + description: Link to a web page with more information on this eligibility constraint + x-cds-type: URIString + x-conditional: + - additionalInfo + - additionalValue + BankingProductDepositRate: + type: object + required: + - depositRateType + - rate + properties: + depositRateType: + type: string + description: The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning + enum: + - BONUS + - BUNDLE_BONUS + - FIXED + - FLOATING + - INTRODUCTORY + - MARKET_LINKED + - VARIABLE + rate: + type: string + description: The rate to be applied + x-cds-type: RateString + calculationFrequency: + type: string + description: The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + applicationFrequency: + type: string + description: The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + tiers: + type: array + description: Rate tiers applicable for this rate + items: + $ref: '#/definitions/BankingProductRateTierV3' + additionalValue: + type: string + description: Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc) + additionalInfo: + type: string + description: Display text providing more information on the rate + additionalInfoUri: + type: string + description: Link to a web page with more information on this rate + x-cds-type: URIString + x-conditional: + - additionalValue + BankingProductLendingRateV2: + type: object + required: + - lendingRateType + - rate + properties: + lendingRateType: + type: string + description: The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning + enum: + - BUNDLE_DISCOUNT_FIXED + - BUNDLE_DISCOUNT_VARIABLE + - CASH_ADVANCE + - DISCOUNT + - FIXED + - FLOATING + - INTRODUCTORY + - MARKET_LINKED + - PENALTY + - PURCHASE + - VARIABLE + rate: + type: string + description: The rate to be applied + x-cds-type: RateString + comparisonRate: + type: string + description: A comparison rate equivalent for this rate + x-cds-type: RateString + calculationFrequency: + type: string + description: The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + applicationFrequency: + type: string + description: The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + interestPaymentDue: + type: string + description: When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered + enum: + - IN_ADVANCE + - IN_ARREARS + repaymentType: + type: string + description: Options in place for repayments. If absent, the lending rate is applicable to all repayment types + enum: + - INTEREST_ONLY + - PRINCIPAL_AND_INTEREST + loanPurpose: + type: string + description: The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes + enum: + - INVESTMENT + - OWNER_OCCUPIED + tiers: + type: array + description: Rate tiers applicable for this rate + items: + $ref: '#/definitions/BankingProductRateTierV3' + additionalValue: + type: string + description: Generic field containing additional information relevant to the [lendingRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [lendingRateType](#tocSproductlendingratetypedoc) + additionalInfo: + type: string + description: Display text providing more information on the rate. + additionalInfoUri: + type: string + description: Link to a web page with more information on this rate + x-cds-type: URIString + x-conditional: + - additionalValue + BankingProductRateTierV3: + type: object + required: + - minimumValue + - name + - unitOfMeasure + properties: + name: + type: string + description: A display name for the tier + unitOfMeasure: + type: string + 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) + enum: + - DAY + - DOLLAR + - MONTH + - PERCENT + minimumValue: + type: number + description: The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value + x-cds-type: Number + maximumValue: + type: number + 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.' + x-cds-type: Number + rateApplicationMethod: + type: string + description: The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps') + enum: + - PER_TIER + - WHOLE_BALANCE + applicabilityConditions: + $ref: '#/definitions/BankingProductRateCondition' + additionalInfo: + type: string + description: Display text providing more information on the rate tier. + additionalInfoUri: + type: string + description: Link to a web page with more information on this rate tier + x-cds-type: URIString + description: Defines the criteria and conditions for which a rate applies + BankingProductRateCondition: + type: object + properties: + additionalInfo: + type: string + description: Display text providing more information on the condition + additionalInfoUri: + type: string + description: Link to a web page with more information on this condition + x-cds-type: URIString + description: Defines a condition for the applicability of a tiered rate + ResponseBankingAccountList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingAccountList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + BankingAccount: + type: object + required: + - accountId + - displayName + - maskedNumber + - productCategory + - productName + properties: + accountId: + type: string + description: A unique ID of the account adhering to the standards for ID permanence + x-cds-type: ASCIIString + creationDate: + type: string + description: Date that the account was created (if known) + x-cds-type: DateString + displayName: + type: string + description: The display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the MaskedAccountString common type. + nickname: + type: string + description: A customer supplied nick name for the account + openStatus: + type: string + description: Open or closed status for the account. If not present then OPEN is assumed + default: OPEN + enum: + - CLOSED + - OPEN + isOwned: + type: boolean + description: Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then 'true' is assumed + default: true + x-cds-type: Boolean + maskedNumber: + type: string + description: A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number + x-cds-type: MaskedAccountString + productCategory: + $ref: '#/definitions/BankingProductCategory' + productName: + type: string + description: The unique identifier of the account as defined by the data holder (akin to model number for the account) + ResponseBankingAccountById: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/BankingAccountDetail' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + BankingAccountDetail: + allOf: + - $ref: '#/definitions/BankingAccount' + - type: object + properties: + bsb: + type: string + description: The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces + accountNumber: + type: string + description: The unmasked account number for the account. Should not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces + bundleName: + type: string + description: Optional field to indicate if this account is part of a bundle that is providing additional benefit for to the customer + specificAccountUType: + type: string + description: The type of structure to present account specific fields. + enum: + - creditCard + - loan + - termDeposit + termDeposit: + type: array + items: + $ref: '#/definitions/BankingTermDepositAccount' + creditCard: + $ref: '#/definitions/BankingCreditCardAccount' + loan: + $ref: '#/definitions/BankingLoanAccount' + depositRate: + type: string + description: current rate to calculate interest earned being applied to deposit balances as it stands at the time of the API call + x-cds-type: RateString + lendingRate: + type: string + description: The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call + x-cds-type: RateString + depositRates: + type: array + description: Fully described deposit rates for this account based on the equivalent structure in Product Reference + items: + $ref: '#/definitions/BankingProductDepositRate' + lendingRates: + type: array + description: Fully described deposit rates for this account based on the equivalent structure in Product Reference + items: + $ref: '#/definitions/BankingProductLendingRateV2' + features: + type: array + description: Array of features of the account based on the equivalent structure in Product Reference with the following additional field + items: + type: object + allOf: + - $ref: '#/definitions/BankingProductFeature' + - type: object + properties: + isActivated: + type: boolean + description: True if the feature is already activated and false if the feature is available for activation. Defaults to true if absent. (note this is an additional field appended to the feature object defined in the Product Reference payload) + default: true + x-cds-type: Boolean + fees: + type: array + description: Fees and charges applicable to the account based on the equivalent structure in Product Reference + items: + $ref: '#/definitions/BankingProductFee' + addresses: + type: array + description: The addresses for the account to be used for correspondence + items: + $ref: '#/definitions/CommonPhysicalAddress' + x-conditional: + - termDeposit + - creditCard + - loan + BankingTermDepositAccount: + type: object + required: + - lodgementDate + - maturityDate + - maturityInstructions + properties: + lodgementDate: + type: string + description: The lodgement date of the original deposit + x-cds-type: DateString + maturityDate: + type: string + description: Maturity date for the term deposit + x-cds-type: DateString + maturityAmount: + type: string + description: Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated + x-cds-type: AmountString + maturityCurrency: + type: string + description: If absent assumes AUD + x-cds-type: CurrencyString + maturityInstructions: + type: string + description: Current instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g. roll-over to the same term and frequency of interest payments + enum: + - HOLD_ON_MATURITY + - PAID_OUT_AT_MATURITY + - ROLLED_OVER + BankingCreditCardAccount: + type: object + required: + - minPaymentAmount + - paymentDueAmount + - paymentDueDate + properties: + minPaymentAmount: + type: string + description: The minimum payment amount due for the next card payment + x-cds-type: AmountString + paymentDueAmount: + type: string + description: The amount due for the next card payment + x-cds-type: AmountString + paymentCurrency: + type: string + description: If absent assumes AUD + x-cds-type: CurrencyString + paymentDueDate: + type: string + description: Date that the next payment for the card is due + x-cds-type: DateString + BankingLoanAccount: + type: object + required: + - loanEndDate + - nextInstalmentDate + - repaymentFrequency + properties: + originalStartDate: + type: string + description: Optional original start date for the loan + x-cds-type: DateString + originalLoanAmount: + type: string + description: Optional original loan value + x-cds-type: AmountString + originalLoanCurrency: + type: string + description: If absent assumes AUD + x-cds-type: CurrencyString + loanEndDate: + type: string + description: Date that the loan is due to be repaid in full + x-cds-type: DateString + nextInstalmentDate: + type: string + description: Next date that an instalment is required + x-cds-type: DateString + minInstalmentAmount: + type: string + description: Minimum amount of next instalment + x-cds-type: AmountString + minInstalmentCurrency: + type: string + description: If absent assumes AUD + x-cds-type: CurrencyString + maxRedraw: + type: string + description: Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account + x-cds-type: AmountString + maxRedrawCurrency: + type: string + description: If absent assumes AUD + x-cds-type: CurrencyString + minRedraw: + type: string + description: Minimum redraw amount + x-cds-type: AmountString + minRedrawCurrency: + type: string + description: If absent assumes AUD + x-cds-type: CurrencyString + offsetAccountEnabled: + type: boolean + description: Set to true if one or more offset accounts are configured for this loan account + x-cds-type: Boolean + offsetAccountIds: + type: array + description: The accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that offsetAccountEnabled is set to true but the offsetAccountIds field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation + items: + type: string + x-cds-type: ASCIIString + repaymentType: + type: string + description: Options in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST + default: PRINCIPAL_AND_INTEREST + enum: + - INTEREST_ONLY + - PRINCIPAL_AND_INTEREST + repaymentFrequency: + type: string + description: The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + ResponseBankingTransactionList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingTransactionList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + BankingTransaction: + type: object + required: + - accountId + - amount + - description + - isDetailAvailable + - reference + - status + - type + properties: + accountId: + type: string + description: ID of the account for which transactions are provided + x-cds-type: ASCIIString + transactionId: + type: string + description: A unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type + x-cds-type: ASCIIString + isDetailAvailable: + type: boolean + description: True if extended information is available using the transaction detail end point. False if extended data is not available + x-cds-type: Boolean + type: + type: string + description: The type of the transaction + enum: + - DIRECT_DEBIT + - FEE + - INTEREST_CHARGED + - INTEREST_PAID + - OTHER + - PAYMENT + - TRANSFER_INCOMING + - TRANSFER_OUTGOING + status: + type: string + description: Status of the transaction whether pending or posted. Note that there is currently no provision in the standards to guarantee the ability to correlate a pending transaction with an associated posted transaction + enum: + - PENDING + - POSTED + description: + type: string + description: The transaction description as applied by the financial institution + postingDateTime: + type: string + description: The time the transaction was posted. This field is Mandatory if the transaction has status POSTED. This is the time that appears on a standard statement + x-cds-type: DateTimeString + valueDateTime: + type: string + description: Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry + x-cds-type: DateTimeString + executionDateTime: + type: string + description: The time the transaction was executed by the originating customer, if available + x-cds-type: DateTimeString + amount: + type: string + description: The value of the transaction. Negative values mean money was outgoing from the account + x-cds-type: AmountString + currency: + type: string + description: The currency for the transaction amount. AUD assumed if not present + x-cds-type: CurrencyString + reference: + type: string + description: The reference for the transaction provided by the originating institution. Empty string if no data provided + merchantName: + type: string + description: Name of the merchant for an outgoing payment to a merchant + merchantCategoryCode: + type: string + description: The merchant category code (or MCC) for an outgoing payment to a merchant + billerCode: + type: string + description: BPAY Biller Code for the transaction (if available) + billerName: + type: string + description: Name of the BPAY biller for the transaction (if available) + crn: + type: string + description: BPAY CRN for the transaction (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type. + apcaNumber: + type: string + description: 6 Digit APCA number for the initiating institution. The field is fixed-width and padded with leading zeros if applicable. + x-conditional: + - transactionId + - postingDateTime + - crn + ResponseBankingTransactionById: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/BankingTransactionDetail' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + BankingTransactionDetail: + allOf: + - $ref: '#/definitions/BankingTransaction' + - type: object + required: + - extendedData + properties: + extendedData: + $ref: '#/definitions/BankingTransactionDetail_extendedData' + ResponseBankingAccountsBalanceList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingAccountsBalanceList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + ResponseBankingAccountsBalanceById: + required: + - data + - links + properties: + data: + $ref: '#/definitions/BankingBalance' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + BankingBalance: + type: object + required: + - accountId + - availableBalance + - currentBalance + properties: + accountId: + type: string + description: A unique ID of the account adhering to the standards for ID permanence + x-cds-type: ASCIIString + currentBalance: + type: string + description: The balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing + x-cds-type: AmountString + availableBalance: + type: string + description: Balance representing the amount of funds available for transfer. Assumed to be zero or positive + x-cds-type: AmountString + creditLimit: + type: string + description: Object representing the maximum amount of credit that is available for this account. Assumed to be zero if absent + x-cds-type: AmountString + amortisedLimit: + type: string + description: Object representing the available limit amortised according to payment schedule. Assumed to be zero if absent + x-cds-type: AmountString + currency: + type: string + description: The currency for the balance amounts. If absent assumed to be AUD + x-cds-type: CurrencyString + purses: + type: array + description: Optional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards + items: + $ref: '#/definitions/BankingBalancePurse' + BankingBalancePurse: + type: object + required: + - amount + properties: + amount: + type: string + description: The balance available for this additional currency purse + x-cds-type: AmountString + currency: + type: string + description: The currency for the purse + x-cds-type: CurrencyString + ResponseBankingPayeeList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingPayeeList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + ResponseBankingPayeeById: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/BankingPayeeDetail' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + BankingPayee: + type: object + required: + - nickname + - payeeId + - type + properties: + payeeId: + type: string + description: ID of the payee adhering to the rules of ID permanence + x-cds-type: ASCIIString + nickname: + type: string + description: The short display name of the payee as provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank for the payee consistent with existing digital banking channels + description: + type: string + description: A description of the payee provided by the customer + type: + type: string + description: The type of payee. DOMESTIC means a registered payee for domestic payments including NPP. INTERNATIONAL means a registered payee for international payments. BILLER means a registered payee for BPAY + enum: + - BILLER + - DOMESTIC + - INTERNATIONAL + creationDate: + type: string + description: The date the payee was created by the customer + x-cds-type: DateString + BankingPayeeDetail: + allOf: + - $ref: '#/definitions/BankingPayee' + - type: object + required: + - payeeUType + properties: + payeeUType: + type: string + description: Type of object included that describes the payee in detail + enum: + - biller + - domestic + - international + domestic: + $ref: '#/definitions/BankingDomesticPayee' + biller: + $ref: '#/definitions/BankingBillerPayee' + international: + $ref: '#/definitions/BankingInternationalPayee' + x-conditional: + - domestic + - biller + - international + BankingDomesticPayee: + type: object + required: + - payeeAccountUType + properties: + payeeAccountUType: + type: string + description: 'Type of account object included. Valid values are: **account** A standard Australian account defined by BSB/Account Number. **card** A credit or charge card to pay to (note that PANs are masked). **payId** A PayID recognised by NPP' + enum: + - account + - card + - payId + account: + $ref: '#/definitions/BankingDomesticPayeeAccount' + card: + $ref: '#/definitions/BankingDomesticPayeeCard' + payId: + $ref: '#/definitions/BankingDomesticPayeePayId' + x-conditional: + - account + - card + - payId + BankingDomesticPayeeAccount: + type: object + required: + - accountNumber + - bsb + properties: + accountName: + type: string + description: Name of the account to pay to + bsb: + type: string + description: BSB of the account to pay to + accountNumber: + type: string + description: Number of the account to pay to + BankingDomesticPayeeCard: + type: object + required: + - cardNumber + properties: + cardNumber: + type: string + description: Name of the account to pay to + x-cds-type: MaskedPANString + BankingDomesticPayeePayId: + type: object + required: + - identifier + - type + properties: + name: + type: string + description: The name assigned to the PayID by the owner of the PayID + identifier: + type: string + description: The identifier of the PayID (dependent on type) + type: + type: string + description: The type of the PayID + enum: + - ABN + - EMAIL + - ORG_IDENTIFIER + - TELEPHONE + BankingBillerPayee: + type: object + required: + - billerCode + - billerName + properties: + billerCode: + type: string + description: BPAY Biller Code of the Biller + crn: + type: string + description: BPAY CRN of the Biller (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type. + billerName: + type: string + description: Name of the Biller + x-conditional: + - crn + BankingInternationalPayee: + type: object + required: + - bankDetails + - beneficiaryDetails + properties: + beneficiaryDetails: + $ref: '#/definitions/BankingInternationalPayee_beneficiaryDetails' + bankDetails: + $ref: '#/definitions/BankingInternationalPayee_bankDetails' + ResponseBankingDirectDebitAuthorisationList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingDirectDebitAuthorisationList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + BankingDirectDebit: + type: object + required: + - accountId + - authorisedEntity + properties: + accountId: + type: string + description: A unique ID of the account adhering to the standards for ID permanence. + x-cds-type: ASCIIString + authorisedEntity: + $ref: '#/definitions/BankingAuthorisedEntity' + lastDebitDateTime: + type: string + description: The date and time of the last debit executed under this authorisation + x-cds-type: DateTimeString + lastDebitAmount: + type: string + description: The amount of the last debit executed under this authorisation + x-cds-type: AmountString + BankingAuthorisedEntity: + type: object + properties: + description: + type: string + description: Description of the authorised entity derived from previously executed direct debits + financialInstitution: + type: string + description: Name of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme + abn: + type: string + description: Australian Business Number for the authorised entity + acn: + type: string + description: Australian Company Number for the authorised entity + arbn: + type: string + description: Australian Registered Body Number for the authorised entity + ResponseBankingScheduledPaymentsList: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/definitions/ResponseBankingScheduledPaymentsList_data' + links: + $ref: '#/definitions/LinksPaginated' + meta: + $ref: '#/definitions/MetaPaginated' + BankingScheduledPayment: + type: object + required: + - from + - payerReference + - paymentSet + - recurrence + - scheduledPaymentId + - status + properties: + scheduledPaymentId: + type: string + description: A unique ID of the scheduled payment adhering to the standards for ID permanence + x-cds-type: ASCIIString + nickname: + type: string + description: The short display name of the scheduled payment as provided by the customer if provided. Where a customer has not provided a nickname, a display name derived by the bank for the scheduled payment should be provided that is consistent with existing digital banking channels + payerReference: + type: string + description: The reference for the transaction that will be used by the originating institution for the purposes of constructing a statement narrative on the payer’s account. Empty string if no data provided + payeeReference: + type: string + description: The reference for the transaction, if applicable, that will be provided by the originating institution for all payments in the payment set. Empty string if no data provided + status: + type: string + description: Indicates whether the schedule is currently active. The value SKIP is equivalent to ACTIVE except that the customer has requested the next normal occurrence to be skipped. + enum: + - ACTIVE + - INACTIVE + - SKIP + from: + $ref: '#/definitions/BankingScheduledPaymentFrom' + paymentSet: + type: array + items: + $ref: '#/definitions/BankingScheduledPaymentSet' + recurrence: + $ref: '#/definitions/BankingScheduledPaymentRecurrence' + x-conditional: + - payeeReference + BankingScheduledPaymentSet: + required: + - to + properties: + to: + $ref: '#/definitions/BankingScheduledPaymentTo' + isAmountCalculated: + type: boolean + description: Flag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then false is assumed + x-cds-type: Boolean + amount: + type: string + description: The amount of the next payment if known. Mandatory unless the isAmountCalculated field is set to true. Must be zero or positive if present + x-cds-type: AmountString + currency: + type: string + description: The currency for the payment. AUD assumed if not present + x-cds-type: CurrencyString + description: The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry + x-conditional: + - amount + BankingScheduledPaymentTo: + type: object + required: + - toUType + properties: + toUType: + type: string + description: The type of object provided that specifies the destination of the funds for the payment. + enum: + - accountId + - biller + - domestic + - international + - payeeId + accountId: + type: string + description: Present if toUType is set to accountId. Indicates that the payment is to another account that is accessible under the current consent + x-cds-type: ASCIIString + payeeId: + type: string + description: Present if toUType is set to payeeId. Indicates that the payment is to registered payee that can be accessed using the payee end point. If the Bank Payees scope has not been consented to then a payeeId should not be provided and the full payee details should be provided instead + x-cds-type: ASCIIString + nickname: + type: string + description: The short display name of the payee as provided by the customer unless toUType is set to payeeId. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels + payeeReference: + type: string + description: The reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level. + domestic: + $ref: '#/definitions/BankingDomesticPayee' + biller: + $ref: '#/definitions/BankingBillerPayee' + international: + $ref: '#/definitions/BankingInternationalPayee' + description: Object containing details of the destination of the payment. Used to specify a variety of payment destination types + x-conditional: + - accountId + - payeeId + - domestic + - biller + - international + - nickname + - payeeReference + BankingScheduledPaymentFrom: + type: object + required: + - accountId + properties: + accountId: + type: string + description: ID of the account that is the source of funds for the payment + x-cds-type: ASCIIString + description: Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object + BankingScheduledPaymentRecurrence: + type: object + required: + - recurrenceUType + properties: + nextPaymentDate: + type: string + description: The date of the next payment under the recurrence schedule + x-cds-type: DateString + recurrenceUType: + type: string + description: The type of recurrence used to define the schedule + enum: + - eventBased + - intervalSchedule + - lastWeekDay + - onceOff + onceOff: + $ref: '#/definitions/BankingScheduledPaymentRecurrenceOnceOff' + intervalSchedule: + $ref: '#/definitions/BankingScheduledPaymentRecurrenceIntervalSchedule' + lastWeekDay: + $ref: '#/definitions/BankingScheduledPaymentRecurrenceLastWeekday' + eventBased: + $ref: '#/definitions/BankingScheduledPaymentRecurrenceEventBased' + description: Object containing the detail of the schedule for the payment + x-conditional: + - onceOff + - intervalSchedule + - lastWeekDay + - eventBased + BankingScheduledPaymentRecurrenceOnceOff: + type: object + required: + - paymentDate + properties: + paymentDate: + type: string + description: The scheduled date for the once off payment + x-cds-type: DateString + description: Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff + BankingScheduledPaymentRecurrenceIntervalSchedule: + type: object + required: + - intervals + properties: + finalPaymentDate: + type: string + description: The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely + x-cds-type: DateString + paymentsRemaining: + type: integer + example: 1 + description: Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely + x-cds-type: PositiveInteger + nonBusinessDayTreatment: + type: string + description: Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored + default: ON + enum: + - AFTER + - BEFORE + - ON + - ONLY + intervals: + type: array + description: An array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry + items: + $ref: '#/definitions/BankingScheduledPaymentInterval' + description: Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule + BankingScheduledPaymentInterval: + type: object + required: + - interval + properties: + interval: + type: string + description: An interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate + x-cds-type: ExternalRef + dayInInterval: + type: string + description: Uses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is P1D. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday. + x-cds-type: ExternalRef + BankingScheduledPaymentRecurrenceLastWeekday: + type: object + required: + - interval + - lastWeekDay + properties: + finalPaymentDate: + type: string + description: The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely + x-cds-type: DateString + paymentsRemaining: + type: integer + example: 1 + description: Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely + x-cds-type: PositiveInteger + interval: + type: string + description: The interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate + x-cds-type: ExternalRef + lastWeekDay: + type: string + description: The weekDay specified. The payment will occur on the last occurrence of this weekday in the interval. + enum: + - FRI + - MON + - SAT + - SUN + - THU + - TUE + - WED + nonBusinessDayTreatment: + type: string + description: Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored + default: ON + enum: + - AFTER + - BEFORE + - ON + - ONLY + description: Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay + BankingScheduledPaymentRecurrenceEventBased: + type: object + required: + - description + properties: + description: + type: string + description: Description of the event and conditions that will result in the payment. Expected to be formatted for display to a customer + description: Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased + ResponseCommonDiscoveryStatus: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/ResponseCommonDiscoveryStatus_data' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + ResponseDiscoveryOutagesList: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/ResponseDiscoveryOutagesList_data' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + DiscoveryOutage: + type: object + required: + - duration + - explanation + - outageTime + properties: + outageTime: + type: string + description: Date and time that the outage is scheduled to begin + x-cds-type: DateTimeString + duration: + type: string + description: Planned duration of the outage. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) + x-cds-type: ExternalRef + isPartial: + type: boolean + description: Flag that indicates, if present and set to true, that the outage is only partial meaning that only a subset of normally available end points will be affected by the outage + x-cds-type: Boolean + explanation: + type: string + description: Provides an explanation of the current outage that can be displayed to an end customer + ResponseCommonCustomer: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/ResponseCommonCustomer_data' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + x-conditional: + - person + - organisation + ResponseCommonCustomerDetail: + type: object + required: + - data + - links + properties: + data: + $ref: '#/definitions/ResponseCommonCustomerDetail_data' + links: + $ref: '#/definitions/Links' + meta: + $ref: '#/definitions/Meta' + x-conditional: + - person + - organisation + CommonPerson: + type: object + required: + - lastName + - middleNames + properties: + lastUpdateTime: + type: string + description: The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data + x-cds-type: DateTimeString + firstName: + type: string + description: For people with single names this field need not be present. The single name should be in the lastName field + lastName: + type: string + description: For people with single names the single name should be in this field + middleNames: + type: array + description: Field is mandatory but array may be empty + items: + type: string + prefix: + type: string + description: Also known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc) + suffix: + type: string + description: Used for a trailing suffix to the name (e.g. Jr) + occupationCode: + type: string + description: Value is a valid [ANZSCO](http://www.abs.gov.au/ANZSCO) Standard Occupation classification code. If the occupation code held by the data holder is not one of the supported [ANZSCO](http://www.abs.gov.au/ANZSCO) versions, then it must not be supplied. + x-cds-type: ExternalRef + occupationCodeVersion: + type: string + description: The applicable [ANZSCO](http://www.abs.gov.au/ANZSCO) release version of the occupation code provided. Mandatory if an ``occupationCode`` is supplied. If ``occupationCode`` is supplied but ``occupationCodeVersion`` is absent, default is ``ANZSCO_1220.0_2013_V1.2`` + default: ANZSCO_1220.0_2013_V1.2 + enum: + - ANZSCO_1220.0_2006_V1.0 + - ANZSCO_1220.0_2006_V1.1 + - ANZSCO_1220.0_2013_V1.2 + - ANZSCO_1220.0_2013_V1.3 + x-conditional: + - occupationCodeVersion + CommonPersonDetail: + allOf: + - $ref: '#/definitions/CommonPerson' + - type: object + required: + - emailAddresses + - phoneNumbers + - physicalAddresses + properties: + phoneNumbers: + type: array + description: Array is mandatory but may be empty if no phone numbers are held + items: + $ref: '#/definitions/CommonPhoneNumber' + emailAddresses: + type: array + description: May be empty + items: + $ref: '#/definitions/CommonEmailAddress' + physicalAddresses: + type: array + description: Must contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail + items: + $ref: '#/definitions/CommonPhysicalAddressWithPurpose' + CommonOrganisation: + type: object + required: + - agentLastName + - agentRole + - businessName + - organisationType + properties: + lastUpdateTime: + type: string + description: The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data + x-cds-type: DateTimeString + agentFirstName: + type: string + description: The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present. The single name should be in the lastName field + agentLastName: + type: string + description: The last name of the individual providing access on behalf of the organisation. For people with single names the single name should be in this field + agentRole: + type: string + description: The role of the individual identified as the agent who is providing authorisation. Expected to be used for display. Default to Unspecified if the role is not known + businessName: + type: string + description: Name of the organisation + legalName: + type: string + description: Legal name, if different to the business name + shortName: + type: string + description: Short name used for communication, if different to the business name + abn: + type: string + description: Australian Business Number for the organisation + acn: + type: string + description: Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type + isACNCRegistered: + type: boolean + description: True if registered with the ACNC. False if not. Absent or null if not confirmed. + x-cds-type: Boolean + industryCode: + type: string + description: A valid [ANZSIC](http://www.abs.gov.au/ANZSIC) code for the organisation. If the industry code held by the data holder is not one of the supported [ANZSIC](http://www.abs.gov.au/ANZSIC) versions, then it must not be supplied. + x-cds-type: ExternalRef + industryCodeVersion: + type: string + description: The applicable [ANZSIC](http://www.abs.gov.au/ANZSIC) release version of the industry code provided. Should only be supplied if ``industryCode`` is also supplied. If ``industryCode`` is supplied but ``industryCodeVersion`` is absent, default is ``ANZSIC_1292.0_2006_V2.0`` + default: ANZSIC_1292.0_2006_V2.0 + enum: + - ANZSIC_1292.0_2006_V1.0 + - ANZSIC_1292.0_2006_V2.0 + organisationType: + type: string + description: Legal organisation type + enum: + - COMPANY + - GOVERNMENT_ENTITY + - OTHER + - PARTNERSHIP + - SOLE_TRADER + - TRUST + registeredCountry: + type: string + description: Enumeration with values from [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country codes. Assumed to be AUS if absent + x-cds-type: ExternalRef + establishmentDate: + type: string + description: The date the organisation described was established + x-cds-type: DateString + x-conditional: + - industryCodeVersion + CommonOrganisationDetail: + allOf: + - $ref: '#/definitions/CommonOrganisation' + - type: object + required: + - physicalAddresses + properties: + physicalAddresses: + type: array + description: Must contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail + items: + $ref: '#/definitions/CommonPhysicalAddressWithPurpose' + CommonPhoneNumber: + type: object + required: + - fullNumber + - number + - purpose + properties: + isPreferred: + type: boolean + description: May be true for one and only one entry to indicate the preferred phone number. Assumed to be 'false' if not present + x-cds-type: Boolean + purpose: + type: string + description: The purpose of the number as specified by the customer + enum: + - HOME + - INTERNATIONAL + - MOBILE + - OTHER + - UNSPECIFIED + - WORK + countryCode: + type: string + description: If absent, assumed to be Australia (+61). The + should be included + areaCode: + type: string + description: Required for non Mobile Phones, if field is present and refers to Australian code - the leading 0 should be omitted. + number: + type: string + description: The actual phone number, with leading zeros as appropriate + extension: + type: string + description: An extension number (if applicable) + fullNumber: + type: string + description: Fully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of [RFC 3966](https://www.ietf.org/rfc/rfc3966.txt) + x-cds-type: ExternalRef + x-conditional: + - areaCode + CommonEmailAddress: + type: object + required: + - address + - purpose + properties: + isPreferred: + type: boolean + description: May be true for one and only one email record in the collection. Denotes the default email address + x-cds-type: Boolean + purpose: + type: string + description: The purpose for the email, as specified by the customer (Enumeration) + enum: + - HOME + - OTHER + - UNSPECIFIED + - WORK + address: + type: string + description: A correctly formatted email address, as defined by the addr_spec format in [RFC 5322](https://www.ietf.org/rfc/rfc5322.txt) + x-cds-type: ExternalRef + CommonPhysicalAddressWithPurpose: + allOf: + - $ref: '#/definitions/CommonPhysicalAddress' + - type: object + required: + - purpose + properties: + purpose: + type: string + description: Enumeration of values indicating the purpose of the physical address + enum: + - MAIL + - OTHER + - PHYSICAL + - REGISTERED + - WORK + CommonPhysicalAddress: + type: object + required: + - addressUType + properties: + addressUType: + type: string + description: The type of address object present + enum: + - paf + - simple + simple: + $ref: '#/definitions/CommonSimpleAddress' + paf: + $ref: '#/definitions/CommonPAFAddress' + x-conditional: + - simple + - paf + CommonSimpleAddress: + type: object + required: + - addressLine1 + - city + - state + properties: + mailingName: + type: string + description: Name of the individual or business formatted for inclusion in an address used for physical mail + addressLine1: + type: string + description: First line of the standard address object + addressLine2: + type: string + description: Second line of the standard address object + addressLine3: + type: string + description: Third line of the standard address object + postcode: + type: string + description: Mandatory for Australian addresses + city: + type: string + description: Name of the city or locality + state: + type: string + description: Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT + country: + type: string + description: A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present. + default: AUS + x-cds-type: ExternalRef + x-conditional: + - postcode + CommonPAFAddress: + type: object + required: + - localityName + - postcode + - state + properties: + dpid: + type: string + description: Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier + thoroughfareNumber1: + type: integer + description: Thoroughfare number for a property (first number in a property ranged address) + x-cds-type: PositiveInteger + thoroughfareNumber1Suffix: + type: string + description: Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated + thoroughfareNumber2: + type: integer + description: Second thoroughfare number (only used if the property has a ranged address eg 23-25) + x-cds-type: PositiveInteger + thoroughfareNumber2Suffix: + type: string + description: Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated + flatUnitType: + type: string + description: Type of flat or unit for the address + flatUnitNumber: + type: string + description: Unit number (including suffix, if applicable) + floorLevelType: + type: string + description: Type of floor or level for the address + floorLevelNumber: + type: string + description: Floor or level number (including alpha characters) + lotNumber: + type: string + description: Allotment number for the address + buildingName1: + type: string + description: Building/Property name 1 + buildingName2: + type: string + description: Building/Property name 2 + streetName: + type: string + description: The name of the street + streetType: + type: string + description: The street type. Valid enumeration defined by Australia Post PAF code file + streetSuffix: + type: string + description: The street type suffix. Valid enumeration defined by Australia Post PAF code file + postalDeliveryType: + type: string + description: Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file + postalDeliveryNumber: + type: integer + description: Postal delivery number if the address is a postal delivery type + x-cds-type: PositiveInteger + postalDeliveryNumberPrefix: + type: string + description: Postal delivery number prefix related to the postal delivery number + postalDeliveryNumberSuffix: + type: string + description: Postal delivery number suffix related to the postal delivery number + localityName: + type: string + description: Full name of locality + postcode: + type: string + description: Postcode for the locality + state: + type: string + description: State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT + description: Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) + Links: + type: object + required: + - self + properties: + self: + type: string + description: Fully qualified link that generated the current response document + x-cds-type: URIString + Meta: + type: object + LinksPaginated: + type: object + required: + - self + properties: + self: + type: string + description: Fully qualified link that generated the current response document + x-cds-type: URIString + first: + type: string + description: URI to the first page of this set. Mandatory if this response is not the first page + x-cds-type: URIString + prev: + type: string + description: URI to the previous page of this set. Mandatory if this response is not the first page + x-cds-type: URIString + next: + type: string + description: URI to the next page of this set. Mandatory if this response is not the last page + x-cds-type: URIString + last: + type: string + description: URI to the last page of this set. Mandatory if this response is not the last page + x-cds-type: URIString + x-conditional: + - prev + - next + - first + - last + MetaPaginated: + type: object + required: + - totalPages + - totalRecords + properties: + totalRecords: + type: integer + description: The total number of records in the full set. See [pagination](#pagination). + x-cds-type: NaturalNumber + totalPages: + type: integer + description: The total number of pages in the full set. See [pagination](#pagination). + x-cds-type: NaturalNumber + ResponseErrorList: + type: object + required: + - errors + properties: + errors: + type: array + items: + $ref: '#/definitions/ResponseErrorList_errors' + BankingProductCategory: + type: string + description: The category to which a product or account belongs. See [here](#product-categories) for more details + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + RequestAccountIds_data: + required: + - accountIds + properties: + accountIds: + type: array + items: + type: string + description: Array of specific accountIds to obtain authorisations for + x-cds-type: ASCIIString + ResponseBankingProductList_data: + required: + - products + properties: + products: + type: array + description: The list of products returned. If the filter results in an empty set then this array may have no records + items: + $ref: '#/definitions/BankingProductV3' + BankingProductV3_additionalInformation: + properties: + overviewUri: + type: string + description: General overview of the product + x-cds-type: URIString + termsUri: + type: string + description: Terms and conditions for the product + x-cds-type: URIString + eligibilityUri: + type: string + description: Eligibility rules and criteria for the product + x-cds-type: URIString + feesAndPricingUri: + type: string + description: Description of fees, pricing, discounts, exemptions and bonuses for the product + x-cds-type: URIString + bundleUri: + type: string + description: Description of a bundle that this product can be part of + x-cds-type: URIString + description: Object that contains links to additional information on specific topics + BankingProductV3_cardArt: + required: + - imageUri + properties: + title: + type: string + description: Display label for the specific image + imageUri: + type: string + description: URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI [RFC 2397](https://tools.ietf.org/html/rfc2397) + x-cds-type: URIString + ResponseBankingAccountList_data: + required: + - accounts + properties: + accounts: + type: array + description: The list of accounts returned. If the filter results in an empty set then this array may have no records + items: + $ref: '#/definitions/BankingAccount' + ResponseBankingTransactionList_data: + required: + - transactions + properties: + transactions: + type: array + items: + $ref: '#/definitions/BankingTransaction' + BankingTransactionDetail_extendedData_x2p101Payload: + required: + - extendedDescription + properties: + extendedDescription: + type: string + description: An extended string description. Only present if specified by the extensionUType field + endToEndId: + type: string + description: An end to end ID for the payment created at initiation + purposeCode: + type: string + description: Purpose of the payment. Format is defined by NPP standards for the x2p1.01 overlay service + BankingTransactionDetail_extendedData: + required: + - service + properties: + payer: + type: string + description: Label of the originating payer. Mandatory for inbound payment + payee: + type: string + description: Label of the target PayID. Mandatory for an outbound payment. The name assigned to the BSB/Account Number or PayID (by the owner of the PayID) + extensionUType: + type: string + description: Optional extended data provided specific to transaction originated via NPP + enum: + - x2p101Payload + x2p101Payload: + $ref: '#/definitions/BankingTransactionDetail_extendedData_x2p101Payload' + service: + type: string + description: 'Identifier of the applicable overlay service. Valid values are: X2P1.01' + enum: + - X2P1.01 + ResponseBankingAccountsBalanceList_data: + required: + - balances + properties: + balances: + type: array + description: The list of balances returned + items: + $ref: '#/definitions/BankingBalance' + ResponseBankingPayeeList_data: + required: + - payees + properties: + payees: + type: array + description: The list of payees returned + items: + $ref: '#/definitions/BankingPayee' + BankingInternationalPayee_beneficiaryDetails: + required: + - country + properties: + name: + type: string + description: Name of the beneficiary + country: + type: string + description: Country where the beneficiary resides. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code + x-cds-type: ExternalRef + message: + type: string + description: Response message for the payment + BankingInternationalPayee_bankDetails_bankAddress: + required: + - address + - name + properties: + name: + type: string + description: Name of the recipient Bank + address: + type: string + description: Address of the recipient Bank + BankingInternationalPayee_bankDetails: + required: + - accountNumber + - country + properties: + country: + type: string + description: Country of the recipient institution. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code + x-cds-type: ExternalRef + accountNumber: + type: string + description: Account Targeted for payment + bankAddress: + $ref: '#/definitions/BankingInternationalPayee_bankDetails_bankAddress' + beneficiaryBankBIC: + type: string + description: Swift bank code. Aligns with standard [ISO 9362](https://www.iso.org/standard/60390.html) + x-cds-type: ExternalRef + fedWireNumber: + type: string + description: Number for Fedwire payment (Federal Reserve Wire Network) + sortCode: + type: string + description: Sort code used for account identification in some jurisdictions + chipNumber: + type: string + description: Number for the Clearing House Interbank Payments System + routingNumber: + type: string + description: International bank routing number + legalEntityIdentifier: + type: string + description: The legal entity identifier (LEI) for the beneficiary. Aligns with [ISO 17442](https://www.iso.org/standard/59771.html) + x-cds-type: ExternalRef + ResponseBankingDirectDebitAuthorisationList_data: + required: + - directDebitAuthorisations + properties: + directDebitAuthorisations: + type: array + description: The list of authorisations returned + items: + $ref: '#/definitions/BankingDirectDebit' + ResponseBankingScheduledPaymentsList_data: + required: + - scheduledPayments + properties: + scheduledPayments: + type: array + description: The list of scheduled payments to return + items: + $ref: '#/definitions/BankingScheduledPayment' + ResponseCommonDiscoveryStatus_data: + required: + - status + - updateTime + properties: + status: + type: string + description: Enumeration with values. OK (implementation is fully functional). PARTIAL_FAILURE (one or more end points are unexpectedly unavailable). UNAVAILABLE (the full implementation is unexpectedly unavailable). SCHEDULED_OUTAGE (an advertised outage is in effect) + enum: + - OK + - PARTIAL_FAILURE + - SCHEDULED_OUTAGE + - UNAVAILABLE + explanation: + type: string + description: Provides an explanation of the current outage that can be displayed to an end customer. Mandatory if the status property is any value other than OK + detectionTime: + type: string + description: The date and time that the current outage was detected. Should only be present if the status property is PARTIAL_FAILURE or UNAVAILABLE + x-cds-type: DateTimeString + expectedResolutionTime: + type: string + description: The date and time that full service is expected to resume (if known). Should not be present if the status property has a value of OK. + x-cds-type: DateTimeString + updateTime: + type: string + description: The date and time that this status was last updated by the Data Holder. + x-cds-type: DateTimeString + ResponseDiscoveryOutagesList_data: + required: + - outages + properties: + outages: + type: array + description: List of scheduled outages. Property is mandatory but may contain and empty list if no outages are scheduled + items: + $ref: '#/definitions/DiscoveryOutage' + ResponseCommonCustomer_data: + required: + - customerUType + properties: + customerUType: + type: string + description: The type of customer object that is present + enum: + - organisation + - person + person: + $ref: '#/definitions/CommonPerson' + organisation: + $ref: '#/definitions/CommonOrganisation' + ResponseCommonCustomerDetail_data: + required: + - customerUType + properties: + customerUType: + type: string + description: The type of customer object that is present + enum: + - organisation + - person + person: + $ref: '#/definitions/CommonPersonDetail' + organisation: + $ref: '#/definitions/CommonOrganisationDetail' + ResponseErrorList_errors: + required: + - code + - detail + - title + properties: + code: + type: string + description: 'Must be one of the following: 0001 – Account not able to be found' + title: + type: string + description: 'Must be one of the following: Invalid account' + detail: + type: string + description: ID of the account not found + meta: + type: object + description: Optional additional data for specific error types + properties: {} +parameters: + RequestHeader_x-v: + name: x-v + in: header + 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) + required: true + type: string + RequestHeader_x-min-v: + name: x-min-v + in: header + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. + required: false + type: string + RequestHeader_x-fapi-interaction-id: + name: x-fapi-interaction-id + in: header + description: An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction. + required: false + type: string + RequestHeader_x-fapi-auth-date: + name: x-fapi-auth-date + in: header + description: The time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls. + required: false + type: string + RequestHeader_x-fapi-customer-ip-address: + name: x-fapi-customer-ip-address + in: header + description: The customer's original IP address if the customer is currently logged in to the data recipient. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls. + required: false + type: string + RequestHeader_x-cds-client-headers: + name: x-cds-client-headers + in: header + description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the data recipient. Mandatory for customer present calls. Not required for unattended or unauthenticated calls. + required: false + type: string + x-cds-type: Base64 + ParamAccountOpenStatus: + name: open-status + in: query + description: Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed + required: false + type: string + default: ALL + enum: + - ALL + - CLOSED + - OPEN + ParamProductCategory: + name: product-category + in: query + description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. + required: false + type: string + enum: + - BUSINESS_LOANS + - CRED_AND_CHRG_CARDS + - LEASES + - MARGIN_LOANS + - OVERDRAFTS + - PERS_LOANS + - REGULATED_TRUST_ACCOUNTS + - RESIDENTIAL_MORTGAGES + - TERM_DEPOSITS + - TRADE_FINANCE + - TRANS_AND_SAVINGS_ACCOUNTS + - TRAVEL_CARDS + ParamAccountIsOwned: + name: is-owned + in: query + description: Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts + required: false + type: boolean + x-cds-type: Boolean + ParamPage: + name: page + in: query + description: Page of results to request (standard pagination) + required: false + type: integer + default: 1 + x-cds-type: PositiveInteger + ParamPageSize: + name: page-size + in: query + description: Page size to request. Default is 25 (standard pagination) + required: false + type: integer + default: 25 + x-cds-type: PositiveInteger + ParamTransactionNewestTime: + name: newest-time + in: query + description: Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type + required: false + type: string + x-cds-type: DateTimeString + ParamTransactionOldestTime: + name: oldest-time + in: query + description: Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type + required: false + type: string + x-cds-type: DateTimeString + ParamTransactionMinAmount: + name: min-amount + in: query + description: Filter transactions to only transactions with amounts higher or equal to than this amount + required: false + type: string + x-cds-type: AmountString + ParamTransactionMaxAmount: + name: max-amount + in: query + description: Filter transactions to only transactions with amounts less than or equal to than this amount + required: false + type: string + x-cds-type: AmountString + ParamTransactionText: + name: text + in: query + description: Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not) + required: false + type: string diff --git a/docs/archive/standards-1.8.0/docs/index.html b/docs/archive/standards-1.8.0/docs/index.html new file mode 100644 index 00000000..165c6304 --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/index.html @@ -0,0 +1,19656 @@ + + + + + + + + Consumer Data Standards + + + + + + + + + + + + NAV + Navbar + + +
+ + +
    + + +
    +
    +
    +
    +

    Introduction

    +

    These standards have been developed as part of the Australian Government's introduction of the Consumer Data Right legislation to give Australians greater control over their data.

    + +

    The Consumer Data Right (CDR) is intended to be applied sector by sector across the whole economy, beginning in the banking, energy and telecommunications sectors. These standards have been developed to facilitate the Consumer Data Right by acting as a specific baseline for implementation.

    + +

    CSIRO’s Data61 has been appointed as the Data Standards Body (DSB) for the CDR regime. These standards have been prepared by the DSB. The work of the team is overseen by the Data Standards Chair, Mr. Andrew Stevens, with industry and consumer advice provided by an Advisory Committee. The work of standards development is conducted in close consultation with the Australian Competition and Consumer Commission (ACCC) as lead regulator of the Consumer Data Right, supported by the Office of the Australian Information Commissioner (OAIC).

    + +

    The standards are required to be published. The obligations on CDR participants to apply the published standards commence on the commencement of the Consumer Data Right rules:

    + +
      +
    • where the rules require compliance with the standards, non-compliance with the standards may constitute a breach of the rules.
    • +
    • where the standards are specified as binding standards as required by the Consumer Data Right rules for the purposes of s56FA of the legislation, they apply as under contract between a data holder and an accredited data recipient. The legal effect of binding standards as between data holders and accredited data recipients is fully set out in s56FD and s56FE of the legislation.
    • +
    +

    Future Dated Obligations

    +

    The standards, as published from time to time, may include specific statements indicating that a specific section of the standards will not take effect until a future date or may cease to have effect on some future date.

    + +

    The table below highlights these areas of the standards.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SectionDescriptionApplicable Date
    Non-functional RequirementsThe non-functional requirements for the CDR regime are documented but are not yet binding with no specific future binding date being set as yetNot yet specified
    Get Product Detail V3Version 3 of this end point must be made available by affected data holders by the end of February 2021February 28th 2021
    Get Product Detail V2Version 2 of this end point must be made available by affected data holders by the end of July 2020July 31st 2020
    Get Product Detail V1Data holders may obsolete version 1 of this end point from August 29th 2020. Data recipients must upgrade their implementations to use version 2 by this timeAugust 29th 2020
    Get Products V3Version 3 of this end point must be made available by affected data holders by the end of February 2021February 28th 2021
    Get Products V2Version 2 of this end point must be made available by affected data holders by the end of July 2020July 31st 2020
    Get Products V1Data holders may obsolete version 1 of this end point from August 29th 2020. Data recipients must upgrade their implementations to use version 2 by this timeAugust 29th 2020
    Concurrent ConsentThe target state concurrent consent solution covers various components of the Information Security profile is being phased in with alignment to the November 2020 implementation milestone set by the ACCC. If this milestone moves then this obligation will also move.November 1st 2020
    Token Revocation End PointData recipients may obsolete this end point from February 1st 2021.
    Data holders may obsolete consent revocation via this end point from February 1st 2021, however they must still support oAuth token revocation. Data recipients must upgrade their implementations to use the Data Holder CDR Arrangement Revocation End Point by this time.
    February 1st 2021
    Get Metrics V2Version 2 of this end point must be made available by affected data holders by the end of July 2021July 31st 2021
    Token Introspection claimsWhilst Data Holders must conform with the FAPI normative references, requiring the scope claim, the standards were clarified in v1.5.0 to clarify the minimum required set of claims to be supported by the Token Introspection end point. Data holders must support the scope claim not later than February 1st 2021February 1st 2021
    Client Authentication for Data Recipients calling Data HolderClient Authentication has been updated to align to upstream standards. From March 30th 2021, Data Holders must support multiple valid values for the audience claim for Data Recipient client authentication as outlined in that section. Data Recipients may continue to supply the URL of the endpoint being invoked, however according to upstream standards, it is recommended according to [RFC8414] that issuer identifier URL of the authorisation server should be used as the value of the audience.
    Until March 31st 2021, Data Recipients must continue to use the URL of the endpoint being invoked as the audience claim value. Data Holders must continue to accept and validate the URL of the endpoint being invoked.
    March 30th 2021
    Get Customer V1Data Holders providing valid ANZSIC and ANZSCO codes whose version is not ANZSIC_1292.0_2006_V2.0 and ANZSCO_1220.0_2013_V1.2 respectively must supply the appropriate version enumeration no later than July 1st 2021. The version codes allow data holders to reference the applicable document versions for the codes they hold.July 1st 2021
    Banking Term Deposit Account TypesData Holders who support maturity instructions for term deposits whereby funds are held in a facility or similar mechanism upon maturity must update relevant product data no later than July 1st 2021July 1st 2021
    Token Introspection Endpoint claimsMandatory claims were updated in accordance with RFC7662November 1st 2020
    Amending ConsentData Holders MAY implement the following standards from July 1st 2021 when a CDR consumer is invited to amend a current authorisation as per rule 4.22A and the ADR has supplied a cdr_arrangement_idJuly 1st 2021
    Amending ConsentData Holders MUST implement the following standards from November 1st 2021 when a CDR consumer is invited to amend a current authorisation as per rule 4.22A and the ADR has supplied a cdr_arrangement_idNovember 1st 2021
    +

    Endpoint Version Schedule

    +

    A table-view of all endpoint versioning is available here.

    + +

    Please note this is currently experimental.

    +

    Standards

    +

    These standards represent version 1.8.0 of the high level standards. See the versioning section for more information on how versions are managed in the standard.

    + +

    Note that, in this proposal, the key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL are to be interpreted as described in RFC2119.

    + +

    Principles

    + +

    The following principles, classified as Outcome Principles and Technical Principles, are the basis for the development of the standards for the Consumer Data Right.

    + +

    Outcome Principles

    + +

    These principles articulate qualitative outcomes that the API definitions should seek to deliver.

    + +

    Outcome Principle 1: APIs are secure

    + +

    The API definitions will consider and incorporate the need for a high degree of security to protect customer data. This includes the risk of technical breach but also additional concerns of inadvertent data leakage through overly broad data payloads and scopes. The security of customer data is a first order outcome that the API standards must seek to deliver.

    + +

    Outcome Principle 2: APIs use open standards

    + +

    In order to promote widespread adoption, open standards that are robust and widely used in the industry will be used wherever possible.

    + +

    Outcome Principle 3: Data sharing provides a positive consumer experience

    + +

    The standards will ensure that CDR consumers have simple, informed, and trustworthy data +sharing experiences that provide them with positive outcomes over the short and long term.

    + +

    Outcome Principle 4: APIs provide a good developer experience

    + +

    To ensure that the entry hurdle for new developers is low the experience of the developers that are building clients using the APIs will be considered. The ability for a developer to easily understand and write code using the APIs in modern development environments should be facilitated by the API standards.

    + +

    Outcome Principle 5: Standards are consistent across sectors

    + +

    The standards will strive for consistency in patterns, structure, security mechanisms and +user experience across sectors to facilitate the development of customer experiences and +services that are able to integrate data from multiple sectors seamlessly and to reduce the +cost of customer education for new sectors.

    + +

    Technical Principles

    + +

    These principles articulate specific technical outcomes that the API definitions should seek to deliver.

    + +

    Technical Principle 1: APIs are RESTful

    + +

    The API standards will adhere to RESTful API concepts where possible and sensible to do so. In particular the concepts of statelessness and resource orientation will be followed.

    + +

    Technical Principle 2: APIs are implementation agnostic

    + +

    The underlying implementation of the APIs should not be constrained or driven by the API definitions and standards. Conversely, the underlying implementation choices should not be visible or derivable to the client applications using the APIs.

    + +

    Technical Principle 3: APIs are simple

    + +

    As complexity will increase implementation costs for both holders and clients as well as reduce the utility of the APIs, API definitions should seek to be as simple as possible but no simpler.

    + +

    Technical Principle 4: APIs are rich in capability

    + +

    As the APIs are defined care should be taken to ensure that the data payloads defined represent rich data sets that can be used in many scenarios, including scenarios not necessarily front of mind during the design process.

    + +

    Technical Principle 5: APIs are performant

    + +

    The API definitions should consider and incorporate performance implications during design ensuring that repeated calls are not necessary for simple use cases and that payload sizes do not introduce performance issues.

    + +

    Technical Principle 6: APIs are consistent

    + +

    The API definitions across the full suite of APIs should be consistent with each other as much as possible. Where possible common data structures and patterns should be defined and reused.

    + +

    Technical Principle 7: APIs are version controlled and backwards compatible

    + +

    As the API definitions evolve care will be taken to ensure the operation of existing clients are protected when breaking changes occur. Breaking changes will be protected by a well-defined version control model and by a policy of maintaining previous versions for a period of time to allow for backwards compatibility.

    + +

    Technical Principle 8: APIs are extensible

    + +

    The API definitions and standards should be built for extensibility. This extensibility should accommodate future API categories and industry sectors but it should also allow for extension by data holders to create unique, value add offerings to the ecosystem.

    + +

    Consumer Experience Principles

    + +

    These principles articulate qualitative outcomes for consumer experience that the standards should seek to deliver.

    + +

    CX Principle 1: The CDR is Consumer-centric

    + +

    The CDR consumer experience is intuitive and is centred on consumer attitudes, needs, +behaviours, and expectations – noting that these may change over time.

    + +

    CX Principle 2: The CDR is Accessible and Inclusive

    + +

    A diverse range of people are able to access, use, and comprehend the CDR ecosystem regardless of +their background, situation, experience, or personal characteristics.

    + +

    CX Principle 3: The CDR is Comprehensible

    + +

    When interacting with the CDR, consumers are able to understand the following:

    + +
      +
    • who their data is shared with;
    • +
    • what information is shared;
    • +
    • when sharing begins and ceases;
    • +
    • where data is shared to and from;
    • +
    • why their data is being requested; and
    • +
    • how they can manage and control the sharing and use of their data.
    • +
    + +

    CX Principle 4: The CDR is Simple and Empowering

    + +

    Consumer interactions with the CDR are as simple as possible, but not at the expense of +informed consent, consumer control, transparency, privacy, or comprehension. Consumers +should be encouraged to be privacy conscious without experiencing cognitive loads that +lead to disengagement. Consumers should also be empowered by the CDR without +interactive burdens being placed on them.

    + + + +

    Consent is granted at a point in time and is only as current as the consumer’s original intent. +Consumer attitudes and behaviours may change over time and be impacted by external +events such as the expansion of the CDR or consumer awareness. Consent terms should +always align to current consumer preferences.

    + +

    Versioning

    + +

    The standards have adopted a two level versioning strategy. The high level standards (including principles, Uniform Resource Identifier structure, payload naming conventions, etc) be versioned and each API end point will have an additional version specific to that end point.

    + +

    Documentation Versioning

    + +
    +

    Sample versioning of the standards documentation is as follows: +1.12.2 - meaning major version 1, minor version 12 and bugfix version 2

    +
    + +

    The standards documentation will be versioned using three version parts <major>.<minor>.<bug fix>. This version will be used to describe updates in the Change Log.

    + +

    Each of the three components will be independently incrementing integers and are described as follows:

    + +
      +
    • major: Major version of the standards. Reserved for increment only when a set of changes are applied that are large enough to make co-existence in the same implementation environment with previous versions untenable. This would include major changes to the information security profile, major changes to the high level standards or a change in basic protocols.
    • +
    • minor: Significant changes to the standards. This would include changes that require approval by the Chair of the Data Standards Body such as new end points and new versions of existing end points.
    • +
    • bug fix: Minor documentation changes that clarify or correct the standards but do not meaningfully alter the standards.
    • +
    + +

    Uniform Resource Identifier (URI) Versioning

    + +
    +

    The base URI structure containing the version for this standard is:
    +http://<holder path>/cds-au/v<major version>

    +
    + +

    The high level standard will be versioned as described above. The major component of this version will be embedded in the URI Structure for the APIs. This allows for a data holder to support multiple major versions of the standards in production even if the significant breaking changes occur between major versions.

    + +

    End Point Versioning

    + +

    Each end point will have multiple versions independent of other end points. A specific end point version will be requested by a client using a HTTP header. This header will be supported by all end points under the API standards. See the section on HTTP Headers for more information on how versions are requested and supplied under the standards.

    + +

    URI Structure

    + +
    +

    Some example URIs that meet this standard are:
    +http://www.bank.com.au/api/cds-au/v1/banking/accounts
    +http://www.bank.com.au/complex/uri/taxonomy/cds-au/v1/banking/products
    +http://www.energyretailer.com.au/api/cds-au/v1/energy/usage

    +
    + +

    The URI structure for API end points in the standards MUST be implemented as follows:
    +<holder path> / cds-au / <version> / <industry> / <resource>

    + +

    The components of this URI structure are described as follows:

    + +
      +
    • Holder Path: The holder path is a base path set by the data holder. It can be any URI desired by the holder. While all authenticated end points must be accessible under the same holder path the data holder may stipulate a different holder path for unauthenticated end points.
    • +
    • “cds-au”: This is a static string representing the end points defined by the Consumer Data Standards for Australia. This static string allows for separation from other APIs available at the same base holder path and also allows for extension if the standards are adopted by another jurisdiction in whole or in part.
    • +
    • Version: The major version of the high level standards. This is not the version of the endpoint or the payload being requested but the version of the overall standards being applied. This version number will be “v” followed by the major version of the standards as a positive integer (e.g. v1, v12 or v76).
    • +
    • Industry: A static string used to separate APIs for a specific industry. As standards for new industries are defined the list of industry strings will be extended.
    • +
    • Resource: The URI for the specific resource requested. This end point URI will be defined as part of the end point definitions for each API group.
    • +
    + +

    Note that the currently accepted values for the Industry component of the base path are:

    + +
      +
    • banking – for APIs related to banking and potentially wider financial services data
    • +
    • energy – for APIs related to the energy distribution industry
    • +
    • telco – for APIs related to telecommunications
    • +
    • common – for APIs that potentially span industries
    • +
    + +

    Resource URIs

    + +

    Resources that are collections, and members of collections, will follow the JSONAPI.org recommendation.

    + +

    Under this model, collections, individual members and collection sub-resources would be accessed as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GET …/accountsReturns an array of accounts
    GET …/accounts/{id}Returns the detail of a specific account
    GET …/accounts/transactionsReturns the transactions of multiple accounts
    GET …/accounts/{id}/transactionsReturns the transactions of a specific account
    POST …/accountsCreate a new account
    POST …/accounts/searchReturns an array of accounts based on a complex query
    + +

    The final example above represents a complex query accessed via a POST request. In this situation the POST URI should be applied to a sub-resource of the collection. A POST to a collection is reserved for the creation of a new collection member.

    + +

    If no valid sub-resource exists then a dedicated sub-resource should be created, such as the “search” URI listed in the example above.

    + +

    HTTP Headers

    + +

    Supported HTTP headers, and their usage, for the standards are as laid out in the following sections.

    + +

    Request Headers

    + +
    +

    A sample set of headers requesting version 3 to 5:
    +
    +Content-Type : application/json;charset=UTF-8
    +Accept : application/json;charset=UTF-8
    +x-v : 5
    +x-min-v : 3
    +x-fapi-interaction-id : 6ba7b814-9dad-11d1-80b4-00c04fd430c8
    +x-fapi-auth-date : Thu, 16 Jan 2020 16:50:15 GMT
    +x-fapi-customer-ip-address : 2001:0db8:85a3:0000:0000:8a2e:0370:7334
    +x-cds-client-headers : TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzkuMC4zOTQ1Ljg4IFNhZmFyaS81MzcuMzY=

    + +

    A Data Holder must be able to process Content-Type headers in accordance with [RFC7231]. The following would be valid:
    +
    +Content-Type: application/json;charset=UTF-8
    +Content-Type: application/json
    +Content-Type: AppliCAtion/JSon;Charset=uTf-8

    + +

    A Data Holder must be able to process Accept headers in accordance with [RFC7231]. The following would be valid:
    +
    +Accept: */*
    +Accept: application/json;charset=UTF-8
    +Accept: application/json
    +Accept-Encoding: charset=UTF-8
    +Accept: AppliCAtion/JSon;Charset=uTf-8

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Header FieldDescriptionMandatory?
    Content-TypeStandard HTTP Header. Represents the format of the payload provided in the request. The media type must be set to application/json. Mandatory for PUT and POST calls.Conditional
    AcceptIf specified, the media type must be set to application/json, unless otherwise specified in the resource end point standard. \n\n If set to an unacceptable value the holder must respond with a 406 Not Acceptable. If not specified, or a wildcard (/) is provided, the default media type is application/json.Optional
    x-vVersion of the API end point requested by the client. Must be set to a positive integer. The 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 holder must respond with a 406 Not Acceptable.
    Mandatory
    x-min-vMinimum version of the API end point requested by the client. Must be set to a positive integer if provided. The 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 holder must respond with a 406 Not Acceptable.
    Optional
    x-<HID>-vA holder specific version of extension fields. Should not be used in conjunction with x-min-v.Optional
    x-fapi-interaction-idAn optional [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.Optional
    x-fapi-auth-dateThe time when the customer last logged in to the data recipient as described in [FAPI-R]. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.Conditional
    x-fapi-customer-ip-addressThe 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.Conditional
    x-cds-client-headersThe 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.
    This header is not required to include:
    • Headers containing security information
    • Custom or proprietary headers used to facilitate the client application
    Conditional
    + +

    Response headers

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Header FieldDescriptionMandatory?
    Content-TypeStandard HTTP Header. Represents the format of the payload returned in the response.
    Must be application/json unless otherwise specified in the resource end point standard.
    Mandatory
    Retry-AfterHeader indicating the time (in seconds) that the client should wait before retrying an operation. The holder should include this header along with responses with the HTTP status code of 429 Too many requests.Optional
    x-vThe version of the API end point that the holder has responded with.Mandatory
    x-fapi-interaction-idAn [RFC4122] UUID used as a correlation id. The data holder must set the response header x-fapi-interaction-id to the value received from the corresponding request header or to a new [RFC4122] UUID value if the request header was not provided.Mandatory
    + +

    Additional Headers

    + +

    Generally understood headers used in HTTP transactions to provide caching guidance and the use of the compression are not specified but are considered acceptable. It is at the discretion of the data holder if these headers are used for a specific implementation. Data holders should not require these headers for successful API access, however.

    + +

    HTTP Response Codes

    + +

    The handling and usage of HTTP response codes for the standards will be according to the following table.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SituationHTTP StatusNotesPOSTGETDELETE
    Query completed successfully200 OKYesYesNo
    Normal execution. The request has succeeded.201 CreatedThe operation results in the creation of a new resource.YesNoNo
    Delete operation completed successfully204 No ContentNoNoYes
    The response is not modified since last call304 Not ModifiedMay be returned if standard caching headers such as ETag or If-modified-since are utilisedYesYesNo
    Request has malformed, missing or non-compliant JSON body or URL parameters400 Bad RequestThe requested operation will not be carried out.YesYesYes
    Authorization header missing or invalid token401 UnauthorizedThe operation was refused access. Re-authenticating may result in an appropriate token that may be used.YesYesYes
    Token has incorrect scope or a security policy was violated.403 ForbiddenThe operation was refused access. Re-authenticating is unlikely to remediate the situation. It is expected that this error will result in an error payloadYesYesYes
    The consumer tried to access the resource with a method that is not supported.405 Method Not AllowedYesYesYes
    The request contained an Accept header other than permitted media types, a character set other than UTF-8 or a version that was not supported406 Not AcceptableYesYesYes
    The operation was refused because the payload is in a format not supported by this method on the target resource.415 Unsupported Media TypeYesNoNo
    The request was well formed but was unable to be processed due to business logic specific to the request422 Unprocessable EntityIf applicable to the HTTP method it is expected that this error will result in an error payloadYesYesNo
    The operation was refused as too many requests have been made within a certain timeframe.429 Too Many RequestsThrottling is a NFR. The data holder should include a Retry-After header in the response indicating how long the data consumer must wait before retrying the operation.YesYesYes
    Something went wrong on the API gateway or micro-service500 Internal Server ErrorThe operation failed.YesYesYes
    Service is currently unavailable503 Service UnavailableYesYesYes
    The server was unable to respond in a timely manner504 Gateway TimeoutReturned if a timeout has occurred but a resend of the original request is viable (otherwise use 500 instead)YesYesYes
    + +

    Payload Conventions

    + +

    This section of the standard outlines the request and response payload structures for all API end points as well as the naming conventions for fields.

    + +

    Request Payload Structure

    + +
    +

    A sample request would be structured as follows:

    +
    + +
    {
    +  “data”: {
    +    ...
    +  },
    +  “meta”: {
    +    ...
    +  }
    +}
    +
    + +

    Each API request payload MUST have a JSON object at the root level known as the root object. This object MUST contain a data object to hold the primary data for the request.

    + +

    The root object will contain a meta object if, and only if, it is specifically REQUIRED by the end point. The meta object is used to provide additional information such as second factor authorisation data, traffic management, pagination counts or other purposes that are complementary to the workings of the API.

    + +

    The definition of the contents for the data object and meta object will be defined separately for each end point.

    + +

    Response Payload Structure

    + +
    +

    A sample successful response:

    +
    + +
    {
    +  “data”: {
    +    ...
    +  },
    +  “links”: {
    +    “self”: “...”
    +  },
    +  “meta”: {
    +    ...
    +  }
    +}
    +
    + +
    +

    A sample unsuccessful response:

    +
    + +
    {
    +  “errors”: [
    +    {
    +      “code”: “...”,
    +      “title”: “...”,
    +      “detail”: “...”
    +    }, {
    +      “code”: “...”,
    +      “title”: “...”,
    +      “detail”: “...”,
    +      “meta”: {
    +        ...
    +      }
    +    }
    +  ]
    +}
    +
    + +

    Each API request payload MUST have a JSON object at the root level known as the root object.

    + +

    The contents of the root object are as follows:

    + +
      +
    • If the response is successful (200 OK) the root object: + +
        +
      • MUST contain a data object
      • +
      • MUST contain a links object
      • +
      • MAY contain a meta object if REQUIRED by the definition of the specific end point
      • +
    • +
    • If the response is unsuccessful (not 200 OK) the root object: + +
        +
      • MAY contain an errors object (as per the specific end point definition)
      • +
    • +
    + +

    The definition of the contents for the data object and meta object will be defined separately for each end point.

    + +

    The links object will contain links to related API end points. This will include links to support pagination.

    + +

    The links object MUST contain a field named self that will have the fully qualified URI to the current request as a value.

    + +

    The errors object will be an array of zero or more unnamed objects. The fields in each of these objects will be as follows:

    + +
      +
    • code field MUST be present: holds an end point specific error code
    • +
    • title field MUST be present: holds a human readable label of the error that is constant +per code
    • +
    • detail field MUST be present: holds a human readable description of this specific error
    • +
    • meta object MAY be present: holds additional end point specific data relevant to the error
    • +
    + +

    Field Naming Conventions

    Valid Characters In Field Names

    +

    All field names defined in either a request or response payload MUST be treated as case sensitive by clients and servers, and they MUST meet all of the following conditions:

    + +
      +
    • Member names MUST contain at least one character.
    • +
    • Member names MUST contain only the allowed characters listed below: + +
        +
      • U+0061 to U+007A, a-z
      • +
      • U+0041 to U+005A, A-Z
      • +
      • U+0030 to U+0039, 0-9
      • +
    • +
    • Additionally, the following characters are allowed in field names, except as the first or last character: + +
        +
      • U+002D HYPHEN-MINUS, '-'
      • +
      • U+005F LOW LINE, '_'
      • +
      • U+0024 DOLLAR SIGN, '$'
      • +
    • +
    + +

    Any other character MUST NOT be used in field names.

    +

    Field Naming Style

    +

    Field names MUST be meaningful names with defined semantics.

    + +

    Fields representing the same data in different payloads or different parts of a payload MUST have +the same name.

    + +

    Array types SHOULD have plural field names. All other field names SHOULD be singular.

    + +

    Field names MUST be defined using camel case with the following clarifications:

    + +
      +
    • If a field name is a single acronym it SHOULD be lowercase
    • +
    • If a field name contains an acronym along with other words it MAY be uppercase
    • +
    • The first character in a field name SHOULD be lower case unless it is part of an acronym
    • +
    + +

    Fields MUST NOT be named using reserved javascript tokens.

    +

    Maps

    +

    For JSON maps (i.e. key/value pairs) any Unicode character MAY be used as a field name and stylistic requirements do not apply.

    +

    Field Property Conventions

    Field Data Types

    +

    Each field defined for the payloads of an end point MUST have an assigned data type.

    + +

    The list of valid data types are set out in the common field types section. If a custom data type is required for a field then the field SHOULD be classified as a string with a clear description of how the property value is to be interpreted or defined.

    +

    Mandatory/Optional Fields

    +

    Each field defined for the payloads of an end point MUST have an assigned status of mandatory, optional or conditional.

    + +

    Mandatory fields MUST be present and have a non-null value in a request or response payload for the payload to be considered valid.

    + +

    Optional fields MAY be present but this is not guaranteed. It is also valid for these fields to be present but have a null value. Note that optional fields indicate that data may sometimes not be held by a Data Holder and this is an expected scenario.

    + +

    Conditional fields MUST have an associated conditional statement. If the conditional statement is true in a specific request or response the field is considered mandatory. If the conditional statement is false then the field is considered optional.

    + + +

    Empty/Null Fields

    +

    An empty field (ie. a field that is not present in a payload) will be considered equivalent with a field that is present with a null value.

    + +

    An empty string (“”) is not considered to be equivalent to null.

    + +

    A Boolean value of false is not considered to be equivalent to null. Optional Boolean fields, by implication, have three possible values: true, false and indeterminate (ie. null).

    +

    Object conventions

    + +
    +

    Sample union object structure:

    +
    + +
    “data”: {
    +    [
    +        {
    +            “shapeUType”: “circle”,
    +            “circle”: {
    +            }
    +        },
    +        {
    +            “shapeUType”: “square”,
    +            “square”: {
    +            }
    +        }
    +    ]
    +}
    +
    + +

    A specific convention will apply to union objects.

    + +

    In the standards a union object is used in a situation where a set of data can be represented with different sets of fields depending on the context. To maintain strong typing of the fields one of a series of known object structures will be used. An example where this technique is used in the standard is in the definition of account balances where balance information can be represented differently, but unambiguously, for different account types.

    + +

    For union objects an additional field, with a known suffix, is used to identify the object type that has been provided specifically.

    + +

    As the name of this field is constant it can be used to perform an indirect lookup on the object type that has actually been provided removing the need to scan for which object is present.

    + +

    A field of this type will always be specified with the suffix UType meaning Union Type.

    + +

    Array Conventions

    + +
    +

    Samples for providing array values:

    +
    + +
    ## Many-values:
    +"middleNames": ["Geoff", "John"],
    +"errors": [
    +    {
    +      "code": "...",
    +      "title": "...",
    +      "detail": "..."
    +    }, {
    +      "code": "...",
    +      "title": "...",
    +      "detail": "..."
    +    }
    +]
    +
    +## Single-value:
    +"middleNames": ["Geoff"],
    +"errors": [
    +    {
    +      "code": "...",
    +      "title": "...",
    +      "detail": "..."
    +    }
    +]
    +
    +## Empty array:
    +"middleNames": [ ],
    +"errors": [ ]
    +
    +
    + +

    Unless otherwise stated within the data standards, arrays are explicitly expressed in response payloads.

    + +

    Mandatory fields

    + +

    In objects where an array field is defined as having 0..n values, the array field must be explicitly expressed as an array in the payload, even if it only contains one item or is empty.

    + +

    This applies equally for object arrays. Where a field is defined as an array value, the response should be: +* an array of objects, +* an array of values, or +* an empty array ([]).

    + +

    An empty array is the representation for an array equivalent to an empty string.

    + +

    Optional fields

    + +

    If the field is optional a null value or empty field response is accepted.

    + +

    Normative references

    + +

    The only exception to this, unless explicitly stated, is normative standards. The requirements for expressing arrays within those normative standards apply per the normative references.

    + +

    Common Field Types

    + +

    The following table outlines the common data types for fields used in the standard.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeDescriptionValid Examples
    StringStandard UTF-8 string but unrestricted in content. Any valid Unicode character can be used.
    ASCIIStringStandard UTF-8 string but limited to the ASCII character set.
    BooleanStandard JSON booleantrue
    false
    EnumString representing an option from a defined list of values
    - All possible values should be provided
    - Values should be in all caps
    - Spaces should be replaced with under bars '_'
    - Values should be limited to the ASCII character set
    “OPTION1”
    “ANOTHER_OPTION”
    “VAL_ABC_123”
    NaturalNumberA natural number (ie. a positive integer inclusive of zero)0
    1
    10000
    PositiveIntegerA positive integer (zero excluded)1
    10000
    NegativeIntegerA negative integer inclusive of zero0
    -1
    -10000
    IntegerAny positive or negative integer inclusive of zero1
    0
    -1
    NumberA standard floating point number. Can be positive, negative or zero0.1
    -100.09
    10
    90.09
    Base64Base64 encoded string as per RFC 4648Q29uc3VtZXIgRGF0YSBSaWdodA==
    DateTimeStringCombined Date and Time string as per RFC- 3339 (labelled date-time in the RFC). As specified in RFC-3339 times should be offset relative to UTC“2007-05-01T15:43:00.12345Z”
    “2012-12-25T15:43:00-08:00”
    “1997-01-12T15:43:00.121Z”
    DateStringDate string as per RFC-3339 (labelled full-date in the RFC)“2007-05-01”
    “2012-12-25”
    TimeStringTime string as per RFC-3339 (labelled full-time in the RFC). As specified in RFC-3339 times should be offset relative to UTC“15:43:00.12345Z”
    “15:43:00-12:00”
    CurrencyStringStandard 3 character currency codes as per ISO-4217“AUD”
    “USD”
    “GBP”
    RateStringA string representing an interest rate. A rate of 100% would be represented by the value 1.0 and a rate of -100% by -1.0
    - At least 1 and up to a total of 16 significant digits before decimal point
    - Up to 16 digits following the decimal point
    - No formatting, eg thousand separating commas
    “0.05”
    “-0.05”
    “12.3456789”
    “-99.123456789123”
    AmountStringA string representing an amount of currency.
    - A positive, zero or negative number
    - Negative numbers identified with a ‘-‘
    - No currency symbols should be supplied
    - At least 1 and up to a total of 16 significant digits before decimal point
    - Minimum 2 digits following a decimal point (more digits allowable but only if required)
    - No additional formatting, eg thousand separating commas
    “0.01”
    “10.00”
    “1234567.89”
    “-1001.23”
    “1.999”
    MaskedPANStringMasked credit card number. Lower case ‘x’ should be used to mask numbers and only the last four digits should be exposed to facilitate identification. This type is expected to be used for display so the format should be logical for this context"xxxx xxxx xxxx 1234"
    MaskedAccountStringMasked bank account number genericised for a variety of account types. Should be represented as the full account number would normally be represented for display (including formatting) but with all digits except the last four replaced with a lowercase x. This type is expected to be used for display so the format should be logical for this context"xxxx xxxx xxxx 1234"
    "xxx-xxx xxxxx1234"
    URIStringA valid URI"http://www.google.com"
    ExternalRefThe format is defined by an external reference such as ISO standard or an RFCSwift bank codes using ISO 9362
    + +

    Pagination

    + +

    Each API end point that can return multiple records will stipulate whether pagination is supported for the end point or not. For end points that will return less than a reasonably sized page of results in the majority of circumstances support for paging may not be included.

    + +

    Note that the use of paging for an end point does not require or preclude the use of filtering query parameters. It is expected that filtering and paging will be applied independently of each other.

    + +

    Query Parameters

    + +

    The consumer will stipulate pagination requirements on the request using query parameters. When paging is supported the consumer MAY provide the following query parameters:

    + +
      +
    • page – the page number being requested (with the first page being 1)
    • +
    • page-size – the number of records to return in each page
    • +
    + +

    If the query parameters are not provided the following defaults will be assumed:

    + +
      +
    • page – a default of 1 (the first page) will be assumed
    • +
    • page-size – a default of 25 will be assumed
    • +
    + +

    Response Fields

    + +

    In addition to the data requested a holder MUST provide the following additional information in the response payload:

    + +
      +
    • In the links object the following fields are to be provided: + +
        +
      • first - A URI to request the first page. Mandatory if this response is not the first page.
      • +
      • last - A URI to request the last page. Mandatory if this response is not the last page.
      • +
      • prev - A URI to the previous page. Mandatory if this response is not the first page.
      • +
      • next - A URI to the next page. Mandatory if this response is not the last page.
      • +
    • +
    • In the meta object the following fields are to be provided: + +
        +
      • totalRecords - The total number of records in the set. This field MUST be present.
      • +
      • totalPages - The total number of pages in the set. This field MUST be present. If totalRecords is 0 totalPages MUST be 0.
      • +
    • +
    + +

    For each of these fields the page size specified in the request should be assumed when calculating +values.

    + +

    Additional Pagination Rules

    + +
      +
    • Holders are not expected to implement pagination with transaction isolation. The underlying data-set may change between two subsequent requests. This may result in situations where the same transaction is returned on more than one page.
    • +
    • A maximum page size of 1000 records is assumed for all end points (unless otherwise stipulated in the end point definition). If a page size greater than this maximum is requested then a HTTP status of 422 Unprocessable Entity SHOULD be returned.
    • +
    + +

    Cursor Support

    + +

    For performance reasons data holders may wish to support other pagination patterns such as cursors or continuation tokens. While the standard does not explicitly support these additional mechanisms it is considered allowable to implement these patterns and expose them via the pagination links.

    + +

    In this scenario the URIs included in the links for other pages may not be compliant with the standard and may, instead, include other query parameters that support another pagination pattern. It is expected that all other pagination requirements such as link fields and meta fields will still be supported if other patterns are implemented.

    + +

    To allow for a more performant implementation data consumers are encouraged to utilise pagination links wherever possible and only use constructed URIs for the first page or if random access to a specific set of records is required.

    + +

    ID Permanence

    + +

    Within these standards resource IDs are REQUIRED to comply with the following:

    + +
      +
    • An ID for a resource should only be specified in the API standard if an end point exists to +obtain detail for that resource or to change the state of the resource.
    • +
    • If an ID is specified in the standards for a resource then it is mandatory and MUST be supplied, by the data holder, in accordance with the standards.
    • +
    • If an ID is specified the ID value MUST be entirely arbitrary and have no inherent meaning. For instance, an ID should not be a combination of other fields or a string that can be parsed to extract meaningful information.
    • +
    • IDs SHOULD be unique but that uniqueness may be within a clearly bounded context. For example, a beneficiary ID may be unique but only in the context of a specific account. The bounds of uniqueness should be clearly described in the standards definition for the end point.
    • +
    • IDs MUST be immutable across sessions and consents but MUST NOT be transferable across data recipients. For example, data recipient A obtaining an account ID would get a different result from data recipient B obtaining the ID for the same account even if the same customer authorised the access. Under this constraint IDs cannot be usefully transferred between client organisations or data holders.
    • +
    • IDs MUST NOT be transferable between different customers for the same data recipient. For example, a data recipient should obtain a different ID for a joint account if the ID was obtained independently using authorisations from both customers.
    • +
    • In payloads the field name of “id” should NEVER be used. Each ID field should be meaningfully named so that wherever that ID is used across multiple end points it always refers to the same ID set. For instance, the IDs for accounts would be represented in JSON in a field named “accountId”.
    • +
    + +

    Extensibility

    + +

    The Consumer Data Right standards will not cover all possible data sets or APIs that participants may wish to expose. Participants may also wish to innovate on top of the API standards by offering additional data to meet specific market opportunities. It is desirable that the standards not only allow for this to occur but actively encourage it with specific additions to the standards to enable such extension.

    + +

    At the same time, it is important that a participant seeking to provide extensions does not hinder a data consumer that is only built for the published standards.

    + +

    To accommodate these concerns the standards incorporate the following considerations specifically related to extension by data holders.

    + +

    The three types of extension that the standards address are:

    + +
      +
    1. Data holder offering entirely new API categories that are not covered by the API Standards
    2. +
    3. Data holder offering additional end points to an API category that is already covered by the standards
    4. +
    5. Data holder offering additional fields to the response payloads for an end point defined in the +standards
    6. +
    + +

    Holder Identifier

    + +
    +

    For example, the prefixes for the four major Banks included in the first phases of implementation would be: +

      +
    • CBA – Commonwealth Bank
    • +
    • WBC – Westpac Banking Corporation
    • +
    • ANZ – ANZ Banking Group
    • +
    • NAB – National Australia Bank
    • +

    +
    + +

    Data holders seeking to extend the standards MUST nominate a prefix to identify all extensions. Extended fields and end points and would use this prefix consistently. This prefix would be, by preference, the ASX symbol for the holder. Care should be taken not to use a prefix already adopted by another holder in the regime.

    + +

    In these standards, where a holder Identifier would be included, the term <HID> will be used.

    + +

    New API Categories

    + +

    When extending by adding new API categories a holder MUST add these to the overall URI structure by substituting the industry element with the Holder (Provider) ID.

    + +

    For instance, the standard URI base path is structured as:
    +<holder path> / cds-au / <version> / <industry> / <resource>

    + +

    For the extension API categories for a specific holder they would be structured as:
    +<holder path> / cds-au / <version> / <HID> / <resource>

    + +

    The end points defined under this structure, including the payloads of these end points do not need to be prefixed in any way. The fact that they are underneath the holder section implies that they are additional to the standard.

    + +

    Note that:

    + +
      +
    • This mechanism MUST NOT be used to create modified duplicates of the end points defined in the API Standards
    • +
    • The end points in this area MUST comply with the standard's conventions and principles including naming conventions and data types.
    • +
    + +

    New End Points In Existing API Categories

    + +

    When creating new end points that are in parallel to existing API categories in the standard the Holder Identifier MUST be used to prefix the highest URI element where divergence occurs.

    + +

    For example, assume an existing balance end point is defined as follows:
    +<base path>/accounts/{account ID}/transactions

    + +

    and the holder wishes to add an end point that summarises balance movement for a specific time period then they may define the end point as:
    +<base path>/account/{account ID}/<HID>-balance-movement

    + +

    Note that:

    + +
      +
    • The prefix is defined as the Holder Identifier followed by a hyphen.
    • +
    • As the entire end point is new, the request and payload fields do not need to be prefixed in any way.
    • +
    • Care should be taken to ensure there is no collision with an end point defined in the standards by specifying an extension at the same level as a variable URI element (such as at the same level of the {account ID} in the example above).
    • +
    • If an end point has multiple levels in the resource path only the highest point where divergence with the standard occurs needs to be prefixed.
    • +
    • The new end point MUST comply with standard's conventions and principles including naming conventions and data types.
    • +
    + +

    Additional Fields In An Existing Response Payload

    + +

    When adding a new field in an existing payload the field can be added to the JSON by prefixing the string <HID>-.

    + +

    If an object is being added as an extension only the highest level object name needs to be prefixed. Any fields inside the extended object can be named normally.

    + +

    Note that:

    + +
      +
    • Existing fields MUST NOT be modified in any way. This includes adding new enumeration values to enum type fields.
    • +
    • A mandatory field MUST NOT be made optional as the result of an extension.
    • +
    • Request payloads can also be extended but the resulting end point should still execute successfully if the extension field is not present (by implication, extension fields in request payloads MUST be optional).
    • +
    • New query parameters MAY be added along the same lines as a new field in a request payload (i.e. prefixed, non-mandatory and no side effects if not present).
    • +
    • New headers MAY be added along the same lines as a new field in a request payload with the exception that the new header should be prefixed x-<HID>-.
    • +
    • New fields MUST comply with the naming conventions and data type standards used.
    • +
    + +

    Additional Query Parameters

    + +

    When adding support for a new query parameter to an existing end point that a data consumer is expected to supply, the new parameter should be prefixed by the string <HID>- to avoid potential collision with extension by another data holder.

    + +

    Extension Versioning

    + +

    As described previously in the versioning section the standard provides for multiple versions of each API end point. This implies the need for extensions to also be versioned.

    + +

    An optional header x-<HID>-v will be supported for all end points that can be used by the data consumer to request a specific version of extension fields to include in the response. See the section on HTTP Headers for more information on the use of this header.

    +

    Security Profile

    +

    Overview

    + +

    This information security profile builds upon the foundations of the Financial-grade API Read Write Profile [FAPI-RW] and other standards relating to +Open ID Connect 1.0 [OIDC].

    + +

    For information on the specific normative references that underpin this profile refer to the Normative References section.

    + +

    Symbols and Abbreviated terms

    + +
      +
    • API: Application Programming Interface
    • +
    • CA: Certificate Authority
    • +
    • CDR: Consumer Data Right
    • +
    • CDR-SP: Consumer Data Right Security Profile
    • +
    • CL: Credential Level
    • +
    • DH: Data Holder
    • +
    • DR: Data Recipient
    • +
    • DTA: Digital Transformation Agency
    • +
    • FAPI: Financial API
    • +
    • HoK: Holder of Key
    • +
    • JSON: The JavaScript Object Notation
    • +
    • JWA: JSON Web Algorithms
    • +
    • JWE: JSON Web Encryption
    • +
    • JWK: JSON Web Key
    • +
    • JWKS: JSON Web Key Set
    • +
    • JWS: JSON Web Signing
    • +
    • JWT: JSON Web Token
    • +
    • IP: Identity Proofing
    • +
    • LoA: Level of Assurance
    • +
    • LoAs: Levels of Assurance
    • +
    • MTLS: Mutually Authenticated Transport Layer Security
    • +
    • OIDC: Open ID Connect
    • +
    • PAR: Pushed Authorisation Requests
    • +
    • PI: Personal Information
    • +
    • PKI: Public Key Infrastructure
    • +
    • PPID: Pairwise Pseudonymous Identifier
    • +
    • REST: Representational State Transfer
    • +
    • TDIF: Trusted Digital Identity Framework
    • +
    • TLS: Transport Layer Security
    • +
    + +

    CDR Federation

    + +

    The CDR Federation will facilitate the secure exchange of consumer data and federation metadata between +multiple system entities which will assume one or more of the following roles:

    + +
      +
    • Data Holder: + +
        +
      • Multiple Data Holders will be supported.
      • +
    • +
    • Data Recipient: + +
        +
      • Multiple Data Recipients will be supported.
      • +
    • +
    • Register: + +
        +
      • A register will be supported and will be maintained by the Australian Competition and Consumer Commission (ACCC).
      • +
    • +
    • Customer: + +
        +
      • The authorising customer that is authenticated by a Data Holder.
      • +
    • +
    + +

    Data Holder

    + +

    The Data Holder (DH) is a system entity that authenticates a Customer +(resource owner or user), as part of an authorisation process initiated by a Data +Recipient, and issues an authorisation for that Data Recipient to access the Customer's data via published APIs.

    + +

    A Data Holder assumes the role of an [OIDC] OpenID Provider.

    + +

    For the purposes of this standard a single designated organisation may be represented via the Register as multiple separate Data Holders to support multiple brands or market identities.

    + +

    Data Recipient

    + +

    A Data Recipient (DR) is a system entity that is authorised by a Data Holder to access consumer resources (APIs). A Data Recipient MUST capture consumer consent prior to commencing an authorisation process with a Data Holder.

    + +

    A Data Recipient MUST be accredited in order to participate in the CDR Federation. Accreditation rules for Data Recipients are beyond the scope of this artifact.

    + +

    A Data Recipient assumes the role of an [OIDC] Relying Party (Client).

    + +

    For the purposes of this standard a single accredited organisation may be represented via the Register as multiple separate Data Recipients to support multiple applications or services.

    + +

    Register

    + + + +

    The Register is a central point of discovery for both Data Holders and Data +Recipients. Data Holders and Data Recipients must be created as entities in the Register in order for them to participate as members of the CDR Federation. The functionality of the Register will include but will not be limited to:

    + +
      +
    • Management of Identities and Access: The Register will allow registered persons, on behalf of Data Holders and Data Recipients, to manage the metadata of their associated organisations and systems.
    • +
    • Management of Certificates: The Register will facilitate the issuing, management and revocation of digital certificates.
    • +
    • Discoverability and Search: The Register will expose APIs and Web Interfaces in order to support metadata queries across Register entities.
    • +
    + +

    Customer

    + +

    For the purposes of this standard a single person or individual may be represented as multiple Customers according to the practice of the Data Holder according to their existing digital channels.

    + +

    Authentication Flows

    + +

    This profile supports the authentication flows specified by OpenID Connect [OIDC] as constrained further by FAPI [FAPI].

    + +

    Specifically the Hybrid Flow outlined at section 3.3 of [OIDC].

    + +

    No other flows are currently supported.

    + +

    + +

    OIDC Hybrid Flow

    + +

    The [OIDC] Hybrid Flow is a type of redirection flow where the consumer's user +agent is redirected from a Data Recipient’s (Relying Party) web site to a Data +Holder’s Authorisation end point in the context of an [OIDC] authentication +request. The Hybrid flow incorporates aspects of the both the implicit flow and +authorisation code flow detailed under [OIDC].

    + +

    Only a response_type (see section 3 of [OIDC]) of code id_token SHALL be allowed.

    + +

    The request_uri parameter is only supported if the Data Holder supports PAR.

    + +

    In addition, the following statements are applicable for this flow:

    + +
      +
    • Data Holders MUST request a user identifier that can uniquely identify the customer and that is already known by the customer in the redirected page
    • +
    • Data Holders MUST NOT request that the customer enter an existing password in the redirected page
    • +
    • Data Holders MUST provide a one-time password (OTP) to the customer through an existing channel or mechanism that the customer can then enter into the redirected page
    • +
    • The delivery mechanism for the OTP is at the discretion of the Data Holder but MUST align to existing and preferred channels for the customer and MUST NOT introduce unwarranted friction into the authentication process
    • +
    • Data Holders SHOULD implement additional controls to minimise the risk of interception of the OTP through the selected delivery mechanism
    • +
    • The provided OTP MUST be used only for authentication for CDR based sharing and MUST NOT be usable for the authorisation of other transactions or actions
    • +
    • The provided OTP MUST be invalidated after a period of time at the discretion of the Data Holder. This expiry period SHOULD facilitate enough time for the customer to reasonably complete the authorisation process
    • +
    • The provided OTP MUST be numeric digits and be between 4 and 6 digits in length
    • +
    • The algorithm for the creation of the OTP is at the discretion of the Data Holder but SHOULD incorporate a level of pseudorandomness appropriate for the use case
    • +
    • Data Holders SHOULD implement additional controls to minimise the risk of enumeration attacks via the redirect page
    • +
    • Data recipients SHOULD record the following information each time an authorisation flow is executed: username (consumer’s ID at the data recipient), timestamp, IP, consent scopes and duration.
    • +
    + +

    In line with CDR Rule 4.24 on restrictions when asking CDR consumers to authorise disclosure of CDR data, unwarranted friction for OTP delivery is considered to include:

    + +
      +
    • the addition of any requirements beyond normal data holder practices for verification code delivery
    • +
    • providing or requesting additional information beyond normal data holder practices for verification code delivery
    • +
    • offering additional or alternative services
    • +
    • reference or inclusion of other documents
    • +
    + +

    Additional requirements and guidelines for this flow are contained in the Consumer Experience section.

    + +

    + +

    Client Authentication

    + +

    This section outlines how participants in the CDR regime will authenticate clients seeking access to end points.

    + +

    Note that, while [MTLS] is utilised for transaction security and as a Holder of Key mechanism, the PKI Mutual TLS OAuth Client Authentication Method SHALL NOT be supported as the mechanism for client authentication.

    + +

    CDR Register calling Data Holders and Data Recipients

    + +
    +

    Non-Normative Example - CDR Register calls the Data holder's Get Metrics end point with Client Authentication (note that the “aud” claim represents the AdminBaseUri as defined in CDR Register Participant Endpoints).

    +
    + +
    GET https://admin.data.holder.com.au/cds-au/v1/admin/metrics HTTP:/1.1
    +Host: admin.data.holder.com.au
    +x-v: string
    +x-min-v: string
    +Authorization: Bearer eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey ...
    +
    +## Decoded Bearer token JWT
    +{
    +   "alg":"PS256",
    +   "typ":"JWT",
    +   "kid":"12456"
    +}
    +{
    +   "iss":"cdr-register",
    +   "sub":"cdr-register",
    +   "aud":"https://admin.data.holder.com.au",
    +   "iat":1516239022,
    +   "exp":1516239322,
    +   "jti":"32358102-a44f-43cc-ad7c-42443d01507a"
    +}
    +
    + +

    Data Holders and Data Recipients MUST support the authentication of the CDR Register using a signed JWT according to the following requirements:

    + +
      +
    • The JWT MUST contain the following REQUIRED Claim Values and MAY contain the following OPTIONAL Claim Values: + +
        +
      • iss - REQUIRED. Issuer. This MUST contain the static CDR Register id of ‘cdr-register’.
      • +
      • sub - REQUIRED. Subject. This MUST contain the static CDR Register id of ‘cdr-register’.
      • +
      • aud - REQUIRED. Audience. The aud (audience) Claim. Value that identifies the intended audience. The Data Holder or Data Recipient MUST verify that it is an intended audience for the token. Contents MUST be the base URI for the end point being accessed.
      • +
      • jti - REQUIRED. JWT ID. A unique identifier for the token, which can be used to prevent reuse of the token. These tokens MUST only be used once.
      • +
      • exp - REQUIRED. Expiration time on or after which the ID Token MUST NOT be accepted for processing.
      • +
      • iat - OPTIONAL. Time at which the JWT was issued.
      • +
    • +
    • Validation and use of the JWT and the claims described above MUST be performed in accordance with [JWT]
    • +
    • The JWT should be accepted from the client using the "Authorization Request Header Field" mechanism as described in section 2.1 of RFC6750
    • +
    + +

    Data Holders calling Data Recipients

    + +
    +

    Non-Normative Example - Data Holder calls the Data Recipient's revocation end point (note that the “aud” claim is the fully qualified path to the revocation end point because the full path is also the Base URI).

    +
    + +
    POST https://data.recipient.com.au/revocation HTTP/1.1
    +Host: data.recipient.com.au
    +Content-Type: application/x-www-form-urlencoded
    +Authorization: Bearer eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey …
    +
    +token=45ghiukldjahdnhzdauz&token_type_hint=refresh_token
    +
    +## Decoded Bearer token JWT
    +{
    +   "alg":"PS256",
    +   "typ":"JWT",
    +   "kid":"67890"
    +}
    +{
    +   "iss":"dataholderbrand-123",
    +   "sub":"dataholderbrand-123",
    +   "aud":"https://data.recipient.com.au/revocation",
    +   "iat":1516239022,
    +   "exp":1516239322,
    +   "jti":"dba86502-7cf5-4719-9638-c5339a0ddb06"
    +}
    +
    + +

    Data Recipients MUST support the authentication of Data Holders using a signed JWT according to the following requirements:

    + +
      +
    • The JWT MUST contain the following REQUIRED Claim Values and MAY contain the following OPTIONAL Claim Values: + +
        +
      • iss - REQUIRED. Issuer. This MUST contain the id of the Data Holder obtained from the CDR Register.
      • +
      • sub - REQUIRED. Subject. This MUST contain the id of the Data Holder obtained from the CDR Register.
      • +
      • aud - REQUIRED. Audience. The aud (audience) Claim. Value that identifies the Data Recipient as the intended audience. The Data Recipient MUST verify that it is an intended audience for the token. Contents MUST be the base URI for the end point being accessed.
      • +
      • jti - REQUIRED. JWT ID. A unique identifier for the token, which can be used to prevent reuse of the token. These tokens MUST only be used once.
      • +
      • exp - RE QUIRED. Expiration time on or after which the ID Token MUST NOT be accepted for processing.
      • +
      • iat - OPTIONAL. Time at which the JWT was issued.
      • +
    • +
    • Validation and use of the JWT and the claims described above MUST be performed in accordance with [JWT]
    • +
    • The JWT should be accepted from the client using the "Authorization Request Header Field" mechanism as described in section 2.1 of RFC6750
    • +
    + +

    Data Recipients calling Data Holders

    + +

    Data Holders MUST support the authentication of Data Recipients using the private_key_jwt Client Authentication method specified at section 9 of [OIDC].

    + +
    +

    Non-Normative Example - Data Recipient calls Data Holder's token end point.

    +
    + +
    POST /token HTTP/1.1
    +Host: www.holder.com.au
    +Content-Type: application/x-www-form-urlencoded
    +
    +grant_type=authorization_code&
    +  code=i1WsRn1uB1&
    +  client_id=s6BhdRkqt3&
    +  client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&
    +  client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey ...
    +
    +## Decoded client assertion JWT
    +{
    +  "alg": "PS256",
    +  "typ": "JWT",
    +  "kid": "12456"
    +}
    +{
    +  "iss": "12345",
    +  "sub": "12345",
    +  "iat": 1516239022,
    +  "exp": 1516239322,
    +  "aud": "https://www.holder.com.au/token",
    +  "jti": "37747cd1-c105-4569-9f75-4adf28b73e31"
    +}
    +
    + +

    The private_key_jwt authentication method is enabled through the delivery of an encoded [JWT] signed using the Data Recipient's private key and thus facilitates non-repudiation.

    + +

    Client public keys are obtained from the [JWKS] endpoints.

    + +

    For the client authentication assertion, the [JWT] represents an assertion that MUST include the following claims:

    + +
      +
    • iss: The client ID of the bearer.
    • +
    • sub: The client ID of the bearer.
    • +
    • aud: The aud (audience) Claim. Identifies the recipients that the JWT is intended for.
      + Until March 31st, 2021, Data Recipients MUST continue to send as a single value string the URL of the endpoint being invoked. Data Holders MUST support validation of the URL of the endpoint being invoked.
      + After March 30th, 2021, Data Holders MUST support:
      The issuer identifier URL of the authorisation server according to [RFC8414] SHOULD be used as the value of the audience. In order to facilitate interoperability, the authorisation server MUST accept its Issuer Identifier, Token Endpoint URL, or the URI of the endpoint being invoked as values that identify it as an intended audience.

    • +
    • exp: A JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC expiry time.

    • +
    • jti: A unique identifier generated by the client for this authentication.

    • +
    + +

    The following claims MAY be included:

    + +
      +
    • iat: A JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC issued at time.
    • +
    + +

    When invoking a protected end point, the aforementioned assertion MUST be sent with the POST method and MUST include the following parameters:

    + +
      +
    • grant_type: This parameter MUST only be included when invoking the Token End point and MUST be set to authorisation_code or client_credentials. The value refresh_token is also valid when refreshing an access token.
    • +
    • code: This parameter MUST only be included when invoking the Token End point after utilising the Hybrid Authentication flow. This is the value of the code parameter returned in the authorisation response.
    • +
    • client_id: The ID of the calling Client.
    • +
    • client_assertion_type: This MUST be set to urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
    • +
    • client_assertion: The encoded assertion JWT.
    • +
    + +

    OIDC Client Types

    + +

    Only Confidential Clients SHALL be supported under this profile. Therefore, Public clients SHALL NOT be supported.

    + +

    In reference to the client types referenced in section 2.1 of [OAUTH2]:

    + +
      +
    • Confidential Clients MUST be supported under this profile.
    • +
    • Public clients MUST NOT be supported.
    • +
    + +

    JSON Web Key Sets

    + +

    Data Holder public keys MUST only be obtained from the standard OIDC end point used for that purpose.

    + +

    Data Recipient public keys MUST only be obtained from the URI registered with the CDR Register.

    + +

    CDR Register public keys MUST only be obtained from the end point exposed for that purpose.

    + +

    + + + +

    Consent requirements will be communicated between the Data Recipient and Data Holder via the authorisation request object. The primary mechanism for capturing consent will be scopes and claims under [OIDC].

    + +

    Other patterns for the establishment of consent may be considered in the future, including the incorporation of fine-grained consent for specific use cases.

    + +

    Scopes and Claims

    OIDC Scopes

    +

    In addition to CDR data scopes the following scopes MUST be supported:

    + +
      +
    • openid: As described as section 3.1.2.1 of [OIDC], this scope MUST be present on each authentication request.
    • +
    • profile: Data Holders MUST support the profile scope as described in section 5.4 of [OIDC]. This scope MAY be present on an authentication request.
    • +
    +

    Claims

    +

    The following normal [OIDC] claims MUST be supported. This list includes, but is not limited to, [OIDC] standard claims :

    + +
      +
    • sub: Pairwise Pseudonymous Identifier (PPID) for the End-User at the Data Holder.
    • +
    • acr: Authentication Context Class Reference. MUST contain a valid ordinal LoA value.
    • +
    • auth_time: Time when the End-User authentication occurred. Its value is a JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC auth_time. It MUST be returned by the Data Holder in the ID Token when the Data Recipient has requested it as an essential claim according to section 2 of the [OIDC] standard. It SHOULD NOT be returned via the UserInfo endpoint.
    • +
    • name: End-User's full name in displayable form including all name parts.
    • +
    • given_name: Given name(s) or first name(s) of the End-User.
    • +
    • family_name: Surname(s) or last name(s) of the End-User.
    • +
    • updated_at: Time the End-User's information was last updated. Its value is a JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC updated_at time.
    • +
    + +

    The following additional claims MUST be supported:

    + +
      +
    • refresh_token_expires_at: indicates the date-time at which the most recently provided refresh token will expire. Its value MUST be a number containing a NumericDate value, as specified in section 2 of section 2 [JWT]. If no refresh token has been provided then a zero value should be returned.
    • +
    • sharing_expires_at: indicates the date-time at which the current sharing arrangement will expire. Its value MUST be a number containing a NumericDate value, as specified in section 2 of [JWT]. If consent is not complete or a sharing_duration was not requested in the authorisation request object then a zero value should be returned.
    • +
    + +

    Tokens

    ID Token

    +
    +

    Non-Normative Example - acr

    +
    +
    {
    +  "iss": "https://www.holder.com.au",
    +  "sub": "a9ebbef6-1f0b-44eb-96cf-0c5b51b37ab2",
    +  "aud": "12345",
    +  "nonce": "n-0S6_WzA2Mj",
    +  "exp": 1311281970,
    +  "iat": 1311280970,
    +  "nbf": 1311280970,
    +  "auth_time": 1311280969,
    +  "acr": "urn:cds.au:cdr:3",
    +  "refresh_token_expires_at": 1311281970,
    +  "sharing_expires_at": 1311281970
    +}
    +
    +

    ID Tokens are specified in section 2 of the [OIDC] standard. In accordance with [FAPI-RW], ID Tokens must be signed and encrypted when returned +to a Data Recipient from both the Authorisation +End Point and Token End Point.

    + +

    In addition to the mandatory claims specified in section 2 of the [OIDC] standard, required claims for ID Tokens as part of Hybrid Flow authentication must align to section 3.3 (Authentication using the Hybrid Flow) of the [OIDC] standards and section 5.2.2 and section 8.4.3 of the [FAPI-RW] profile.

    + +

    ID Tokens MUST be signed by Data Holders as specified in section 8.6 of [FAPI-RW].

    + +

    The ID Token returned from the Authorisation End Point MUST NOT contain any Personal Information (PI) claims.

    +

    Hashing value for state and authorisation code

    +

    The c_hash value MUST be generated according to section 3.3.2.11 of [OIDC].

    + +

    The s_hash value MUST be generated according to section 5.1 of [FAPI-RW].

    +

    Access Token

    +

    Access Tokens MUST be used as specified in section 10.3 of [OAUTH2].

    + +

    An Access Token MUST expire between 2 minutes to 10 minutes after the Data Holder issues it (at the discretion of the Data Holder).

    + +

    The process for refreshing an Access Token is described in section 12.1 of [OIDC].

    +

    Refresh Token

    +

    Refresh Tokens MUST be supported by Data Holders.

    + +

    The usage of Refresh Tokens is specified in section 12 of [OIDC].

    + +

    The expiration time for a Refresh Token MUST be set by the Data Holder.

    + +

    Refresh Token expiration MAY be any length of time greater than 28 days but MUST NOT exceed the end of the duration of sharing consented to by the Consumer.

    + +

    Data Holders MAY cycle Refresh Tokens when an Access Token is issued. If Refresh Token cycling is not performed then the Refresh Token MUST NOT expire before the expiration of the sharing consented by the Customer.

    +

    Token Expiry

    +

    The expiry time for issued access tokens and refresh tokens must be deterministic for the Data Recipient.

    + +

    In order to achieve this:

    + +
      +
    • The Data Holder MUST indicate the lifetime in seconds of the access token in the expires_in field of the JSON object returned by the token end-point (see section 4.2.2 of [OAUTH2]).
    • +
    • The Data Holder MUST indicate the expiration time of the refresh token using the refresh_token_expires_at claim.
    • +
    + +

    +

    Identifiers and Subject Types

    sub claim

    +

    The identifier for an authenticated end-user (subject) MUST be passed in the sub claim of an ID Token and UserInfo response as defined by [OIDC].

    + +

    The Data Holder MUST generate the sub value as a Pairwise Pseudonymous Identifier (PPID) as described in section 8 of [OIDC]. Furthermore, the identifier MUST be unique per customer as per the definition of customer in the CDR Federation section of this profile.

    + +

    It is RECOMMENDED that the sub value is generated as a version 4 Universally Unique +Identifier (UUID) [RFC4122].

    +

    CDR Arrangement ID

    +
    +

    Non-normative example: Token Endpoint hydration

    + +

    Request

    +
    +
    POST /token HTTP/1.1
    +Host: https://data.holder.com.au
    +Content-Type: application/x-www-form-urlencoded
    +
    +client_id=s6BhdRkqt3
    +&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
    +&client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey ...
    +&grant_type=refresh_token
    +&refresh_token=8xLOxBtZp8
    +&scope=openid%20profile
    +
    +
    +

    Response

    +
    +
    {
    +  "access_token": "2YotnFZFEjr1zCsicMWpAA",
    +  "expires_in": 3600,
    +  "refresh_token": "tGzv3JOkF0XG5Qx2TlKWIA",
    +  "id_token": "eyJraWQiOiIxZTlnZGs3IiwiYWxnIjoiUl...",
    +  "cdr_arrangement_id": "02e7c9d9-cfe7-4c3e-8f64-e91173c84ecb"
    +}
    +
    +
    +

    Decoded JWT

    +
    +
    {
    +  "iss": "https://data.holder.com.au",
    +  "sub": "a9ebbef6-1f0b-44eb-96cf-0c5b51b37ab2",
    +  "aud": "12345",
    +  "nonce": "n-0S6_WzA2Mj",
    +  "exp": 1311281970,
    +  "iat": 1311280970,
    +  "nbf": 1311280970,
    +  "auth_time": 1311280969,
    +  "acr": "urn:cds.au:cdr:3",
    +  "refresh_token_expires_at": 1311281970,
    +  "sharing_expires_at": 1311281970
    +}
    +
    +
    +

    Non-normative example: Token Introspection Endpoint hydration

    + +

    Request

    +
    +
    POST /token/introspect HTTP/1.1
    +Host: https://data.holder.com.au
    +Content-Type: application/x-www-form-urlencoded
    +
    +client_id=s6BhdRkqt3
    +&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
    +&client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey ...
    +&token=tGzv3JOkF0XG5Qx2TlKWIA
    +&token_type_hint=refresh_token
    +
    +
    +

    Response

    +
    +
    {
    +  "active": true,
    +  "exp": 1311281970,
    +  "scope": "openid profile bank:accounts.basic:read bank:accounts.detail:read",
    +  "cdr_arrangement_id": "02e7c9d9-cfe7-4c3e-8f64-e91173c84ecb"
    +}
    +
    +

    The CDR Arrangement ID is a unique string representing a consent arrangement between a Data Recipient and Data Holder for a given consumer.

    + +

    The identifier MUST be unique per customer according to the definition of customer in the CDR Federation section of this profile.

    + +

    The Data Holder MUST provide the CDR Arrangement ID as the claim cdr_arrangement_id in the Token End Point response and Token Introspection End Point response.

    + +

    A Data Holder MUST only return the cdr_arrangement_id in the Token and Token Introspection End Point responses if they also support concurrent consent. This ensures that Data Recipients have a reliable way to determine whether a given Data Holder supports concurrent consent.

    + +

    Statements related to the CDR Arrangement ID:

    + +
      +
    • The CDR Arrangement ID MUST be unique to a Data Holder
    • +
    • The CDR Arrangement ID MUST be non-guessable and must not identify a consumer
    • +
    • A CDR Arrangement ID SHOULD be generated using an algorithm that reduces the chances of collision
    • +
    • A CDR Arrangement ID MUST be static across consents within the one sharing arrangement (e.g. across consent renewal and re-authorisation)
    • +
    +

    Retrospectively obtaining a CDR Arrangement ID

    +

    For any existing consents, Data Holders must retrospectively generate a cdr_arrangement_id such that from November 2020, Data Recipients can obtain a valid cdr_arrangement_id for all active consents they hold.

    + +

    A Data Recipient can call either the Token or Token Introspection End Points at any point post-consent to obtain the CDR Arrangement ID in the response JSON as the claim cdr_arrangement_id.

    + +

    +

    Levels of Assurance (LoAs)

    + +

    Levels Of Assurance (LoAs), returned after a successful authentication MUST be represented in Single Ordinal form where a single LoA value is represented.

    + +

    + +

    Single Ordinal

    + +

    A Single LoA value is carried in the acr claim which is described in section 2 of [OIDC].

    + +
      +
    • An LoA of 2 is represented by the URI: urn:cds.au:cdr:2

      + +
        +
      • The authenticator used to attain this level MUST conform with the Credential Level CL1 rules specified under the Trusted Digital Identity Framework [TDIF] Authentication Credential Requirements specification.
      • +
    • +
    • An LoA of 3 is represented by the URI: urn:cds.au:cdr:3

      + +
        +
      • The authenticators used to attain this level MUST conform with the Credential Level CL2 rules specified under the Trusted Digital Identity Framework [TDIF] Authentication Credential Requirements specification.
      • +
    • +
    + +

    READ operations SHALL only be allowed where at least an LoA of 2 has been achieved during the establishment of consent.

    + +

    WRITE operations SHALL only be allowed where:

    + +
      +
    • At least an LoA of 3 has been achieved during the establishment of consent, or
    • +
    • At least an LoA of 2 has been achieved during the establishment of consent and a subsequent challenge/response has resulted in an LoA of 3 being achieved within the lifespan of the current Access Token.
    • +
    + +

    Transaction Security

    Use of TLS

    +

    All HTTP calls MUST be made using HTTPS incorporating TLS >= 1.2.

    + +

    +

    Use of MTLS

    +

    All back-channel communication between Data Recipient and Data Holder systems MUST incorporate, unless stated otherwise, [MTLS] as part of the TLS handshake:

    + +
      +
    • The presented Client transport certificate MUST be issued by the CDR Certificate Authority (CA). The Server MUST NOT trust Client transport certificates issued by other authorities.
    • +
    • The presented Server transport certificate MUST be issued by the CDR Certificate Authority (CA). The Client MUST NOT trust Server transport certificates issued by other authorities.
    • +
    + +

    End points for transferring CDR Data that are classified as not requiring authentication do not require the use of [MTLS].

    +

    Holder of Key Mechanism

    +

    [MTLS] MUST be supported as a Holder of Key (HoK) Mechanism.

    + +

    Note that, by implication, resource requests MUST be validated to ensure the client certificate and access token match.

    + +

    OAUTB SHALL NOT be supported due to a lack industry support.

    + +

    [MTLS] HoK allows issued tokens to be bound to a client certificate as specified in section 3 of [MTLS].

    +

    Ciphers

    +

    Only the following cipher suites SHALL be permitted in accordance with section 8.5 of [FAPI-RW]:

    + +
      +
    • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
    • +
    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    • +
    • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
    • +
    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    • +
    + +

    CORS

    + +

    Cross-origin resource sharing (CORS) must be enabled (ie. Access-Control-Allow-Origin set to "*") for the following end points:

    + +
      +
    • Get Status
    • +
    • Get Outages
    • +
    • Get Products
    • +
    • Get Product Detail
    • +
    + +

    + +

    Request Object

    + +
    +

    Non-Normative Example - acr as an Essential Claim

    +
    + +
    #Decoded Request Object JWT
    +
    +{
    +  "iss": "s6BhdRkqt3",
    +  "exp": 1516239322,
    +  "aud": "https://www.recipient.com.au",
    +  "response_type": "code id_token",
    +  "client_id": "s6BhdRkqt3",
    +  "redirect_uri": "https://www.recipient.com.au/coolstuff",
    +  "scope": "openid profile bank:accounts.basic:read
    +            bank:accounts.detail:read",
    +  "nonce": "n-0S6_WzA2Mj",
    +  "state": "af0ifjsldkj",
    +  "claims": {
    +    "sharing_duration": 7776000,
    +    "cdr_arrangement_id": "02e7c9d9-cfe7-4c3e-8f64-e91173c84ecb",
    +    "id_token": {
    +      "acr": {
    +        "essential": true,
    +        "values": ["urn:cds.au:cdr:3"]
    +      }
    +    },
    +    "userinfo": {
    +      "given_name": null,
    +      "family_name": null
    +    }
    +  }
    +}
    +
    + +

    The Request Object is a signed and encoded JWT specified in section 6.1 of [OIDC]. As per [FAPI-RW] section 5.2.2, the request parameter MUST be present on requests to the [OIDC] Hybrid Authorisation End Point. The Request Object enables [OIDC] requests to be passed in a single and self-contained parameter.

    + +

    Request Objects MUST be signed by Data Recipients as specified in section 8.6 of [FAPI-RW].

    + +

    Request Object references MUST be supported if the Data Holder supports Pushed Authorisation Requests (PAR).

    + +

    Requesting Sharing Duration

    + +

    To facilitate the specification of the duration for consent to share CDR data that is approved by the consumer, a mechanism for the Data Recipient to specify a sharing duration to the Data Holder is required.

    + +

    To accomplish this, the Data Holder MUST support an additional claim in the authorisation request object named sharing_duration. The sharing_duration claim MUST be handled as follows:

    + +
      +
    • The sharing_duration parameter is a number
    • +
    • The value of the sharing_duration parameter will contain the requested duration for sharing, in seconds.
    • +
    • If the sharing_duration value exceeds one year then a duration of one year will be assumed.
    • +
    • If the sharing_duration value is less than or equal to 24 hours, then one-time collection will be assumed, and a Refresh Token should be provided by the Data Holder
    • +
    • If the sharing_duration value is zero or absent then once off access will be assumed and only an Access Token (without a Refresh Token) will be provided on successful authorisation.
    • +
    • If a Refresh Token is issued for one-time collection the Data Recipient must call the Data Holder’s revocation endpoint after successful collection of the CDR data.
    • +
    • If the sharing_duration value is negative then the authorisation should fail.
    • +
    + +

    Note that the period of one year in the above statements should be interpreted as 365, 24 hour days (or 31,536,000 seconds).

    + +

    The Data Recipient is able to obtain the expiration of sharing via the sharing_expires_at claim.

    + +

    Specifying an existing arrangement

    + +

    Provided a Data Holder supports PAR, they MUST also support the cdr_arrangement_id claim provided in the Request Object sent to the PAR End Point. The Data Recipient MAY provide the cdr_arrangement_id claim in the Request Object sent to the PAR End Point.

    + +

    The cdr_arrangement_id claim MUST be handled as follows:

    + +

    Until November 2020 data holders are not required to take any action if cdr_arrangement_id is supplied but MUST NOT respond with an error.

    + +

    Until November 2020 data recipients MUST NOT implement scenarios that support concurrent consent. Only single, extant consent scenarios should be implemented until this date.

    + +

    If a data recipient provides the cdr_arrangement_id claim in the request object to the data holder's PAR End Point, the data holder MUST revoke any existing tokens related to the arrangement once the new consent is successfully established and a new set of tokens has been provided to the data recipient.

    + +

    For data recipients seeking to replace consent where the Data Holder does not support PAR, data recipients MUST actively revoke previously supplied refresh tokens, immediately after receiving the tokens for a newly established consent, using the appropriate revocation end point.

    + +

    End Points

    + + + +

    OpenID Provider Configuration End Point

    + +
    +

    Non-Normative Example

    +
    + +
    ## Request
    +
    +GET /.well-known/openid-configuration HTTP/1.1
    +Host: www.dh.com.au
    +
    +## Response
    +
    +HTTP/1.1 200 OK
    +Content-Type: application/json
    +{
    +  "issuer": "https://www.dh.com.au",
    +  "authorization_endpoint": "https://www.dh.com.au/authorise",
    +  "token_endpoint": "https://www.dh.com.au/token",
    +  "introspection_endpoint": "https://www.dh.com.au/introspect",
    +  "revocation_endpoint": "https://www.dh.com.au/revoke",
    +  "userinfo_endpoint": "https://www.dh.com.au/userinfo",
    +  "registration_endpoint": "https://www.dh.com.au/register",
    +  "jwks_uri": "https://www.dh.com.au/jwks",
    +  "scopes_supported": ["openid", "profile", "..."],
    +  "response_types_supported": ["code id_token"],
    +  "response_modes_supported": ["fragment"],
    +  "grant_types_supported": ["authorization_code", "client_credentials", "urn:openid:params:modrna:grant-type:backchannel_request"],
    +  "acr_values_supported": ["urn:cds.au:cdr:2","urn:cds.au:cdr:3"],
    +  "subject_types_supported": ["pairwise"],
    +  "id_token_signing_alg_values_supported": ["ES256", "PS256"],
    +  "id_token_encryption_alg_values_supported": [ "RSA-OAEP", "RSA-OAEP-256", "dir", "ECDH-ES", "ECDH-ES+A128KW", "ECDH-ES+A192KW", "ECDH-ES+A256KW", "A128KW", "A192KW", "A256KW", "A128GCMKW", "A192GCMKW", "A256GCMKW" ],
    +  "id_token_encryption_enc_values_supported": [ "A128CBC-HS256", "A192CBC-HS384", "A256CBC-HS512", "A128GCM", "A192GCM", "A256GCM" ],
    +  "cdr_arrangement_revocation_endpoint": "https://data.holder.com.au/arrangements/revoke",
    +  "pushed_authorization_request_endpoint": "https://data.holder.com.au/par",
    +  "request_object_signing_alg_values_supported": ["ES256", "PS256"],
    +  "token_endpoint_auth_methods_supported": ["private_key_jwt"],
    +  "tls_client_certificate_bound_access_tokens": true,
    +  "claims_supported": ["name", "given_name", "family_name", "acr", "auth_time", "sub", "refresh_token_expires_at", "sharing_expires_at"]
    +}
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder
    Transport SecurityTLS
    Client Authentication RequiredNo
    Bearer Token RequiredNo
    + +

    Data Holders MUST make their OpenID Provider Metadata available via a configuration end point as outlined in Section 3 and 4 of the OpenID Connect Discovery standards [OIDD].

    + +

    At a minimum, the Data Holder metadata MUST include:

    + +
      +
    • issuer: URL that the Data Holder asserts as its Issuer Identifier.
    • +
    • authorization_endpoint: URL of the Authorization End Point.
    • +
    • token_endpoint: URL of the Token End Point.
    • +
    • introspection_endpoint: URL of the Introspection End Point.
    • +
    • revocation_endpoint: URL of the Revocation End Point.
    • +
    • userinfo_endpoint: URL of the UserInfo End Point.
    • +
    • registration_endpoint: URL of the Client Registration End Point.
    • +
    • scopes_supported: This list of supported scopes.
    • +
    • claims_supported: The list of supported claims.
    • +
    • acr_values_supported: The supported ACR values.
    • +
    • jwks_uri: The JSON Web Key Set for the data holder.
    • +
    • id_token_encryption_alg_values_supported: The list of the supported JWE algorithms for securing the issued ID tokens. Must conform to [FAPI-RW] and [OIDD].
    • +
    • id_token_encryption_enc_values_supported: The list of the supported JWE encryption methods for securing the issued ID tokens.
    • +
    + +

    From November 2020, the Data Holder metadata MUST include:

    + +
      +
    • cdr_arrangement_revocation_endpoint: The URL of the CDR Arrangement Revocation End Point for consent revocation
    • +
    • pushed_authorization_request_endpoint: URL of the Pushed Authorisation End Point used to support [PAR].
    • +
    + +

    + +

    Authorisation End Point

    + +
    +

    Non-Normative Example

    +
    + +
    ## Request
    +
    +GET /authorise?
    +   response_type=code%20id_token&client_id=12345&
    +   scope=openid%20profile%20bank:accounts.basic:read%20bank:accounts.detail:read&
    +   request=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMyJ9.ey ...
    +HTTP/1.1
    +Host: www.holder.com.au
    +
    +## Decoded request JWT
    +{
    +  "alg": "PS256",
    +  "typ": "JWT",
    +  "kid": "123"
    +}
    +{
    +  "iss": "12345",
    +  "exp": 1516239322,
    +  "aud": "https://www.recipient.com.au",
    +  "response_type": "code id_token",
    +  "client_id": "12345",
    +  "redirect_uri": "https://www.recipient.com.au/coolstuff",
    +  "scope": "openid profile bank:accounts.basic:read bank:accounts.detail:read",
    +  "state": "af0ifjsldkj",
    +  "nonce": "n-0S6_WzA2Mj",
    +  "claims": {
    +    "sharing_duration": 7776000,
    +    "userinfo": {
    +      "given_name": null,
    +      "family_name": null
    +    },
    +    "id_token": {
    +      "acr": {
    +        "essential": true,
    +        "values": ["urn:cds.au:cdr:3"]
    +      }
    +    }
    +  }
    +}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder
    Transport SecurityTLS
    Client Authentication RequiredNo
    Bearer Token RequiredNo
    + +

    The requirements for the Authorisation End Point are specified in section 3.3.2 of [OIDC] and further specified under section 5.2.2 of [FAPI-RW]. This end point is invoked as part of the Hybrid Authentication flow.

    + +

    JSON Web Key Set End Point

    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder & Data Recipient
    Transport SecurityTLS
    Client Authentication RequiredNo
    Bearer Token RequiredNo
    + +

    The requirements for the JWKS End Point are specified in various sections of [OIDC].

    + +

    This end point is used by the Data Holder to provide the public keys they will use when required.

    + +

    Data Holders MUST support a JWKS End Point.

    + +

    Token End Point

    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder
    Transport SecurityMTLS
    Client Authentication RequiredYes
    Bearer Token RequiredNo
    + +

    The requirements for the Token End Point are specified in section 3.3.3 of [OIDC].

    + +

    To obtain an Access Token, an ID Token, and a Refresh Token, the Data Recipient sends a Token Request to the Token End Point.

    + +

    Data Holders MUST support a Token End Point.

    + +

    UserInfo End Point

    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder
    Transport SecurityMTLS
    Client Authentication RequiredNo
    Bearer Token RequiredYes
    + +

    The requirements for the UserInfo End Point are specified in section 5.3 of [OIDC].

    + +

    Data Holders MUST support a UserInfo End Point.

    + +

    Introspection End Point

    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder
    Transport SecurityMTLS
    Client Authentication RequiredYes
    Bearer Token RequiredNo
    + +

    Data Holders MUST implement an Introspection End Point to allow Data Recipients to determine the status and expiry date of Refresh Tokens. The requirements for an Introspection End Point are described in section 2 of [RFC7662].

    + +

    Introspection of Refresh Tokens MUST be supported.

    + +

    Introspection of Access Tokens and ID Tokens MUST NOT be supported.

    + +

    A Token Introspection End Point Response SHALL include, at least, the following fields:

    + +
      +
    • active: Boolean indicator of whether or not the presented token + is currently active.
    • +
    • exp: A JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC expiry time.
    • +
    • scope: A JSON string containing a space-separated list of scopes associated with this token.
    • +
    • cdr_arrangement_id: A unique identifier of the CDR arrangement related to the authorisation.
    • +
    + +

    A Token Introspection End Point Response MAY include claims defined in Section 2.2 of [RFC7662] but username SHALL NOT be allowed.

    + +

    Token Revocation End Point

    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder and Data Recipient
    Transport SecurityMTLS for Data Holders, TLS for Data Recipients
    Client Authentication RequiredYes (for verifying Data Recipients)
    Bearer Token RequiredYes (for verifying Data Holders)
    + +

    Requirements for Data Holder implementations

    + +

    Data Holders MUST implement a Token Revocation End Point as described in section 2 of [RFC7009].

    + +

    The Revocation End Point serves as a revocation mechanism that allows a Data Recipient to invalidate its tokens as required to allow for token clean up.

    + +

    Revocation of Refresh Tokens and Access Tokens MUST be supported.

    + +

    Requirements for Data Recipient implementations

    + +

    The Token Revocation End Point, when implemented by the Data Recipient allows a Data Holder to notify the Data Recipient of the revocation of a sharing arrangement by the Customer in totality as required by the ACCC CDR Rules. This revocation will have been actioned by the Customer via the Data Holder’s consent dashboard as described in the ACCC CDR Rules.

    + +

    Revocation of Access Tokens MUST not be supported.

    + +

    Revocation of Refresh Tokens MUST be supported and will be used to notify the Data Recipient of sharing revocation.

    + +

    If consent is withdrawn by a Customer in writing or by using the Data Recipient’s dashboard the Data Recipient MUST revoke consent using Data Holder’s implementation.

    + +

    Revoking consent

    + +

    If the Data Holder does not support a CDR Arrangement Revocation End Point, Data Recipients MUST use the Data Holder's Token Revocation End Point with the current Refresh Token to notify the Data Holder.

    + +

    If the Data Holder does support the CDR Arrangement Revocation End Point, Data Recipients MUST use the Data Holder's CDR Arrangement Revocation End Point with a valid cdr_arrangement_id to notify the Data Holder.

    + +

    NOTE: Data Recipients MUST continue to support this Token Revocation End Point until February 2021.

    + +

    NOTE: Data Holders MUST continue to support consent revocation via the oAuth Token Revocation end point until February 2021.

    + +

    CDR Arrangement Revocation End Point

    + +
    +

    Non-Normative Example

    + +

    Request

    +
    + +
    POST https://data.holder.com.au/arrangements/revoke
    +HTTP/1.1
    +Host: data.holder.com.au
    +Content-Type: application/x-www-form-urlencoded
    +
    +  client_id=s6BhdRkqt3&
    +  client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&
    +  client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey ...&
    +  cdr_arrangement_id=5a1bf696-ee03-408b-b315-97955415d1f0
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder & Data Recipient
    Transport SecurityMTLS for Data Holders, TLS for Data Recipients
    Client Authentication RequiredYes (for Data Holders verifying Data Recipients)
    Bearer Token RequiredYes (for Data Recipients verifying Data Holders)
    + +

    HTTP Method: POST
    +Data Holder Path: The cdr_arrangement_revocation_endpoint defined using OIDC Discovery
    +Data Recipient Path: <RecipientBaseUri>/arrangements/revoke where <RecipientBaseUri> is registered with the CDR Register.

    + +

    From November 2020, Data Holders and Data Recipients MUST implement a CDR Arrangement Revocation End Point that can be used to revoke an existing sharing arrangement.

    + +

    The request MUST include the following parameters using the application/x-www-form-urlencoded format in the HTTP request entity-body:
    +cdr_arrangement_id: The ID of the arrangement that the client wants to revoke.

    + +

    This end point will be implemented according to the following:

    + +
      +
    • Data Recipients and Data Holders MUST revoke consent by calling the CDR Arrangement Revocation End Point with a valid CDR Arrangement ID
    • +
    • Data Holders MUST publish their CDR Arrangement Revocation End Point using their OpenID Provider Metadata Discovery End Point
    • +
    • Data Recipients MUST expose their CDR Arrangement Revocation End Point under their Recipient Base URI published in their Software Statement Assertion
    • +
    • Consent revocation MUST also revoke associated refresh and/or access tokens
    • +
    • For Data Recipients, Data Holder must be authenticated when they call this end point according to the guidance in the Client Authentication section.
    • +
    • If the cdr_arrangement_id is not related to the client making the call it MUST be rejected
    • +
    + +

    Response Codes

    + +

    The following responses are in addition to error responses covered by normative references. Error scenarios in the following table MUST use the error structure defined in the Payload Conventions.

    + + + + + + + + + + + + + + + + + + +
    Response CodeSituationDescription
    204 No ContentSuccessThe sharing arrangement has been revoked successfully
    422 Unprocessable EntityInvalid Arrangement IDThe client submitted an invalid arrangement identifier or the identifier could not be found
    + +

    Data Holders calling Data Recipients

    + +

    Data Holders may discover that a given Data Recipient supports the CDR Arrangement Revocation End Point by the presence of the Recipient Base URI in the Software Statement Assertion (SSA). If a Data Recipient does not support the CDR Arrangement Revocation End Point, the Data Holder MUST call the Data Recipient Token Revocation End Point.

    + +

    Data Recipients SHOULD update their client registration with each Data Holder as soon as is practical once they support the CDR Arrangement Revocation End Point.

    + +

    Data Recipients MUST continue to support their Token Revocation End Point until February 2021 and until they have updated their client registrations.

    + +

    Updating Register Meta Data and Client Registration

    + +

    When a Data Recipient supports the CDR Arrangement Revocation End Point, they MUST: +1. Update their meta data with the CDR Register to include their recipient_base_uri. +2. Update their client registration with each Data Holder.

    + +

    If the Data Recipient does not support the CDR Arrangement Revocation End Point, the Data Holder MUST instead revoke consent using the Data Recipient Token Revocation End Point.

    + +

    Data Recipients calling Data Holders

    + +

    Data Recipients may discover that a given Data Holder supports the CDR Arrangement Revocation End Point by the presence of the cdr_arrangement_revocation_endpoint in the Data Holder's OpenID Provider metadata.

    + +

    If a Data Recipient does not support the CDR Arrangement Revocation End Point, Data Holders must notify Data Recipients when consent is withdrawn by calling the Data Recipient Revocation End Point.

    + +

    Pushed Authorisation End Point

    + +
    +

    Non-Normative Example

    + +

    Request

    +
    + +
    POST /par HTTP/1.1
    +     Host: data.holder.com.au
    +     Content-Type: application/x-www-form-urlencoded
    +
    +request=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMyJ9.ey...
    +
    + +
    +

    Decoded Request

    +
    + +
    {
    +  "iss": "s6BhdRkqt3",
    +  "exp": 1516239322,
    +  "aud": "https://www.recipient.com.au",
    +  "response_type": "code id_token",
    +  "client_id": "s6BhdRkqt3",
    +  "redirect_uri": "https://www.recipient.com.au/coolstuff",
    +  "scope": "openid profile bank:accounts.basic:read
    +            bank:accounts.detail:read",
    +  "nonce": "n-0S6_WzA2Mj",
    +  "state": "af0ifjsldkj",
    +  "claims": {
    +    "sharing_duration": 7776000,
    +    "cdr_arrangement_id": "02e7c9d9-cfe7-4c3e-8f64-e91173c84ecb",
    +    "id_token": {
    +      "acr": {
    +        "essential": true,
    +        "values": ["urn:cds.au:cdr:3"]
    +      }
    +    },
    +    "userinfo": {
    +      "given_name": null,
    +      "family_name": null
    +    }
    +  }
    +}
    +
    + +
    +

    Response

    +
    + +
    HTTP/1.1 201 Created
    +Content-Type: application/json
    +Cache-Control: no-cache, no-store
    +{
    +  "request_uri": "urn:data.holder.com.au:bwc4JK-ESC0w8acc191e-Y1LTC2",
    +  "expires_in": 3600
    +}
    +
    + +
    +

    Authorise

    +
    + +
    ## This is used by the ADR in the subsequent authorisation request as follows
    +## (note that until PAR is an RFC standard, the mandatory oAuth parameters as
    +## per FAPI R/W for confidential clients must be replayed in the request URL):
    +
    +GET /authorise?client_id=s6BhdRkqt3&
    +   response_type=code%20id_token&
    +   scope=openid%20profile%20bank:accounts.basic:read%20bank:accounts.detail:read&
    +   request_uri=urn%3Adata.holder.com.au%3Abwc4JK-ESC0w8acc191e-Y1LTC2
    +HTTP/1.1
    +Host: data.holder.com.au
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionValue
    Hosted ByData Holder
    Transport SecurityMTLS
    Client Authentication RequiredYes
    Bearer Token RequiredNo
    + +

    From November 2020, Data Holders MUST support Pushed Authorisation Requests (PAR) via the pushed authorisation end point according to [PAR].

    + +

    Data Recipients MAY send authorisation requests using [PAR] if supported by the Data Holder. Request objects which contain the cdr_arrangement_id claim MUST only be sent using [PAR]. If a Data Holder does not support [PAR], a Data Recipient SHOULD NOT provide the cdr_arrangement_id claim in the request object.

    + +

    The Data Holder response provides the Data Recipient with a Request URI in the response. The Request URI is then passed to the Data Holder’s Authorisation End Point to initiate an authorisation flow.

    + +

    In addition:

    + +
      +
    • Request Object references SHALL NOT be supported in any mode of use other than [PAR]. If a Data Holder does not support [PAR], it MUST NOT support Request Object references.
    • +
    • The Request URI MUST expire between 10 seconds and 90 seconds
    • +
    • Data Recipients MAY provide an existing cdr_arrangement_id claim in an authorisation request object to establish a new consent under an existing arrangement
    • +
    • Data Holders MUST revoke existing refresh tokens and access tokens when a cdr_arrangement_id is provided in the Request Object but only after successful authorisation
    • +
    • If the cdr_arrangement_id is not related to the consumer being authenticated it MUST be rejected
    • +
    • If the cdr_arrangement_id is not recognised by to the Data Holder it MUST be rejected
    • +
    + +

    Normative References

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ReferenceDescriptionVersion
    [FAPI-R]Financial-grade API - Part 1: Read Only API Security Profile: https://openid.net/specs/openid-financial-api-part-1.htmlDraft-06
    [FAPI-RW]Financial-grade API - Part 2: Read and Write API Security Profile: https://openid.net/specs/openid-financial-api-part-2.htmlDraft-06
    [JSON]The JavaScript Object Notation (JSON) Data Interchange Format: https://tools.ietf.org/html/rfc8259Dec 2017
    [JWA]JSON Web Algorithms (JWA): https://tools.ietf.org/html/rfc7518May 2015
    [JWK]JSON Web Key (JWK): https://tools.ietf.org/html/rfc7517May 2015
    [JWT]JSON Web Token (JWT): https://tools.ietf.org/html/rfc7519May 2015
    [JWS]JSON Web Signature (JWS): https://tools.ietf.org/html/rfc7797Feb 2016
    [JWE]JSON Web Encryption (JWE): https://tools.ietf.org/html/rfc7516May 2015
    [MTLS]OAuth 2.0 Mutual TLS Client Authentication and Certificate Bound Access Tokens: https://tools.ietf.org/html/rfc8705Feb 2020
    [OAUTH2]The OAuth 2.0 Authorization Framework: https://tools.ietf.org/html/rfc6749Oct 2012
    [OIDC]OpenID Connect Core 1.0 incorporating errata set 1: http://openid.net/specs/openid-connect-core-1_0.htmlNov 2014
    [OIDD]OpenID Connect Discovery 1.0 incorporating errata set 1: http://openid.net/specs/openid-connect-discovery-1_0.htmlNov 2014
    [TDIF]Digital Transformation Agency - Trusted Digital Identity Framework https://www.dta.gov.au/our-projects/digital-identity/trusted-digital-identity-frameworkApr 2019
    [RFC2119]Key words for use in RFCs to Indicate Requirement Levels https://tools.ietf.org/html/rfc2119Mar 1997
    [RFC7009]OAuth 2.0 Token Revocation: https://tools.ietf.org/html/rfc7009Aug 2013
    [RFC7523]JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants: https://tools.ietf.org/html/rfc7523May 2015
    [RFC7662]OAuth 2.0 Token Introspection: https://tools.ietf.org/html/rfc7662Oct 2015
    [PAR]OAuth 2.0 Pushed Authorization Requests: https://tools.ietf.org/html/draft-ietf-oauth-par-01Feb 2020
    + +

    Informative References

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ReferenceDescription
    [BCP195]Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS): https://tools.ietf.org/html/bcp195
    [RFC7231]Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content: https://tools.ietf.org/html/rfc7231
    [CDR]Consumer Data Right: https://www.accc.gov.au/focus-areas/consumer-data-right
    [FAPI]Financial-Grade API - Home Page https://openid.net/wg/fapi/
    [RFC4122]A Universally Unique Identifier (UUID) URN Namespace: https://tools.ietf.org/html/rfc4122
    [X.1254]X.1254 - Entity authentication assurance framework: https://www.itu.int/rec/T-REC-X1254-201209-I/en
    +

    Consumer Experience

    +

    The Consumer Experience (CX) Standards contain requirements for the creation of implementations by both Data Recipients and Data Holders. The full list of CX Standards can be found below.

    + +

    The CX Guidelines provide examples and recommendations for how to implement key rules and standards that relate to the consumer experience. They can be found along with additional CX commentary at:

    + + +

    Consumer Experience Standards

    Data Language Standards

    +
    +


    + Example of data language standards presented in a consumer-facing interaction, where [1] refers to Data cluster language, and [2] refers to Data permission language.

    +
    + +

    In accordance with CDR Rule 8.11 (1)(d), a data standard must be made to provide descriptions of the types of data to be used by CDR participants in making and responding to requests. Adherence to this language will help ensure there is a consistent interpretation and description of the consumer data that will be shared across different CDR implementations.

    + + + + + + + + + + + + + + + +
    AreaCX Standard
    Data Language Standards: Language to be usedData Recipients and Data Holders MUST use data language standards to describe data clusters and permissions in consumer-facing interactions as outlined in Table 1 Data language standards MUST be used when CDR data is being requested, reviewed, or access to such data is withdrawn.
    • Data language standards MUST be used when CDR data is being requested, reviewed, or access to such data is withdrawn.
    • Data Recipients and Data Holders MUST use the appropriate data standards language for business consumers as denoted with an ‘*’ in Table 1
    • Data Recipients and Data Holders SHOULD expand on the proposed language where appropriate to communicate further details of what is being shared.
    • Additional details MAY include additional information in context, such as in-line help or tool tips, and/or additional permissions where they may exist. denoted with an ‘†’ in Table 1
    • Examples of permission details that MAY be used and provided as in-line help are denoted with an ‘†’ in Table 1
    Data Language Standards: Detailed scope requestsIf a scenario requires it, Data Holders and Data Recipients MUST merge and amend Basic and Detailed data cluster and permission language to show that Detailed scopes include Basic data.
    • Data Holders and Data Recipients MUST use the alternative language denoted with an ‘‡’ in Table 1 (rows greyed out for clarity).
    + +

    Table 1.

    +

    Individual Consumer

    + + + + + + + + + + + + + + + + + + + + + + +
    Data cluster languagePermission languageAuthorisation Scopes
    Name and occupationName
    Occupation
    common:customer.basic:read
    Contact DetailsPhone;
    Email address;
    Mail address;
    Residential address;
    common:customer.detail:read
    Name, occupation, contact details ‡Name;
    Occupation;
    Phone;
    Email address;
    Mail address;
    Residential address;
    common:customer.detail:read
    +

    Business consumer

    + + + + + + + + + + + + + + + + + + + + + + +
    Data cluster languagePermission languageAuthorisation Scopes
    Organisation profile *Agent name and role;
    Organisation name;
    Organisation numbers (ABN or ACN);
    Charity status;
    Establishment date;
    Industry;
    Organisation type
    Country of registration;
    common:customer.basic:read
    Organisation contact details *Organisation address;
    Organisation address;
    Phone number;
    common:customer.detail:read
    Organisation profile and contact details *‡Agent >name and role;
    Organisation name;
    Organisation numbers (ABN or ACN);†
    Charity status;
    Establishment date;
    Industry;
    Organisation type;
    Country of registration;
    Organisation address;
    Mail address
    address;
    Phone number;
    common:customer.detail:read
    +

    Common

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Data cluster languagePermission languageAuthorisation Scopes
    Account name, type and balanceName of account;
    Type of account;
    Account balance;
    bank:accounts.basic:read
    Account numbers and featuresAccount number;
    Interest rates;
    Fees;
    Discounts;
    Account terms;
    Account mail address;
    bank:accounts.detail:read
    Account balance and details‡Name of account;
    Type of account;
    Account balance;
    Account number;
    Interest rates;
    Fees;
    Discounts;
    Account terms;
    Account mail address;
    bank:accounts.detail:read
    Transaction detailsIncoming and outgoing transactions;
    Amounts;
    Dates;
    Descriptions of transactions;
    Who you have sent money to and received money from; (e.g. their name)†
    bank:transactions:read
    Direct debits and scheduled paymentsDirect debits;
    Scheduled payments;
    bank:regular_payments:read
    Saved payeesNames and details of accounts you have saved; (e.g. their BSB and Account Number, BPay CRN and Biller code, or NPP PayID)†bank:payees:read
    +

    Accessibility Standards

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AreaCX Standard
    AccessibilityAt a minimum, all CDR participants MUST seek to comply with the following accessibility guidelines throughout the Consent Model.
    • These standards SHOULD be assessed, tested, and refined further by accessibility consultants directly involved in implementation.
    Accessibility
    Content distinction
    Data recipients and data holders MUST seek to have all aspects of the Consent Model comply with WCAG 1.4 Data recipients and data holders MUST seek to have all aspects of the Consent Model comply with. This will make it easier to see and hear content, including separate foreground information from the background. This will make it easier to see and hear content, including separate foreground information from the background.
    Accessibility
    Keyboard functionality
    Data recipients and data holders MUST seek to have all aspects of the Consent Model comply with WCAG 2.1. This will make all functionality available from a keyboard.
    Accessibility
    Pointer interactions
    Data recipients and data holders MUST seek to have all aspects of the Consent Model comply with WCAG 2.5. This will make it easier to operate functionality using various input devices
    Accessibility
    Reading experiences
    Data recipients and data holders MUST seek to have all aspects of the Consent Model comply with WCAG 3.1. This will make text content readable and understandable
    Accessibility
    Input assistance
    Data recipients and data holders MUST seek to have all aspects of the Consent Model comply with WCAG 3.3. This will help users avoid and correct mistakes.
    + + + + + + + + + + + +
    AreaCX Standard
    Seeking consentData recipients MUST notify consumers of redirection prior to authentication.
    +

    Authentication Standards

    + + + + + + + + + + + + + + + + + + + + + + +
    AreaCX Standard
    Authentication:
    ‘One Time Password’
    Data holders and data recipients MUST clearly refer to a “One Time Password” in consumer-facing interactions and communications. The use of the term “One Time Password” MAY be presented alongside an existing term used by a data holder (e.g. Netcode, one time pin etc.).
    Authentication:
    Passwords
    Data holders and data recipients MUST state in consumer-facing interactions and communications that services utilising the CDR do not need access to consumer passwords for the purposes of sharing data. The exact phrasing of this is at the discretion of the data holder and data recipient.
    Authentication:
    Password link
    Data holders MUST NOT include forgotten details links in redirect screens. The inclusion of such links is considered to increase the likelihood of phishing attacks.
    Authentication:
    OTP expiry
    Data holders MUST communicate the expiry period of the OTP to the consumer in the authentication flow.
    +

    Authorisation Standards

    + + + + + + + + + + + + + + +
    AreaCX Standard
    Authorisation & Account selectionData holders MUST allow the consumer to select which of their accounts to share data from if the data request includes account-specific data and if there are multiple accounts available. The Data holder MAY omit this step if none of the data being requested is specific to an account (e.g. Saved Payees).

    Data holders MAY add a ‘profile selection’ step or equivalent prior to the account selection step if a single identifier provides access to different customer accounts. For example, one customer ID may give access to business customer and individual customer accounts. The ‘profile selection’ step SHOULD only be considered if it is an existing customer experience, and SHOULD be as minimal as possible to avoid introducing unwarranted friction (having regard to CDR Rule 4.24).
    • If certain accounts are unavailable to share, data holders SHOULD show these unavailable accounts in the account-selection step.
      • Data holders SHOULD communicate why these accounts cannot be selected, and this SHOULD be communicated as in-line help or as a modal to reduce on-screen content.
      • Data holders MAY provide instructions on how to make these accounts available to share, and this SHOULD be communicated as in-line help or as a modal to reduce on-screen content.
      • Note: Unavailable accounts are to be interpreted in accordance with the rules on eligible consumers and required consumer data.
    Authorisation:
    Account confirm
    Data holders MUST show which accounts the data is being shared from prior to confirming authorisation if the data request includes account-specific data. The data holder MAY omit this information if none of the data being requested is specific to an account (e.g. Saved Payees).
    +

    Amending Authorisation Standards

    + + + + + + + + + + + + + + + + + + + + + + +
    AreaCX Standard
    Authorisation:
    Amending consent
    Effective from July 2021:
    The following standards apply when a Data Holder invites a CDR consumer to amend a current authorisation as per rule 4.22A and the ADR has supplied a cdr_arrangement_id:

    Customer ProfileWhere customer profile selection applies, Data Holders MAY omit the profile selection step and assume the customer profile associated with the existing authorisation. Data Holders MAY indicate which profile the authorisation relates to during the authorisation process.
    Account SelectionWhere account selection applies, Data Holders MAY pre-select accounts that were associated with the previous authorisation provided these accounts remain eligible and available. Data Holders MAY allow these accounts to be amended, and MAY provide information regarding the pre-selection of accounts.
    Changing AttributesData Holders MAY indicate where a dataset is being added to an authorisation or a disclosure duration is being amended. Data Holders MAY apply this standard to other changing attributes, but this MUST ONLY apply where the attribute in the new authorisation differs to that of the previous authorisation. How a changed attributed is signified is at the Data Holder’s discretion.
    + +


    Refer also to Future Dated obligations

    + + + + + + + + + + + + + + + + + + + + + + + +
    AreaCX Standard
    Authorisation:
    Amending consent
    Effective from November 2021:
    The following standards apply when a Data Holder invites a CDR consumer to amend a current authorisation as per rule 4.22A and the ADR has supplied a cdr_arrangement_id:
    Customer ProfileWhere customer profile selection applies, Data Holders SHOULD omit the profile selection step and assume the customer profile associated with the existing authorisation. Data Holders MAY indicate which profile the authorisation relates to during the authorisation process.
    Account SelectionWhere account selection applies, Data Holders MUST pre-select accounts that were associated with the previous authorisation provided these accounts remain eligible and available to share. Data Holders MAY allow these accounts to be amended, and MAY provide information regarding the pre-selection of accounts.
    Changing AttributesData Holders MUST indicate where a dataset is being added to an authorisation or a disclosure duration is being amended. Data Holders MAY apply this standard to other changing attributes, but this MUST ONLY apply where the attribute in the new authorisation differs to that of the previous authorisation. How a changed attributed is signified is at the Data Holder’s discretion.
    + +


    Refer also to Future Dated obligations

    +

    Withdrawal Standards

    + + + + + + + + + + + + + + + + + + +
    AreaCX Standard
    Withdrawing consentIf a data recipient does not have a general policy to delete redundant data, and the consumer has not already requested that their redundant data be deleted:
    • Data recipients MUST allow consumers to elect to have their redundant data deleted as part of the withdrawal process prior to the final withdrawal step.
    • Data recipients SHOULD consider prompting consumers to exercise this right at appropriate times (e.g. when inaction on the part of the consumer may cause them to lose the opportunity to exercise the right to delete their redundant data).
    Withdrawing authorisation:
    Consequences
    As part of the withdrawal process, the data holder MUST advise the consumer to review the consequences of withdrawal with the data recipient before they stop sharing their data.
    • The data holder MAY consider using or paraphrasing the following message(s):
      • ‘You should check with [Data Recipient] before you stop sharing to understand the consequences.’
      • ‘You should check with [Data Recipient] to see if your service will be impacted before you stop sharing.’
    Withdrawing authorisation:
    Redundant data
    As part of the withdrawal process, the data holder MUST inform the consumer about the handling of redundant data and the right to delete.
    • The Data Holder MAY consider using or paraphrasing the following message(s):
      • ‘CDR data is either deleted or de-identified when it is no longer required.’
      • ‘[Data recipient] will have specific policies on how to handle your data once it’s no longer required.’
    +

    Banking APIs

    +

    Get Accounts

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts

    + +

    Obtain a list of accounts

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
    open-statusquerystringoptionalUsed to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
    is-ownedqueryBooleanoptionalFilters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    product-categoryBUSINESS_LOANS
    product-categoryCRED_AND_CHRG_CARDS
    product-categoryLEASES
    product-categoryMARGIN_LOANS
    product-categoryOVERDRAFTS
    product-categoryPERS_LOANS
    product-categoryREGULATED_TRUST_ACCOUNTS
    product-categoryRESIDENTIAL_MORTGAGES
    product-categoryTERM_DEPOSITS
    product-categoryTRADE_FINANCE
    product-categoryTRANS_AND_SAVINGS_ACCOUNTS
    product-categoryTRAVEL_CARDS
    open-statusALL
    open-statusCLOSED
    open-statusOPEN
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "accounts": [
    +      {
    +        "accountId": "string",
    +        "creationDate": "string",
    +        "displayName": "string",
    +        "nickname": "string",
    +        "openStatus": "OPEN",
    +        "isOwned": true,
    +        "maskedNumber": "string",
    +        "productCategory": "BUSINESS_LOANS",
    +        "productName": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingAccountList
    +

    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.
    + + +

    Get Bulk Balances

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/balances HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/balances',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/balances

    + +

    Obtain balances for multiple, filtered accounts

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
    open-statusquerystringoptionalUsed to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
    is-ownedqueryBooleanoptionalFilters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    product-categoryBUSINESS_LOANS
    product-categoryCRED_AND_CHRG_CARDS
    product-categoryLEASES
    product-categoryMARGIN_LOANS
    product-categoryOVERDRAFTS
    product-categoryPERS_LOANS
    product-categoryREGULATED_TRUST_ACCOUNTS
    product-categoryRESIDENTIAL_MORTGAGES
    product-categoryTERM_DEPOSITS
    product-categoryTRADE_FINANCE
    product-categoryTRANS_AND_SAVINGS_ACCOUNTS
    product-categoryTRAVEL_CARDS
    open-statusALL
    open-statusCLOSED
    open-statusOPEN
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "balances": [
    +      {
    +        "accountId": "string",
    +        "currentBalance": "string",
    +        "availableBalance": "string",
    +        "creditLimit": "string",
    +        "amortisedLimit": "string",
    +        "currency": "string",
    +        "purses": [
    +          {
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ]
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingAccountsBalanceList
    +

    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.
    + + +

    Get Balances For Specific Accounts

    +

    + +
    +

    Code samples

    +
    +
    POST https://data.holder.com.au/cds-au/v1/banking/accounts/balances HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/balances',
    +  method: 'post',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    POST /banking/accounts/balances

    + +

    Obtain balances for a specified list of accounts

    + +
    +

    Body parameter

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

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    bodybodyRequestAccountIdsmandatoryThe list of account IDs to obtain balances for
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "balances": [
    +      {
    +        "accountId": "string",
    +        "currentBalance": "string",
    +        "availableBalance": "string",
    +        "creditLimit": "string",
    +        "amortisedLimit": "string",
    +        "currency": "string",
    +        "purses": [
    +          {
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ]
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingAccountsBalanceList
    422Unprocessable EntityThe request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent contextResponseErrorList
    +

    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.
    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.
    + + +

    Get Account Balance

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/balance HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/balance',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/{accountId}/balance

    + +

    Obtain the balance for a single specified account

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    accountIdpathASCIIStringmandatoryID of the specific account requested
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "accountId": "string",
    +    "currentBalance": "string",
    +    "availableBalance": "string",
    +    "creditLimit": "string",
    +    "amortisedLimit": "string",
    +    "currency": "string",
    +    "purses": [
    +      {
    +        "amount": "string",
    +        "currency": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingAccountsBalanceById
    +

    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.
    + + +

    Get Account Detail

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId} HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/{accountId}

    + +

    Obtain detailed information on a single account

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    accountIdpathASCIIStringmandatoryA tokenised identifier for the account which is unique but not shareable
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "accountId": "string",
    +    "creationDate": "string",
    +    "displayName": "string",
    +    "nickname": "string",
    +    "openStatus": "OPEN",
    +    "isOwned": true,
    +    "maskedNumber": "string",
    +    "productCategory": "BUSINESS_LOANS",
    +    "productName": "string",
    +    "bsb": "string",
    +    "accountNumber": "string",
    +    "bundleName": "string",
    +    "specificAccountUType": "creditCard",
    +    "termDeposit": [
    +      {
    +        "lodgementDate": "string",
    +        "maturityDate": "string",
    +        "maturityAmount": "string",
    +        "maturityCurrency": "string",
    +        "maturityInstructions": "HOLD_ON_MATURITY"
    +      }
    +    ],
    +    "creditCard": {
    +      "minPaymentAmount": "string",
    +      "paymentDueAmount": "string",
    +      "paymentCurrency": "string",
    +      "paymentDueDate": "string"
    +    },
    +    "loan": {
    +      "originalStartDate": "string",
    +      "originalLoanAmount": "string",
    +      "originalLoanCurrency": "string",
    +      "loanEndDate": "string",
    +      "nextInstalmentDate": "string",
    +      "minInstalmentAmount": "string",
    +      "minInstalmentCurrency": "string",
    +      "maxRedraw": "string",
    +      "maxRedrawCurrency": "string",
    +      "minRedraw": "string",
    +      "minRedrawCurrency": "string",
    +      "offsetAccountEnabled": true,
    +      "offsetAccountIds": [
    +        "string"
    +      ],
    +      "repaymentType": "PRINCIPAL_AND_INTEREST",
    +      "repaymentFrequency": "string"
    +    },
    +    "depositRate": "string",
    +    "lendingRate": "string",
    +    "depositRates": [
    +      {
    +        "depositRateType": "BONUS",
    +        "rate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "lendingRates": [
    +      {
    +        "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +        "rate": "string",
    +        "comparisonRate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "interestPaymentDue": "IN_ADVANCE",
    +        "repaymentType": "INTEREST_ONLY",
    +        "loanPurpose": "INVESTMENT",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "features": [
    +      {
    +        "featureType": "ADDITIONAL_CARDS",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "isActivated": true
    +      }
    +    ],
    +    "fees": [
    +      {
    +        "name": "string",
    +        "feeType": "DEPOSIT",
    +        "amount": "string",
    +        "balanceRate": "string",
    +        "transactionRate": "string",
    +        "accruedRate": "string",
    +        "accrualFrequency": "string",
    +        "currency": "string",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "discounts": [
    +          {
    +            "description": "string",
    +            "discountType": "BALANCE",
    +            "amount": "string",
    +            "balanceRate": "string",
    +            "transactionRate": "string",
    +            "accruedRate": "string",
    +            "feeRate": "string",
    +            "additionalValue": "string",
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string",
    +            "eligibility": [
    +              {
    +                "discountEligibilityType": "BUSINESS",
    +                "additionalValue": "string",
    +                "additionalInfo": "string",
    +                "additionalInfoUri": "string"
    +              }
    +            ]
    +          }
    +        ]
    +      }
    +    ],
    +    "addresses": [
    +      {
    +        "addressUType": "paf",
    +        "simple": {
    +          "mailingName": "string",
    +          "addressLine1": "string",
    +          "addressLine2": "string",
    +          "addressLine3": "string",
    +          "postcode": "string",
    +          "city": "string",
    +          "state": "string",
    +          "country": "AUS"
    +        },
    +        "paf": {
    +          "dpid": "string",
    +          "thoroughfareNumber1": 0,
    +          "thoroughfareNumber1Suffix": "string",
    +          "thoroughfareNumber2": 0,
    +          "thoroughfareNumber2Suffix": "string",
    +          "flatUnitType": "string",
    +          "flatUnitNumber": "string",
    +          "floorLevelType": "string",
    +          "floorLevelNumber": "string",
    +          "lotNumber": "string",
    +          "buildingName1": "string",
    +          "buildingName2": "string",
    +          "streetName": "string",
    +          "streetType": "string",
    +          "streetSuffix": "string",
    +          "postalDeliveryType": "string",
    +          "postalDeliveryNumber": 0,
    +          "postalDeliveryNumberPrefix": "string",
    +          "postalDeliveryNumberSuffix": "string",
    +          "localityName": "string",
    +          "postcode": "string",
    +          "state": "string"
    +        }
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingAccountById
    +

    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.
    + + +

    Get Transactions For Account

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/transactions HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/transactions',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/{accountId}/transactions

    + +

    Obtain transactions for a specific account.

    + +

    Some general notes that apply to all end points that retrieve transactions:

    + +
      +
    • Where multiple transactions are returned, transactions should be ordered according to effective date in descending order
    • +
    • As the date and time for a transaction can alter depending on status and transaction type two separate date/times are included in the payload. There are still some scenarios where neither of these time stamps is available. For the purpose of filtering and ordering it is expected that the data holder will use the “effective” date/time which will be defined as: + +
        +
      • Posted date/time if available, then
      • +
      • Execution date/time if available, then
      • +
      • A reasonable date/time nominated by the data holder using internal data structures
      • +
    • +
    • For transaction amounts it should be assumed that a negative value indicates a reduction of the available balance on the account while a positive value indicates an increase in the available balance on the account
    • +
    • For aggregated transactions (ie. groups of sub transactions reported as a single entry for the account) only the aggregated information, with as much consistent information accross the subsidiary transactions as possible, is required to be shared
    • +
    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    accountIdpathASCIIStringmandatoryID of the account to get transactions for. Must have previously been returned by one of the account list end points.
    oldest-timequeryDateTimeStringoptionalConstrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type
    newest-timequeryDateTimeStringoptionalConstrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type
    min-amountqueryAmountStringoptionalFilter transactions to only transactions with amounts higher or equal to than this amount
    max-amountqueryAmountStringoptionalFilter transactions to only transactions with amounts less than or equal to than this amount
    textquerystringoptionalFilter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not)
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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",
    +        "transactionId": "string",
    +        "isDetailAvailable": true,
    +        "type": "DIRECT_DEBIT",
    +        "status": "PENDING",
    +        "description": "string",
    +        "postingDateTime": "string",
    +        "valueDateTime": "string",
    +        "executionDateTime": "string",
    +        "amount": "string",
    +        "currency": "string",
    +        "reference": "string",
    +        "merchantName": "string",
    +        "merchantCategoryCode": "string",
    +        "billerCode": "string",
    +        "billerName": "string",
    +        "crn": "string",
    +        "apcaNumber": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingTransactionList
    +

    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.
    + + +

    Get Transaction Detail

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/transactions/{transactionId} HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/transactions/{transactionId}',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/{accountId}/transactions/{transactionId}

    + +

    Obtain detailed information on a transaction for a specific account

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    accountIdpathASCIIStringmandatoryID of the account to get transactions for. Must have previously been returned by one of the account list end points
    transactionIdpathASCIIStringmandatoryID of the transaction obtained from a previous call to one of the other transaction end points
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "accountId": "string",
    +    "transactionId": "string",
    +    "isDetailAvailable": true,
    +    "type": "DIRECT_DEBIT",
    +    "status": "PENDING",
    +    "description": "string",
    +    "postingDateTime": "string",
    +    "valueDateTime": "string",
    +    "executionDateTime": "string",
    +    "amount": "string",
    +    "currency": "string",
    +    "reference": "string",
    +    "merchantName": "string",
    +    "merchantCategoryCode": "string",
    +    "billerCode": "string",
    +    "billerName": "string",
    +    "crn": "string",
    +    "apcaNumber": "string",
    +    "extendedData": {
    +      "payer": "string",
    +      "payee": "string",
    +      "extensionUType": "x2p101Payload",
    +      "x2p101Payload": {
    +        "extendedDescription": "string",
    +        "endToEndId": "string",
    +        "purposeCode": "string"
    +      },
    +      "service": "X2P1.01"
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingTransactionById
    +

    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.
    + + +

    Get Direct Debits For Account

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/direct-debits HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/direct-debits',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/{accountId}/direct-debits

    + +

    Obtain direct debit authorisations for a specific account

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    accountIdpathASCIIStringmandatoryID of the account to get direct debit authorisations for. Must have previously been returned by one of the account list end points.
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "directDebitAuthorisations": [
    +      {
    +        "accountId": "string",
    +        "authorisedEntity": {
    +          "description": "string",
    +          "financialInstitution": "string",
    +          "abn": "string",
    +          "acn": "string",
    +          "arbn": "string"
    +        },
    +        "lastDebitDateTime": "string",
    +        "lastDebitAmount": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingDirectDebitAuthorisationList
    +

    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.
    + + +

    Get Bulk Direct Debits

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/direct-debits HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/direct-debits',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/direct-debits

    + +

    Obtain direct debit authorisations for multiple, filtered accounts

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
    open-statusquerystringoptionalUsed to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
    is-ownedqueryBooleanoptionalFilters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    product-categoryBUSINESS_LOANS
    product-categoryCRED_AND_CHRG_CARDS
    product-categoryLEASES
    product-categoryMARGIN_LOANS
    product-categoryOVERDRAFTS
    product-categoryPERS_LOANS
    product-categoryREGULATED_TRUST_ACCOUNTS
    product-categoryRESIDENTIAL_MORTGAGES
    product-categoryTERM_DEPOSITS
    product-categoryTRADE_FINANCE
    product-categoryTRANS_AND_SAVINGS_ACCOUNTS
    product-categoryTRAVEL_CARDS
    open-statusALL
    open-statusCLOSED
    open-statusOPEN
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "directDebitAuthorisations": [
    +      {
    +        "accountId": "string",
    +        "authorisedEntity": {
    +          "description": "string",
    +          "financialInstitution": "string",
    +          "abn": "string",
    +          "acn": "string",
    +          "arbn": "string"
    +        },
    +        "lastDebitDateTime": "string",
    +        "lastDebitAmount": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingDirectDebitAuthorisationList
    +

    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.
    + + +

    Get Direct Debits For Specific Accounts

    +

    + +
    +

    Code samples

    +
    +
    POST https://data.holder.com.au/cds-au/v1/banking/accounts/direct-debits HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/direct-debits',
    +  method: 'post',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    POST /banking/accounts/direct-debits

    + +

    Obtain direct debit authorisations for a specified list of accounts

    + +
    +

    Body parameter

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

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    bodybodyRequestAccountIdsmandatoryArray of specific accountIds to obtain authorisations for
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "directDebitAuthorisations": [
    +      {
    +        "accountId": "string",
    +        "authorisedEntity": {
    +          "description": "string",
    +          "financialInstitution": "string",
    +          "abn": "string",
    +          "acn": "string",
    +          "arbn": "string"
    +        },
    +        "lastDebitDateTime": "string",
    +        "lastDebitAmount": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingDirectDebitAuthorisationList
    422Unprocessable EntityThe request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent contextResponseErrorList
    +

    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.
    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.
    + + +

    Get Scheduled Payments for Account

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/payments/scheduled HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}/payments/scheduled',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/accounts/{accountId}/payments/scheduled

    + +

    Obtain scheduled, outgoing payments for a specific account

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    accountIdpathASCIIStringmandatoryID of the account to get scheduled payments for. Must have previously been returned by one of the account list end points. The account specified is the source account for the payment
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "scheduledPayments": [
    +      {
    +        "scheduledPaymentId": "string",
    +        "nickname": "string",
    +        "payerReference": "string",
    +        "payeeReference": "string",
    +        "status": "ACTIVE",
    +        "from": {
    +          "accountId": "string"
    +        },
    +        "paymentSet": [
    +          {
    +            "to": {
    +              "toUType": "accountId",
    +              "accountId": "string",
    +              "payeeId": "string",
    +              "nickname": "string",
    +              "payeeReference": "string",
    +              "domestic": {
    +                "payeeAccountUType": "account",
    +                "account": {
    +                  "accountName": "string",
    +                  "bsb": "string",
    +                  "accountNumber": "string"
    +                },
    +                "card": {
    +                  "cardNumber": "string"
    +                },
    +                "payId": {
    +                  "name": "string",
    +                  "identifier": "string",
    +                  "type": "ABN"
    +                }
    +              },
    +              "biller": {
    +                "billerCode": "string",
    +                "crn": "string",
    +                "billerName": "string"
    +              },
    +              "international": {
    +                "beneficiaryDetails": {
    +                  "name": "string",
    +                  "country": "string",
    +                  "message": "string"
    +                },
    +                "bankDetails": {
    +                  "country": "string",
    +                  "accountNumber": "string",
    +                  "bankAddress": {
    +                    "name": "string",
    +                    "address": "string"
    +                  },
    +                  "beneficiaryBankBIC": "string",
    +                  "fedWireNumber": "string",
    +                  "sortCode": "string",
    +                  "chipNumber": "string",
    +                  "routingNumber": "string",
    +                  "legalEntityIdentifier": "string"
    +                }
    +              }
    +            },
    +            "isAmountCalculated": true,
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ],
    +        "recurrence": {
    +          "nextPaymentDate": "string",
    +          "recurrenceUType": "eventBased",
    +          "onceOff": {
    +            "paymentDate": "string"
    +          },
    +          "intervalSchedule": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "nonBusinessDayTreatment": "ON",
    +            "intervals": [
    +              {
    +                "interval": "string",
    +                "dayInInterval": "string"
    +              }
    +            ]
    +          },
    +          "lastWeekDay": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "interval": "string",
    +            "lastWeekDay": "FRI",
    +            "nonBusinessDayTreatment": "ON"
    +          },
    +          "eventBased": {
    +            "description": "string"
    +          }
    +        }
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingScheduledPaymentsList
    +

    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.
    + + +

    Get Scheduled Payments Bulk

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/payments/scheduled HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/payments/scheduled',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/payments/scheduled

    + +

    Obtain scheduled payments for multiple, filtered accounts that are the source of funds for the payments

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
    open-statusquerystringoptionalUsed to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
    is-ownedqueryBooleanoptionalFilters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    product-categoryBUSINESS_LOANS
    product-categoryCRED_AND_CHRG_CARDS
    product-categoryLEASES
    product-categoryMARGIN_LOANS
    product-categoryOVERDRAFTS
    product-categoryPERS_LOANS
    product-categoryREGULATED_TRUST_ACCOUNTS
    product-categoryRESIDENTIAL_MORTGAGES
    product-categoryTERM_DEPOSITS
    product-categoryTRADE_FINANCE
    product-categoryTRANS_AND_SAVINGS_ACCOUNTS
    product-categoryTRAVEL_CARDS
    open-statusALL
    open-statusCLOSED
    open-statusOPEN
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "scheduledPayments": [
    +      {
    +        "scheduledPaymentId": "string",
    +        "nickname": "string",
    +        "payerReference": "string",
    +        "payeeReference": "string",
    +        "status": "ACTIVE",
    +        "from": {
    +          "accountId": "string"
    +        },
    +        "paymentSet": [
    +          {
    +            "to": {
    +              "toUType": "accountId",
    +              "accountId": "string",
    +              "payeeId": "string",
    +              "nickname": "string",
    +              "payeeReference": "string",
    +              "domestic": {
    +                "payeeAccountUType": "account",
    +                "account": {
    +                  "accountName": "string",
    +                  "bsb": "string",
    +                  "accountNumber": "string"
    +                },
    +                "card": {
    +                  "cardNumber": "string"
    +                },
    +                "payId": {
    +                  "name": "string",
    +                  "identifier": "string",
    +                  "type": "ABN"
    +                }
    +              },
    +              "biller": {
    +                "billerCode": "string",
    +                "crn": "string",
    +                "billerName": "string"
    +              },
    +              "international": {
    +                "beneficiaryDetails": {
    +                  "name": "string",
    +                  "country": "string",
    +                  "message": "string"
    +                },
    +                "bankDetails": {
    +                  "country": "string",
    +                  "accountNumber": "string",
    +                  "bankAddress": {
    +                    "name": "string",
    +                    "address": "string"
    +                  },
    +                  "beneficiaryBankBIC": "string",
    +                  "fedWireNumber": "string",
    +                  "sortCode": "string",
    +                  "chipNumber": "string",
    +                  "routingNumber": "string",
    +                  "legalEntityIdentifier": "string"
    +                }
    +              }
    +            },
    +            "isAmountCalculated": true,
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ],
    +        "recurrence": {
    +          "nextPaymentDate": "string",
    +          "recurrenceUType": "eventBased",
    +          "onceOff": {
    +            "paymentDate": "string"
    +          },
    +          "intervalSchedule": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "nonBusinessDayTreatment": "ON",
    +            "intervals": [
    +              {
    +                "interval": "string",
    +                "dayInInterval": "string"
    +              }
    +            ]
    +          },
    +          "lastWeekDay": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "interval": "string",
    +            "lastWeekDay": "FRI",
    +            "nonBusinessDayTreatment": "ON"
    +          },
    +          "eventBased": {
    +            "description": "string"
    +          }
    +        }
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingScheduledPaymentsList
    +

    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.
    + + +

    Get Scheduled Payments For Specific Accounts

    +

    + +
    +

    Code samples

    +
    +
    POST https://data.holder.com.au/cds-au/v1/banking/payments/scheduled HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/payments/scheduled',
    +  method: 'post',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    POST /banking/payments/scheduled

    + +

    Obtain scheduled payments for a specified list of accounts

    + +
    +

    Body parameter

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

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    bodybodyRequestAccountIdsmandatoryArray of specific accountIds to obtain scheduled payments for. The accounts specified are the source of funds for the payments returned
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "scheduledPayments": [
    +      {
    +        "scheduledPaymentId": "string",
    +        "nickname": "string",
    +        "payerReference": "string",
    +        "payeeReference": "string",
    +        "status": "ACTIVE",
    +        "from": {
    +          "accountId": "string"
    +        },
    +        "paymentSet": [
    +          {
    +            "to": {
    +              "toUType": "accountId",
    +              "accountId": "string",
    +              "payeeId": "string",
    +              "nickname": "string",
    +              "payeeReference": "string",
    +              "domestic": {
    +                "payeeAccountUType": "account",
    +                "account": {
    +                  "accountName": "string",
    +                  "bsb": "string",
    +                  "accountNumber": "string"
    +                },
    +                "card": {
    +                  "cardNumber": "string"
    +                },
    +                "payId": {
    +                  "name": "string",
    +                  "identifier": "string",
    +                  "type": "ABN"
    +                }
    +              },
    +              "biller": {
    +                "billerCode": "string",
    +                "crn": "string",
    +                "billerName": "string"
    +              },
    +              "international": {
    +                "beneficiaryDetails": {
    +                  "name": "string",
    +                  "country": "string",
    +                  "message": "string"
    +                },
    +                "bankDetails": {
    +                  "country": "string",
    +                  "accountNumber": "string",
    +                  "bankAddress": {
    +                    "name": "string",
    +                    "address": "string"
    +                  },
    +                  "beneficiaryBankBIC": "string",
    +                  "fedWireNumber": "string",
    +                  "sortCode": "string",
    +                  "chipNumber": "string",
    +                  "routingNumber": "string",
    +                  "legalEntityIdentifier": "string"
    +                }
    +              }
    +            },
    +            "isAmountCalculated": true,
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ],
    +        "recurrence": {
    +          "nextPaymentDate": "string",
    +          "recurrenceUType": "eventBased",
    +          "onceOff": {
    +            "paymentDate": "string"
    +          },
    +          "intervalSchedule": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "nonBusinessDayTreatment": "ON",
    +            "intervals": [
    +              {
    +                "interval": "string",
    +                "dayInInterval": "string"
    +              }
    +            ]
    +          },
    +          "lastWeekDay": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "interval": "string",
    +            "lastWeekDay": "FRI",
    +            "nonBusinessDayTreatment": "ON"
    +          },
    +          "eventBased": {
    +            "description": "string"
    +          }
    +        }
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingScheduledPaymentsList
    422Unprocessable EntityThe request was well formed but was unable to be processed due to business logic specific to the request. For this API a 422 response must be given if any of the account IDs provided are invalid for the consent contextResponseErrorList
    +

    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.
    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.
    + + +

    Get Payees

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/payees HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/payees',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/payees

    + +

    Obtain a list of pre-registered payees

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    typequerystringoptionalFilter on the payee type field. In addition to normal type field values, ALL can be specified to retrieve all payees. If absent the assumed value is ALL
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    typeALL
    typeBILLER
    typeDOMESTIC
    typeINTERNATIONAL
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "payees": [
    +      {
    +        "payeeId": "string",
    +        "nickname": "string",
    +        "description": "string",
    +        "type": "BILLER",
    +        "creationDate": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingPayeeList
    +

    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.
    + + +

    Get Payee Detail

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/payees/{payeeId} HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/payees/{payeeId}',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/payees/{payeeId}

    + +

    Obtain detailed information on a single payee.

    + +

    Note that the payee sub-structure should be selected to represent the payment destination only rather than any known characteristics of the payment recipient

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    payeeIdpathASCIIStringmandatoryThe ID used to locate the details of a particular payee
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "payeeId": "string",
    +    "nickname": "string",
    +    "description": "string",
    +    "type": "BILLER",
    +    "creationDate": "string",
    +    "payeeUType": "biller",
    +    "domestic": {
    +      "payeeAccountUType": "account",
    +      "account": {
    +        "accountName": "string",
    +        "bsb": "string",
    +        "accountNumber": "string"
    +      },
    +      "card": {
    +        "cardNumber": "string"
    +      },
    +      "payId": {
    +        "name": "string",
    +        "identifier": "string",
    +        "type": "ABN"
    +      }
    +    },
    +    "biller": {
    +      "billerCode": "string",
    +      "crn": "string",
    +      "billerName": "string"
    +    },
    +    "international": {
    +      "beneficiaryDetails": {
    +        "name": "string",
    +        "country": "string",
    +        "message": "string"
    +      },
    +      "bankDetails": {
    +        "country": "string",
    +        "accountNumber": "string",
    +        "bankAddress": {
    +          "name": "string",
    +          "address": "string"
    +        },
    +        "beneficiaryBankBIC": "string",
    +        "fedWireNumber": "string",
    +        "sortCode": "string",
    +        "chipNumber": "string",
    +        "routingNumber": "string",
    +        "legalEntityIdentifier": "string"
    +      }
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingPayeeById
    +

    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.
    + + +

    Get Products

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/products HTTP/1.1
    +Host: data.holder.com.au
    +Accept: application/json
    +x-v: string
    +x-min-v: string
    +
    +
    var headers = {
    +  'Accept':'application/json',
    +  'x-v':'string',
    +  'x-min-v':'string'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/products',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/products

    + +

    Obtain a list of products that are currently openly offered to the market

    + +

    Note that the results returned by this end point are expected to be ordered in descending order according to lastUpdated.

    +

    Conventions

    +

    In the product reference payloads there are a number of recurring conventions that are explained here, in one place.

    +

    Arrays Of Features

    +

    In the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows:

    + +
      +
    • Each element in an array has the same structure so that clients can reliably interpret the payloads
    • +
    • Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees.
    • +
    • Each element has a field name additionalValue. This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the ADDITIONAL_CARDS feature is the number of cards allowed while the contents of this field for the MAX_LIMIT constraint would be the maximum credit limit allowed for the product.
    • +
    • An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths.
    • +
    • An element in these arrays may contain an additionalInfo and additionalInfoUri field. The additionalInfo field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The additionalInfoUri provides a link to externally hosted information specifically relevant to that feature of the product.
    • +
    • Depending on the type of data being represented there may be additional specific fields.
    • +
    +

    URIs To More Information

    +

    As the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels.

    + +

    These URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees.

    +

    Linkage To Accounts

    +

    From the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account.

    + +

    For this reason, while productCategory is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime.

    + +

    Similarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actual has been instantiated and created along with the associated decisions inherent in that process.

    +

    Dates

    +

    It is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a lastUpdated field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the updated-since query parameter.

    + +

    In addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely.

    + +

    NOTE: This version must be implemented by February 2021

    + +

    Obsolete versions: v1 v2

    +

    Endpoint Version

    + + + + + + + + + + +
    Version3
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    effectivequerystringoptionalAllows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'
    updated-sincequeryDateTimeStringoptionalOnly include products that have been updated after the specified date and time. If absent defaults to include all products
    brandquerystringoptionalFilter results based on a specific brand
    product-categoryquerystringoptionalUsed to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
    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.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    effectiveALL
    effectiveCURRENT
    effectiveFUTURE
    product-categoryBUSINESS_LOANS
    product-categoryCRED_AND_CHRG_CARDS
    product-categoryLEASES
    product-categoryMARGIN_LOANS
    product-categoryOVERDRAFTS
    product-categoryPERS_LOANS
    product-categoryREGULATED_TRUST_ACCOUNTS
    product-categoryRESIDENTIAL_MORTGAGES
    product-categoryTERM_DEPOSITS
    product-categoryTRADE_FINANCE
    product-categoryTRANS_AND_SAVINGS_ACCOUNTS
    product-categoryTRAVEL_CARDS
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "products": [
    +      {
    +        "productId": "string",
    +        "effectiveFrom": "string",
    +        "effectiveTo": "string",
    +        "lastUpdated": "string",
    +        "productCategory": "BUSINESS_LOANS",
    +        "name": "string",
    +        "description": "string",
    +        "brand": "string",
    +        "brandName": "string",
    +        "applicationUri": "string",
    +        "isTailored": true,
    +        "additionalInformation": {
    +          "overviewUri": "string",
    +          "termsUri": "string",
    +          "eligibilityUri": "string",
    +          "feesAndPricingUri": "string",
    +          "bundleUri": "string"
    +        },
    +        "cardArt": [
    +          {
    +            "title": "string",
    +            "imageUri": "string"
    +          }
    +        ]
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingProductList
    +

    Response Headers

    + + + + + + + + + + + + + + + + +
    StatusHeaderTypeFormatDescription
    200x-vstringThe version of the API end point that the data holder has responded with.
    + + +

    Get Product Detail

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/banking/products/{productId} HTTP/1.1
    +Host: data.holder.com.au
    +Accept: application/json
    +x-v: string
    +x-min-v: string
    +
    +
    var headers = {
    +  'Accept':'application/json',
    +  'x-v':'string',
    +  'x-min-v':'string'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/banking/products/{productId}',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /banking/products/{productId}

    + +

    Obtain detailed information on a single product offered openly to the market.

    + +

    NOTE: This version must be implemented by February 2021

    + +

    Obsolete versions: v1 v2

    +

    Endpoint Version

    + + + + + + + + + + +
    Version3
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    productIdpathASCIIStringmandatoryID of the specific product requested
    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.
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "productId": "string",
    +    "effectiveFrom": "string",
    +    "effectiveTo": "string",
    +    "lastUpdated": "string",
    +    "productCategory": "BUSINESS_LOANS",
    +    "name": "string",
    +    "description": "string",
    +    "brand": "string",
    +    "brandName": "string",
    +    "applicationUri": "string",
    +    "isTailored": true,
    +    "additionalInformation": {
    +      "overviewUri": "string",
    +      "termsUri": "string",
    +      "eligibilityUri": "string",
    +      "feesAndPricingUri": "string",
    +      "bundleUri": "string"
    +    },
    +    "cardArt": [
    +      {
    +        "title": "string",
    +        "imageUri": "string"
    +      }
    +    ],
    +    "bundles": [
    +      {
    +        "name": "string",
    +        "description": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "productIds": [
    +          "string"
    +        ]
    +      }
    +    ],
    +    "features": [
    +      {
    +        "featureType": "ADDITIONAL_CARDS",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "constraints": [
    +      {
    +        "constraintType": "MAX_BALANCE",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "eligibility": [
    +      {
    +        "eligibilityType": "BUSINESS",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "fees": [
    +      {
    +        "name": "string",
    +        "feeType": "DEPOSIT",
    +        "amount": "string",
    +        "balanceRate": "string",
    +        "transactionRate": "string",
    +        "accruedRate": "string",
    +        "accrualFrequency": "string",
    +        "currency": "string",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "discounts": [
    +          {
    +            "description": "string",
    +            "discountType": "BALANCE",
    +            "amount": "string",
    +            "balanceRate": "string",
    +            "transactionRate": "string",
    +            "accruedRate": "string",
    +            "feeRate": "string",
    +            "additionalValue": "string",
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string",
    +            "eligibility": [
    +              {
    +                "discountEligibilityType": "BUSINESS",
    +                "additionalValue": "string",
    +                "additionalInfo": "string",
    +                "additionalInfoUri": "string"
    +              }
    +            ]
    +          }
    +        ]
    +      }
    +    ],
    +    "depositRates": [
    +      {
    +        "depositRateType": "BONUS",
    +        "rate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "lendingRates": [
    +      {
    +        "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +        "rate": "string",
    +        "comparisonRate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "interestPaymentDue": "IN_ADVANCE",
    +        "repaymentType": "INTEREST_ONLY",
    +        "loanPurpose": "INVESTMENT",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseBankingProductById
    +

    Response Headers

    + + + + + + + + + + + + + + + + +
    StatusHeaderTypeFormatDescription
    200x-vstringThe version of the API end point that the data holder has responded with.
    + + + +

    Common APIs

    +

    Get Customer

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/common/customer HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/common/customer',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /common/customer

    + +

    Obtain basic information on the customer that has authorised the current session

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "customerUType": "organisation",
    +    "person": {
    +      "lastUpdateTime": "string",
    +      "firstName": "string",
    +      "lastName": "string",
    +      "middleNames": [
    +        "string"
    +      ],
    +      "prefix": "string",
    +      "suffix": "string",
    +      "occupationCode": "string",
    +      "occupationCodeVersion": "ANZSCO_1220.0_2013_V1.2"
    +    },
    +    "organisation": {
    +      "lastUpdateTime": "string",
    +      "agentFirstName": "string",
    +      "agentLastName": "string",
    +      "agentRole": "string",
    +      "businessName": "string",
    +      "legalName": "string",
    +      "shortName": "string",
    +      "abn": "string",
    +      "acn": "string",
    +      "isACNCRegistered": true,
    +      "industryCode": "string",
    +      "industryCodeVersion": "ANZSIC_1292.0_2006_V2.0",
    +      "organisationType": "COMPANY",
    +      "registeredCountry": "string",
    +      "establishmentDate": "string"
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseCommonCustomer
    +

    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.
    + + +

    Get Customer Detail

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/common/customer/detail HTTP/1.1
    +Host: data.holder.com.au
    +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
    +
    +
    var 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'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/common/customer/detail',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /common/customer/detail

    + +

    Obtain detailed information on the authorised customer within the current session.

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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-dateheaderstringoptionalThe time when the customer last logged in to the data recipient. Required for all resource calls (customer present and unattended). Not to be included for unauthenticated calls.
    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-headersheaderBase64optionalThe 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": {
    +    "customerUType": "organisation",
    +    "person": {
    +      "lastUpdateTime": "string",
    +      "firstName": "string",
    +      "lastName": "string",
    +      "middleNames": [
    +        "string"
    +      ],
    +      "prefix": "string",
    +      "suffix": "string",
    +      "occupationCode": "string",
    +      "occupationCodeVersion": "ANZSCO_1220.0_2013_V1.2",
    +      "phoneNumbers": [
    +        {
    +          "isPreferred": true,
    +          "purpose": "HOME",
    +          "countryCode": "string",
    +          "areaCode": "string",
    +          "number": "string",
    +          "extension": "string",
    +          "fullNumber": "string"
    +        }
    +      ],
    +      "emailAddresses": [
    +        {
    +          "isPreferred": true,
    +          "purpose": "HOME",
    +          "address": "string"
    +        }
    +      ],
    +      "physicalAddresses": [
    +        {
    +          "addressUType": "paf",
    +          "simple": {
    +            "mailingName": "string",
    +            "addressLine1": "string",
    +            "addressLine2": "string",
    +            "addressLine3": "string",
    +            "postcode": "string",
    +            "city": "string",
    +            "state": "string",
    +            "country": "AUS"
    +          },
    +          "paf": {
    +            "dpid": "string",
    +            "thoroughfareNumber1": 0,
    +            "thoroughfareNumber1Suffix": "string",
    +            "thoroughfareNumber2": 0,
    +            "thoroughfareNumber2Suffix": "string",
    +            "flatUnitType": "string",
    +            "flatUnitNumber": "string",
    +            "floorLevelType": "string",
    +            "floorLevelNumber": "string",
    +            "lotNumber": "string",
    +            "buildingName1": "string",
    +            "buildingName2": "string",
    +            "streetName": "string",
    +            "streetType": "string",
    +            "streetSuffix": "string",
    +            "postalDeliveryType": "string",
    +            "postalDeliveryNumber": 0,
    +            "postalDeliveryNumberPrefix": "string",
    +            "postalDeliveryNumberSuffix": "string",
    +            "localityName": "string",
    +            "postcode": "string",
    +            "state": "string"
    +          },
    +          "purpose": "MAIL"
    +        }
    +      ]
    +    },
    +    "organisation": {
    +      "lastUpdateTime": "string",
    +      "agentFirstName": "string",
    +      "agentLastName": "string",
    +      "agentRole": "string",
    +      "businessName": "string",
    +      "legalName": "string",
    +      "shortName": "string",
    +      "abn": "string",
    +      "acn": "string",
    +      "isACNCRegistered": true,
    +      "industryCode": "string",
    +      "industryCodeVersion": "ANZSIC_1292.0_2006_V2.0",
    +      "organisationType": "COMPANY",
    +      "registeredCountry": "string",
    +      "establishmentDate": "string",
    +      "physicalAddresses": [
    +        {
    +          "addressUType": "paf",
    +          "simple": {
    +            "mailingName": "string",
    +            "addressLine1": "string",
    +            "addressLine2": "string",
    +            "addressLine3": "string",
    +            "postcode": "string",
    +            "city": "string",
    +            "state": "string",
    +            "country": "AUS"
    +          },
    +          "paf": {
    +            "dpid": "string",
    +            "thoroughfareNumber1": 0,
    +            "thoroughfareNumber1Suffix": "string",
    +            "thoroughfareNumber2": 0,
    +            "thoroughfareNumber2Suffix": "string",
    +            "flatUnitType": "string",
    +            "flatUnitNumber": "string",
    +            "floorLevelType": "string",
    +            "floorLevelNumber": "string",
    +            "lotNumber": "string",
    +            "buildingName1": "string",
    +            "buildingName2": "string",
    +            "streetName": "string",
    +            "streetType": "string",
    +            "streetSuffix": "string",
    +            "postalDeliveryType": "string",
    +            "postalDeliveryNumber": 0,
    +            "postalDeliveryNumberPrefix": "string",
    +            "postalDeliveryNumberSuffix": "string",
    +            "localityName": "string",
    +            "postcode": "string",
    +            "state": "string"
    +          },
    +          "purpose": "MAIL"
    +        }
    +      ]
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseCommonCustomerDetail
    +

    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.
    + + +

    Get Status

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/discovery/status HTTP/1.1
    +Host: data.holder.com.au
    +Accept: application/json
    +x-v: string
    +x-min-v: string
    +
    +
    var headers = {
    +  'Accept':'application/json',
    +  'x-v':'string',
    +  'x-min-v':'string'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/discovery/status',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /discovery/status

    + +

    Obtain a health check status for the implementation

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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.
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "status": "OK",
    +    "explanation": "string",
    +    "detectionTime": "string",
    +    "expectedResolutionTime": "string",
    +    "updateTime": "string"
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseCommonDiscoveryStatus
    +

    Response Headers

    + + + + + + + + + + + + + + + + +
    StatusHeaderTypeFormatDescription
    200x-vstringThe version of the API end point that the data holder has responded with.
    + + +

    Get Outages

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/discovery/outages HTTP/1.1
    +Host: data.holder.com.au
    +Accept: application/json
    +x-v: string
    +x-min-v: string
    +
    +
    var headers = {
    +  'Accept':'application/json',
    +  'x-v':'string',
    +  'x-min-v':'string'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/discovery/outages',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    +

    GET /discovery/outages

    + +

    Obtain a list of scheduled outages for the implementation

    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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.
    + +
    +

    Example responses

    + +

    200 Response

    +
    +
    {
    +  "data": {
    +    "outages": [
    +      {
    +        "outageTime": "string",
    +        "duration": "string",
    +        "isPartial": true,
    +        "explanation": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseDiscoveryOutagesList
    +

    Response Headers

    + + + + + + + + + + + + + + + + +
    StatusHeaderTypeFormatDescription
    200x-vstringThe version of the API end point that the data holder has responded with.
    + + +

    Schemas

    +

    RequestAccountIds

    + +

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

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » accountIds[string]mandatorynonenone
    metaMetaoptionalnonenone
    + +

    ResponseBankingProductList

    + +

    +
    {
    +  "data": {
    +    "products": [
    +      {
    +        "productId": "string",
    +        "effectiveFrom": "string",
    +        "effectiveTo": "string",
    +        "lastUpdated": "string",
    +        "productCategory": "BUSINESS_LOANS",
    +        "name": "string",
    +        "description": "string",
    +        "brand": "string",
    +        "brandName": "string",
    +        "applicationUri": "string",
    +        "isTailored": true,
    +        "additionalInformation": {
    +          "overviewUri": "string",
    +          "termsUri": "string",
    +          "eligibilityUri": "string",
    +          "feesAndPricingUri": "string",
    +          "bundleUri": "string"
    +        },
    +        "cardArt": [
    +          {
    +            "title": "string",
    +            "imageUri": "string"
    +          }
    +        ]
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » products[BankingProductV3]mandatorynoneThe list of products returned. If the filter results in an empty set then this array may have no records
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    BankingProductV3

    + +

    +
    {
    +  "productId": "string",
    +  "effectiveFrom": "string",
    +  "effectiveTo": "string",
    +  "lastUpdated": "string",
    +  "productCategory": "BUSINESS_LOANS",
    +  "name": "string",
    +  "description": "string",
    +  "brand": "string",
    +  "brandName": "string",
    +  "applicationUri": "string",
    +  "isTailored": true,
    +  "additionalInformation": {
    +    "overviewUri": "string",
    +    "termsUri": "string",
    +    "eligibilityUri": "string",
    +    "feesAndPricingUri": "string",
    +    "bundleUri": "string"
    +  },
    +  "cardArt": [
    +    {
    +      "title": "string",
    +      "imageUri": "string"
    +    }
    +  ]
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    productIdASCIIStringmandatorynoneA data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.
    effectiveFromDateTimeStringoptionalnoneThe date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate
    effectiveToDateTimeStringoptionalnoneThe date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products
    lastUpdatedDateTimeStringmandatorynoneThe last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)
    productCategoryBankingProductCategorymandatorynoneThe category to which a product or account belongs. See here for more details
    namestringmandatorynoneThe display name of the product
    descriptionstringmandatorynoneA description of the product
    brandstringmandatorynoneA label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required
    brandNamestringoptionalnoneAn optional display name of the brand
    applicationUriURIStringoptionalnoneA link to an application web page where this product can be applied for.
    isTailoredBooleanmandatorynoneIndicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable
    additionalInformationobjectoptionalnoneObject that contains links to additional information on specific topics
    » overviewUriURIStringoptionalnoneGeneral overview of the product
    » termsUriURIStringoptionalnoneTerms and conditions for the product
    » eligibilityUriURIStringoptionalnoneEligibility rules and criteria for the product
    » feesAndPricingUriURIStringoptionalnoneDescription of fees, pricing, discounts, exemptions and bonuses for the product
    » bundleUriURIStringoptionalnoneDescription of a bundle that this product can be part of
    cardArt[object]optionalnoneAn array of card art images
    » titlestringoptionalnoneDisplay label for the specific image
    » imageUriURIStringmandatorynoneURI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI RFC 2397
    + +

    ResponseBankingProductById

    + +

    +
    {
    +  "data": {
    +    "productId": "string",
    +    "effectiveFrom": "string",
    +    "effectiveTo": "string",
    +    "lastUpdated": "string",
    +    "productCategory": "BUSINESS_LOANS",
    +    "name": "string",
    +    "description": "string",
    +    "brand": "string",
    +    "brandName": "string",
    +    "applicationUri": "string",
    +    "isTailored": true,
    +    "additionalInformation": {
    +      "overviewUri": "string",
    +      "termsUri": "string",
    +      "eligibilityUri": "string",
    +      "feesAndPricingUri": "string",
    +      "bundleUri": "string"
    +    },
    +    "cardArt": [
    +      {
    +        "title": "string",
    +        "imageUri": "string"
    +      }
    +    ],
    +    "bundles": [
    +      {
    +        "name": "string",
    +        "description": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "productIds": [
    +          "string"
    +        ]
    +      }
    +    ],
    +    "features": [
    +      {
    +        "featureType": "ADDITIONAL_CARDS",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "constraints": [
    +      {
    +        "constraintType": "MAX_BALANCE",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "eligibility": [
    +      {
    +        "eligibilityType": "BUSINESS",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "fees": [
    +      {
    +        "name": "string",
    +        "feeType": "DEPOSIT",
    +        "amount": "string",
    +        "balanceRate": "string",
    +        "transactionRate": "string",
    +        "accruedRate": "string",
    +        "accrualFrequency": "string",
    +        "currency": "string",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "discounts": [
    +          {
    +            "description": "string",
    +            "discountType": "BALANCE",
    +            "amount": "string",
    +            "balanceRate": "string",
    +            "transactionRate": "string",
    +            "accruedRate": "string",
    +            "feeRate": "string",
    +            "additionalValue": "string",
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string",
    +            "eligibility": [
    +              {
    +                "discountEligibilityType": "BUSINESS",
    +                "additionalValue": "string",
    +                "additionalInfo": "string",
    +                "additionalInfoUri": "string"
    +              }
    +            ]
    +          }
    +        ]
    +      }
    +    ],
    +    "depositRates": [
    +      {
    +        "depositRateType": "BONUS",
    +        "rate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "lendingRates": [
    +      {
    +        "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +        "rate": "string",
    +        "comparisonRate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "interestPaymentDue": "IN_ADVANCE",
    +        "repaymentType": "INTEREST_ONLY",
    +        "loanPurpose": "INVESTMENT",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataBankingProductDetailV3mandatorynonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    BankingProductDetailV3

    + +

    +
    {
    +  "productId": "string",
    +  "effectiveFrom": "string",
    +  "effectiveTo": "string",
    +  "lastUpdated": "string",
    +  "productCategory": "BUSINESS_LOANS",
    +  "name": "string",
    +  "description": "string",
    +  "brand": "string",
    +  "brandName": "string",
    +  "applicationUri": "string",
    +  "isTailored": true,
    +  "additionalInformation": {
    +    "overviewUri": "string",
    +    "termsUri": "string",
    +    "eligibilityUri": "string",
    +    "feesAndPricingUri": "string",
    +    "bundleUri": "string"
    +  },
    +  "cardArt": [
    +    {
    +      "title": "string",
    +      "imageUri": "string"
    +    }
    +  ],
    +  "bundles": [
    +    {
    +      "name": "string",
    +      "description": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string",
    +      "productIds": [
    +        "string"
    +      ]
    +    }
    +  ],
    +  "features": [
    +    {
    +      "featureType": "ADDITIONAL_CARDS",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "constraints": [
    +    {
    +      "constraintType": "MAX_BALANCE",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "eligibility": [
    +    {
    +      "eligibilityType": "BUSINESS",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "fees": [
    +    {
    +      "name": "string",
    +      "feeType": "DEPOSIT",
    +      "amount": "string",
    +      "balanceRate": "string",
    +      "transactionRate": "string",
    +      "accruedRate": "string",
    +      "accrualFrequency": "string",
    +      "currency": "string",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string",
    +      "discounts": [
    +        {
    +          "description": "string",
    +          "discountType": "BALANCE",
    +          "amount": "string",
    +          "balanceRate": "string",
    +          "transactionRate": "string",
    +          "accruedRate": "string",
    +          "feeRate": "string",
    +          "additionalValue": "string",
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string",
    +          "eligibility": [
    +            {
    +              "discountEligibilityType": "BUSINESS",
    +              "additionalValue": "string",
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            }
    +          ]
    +        }
    +      ]
    +    }
    +  ],
    +  "depositRates": [
    +    {
    +      "depositRateType": "BONUS",
    +      "rate": "string",
    +      "calculationFrequency": "string",
    +      "applicationFrequency": "string",
    +      "tiers": [
    +        {
    +          "name": "string",
    +          "unitOfMeasure": "DAY",
    +          "minimumValue": 0,
    +          "maximumValue": 0,
    +          "rateApplicationMethod": "PER_TIER",
    +          "applicabilityConditions": {
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          },
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string"
    +        }
    +      ],
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "lendingRates": [
    +    {
    +      "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +      "rate": "string",
    +      "comparisonRate": "string",
    +      "calculationFrequency": "string",
    +      "applicationFrequency": "string",
    +      "interestPaymentDue": "IN_ADVANCE",
    +      "repaymentType": "INTEREST_ONLY",
    +      "loanPurpose": "INVESTMENT",
    +      "tiers": [
    +        {
    +          "name": "string",
    +          "unitOfMeasure": "DAY",
    +          "minimumValue": 0,
    +          "maximumValue": 0,
    +          "rateApplicationMethod": "PER_TIER",
    +          "applicabilityConditions": {
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          },
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string"
    +        }
    +      ],
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ]
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousBankingProductV3mandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » bundles[BankingProductBundle]optionalnoneAn array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also
    » features[BankingProductFeature]optionalnoneArray of features available for the product
    » constraints[BankingProductConstraint]optionalnoneConstraints on the application for or operation of the product such as minimum balances or limit thresholds
    » eligibility[BankingProductEligibility]optionalnoneEligibility criteria for the product
    » fees[BankingProductFee]optionalnoneFees applicable for the product
    » depositRates[BankingProductDepositRate]optionalnoneInterest rates available for deposits
    » lendingRates[BankingProductLendingRateV2]optionalnoneInterest rates charged against lending balances
    + +

    BankingProductBundle

    + +

    +
    {
    +  "name": "string",
    +  "description": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string",
    +  "productIds": [
    +    "string"
    +  ]
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    namestringmandatorynoneName of the bundle
    descriptionstringmandatorynoneDescription of the bundle
    additionalInfostringoptionalnoneDisplay text providing more information on the bundle
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on the bundle criteria and benefits
    productIds[string]optionalnoneArray of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points
    + +

    BankingProductFeature

    + +

    +
    {
    +  "featureType": "ADDITIONAL_CARDS",
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    featureTypestringmandatorynoneThe type of feature described
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of the featureType.
    additionalInfostringconditionalnoneDisplay text providing more information on the feature. Mandatory if the feature type is set to OTHER
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this feature
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    featureTypeADDITIONAL_CARDS
    featureTypeBALANCE_TRANSFERS
    featureTypeBILL_PAYMENT
    featureTypeBONUS_REWARDS
    featureTypeCARD_ACCESS
    featureTypeCOMPLEMENTARY_PRODUCT_DISCOUNTS
    featureTypeDIGITAL_BANKING
    featureTypeDIGITAL_WALLET
    featureTypeDONATE_INTEREST
    featureTypeFREE_TXNS
    featureTypeFREE_TXNS_ALLOWANCE
    featureTypeINSURANCE
    featureTypeINTEREST_FREE
    featureTypeINTEREST_FREE_TRANSFERS
    featureTypeLOYALTY_PROGRAM
    featureTypeNOTIFICATIONS
    featureTypeNPP_ENABLED
    featureTypeNPP_PAYID
    featureTypeOFFSET
    featureTypeOTHER
    featureTypeOVERDRAFT
    featureTypeREDRAW
    featureTypeUNLIMITED_TXNS
    + +

    BankingProductConstraint

    + +

    +
    {
    +  "constraintType": "MAX_BALANCE",
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    constraintTypestringmandatorynoneThe type of constraint described. See the next section for an overview of valid values and their meaning
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the constraintType specified. Whether mandatory or not is dependent on the value of constraintType
    additionalInfostringoptionalnoneDisplay text providing more information the constraint
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on the constraint
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    constraintTypeMAX_BALANCE
    constraintTypeMAX_LIMIT
    constraintTypeMIN_BALANCE
    constraintTypeMIN_LIMIT
    constraintTypeOPENING_BALANCE
    + +

    BankingProductEligibility

    + +

    +
    {
    +  "eligibilityType": "BUSINESS",
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    eligibilityTypestringmandatorynoneThe type of eligibility criteria described. See the next section for an overview of valid values and their meaning
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the eligibilityType specified. Whether mandatory or not is dependent on the value of eligibilityType
    additionalInfostringconditionalnoneDisplay text providing more information on the eligibility criteria. Mandatory if the field is set to OTHER
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this eligibility criteria
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    eligibilityTypeBUSINESS
    eligibilityTypeEMPLOYMENT_STATUS
    eligibilityTypeMAX_AGE
    eligibilityTypeMIN_AGE
    eligibilityTypeMIN_INCOME
    eligibilityTypeMIN_TURNOVER
    eligibilityTypeNATURAL_PERSON
    eligibilityTypeOTHER
    eligibilityTypePENSION_RECIPIENT
    eligibilityTypeRESIDENCY_STATUS
    eligibilityTypeSTAFF
    eligibilityTypeSTUDENT
    + +

    BankingProductFee

    + +

    +
    {
    +  "name": "string",
    +  "feeType": "DEPOSIT",
    +  "amount": "string",
    +  "balanceRate": "string",
    +  "transactionRate": "string",
    +  "accruedRate": "string",
    +  "accrualFrequency": "string",
    +  "currency": "string",
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string",
    +  "discounts": [
    +    {
    +      "description": "string",
    +      "discountType": "BALANCE",
    +      "amount": "string",
    +      "balanceRate": "string",
    +      "transactionRate": "string",
    +      "accruedRate": "string",
    +      "feeRate": "string",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string",
    +      "eligibility": [
    +        {
    +          "discountEligibilityType": "BUSINESS",
    +          "additionalValue": "string",
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string"
    +        }
    +      ]
    +    }
    +  ]
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    namestringmandatorynoneName of the fee
    feeTypestringmandatorynoneThe type of fee
    amountAmountStringconditionalnoneThe amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the feeType "VARIABLE" is supplied
    balanceRateRateStringconditionalnoneA fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the feeType "VARIABLE" is supplied.
    transactionRateRateStringconditionalnoneA fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the feeType "VARIABLE" is supplied
    accruedRateRateStringconditionalnoneA fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the feeType "VARIABLE" is supplied
    accrualFrequencyExternalRefoptionalnoneThe indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    currencyCurrencyStringoptionalnoneThe currency the fee will be charged in. Assumes AUD if absent
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
    additionalInfostringoptionalnoneDisplay text providing more information on the fee
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this fee
    discounts[BankingProductDiscount]optionalnoneAn optional list of discounts to this fee that may be available
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    feeTypeDEPOSIT
    feeTypeEVENT
    feeTypeEXIT
    feeTypePAYMENT
    feeTypePERIODIC
    feeTypePURCHASE
    feeTypeTRANSACTION
    feeTypeUPFRONT
    feeTypeVARIABLE
    feeTypeWITHDRAWAL
    + +

    BankingProductDiscount

    + +

    +
    {
    +  "description": "string",
    +  "discountType": "BALANCE",
    +  "amount": "string",
    +  "balanceRate": "string",
    +  "transactionRate": "string",
    +  "accruedRate": "string",
    +  "feeRate": "string",
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string",
    +  "eligibility": [
    +    {
    +      "discountEligibilityType": "BUSINESS",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ]
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    descriptionstringmandatorynoneDescription of the discount
    discountTypestringmandatorynoneThe type of discount. See the next section for an overview of valid values and their meaning
    amountAmountStringconditionalnoneDollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory.
    balanceRateRateStringconditionalnoneA discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
    transactionRateRateStringconditionalnoneA discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory
    accruedRateRateStringconditionalnoneA discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
    feeRateRateStringconditionalnoneA discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType
    additionalInfostringoptionalnoneDisplay text providing more information on the discount
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this discount
    eligibility[BankingProductDiscountEligibility]conditionalnoneEligibility constraints that apply to this discount. Mandatory if discountType is ELIGIBILITY_ONLY.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    discountTypeBALANCE
    discountTypeDEPOSITS
    discountTypeELIGIBILITY_ONLY
    discountTypeFEE_CAP
    discountTypePAYMENTS
    + +

    BankingProductDiscountEligibility

    + +

    +
    {
    +  "discountEligibilityType": "BUSINESS",
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    discountEligibilityTypestringmandatorynoneThe type of the specific eligibility constraint for a discount
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the discountEligibilityType specified. Whether mandatory or not is dependent on the value of discountEligibilityType
    additionalInfostringconditionalnoneDisplay text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of discountEligibilityType
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this eligibility constraint
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    discountEligibilityTypeBUSINESS
    discountEligibilityTypeEMPLOYMENT_STATUS
    discountEligibilityTypeINTRODUCTORY
    discountEligibilityTypeMAX_AGE
    discountEligibilityTypeMIN_AGE
    discountEligibilityTypeMIN_INCOME
    discountEligibilityTypeMIN_TURNOVER
    discountEligibilityTypeNATURAL_PERSON
    discountEligibilityTypeOTHER
    discountEligibilityTypePENSION_RECIPIENT
    discountEligibilityTypeRESIDENCY_STATUS
    discountEligibilityTypeSTAFF
    discountEligibilityTypeSTUDENT
    + +

    BankingProductDepositRate

    + +

    +
    {
    +  "depositRateType": "BONUS",
    +  "rate": "string",
    +  "calculationFrequency": "string",
    +  "applicationFrequency": "string",
    +  "tiers": [
    +    {
    +      "name": "string",
    +      "unitOfMeasure": "DAY",
    +      "minimumValue": 0,
    +      "maximumValue": 0,
    +      "rateApplicationMethod": "PER_TIER",
    +      "applicabilityConditions": {
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      },
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    depositRateTypestringmandatorynoneThe type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning
    rateRateStringmandatorynoneThe rate to be applied
    calculationFrequencyExternalRefoptionalnoneThe period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    applicationFrequencyExternalRefoptionalnoneThe period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    tiers[BankingProductRateTierV3]optionalnoneRate tiers applicable for this rate
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
    additionalInfostringoptionalnoneDisplay text providing more information on the rate
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    depositRateTypeBONUS
    depositRateTypeBUNDLE_BONUS
    depositRateTypeFIXED
    depositRateTypeFLOATING
    depositRateTypeINTRODUCTORY
    depositRateTypeMARKET_LINKED
    depositRateTypeVARIABLE
    + +

    BankingProductLendingRateV2

    + +

    +
    {
    +  "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +  "rate": "string",
    +  "comparisonRate": "string",
    +  "calculationFrequency": "string",
    +  "applicationFrequency": "string",
    +  "interestPaymentDue": "IN_ADVANCE",
    +  "repaymentType": "INTEREST_ONLY",
    +  "loanPurpose": "INVESTMENT",
    +  "tiers": [
    +    {
    +      "name": "string",
    +      "unitOfMeasure": "DAY",
    +      "minimumValue": 0,
    +      "maximumValue": 0,
    +      "rateApplicationMethod": "PER_TIER",
    +      "applicabilityConditions": {
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      },
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "additionalValue": "string",
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    lendingRateTypestringmandatorynoneThe type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning
    rateRateStringmandatorynoneThe rate to be applied
    comparisonRateRateStringoptionalnoneA comparison rate equivalent for this rate
    calculationFrequencyExternalRefoptionalnoneThe period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    applicationFrequencyExternalRefoptionalnoneThe period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    interestPaymentDuestringoptionalnoneWhen loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered
    repaymentTypestringoptionalnoneOptions in place for repayments. If absent, the lending rate is applicable to all repayment types
    loanPurposestringoptionalnoneThe reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes
    tiers[BankingProductRateTierV3]optionalnoneRate tiers applicable for this rate
    additionalValuestringconditionalnoneGeneric field containing additional information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the value of lendingRateType
    additionalInfostringoptionalnoneDisplay text providing more information on the rate.
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    lendingRateTypeBUNDLE_DISCOUNT_FIXED
    lendingRateTypeBUNDLE_DISCOUNT_VARIABLE
    lendingRateTypeCASH_ADVANCE
    lendingRateTypeDISCOUNT
    lendingRateTypeFIXED
    lendingRateTypeFLOATING
    lendingRateTypeINTRODUCTORY
    lendingRateTypeMARKET_LINKED
    lendingRateTypePENALTY
    lendingRateTypePURCHASE
    lendingRateTypeVARIABLE
    interestPaymentDueIN_ADVANCE
    interestPaymentDueIN_ARREARS
    repaymentTypeINTEREST_ONLY
    repaymentTypePRINCIPAL_AND_INTEREST
    loanPurposeINVESTMENT
    loanPurposeOWNER_OCCUPIED
    + +

    BankingProductRateTierV3

    + +

    +
    {
    +  "name": "string",
    +  "unitOfMeasure": "DAY",
    +  "minimumValue": 0,
    +  "maximumValue": 0,
    +  "rateApplicationMethod": "PER_TIER",
    +  "applicabilityConditions": {
    +    "additionalInfo": "string",
    +    "additionalInfoUri": "string"
    +  },
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +
    +

    Defines the criteria and conditions for which a rate applies

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    namestringmandatorynoneA display name for the tier
    unitOfMeasurestringmandatorynoneThe 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)
    minimumValueNumbermandatorynoneThe number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value
    maximumValueNumberoptionalnoneThe 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.
    rateApplicationMethodstringoptionalnoneThe method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')
    applicabilityConditionsBankingProductRateConditionoptionalnoneDefines a condition for the applicability of a tiered rate
    additionalInfostringoptionalnoneDisplay text providing more information on the rate tier.
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this rate tier
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    unitOfMeasureDAY
    unitOfMeasureDOLLAR
    unitOfMeasureMONTH
    unitOfMeasurePERCENT
    rateApplicationMethodPER_TIER
    rateApplicationMethodWHOLE_BALANCE
    + +

    BankingProductRateCondition

    + +

    +
    {
    +  "additionalInfo": "string",
    +  "additionalInfoUri": "string"
    +}
    +
    +
    +

    Defines a condition for the applicability of a tiered rate

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    additionalInfostringoptionalnoneDisplay text providing more information on the condition
    additionalInfoUriURIStringoptionalnoneLink to a web page with more information on this condition
    + +

    ResponseBankingAccountList

    + +

    +
    {
    +  "data": {
    +    "accounts": [
    +      {
    +        "accountId": "string",
    +        "creationDate": "string",
    +        "displayName": "string",
    +        "nickname": "string",
    +        "openStatus": "OPEN",
    +        "isOwned": true,
    +        "maskedNumber": "string",
    +        "productCategory": "BUSINESS_LOANS",
    +        "productName": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » accounts[BankingAccount]mandatorynoneThe list of accounts returned. If the filter results in an empty set then this array may have no records
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    BankingAccount

    + +

    +
    {
    +  "accountId": "string",
    +  "creationDate": "string",
    +  "displayName": "string",
    +  "nickname": "string",
    +  "openStatus": "OPEN",
    +  "isOwned": true,
    +  "maskedNumber": "string",
    +  "productCategory": "BUSINESS_LOANS",
    +  "productName": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    accountIdASCIIStringmandatorynoneA unique ID of the account adhering to the standards for ID permanence
    creationDateDateStringoptionalnoneDate that the account was created (if known)
    displayNamestringmandatorynoneThe display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the MaskedAccountString common type.
    nicknamestringoptionalnoneA customer supplied nick name for the account
    openStatusstringoptionalnoneOpen or closed status for the account. If not present then OPEN is assumed
    isOwnedBooleanoptionalnoneFlag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then 'true' is assumed
    maskedNumberMaskedAccountStringmandatorynoneA masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number
    productCategoryBankingProductCategorymandatorynoneThe category to which a product or account belongs. See here for more details
    productNamestringmandatorynoneThe unique identifier of the account as defined by the data holder (akin to model number for the account)
    +

    Enumerated Values

    + + + + + + + + + + + + + + +
    PropertyValue
    openStatusCLOSED
    openStatusOPEN
    + +

    ResponseBankingAccountById

    + +

    +
    {
    +  "data": {
    +    "accountId": "string",
    +    "creationDate": "string",
    +    "displayName": "string",
    +    "nickname": "string",
    +    "openStatus": "OPEN",
    +    "isOwned": true,
    +    "maskedNumber": "string",
    +    "productCategory": "BUSINESS_LOANS",
    +    "productName": "string",
    +    "bsb": "string",
    +    "accountNumber": "string",
    +    "bundleName": "string",
    +    "specificAccountUType": "creditCard",
    +    "termDeposit": [
    +      {
    +        "lodgementDate": "string",
    +        "maturityDate": "string",
    +        "maturityAmount": "string",
    +        "maturityCurrency": "string",
    +        "maturityInstructions": "HOLD_ON_MATURITY"
    +      }
    +    ],
    +    "creditCard": {
    +      "minPaymentAmount": "string",
    +      "paymentDueAmount": "string",
    +      "paymentCurrency": "string",
    +      "paymentDueDate": "string"
    +    },
    +    "loan": {
    +      "originalStartDate": "string",
    +      "originalLoanAmount": "string",
    +      "originalLoanCurrency": "string",
    +      "loanEndDate": "string",
    +      "nextInstalmentDate": "string",
    +      "minInstalmentAmount": "string",
    +      "minInstalmentCurrency": "string",
    +      "maxRedraw": "string",
    +      "maxRedrawCurrency": "string",
    +      "minRedraw": "string",
    +      "minRedrawCurrency": "string",
    +      "offsetAccountEnabled": true,
    +      "offsetAccountIds": [
    +        "string"
    +      ],
    +      "repaymentType": "PRINCIPAL_AND_INTEREST",
    +      "repaymentFrequency": "string"
    +    },
    +    "depositRate": "string",
    +    "lendingRate": "string",
    +    "depositRates": [
    +      {
    +        "depositRateType": "BONUS",
    +        "rate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "lendingRates": [
    +      {
    +        "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +        "rate": "string",
    +        "comparisonRate": "string",
    +        "calculationFrequency": "string",
    +        "applicationFrequency": "string",
    +        "interestPaymentDue": "IN_ADVANCE",
    +        "repaymentType": "INTEREST_ONLY",
    +        "loanPurpose": "INVESTMENT",
    +        "tiers": [
    +          {
    +            "name": "string",
    +            "unitOfMeasure": "DAY",
    +            "minimumValue": 0,
    +            "maximumValue": 0,
    +            "rateApplicationMethod": "PER_TIER",
    +            "applicabilityConditions": {
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            },
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          }
    +        ],
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string"
    +      }
    +    ],
    +    "features": [
    +      {
    +        "featureType": "ADDITIONAL_CARDS",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "isActivated": true
    +      }
    +    ],
    +    "fees": [
    +      {
    +        "name": "string",
    +        "feeType": "DEPOSIT",
    +        "amount": "string",
    +        "balanceRate": "string",
    +        "transactionRate": "string",
    +        "accruedRate": "string",
    +        "accrualFrequency": "string",
    +        "currency": "string",
    +        "additionalValue": "string",
    +        "additionalInfo": "string",
    +        "additionalInfoUri": "string",
    +        "discounts": [
    +          {
    +            "description": "string",
    +            "discountType": "BALANCE",
    +            "amount": "string",
    +            "balanceRate": "string",
    +            "transactionRate": "string",
    +            "accruedRate": "string",
    +            "feeRate": "string",
    +            "additionalValue": "string",
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string",
    +            "eligibility": [
    +              {
    +                "discountEligibilityType": "BUSINESS",
    +                "additionalValue": "string",
    +                "additionalInfo": "string",
    +                "additionalInfoUri": "string"
    +              }
    +            ]
    +          }
    +        ]
    +      }
    +    ],
    +    "addresses": [
    +      {
    +        "addressUType": "paf",
    +        "simple": {
    +          "mailingName": "string",
    +          "addressLine1": "string",
    +          "addressLine2": "string",
    +          "addressLine3": "string",
    +          "postcode": "string",
    +          "city": "string",
    +          "state": "string",
    +          "country": "AUS"
    +        },
    +        "paf": {
    +          "dpid": "string",
    +          "thoroughfareNumber1": 0,
    +          "thoroughfareNumber1Suffix": "string",
    +          "thoroughfareNumber2": 0,
    +          "thoroughfareNumber2Suffix": "string",
    +          "flatUnitType": "string",
    +          "flatUnitNumber": "string",
    +          "floorLevelType": "string",
    +          "floorLevelNumber": "string",
    +          "lotNumber": "string",
    +          "buildingName1": "string",
    +          "buildingName2": "string",
    +          "streetName": "string",
    +          "streetType": "string",
    +          "streetSuffix": "string",
    +          "postalDeliveryType": "string",
    +          "postalDeliveryNumber": 0,
    +          "postalDeliveryNumberPrefix": "string",
    +          "postalDeliveryNumberSuffix": "string",
    +          "localityName": "string",
    +          "postcode": "string",
    +          "state": "string"
    +        }
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataBankingAccountDetailmandatorynonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    BankingAccountDetail

    + +

    +
    {
    +  "accountId": "string",
    +  "creationDate": "string",
    +  "displayName": "string",
    +  "nickname": "string",
    +  "openStatus": "OPEN",
    +  "isOwned": true,
    +  "maskedNumber": "string",
    +  "productCategory": "BUSINESS_LOANS",
    +  "productName": "string",
    +  "bsb": "string",
    +  "accountNumber": "string",
    +  "bundleName": "string",
    +  "specificAccountUType": "creditCard",
    +  "termDeposit": [
    +    {
    +      "lodgementDate": "string",
    +      "maturityDate": "string",
    +      "maturityAmount": "string",
    +      "maturityCurrency": "string",
    +      "maturityInstructions": "HOLD_ON_MATURITY"
    +    }
    +  ],
    +  "creditCard": {
    +    "minPaymentAmount": "string",
    +    "paymentDueAmount": "string",
    +    "paymentCurrency": "string",
    +    "paymentDueDate": "string"
    +  },
    +  "loan": {
    +    "originalStartDate": "string",
    +    "originalLoanAmount": "string",
    +    "originalLoanCurrency": "string",
    +    "loanEndDate": "string",
    +    "nextInstalmentDate": "string",
    +    "minInstalmentAmount": "string",
    +    "minInstalmentCurrency": "string",
    +    "maxRedraw": "string",
    +    "maxRedrawCurrency": "string",
    +    "minRedraw": "string",
    +    "minRedrawCurrency": "string",
    +    "offsetAccountEnabled": true,
    +    "offsetAccountIds": [
    +      "string"
    +    ],
    +    "repaymentType": "PRINCIPAL_AND_INTEREST",
    +    "repaymentFrequency": "string"
    +  },
    +  "depositRate": "string",
    +  "lendingRate": "string",
    +  "depositRates": [
    +    {
    +      "depositRateType": "BONUS",
    +      "rate": "string",
    +      "calculationFrequency": "string",
    +      "applicationFrequency": "string",
    +      "tiers": [
    +        {
    +          "name": "string",
    +          "unitOfMeasure": "DAY",
    +          "minimumValue": 0,
    +          "maximumValue": 0,
    +          "rateApplicationMethod": "PER_TIER",
    +          "applicabilityConditions": {
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          },
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string"
    +        }
    +      ],
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "lendingRates": [
    +    {
    +      "lendingRateType": "BUNDLE_DISCOUNT_FIXED",
    +      "rate": "string",
    +      "comparisonRate": "string",
    +      "calculationFrequency": "string",
    +      "applicationFrequency": "string",
    +      "interestPaymentDue": "IN_ADVANCE",
    +      "repaymentType": "INTEREST_ONLY",
    +      "loanPurpose": "INVESTMENT",
    +      "tiers": [
    +        {
    +          "name": "string",
    +          "unitOfMeasure": "DAY",
    +          "minimumValue": 0,
    +          "maximumValue": 0,
    +          "rateApplicationMethod": "PER_TIER",
    +          "applicabilityConditions": {
    +            "additionalInfo": "string",
    +            "additionalInfoUri": "string"
    +          },
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string"
    +        }
    +      ],
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string"
    +    }
    +  ],
    +  "features": [
    +    {
    +      "featureType": "ADDITIONAL_CARDS",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string",
    +      "isActivated": true
    +    }
    +  ],
    +  "fees": [
    +    {
    +      "name": "string",
    +      "feeType": "DEPOSIT",
    +      "amount": "string",
    +      "balanceRate": "string",
    +      "transactionRate": "string",
    +      "accruedRate": "string",
    +      "accrualFrequency": "string",
    +      "currency": "string",
    +      "additionalValue": "string",
    +      "additionalInfo": "string",
    +      "additionalInfoUri": "string",
    +      "discounts": [
    +        {
    +          "description": "string",
    +          "discountType": "BALANCE",
    +          "amount": "string",
    +          "balanceRate": "string",
    +          "transactionRate": "string",
    +          "accruedRate": "string",
    +          "feeRate": "string",
    +          "additionalValue": "string",
    +          "additionalInfo": "string",
    +          "additionalInfoUri": "string",
    +          "eligibility": [
    +            {
    +              "discountEligibilityType": "BUSINESS",
    +              "additionalValue": "string",
    +              "additionalInfo": "string",
    +              "additionalInfoUri": "string"
    +            }
    +          ]
    +        }
    +      ]
    +    }
    +  ],
    +  "addresses": [
    +    {
    +      "addressUType": "paf",
    +      "simple": {
    +        "mailingName": "string",
    +        "addressLine1": "string",
    +        "addressLine2": "string",
    +        "addressLine3": "string",
    +        "postcode": "string",
    +        "city": "string",
    +        "state": "string",
    +        "country": "AUS"
    +      },
    +      "paf": {
    +        "dpid": "string",
    +        "thoroughfareNumber1": 0,
    +        "thoroughfareNumber1Suffix": "string",
    +        "thoroughfareNumber2": 0,
    +        "thoroughfareNumber2Suffix": "string",
    +        "flatUnitType": "string",
    +        "flatUnitNumber": "string",
    +        "floorLevelType": "string",
    +        "floorLevelNumber": "string",
    +        "lotNumber": "string",
    +        "buildingName1": "string",
    +        "buildingName2": "string",
    +        "streetName": "string",
    +        "streetType": "string",
    +        "streetSuffix": "string",
    +        "postalDeliveryType": "string",
    +        "postalDeliveryNumber": 0,
    +        "postalDeliveryNumberPrefix": "string",
    +        "postalDeliveryNumberSuffix": "string",
    +        "localityName": "string",
    +        "postcode": "string",
    +        "state": "string"
    +      }
    +    }
    +  ]
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousBankingAccountmandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » bsbstringoptionalnoneThe unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces
    » accountNumberstringoptionalnoneThe unmasked account number for the account. Should not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces
    » bundleNamestringoptionalnoneOptional field to indicate if this account is part of a bundle that is providing additional benefit for to the customer
    » specificAccountUTypestringoptionalnoneThe type of structure to present account specific fields.
    » termDeposit[BankingTermDepositAccount]conditionalnonenone
    » creditCardBankingCreditCardAccountconditionalnonenone
    » loanBankingLoanAccountconditionalnonenone
    » depositRateRateStringoptionalnonecurrent rate to calculate interest earned being applied to deposit balances as it stands at the time of the API call
    » lendingRateRateStringoptionalnoneThe current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call
    » depositRates[BankingProductDepositRate]optionalnoneFully described deposit rates for this account based on the equivalent structure in Product Reference
    » lendingRates[BankingProductLendingRateV2]optionalnoneFully described deposit rates for this account based on the equivalent structure in Product Reference
    » features[allOf]optionalnoneArray of features of the account based on the equivalent structure in Product Reference with the following additional field
    + +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    »» anonymousBankingProductFeaturemandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    »» anonymousobjectmandatorynonenone
    »»» isActivatedBooleanoptionalnoneTrue if the feature is already activated and false if the feature is available for activation. Defaults to true if absent. (note this is an additional field appended to the feature object defined in the Product Reference payload)
    + +

    continued

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    »» fees[BankingProductFee]optionalnoneFees and charges applicable to the account based on the equivalent structure in Product Reference
    »» addresses[CommonPhysicalAddress]optionalnoneThe addresses for the account to be used for correspondence
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + +
    PropertyValue
    specificAccountUTypecreditCard
    specificAccountUTypeloan
    specificAccountUTypetermDeposit
    + +

    BankingTermDepositAccount

    + +

    +
    {
    +  "lodgementDate": "string",
    +  "maturityDate": "string",
    +  "maturityAmount": "string",
    +  "maturityCurrency": "string",
    +  "maturityInstructions": "HOLD_ON_MATURITY"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    lodgementDateDateStringmandatorynoneThe lodgement date of the original deposit
    maturityDateDateStringmandatorynoneMaturity date for the term deposit
    maturityAmountAmountStringoptionalnoneAmount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated
    maturityCurrencyCurrencyStringoptionalnoneIf absent assumes AUD
    maturityInstructionsstringmandatorynoneCurrent instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g. roll-over to the same term and frequency of interest payments
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + +
    PropertyValue
    maturityInstructionsHOLD_ON_MATURITY
    maturityInstructionsPAID_OUT_AT_MATURITY
    maturityInstructionsROLLED_OVER
    + +

    BankingCreditCardAccount

    + +

    +
    {
    +  "minPaymentAmount": "string",
    +  "paymentDueAmount": "string",
    +  "paymentCurrency": "string",
    +  "paymentDueDate": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    minPaymentAmountAmountStringmandatorynoneThe minimum payment amount due for the next card payment
    paymentDueAmountAmountStringmandatorynoneThe amount due for the next card payment
    paymentCurrencyCurrencyStringoptionalnoneIf absent assumes AUD
    paymentDueDateDateStringmandatorynoneDate that the next payment for the card is due
    + +

    BankingLoanAccount

    + +

    +
    {
    +  "originalStartDate": "string",
    +  "originalLoanAmount": "string",
    +  "originalLoanCurrency": "string",
    +  "loanEndDate": "string",
    +  "nextInstalmentDate": "string",
    +  "minInstalmentAmount": "string",
    +  "minInstalmentCurrency": "string",
    +  "maxRedraw": "string",
    +  "maxRedrawCurrency": "string",
    +  "minRedraw": "string",
    +  "minRedrawCurrency": "string",
    +  "offsetAccountEnabled": true,
    +  "offsetAccountIds": [
    +    "string"
    +  ],
    +  "repaymentType": "PRINCIPAL_AND_INTEREST",
    +  "repaymentFrequency": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    originalStartDateDateStringoptionalnoneOptional original start date for the loan
    originalLoanAmountAmountStringoptionalnoneOptional original loan value
    originalLoanCurrencyCurrencyStringoptionalnoneIf absent assumes AUD
    loanEndDateDateStringmandatorynoneDate that the loan is due to be repaid in full
    nextInstalmentDateDateStringmandatorynoneNext date that an instalment is required
    minInstalmentAmountAmountStringoptionalnoneMinimum amount of next instalment
    minInstalmentCurrencyCurrencyStringoptionalnoneIf absent assumes AUD
    maxRedrawAmountStringoptionalnoneMaximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account
    maxRedrawCurrencyCurrencyStringoptionalnoneIf absent assumes AUD
    minRedrawAmountStringoptionalnoneMinimum redraw amount
    minRedrawCurrencyCurrencyStringoptionalnoneIf absent assumes AUD
    offsetAccountEnabledBooleanoptionalnoneSet to true if one or more offset accounts are configured for this loan account
    offsetAccountIds[string]optionalnoneThe accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that offsetAccountEnabled is set to true but the offsetAccountIds field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation
    repaymentTypestringoptionalnoneOptions in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST
    repaymentFrequencyExternalRefmandatorynoneThe expected or required repayment frequency. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    +

    Enumerated Values

    + + + + + + + + + + + + + + +
    PropertyValue
    repaymentTypeINTEREST_ONLY
    repaymentTypePRINCIPAL_AND_INTEREST
    + +

    ResponseBankingTransactionList

    + +

    +
    {
    +  "data": {
    +    "transactions": [
    +      {
    +        "accountId": "string",
    +        "transactionId": "string",
    +        "isDetailAvailable": true,
    +        "type": "DIRECT_DEBIT",
    +        "status": "PENDING",
    +        "description": "string",
    +        "postingDateTime": "string",
    +        "valueDateTime": "string",
    +        "executionDateTime": "string",
    +        "amount": "string",
    +        "currency": "string",
    +        "reference": "string",
    +        "merchantName": "string",
    +        "merchantCategoryCode": "string",
    +        "billerCode": "string",
    +        "billerName": "string",
    +        "crn": "string",
    +        "apcaNumber": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » transactions[BankingTransaction]mandatorynonenone
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    BankingTransaction

    + +

    +
    {
    +  "accountId": "string",
    +  "transactionId": "string",
    +  "isDetailAvailable": true,
    +  "type": "DIRECT_DEBIT",
    +  "status": "PENDING",
    +  "description": "string",
    +  "postingDateTime": "string",
    +  "valueDateTime": "string",
    +  "executionDateTime": "string",
    +  "amount": "string",
    +  "currency": "string",
    +  "reference": "string",
    +  "merchantName": "string",
    +  "merchantCategoryCode": "string",
    +  "billerCode": "string",
    +  "billerName": "string",
    +  "crn": "string",
    +  "apcaNumber": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    accountIdASCIIStringmandatorynoneID of the account for which transactions are provided
    transactionIdASCIIStringconditionalnoneA unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type
    isDetailAvailableBooleanmandatorynoneTrue if extended information is available using the transaction detail end point. False if extended data is not available
    typestringmandatorynoneThe type of the transaction
    statusstringmandatorynoneStatus of the transaction whether pending or posted. Note that there is currently no provision in the standards to guarantee the ability to correlate a pending transaction with an associated posted transaction
    descriptionstringmandatorynoneThe transaction description as applied by the financial institution
    postingDateTimeDateTimeStringconditionalnoneThe time the transaction was posted. This field is Mandatory if the transaction has status POSTED. This is the time that appears on a standard statement
    valueDateTimeDateTimeStringoptionalnoneDate and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry
    executionDateTimeDateTimeStringoptionalnoneThe time the transaction was executed by the originating customer, if available
    amountAmountStringmandatorynoneThe value of the transaction. Negative values mean money was outgoing from the account
    currencyCurrencyStringoptionalnoneThe currency for the transaction amount. AUD assumed if not present
    referencestringmandatorynoneThe reference for the transaction provided by the originating institution. Empty string if no data provided
    merchantNamestringoptionalnoneName of the merchant for an outgoing payment to a merchant
    merchantCategoryCodestringoptionalnoneThe merchant category code (or MCC) for an outgoing payment to a merchant
    billerCodestringoptionalnoneBPAY Biller Code for the transaction (if available)
    billerNamestringoptionalnoneName of the BPAY biller for the transaction (if available)
    crnstringconditionalnoneBPAY CRN for the transaction (if available).
    Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type.
    apcaNumberstringoptionalnone6 Digit APCA number for the initiating institution. The field is fixed-width and padded with leading zeros if applicable.
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    typeDIRECT_DEBIT
    typeFEE
    typeINTEREST_CHARGED
    typeINTEREST_PAID
    typeOTHER
    typePAYMENT
    typeTRANSFER_INCOMING
    typeTRANSFER_OUTGOING
    statusPENDING
    statusPOSTED
    + +

    ResponseBankingTransactionById

    + +

    +
    {
    +  "data": {
    +    "accountId": "string",
    +    "transactionId": "string",
    +    "isDetailAvailable": true,
    +    "type": "DIRECT_DEBIT",
    +    "status": "PENDING",
    +    "description": "string",
    +    "postingDateTime": "string",
    +    "valueDateTime": "string",
    +    "executionDateTime": "string",
    +    "amount": "string",
    +    "currency": "string",
    +    "reference": "string",
    +    "merchantName": "string",
    +    "merchantCategoryCode": "string",
    +    "billerCode": "string",
    +    "billerName": "string",
    +    "crn": "string",
    +    "apcaNumber": "string",
    +    "extendedData": {
    +      "payer": "string",
    +      "payee": "string",
    +      "extensionUType": "x2p101Payload",
    +      "x2p101Payload": {
    +        "extendedDescription": "string",
    +        "endToEndId": "string",
    +        "purposeCode": "string"
    +      },
    +      "service": "X2P1.01"
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataBankingTransactionDetailmandatorynonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    BankingTransactionDetail

    + +

    +
    {
    +  "accountId": "string",
    +  "transactionId": "string",
    +  "isDetailAvailable": true,
    +  "type": "DIRECT_DEBIT",
    +  "status": "PENDING",
    +  "description": "string",
    +  "postingDateTime": "string",
    +  "valueDateTime": "string",
    +  "executionDateTime": "string",
    +  "amount": "string",
    +  "currency": "string",
    +  "reference": "string",
    +  "merchantName": "string",
    +  "merchantCategoryCode": "string",
    +  "billerCode": "string",
    +  "billerName": "string",
    +  "crn": "string",
    +  "apcaNumber": "string",
    +  "extendedData": {
    +    "payer": "string",
    +    "payee": "string",
    +    "extensionUType": "x2p101Payload",
    +    "x2p101Payload": {
    +      "extendedDescription": "string",
    +      "endToEndId": "string",
    +      "purposeCode": "string"
    +    },
    +    "service": "X2P1.01"
    +  }
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousBankingTransactionmandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » extendedDataobjectmandatorynonenone
    »» payerstringconditionalnoneLabel of the originating payer. Mandatory for inbound payment
    »» payeestringconditionalnoneLabel of the target PayID. Mandatory for an outbound payment. The name assigned to the BSB/Account Number or PayID (by the owner of the PayID)
    »» extensionUTypestringoptionalnoneOptional extended data provided specific to transaction originated via NPP
    »» x2p101Payloadobjectoptionalnonenone
    »»» extendedDescriptionstringmandatorynoneAn extended string description. Only present if specified by the extensionUType field
    »»» endToEndIdstringoptionalnoneAn end to end ID for the payment created at initiation
    »»» purposeCodestringoptionalnonePurpose of the payment. Format is defined by NPP standards for the x2p1.01 overlay service
    »» servicestringmandatorynoneIdentifier of the applicable overlay service. Valid values are: X2P1.01
    +

    Enumerated Values

    + + + + + + + + + + + + + + +
    PropertyValue
    extensionUTypex2p101Payload
    serviceX2P1.01
    + +

    ResponseBankingAccountsBalanceList

    + +

    +
    {
    +  "data": {
    +    "balances": [
    +      {
    +        "accountId": "string",
    +        "currentBalance": "string",
    +        "availableBalance": "string",
    +        "creditLimit": "string",
    +        "amortisedLimit": "string",
    +        "currency": "string",
    +        "purses": [
    +          {
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ]
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » balances[BankingBalance]mandatorynoneThe list of balances returned
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    ResponseBankingAccountsBalanceById

    + +

    +
    {
    +  "data": {
    +    "accountId": "string",
    +    "currentBalance": "string",
    +    "availableBalance": "string",
    +    "creditLimit": "string",
    +    "amortisedLimit": "string",
    +    "currency": "string",
    +    "purses": [
    +      {
    +        "amount": "string",
    +        "currency": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataBankingBalancemandatorynonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    BankingBalance

    + +

    +
    {
    +  "accountId": "string",
    +  "currentBalance": "string",
    +  "availableBalance": "string",
    +  "creditLimit": "string",
    +  "amortisedLimit": "string",
    +  "currency": "string",
    +  "purses": [
    +    {
    +      "amount": "string",
    +      "currency": "string"
    +    }
    +  ]
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    accountIdASCIIStringmandatorynoneA unique ID of the account adhering to the standards for ID permanence
    currentBalanceAmountStringmandatorynoneThe balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing
    availableBalanceAmountStringmandatorynoneBalance representing the amount of funds available for transfer. Assumed to be zero or positive
    creditLimitAmountStringoptionalnoneObject representing the maximum amount of credit that is available for this account. Assumed to be zero if absent
    amortisedLimitAmountStringoptionalnoneObject representing the available limit amortised according to payment schedule. Assumed to be zero if absent
    currencyCurrencyStringoptionalnoneThe currency for the balance amounts. If absent assumed to be AUD
    purses[BankingBalancePurse]optionalnoneOptional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards
    + +

    BankingBalancePurse

    + +

    +
    {
    +  "amount": "string",
    +  "currency": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    amountAmountStringmandatorynoneThe balance available for this additional currency purse
    currencyCurrencyStringoptionalnoneThe currency for the purse
    + +

    ResponseBankingPayeeList

    + +

    +
    {
    +  "data": {
    +    "payees": [
    +      {
    +        "payeeId": "string",
    +        "nickname": "string",
    +        "description": "string",
    +        "type": "BILLER",
    +        "creationDate": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » payees[BankingPayee]mandatorynoneThe list of payees returned
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    ResponseBankingPayeeById

    + +

    +
    {
    +  "data": {
    +    "payeeId": "string",
    +    "nickname": "string",
    +    "description": "string",
    +    "type": "BILLER",
    +    "creationDate": "string",
    +    "payeeUType": "biller",
    +    "domestic": {
    +      "payeeAccountUType": "account",
    +      "account": {
    +        "accountName": "string",
    +        "bsb": "string",
    +        "accountNumber": "string"
    +      },
    +      "card": {
    +        "cardNumber": "string"
    +      },
    +      "payId": {
    +        "name": "string",
    +        "identifier": "string",
    +        "type": "ABN"
    +      }
    +    },
    +    "biller": {
    +      "billerCode": "string",
    +      "crn": "string",
    +      "billerName": "string"
    +    },
    +    "international": {
    +      "beneficiaryDetails": {
    +        "name": "string",
    +        "country": "string",
    +        "message": "string"
    +      },
    +      "bankDetails": {
    +        "country": "string",
    +        "accountNumber": "string",
    +        "bankAddress": {
    +          "name": "string",
    +          "address": "string"
    +        },
    +        "beneficiaryBankBIC": "string",
    +        "fedWireNumber": "string",
    +        "sortCode": "string",
    +        "chipNumber": "string",
    +        "routingNumber": "string",
    +        "legalEntityIdentifier": "string"
    +      }
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataBankingPayeeDetailmandatorynonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    BankingPayee

    + +

    +
    {
    +  "payeeId": "string",
    +  "nickname": "string",
    +  "description": "string",
    +  "type": "BILLER",
    +  "creationDate": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    payeeIdASCIIStringmandatorynoneID of the payee adhering to the rules of ID permanence
    nicknamestringmandatorynoneThe short display name of the payee as provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank for the payee consistent with existing digital banking channels
    descriptionstringoptionalnoneA description of the payee provided by the customer
    typestringmandatorynoneThe type of payee. DOMESTIC means a registered payee for domestic payments including NPP. INTERNATIONAL means a registered payee for international payments. BILLER means a registered payee for BPAY
    creationDateDateStringoptionalnoneThe date the payee was created by the customer
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + +
    PropertyValue
    typeBILLER
    typeDOMESTIC
    typeINTERNATIONAL
    + +

    BankingPayeeDetail

    + +

    +
    {
    +  "payeeId": "string",
    +  "nickname": "string",
    +  "description": "string",
    +  "type": "BILLER",
    +  "creationDate": "string",
    +  "payeeUType": "biller",
    +  "domestic": {
    +    "payeeAccountUType": "account",
    +    "account": {
    +      "accountName": "string",
    +      "bsb": "string",
    +      "accountNumber": "string"
    +    },
    +    "card": {
    +      "cardNumber": "string"
    +    },
    +    "payId": {
    +      "name": "string",
    +      "identifier": "string",
    +      "type": "ABN"
    +    }
    +  },
    +  "biller": {
    +    "billerCode": "string",
    +    "crn": "string",
    +    "billerName": "string"
    +  },
    +  "international": {
    +    "beneficiaryDetails": {
    +      "name": "string",
    +      "country": "string",
    +      "message": "string"
    +    },
    +    "bankDetails": {
    +      "country": "string",
    +      "accountNumber": "string",
    +      "bankAddress": {
    +        "name": "string",
    +        "address": "string"
    +      },
    +      "beneficiaryBankBIC": "string",
    +      "fedWireNumber": "string",
    +      "sortCode": "string",
    +      "chipNumber": "string",
    +      "routingNumber": "string",
    +      "legalEntityIdentifier": "string"
    +    }
    +  }
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousBankingPayeemandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » payeeUTypestringmandatorynoneType of object included that describes the payee in detail
    » domesticBankingDomesticPayeeconditionalnonenone
    » billerBankingBillerPayeeconditionalnonenone
    » internationalBankingInternationalPayeeconditionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + +
    PropertyValue
    payeeUTypebiller
    payeeUTypedomestic
    payeeUTypeinternational
    + +

    BankingDomesticPayee

    + +

    +
    {
    +  "payeeAccountUType": "account",
    +  "account": {
    +    "accountName": "string",
    +    "bsb": "string",
    +    "accountNumber": "string"
    +  },
    +  "card": {
    +    "cardNumber": "string"
    +  },
    +  "payId": {
    +    "name": "string",
    +    "identifier": "string",
    +    "type": "ABN"
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    payeeAccountUTypestringmandatorynoneType of account object included. Valid values are: account A standard Australian account defined by BSB/Account Number. card A credit or charge card to pay to (note that PANs are masked). payId A PayID recognised by NPP
    accountBankingDomesticPayeeAccountconditionalnonenone
    cardBankingDomesticPayeeCardconditionalnonenone
    payIdBankingDomesticPayeePayIdconditionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + +
    PropertyValue
    payeeAccountUTypeaccount
    payeeAccountUTypecard
    payeeAccountUTypepayId
    + +

    BankingDomesticPayeeAccount

    + +

    +
    {
    +  "accountName": "string",
    +  "bsb": "string",
    +  "accountNumber": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    accountNamestringoptionalnoneName of the account to pay to
    bsbstringmandatorynoneBSB of the account to pay to
    accountNumberstringmandatorynoneNumber of the account to pay to
    + +

    BankingDomesticPayeeCard

    + +

    +
    {
    +  "cardNumber": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    cardNumberMaskedPANStringmandatorynoneName of the account to pay to
    + +

    BankingDomesticPayeePayId

    + +

    +
    {
    +  "name": "string",
    +  "identifier": "string",
    +  "type": "ABN"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    namestringoptionalnoneThe name assigned to the PayID by the owner of the PayID
    identifierstringmandatorynoneThe identifier of the PayID (dependent on type)
    typestringmandatorynoneThe type of the PayID
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    typeABN
    typeEMAIL
    typeORG_IDENTIFIER
    typeTELEPHONE
    + +

    BankingBillerPayee

    + +

    +
    {
    +  "billerCode": "string",
    +  "crn": "string",
    +  "billerName": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    billerCodestringmandatorynoneBPAY Biller Code of the Biller
    crnstringconditionalnoneBPAY CRN of the Biller (if available).
    Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type.
    billerNamestringmandatorynoneName of the Biller
    + +

    BankingInternationalPayee

    + +

    +
    {
    +  "beneficiaryDetails": {
    +    "name": "string",
    +    "country": "string",
    +    "message": "string"
    +  },
    +  "bankDetails": {
    +    "country": "string",
    +    "accountNumber": "string",
    +    "bankAddress": {
    +      "name": "string",
    +      "address": "string"
    +    },
    +    "beneficiaryBankBIC": "string",
    +    "fedWireNumber": "string",
    +    "sortCode": "string",
    +    "chipNumber": "string",
    +    "routingNumber": "string",
    +    "legalEntityIdentifier": "string"
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    beneficiaryDetailsobjectmandatorynonenone
    » namestringoptionalnoneName of the beneficiary
    » countryExternalRefmandatorynoneCountry where the beneficiary resides. A valid ISO 3166 Alpha-3 country code
    » messagestringoptionalnoneResponse message for the payment
    bankDetailsobjectmandatorynonenone
    » countryExternalRefmandatorynoneCountry of the recipient institution. A valid ISO 3166 Alpha-3 country code
    » accountNumberstringmandatorynoneAccount Targeted for payment
    » bankAddressobjectoptionalnonenone
    »» namestringmandatorynoneName of the recipient Bank
    »» addressstringmandatorynoneAddress of the recipient Bank
    » beneficiaryBankBICExternalRefoptionalnoneSwift bank code. Aligns with standard ISO 9362
    » fedWireNumberstringoptionalnoneNumber for Fedwire payment (Federal Reserve Wire Network)
    » sortCodestringoptionalnoneSort code used for account identification in some jurisdictions
    » chipNumberstringoptionalnoneNumber for the Clearing House Interbank Payments System
    » routingNumberstringoptionalnoneInternational bank routing number
    » legalEntityIdentifierExternalRefoptionalnoneThe legal entity identifier (LEI) for the beneficiary. Aligns with ISO 17442
    + +

    ResponseBankingDirectDebitAuthorisationList

    + +

    +
    {
    +  "data": {
    +    "directDebitAuthorisations": [
    +      {
    +        "accountId": "string",
    +        "authorisedEntity": {
    +          "description": "string",
    +          "financialInstitution": "string",
    +          "abn": "string",
    +          "acn": "string",
    +          "arbn": "string"
    +        },
    +        "lastDebitDateTime": "string",
    +        "lastDebitAmount": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » directDebitAuthorisations[BankingDirectDebit]mandatorynoneThe list of authorisations returned
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    BankingDirectDebit

    + +

    +
    {
    +  "accountId": "string",
    +  "authorisedEntity": {
    +    "description": "string",
    +    "financialInstitution": "string",
    +    "abn": "string",
    +    "acn": "string",
    +    "arbn": "string"
    +  },
    +  "lastDebitDateTime": "string",
    +  "lastDebitAmount": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    accountIdASCIIStringmandatorynoneA unique ID of the account adhering to the standards for ID permanence.
    authorisedEntityBankingAuthorisedEntitymandatorynonenone
    lastDebitDateTimeDateTimeStringoptionalnoneThe date and time of the last debit executed under this authorisation
    lastDebitAmountAmountStringoptionalnoneThe amount of the last debit executed under this authorisation
    + +

    BankingAuthorisedEntity

    + +

    +
    {
    +  "description": "string",
    +  "financialInstitution": "string",
    +  "abn": "string",
    +  "acn": "string",
    +  "arbn": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    descriptionstringoptionalnoneDescription of the authorised entity derived from previously executed direct debits
    financialInstitutionstringoptionalnoneName of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme
    abnstringoptionalnoneAustralian Business Number for the authorised entity
    acnstringoptionalnoneAustralian Company Number for the authorised entity
    arbnstringoptionalnoneAustralian Registered Body Number for the authorised entity
    + +

    ResponseBankingScheduledPaymentsList

    + +

    +
    {
    +  "data": {
    +    "scheduledPayments": [
    +      {
    +        "scheduledPaymentId": "string",
    +        "nickname": "string",
    +        "payerReference": "string",
    +        "payeeReference": "string",
    +        "status": "ACTIVE",
    +        "from": {
    +          "accountId": "string"
    +        },
    +        "paymentSet": [
    +          {
    +            "to": {
    +              "toUType": "accountId",
    +              "accountId": "string",
    +              "payeeId": "string",
    +              "nickname": "string",
    +              "payeeReference": "string",
    +              "domestic": {
    +                "payeeAccountUType": "account",
    +                "account": {
    +                  "accountName": "string",
    +                  "bsb": "string",
    +                  "accountNumber": "string"
    +                },
    +                "card": {
    +                  "cardNumber": "string"
    +                },
    +                "payId": {
    +                  "name": "string",
    +                  "identifier": "string",
    +                  "type": "ABN"
    +                }
    +              },
    +              "biller": {
    +                "billerCode": "string",
    +                "crn": "string",
    +                "billerName": "string"
    +              },
    +              "international": {
    +                "beneficiaryDetails": {
    +                  "name": "string",
    +                  "country": "string",
    +                  "message": "string"
    +                },
    +                "bankDetails": {
    +                  "country": "string",
    +                  "accountNumber": "string",
    +                  "bankAddress": {
    +                    "name": "string",
    +                    "address": "string"
    +                  },
    +                  "beneficiaryBankBIC": "string",
    +                  "fedWireNumber": "string",
    +                  "sortCode": "string",
    +                  "chipNumber": "string",
    +                  "routingNumber": "string",
    +                  "legalEntityIdentifier": "string"
    +                }
    +              }
    +            },
    +            "isAmountCalculated": true,
    +            "amount": "string",
    +            "currency": "string"
    +          }
    +        ],
    +        "recurrence": {
    +          "nextPaymentDate": "string",
    +          "recurrenceUType": "eventBased",
    +          "onceOff": {
    +            "paymentDate": "string"
    +          },
    +          "intervalSchedule": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "nonBusinessDayTreatment": "ON",
    +            "intervals": [
    +              {
    +                "interval": "string",
    +                "dayInInterval": "string"
    +              }
    +            ]
    +          },
    +          "lastWeekDay": {
    +            "finalPaymentDate": "string",
    +            "paymentsRemaining": 1,
    +            "interval": "string",
    +            "lastWeekDay": "FRI",
    +            "nonBusinessDayTreatment": "ON"
    +          },
    +          "eventBased": {
    +            "description": "string"
    +          }
    +        }
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string",
    +    "first": "string",
    +    "prev": "string",
    +    "next": "string",
    +    "last": "string"
    +  },
    +  "meta": {
    +    "totalRecords": 0,
    +    "totalPages": 0
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » scheduledPayments[BankingScheduledPayment]mandatorynoneThe list of scheduled payments to return
    linksLinksPaginatedmandatorynonenone
    metaMetaPaginatedmandatorynonenone
    + +

    BankingScheduledPayment

    + +

    +
    {
    +  "scheduledPaymentId": "string",
    +  "nickname": "string",
    +  "payerReference": "string",
    +  "payeeReference": "string",
    +  "status": "ACTIVE",
    +  "from": {
    +    "accountId": "string"
    +  },
    +  "paymentSet": [
    +    {
    +      "to": {
    +        "toUType": "accountId",
    +        "accountId": "string",
    +        "payeeId": "string",
    +        "nickname": "string",
    +        "payeeReference": "string",
    +        "domestic": {
    +          "payeeAccountUType": "account",
    +          "account": {
    +            "accountName": "string",
    +            "bsb": "string",
    +            "accountNumber": "string"
    +          },
    +          "card": {
    +            "cardNumber": "string"
    +          },
    +          "payId": {
    +            "name": "string",
    +            "identifier": "string",
    +            "type": "ABN"
    +          }
    +        },
    +        "biller": {
    +          "billerCode": "string",
    +          "crn": "string",
    +          "billerName": "string"
    +        },
    +        "international": {
    +          "beneficiaryDetails": {
    +            "name": "string",
    +            "country": "string",
    +            "message": "string"
    +          },
    +          "bankDetails": {
    +            "country": "string",
    +            "accountNumber": "string",
    +            "bankAddress": {
    +              "name": "string",
    +              "address": "string"
    +            },
    +            "beneficiaryBankBIC": "string",
    +            "fedWireNumber": "string",
    +            "sortCode": "string",
    +            "chipNumber": "string",
    +            "routingNumber": "string",
    +            "legalEntityIdentifier": "string"
    +          }
    +        }
    +      },
    +      "isAmountCalculated": true,
    +      "amount": "string",
    +      "currency": "string"
    +    }
    +  ],
    +  "recurrence": {
    +    "nextPaymentDate": "string",
    +    "recurrenceUType": "eventBased",
    +    "onceOff": {
    +      "paymentDate": "string"
    +    },
    +    "intervalSchedule": {
    +      "finalPaymentDate": "string",
    +      "paymentsRemaining": 1,
    +      "nonBusinessDayTreatment": "ON",
    +      "intervals": [
    +        {
    +          "interval": "string",
    +          "dayInInterval": "string"
    +        }
    +      ]
    +    },
    +    "lastWeekDay": {
    +      "finalPaymentDate": "string",
    +      "paymentsRemaining": 1,
    +      "interval": "string",
    +      "lastWeekDay": "FRI",
    +      "nonBusinessDayTreatment": "ON"
    +    },
    +    "eventBased": {
    +      "description": "string"
    +    }
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    scheduledPaymentIdASCIIStringmandatorynoneA unique ID of the scheduled payment adhering to the standards for ID permanence
    nicknamestringoptionalnoneThe short display name of the scheduled payment as provided by the customer if provided. Where a customer has not provided a nickname, a display name derived by the bank for the scheduled payment should be provided that is consistent with existing digital banking channels
    payerReferencestringmandatorynoneThe reference for the transaction that will be used by the originating institution for the purposes of constructing a statement narrative on the payer’s account. Empty string if no data provided
    payeeReferencestringconditionalnoneThe reference for the transaction, if applicable, that will be provided by the originating institution for all payments in the payment set. Empty string if no data provided
    statusstringmandatorynoneIndicates whether the schedule is currently active. The value SKIP is equivalent to ACTIVE except that the customer has requested the next normal occurrence to be skipped.
    fromBankingScheduledPaymentFrommandatorynoneObject containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object
    paymentSet[BankingScheduledPaymentSet]mandatorynone[The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry]
    recurrenceBankingScheduledPaymentRecurrencemandatorynoneObject containing the detail of the schedule for the payment
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + +
    PropertyValue
    statusACTIVE
    statusINACTIVE
    statusSKIP
    + +

    BankingScheduledPaymentSet

    + +

    +
    {
    +  "to": {
    +    "toUType": "accountId",
    +    "accountId": "string",
    +    "payeeId": "string",
    +    "nickname": "string",
    +    "payeeReference": "string",
    +    "domestic": {
    +      "payeeAccountUType": "account",
    +      "account": {
    +        "accountName": "string",
    +        "bsb": "string",
    +        "accountNumber": "string"
    +      },
    +      "card": {
    +        "cardNumber": "string"
    +      },
    +      "payId": {
    +        "name": "string",
    +        "identifier": "string",
    +        "type": "ABN"
    +      }
    +    },
    +    "biller": {
    +      "billerCode": "string",
    +      "crn": "string",
    +      "billerName": "string"
    +    },
    +    "international": {
    +      "beneficiaryDetails": {
    +        "name": "string",
    +        "country": "string",
    +        "message": "string"
    +      },
    +      "bankDetails": {
    +        "country": "string",
    +        "accountNumber": "string",
    +        "bankAddress": {
    +          "name": "string",
    +          "address": "string"
    +        },
    +        "beneficiaryBankBIC": "string",
    +        "fedWireNumber": "string",
    +        "sortCode": "string",
    +        "chipNumber": "string",
    +        "routingNumber": "string",
    +        "legalEntityIdentifier": "string"
    +      }
    +    }
    +  },
    +  "isAmountCalculated": true,
    +  "amount": "string",
    +  "currency": "string"
    +}
    +
    +
    +

    The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    toBankingScheduledPaymentTomandatorynoneObject containing details of the destination of the payment. Used to specify a variety of payment destination types
    isAmountCalculatedBooleanoptionalnoneFlag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then false is assumed
    amountAmountStringconditionalnoneThe amount of the next payment if known. Mandatory unless the isAmountCalculated field is set to true. Must be zero or positive if present
    currencyCurrencyStringoptionalnoneThe currency for the payment. AUD assumed if not present
    + +

    BankingScheduledPaymentTo

    + +

    +
    {
    +  "toUType": "accountId",
    +  "accountId": "string",
    +  "payeeId": "string",
    +  "nickname": "string",
    +  "payeeReference": "string",
    +  "domestic": {
    +    "payeeAccountUType": "account",
    +    "account": {
    +      "accountName": "string",
    +      "bsb": "string",
    +      "accountNumber": "string"
    +    },
    +    "card": {
    +      "cardNumber": "string"
    +    },
    +    "payId": {
    +      "name": "string",
    +      "identifier": "string",
    +      "type": "ABN"
    +    }
    +  },
    +  "biller": {
    +    "billerCode": "string",
    +    "crn": "string",
    +    "billerName": "string"
    +  },
    +  "international": {
    +    "beneficiaryDetails": {
    +      "name": "string",
    +      "country": "string",
    +      "message": "string"
    +    },
    +    "bankDetails": {
    +      "country": "string",
    +      "accountNumber": "string",
    +      "bankAddress": {
    +        "name": "string",
    +        "address": "string"
    +      },
    +      "beneficiaryBankBIC": "string",
    +      "fedWireNumber": "string",
    +      "sortCode": "string",
    +      "chipNumber": "string",
    +      "routingNumber": "string",
    +      "legalEntityIdentifier": "string"
    +    }
    +  }
    +}
    +
    +
    +

    Object containing details of the destination of the payment. Used to specify a variety of payment destination types

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    toUTypestringmandatorynoneThe type of object provided that specifies the destination of the funds for the payment.
    accountIdASCIIStringconditionalnonePresent if toUType is set to accountId. Indicates that the payment is to another account that is accessible under the current consent
    payeeIdASCIIStringconditionalnonePresent if toUType is set to payeeId. Indicates that the payment is to registered payee that can be accessed using the payee end point. If the Bank Payees scope has not been consented to then a payeeId should not be provided and the full payee details should be provided instead
    nicknamestringconditionalnoneThe short display name of the payee as provided by the customer unless toUType is set to payeeId. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels
    payeeReferencestringconditionalnoneThe reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level.
    domesticBankingDomesticPayeeconditionalnonenone
    billerBankingBillerPayeeconditionalnonenone
    internationalBankingInternationalPayeeconditionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    toUTypeaccountId
    toUTypebiller
    toUTypedomestic
    toUTypeinternational
    toUTypepayeeId
    + +

    BankingScheduledPaymentFrom

    + +

    +
    {
    +  "accountId": "string"
    +}
    +
    +
    +

    Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object

    +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    accountIdASCIIStringmandatorynoneID of the account that is the source of funds for the payment
    + +

    BankingScheduledPaymentRecurrence

    + +

    +
    {
    +  "nextPaymentDate": "string",
    +  "recurrenceUType": "eventBased",
    +  "onceOff": {
    +    "paymentDate": "string"
    +  },
    +  "intervalSchedule": {
    +    "finalPaymentDate": "string",
    +    "paymentsRemaining": 1,
    +    "nonBusinessDayTreatment": "ON",
    +    "intervals": [
    +      {
    +        "interval": "string",
    +        "dayInInterval": "string"
    +      }
    +    ]
    +  },
    +  "lastWeekDay": {
    +    "finalPaymentDate": "string",
    +    "paymentsRemaining": 1,
    +    "interval": "string",
    +    "lastWeekDay": "FRI",
    +    "nonBusinessDayTreatment": "ON"
    +  },
    +  "eventBased": {
    +    "description": "string"
    +  }
    +}
    +
    +
    +

    Object containing the detail of the schedule for the payment

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    nextPaymentDateDateStringoptionalnoneThe date of the next payment under the recurrence schedule
    recurrenceUTypestringmandatorynoneThe type of recurrence used to define the schedule
    onceOffBankingScheduledPaymentRecurrenceOnceOffconditionalnoneIndicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff
    intervalScheduleBankingScheduledPaymentRecurrenceIntervalScheduleconditionalnoneIndicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule
    lastWeekDayBankingScheduledPaymentRecurrenceLastWeekdayconditionalnoneIndicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay
    eventBasedBankingScheduledPaymentRecurrenceEventBasedconditionalnoneIndicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    recurrenceUTypeeventBased
    recurrenceUTypeintervalSchedule
    recurrenceUTypelastWeekDay
    recurrenceUTypeonceOff
    + +

    BankingScheduledPaymentRecurrenceOnceOff

    + +

    +
    {
    +  "paymentDate": "string"
    +}
    +
    +
    +

    Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff

    +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    paymentDateDateStringmandatorynoneThe scheduled date for the once off payment
    + +

    BankingScheduledPaymentRecurrenceIntervalSchedule

    + +

    +
    {
    +  "finalPaymentDate": "string",
    +  "paymentsRemaining": 1,
    +  "nonBusinessDayTreatment": "ON",
    +  "intervals": [
    +    {
    +      "interval": "string",
    +      "dayInInterval": "string"
    +    }
    +  ]
    +}
    +
    +
    +

    Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    finalPaymentDateDateStringoptionalnoneThe limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely
    paymentsRemainingPositiveIntegeroptionalnoneIndicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely
    nonBusinessDayTreatmentstringoptionalnoneEnumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
    AFTER - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
    BEFORE - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
    ON - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
    ONLY - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored
    intervals[BankingScheduledPaymentInterval]mandatorynoneAn array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    nonBusinessDayTreatmentAFTER
    nonBusinessDayTreatmentBEFORE
    nonBusinessDayTreatmentON
    nonBusinessDayTreatmentONLY
    + +

    BankingScheduledPaymentInterval

    + +

    +
    {
    +  "interval": "string",
    +  "dayInInterval": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    intervalExternalRefmandatorynoneAn interval for the payment. Formatted according to ISO 8601 Durations (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate
    dayInIntervalExternalRefoptionalnoneUses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is P1D. Formatted according to ISO 8601 Durations (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday.
    + +

    BankingScheduledPaymentRecurrenceLastWeekday

    + +

    +
    {
    +  "finalPaymentDate": "string",
    +  "paymentsRemaining": 1,
    +  "interval": "string",
    +  "lastWeekDay": "FRI",
    +  "nonBusinessDayTreatment": "ON"
    +}
    +
    +
    +

    Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    finalPaymentDateDateStringoptionalnoneThe limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely
    paymentsRemainingPositiveIntegeroptionalnoneIndicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely
    intervalExternalRefmandatorynoneThe interval for the payment. Formatted according to ISO 8601 Durations (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate
    lastWeekDaystringmandatorynoneThe weekDay specified. The payment will occur on the last occurrence of this weekday in the interval.
    nonBusinessDayTreatmentstringoptionalnoneEnumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
    AFTER - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
    BEFORE - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
    ON - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
    ONLY - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    lastWeekDayFRI
    lastWeekDayMON
    lastWeekDaySAT
    lastWeekDaySUN
    lastWeekDayTHU
    lastWeekDayTUE
    lastWeekDayWED
    nonBusinessDayTreatmentAFTER
    nonBusinessDayTreatmentBEFORE
    nonBusinessDayTreatmentON
    nonBusinessDayTreatmentONLY
    + +

    BankingScheduledPaymentRecurrenceEventBased

    + +

    +
    {
    +  "description": "string"
    +}
    +
    +
    +

    Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased

    +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    descriptionstringmandatorynoneDescription of the event and conditions that will result in the payment. Expected to be formatted for display to a customer
    + +

    ResponseCommonDiscoveryStatus

    + +

    +
    {
    +  "data": {
    +    "status": "OK",
    +    "explanation": "string",
    +    "detectionTime": "string",
    +    "expectedResolutionTime": "string",
    +    "updateTime": "string"
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » statusstringmandatorynoneEnumeration with values. OK (implementation is fully functional). PARTIAL_FAILURE (one or more end points are unexpectedly unavailable). UNAVAILABLE (the full implementation is unexpectedly unavailable). SCHEDULED_OUTAGE (an advertised outage is in effect)
    » explanationstringconditionalnoneProvides an explanation of the current outage that can be displayed to an end customer. Mandatory if the status property is any value other than OK
    » detectionTimeDateTimeStringoptionalnoneThe date and time that the current outage was detected. Should only be present if the status property is PARTIAL_FAILURE or UNAVAILABLE
    » expectedResolutionTimeDateTimeStringoptionalnoneThe date and time that full service is expected to resume (if known). Should not be present if the status property has a value of OK.
    » updateTimeDateTimeStringmandatorynoneThe date and time that this status was last updated by the Data Holder.
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    statusOK
    statusPARTIAL_FAILURE
    statusSCHEDULED_OUTAGE
    statusUNAVAILABLE
    + +

    ResponseDiscoveryOutagesList

    + +

    +
    {
    +  "data": {
    +    "outages": [
    +      {
    +        "outageTime": "string",
    +        "duration": "string",
    +        "isPartial": true,
    +        "explanation": "string"
    +      }
    +    ]
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » outages[DiscoveryOutage]mandatorynoneList of scheduled outages. Property is mandatory but may contain and empty list if no outages are scheduled
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    DiscoveryOutage

    + +

    +
    {
    +  "outageTime": "string",
    +  "duration": "string",
    +  "isPartial": true,
    +  "explanation": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    outageTimeDateTimeStringmandatorynoneDate and time that the outage is scheduled to begin
    durationExternalRefmandatorynonePlanned duration of the outage. Formatted according to ISO 8601 Durations (excludes recurrence syntax)
    isPartialBooleanoptionalnoneFlag that indicates, if present and set to true, that the outage is only partial meaning that only a subset of normally available end points will be affected by the outage
    explanationstringmandatorynoneProvides an explanation of the current outage that can be displayed to an end customer
    + +

    ResponseCommonCustomer

    + +

    +
    {
    +  "data": {
    +    "customerUType": "organisation",
    +    "person": {
    +      "lastUpdateTime": "string",
    +      "firstName": "string",
    +      "lastName": "string",
    +      "middleNames": [
    +        "string"
    +      ],
    +      "prefix": "string",
    +      "suffix": "string",
    +      "occupationCode": "string",
    +      "occupationCodeVersion": "ANZSCO_1220.0_2013_V1.2"
    +    },
    +    "organisation": {
    +      "lastUpdateTime": "string",
    +      "agentFirstName": "string",
    +      "agentLastName": "string",
    +      "agentRole": "string",
    +      "businessName": "string",
    +      "legalName": "string",
    +      "shortName": "string",
    +      "abn": "string",
    +      "acn": "string",
    +      "isACNCRegistered": true,
    +      "industryCode": "string",
    +      "industryCodeVersion": "ANZSIC_1292.0_2006_V2.0",
    +      "organisationType": "COMPANY",
    +      "registeredCountry": "string",
    +      "establishmentDate": "string"
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » customerUTypestringmandatorynoneThe type of customer object that is present
    » personCommonPersonoptionalnonenone
    » organisationCommonOrganisationoptionalnonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + + + + + +
    PropertyValue
    customerUTypeorganisation
    customerUTypeperson
    + +

    ResponseCommonCustomerDetail

    + +

    +
    {
    +  "data": {
    +    "customerUType": "organisation",
    +    "person": {
    +      "lastUpdateTime": "string",
    +      "firstName": "string",
    +      "lastName": "string",
    +      "middleNames": [
    +        "string"
    +      ],
    +      "prefix": "string",
    +      "suffix": "string",
    +      "occupationCode": "string",
    +      "occupationCodeVersion": "ANZSCO_1220.0_2013_V1.2",
    +      "phoneNumbers": [
    +        {
    +          "isPreferred": true,
    +          "purpose": "HOME",
    +          "countryCode": "string",
    +          "areaCode": "string",
    +          "number": "string",
    +          "extension": "string",
    +          "fullNumber": "string"
    +        }
    +      ],
    +      "emailAddresses": [
    +        {
    +          "isPreferred": true,
    +          "purpose": "HOME",
    +          "address": "string"
    +        }
    +      ],
    +      "physicalAddresses": [
    +        {
    +          "addressUType": "paf",
    +          "simple": {
    +            "mailingName": "string",
    +            "addressLine1": "string",
    +            "addressLine2": "string",
    +            "addressLine3": "string",
    +            "postcode": "string",
    +            "city": "string",
    +            "state": "string",
    +            "country": "AUS"
    +          },
    +          "paf": {
    +            "dpid": "string",
    +            "thoroughfareNumber1": 0,
    +            "thoroughfareNumber1Suffix": "string",
    +            "thoroughfareNumber2": 0,
    +            "thoroughfareNumber2Suffix": "string",
    +            "flatUnitType": "string",
    +            "flatUnitNumber": "string",
    +            "floorLevelType": "string",
    +            "floorLevelNumber": "string",
    +            "lotNumber": "string",
    +            "buildingName1": "string",
    +            "buildingName2": "string",
    +            "streetName": "string",
    +            "streetType": "string",
    +            "streetSuffix": "string",
    +            "postalDeliveryType": "string",
    +            "postalDeliveryNumber": 0,
    +            "postalDeliveryNumberPrefix": "string",
    +            "postalDeliveryNumberSuffix": "string",
    +            "localityName": "string",
    +            "postcode": "string",
    +            "state": "string"
    +          },
    +          "purpose": "MAIL"
    +        }
    +      ]
    +    },
    +    "organisation": {
    +      "lastUpdateTime": "string",
    +      "agentFirstName": "string",
    +      "agentLastName": "string",
    +      "agentRole": "string",
    +      "businessName": "string",
    +      "legalName": "string",
    +      "shortName": "string",
    +      "abn": "string",
    +      "acn": "string",
    +      "isACNCRegistered": true,
    +      "industryCode": "string",
    +      "industryCodeVersion": "ANZSIC_1292.0_2006_V2.0",
    +      "organisationType": "COMPANY",
    +      "registeredCountry": "string",
    +      "establishmentDate": "string",
    +      "physicalAddresses": [
    +        {
    +          "addressUType": "paf",
    +          "simple": {
    +            "mailingName": "string",
    +            "addressLine1": "string",
    +            "addressLine2": "string",
    +            "addressLine3": "string",
    +            "postcode": "string",
    +            "city": "string",
    +            "state": "string",
    +            "country": "AUS"
    +          },
    +          "paf": {
    +            "dpid": "string",
    +            "thoroughfareNumber1": 0,
    +            "thoroughfareNumber1Suffix": "string",
    +            "thoroughfareNumber2": 0,
    +            "thoroughfareNumber2Suffix": "string",
    +            "flatUnitType": "string",
    +            "flatUnitNumber": "string",
    +            "floorLevelType": "string",
    +            "floorLevelNumber": "string",
    +            "lotNumber": "string",
    +            "buildingName1": "string",
    +            "buildingName2": "string",
    +            "streetName": "string",
    +            "streetType": "string",
    +            "streetSuffix": "string",
    +            "postalDeliveryType": "string",
    +            "postalDeliveryNumber": 0,
    +            "postalDeliveryNumberPrefix": "string",
    +            "postalDeliveryNumberSuffix": "string",
    +            "localityName": "string",
    +            "postcode": "string",
    +            "state": "string"
    +          },
    +          "purpose": "MAIL"
    +        }
    +      ]
    +    }
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » customerUTypestringmandatorynoneThe type of customer object that is present
    » personCommonPersonDetailoptionalnonenone
    » organisationCommonOrganisationDetailoptionalnonenone
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + + + + + +
    PropertyValue
    customerUTypeorganisation
    customerUTypeperson
    + +

    CommonPerson

    + +

    +
    {
    +  "lastUpdateTime": "string",
    +  "firstName": "string",
    +  "lastName": "string",
    +  "middleNames": [
    +    "string"
    +  ],
    +  "prefix": "string",
    +  "suffix": "string",
    +  "occupationCode": "string",
    +  "occupationCodeVersion": "ANZSCO_1220.0_2013_V1.2"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    lastUpdateTimeDateTimeStringoptionalnoneThe date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data
    firstNamestringoptionalnoneFor people with single names this field need not be present. The single name should be in the lastName field
    lastNamestringmandatorynoneFor people with single names the single name should be in this field
    middleNames[string]mandatorynoneField is mandatory but array may be empty
    prefixstringoptionalnoneAlso known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)
    suffixstringoptionalnoneUsed for a trailing suffix to the name (e.g. Jr)
    occupationCodeExternalRefoptionalnoneValue is a valid ANZSCO Standard Occupation classification code. If the occupation code held by the data holder is not one of the supported ANZSCO versions, then it must not be supplied.
    occupationCodeVersionstringconditionalnoneThe applicable ANZSCO release version of the occupation code provided. Mandatory if an occupationCode is supplied. If occupationCode is supplied but occupationCodeVersion is absent, default is ANZSCO_1220.0_2013_V1.2
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    occupationCodeVersionANZSCO_1220.0_2006_V1.0
    occupationCodeVersionANZSCO_1220.0_2006_V1.1
    occupationCodeVersionANZSCO_1220.0_2013_V1.2
    occupationCodeVersionANZSCO_1220.0_2013_V1.3
    + +

    CommonPersonDetail

    + +

    +
    {
    +  "lastUpdateTime": "string",
    +  "firstName": "string",
    +  "lastName": "string",
    +  "middleNames": [
    +    "string"
    +  ],
    +  "prefix": "string",
    +  "suffix": "string",
    +  "occupationCode": "string",
    +  "occupationCodeVersion": "ANZSCO_1220.0_2013_V1.2",
    +  "phoneNumbers": [
    +    {
    +      "isPreferred": true,
    +      "purpose": "HOME",
    +      "countryCode": "string",
    +      "areaCode": "string",
    +      "number": "string",
    +      "extension": "string",
    +      "fullNumber": "string"
    +    }
    +  ],
    +  "emailAddresses": [
    +    {
    +      "isPreferred": true,
    +      "purpose": "HOME",
    +      "address": "string"
    +    }
    +  ],
    +  "physicalAddresses": [
    +    {
    +      "addressUType": "paf",
    +      "simple": {
    +        "mailingName": "string",
    +        "addressLine1": "string",
    +        "addressLine2": "string",
    +        "addressLine3": "string",
    +        "postcode": "string",
    +        "city": "string",
    +        "state": "string",
    +        "country": "AUS"
    +      },
    +      "paf": {
    +        "dpid": "string",
    +        "thoroughfareNumber1": 0,
    +        "thoroughfareNumber1Suffix": "string",
    +        "thoroughfareNumber2": 0,
    +        "thoroughfareNumber2Suffix": "string",
    +        "flatUnitType": "string",
    +        "flatUnitNumber": "string",
    +        "floorLevelType": "string",
    +        "floorLevelNumber": "string",
    +        "lotNumber": "string",
    +        "buildingName1": "string",
    +        "buildingName2": "string",
    +        "streetName": "string",
    +        "streetType": "string",
    +        "streetSuffix": "string",
    +        "postalDeliveryType": "string",
    +        "postalDeliveryNumber": 0,
    +        "postalDeliveryNumberPrefix": "string",
    +        "postalDeliveryNumberSuffix": "string",
    +        "localityName": "string",
    +        "postcode": "string",
    +        "state": "string"
    +      },
    +      "purpose": "MAIL"
    +    }
    +  ]
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousCommonPersonmandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » phoneNumbers[CommonPhoneNumber]mandatorynoneArray is mandatory but may be empty if no phone numbers are held
    » emailAddresses[CommonEmailAddress]mandatorynoneMay be empty
    » physicalAddresses[CommonPhysicalAddressWithPurpose]mandatorynoneMust contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail
    + +

    CommonOrganisation

    + +

    +
    {
    +  "lastUpdateTime": "string",
    +  "agentFirstName": "string",
    +  "agentLastName": "string",
    +  "agentRole": "string",
    +  "businessName": "string",
    +  "legalName": "string",
    +  "shortName": "string",
    +  "abn": "string",
    +  "acn": "string",
    +  "isACNCRegistered": true,
    +  "industryCode": "string",
    +  "industryCodeVersion": "ANZSIC_1292.0_2006_V2.0",
    +  "organisationType": "COMPANY",
    +  "registeredCountry": "string",
    +  "establishmentDate": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    lastUpdateTimeDateTimeStringoptionalnoneThe date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data
    agentFirstNamestringoptionalnoneThe first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present. The single name should be in the lastName field
    agentLastNamestringmandatorynoneThe last name of the individual providing access on behalf of the organisation. For people with single names the single name should be in this field
    agentRolestringmandatorynoneThe role of the individual identified as the agent who is providing authorisation. Expected to be used for display. Default to Unspecified if the role is not known
    businessNamestringmandatorynoneName of the organisation
    legalNamestringoptionalnoneLegal name, if different to the business name
    shortNamestringoptionalnoneShort name used for communication, if different to the business name
    abnstringoptionalnoneAustralian Business Number for the organisation
    acnstringoptionalnoneAustralian Company Number for the organisation. Required only if an ACN is applicable for the organisation type
    isACNCRegisteredBooleanoptionalnoneTrue if registered with the ACNC. False if not. Absent or null if not confirmed.
    industryCodeExternalRefoptionalnoneA valid ANZSIC code for the organisation. If the industry code held by the data holder is not one of the supported ANZSIC versions, then it must not be supplied.
    industryCodeVersionstringconditionalnoneThe applicable ANZSIC release version of the industry code provided. Should only be supplied if industryCode is also supplied. If industryCode is supplied but industryCodeVersion is absent, default is ANZSIC_1292.0_2006_V2.0
    organisationTypestringmandatorynoneLegal organisation type
    registeredCountryExternalRefoptionalnoneEnumeration with values from ISO 3166 Alpha-3 country codes. Assumed to be AUS if absent
    establishmentDateDateStringoptionalnoneThe date the organisation described was established
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    industryCodeVersionANZSIC_1292.0_2006_V1.0
    industryCodeVersionANZSIC_1292.0_2006_V2.0
    organisationTypeCOMPANY
    organisationTypeGOVERNMENT_ENTITY
    organisationTypeOTHER
    organisationTypePARTNERSHIP
    organisationTypeSOLE_TRADER
    organisationTypeTRUST
    + +

    CommonOrganisationDetail

    + +

    +
    {
    +  "lastUpdateTime": "string",
    +  "agentFirstName": "string",
    +  "agentLastName": "string",
    +  "agentRole": "string",
    +  "businessName": "string",
    +  "legalName": "string",
    +  "shortName": "string",
    +  "abn": "string",
    +  "acn": "string",
    +  "isACNCRegistered": true,
    +  "industryCode": "string",
    +  "industryCodeVersion": "ANZSIC_1292.0_2006_V2.0",
    +  "organisationType": "COMPANY",
    +  "registeredCountry": "string",
    +  "establishmentDate": "string",
    +  "physicalAddresses": [
    +    {
    +      "addressUType": "paf",
    +      "simple": {
    +        "mailingName": "string",
    +        "addressLine1": "string",
    +        "addressLine2": "string",
    +        "addressLine3": "string",
    +        "postcode": "string",
    +        "city": "string",
    +        "state": "string",
    +        "country": "AUS"
    +      },
    +      "paf": {
    +        "dpid": "string",
    +        "thoroughfareNumber1": 0,
    +        "thoroughfareNumber1Suffix": "string",
    +        "thoroughfareNumber2": 0,
    +        "thoroughfareNumber2Suffix": "string",
    +        "flatUnitType": "string",
    +        "flatUnitNumber": "string",
    +        "floorLevelType": "string",
    +        "floorLevelNumber": "string",
    +        "lotNumber": "string",
    +        "buildingName1": "string",
    +        "buildingName2": "string",
    +        "streetName": "string",
    +        "streetType": "string",
    +        "streetSuffix": "string",
    +        "postalDeliveryType": "string",
    +        "postalDeliveryNumber": 0,
    +        "postalDeliveryNumberPrefix": "string",
    +        "postalDeliveryNumberSuffix": "string",
    +        "localityName": "string",
    +        "postcode": "string",
    +        "state": "string"
    +      },
    +      "purpose": "MAIL"
    +    }
    +  ]
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousCommonOrganisationmandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » physicalAddresses[CommonPhysicalAddressWithPurpose]mandatorynoneMust contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail
    + +

    CommonPhoneNumber

    + +

    +
    {
    +  "isPreferred": true,
    +  "purpose": "HOME",
    +  "countryCode": "string",
    +  "areaCode": "string",
    +  "number": "string",
    +  "extension": "string",
    +  "fullNumber": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    isPreferredBooleanoptionalnoneMay be true for one and only one entry to indicate the preferred phone number. Assumed to be 'false' if not present
    purposestringmandatorynoneThe purpose of the number as specified by the customer
    countryCodestringoptionalnoneIf absent, assumed to be Australia (+61). The + should be included
    areaCodestringconditionalnoneRequired for non Mobile Phones, if field is present and refers to Australian code - the leading 0 should be omitted.
    numberstringmandatorynoneThe actual phone number, with leading zeros as appropriate
    extensionstringoptionalnoneAn extension number (if applicable)
    fullNumberExternalRefmandatorynoneFully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of RFC 3966
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    purposeHOME
    purposeINTERNATIONAL
    purposeMOBILE
    purposeOTHER
    purposeUNSPECIFIED
    purposeWORK
    + +

    CommonEmailAddress

    + +

    +
    {
    +  "isPreferred": true,
    +  "purpose": "HOME",
    +  "address": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    isPreferredBooleanoptionalnoneMay be true for one and only one email record in the collection. Denotes the default email address
    purposestringmandatorynoneThe purpose for the email, as specified by the customer (Enumeration)
    addressExternalRefmandatorynoneA correctly formatted email address, as defined by the addr_spec format in RFC 5322
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    purposeHOME
    purposeOTHER
    purposeUNSPECIFIED
    purposeWORK
    + +

    CommonPhysicalAddressWithPurpose

    + +

    +
    {
    +  "addressUType": "paf",
    +  "simple": {
    +    "mailingName": "string",
    +    "addressLine1": "string",
    +    "addressLine2": "string",
    +    "addressLine3": "string",
    +    "postcode": "string",
    +    "city": "string",
    +    "state": "string",
    +    "country": "AUS"
    +  },
    +  "paf": {
    +    "dpid": "string",
    +    "thoroughfareNumber1": 0,
    +    "thoroughfareNumber1Suffix": "string",
    +    "thoroughfareNumber2": 0,
    +    "thoroughfareNumber2Suffix": "string",
    +    "flatUnitType": "string",
    +    "flatUnitNumber": "string",
    +    "floorLevelType": "string",
    +    "floorLevelNumber": "string",
    +    "lotNumber": "string",
    +    "buildingName1": "string",
    +    "buildingName2": "string",
    +    "streetName": "string",
    +    "streetType": "string",
    +    "streetSuffix": "string",
    +    "postalDeliveryType": "string",
    +    "postalDeliveryNumber": 0,
    +    "postalDeliveryNumberPrefix": "string",
    +    "postalDeliveryNumberSuffix": "string",
    +    "localityName": "string",
    +    "postcode": "string",
    +    "state": "string"
    +  },
    +  "purpose": "MAIL"
    +}
    +
    +

    Properties

    +

    allOf

    + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousCommonPhysicalAddressmandatorynonenone
    + +

    and

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousobjectmandatorynonenone
    » purposestringmandatorynoneEnumeration of values indicating the purpose of the physical address
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    purposeMAIL
    purposeOTHER
    purposePHYSICAL
    purposeREGISTERED
    purposeWORK
    + +

    CommonPhysicalAddress

    + +

    +
    {
    +  "addressUType": "paf",
    +  "simple": {
    +    "mailingName": "string",
    +    "addressLine1": "string",
    +    "addressLine2": "string",
    +    "addressLine3": "string",
    +    "postcode": "string",
    +    "city": "string",
    +    "state": "string",
    +    "country": "AUS"
    +  },
    +  "paf": {
    +    "dpid": "string",
    +    "thoroughfareNumber1": 0,
    +    "thoroughfareNumber1Suffix": "string",
    +    "thoroughfareNumber2": 0,
    +    "thoroughfareNumber2Suffix": "string",
    +    "flatUnitType": "string",
    +    "flatUnitNumber": "string",
    +    "floorLevelType": "string",
    +    "floorLevelNumber": "string",
    +    "lotNumber": "string",
    +    "buildingName1": "string",
    +    "buildingName2": "string",
    +    "streetName": "string",
    +    "streetType": "string",
    +    "streetSuffix": "string",
    +    "postalDeliveryType": "string",
    +    "postalDeliveryNumber": 0,
    +    "postalDeliveryNumberPrefix": "string",
    +    "postalDeliveryNumberSuffix": "string",
    +    "localityName": "string",
    +    "postcode": "string",
    +    "state": "string"
    +  }
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    addressUTypestringmandatorynoneThe type of address object present
    simpleCommonSimpleAddressconditionalnonenone
    pafCommonPAFAddressconditionalnoneAustralian address formatted according to the file format defined by the PAF file format
    +

    Enumerated Values

    + + + + + + + + + + + + + + +
    PropertyValue
    addressUTypepaf
    addressUTypesimple
    + +

    CommonSimpleAddress

    + +

    +
    {
    +  "mailingName": "string",
    +  "addressLine1": "string",
    +  "addressLine2": "string",
    +  "addressLine3": "string",
    +  "postcode": "string",
    +  "city": "string",
    +  "state": "string",
    +  "country": "AUS"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    mailingNamestringoptionalnoneName of the individual or business formatted for inclusion in an address used for physical mail
    addressLine1stringmandatorynoneFirst line of the standard address object
    addressLine2stringoptionalnoneSecond line of the standard address object
    addressLine3stringoptionalnoneThird line of the standard address object
    postcodestringconditionalnoneMandatory for Australian addresses
    citystringmandatorynoneName of the city or locality
    statestringmandatorynoneFree text if the country is not Australia. If country is Australia then must be one of the values defined by the State Type Abbreviation in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT
    countryExternalRefoptionalnoneA valid ISO 3166 Alpha-3 country code. Australia (AUS) is assumed if country is not present.
    + +

    CommonPAFAddress

    + +

    +
    {
    +  "dpid": "string",
    +  "thoroughfareNumber1": 0,
    +  "thoroughfareNumber1Suffix": "string",
    +  "thoroughfareNumber2": 0,
    +  "thoroughfareNumber2Suffix": "string",
    +  "flatUnitType": "string",
    +  "flatUnitNumber": "string",
    +  "floorLevelType": "string",
    +  "floorLevelNumber": "string",
    +  "lotNumber": "string",
    +  "buildingName1": "string",
    +  "buildingName2": "string",
    +  "streetName": "string",
    +  "streetType": "string",
    +  "streetSuffix": "string",
    +  "postalDeliveryType": "string",
    +  "postalDeliveryNumber": 0,
    +  "postalDeliveryNumberPrefix": "string",
    +  "postalDeliveryNumberSuffix": "string",
    +  "localityName": "string",
    +  "postcode": "string",
    +  "state": "string"
    +}
    +
    +
    +

    Australian address formatted according to the file format defined by the PAF file format

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dpidstringoptionalnoneUnique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier
    thoroughfareNumber1PositiveIntegeroptionalnoneThoroughfare number for a property (first number in a property ranged address)
    thoroughfareNumber1SuffixstringoptionalnoneSuffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated
    thoroughfareNumber2PositiveIntegeroptionalnoneSecond thoroughfare number (only used if the property has a ranged address eg 23-25)
    thoroughfareNumber2SuffixstringoptionalnoneSuffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated
    flatUnitTypestringoptionalnoneType of flat or unit for the address
    flatUnitNumberstringoptionalnoneUnit number (including suffix, if applicable)
    floorLevelTypestringoptionalnoneType of floor or level for the address
    floorLevelNumberstringoptionalnoneFloor or level number (including alpha characters)
    lotNumberstringoptionalnoneAllotment number for the address
    buildingName1stringoptionalnoneBuilding/Property name 1
    buildingName2stringoptionalnoneBuilding/Property name 2
    streetNamestringoptionalnoneThe name of the street
    streetTypestringoptionalnoneThe street type. Valid enumeration defined by Australia Post PAF code file
    streetSuffixstringoptionalnoneThe street type suffix. Valid enumeration defined by Australia Post PAF code file
    postalDeliveryTypestringoptionalnonePostal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file
    postalDeliveryNumberPositiveIntegeroptionalnonePostal delivery number if the address is a postal delivery type
    postalDeliveryNumberPrefixstringoptionalnonePostal delivery number prefix related to the postal delivery number
    postalDeliveryNumberSuffixstringoptionalnonePostal delivery number suffix related to the postal delivery number
    localityNamestringmandatorynoneFull name of locality
    postcodestringmandatorynonePostcode for the locality
    statestringmandatorynoneState in which the address belongs. Valid enumeration defined by Australia Post PAF code file State Type Abbreviation. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT
    + + + +

    +
    {
    +  "self": "string"
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    selfURIStringmandatorynoneFully qualified link that generated the current response document
    + +

    Meta

    + +

    +
    {}
    +
    +

    Properties

    +

    None

    + +

    LinksPaginated

    + +

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

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    selfURIStringmandatorynoneFully qualified link that generated the current response document
    firstURIStringconditionalnoneURI to the first page of this set. Mandatory if this response is not the first page
    prevURIStringconditionalnoneURI to the previous page of this set. Mandatory if this response is not the first page
    nextURIStringconditionalnoneURI to the next page of this set. Mandatory if this response is not the last page
    lastURIStringconditionalnoneURI to the last page of this set. Mandatory if this response is not the last page
    + +

    MetaPaginated

    + +

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

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    totalRecordsNaturalNumbermandatorynoneThe total number of records in the full set. See pagination.
    totalPagesNaturalNumbermandatorynoneThe total number of pages in the full set. See pagination.
    + +

    ResponseErrorList

    + +

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

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    errors[object]mandatorynonenone
    » codestringmandatorynoneMust be one of the following: 0001 – Account not able to be found
    » titlestringmandatorynoneMust be one of the following: Invalid account
    » detailstringmandatorynoneID of the account not found
    » metaobjectoptionalnoneOptional additional data for specific error types
    + +

    BankingProductCategory

    + +

    +
    "BUSINESS_LOANS"
    +
    +
    +

    The category to which a product or account belongs. See here for more details

    +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    anonymousstringmandatorynoneThe category to which a product or account belongs. See here for more details
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    anonymousBUSINESS_LOANS
    anonymousCRED_AND_CHRG_CARDS
    anonymousLEASES
    anonymousMARGIN_LOANS
    anonymousOVERDRAFTS
    anonymousPERS_LOANS
    anonymousREGULATED_TRUST_ACCOUNTS
    anonymousRESIDENTIAL_MORTGAGES
    anonymousTERM_DEPOSITS
    anonymousTRADE_FINANCE
    anonymousTRANS_AND_SAVINGS_ACCOUNTS
    anonymousTRAVEL_CARDS
    +

    Product Categories

    +

    The Product Category enumeration lists the available product categories for categorising products and accounts. These are explained in the following tables:

    + +

    Deposit Products

    + + + + + + + + + + + + + + + + + + + + + + + +
    EnumDescription
    REGULATED_TRUST_ACCOUNTSThis grouping of products includes accounts were funds are held in trust in regulated industries with complex rules embedded on how the products must operate. Industries that require this sort of product include real estate agents, solicitors and conveyancers.
    TERM_DEPOSITSThis grouping of products includes all accounts where cash is deposited in the account for a set time period with restrictions on when funds can be withdrawn. Includes traditional Term Deposits and specialised deposits with either fixed terms or notice periods for withdrawal of funds.
    TRANS_AND_SAVINGS_ACCOUNTSThis grouping of products includes all accounts where cash is deposited in the account and is accessible to the customer when they choose. These are given many names on the market including Cash Accounts, Saving Accounts, Transaction Accounts, Current Accounts, Cheque Accounts, Passbook Accounts, etc...
    TRAVEL_CARDSThis grouping of products includes prepaid cards with multi-currency capabilities.
    + +

    Lending Products

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EnumDescription
    BUSINESS_LOANSThis grouping of products incorporates all types of lending for business purpose that is not a trade finance facility, lease, overdraft, residential mortgage, credit card or margin lending. It includes traditional term loans, bank guarantees and commercial bills. This category would incorporate both secured and unsecured business purpose lending including all business purpose equipment finance that is not covered by a lease.
    CRED_AND_CHRG_CARDSThis grouping of products includes all lending products that are issued for the purpose of allowing a flexible line of credit accessed through use of a card. These may be called various names including Credit Cards, Charge Cards and Store Cards.
    LEASESThis grouping of products will include all types of leases including Financial Lease, Operating Lease, Sale and leaseback, etc...
    MARGIN_LOANSThis grouping of products includes all types of margin loans which let you borrow money to invest in traded assets including shares & commodities or in managed funds.
    OVERDRAFTSThis grouping of products includes all types of lending which allows for the loan amount to be withdrawn, repaid, and redrawn again in any manner and any number of times, until the arrangement expires. These loans may be secured or unsecured, and generally don’t have set / minimum repayment requirements.
    PERS_LOANSThis grouping of products includes all lending for personal purposes that is not a residential mortgage, credit card or margin lending. These loans may be unsecured loans and term loans for purchase assets used as security such as motor vehicles. These may be called various names including Personal Loans and Car Loans.
    RESIDENTIAL_MORTGAGESThis grouping of products includes all lending products that are available for the primary purpose of borrowing for the purpose of purchasing or renovating residential property, where a residential property will be used as security. This group will include both fixed, variable & secured overdraft types of product and may include both owner-occupied and investment purpose borrowing.
    TRADE FINANCEThis grouping of products includes specialised lending products specifically designed to facilitate domestic & international trade. This includes the issuance of letters of credit, factoring, export credit.
    +

    Product & Account Components

    +

    +

    Product Feature Types

    + +

    Description of the usage of the featureType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    ADDITIONAL_CARDSAdditional cards can be requestedThe maximum number of additional cards. If no maximum then should be set to null
    BALANCE_TRANSFERSBalance transfers can be made to the account (eg. for credit cards)NA
    BILL_PAYMENTThe product can be attached to an automatic budgeting and bill payment serviceOptional name of the service
    BONUS_REWARDSBonus loyalty rewards points are availableNumber of points available
    CARD_ACCESSA card is available for the product to access fundsText describing list of card types that this product can be linked to
    COMPLEMENTARY_PRODUCT_DISCOUNTSIndicates that complementary, discounted offerings (such as gift cards, or discounted travel) is availableDescription of the complementary offering
    DIGITAL_BANKINGAccess is available to online banking features for the productNA
    DIGITAL_WALLETA Digital wallet can be attached to the productThe name or brand of the wallet
    DONATE_INTERESTIndicates that interest generated from the product can be automatically donated to a charity or community groupNA
    FREE_TXNSA set number of free transactions available per monthThe number of free transactions
    FREE_TXNS_ALLOWANCEA set amount of transaction fee value that is discounted per monthThe amount of transaction fee discounted (in AUD)
    INSURANCEInsurance is provided as an additional feature of the productText description of the type of insurance (e.g. Travel Insurance)
    INTEREST_FREEInterest free period for purchasesInterest free period. Formatted according to ISO 8601 Durations
    INTEREST_FREE_TRANSFERSInterest free period for balance transfersInterest free period. Formatted according to ISO 8601 Durations
    LOYALTY_PROGRAMA points based loyalty program is availableName of the loyalty program
    NOTIFICATIONSAdvanced notifications are available for the productDescription of the notification capability
    NPP_ENABLEDAn account of this product type can be used to receive funds as a result of a BSB/Number based NPP paymentNA
    NPP_PAYIDAn account of this product type can be used as the target of an NPP PayIDNA
    OFFSETAn offset account can be connected to the productNA
    OTHERAnother feature that can not be included in any of the other categories. The additionalInfo field is mandatory for this typeNA
    OVERDRAFTAn overdraft can be applied forNA
    REDRAWRedraw of repaid principal above minimum required is availableNA
    UNLIMITED_TXNSUnlimited free transactions availableNA
    + +

    +

    Product Constraint Types

    + +

    Description of the usage of the constraintType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    MAX_BALANCEA maximum balance is required for the productThe maximum balance in AmountString format
    MAX_LIMITA maximum limit exists (such as a maximum loan balance denoting the borrowable amount or maximum allowable credit limit)The maximum limit in AmountString format
    MIN_BALANCEA minimum balance is required for the productThe minimum balance in AmountString format
    MIN_LIMITA minimum limit exists (such as a minimum loan balance denoting the borrowable amount or minimum credit limit)The minimum limit in AmountString format
    OPENING_BALANCEAn opening balance is required for the productThe minimum opening balance in AmountString format
    + +

    +

    Product Eligibility Types

    + +

    Description of the usage of the eligibilityType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    BUSINESSOnly business may apply for the accountNA
    EMPLOYMENT_STATUSAn eligibility constraint based on employment status appliesA description of the status required
    MAX_AGEOnly customers younger than a maximum age may applyThe maximum age in years
    MIN_AGEOnly customers older than a minimum age may applyThe minimum age in years
    MIN_INCOMEThe customer must have an income greater than a specified threshold to obtain the productMinimum income in AmountString format
    MIN_TURNOVEROnly a business with greater than a minimum turnover may applyMinimum turnover in AmountString format
    NATURAL_PERSONThe customer must be a natural person rather than another legal entityNA
    OTHERAnother eligibility criteria exists as described in the additionalInfo field (if this option is specified then the additionalInfo field is mandatory)NA
    PENSION_RECIPIENTA recipient of a government pension may apply for the productNA
    RESIDENCY_STATUSAn eligibility constraint based on residency status appliesA description of the status required
    STAFFOnly a staff member of the provider may applyNA
    STUDENTOnly students may apply for the productNA
    + +

    +

    Product Fee Types

    + +

    Description of the usage of the feeType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    DEPOSITA fee associated with making a depositNA
    EVENTA fee in relation to a particular event (e.g. NA ordering a new card, viewing a balance or stopping a cheque)NA
    EXITA fee for closing the productNA
    PAYMENTA fee associated with making a paymentNA
    PERIODICA periodic fee such as a monthly account servicing feeThe period of charge. Formatted according to ISO 8601 Durations
    PURCHASEA fee associated with making a purchase at a merchantNA
    TRANSACTIONA fee associated with any transaction (incorporates WITHDRAWAL, DEPOSIT, PAYMENT and PURCHASE)NA
    UPFRONTA fee paid at the beginning of the product NA lifecycle, such as an establishment fee, loyalty program fee or application feeNA
    VARIABLEAn at-cost fee that is relevant to a customer's circumstances where the amount or rate may not be known until negotiated with the customerNA
    WITHDRAWALA fee associated with making a withdrawalNA
    + +

    +

    Product Discount Types

    + +

    Description of the usage of the discountType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    BALANCEDiscount on a fee for maintaining a set balance. As the discount applies to a fee the period is the same as for the feeThe minimum balance in AmountString format
    DEPOSITSDiscount for depositing a certain amount of money in a period. As the discount applies to a fee the period is the same as for the feeThe minimum deposit amount in AmountString format
    ELIGIBILITY_ONLYDiscount applies based on customer eligibility (eligibility array must be populated)N/A
    FEE_CAPThe amount, balanceRate, transactionRate, accruedRate or feeRate fields of the discount represent the maximum amount charged in a time periodThe time period for which the fee cap applies. Formatted according to ISO 8601 Durations
    PAYMENTSDiscount for outbound payments from the account under a certain amount of money in a period. As the discount applies to a fee the period is the same as for the feeThe payment threshold amount in AmountString format
    + +

    +

    Product Discount Eligibility Types

    + +

    Description of the usage of the discountEligibilityType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    BUSINESSA business or other non-person legal entityNA
    EMPLOYMENT_STATUSAn eligibility constraint based on employment status appliesA description of the status required
    INTRODUCTORYThe discount is only available during an introductory periodThe period of time for the introductory discount. Formatted according to ISO 8601 Durations
    MAX_AGEOnly customers younger than a maximum age receive the discountThe maximum age in years
    MIN_AGEOnly customers older than a minimum age receive the discountThe minimum age in years
    MIN_INCOMEThe customer must have an income greater than a specified threshold to obtain the discountMinimum income in AmountString format
    MIN_TURNOVEROnly a business with greater than a minimum turnover is eligibleMinimum turnover in AmountString format
    NATURAL_PERSONThe customer must be a natural person rather than another legal entityNA
    OTHERAnother eligibility criteria exists as described in the additionalInfo field (if this option is specified then the additionalInfo field is mandatory)NA
    PENSION_RECIPIENTA recipient of a government pension may receive the discountOptional. Should contain a description of which pensions qualify
    RESIDENCY_STATUSAn eligibility constraint based on residency status appliesA description of the status required
    STAFFOnly a staff member of the provider may receive the discountNA
    STUDENTOnly students may receive the discountOptional. Should contain a description of who qualifies as a student, e.g. do apprentices qualify?
    + +

    +

    Product Deposit Rate Types

    + +

    Description of the usage of the depositRateType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    BONUSA bonus rate available by meeting a specific criteriaA description of the criteria to obtain the bonus
    BUNDLE_BONUSA bonus rate obtained by originating a bundle instead of a standalone productThe name of the bundle
    FIXEDFixed rate for a period of timeThe period of time fixed. Formatted according to ISO 8601 Durations
    FLOATINGA floating rate is relatively fixed but still adjusts under specific circumstancesDetails of the float parameters
    INTRODUCTORYAn introductory bonus that will expire after a set periodThe period of time for the introductory rate. Formatted according to ISO 8601 Durations
    MARKET_LINKEDA rate that is linked to a specific market, commodity or asset classDetails of the market linkage
    VARIABLEA variable base rate for the productNA
    + +

    +

    Product Lending Rate Types

    + +

    Description of the usage of the lendingRateType field as it applies to products.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    BUNDLE_DISCOUNT_FIXEDA discount rate off the fixed rate obtained by originating a bundle instead of a standalone productThe name of the bundle
    BUNDLE_DISCOUNT_VARIABLEA discount rate off the variable rate obtained by originating a bundle instead of a standalone productThe name of the bundle
    CASH_ADVANCESpecific rate applied to cash advances from the accountNA
    DISCOUNTA specific discount rate that may be applied. A discount rate reduces the interest payableDescription of the discount rate that is applicable
    FIXEDFixed rate for a period of timeThe period of time fixed. Formatted according to ISO 8601 Durations
    FLOATINGA floating rate is relatively fixed but still adjusts under specific circumstancesDetails of the float parameters
    INTRODUCTORYAn introductory discount that will expire after a set periodThe period of time for the introductory rate. Formatted according to ISO 8601 Durations
    MARKET_LINKEDA rate that is linked to a specific market, commodity or asset classDetails of the market linkage
    PENALTYA specific penalty rate that may be applied. A penalty rate increases the interest payableDescription of the penalty rate that is applicable
    PURCHASESpecific rate applied to purchases from the accountNA
    VARIABLEA variable base rate for the productNA
    + +

    +

    Banking Term Deposit Account Types

    + +

    Description of the usage of the maturityInstructions field as it applies to accounts.

    + + + + + + + + + + + + + +
    ValueDescriptionUse of additionalValue Field
    HOLD_ON_MATURITYFunds are held in a facility or similar mechanism managed by the data holder for a period of time until the customer provides instructions or the maximum period of the hold has elapsed. Funds may be renewed or withdrawn upon instructions by the customerNA
    +

    Admin APIs

    +

    This provides an overview of CDS Administration Endpoints. Please note this API is intended for Data Holders/ Recipients only.

    + +


    + + + +
    Admin Swagger (JSON)
    Admin Swagger (YAML)

    + +

    Metadata Update

    + +

    + +
    +

    Code samples

    +
    + +
    POST https://data.holder.com.au/cds-au/v1/admin/register/metadata HTTP/1.1
    +Host: data.holder.com.au
    +Content-Type: application/json
    +
    +x-v: string
    +x-min-v: string
    +
    +
    var headers = {
    +  'Content-Type':'application/json',
    +  'x-v':'string',
    +  'x-min-v':'string'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/admin/register/metadata',
    +  method: 'post',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    + +

    POST /admin/register/metadata

    + +

    Indicate that a critical update to the metadata for Accredited Data Recipients has been made and should be obtained

    + +
    +

    Body parameter

    +
    + +
    {
    +  "data": {
    +    "action": "REFRESH"
    +  },
    +  "meta": {}
    +}
    +

    Endpoint Version

    + + + + + + + + + + +
    Version1
    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    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 should 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 should respond with a 406 Not Acceptable.
    bodybodyRequestMetaDataUpdatemandatorynone
    + +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessNone
    +

    Response Headers

    + + + + + + + + + + + + + + + + +
    StatusHeaderTypeFormatDescription
    200x-vstringThe version of the API end point that the data holder has responded with.
    + + +

    Get Metrics

    +

    + +
    +

    Code samples

    +
    +
    GET https://data.holder.com.au/cds-au/v1/admin/metrics HTTP/1.1
    +Host: data.holder.com.au
    +Accept: application/json
    +x-v: string
    +x-min-v: string
    +
    +
    var headers = {
    +  'Accept':'application/json',
    +  'x-v':'string',
    +  'x-min-v':'string'
    +
    +};
    +
    +$.ajax({
    +  url: 'https://data.holder.com.au/cds-au/v1/admin/metrics',
    +  method: 'get',
    +
    +  headers: headers,
    +  success: function(data) {
    +    console.log(JSON.stringify(data));
    +  }
    +})
    +
    +
    + +

    GET /admin/metrics

    + +

    This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime.

    + +

    NOTE: This version must be implemented by July 31st 2021

    + +

    Obsolete versions: v1

    + +

    Endpoint Version

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

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    periodquerystringoptionalThe period of metrics to be requested. Values can be CURRENT (meaning metrics for current day), HISTORIC (meaning metrics for previous days or months) or ALL. If absent the default is ALL.
    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 should 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 should respond with a 406 Not Acceptable.
    + +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    periodCURRENT
    periodHISTORIC
    periodALL
    + +
    +

    Example responses

    + +

    200 Response

    +
    + +
    {
    +  "data": {
    +    "requestTime": "string",
    +    "availability": {
    +      "currentMonth": 0,
    +      "previousMonths": [
    +        0
    +      ]
    +    },
    +    "performance": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "invocations": {
    +      "unauthenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "highPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "lowPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "unattended": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "largePayload": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      }
    +    },
    +    "averageResponse": {
    +      "unauthenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "highPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "lowPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "unattended": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "largePayload": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      }
    +    },
    +    "sessionCount": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "averageTps": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "peakTps": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "errors": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "rejections": {
    +      "authenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "unauthenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      }
    +    },
    +    "customerCount": 0,
    +    "recipientCount": 0
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    + +

    Responses

    + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OKSuccessResponseMetricsListV2
    + +

    Response Headers

    + + + + + + + + + + + + + + + + + +
    StatusHeaderTypeFormatDescription
    200x-vstringThe version of the API end point that the data holder has responded with.
    + + + +

    Schemas

    + +

    RequestMetaDataUpdate

    + +

    + +
    {
    +  "data": {
    +    "action": "REFRESH"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » actionstringmandatorynoneThe action to take for the meta data. At the moment the only option is REFRESH which requires the data holder to call the ACCC to refresh meta data as soon as practicable
    metaMetaoptionalnonenone
    +

    Enumerated Values

    + + + + + + + + + + +
    PropertyValue
    actionREFRESH
    + +

    ResponseMetricsListV2

    + +

    +
    {
    +  "data": {
    +    "requestTime": "string",
    +    "availability": {
    +      "currentMonth": 0,
    +      "previousMonths": [
    +        0
    +      ]
    +    },
    +    "performance": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "invocations": {
    +      "unauthenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "highPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "lowPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "unattended": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "largePayload": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      }
    +    },
    +    "averageResponse": {
    +      "unauthenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "highPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "lowPriority": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "unattended": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "largePayload": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      }
    +    },
    +    "sessionCount": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "averageTps": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "peakTps": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "errors": {
    +      "currentDay": 0,
    +      "previousDays": [
    +        0
    +      ]
    +    },
    +    "rejections": {
    +      "authenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      },
    +      "unauthenticated": {
    +        "currentDay": 0,
    +        "previousDays": [
    +          0
    +        ]
    +      }
    +    },
    +    "customerCount": 0,
    +    "recipientCount": 0
    +  },
    +  "links": {
    +    "self": "string"
    +  },
    +  "meta": {}
    +}
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    dataobjectmandatorynonenone
    » requestTimeDateTimeStringmandatorynoneThe date and time that the metrics in this payload were requested.
    » availabilityAvailabilityMetricsconditionalnonePercentage availability of the CDR platform over time
    » performancePerformanceMetricsconditionalnonePercentage of calls within the performance thresholds
    » invocationsInvocationMetricsconditionalnoneNumber of API calls in each performance tier over time
    » averageResponseAverageResponseMetricsconditionalnoneAverage response time in seconds, at millisecond resolution, within each performance tier
    » sessionCountSessionCountMetricsconditionalnoneSession counts over time. Note that a session is defined as the provisioning of an Access Token.
    » averageTpsAverageTPSMetricsconditionalnoneTransactions per second over time
    » peakTpsPeakTPSMetricsconditionalnoneMaximum record transactions per second over time
    » errorsErrorMetricsconditionalnoneNumber of calls resulting in error due to server execution over time
    » rejectionsRejectionMetricsV2conditionalnoneNumber of calls rejected due to traffic thresholds over time
    » customerCountintegerconditionalnoneNumber of customers with active authorisations at the time of the call
    » recipientCountintegerconditionalnoneNumber of data recipients with active authorisations at the time of the call
    linksLinksmandatorynonenone
    metaMetaoptionalnonenone
    + +

    AvailabilityMetrics

    + +

    +
    {
    +  "currentMonth": 0,
    +  "previousMonths": [
    +    0
    +  ]
    +}
    +
    +
    + +

    Percentage availability of the CDR platform over time

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    currentMonthnumberconditionalnonePercentage availability of the CDR platform so far for the current calendar month. 0.0 means 0%. 1.0 means 100%.
    previousMonths[number]conditionalnonePercentage availability of the CDR platform for previous calendar months. The first element indicates the last month and so on. A maximum of twelve entries is required if available. 0.0 means 0%. 1.0 means 100%.
    + +

    PerformanceMetrics

    + +

    + +
    {
    +  "currentDay": 0,
    +  "previousDays": [
    +    0
    +  ]
    +}
    +
    +
    + +

    Percentage of calls within the performance thresholds

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    currentDaynumberconditionalnonePercentage of calls within the performance threshold for the current day. 0.0 means 0%. 1.0 means 100%
    previousDays[number]conditionalnonePercentage of calls within the performance threshold for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. 0.0 means 0%. 1.0 means 100%
    + +

    InvocationMetrics

    + +

    + +
    {
    +  "unauthenticated": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "highPriority": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "lowPriority": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "unattended": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "largePayload": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  }
    +}
    +
    +
    + +

    Number of API calls in each performance tier over time

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    unauthenticatedobjectconditionalnoneAPI call counts for the unauthenticated tier
    » currentDaynumberconditionalnoneAPI call counts for current day
    » previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    highPriorityobjectconditionalnoneAPI call counts for the high priority tier
    » currentDaynumberconditionalnoneAPI call counts for current day
    » previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    lowPriorityobjectconditionalnoneAPI call counts for the low priority tier
    » currentDaynumberconditionalnoneAPI call counts for current day
    » previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    unattendedobjectconditionalnoneAPI call counts for the unattended tier
    » currentDaynumberconditionalnoneAPI call counts for current day
    » previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    largePayloadobjectconditionalnoneAPI call counts for the large payload tier
    » currentDaynumberconditionalnoneAPI call counts for current day
    » previousDays[number]conditionalnoneAPI call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    + +

    AverageResponseMetrics

    + +

    + +
    {
    +  "unauthenticated": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "highPriority": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "lowPriority": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "unattended": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "largePayload": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  }
    +}
    +
    +
    + +

    Average response time in seconds, at millisecond resolution, within each performance tier

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    unauthenticatedobjectconditionalnoneAverage response time for the unauthenticated tier
    » currentDaynumberconditionalnoneAverage response time for current day
    » previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    highPriorityobjectconditionalnoneAverage response time for the high priority tier
    » currentDaynumberconditionalnoneAverage response time for current day
    » previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    lowPriorityobjectconditionalnoneAverage response time for the low priority tier
    » currentDaynumberconditionalnoneAverage response time for current day
    » previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    unattendedobjectconditionalnoneAverage response time for the unattended tier
    » currentDaynumberconditionalnoneAverage response time for current day
    » previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    largePayloadobjectconditionalnoneAverage response time for the large payload tier
    » currentDaynumberconditionalnoneAverage response time for current day
    » previousDays[number]conditionalnoneAverage response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    + +

    SessionCountMetrics

    + +

    + +
    {
    +  "currentDay": 0,
    +  "previousDays": [
    +    0
    +  ]
    +}
    +
    +
    + +

    Session counts over time. Note that a session is defined as the provisioning of an Access Token.

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    currentDaynumberconditionalnoneSession count for current day
    previousDays[number]conditionalnoneSession count for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    + +

    AverageTPSMetrics

    + +

    + +
    {
    +  "currentDay": 0,
    +  "previousDays": [
    +    0
    +  ]
    +}
    +
    +
    + +

    Transactions per second over time

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    currentDaynumberconditionalnoneAverage TPS for current day
    previousDays[number]conditionalnoneAverage TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    + +

    PeakTPSMetrics

    + +

    + +
    {
    +  "currentDay": 0,
    +  "previousDays": [
    +    0
    +  ]
    +}
    +
    +
    + +

    Maximum record transactions per second over time

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    currentDaynumberconditionalnonePeak TPS for current day
    previousDays[number]conditionalnonePeak TPS for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    + +

    ErrorMetrics

    + +

    + +
    {
    +  "currentDay": 0,
    +  "previousDays": [
    +    0
    +  ]
    +}
    +
    +
    + +

    Number of calls resulting in error due to server execution over time

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    currentDaynumberconditionalnoneNumber of errors for current day
    previousDays[number]conditionalnoneNumber of errors for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available
    + +

    RejectionMetricsV2

    + +

    + +
    {
    +  "authenticated": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  },
    +  "unauthenticated": {
    +    "currentDay": 0,
    +    "previousDays": [
    +      0
    +    ]
    +  }
    +}
    +
    +
    + +

    Number of calls rejected due to traffic thresholds over time

    + +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    authenticatedobjectoptionalnoneRejection counts for all authenticated end points
    » currentDaynumberoptionalnoneNumber of calls rejected for current day
    » previousDays[number]optionalnoneNumber of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    unauthenticatedobjectoptionalnoneRejection counts for all uauthenticated end points
    » currentDaynumberoptionalnoneNumber of calls rejected for current day
    » previousDays[number]optionalnoneNumber of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.
    + + + +

    + +

    {
    +  "self": "string"
    +}

    + +

    Properties

    + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    selfURIStringmandatorynoneFully qualified link to this API call

    + +

    Meta

    + +

    + +

    {}

    + +

    Properties

    +

    None

    +

    Authorisation Scopes

    +

    The following authorisation scopes have been defined for the standards. Each API end point will specify which scopes are required to access the data available via that end point.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Scope NameScope IDDescription
    Basic Bank Account Databank:accounts.basic:readThis scope would allow for the third party to access basic information of the customer’s accounts.

    Includes simple account information including balance.
    Does not include account identifiers, product information or transaction data.
    Detailed Bank Account Databank:accounts.detail:readThis scope would allow for the third party to access detailed information of the customer’s accounts. This scope is effectively additional authorisation to the Basic Bank Account Data scope. Granting this authorisation only makes sense if the Bank Account Data scope is also authorised.

    Includes basic account information plus account identifiers and product information.
    Does not include transaction data.
    Bank Transaction Databank:transactions:readThis scope would allow the third party to access transaction data for accounts. This scope is effectively additional authorisation to the Basic Bank Account Data scope. Granting this authorisation only makes sense if the Basic Bank Account Data scope is also authorised.

    Includes all account transaction data.
    Bank Payee Databank:payees:readThis scope allows access to payee information stored by the customer.

    Includes payee information such as billers, international beneficiaries and domestic payees.
    Bank Regular Paymentsbank:regular_payments:readThe scope would allow the third party to access regular payments. Includes Direct Debits and Scheduled Payments.
    Basic Customer Datacommon:customer.basic:readThe scope would allow the third party to access personally identifiable information about the customer. For retail customers this would be information about the customer themselves. For business customers it would imply the name of specific user but also information about the business.

    Includes name and occupation for individuals or name, business numbers and industry code for organisations
    Detailed Customer Datacommon:customer.detail:readThe scope would allow the third party to access more detailed information about the customer. Includes the data available with the Basic Customer Data scope plus contact details.

    Includes basic data plus phone, email and address information.
    PublicNAOpenly accessible information. A customer would never need to grant this scope. This scope is included so that end points that can be called without requiring authorisation can be identified.

    Includes access to openly available information such as generic product information.
    +

    Non-functional Requirements

    + + +

    The non-functional requirements (NFRs) for the Consumer Data Right regime cover a number of considerations:

    + +
      +
    • Minimum performance and availability expectations for data holders. Included to ensure a reliable and performant service is offered to data recipients and customers.
    • +
    • Maximum traffic expectations for data holders. Included to ensure there is a ceiling for the amount of traffic that a data holder is expected to service.
    • +
    • Requirements for reporting of performance. Included to provide transparency of performance without the need for time consuming auditing or inspection.
    • +
    • Requirements for data latency and quality. Included to give a clear indication to the depth and recency of the data available under the regime.
    • +
    • Limitations on the number of calls that a data recipient can make to a single provider. Included to protect data holders from poorly designed or overly transactional data recipient implementations.
    • +
    +

    Definitions

    +

    In the following definition of NFRs specific terms have the following meanings:

    + +
      +
    • Data Recipient: For the purposes of these NFRs a data recipient is defined as a configured application presented in the register meta data. This acknowledges that a single accredited entity may be able to register multiple independent services (or apps) that can obtain authorisations from consumers independently of each other.
    • +
    • Session: A session is defined as the life span of a unique Access Token. Multiple API requests made with a single, valid, Access Token would be considered part of a single Session.
    • +
    • Customer Present: Authenticated API requests made in direct response to interactions by the end customer using the digital services of the data recipient will be considered “Customer Present”. Technically a data holder will define an API request as “Customer Present” if, and only if, the x-fapi-customer-ip-address header is populated with a valid IP address of the end customer’s device.
    • +
    • Customer Not Present: Authenticated API requests that are not deemed to be “Customer Present”
    • +
    • Unattended: A synonym of “Customer Not Present”
    • +
    • Authenticated: API requests to API end points that the standards require to be protected by security mechanisms that enforce explicit customer authorisation
    • +
    • Unauthenticated: API requests to API end points that the standards deem to be publically available. This implies that these end points may be accessed by any client without the client performing any authentication or authorisation actions
    • +
    • High Traffic Period: Any time in the 18 hour period between 6am and 12am (midnight) is considered to be a high traffic period
    • +
    • Low Traffic Period: Any time of the day not considered to be included in a high traffic period.
    • +
    • Large Payload: An API which is capable of returning a large data response that would reasonably impose higher data retrieval times on the resource server. Typically bulk request end points.
    • +
    +

    Session Requirements

    +

    A expiry time of a unique session should be set according to the statements included in the Security Profile.

    + +

    After a unique session is expired it is expected that the data recipient, for the same customer, may establish a new session as long as the authorisation is still valid.

    +

    Availability Requirements

    +

    Service availability requirement for data holders: +99.5% per month

    + +

    The definition of a period of unavailability is any period of time when any of the API end points defined in the standard is unable to reliably provide a successful response to an appropriately constructed request.

    + +

    The availability requirement applies to both authenticated and unauthenticated end points.

    + +

    The availability requirement does not include planned outages. Planned outages should be:

    + +
      +
    • Commensurate in length and frequency to other primary digital channels offered by the data holder,
    • +
    • Published to data recipients with at least one week lead time for normal outages,
    • +
    • May occur without notification if the change is to resolve a critical service or security issue.
    • +
    +

    Performance Requirements

    +

    API end point performance will be measured in response time of individual API requests from receipt of request to delivery of response.

    + +

    It is understood that different response times can be measured depending on which technical layer of an API implementation stack is instrumented and that not all of the technical layers between the data recipient and the data holder will be in the control of the data holder. As this is implementation specific it is expected that the data holder will ensure that the measurement of response time occurs as close to the data recipient as practicable.

    + +

    In light of these considerations, the performance requirement for data holders is:

    + +

    95% of calls per hour responded to within a nominated threshold

    + +

    The nominated threshold for each end point will be according to the following table:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TierResponse TimeApplies To…
    Unauthenticated1500msAll Unauthenticated end points not otherwise specified in a separate threshold.
    High Priority1000msAll calls to the following end points:
    • All InfoSec end points including Dynamic Client Registration
    • CDR Arrangement Revocation
    The following Unauthenticated end points:
    • Get Status
    • Get Outages
    Customer Present calls to the following end points:
    • Get Accounts
    • Get Customer
    • Get Customer Detail
    Low Priority1500msCustomer Present calls to the following end points:
    • Get Account Detail
    • Get Account Balance
    • Get Bulk Balances
    • Get Balances For Specific Accounts
    • Get Transactions For Account
    • Get Transaction Detail
    • Get Payees
    • Get Payee Detail
    • Get Direct Debits For Account
    • Get Scheduled Payments For Account
    • Get Scheduled Payments Bulk
    • Get Scheduled Payments For Specific Accounts
    Unattended4000msUnattended calls to the following end points that are not Large Payload end points:
    • High Priority Authenticated end points
    • Low Priority Authenticated end points
    • All Admin end points.
    Large Payload6000msAny Unattended calls to the following end points:
    • Get Bulk Direct Debits
    • Get Direct Debits For Specific Accounts
    + +

    Note that calls initiated in excess of a traffic threshold (see next section) may be excluded from the performance requirement.

    +

    Traffic Thresholds

    +

    Calls in excess of the following traffic thresholds will be able to be freely throttled or rejected by a data holder without impact to their performance or availability requirements.

    + +

    Traffic thresholds will be set using the following metrics:

    + +
      +
    • Number of sessions per day – the number of individual sessions initiated in a calendar day.
    • +
    • Transactions Per Second (TPS) – the number of concurrent transactions each second.
    • +
    • Number of calls – the number of end point calls initiated for a specified duration.
    • +
    + +

    For Customer Present and authorisation traffic the following traffic thresholds will apply:

    + +
      +
    • Unlimited sessions per day
    • +
    • 10 TPS per customer
    • +
    • 50 TPS per data recipient
    • +
    + +

    For Unattended traffic the following traffic thresholds will apply for low traffic periods:

    + +
      +
    • 20 sessions per day, per customer, per data recipient
    • +
    • 100 total calls per session
    • +
    • 5TPS per session
    • +
    • 50 TPS per data recipient
    • +
    + +

    For Unattended traffic during high traffic periods only best effort support is required.

    + +

    For secure traffic (both Customer Present and Unattended) the following traffic thresholds will apply:

    + +
      +
    • 300 TPS total across all consumers
    • +
    + +

    For Public traffic (i.e. traffic to unauthenticated end points) the following traffic thresholds will apply:

    + +
      +
    • 300 TPS total across all consumers (additive to secure traffic)
    • +
    +

    Data Recipient Requirements

    +

    Data recipients will be limited by the traffic thresholds documented in the previous section. In addition to this data recipients are expected to design their services according to the following principles:

    + +
      +
    • Services should be designed to minimise traffic with data holders
    • +
    • Services should be designed to be resilient in the case of the rejection of a call by a data holder due to traffic threshold breaches
    • +
    • Services should schedule unattended calls to avoid high traffic periods
    • +
    • Unattended calls should be managed to avoid short term bursts of traffic
    • +
    +

    Reporting Requirements

    +

    The mechanism for reporting will be via the CDR Administration Endpoints.

    + +

    The following information is to be reported:

    + +
      +
    • Availability for current month
    • +
    • Availability for each of the previous twelve months
    • +
    • Percentage of calls within performance threshold for current day
    • +
    • Percentage of calls within performance threshold for each of the previous seven days
    • +
    • Number of calls within each performance tier for current day
    • +
    • Number of calls within each performance tier for each of the previous seven days
    • +
    • Average response time within each performance tier for current day
    • +
    • Average response time within each performance tier for each of the previous seven days
    • +
    • Number of sessions for current day
    • +
    • Number of sessions for each of the previous seven days
    • +
    • Peak total TPS for current day
    • +
    • Peak total TPS for each of the previous seven days
    • +
    • Average TPS for current day
    • +
    • Average TPS for each of the previous seven days
    • +
    • Number of calls resulting in error due to server execution for current day
    • +
    • Number of calls resulting in error due to server execution for each of the previous seven days
    • +
    • Number of calls rejected due to traffic thresholds for current day
    • +
    • Number of calls rejected due to traffic thresholds for each of the previous seven days
    • +
    • Number of customers with active authorisations
    • +
    • Number of data recipients with active authorisations
    • +
    +

    Data Latency

    +

    Within this proposal there is no specific requirement with regard to data latency (ie. how up to date data should be). Instead, the requirement for data latency is that data presented via API end points should be commensurate to data presented via other primary digital channels.

    + +

    For example, for a Bank that provides a mobile application as their primary digital experience, a balance presented via one of the balance end points should be the same as the balance presented through the mobile application.

    +

    Data Quality

    +

    Data holders are required to take reasonable steps to ensure that CDR data, having regard to the purpose for which it is held, is accurate and up to date.

    + +

    A data holder is required to be able to demonstrate that reasonable steps to maintain data quality are being undertaken.

    +

    Exemptions To Protect Service

    +

    In the event of the following extreme circumstances data holders will be able to obtain relief from non-functional requirements:

    + +
      +
    • Periods of time when the digital channels for the data holder are the target for a distributed denial of service or equivalent form of attack (this should result in http error 429 Too Many Requests being returned).
    • +
    • A significant increase in traffic from a poorly designed or misbehaving data recipient (this should result in http error 429 Too Many Requests being returned).
    • +
    • If the data holder identifies a situation where there is the potential for physical or financial harm or abuse (this should result in http error 403 Forbidden being returned).
    • +
    +

    Known Issues

    +

    This version of the standards currently has no known issues

    +

    Change Log

    +

    The following table lists the changes made to these standards in reverse date order (most recent change is at the top).

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Change DateVersionDescriptionDetail Of change
    16/04/20211.8.0CX Standards for Amending ConsentSee release notes and Decision 144 for details
    10/03/20211.7.0Changes arising from the fifth Banking Maintenance IterationSee release notes and Decision 159 for details
    23/12/20201.6.0DP325 to address urgent community request regarding audience claim for client authentication for data recipients calling data holdersSee release notes for details
    25/9/20201.5.1Revert 1.5.0 CRN updateSee release notes for details
    16/9/20201.5.0Second Banking Maintenance Iteration 4 ReleaseSee release notes for details
    12/8/20201.4.0Banking Maintenance Iteration 4 ReleaseSee release notes for details
    22/5/20201.3.1Maintenance updatesError Fixes
    See release notes for detail
    17/4/20201.3.0Minor Update ReleaseIncorporates maintenance iteration 2 changes along with a number other CX and technical changes
    See release notes for detail
    31/1/20201.2.0Phase 2 BaselineBaseline version for the Phase 2 implementation of the CDR regime
    See release notes for detail
    20/1/20201.1.1Maintenance updatesError Fixes
    See release notes for detail
    10/12/20191.1.0Banking Maintenance Iteration 1 ChangesChanges arising from iteration 1 of the banking maintenance cadence.
    See release notes for detail
    12/11/20191.0.1Patch updateMinor defect changes and clarifications.
    See release notes for detail
    30/9/20191.0.0Baseline version 1This release is the baseline release for the standards that are intended for implementation February 2020 and contains minor updates as well as changes to align to the locked down CDR Rules and the updated CDR Register design
    4/9/20190.9.6Defect fix releaseThis release addresses a series of documentation issues and other clarifications as identified via GitHub feedback
    15/7/20190.9.5Incorporated May 2019 FeedbackThis version incorporates the decisions arising from the consultation feedback obtained on the May 2019 draft of the standards (v0.9.3)
    27/6/20190.9.4Documentation and error fixes from May draft
    • Added missing versioning headers x-v/ x-min-v
    • Removed Banking API's tag
    • Fixed nonBusinessDayTreatment enum default is an array
    • Removal of empty x-scope in product reference
    • BankingScheduledPaymentRecurrence removed required intervals field
    • Added Swagger Contact object
    • BankingScheduledPaymentRecurrence removed required intervals field
    • Minor updates to static documentation typos/ broken links
    • Added cross links to additionalValue descriptions for Product Reference enums
    • Minor updates to product reference samples
    29/5/20190.9.3Final updates for May DraftAddition of Discoverability, InfoSec Profile and minor corrections
    28/5/20190.9.2Admin End PointsAdded separate swagger/yaml as well as documentation for admin end points
    28/5/20190.9.1Modified BankingProductRateTier.maximumValue to optionalRebuild of docs
    28/5/20190.9.0Incorporated Scheduled Payments Decision proposal 51Swagger updates and Documentation changes
    13/5/20190.8.4InfoSec UpdateImported the InfoSec content without update for recent proposals
    12/5/20190.8.3Optionality UpdateClarified the meaning of a field declaration of optional
    7/5/20190.8.2Minor fixesMinor fixes for product category enum
    6/4/20190.8.1Negative RatesModified RateString to allow for negative rates and not just positive or zero rates
    3/4/20190.8.0Accounts and Balances v1 finalApplied changes to prepare for v1 version of Accounts and Balances end points and payloads documentation
    27/4/20190.7.0April FeedbackIncorporated feedback from v1 draft decisions and feedback cycle 5
    23/4/20190.6.0Payees & Customer v1 draftApplied changes to prepare for v1 version of Payees & Customer end points and payloads documentation
    16/4/20190.5.0Transaction v1 draftApplied changes to prepare for v1 version of Transaction end points and payloads documentation
    16/4/20190.4.0Direct Debit Auth v1 draftApplied changes to prepare for v1 version of Direct Debit Authorisations end points and payloads documentation
    9/4/20190.3.0Product Reference v1 finalSynchronised standards documentation and swagger with final Decision 054 - Product Reference v1
    11/3/20190.2.0Product Reference v1 draftApplied changes to prepare for v1 version of Product Reference end points and payloads
    22/2/20190.2.0Rate tier nameAddition of a name field for rate tiers
    21/2/20190.2.0Rate tieringAdded rate tiering and additional rate types based on community feedback
    19/2/20190.2.0Fees and DiscountsUpdated product and account fees, discounts and elibilities based on community feedback
    19/2/20190.2.0Doc SyncSynchronised the API documentation with the swagger files
    11/2/20190.2.0Consistency FixesFixes to end points for consistency across the standard. Changes as follows:
    • Made the use of the data object consistent (all objects with mixin for properties)
    • Modifed the ErrorList object to ResponseErrorList as it really is a response object
    • Fixed required status for links and meta properties
    • Added query paging params for POST queries that return lists
    4/2/20190.2.0Object Model NamesUpdated the swagger json and yaml files to make the object model names consistent
    21/12/20180.2.0Transaction payloadsRemoved incorrect inclusion of accountId, displayName and nickname for transaction response payloads
    20/12/20180.2.0Version 0.20Version updated formally to version 0.20 for Christmas Draft
    20/12/20180.1.0Updated documentationDocumentation has been automatically generated from the swagger for consistency
    20/12/20180.1.0Known issuesAdded a section identifying known issues with the standards that are under review
    20/12/20180.1.0Cursor based paginationAdded commentary in pagination section on the potential use of cursors
    20/12/20180.1.0Minor amendments to response codesAdditional wording to support caching and inserted a cross reference to the error payload section
    20/12/20180.1.0Minor amendments to extensibilityMinor wording changes for clarity and included reference to addition of new query parameters
    20/12/20180.1.0Unauthenticated end pointsModified URI structure commentary to allow for a different provider path for unauthenticated end points
    20/12/20180.1.0Festive spiritCritical update - added a Santa hat to the logo
    20/12/20180.1.0FAPI HeadersAdded FAPI specific headers arising from the InfoSec work
    19/12/20180.1.0PAFAddressAdded detail for the PAFAddress model based on the Australia Post PAF file format definition
    19/12/20180.1.0RateString common typeChanged the RateString type to represent rates such that 100% is represented by the value 1.0
    19/12/20180.1.0URIString common typeCorrected the name of the URIString common type
    19/12/20180.1.0Updated swagger filesSwagger files were updated to address feedback. Documentation has not been changed to reflect these changes unless stated. Changes are as follows:
    • Fixed up numerous field descriptions based on feedback
    • Fixed all country fields to use ISO 3166 Alpha-3
    • Fixed all documentation errors raised in published feedback summary except addition of PAFAddress
    • Added all minor amendments raised in published feedback summary
    • Modifications according to responses in technical feedback section documented in published feedback summary
    • organisationType for Organisation model is now required due to addition of OTHER value
    19/12/20180.1.0Masking rulesAdded specificity to the masking guidance for the masked string primitives
    18/12/20180.1.0Updated swagger filesSwagger files were updated to address feedback. Documentation has not been changed to reflect these changes unless stated. Changes are as follows:
    • Extracted common query parameters
    • Extracted enums with repeated use
    • Used schema composition to facilitate model inheritance
    • Removed erroneous default values
    • Corrected for JSON syntax errors
    • Standardised Operation IDs and Model names
    • Change $type fields to PType (also fixed in doco)
    18/12/20180.1.0Addition of change logThis change log was added to the standards documentation
    +

    Archives

    +

    The following table lists archived versions of the Consumer Data Standards. These are older versions of the standards that are available for reference only. They are not considered binding.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Releases DateVersionDescription
    10/03/20211.7.0Banking Maintenance Iteration 5 and related changes arising from Decision 159
    23/12/20201.6.0Update to audience claim for client authentication arising from Decision Proposal 325
    25/9/20201.5.1Revert 1.5.0 CRN update
    16/9/20201.5.0Banking Maintenance Iteration 4 Release
    12/8/20201.4.0Banking Maintenance Iteration 3 Release
    22/5/20201.3.1May Banking Maintenance Iteration 2 Release
    17/4/20201.3.0April 1.3.0 Release
    31/1/20201.2.0January 1.2.0 Release
    30/9/20191.0.0September 1.0.0 Release
    4/9/20190.9.6September fixes update
    15/7/20190.9.5July 2019 Working Draft
    29/5/20190.9.3May 2019 Working Draft
    18/12/20180.1.0Christmas 2018 Working Draft - InfoSec Profile
    18/12/20180.2.0Christmas 2018 Working Draft - Standards
    2/11/20180.1.0November 2018 Working Draft
    + +
    +
    +
    +
    + + diff --git a/docs/archive/standards-1.8.0/docs/javascripts/all.js b/docs/archive/standards-1.8.0/docs/javascripts/all.js new file mode 100644 index 00000000..9f775e1e --- /dev/null +++ b/docs/archive/standards-1.8.0/docs/javascripts/all.js @@ -0,0 +1,131 @@ +!function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(e,t){t=t||ne;var n=t.createElement("script");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function r(e){var t=!!e&&"length"in e&&e.length,n=ge.type(e);return"function"!==n&&!ge.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function o(e,t,n){return ge.isFunction(t)?ge.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?ge.grep(e,function(e){return e===t!==n}):"string"!=typeof t?ge.grep(e,function(e){return ae.call(t,e)>-1!==n}):Ce.test(t)?ge.filter(t,e,n):(t=ge.filter(t,e),ge.grep(e,function(e){return ae.call(t,e)>-1!==n&&1===e.nodeType}))}function s(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function a(e){var t={};return ge.each(e.match(Le)||[],function(e,n){t[n]=!0}),t}function u(e){return e}function c(e){throw e}function l(e,t,n,r){var i;try{e&&ge.isFunction(i=e.promise)?i.call(e).done(t).fail(n):e&&ge.isFunction(i=e.then)?i.call(e,t,n):t.apply(undefined,[e].slice(r))}catch(e){n.apply(undefined,[e])}}function f(){ne.removeEventListener("DOMContentLoaded",f),e.removeEventListener("load",f),ge.ready()}function d(){this.expando=ge.expando+d.uid++}function p(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:He.test(e)?JSON.parse(e):e)}function h(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(Ie,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=p(n)}catch(e){}Pe.set(e,t,n)}else n=undefined;return n}function g(e,t,n,r){var i,o=1,s=20,a=r?function(){return r.cur()}:function(){return ge.css(e,t,"")},u=a(),c=n&&n[3]||(ge.cssNumber[t]?"":"px"),l=(ge.cssNumber[t]||"px"!==c&&+u)&&_e.exec(ge.css(e,t));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do{o=o||".5",l/=o,ge.style(e,t,l+c)}while(o!==(o=a()/u)&&1!==o&&--s)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function m(e){var t,n=e.ownerDocument,r=e.nodeName,i=ze[r];return i||(t=n.body.appendChild(n.createElement(r)),i=ge.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),ze[r]=i,i)}function v(e,t){for(var n,r,i=[],o=0,s=e.length;o-1)i&&i.push(o);else if(c=ge.contains(o.ownerDocument,o),s=y(f.appendChild(o),"script"),c&&x(s),n)for(l=0;o=s[l++];)Ue.test(o.type||"")&&n.push(o);return f}function w(){return!0}function T(){return!1}function S(){try{return ne.activeElement}catch(e){}}function E(e,t,n,r,i,o){var s,a;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=undefined);for(a in t)E(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=undefined):null==i&&("string"==typeof n?(i=r,r=undefined):(i=r,r=n,n=undefined)),!1===i)i=T;else if(!i)return e;return 1===o&&(s=i,i=function(e){return ge().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=ge.guid++)),e.each(function(){ge.event.add(this,t,i,r,n)})}function C(e,t){return i(e,"table")&&i(11!==t.nodeType?t:t.firstChild,"tr")?ge(">tbody",e)[0]||e:e}function k(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function N(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function j(e,t){var n,r,i,o,s,a,u,c;if(1===t.nodeType){if($e.hasData(e)&&(o=$e.access(e),s=$e.set(t,o),c=o.events)){delete s.handle,s.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof h&&!pe.checkClone&&nt.test(h))return e.each(function(n){var o=e.eq(n);g&&(t[0]=h.call(this,n,o.html())),L(o,t,r,i)});if(d&&(o=b(t,e[0].ownerDocument,!1,e,i),s=o.firstChild,1===o.childNodes.length&&(o=s),s||i)){for(a=ge.map(y(o,"script"),k),u=a.length;f=0&&nS.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[_]=!0,e}function i(e){var t=q.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)S.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Ee(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function p(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(s[c]=f))}}else x=v(x===s?x.splice(h,x.length):x),o?o(null,s,x,u):K.apply(s,x)})}function x(e){for(var t,n,r,i=e.length,o=S.relative[e[0].type],s=o||S.relative[" "],a=o?1:0,u=h(function(e){return e===t},s,!0),c=h(function(e){return ee(t,e)>-1},s,!0),l=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,i}];a1&&g(l),a>1&&p(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ae,"$1"),n,a0,o=e.length>0,s=function(r,s,a,u,c){var l,f,d,p=0,h="0",g=r&&[],m=[],y=A,x=r||o&&S.find.TAG("*",c),b=W+=null==y?1:Math.random()||.1,w=x.length;for(c&&(A=s===q||s||c);h!==w&&null!=(l=x[h]);h++){if(o&&l){for(f=0,s||l.ownerDocument===q||(O(l),a=!$);d=e[f++];)if(d(l,s||q,a)){u.push(l);break}c&&(W=b)}i&&((l=!d&&l)&&p--,r&&g.push(l))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,m,s,a);if(r){if(p>0)for(;h--;)g[h]||m[h]||(m[h]=J.call(u));m=v(m)}K.apply(u,m),c&&!r&&m.length>0&&p+n.length>1&&t.uniqueSort(u)}return c&&(W=b,A=y),g};return i?r(s):s}var w,T,S,E,C,k,N,j,A,L,D,O,q,F,$,P,H,I,R,_="sizzle"+1*new Date,M=e.document,W=0,B=0,z=n(),V=n(),X=n(),U=function(e,t){return e===t&&(D=!0),0},Q={}.hasOwnProperty,Y=[],J=Y.pop,G=Y.push,K=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),le=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Te=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Se=function(){O()},Ee=h(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(Y=Z.call(M.childNodes),M.childNodes),Y[M.childNodes.length].nodeType}catch(e){K={apply:Y.length?function(e,t){G.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}T=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},O=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:M;return r!==q&&9===r.nodeType&&r.documentElement?(q=r,F=q.documentElement,$=!C(q),M!==q&&(n=q.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Se,!1):n.attachEvent&&n.attachEvent("onunload",Se)),T.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),T.getElementsByTagName=i(function(e){return e.appendChild(q.createComment("")),!e.getElementsByTagName("*").length}),T.getElementsByClassName=me.test(q.getElementsByClassName),T.getById=i(function(e){return F.appendChild(e).id=_,!q.getElementsByName||!q.getElementsByName(_).length}),T.getById?(S.filter.ID=function(e){var t=e.replace(xe,be);return function(e){return e.getAttribute("id")===t}},S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&$){var n=t.getElementById(e);return n?[n]:[]}}):(S.filter.ID=function(e){var t=e.replace(xe,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&$){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),S.find.TAG=T.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):T.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},S.find.CLASS=T.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&$)return t.getElementsByClassName(e)},H=[],P=[],(T.qsa=me.test(q.querySelectorAll))&&(i(function(e){F.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+_+"-]").length||P.push("~="),e.querySelectorAll(":checked").length||P.push(":checked"),e.querySelectorAll("a#"+_+"+*").length||P.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=q.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&P.push(":enabled",":disabled"),F.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(T.matchesSelector=me.test(I=F.matches||F.webkitMatchesSelector||F.mozMatchesSelector||F.oMatchesSelector||F.msMatchesSelector))&&i(function(e){T.disconnectedMatch=I.call(e,"*"),I.call(e,"[s!='']:x"),H.push("!=",oe)}),P=P.length&&new RegExp(P.join("|")),H=H.length&&new RegExp(H.join("|")),t=me.test(F.compareDocumentPosition),R=t||me.test(F.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!T.sortDetached&&t.compareDocumentPosition(e)===n?e===q||e.ownerDocument===M&&R(M,e)?-1:t===q||t.ownerDocument===M&&R(M,t)?1:L?ee(L,e)-ee(L,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t];if(!i||!o)return e===q?-1:t===q?1:i?-1:o?1:L?ee(L,e)-ee(L,t):0;if(i===o)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?s(a[r],u[r]):a[r]===M?-1:u[r]===M?1:0},q):q},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==q&&O(e),n=n.replace(le,"='$1']"),T.matchesSelector&&$&&!X[n+" "]&&(!H||!H.test(n))&&(!P||!P.test(n)))try{var r=I.call(e,n);if(r||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,q,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==q&&O(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==q&&O(e);var n=S.attrHandle[t.toLowerCase()],r=n&&Q.call(S.attrHandle,t.toLowerCase())?n(e,t,!$):undefined;return r!==undefined?r:T.attributes||!$?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(we,Te)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(D=!T.detectDuplicates,L=!T.sortStable&&e.slice(0),e.sort(U),D){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return L=null,e},E=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},S=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,be),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=z[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&z(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(se," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,d,p,h,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?m.firstChild:m.lastChild],s&&y){for(d=m,f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),c=l[e]||[],p=c[0]===W&&c[1],x=p&&c[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){l[e]=[W,p,x];break}}else if(y&&(d=t,f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),c=l[e]||[],p=c[0]===W&&c[1],x=p),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++x||(y&&(f=d[_]||(d[_]={}),l=f[d.uniqueID]||(f[d.uniqueID]={}),l[e]=[W,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=S.pseudos[e]||S.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[_]?o(n):o.length>1?(i=[e,e,"",n],S.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=ee(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=N(e.replace(ae,"$1"));return i[_]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,be),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,be).toLowerCase(),function(t){var n;do{if(n=$?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===F},focus:function(e){return e===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!S.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=o[0]).type&&9===t.nodeType&&$&&S.relative[o[1].type]){if(!(t=(S.find.ID(s.matches[0].replace(xe,be),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(s=o[i],!S.relative[a=s.type]);)if((u=S.find[a])&&(r=u(s.matches[0].replace(xe,be),ye.test(o[0].type)&&f(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&p(o)))return K.apply(n,r),n;break}}return(c||N(e,l))(r,t,!$,n,!t||ye.test(e)&&f(t.parentNode)||t),n},T.sortStable=_.split("").sort(U).join("")===_,T.detectDuplicates=!!D,O(),T.sortDetached=i(function(e){return 1&e.compareDocumentPosition(q.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),T.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);ge.find=be,ge.expr=be.selectors,ge.expr[":"]=ge.expr.pseudos,ge.uniqueSort=ge.unique=be.uniqueSort,ge.text=be.getText,ge.isXMLDoc=be.isXML,ge.contains=be.contains,ge.escapeSelector=be.escape;var we=function(e,t,n){for(var r=[],i=n!==undefined;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&ge(e).is(n))break;r.push(e)}return r},Te=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Se=ge.expr.match.needsContext,Ee=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,Ce=/^.[^:#\[\.,]*$/;ge.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ge.find.matchesSelector(r,e)?[r]:[]:ge.find.matches(e,ge.grep(t,function(e){return 1===e.nodeType}))},ge.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ge(e).filter(function(){for(t=0;t1?ge.uniqueSort(n):n},filter:function(e){return this.pushStack(o(this,e||[],!1))},not:function(e){return this.pushStack(o(this,e||[],!0))},is:function(e){return!!o(this,"string"==typeof e&&Se.test(e)?ge(e):e||[],!1).length}});var ke,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ge.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||ke,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ne.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ge?t[0]:t,ge.merge(this,ge.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:ne,!0)),Ee.test(r[1])&&ge.isPlainObject(t))for(r in t)ge.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=ne.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):ge.isFunction(e)?n.ready!==undefined?n.ready(e):e(ge):ge.makeArray(e,this)}).prototype=ge.fn,ke=ge(ne);var je=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};ge.fn.extend({has:function(e){var t=ge(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&ge.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ge.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?ae.call(ge(e),this[0]):ae.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ge.uniqueSort(ge.merge(this.get(),ge(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ge.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return we(e,"parentNode")},parentsUntil:function(e,t,n){return we(e,"parentNode",n)},next:function(e){return s(e,"nextSibling")},prev:function(e){return s(e,"previousSibling")},nextAll:function(e){return we(e,"nextSibling")},prevAll:function(e){return we(e,"previousSibling")},nextUntil:function(e,t,n){return we(e,"nextSibling",n)},prevUntil:function(e,t,n){return we(e,"previousSibling",n)},siblings:function(e){return Te((e.parentNode||{}).firstChild,e)},children:function(e){return Te(e.firstChild)},contents:function(e){return i(e,"iframe")?e.contentDocument:(i(e,"template")&&(e=e.content||e),ge.merge([],e.childNodes))}},function(e,t){ge.fn[e]=function(n,r){var i=ge.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ge.filter(r,i)),this.length>1&&(Ae[e]||ge.uniqueSort(i),je.test(e)&&i.reverse()),this.pushStack(i)}});var Le=/[^\x20\t\r\n\f]+/g;ge.Callbacks=function(e){e="string"==typeof e?a(e):ge.extend({},e);var t,n,r,i,o=[],s=[],u=-1,c=function(){for(i=i||e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)o.splice(n,1),n<=u&&u--}),this},has:function(e){return e?ge.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=s=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=s=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},ge.extend({Deferred:function(t){var n=[["notify","progress",ge.Callbacks("memory"),ge.Callbacks("memory"),2],["resolve","done",ge.Callbacks("once memory"),ge.Callbacks("once memory"),0,"resolved"],["reject","fail",ge.Callbacks("once memory"),ge.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return ge.Deferred(function(t){ge.each(n,function(n,r){var i=ge.isFunction(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&ge.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function o(t,n,r,i){return function(){var a=this,l=arguments,f=function(){var e,f;if(!(t=s&&(r!==c&&(a=undefined,l=[e]),n.rejectWith(a,l))}};t?d():(ge.Deferred.getStackHook&&(d.stackTrace=ge.Deferred.getStackHook()),e.setTimeout(d))}}var s=0;return ge.Deferred(function(e){n[0][3].add(o(0,e,ge.isFunction(i)?i:u,e.notifyWith)),n[1][3].add(o(0,e,ge.isFunction(t)?t:u)),n[2][3].add(o(0,e,ge.isFunction(r)?r:c))}).promise()},promise:function(e){return null!=e?ge.extend(e,i):i}},o={};return ge.each(n,function(e,t){var s=t[2],a=t[5];i[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[0][2].lock),s.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?undefined:this,arguments),this},o[t[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=ie.call(arguments),o=ge.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?ie.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(l(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||ge.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)l(i[n],s(n),o.reject);return o.promise()}});var De=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ge.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&De.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},ge.readyException=function(t){e.setTimeout(function(){throw t})};var Oe=ge.Deferred();ge.fn.ready=function(e){return Oe.then(e)["catch"](function(e){ge.readyException(e)}),this},ge.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ge.readyWait:ge.isReady)||(ge.isReady=!0,!0!==e&&--ge.readyWait>0||Oe.resolveWith(ne,[ge]))}}),ge.ready.then=Oe.then,"complete"===ne.readyState||"loading"!==ne.readyState&&!ne.documentElement.doScroll?e.setTimeout(ge.ready):(ne.addEventListener("DOMContentLoaded",f),e.addEventListener("load",f));var qe=function(e,t,n,r,i,o,s){var a=0,u=e.length,c=null==n;if("object"===ge.type(n)){i=!0;for(a in n)qe(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,ge.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ge(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each(function(){Pe.remove(this,e)})}}),ge.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=$e.get(e,t),n&&(!r||Array.isArray(n)?r=$e.access(e,t,ge.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ge.queue(e,t),r=n.length,i=n.shift(),o=ge._queueHooks(e,t),s=function(){ge.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return $e.get(e,n)||$e.access(e,n,{empty:ge.Callbacks("once memory").add(function(){$e.remove(e,[t+"queue",n])})})}}),ge.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Ue=/^$|\/(?:java|ecma)script/i,Qe={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};Qe.optgroup=Qe.option,Qe.tbody=Qe.tfoot=Qe.colgroup=Qe.caption=Qe.thead,Qe.th=Qe.td;var Ye=/<|&#?\w+;/;!function(){var e=ne.createDocumentFragment(),t=e.appendChild(ne.createElement("div")),n=ne.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),pe.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",pe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Je=ne.documentElement,Ge=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^([^.]*)(?:\.(.+)|)/;ge.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,c,l,f,d,p,h,g,m=$e.get(e);if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&ge.find.matchesSelector(Je,i), +n.guid||(n.guid=ge.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return void 0!==ge&&ge.event.triggered!==t.type?ge.event.dispatch.apply(e,arguments):undefined}),t=(t||"").match(Le)||[""],c=t.length;c--;)a=Ze.exec(t[c])||[],p=g=a[1],h=(a[2]||"").split(".").sort(),p&&(f=ge.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=ge.event.special[p]||{},l=ge.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ge.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||(d=u[p]=[],d.delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,s)||e.addEventListener&&e.addEventListener(p,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),ge.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,c,l,f,d,p,h,g,m=$e.hasData(e)&&$e.get(e);if(m&&(u=m.events)){for(t=(t||"").match(Le)||[""],c=t.length;c--;)if(a=Ze.exec(t[c])||[],p=g=a[1],h=(a[2]||"").split(".").sort(),p){for(f=ge.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=u[p]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)l=d[o],!i&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(d.splice(o,1),l.selector&&d.delegateCount--,f.remove&&f.remove.call(e,l));s&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,m.handle)||ge.removeEvent(e,p,m.handle),delete u[p])}else for(p in u)ge.event.remove(e,p+t[c],n,r,!0);ge.isEmptyObject(u)&&$e.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=ge.event.fix(e),u=new Array(arguments.length),c=($e.get(this,"events")||{})[a.type]||[],l=ge.event.special[a.type]||{};for(u[0]=a,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],s={},n=0;n-1:ge.find(i,this,null,[c]).length),s[i]&&o.push(r);o.length&&a.push({elem:c,handlers:o})}return c=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,tt=/\s*$/g;ge.extend({htmlPrefilter:function(e){return e.replace(et,"<$1>")},clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=ge.contains(e.ownerDocument,e);if(!(pe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ge.isXMLDoc(e)))for(s=y(a),o=y(e),r=0,i=o.length;r0&&x(s,!u&&y(e,"script")),a},cleanData:function(e){for(var t,n,r,i=ge.event.special,o=0;(n=e[o])!==undefined;o++)if(Fe(n)){if(t=n[$e.expando]){if(t.events)for(r in t.events)i[r]?ge.event.remove(n,r):ge.removeEvent(n,r,t.handle);n[$e.expando]=undefined}n[Pe.expando]&&(n[Pe.expando]=undefined)}}}),ge.fn.extend({detach:function(e){return D(this,e,!0)},remove:function(e){return D(this,e)},text:function(e){return qe(this,function(e){return e===undefined?ge.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return L(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||C(this,e).appendChild(e)})},prepend:function(){return L(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return L(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return L(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ge.cleanData(y(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ge.clone(this,e,t)})},html:function(e){return qe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tt.test(e)&&!Qe[(Xe.exec(e)||["",""])[1].toLowerCase()]){e=ge.htmlPrefilter(e);try{for(;n1)}}),ge.Tween=R,R.prototype={constructor:R,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ge.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ge.cssNumber[n]?"":"px")},cur:function(){var e=R.propHooks[this.prop];return e&&e.get?e.get(this):R.propHooks._default.get(this)},run:function(e){var t,n=R.propHooks[this.prop];return this.options.duration?this.pos=t=ge.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):R.propHooks._default.set(this),this}},R.prototype.init.prototype=R.prototype,R.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ge.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){ge.fx.step[e.prop]?ge.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[ge.cssProps[e.prop]]&&!ge.cssHooks[e.prop]?e.elem[e.prop]=e.now:ge.style(e.elem,e.prop,e.now+e.unit)}}},R.propHooks.scrollTop=R.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ge.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ge.fx=R.prototype.init,ge.fx.step={};var ht,gt,mt=/^(?:toggle|show|hide)$/,vt=/queueHooks$/;ge.Animation=ge.extend(X,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return g(n.elem,e,_e.exec(t),n),n}]},tweener:function(e,t){ge.isFunction(e)?(t=e,e=["*"]):e=e.match(Le);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){ge.removeAttr(this,e)})}}),ge.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ge.prop(e,t,n):(1===o&&ge.isXMLDoc(e)||(i=ge.attrHooks[t.toLowerCase()]||(ge.expr.match.bool.test(t)?yt:undefined)),n!==undefined?null===n?void ge.removeAttr(e,t):i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=ge.find.attr(e,t),null==r?undefined:r))},attrHooks:{type:{set:function(e,t){if(!pe.radioValue&&"radio"===t&&i(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Le);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),yt={set:function(e,t,n){return!1===t?ge.removeAttr(e,n):e.setAttribute(n,n),n}},ge.each(ge.expr.match.bool.source.match(/\w+/g),function(e,t){var n=xt[t]||ge.find.attr;xt[t]=function(e,t,r){var i,o,s=t.toLowerCase();return r||(o=xt[s],xt[s]=i,i=null!=n(e,t,r)?s:null,xt[s]=o),i}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;ge.fn.extend({prop:function(e,t){return qe(this,ge.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[ge.propFix[e]||e]})}}),ge.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ge.isXMLDoc(e)||(t=ge.propFix[t]||t,i=ge.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ge.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),pe.optSelected||(ge.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ge.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ge.propFix[this.toLowerCase()]=this}),ge.fn.extend({addClass:function(e){var t,n,r,i,o,s,a,u=0;if(ge.isFunction(e))return this.each(function(t){ge(this).addClass(e.call(this,t,Q(this)))});if("string"==typeof e&&e)for(t=e.match(Le)||[];n=this[u++];)if(i=Q(n),r=1===n.nodeType&&" "+U(i)+" "){for(s=0;o=t[s++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");a=U(r),i!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,i,o,s,a,u=0;if(ge.isFunction(e))return this.each(function(t){ge(this).removeClass(e.call(this,t,Q(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Le)||[];n=this[u++];)if(i=Q(n),r=1===n.nodeType&&" "+U(i)+" "){for(s=0;o=t[s++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");a=U(r),i!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):ge.isFunction(e)?this.each(function(n){ge(this).toggleClass(e.call(this,n,Q(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=ge(this),o=e.match(Le)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else e!==undefined&&"boolean"!==n||(t=Q(this),t&&$e.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":$e.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+U(Q(n))+" ").indexOf(t)>-1)return!0;return!1}});var Tt=/\r/g;ge.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=ge.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ge(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=ge.map(i,function(e){return null==e?"":e+""})),(t=ge.valHooks[this.type]||ge.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))})):i?(t=ge.valHooks[i.type]||ge.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace(Tt,""):null==n?"":n):void 0}}),ge.extend({valHooks:{option:{get:function(e){var t=ge.find.attr(e,"value");return null!=t?t:U(ge.text(e))}},select:{get:function(e){var t,n,r,o=e.options,s=e.selectedIndex,a="select-one"===e.type,u=a?null:[],c=a?s+1:o.length;for(r=s<0?c:a?s:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ge.each(["radio","checkbox"],function(){ge.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=ge.inArray(ge(e).val(),t)>-1}},pe.checkOn||(ge.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var St=/^(?:focusinfocus|focusoutblur)$/;ge.extend(ge.event,{trigger:function(t,n,r,i){var o,s,a,u,c,l,f,d=[r||ne],p=le.call(t,"type")?t.type:t,h=le.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||ne,3!==r.nodeType&&8!==r.nodeType&&!St.test(p+ge.event.triggered)&&(p.indexOf(".")>-1&&(h=p.split("."),p=h.shift(),h.sort()),c=p.indexOf(":")<0&&"on"+p,t=t[ge.expando]?t:new ge.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:ge.makeArray(n,[t]),f=ge.event.special[p]||{},i||!f.trigger||!1!==f.trigger.apply(r,n))){if(!i&&!f.noBubble&&!ge.isWindow(r)){for(u=f.delegateType||p,St.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),a=s;a===(r.ownerDocument||ne)&&d.push(a.defaultView||a.parentWindow||e)}for(o=0;(s=d[o++])&&!t.isPropagationStopped();)t.type=o>1?u:f.bindType||p,l=($e.get(s,"events")||{})[t.type]&&$e.get(s,"handle"),l&&l.apply(s,n),(l=c&&s[c])&&l.apply&&Fe(s)&&(t.result=l.apply(s,n),!1===t.result&&t.preventDefault());return t.type=p,i||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(d.pop(),n)||!Fe(r)||c&&ge.isFunction(r[p])&&!ge.isWindow(r)&&(a=r[c],a&&(r[c]=null),ge.event.triggered=p,r[p](),ge.event.triggered=undefined,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=ge.extend(new ge.Event,n,{type:e,isSimulated:!0});ge.event.trigger(r,null,t)}}),ge.fn.extend({trigger:function(e,t){return this.each(function(){ge.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ge.event.trigger(e,t,n,!0)}}),ge.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){ge.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ge.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),pe.focusin="onfocusin"in e,pe.focusin||ge.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ge.event.simulate(t,e.target,ge.event.fix(e))};ge.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=$e.access(r,t);i||r.addEventListener(e,n,!0),$e.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=$e.access(r,t)-1;i?$e.access(r,t,i):(r.removeEventListener(e,n,!0),$e.remove(r,t))}}});var Et=e.location,Ct=ge.now(),kt=/\?/;ge.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=undefined}return n&&!n.getElementsByTagName("parsererror").length||ge.error("Invalid XML: "+t),n};var Nt=/\[\]$/,jt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Lt=/^(?:input|select|textarea|keygen)/i;ge.param=function(e,t){var n,r=[],i=function(e,t){var n=ge.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!ge.isPlainObject(e))ge.each(e,function(){i(this.name,this.value)});else for(n in e)Y(n,e[n],t,i);return r.join("&")},ge.fn.extend({serialize:function(){return ge.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ge.prop(this,"elements");return e?ge.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ge(this).is(":disabled")&&Lt.test(this.nodeName)&&!At.test(e)&&(this.checked||!Ve.test(e))}).map(function(e,t){var n=ge(this).val();return null==n?null:Array.isArray(n)?ge.map(n,function(e){return{name:t.name,value:e.replace(jt,"\r\n")}}):{name:t.name,value:n.replace(jt,"\r\n")}}).get()}});var Dt=/%20/g,Ot=/#.*$/,qt=/([?&])_=[^&]*/,Ft=/^(.*?):[ \t]*([^\r\n]*)$/gm,$t=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Pt=/^(?:GET|HEAD)$/,Ht=/^\/\//,It={},Rt={},_t="*/".concat("*"),Mt=ne.createElement("a");Mt.href=Et.href,ge.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:$t.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ge.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?K(K(e,ge.ajaxSettings),t):K(ge.ajaxSettings,e)},ajaxPrefilter:J(It),ajaxTransport:J(Rt),ajax:function(t,n){function r(t,n,r,a){var c,d,p,b,w,T=n;l||(l=!0,u&&e.clearTimeout(u),i=undefined,s=a||"",S.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(b=Z(h,S,r)),b=ee(h,b,S,c),c?(h.ifModified&&(w=S.getResponseHeader("Last-Modified"),w&&(ge.lastModified[o]=w),(w=S.getResponseHeader("etag"))&&(ge.etag[o]=w)),204===t||"HEAD"===h.type?T="nocontent":304===t?T="notmodified":(T=b.state,d=b.data,p=b.error,c=!p)):(p=T,!t&&T||(T="error",t<0&&(t=0))),S.status=t,S.statusText=(n||T)+"",c?v.resolveWith(g,[d,T,S]):v.rejectWith(g,[S,T,p]),S.statusCode(x),x=undefined,f&&m.trigger(c?"ajaxSuccess":"ajaxError",[S,h,c?d:p]),y.fireWith(g,[S,T]),f&&(m.trigger("ajaxComplete",[S,h]),--ge.active||ge.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=undefined),n=n||{};var i,o,s,a,u,c,l,f,d,p,h=ge.ajaxSetup({},n),g=h.context||h,m=h.context&&(g.nodeType||g.jquery)?ge(g):ge.event,v=ge.Deferred(),y=ge.Callbacks("once memory"),x=h.statusCode||{},b={},w={},T="canceled",S={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=Ft.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)S.always(e[S.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(v.promise(S),h.url=((t||h.url||Et.href)+"").replace(Ht,Et.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(Le)||[""],null==h.crossDomain){c=ne.createElement("a");try{c.href=h.url,c.href=c.href,h.crossDomain=Mt.protocol+"//"+Mt.host!=c.protocol+"//"+c.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=ge.param(h.data,h.traditional)),G(It,h,n,S),l)return S;f=ge.event&&h.global,f&&0==ge.active++&&ge.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Pt.test(h.type),o=h.url.replace(Ot,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Dt,"+")):(p=h.url.slice(o.length),h.data&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(qt,"$1"),p=(kt.test(o)?"&":"?")+"_="+Ct+++p),h.url=o+p),h.ifModified&&(ge.lastModified[o]&&S.setRequestHeader("If-Modified-Since",ge.lastModified[o]),ge.etag[o]&&S.setRequestHeader("If-None-Match",ge.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&S.setRequestHeader("Content-Type",h.contentType),S.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+_t+"; q=0.01":""):h.accepts["*"]);for(d in h.headers)S.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(g,S,h)||l))return S.abort();if(T="abort",y.add(h.complete),S.done(h.success),S.fail(h.error),i=G(Rt,h,n,S)){if(S.readyState=1,f&&m.trigger("ajaxSend",[S,h]),l)return S;h.async&&h.timeout>0&&(u=e.setTimeout(function(){S.abort("timeout")},h.timeout));try{l=!1,i.send(b,r)}catch(e){if(l)throw e;r(-1,e)}}else r(-1,"No Transport");return S},getJSON:function(e,t,n){return ge.get(e,t,n,"json")},getScript:function(e,t){return ge.get(e,undefined,t,"script")}}),ge.each(["get","post"],function(e,t){ge[t]=function(e,n,r,i){return ge.isFunction(n)&&(i=i||r,r=n,n=undefined),ge.ajax(ge.extend({url:e,type:t,dataType:i,data:n,success:r},ge.isPlainObject(e)&&e))}}),ge._evalUrl=function(e){return ge.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},ge.fn.extend({wrapAll:function(e){var t;return this[0]&&(ge.isFunction(e)&&(e=e.call(this[0])),t=ge(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return ge.isFunction(e)?this.each(function(t){ge(this).wrapInner(e.call(this,t))}):this.each(function(){var t=ge(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ge.isFunction(e);return this.each(function(n){ge(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ge(this).replaceWith(this.childNodes)}),this}}),ge.expr.pseudos.hidden=function(e){return!ge.expr.pseudos.visible(e)},ge.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ge.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Bt=ge.ajaxSettings.xhr();pe.cors=!!Bt&&"withCredentials"in Bt,pe.ajax=Bt=!!Bt,ge.ajaxTransport(function(t){var n,r;if(pe.cors||Bt&&!t.crossDomain)return{send:function(i,o){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(s in i)a.setRequestHeader(s,i[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Wt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),a.onabort!==undefined?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),ge.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ge.ajaxSetup({accepts:{ +script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ge.globalEval(e),e}}}),ge.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ge.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=ge(" - + NAV @@ -229,7 +229,6 @@
    -

    Endpoint Version Schedule

    The following tables describe the endpoint versions and the dates they become binding within the data standards.

    @@ -265,8 +264,8 @@

    Data Holders

    V1 2020-02-01 2020-09-29 -2019-09-30, v1.0.0 -2020-01-31, v1.2.0 +2019-09-30, V1.0.0 +2020-01-31, V1.2.0 Banking APIs @@ -275,9 +274,9 @@

    Data Holders

    GET V2 2020-07-31 -N/A +2021-05-31 2020-01-31, V1.2.0 -N/A +2021-04-29, V1.9.0 Banking APIs @@ -298,8 +297,8 @@

    Data Holders

    V1 2020-02-01 2020-09-29 -2019-09-30, v1.0.0 -2020-09-01 +2019-09-30, V1.0.0 +2020-01-31, V1.2.0 Banking APIs @@ -308,9 +307,9 @@

    Data Holders

    GET V2 2020-07-31 -N/A +2021-05-31 2020-01-31, V1.2.0 -N/A +TBA, V1.9.0 Banking APIs @@ -331,7 +330,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -342,7 +341,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -353,7 +352,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -364,7 +363,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -375,7 +374,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -386,7 +385,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -397,7 +396,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -408,7 +407,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -419,7 +418,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -430,7 +429,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -441,7 +440,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -452,7 +451,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -463,7 +462,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -474,7 +473,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -485,7 +484,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -496,7 +495,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -507,7 +506,7 @@

    Data Holders

    V1 2020-11-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -518,7 +517,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -529,7 +528,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -540,7 +539,7 @@

    Data Holders

    V1 2020-07-01 N/A -2019-09-30, v1.0.0 +2019-09-30, V1.0.0 N/A @@ -550,9 +549,9 @@

    Data Holders

    GET V1 2020-07-01 -N/A -2019-09-30, v1.0.0 -N/A +2021-10-31 +2019-09-30, V1.0.0 +2021-04-29, V1.9.0 Admin APIs @@ -562,7 +561,7 @@

    Data Holders

    V2 2021-07-31 N/A -2020-09-16, v1.5.0 +2020-09-16, V1.5.0 N/A @@ -573,7 +572,7 @@

    Data Holders

    1.5.0 2020-11-01 N/A -2020-04-17, v1.2.0 +2020-04-17, V1.2.0 N/A @@ -602,8 +601,8 @@

    Data Recipients

    1.5.0 2020-07-01 2021-02-01 -2019-09-30, v1.0.0 -2020-04-17, v1.2.0 +2019-09-30, V1.0.0 +2020-04-17, V1.2.0 InfoSec Profile @@ -613,14 +612,12 @@

    Data Recipients

    1.5.0 2020-11-01 N/A -2020-04-17, v1.2.0 +2020-04-17, V1.2.0 N/A
    -
    -
    diff --git a/docs/includes/obsolete/get-metrics-v1.html b/docs/includes/obsolete/get-metrics-v1.html index dce57644..6812583e 100644 --- a/docs/includes/obsolete/get-metrics-v1.html +++ b/docs/includes/obsolete/get-metrics-v1.html @@ -264,7 +264,7 @@

    Get Metrics V1

    This page documents the obsolete version 1 of the Get Metrics end point.

    -

    This version is to be ceased to be called by data recipients by 31st July 2021 and can be decommissioned by data holders as of that date.

    +

    This version is to be ceased to be called by the CDR Register by October 31st 2021 and can be decommissioned by affected data holders as of that date.

    Get Metrics

    diff --git a/docs/includes/obsolete/get-product-detail-v2.html b/docs/includes/obsolete/get-product-detail-v2.html index 2c3cba6f..f0b5466a 100644 --- a/docs/includes/obsolete/get-product-detail-v2.html +++ b/docs/includes/obsolete/get-product-detail-v2.html @@ -275,6 +275,8 @@

    Get Product Detail V2

    This page documents the obsolete version 2 of the Get Product Detail end point.

    + +

    This version is to be ceased to be called by data recipients by May 31st 2021 and can be decommissioned by data holders as of that date.

    Get Product Detail

    diff --git a/docs/includes/obsolete/get-products-v2.html b/docs/includes/obsolete/get-products-v2.html index 1fdadcbd..ea1fa7ab 100644 --- a/docs/includes/obsolete/get-products-v2.html +++ b/docs/includes/obsolete/get-products-v2.html @@ -245,6 +245,8 @@

    Get Products V2

    This page documents the obsolete version 2 of the Get Products end point.

    + +

    This version is to be ceased to be called by data recipients by May 31st 2021 and can be decommissioned by data holders as of that date.

    Get Products

    diff --git a/docs/includes/releasenotes/releasenotes.1.0.1.html b/docs/includes/releasenotes/releasenotes.1.0.1.html index 07d6107e..497316f0 100644 --- a/docs/includes/releasenotes/releasenotes.1.0.1.html +++ b/docs/includes/releasenotes/releasenotes.1.0.1.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@
    diff --git a/docs/includes/releasenotes/releasenotes.1.1.0.html b/docs/includes/releasenotes/releasenotes.1.1.0.html index 3e8d9251..8213c521 100644 --- a/docs/includes/releasenotes/releasenotes.1.1.0.html +++ b/docs/includes/releasenotes/releasenotes.1.1.0.html @@ -202,7 +202,7 @@ - + NAV @@ -238,7 +238,6 @@
    -

    V1.1.0 Release Notes

    Release notes for version 1.1.0 of the CDR Standards.

    @@ -375,8 +374,6 @@

    Consumer Experience

    No Change

    -
    -
    diff --git a/docs/includes/releasenotes/releasenotes.1.1.1.html b/docs/includes/releasenotes/releasenotes.1.1.1.html index 50e1e791..b66731f0 100644 --- a/docs/includes/releasenotes/releasenotes.1.1.1.html +++ b/docs/includes/releasenotes/releasenotes.1.1.1.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@
    -

    V1.1.1 Release Notes

    Release notes for version 1.1.1 of the CDR Standards.

    @@ -357,8 +356,6 @@

    Consumer Experience

    No Change

    -
    -
    diff --git a/docs/includes/releasenotes/releasenotes.1.2.0.html b/docs/includes/releasenotes/releasenotes.1.2.0.html index 30a51e60..139037cc 100644 --- a/docs/includes/releasenotes/releasenotes.1.2.0.html +++ b/docs/includes/releasenotes/releasenotes.1.2.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@ diff --git a/docs/includes/releasenotes/releasenotes.1.3.0.html b/docs/includes/releasenotes/releasenotes.1.3.0.html index a893c129..8c006289 100644 --- a/docs/includes/releasenotes/releasenotes.1.3.0.html +++ b/docs/includes/releasenotes/releasenotes.1.3.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@ diff --git a/docs/includes/releasenotes/releasenotes.1.3.1.html b/docs/includes/releasenotes/releasenotes.1.3.1.html index 0cd8973b..f0913c5c 100644 --- a/docs/includes/releasenotes/releasenotes.1.3.1.html +++ b/docs/includes/releasenotes/releasenotes.1.3.1.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@
    -

    V1.3.1 Release Notes

    Release notes for version 1.3.1 of the CDR Standards.

    @@ -335,8 +334,6 @@

    Consumer Experience

    No Change

    -
    -
    diff --git a/docs/includes/releasenotes/releasenotes.1.4.0.html b/docs/includes/releasenotes/releasenotes.1.4.0.html index b1925870..576a3c6d 100644 --- a/docs/includes/releasenotes/releasenotes.1.4.0.html +++ b/docs/includes/releasenotes/releasenotes.1.4.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@ diff --git a/docs/includes/releasenotes/releasenotes.1.5.0.html b/docs/includes/releasenotes/releasenotes.1.5.0.html index 4e92558e..ce095d06 100644 --- a/docs/includes/releasenotes/releasenotes.1.5.0.html +++ b/docs/includes/releasenotes/releasenotes.1.5.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@
    -

    V1.5.0 Release Notes

    Release notes for version 1.5.0 of the CDR Standards.

    @@ -370,8 +369,6 @@

    Consumer Experience

    No Changes

    -
    -
    diff --git a/docs/includes/releasenotes/releasenotes.1.5.1.html b/docs/includes/releasenotes/releasenotes.1.5.1.html index 28480f5a..b63e546b 100644 --- a/docs/includes/releasenotes/releasenotes.1.5.1.html +++ b/docs/includes/releasenotes/releasenotes.1.5.1.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@
    -

    V1.5.1 Release Notes

    Release notes for version 1.5.1 of the CDR Standards.

    @@ -273,8 +272,6 @@

    Consumer Experience

    No Changes

    -
    -
    diff --git a/docs/includes/releasenotes/releasenotes.1.6.0.html b/docs/includes/releasenotes/releasenotes.1.6.0.html index 535e76c2..d58e21bb 100644 --- a/docs/includes/releasenotes/releasenotes.1.6.0.html +++ b/docs/includes/releasenotes/releasenotes.1.6.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@
    -

    V1.6.0 Release Notes

    Release notes for version 1.6.0 of the CDR Standards.

    @@ -273,8 +272,6 @@

    Consumer Experience

    No Changes

    -
    -
    diff --git a/docs/includes/releasenotes/releasenotes.1.7.0.html b/docs/includes/releasenotes/releasenotes.1.7.0.html index 5df09e41..f7efd6a8 100644 --- a/docs/includes/releasenotes/releasenotes.1.7.0.html +++ b/docs/includes/releasenotes/releasenotes.1.7.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@ diff --git a/docs/includes/releasenotes/releasenotes.1.8.0.html b/docs/includes/releasenotes/releasenotes.1.8.0.html index 35b3a3be..0e7e7ad7 100644 --- a/docs/includes/releasenotes/releasenotes.1.8.0.html +++ b/docs/includes/releasenotes/releasenotes.1.8.0.html @@ -202,7 +202,7 @@ - + NAV @@ -235,7 +235,6 @@ diff --git a/docs/includes/releasenotes/releasenotes.1.9.0.html b/docs/includes/releasenotes/releasenotes.1.9.0.html new file mode 100644 index 00000000..814350dd --- /dev/null +++ b/docs/includes/releasenotes/releasenotes.1.9.0.html @@ -0,0 +1,311 @@ + + + + + + + + Consumer Data Standards - v1.9.0 Release Notes + + + + + + + + + + + + NAV + Navbar + + + +
    +
    +

    V1.9.0 Release Notes

    +

    Release notes for version 1.9.0 of the CDR Standards.

    + +

    This release pertains to the changes approved by the Data Standards Chair in Decision 161.

    +

    High Level Standards

    + + + + + + + + + + + + +
    ChangeDescriptionLink
    Updated documentation layoutImproved layout for documentation pages that do not require code samples such as release notesN/A
    +

    API End Points

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ChangeDescriptionLink
    Added retirement date for the Get Metrics v1 endpointRetirement date of October 31st 2021 added for the Get Metics v1 endpointGet Metrics v1
    Added retirement date for PRD v2 endpointsRetirement date of May 31st 2021 added for PRD v2 endpointsGet Products v2 and Get Product Details v2
    Rejection MetricsFixed documentation error with the optionality of the high-level response objects for the Metrics API payload response.RejectionMetricsV2
    Draft Energy Standards UpdateUpdated the draft energy standards to accommodate the feedback from DP 173Draft Energy Standards
    +

    Information Security Profile

    + + + + + + + + + + + + + + + + + +
    ChangeDescriptionLink
    Client AuthenticationChanged the Client Authentication section of the standards to streamline it and included the optional Data Holder support of private_key_jwt client authentication of the CDR Register.Client Authentication
    Audience claim for Data Recipients calling Data HoldersPreviously the documentation included pre-March 31st audience claim requirements. These have been removed and the post-March 2021 requirements retained.Client Authentication
    +

    Consumer Experience

    +

    No change

    + +
    +
    + + diff --git a/docs/includes/swagger/cds_admin.json b/docs/includes/swagger/cds_admin.json index 466807e6..33b20304 100644 --- a/docs/includes/swagger/cds_admin.json +++ b/docs/includes/swagger/cds_admin.json @@ -2,7 +2,7 @@ "swagger" : "2.0", "info" : { "description" : "Data Holder Consumer Data Standards Administration End Points", - "version" : "1.3.0", + "version" : "1.9.0", "title" : "Consumer Data Standards Administration End Points", "contact" : { "name" : "Consumer Data Standards Administration End Points", @@ -42,7 +42,7 @@ }, { "name" : "x-min-v", "in" : "header", - "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", "required" : false, "type" : "string" } ], @@ -52,11 +52,13 @@ "headers" : { "x-v" : { "type" : "string", - "description" : "The [version](##response-headers) of the API end point that the data holder has responded with." + "description" : "The [version](#response-headers) of the API end point that the data holder has responded with." } } } }, + "x-scopes" : [ "admin:metadata:update" ], + "x-restricted-access" : true, "x-version" : "1" } }, @@ -64,7 +66,7 @@ "get" : { "tags" : [ "Admin", "Metrics" ], "summary" : "Get Metrics", - "description" : "This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime.\n\nNOTE: This version must be implemented by **July 31st 2021**\n\nObsolete versions: [v1](includes/obsolete/get-metrics-v1.html)", + "description" : "This end point allows the ACCC to obtain operational statistics from the Data Holder on the operation of their CDR compliant implementation. The statistics obtainable from this end point are determined by the non-functional requirements for the CDR regime.\n\nNOTE: This version must be implemented by **July 31st 2021**\n\nObsolete versions: [v1](includes/obsolete/get-metrics-v1.html). If the Data Holder supports private_key_jwt client authentication they MUST validate the scope.", "operationId" : "getMetrics", "parameters" : [ { "name" : "period", @@ -83,7 +85,7 @@ }, { "name" : "x-min-v", "in" : "header", - "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", "required" : false, "type" : "string" } ], @@ -101,6 +103,8 @@ } } }, + "x-scopes" : [ "admin:metrics.basic:read" ], + "x-restricted-access" : true, "x-version" : "2" } } @@ -171,6 +175,7 @@ }, "InvocationMetrics" : { "type" : "object", + "required" : [ "highPriority", "largePayload", "lowPriority", "unattended", "unauthenticated" ], "properties" : { "unauthenticated" : { "$ref" : "#/definitions/InvocationMetrics_unauthenticated" @@ -188,11 +193,11 @@ "$ref" : "#/definitions/InvocationMetrics_largePayload" } }, - "description" : "Number of API calls in each performance tier over time", - "x-conditional" : [ "unauthenticated", "highPriority", "lowPriority", "unattended", "largePayload" ] + "description" : "Number of API calls in each performance tier over time" }, "AverageResponseMetrics" : { "type" : "object", + "required" : [ "highPriority", "largePayload", "lowPriority", "unattended", "unauthenticated" ], "properties" : { "unauthenticated" : { "$ref" : "#/definitions/AverageResponseMetrics_unauthenticated" @@ -210,8 +215,7 @@ "$ref" : "#/definitions/AverageResponseMetrics_largePayload" } }, - "description" : "Average response time in seconds, at millisecond resolution, within each performance tier", - "x-conditional" : [ "unauthenticated", "highPriority", "lowPriority", "unattended", "largePayload" ] + "description" : "Average response time in seconds, at millisecond resolution, within each performance tier" }, "SessionCountMetrics" : { "properties" : { @@ -282,6 +286,7 @@ "x-conditional" : [ "currentDay", "previousDays" ] }, "RejectionMetricsV2" : { + "required" : [ "authenticated", "unauthenticated" ], "properties" : { "authenticated" : { "$ref" : "#/definitions/RejectionMetricsV2_authenticated" @@ -290,8 +295,7 @@ "$ref" : "#/definitions/RejectionMetricsV2_unauthenticated" } }, - "description" : "Number of calls rejected due to traffic thresholds over time", - "x-conditional" : [ "currentDay", "previousDays" ] + "description" : "Number of calls rejected due to traffic thresholds over time" }, "Links" : { "type" : "object", @@ -319,7 +323,7 @@ } }, "ResponseMetricsListV2_data" : { - "required" : [ "requestTime" ], + "required" : [ "availability", "averageResponse", "averageTps", "customerCount", "errors", "invocations", "peakTps", "performance", "recipientCount", "rejections", "requestTime", "sessionCount" ], "properties" : { "requestTime" : { "type" : "string", @@ -567,7 +571,7 @@ "RequestHeader_x-min-v" : { "name" : "x-min-v", "in" : "header", - "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", + "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.", "required" : false, "type" : "string" } diff --git a/docs/includes/swagger/cds_admin.yaml b/docs/includes/swagger/cds_admin.yaml index abd355cd..d2828b1d 100644 --- a/docs/includes/swagger/cds_admin.yaml +++ b/docs/includes/swagger/cds_admin.yaml @@ -2,7 +2,7 @@ swagger: "2.0" info: description: Data Holder Consumer Data Standards Administration End Points - version: 1.3.0 + version: 1.9.0 title: Consumer Data Standards Administration End Points contact: name: Consumer Data Standards Administration End Points @@ -41,7 +41,7 @@ paths: type: string - name: x-min-v in: header - description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. required: false type: string responses: @@ -50,7 +50,10 @@ paths: headers: x-v: type: string - description: The [version](##response-headers) of the API end point that the data holder has responded with. + description: The [version](#response-headers) of the API end point that the data holder has responded with. + x-scopes: + - admin:metadata:update + x-restricted-access: true x-version: "1" /admin/metrics: get: @@ -63,7 +66,7 @@ paths: NOTE: This version must be implemented by **July 31st 2021** - Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html) + Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html). If the Data Holder supports private_key_jwt client authentication they MUST validate the scope. operationId: getMetrics parameters: - name: period @@ -83,7 +86,7 @@ paths: type: string - name: x-min-v in: header - description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. required: false type: string responses: @@ -95,6 +98,9 @@ paths: description: The [version](#response-headers) of the API end point that the data holder has responded with. schema: $ref: '#/definitions/ResponseMetricsListV2' + x-scopes: + - admin:metrics.basic:read + x-restricted-access: true x-version: "2" definitions: RequestMetaDataUpdate: @@ -150,6 +156,12 @@ definitions: - previousDays InvocationMetrics: type: object + required: + - highPriority + - largePayload + - lowPriority + - unattended + - unauthenticated properties: unauthenticated: $ref: '#/definitions/InvocationMetrics_unauthenticated' @@ -162,14 +174,14 @@ definitions: largePayload: $ref: '#/definitions/InvocationMetrics_largePayload' description: Number of API calls in each performance tier over time - x-conditional: - - unauthenticated + AverageResponseMetrics: + type: object + required: - highPriority + - largePayload - lowPriority - unattended - - largePayload - AverageResponseMetrics: - type: object + - unauthenticated properties: unauthenticated: $ref: '#/definitions/AverageResponseMetrics_unauthenticated' @@ -182,12 +194,6 @@ definitions: largePayload: $ref: '#/definitions/AverageResponseMetrics_largePayload' description: Average response time in seconds, at millisecond resolution, within each performance tier - x-conditional: - - unauthenticated - - highPriority - - lowPriority - - unattended - - largePayload SessionCountMetrics: properties: currentDay: @@ -245,15 +251,15 @@ definitions: - currentDay - previousDays RejectionMetricsV2: + required: + - authenticated + - unauthenticated properties: authenticated: $ref: '#/definitions/RejectionMetricsV2_authenticated' unauthenticated: $ref: '#/definitions/RejectionMetricsV2_unauthenticated' description: Number of calls rejected due to traffic thresholds over time - x-conditional: - - currentDay - - previousDays Links: type: object required: @@ -277,7 +283,18 @@ definitions: - REFRESH ResponseMetricsListV2_data: required: + - availability + - averageResponse + - averageTps + - customerCount + - errors + - invocations + - peakTps + - performance + - recipientCount + - rejections - requestTime + - sessionCount properties: requestTime: type: string @@ -449,6 +466,6 @@ parameters: RequestHeader_x-min-v: name: x-min-v in: header - description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. + description: Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. required: false type: string diff --git a/docs/includes/swagger/cds_full.json b/docs/includes/swagger/cds_full.json index 6afd0dda..c11d6754 100644 --- a/docs/includes/swagger/cds_full.json +++ b/docs/includes/swagger/cds_full.json @@ -2,7 +2,7 @@ "swagger" : "2.0", "info" : { "description" : "API sets created by the Australian Consumer Data Standards to meet the needs of the Consumer Data Right", - "version" : "1.8.0", + "version" : "1.9.0", "title" : "Consumer Data Standards", "contact" : { "name" : "Consumer Data Standards", diff --git a/docs/includes/swagger/cds_full.yaml b/docs/includes/swagger/cds_full.yaml index 575bbc1f..094c1085 100644 --- a/docs/includes/swagger/cds_full.yaml +++ b/docs/includes/swagger/cds_full.yaml @@ -2,7 +2,7 @@ swagger: "2.0" info: description: API sets created by the Australian Consumer Data Standards to meet the needs of the Consumer Data Right - version: 1.8.0 + version: 1.9.0 title: Consumer Data Standards contact: name: Consumer Data Standards diff --git a/docs/index.html b/docs/index.html index 165c6304..a37e7bae 100644 --- a/docs/index.html +++ b/docs/index.html @@ -755,7 +755,7 @@

    Introduction

    The Consumer Data Right (CDR) is intended to be applied sector by sector across the whole economy, beginning in the banking, energy and telecommunications sectors. These standards have been developed to facilitate the Consumer Data Right by acting as a specific baseline for implementation.

    -

    CSIRO’s Data61 has been appointed as the Data Standards Body (DSB) for the CDR regime. These standards have been prepared by the DSB. The work of the team is overseen by the Data Standards Chair, Mr. Andrew Stevens, with industry and consumer advice provided by an Advisory Committee. The work of standards development is conducted in close consultation with the Australian Competition and Consumer Commission (ACCC) as lead regulator of the Consumer Data Right, supported by the Office of the Australian Information Commissioner (OAIC).

    +

    These standards are maintained by the Data Standards Body (DSB), with the Data Standards Chair as the decision maker. The DSB is part of the Treasury. The work of standards development is conducted in consultation with the Australian Competition and Consumer Commission (ACCC) as co-regulator of the Consumer Data Right, along with the Office of the Australian Information Commissioner (OAIC).

    The standards are required to be published. The obligations on CDR participants to apply the published standards commence on the commencement of the Consumer Data Right rules:

    @@ -786,6 +786,11 @@

    Future Dated Obligations

    February 28th 2021 +Get Product Detail V2 +Data holders may obsolete version 2 of this end point from May 31st 2021. Data recipients must upgrade their implementations to use version 3 by this time +May 31st 2021 + + Get Product Detail V2 Version 2 of this end point must be made available by affected data holders by the end of July 2020 July 31st 2020 @@ -802,6 +807,11 @@

    Future Dated Obligations

    Get Products V2 +Data holders may obsolete version 2 of this end point from May 31st 2021. Data recipients must upgrade their implementations to use version 3 by this time +May 31st 2021 + + +Get Products V2 Version 2 of this end point must be made available by affected data holders by the end of July 2020 July 31st 2020 @@ -821,6 +831,11 @@

    Future Dated Obligations

    February 1st 2021 +Get Metrics V1 +Data holders may obsolete version 1 of this end point from October 31st 2021. Data Holders who go live with consumer data sharing from July 1st 2021 MAY go live with only Get Metrics v2 support. The CDR Register must upgrade their implementation to use version 2 by this time +October 31st 2021 + + Get Metrics V2 Version 2 of this end point must be made available by affected data holders by the end of July 2021 July 31st 2021 @@ -866,7 +881,7 @@

    Endpoint Version Schedule

    Please note this is currently experimental.

    Standards

    -

    These standards represent version 1.8.0 of the high level standards. See the versioning section for more information on how versions are managed in the standard.

    +

    These standards represent version 1.9.0 of the high level standards. See the versioning section for more information on how versions are managed in the standard.

    Note that, in this proposal, the key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL are to be interpreted as described in RFC2119.

    @@ -2054,10 +2069,82 @@

    Client Authentication

    Note that, while [MTLS] is utilised for transaction security and as a Holder of Key mechanism, the PKI Mutual TLS OAuth Client Authentication Method SHALL NOT be supported as the mechanism for client authentication.

    -

    CDR Register calling Data Holders and Data Recipients

    +

    The following authentication methods are supported:

    + + + +

    Private Key JWT Client Authentication

    + +
    +

    Private Key JWT Client Authentication Non-Normative Example - CDR Register calls the Data Holder's token end point to obtain an Access Token for the purposes of calling the Data Holder's Get Metrics endpoint.

    +
    + +
    POST /token HTTP/1.1
    +Host: www.holder.com.au
    +Content-Type: application/x-www-form-urlencoded
    +
    +grant_type=client_credentials&
    +  client_id=5ntwEOpMdPxxy49Gt28SXWY6j3afl2CP2&
    +  scope=admin%3Ametrics.basic%3Aread&
    +  client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&
    +  client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyNDU2In0.ey ...
    +
    +## Decoded client assertion JWT
    +{
    +  "alg": "PS256",
    +  "typ": "JWT",
    +  "kid": "12456"
    +}
    +{
    +  "iss": "5ntwEOpMdPxxy49Gt28SXWY6j3afl2CP2",
    +  "sub": "5ntwEOpMdPxxy49Gt28SXWY6j3aflCP2",
    +  "iat": 1516239022,
    +  "exp": 1516239322,
    +  "aud": "https://www.holder.com.au/token",
    +  "jti": "37747cd1-c105-4569-9f75-4adf28b73e31"
    +}
    +
    + +

    Authorisation Servers supporting private_key_jwt Client Authentication of clients MUST support the following requirements:

    + +
      +
    • Authorisation Servers MUST support the authentication of clients using the private_key_jwt Client Authentication method specified at section 9 of [OIDC].
    • +
    • The private_key_jwt authentication method is enabled through the delivery of an encoded [JWT] signed using the Data Recipient's private key and thus facilitates non-repudiation.
    • +
    • Client public keys are obtained from the [JWKS] endpoints.
    • +
    • For the client authentication assertion, the [JWT] represents an assertion that MUST contain the following REQUIRED Claim Values and MAY contain the following OPTIONAL Claim Values:

      + +
        +
      • iss - REQUIRED. Issuer Identifier for the Issuer of the response. The client ID of the bearer.
      • +
      • sub - REQUIRED. Subject Identifier. The client ID of the bearer.
      • +
      • aud - REQUIRED. Audience(s) that the JWT is intended for. The issuer identifier URL of the authorisation server according to [RFC8414] SHOULD be used as the value of the audience. In order to facilitate interoperability, the authorisation server MUST accept its Issuer Identifier, Token Endpoint URL, or the URI of the endpoint being invoked as values that identify it as an intended audience.
      • +
      • jti - REQUIRED. JWT ID. A unique identifier for the token, which can be used to prevent reuse of the token. These tokens MUST only be used once.
      • +
      • exp - REQUIRED. Expiration time on or after which the ID Token MUST NOT be accepted for processing. Value is a JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC expiry time.
      • +
      • iat - OPTIONAL. Time at which the JWT was issued. Value is a JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC issued at time.
      • +
    • +
    • The aforementioned assertion MUST be sent to the Authorisation Server's Token endpoint with the POST method and MUST include the following REQUIRED parameters and MAY contain the following OPTIONAL parameters:

      + +
        +
      • grant_type - REQUIRED. The grant type(s) supported by the Authorisation Server.
      • +
      • client_id - REQUIRED. The client ID of the bearer.
      • +
      • client_assertion_type - REQUIRED. This MUST be set to urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
      • +
      • client_assertion - REQUIRED. The encoded assertion JWT.
      • +
      • scope - OPTIONAL. The requested scope as described in Section 3.3 of [RFC6749].
      • +
    • +
    + +

    Self-signed JWT Client Authentication

    -

    Non-Normative Example - CDR Register calls the Data holder's Get Metrics end point with Client Authentication (note that the “aud” claim represents the AdminBaseUri as defined in CDR Register Participant Endpoints).

    +

    Self-signed JWT Client Authentication Non-Normative Example - CDR Register calls the Data holder's Get Metrics end point using self-signed JWT Client Authentication (note that the “aud” claim represents the AdminBaseUri as defined in CDR Register Participant Endpoints).

    GET https://admin.data.holder.com.au/cds-au/v1/admin/metrics HTTP:/1.1
    @@ -2082,23 +2169,46 @@ 

    CDR Register call }

    -

    Data Holders and Data Recipients MUST support the authentication of the CDR Register using a signed JWT according to the following requirements:

    +

    Data Recipients and Data Holders supporting the self-signed JWT authentication of clients using a signed JWT MUST do so according to the following requirements:

      -
    • The JWT MUST contain the following REQUIRED Claim Values and MAY contain the following OPTIONAL Claim Values: +
    • The JWT MUST contain the following REQUIRED Claim Values and MAY contain the following OPTIONAL Claim Values:

        -
      • iss - REQUIRED. Issuer. This MUST contain the static CDR Register id of ‘cdr-register’.
      • -
      • sub - REQUIRED. Subject. This MUST contain the static CDR Register id of ‘cdr-register’.
      • -
      • aud - REQUIRED. Audience. The aud (audience) Claim. Value that identifies the intended audience. The Data Holder or Data Recipient MUST verify that it is an intended audience for the token. Contents MUST be the base URI for the end point being accessed.
      • +
      • iss - REQUIRED. Issuer Identifier for the Issuer of the response. The client ID of the bearer.
      • +
      • sub - REQUIRED. Subject Identifier. The client ID of the bearer.
      • +
      • aud - REQUIRED. Audience(s) that the JWT is intended for. The Data Holder or Data Recipient MUST verify that it is an intended audience for the token. Contents MUST be the base URI for the end point being accessed.
      • jti - REQUIRED. JWT ID. A unique identifier for the token, which can be used to prevent reuse of the token. These tokens MUST only be used once.
      • -
      • exp - REQUIRED. Expiration time on or after which the ID Token MUST NOT be accepted for processing.
      • -
      • iat - OPTIONAL. Time at which the JWT was issued.
      • +
      • exp - REQUIRED. Expiration time on or after which the ID Token MUST NOT be accepted for processing. Value is a JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC expiry time.
      • +
      • iat - OPTIONAL. Time at which the JWT was issued. Value is a JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC issued at time.
    • -
    • Validation and use of the JWT and the claims described above MUST be performed in accordance with [JWT]
    • -
    • The JWT should be accepted from the client using the "Authorization Request Header Field" mechanism as described in section 2.1 of RFC6750
    • +
    • Validation and use of the JWT and the claims described above MUST be performed in accordance with [JWT].

    • +
    • The JWT MUST be accepted from the client at the requested endpoint using the "Authorization Request Header Field" mechanism as described in section 2.1 of [RFC6750].

    • +
    + +

    CDR Register calling Data Holders

    + +

    Data Holders MUST support either Private Key JWT Client Authentication or Self-signed JWT Client Authentication of the CDR Register.

    + +

    Data Holders SHOULD support Private Key JWT Client Authentication but MAY support Self-signed JWT Client Authentication.

    + +

    This method MAY be changed by updating Data Holder registration details with the CDR Register.

    + +

    Private Key JWT authentication

    + +

    If the Data Holder supports the Private Key JWT Client Authentication method for authenticating the CDR Register, it MUST also support the following requirements:

    + +
      +
    • Data Holders MUST issue a client ID that is provided to the CDR Register. The client ID is issued to the CDR Register during out of band registration processes, including, Data Holder onboarding. This MAY be a static client ID value of ‘cdr-register’.
    • +
    • The authorisation grant's grant_type parameter MUST be set to client_credentials.
    • +
    • The authorisation grant's scope parameter MUST be provided and MUST be set to the scope of the resource endpoint to be accessed.
    • +
    • Upon successful authentication, Data Holders MUST issue an Access Token to the CDR Register. In accordance with section 4.4 of [RFC6749] an Refresh Token SHOULD NOT be included.
    +

    Self-signed JWT authentication

    + +

    If the Data Holder supports the Self-signed JWT Client Authentication method for authenticating the CDR Register, the client ID MUST be set to a value of ‘cdr-register’.

    +

    Data Holders calling Data Recipients

    @@ -2128,27 +2238,10 @@

    Data Holders calling Data Recipien } -

    Data Recipients MUST support the authentication of Data Holders using a signed JWT according to the following requirements:

    - -
      -
    • The JWT MUST contain the following REQUIRED Claim Values and MAY contain the following OPTIONAL Claim Values: - -
        -
      • iss - REQUIRED. Issuer. This MUST contain the id of the Data Holder obtained from the CDR Register.
      • -
      • sub - REQUIRED. Subject. This MUST contain the id of the Data Holder obtained from the CDR Register.
      • -
      • aud - REQUIRED. Audience. The aud (audience) Claim. Value that identifies the Data Recipient as the intended audience. The Data Recipient MUST verify that it is an intended audience for the token. Contents MUST be the base URI for the end point being accessed.
      • -
      • jti - REQUIRED. JWT ID. A unique identifier for the token, which can be used to prevent reuse of the token. These tokens MUST only be used once.
      • -
      • exp - RE QUIRED. Expiration time on or after which the ID Token MUST NOT be accepted for processing.
      • -
      • iat - OPTIONAL. Time at which the JWT was issued.
      • -
    • -
    • Validation and use of the JWT and the claims described above MUST be performed in accordance with [JWT]
    • -
    • The JWT should be accepted from the client using the "Authorization Request Header Field" mechanism as described in section 2.1 of RFC6750
    • -
    +

    In addition to the requirements for Self-signed JWT Client Authentication, the client_id is the ID of the Data Holder obtained from the CDR Register.

    Data Recipients calling Data Holders

    -

    Data Holders MUST support the authentication of Data Recipients using the private_key_jwt Client Authentication method specified at section 9 of [OIDC].

    -

    Non-Normative Example - Data Recipient calls Data Holder's token end point.

    @@ -2170,8 +2263,8 @@

    Data Recipients calling Data Holde "kid": "12456" } { - "iss": "12345", - "sub": "12345", + "iss": "s6BhdRkqt3", + "sub": "s6BhdRkqt3", "iat": 1516239022, "exp": 1516239322, "aud": "https://www.holder.com.au/token", @@ -2179,36 +2272,12 @@

    Data Recipients calling Data Holde } -

    The private_key_jwt authentication method is enabled through the delivery of an encoded [JWT] signed using the Data Recipient's private key and thus facilitates non-repudiation.

    - -

    Client public keys are obtained from the [JWKS] endpoints.

    - -

    For the client authentication assertion, the [JWT] represents an assertion that MUST include the following claims:

    +

    In addition to the requirements for Private Key JWT Client Authentication the following requirements MUST be supported:

      -
    • iss: The client ID of the bearer.
    • -
    • sub: The client ID of the bearer.
    • -
    • aud: The aud (audience) Claim. Identifies the recipients that the JWT is intended for.
      - Until March 31st, 2021, Data Recipients MUST continue to send as a single value string the URL of the endpoint being invoked. Data Holders MUST support validation of the URL of the endpoint being invoked.
      - After March 30th, 2021, Data Holders MUST support:
      The issuer identifier URL of the authorisation server according to [RFC8414] SHOULD be used as the value of the audience. In order to facilitate interoperability, the authorisation server MUST accept its Issuer Identifier, Token Endpoint URL, or the URI of the endpoint being invoked as values that identify it as an intended audience.

    • -
    • exp: A JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC expiry time.

    • -
    • jti: A unique identifier generated by the client for this authentication.

    • -
    - -

    The following claims MAY be included:

    - -
      -
    • iat: A JSON number representing the number of seconds from 1970-01-01T00:00:00Z to the UTC issued at time.
    • -
    - -

    When invoking a protected end point, the aforementioned assertion MUST be sent with the POST method and MUST include the following parameters:

    - -
      -
    • grant_type: This parameter MUST only be included when invoking the Token End point and MUST be set to authorisation_code or client_credentials. The value refresh_token is also valid when refreshing an access token.
    • -
    • code: This parameter MUST only be included when invoking the Token End point after utilising the Hybrid Authentication flow. This is the value of the code parameter returned in the authorisation response.
    • -
    • client_id: The ID of the calling Client.
    • -
    • client_assertion_type: This MUST be set to urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
    • -
    • client_assertion: The encoded assertion JWT.
    • +
    • The client ID represents the ID issued to the Data Recipient by the Data Holder upon successful dynamic client registration.
    • +
    • The authorisation grant's client_id parameter value MUST represent the ID issued to the Data Recipient by the Data Holder upon successful dynamic client registration.
    • +
    • The authorisation grant's grant_type parameter value MUST only be included when invoking the Token End point and MUST be set to authorisation_code or client_credentials. The value refresh_token is also valid when refreshing an access token.

    OIDC Client Types

    @@ -3261,6 +3330,11 @@

    Normative References

    Oct 2015 +[RFC6750] +The OAuth 2.0 Authorization Framework: Bearer Token Usage: https://tools.ietf.org/html/rfc6750 +Oct 2012 + + [PAR] OAuth 2.0 Pushed Authorization Requests: https://tools.ietf.org/html/draft-ietf-oauth-par-01 Feb 2020 @@ -3866,10 +3940,10 @@

    Response Headers

    -

    Get Bulk Balances

    @@ -4162,10 +4236,10 @@

    Response Headers

    -

    Get Balances For Specific Accounts

    @@ -4403,10 +4477,10 @@

    Response Headers

    -

    Get Account Balance

    @@ -4592,10 +4666,10 @@

    Response Headers

    -

    Get Account Detail

    @@ -4959,10 +5033,10 @@

    Response Headers

    -

    Get Transactions For Account

    @@ -5229,10 +5303,10 @@

    Response Headers

    -

    Get Transaction Detail

    @@ -5442,10 +5516,10 @@

    Response Headers

    -

    Get Direct Debits For Account

    @@ -5654,10 +5728,10 @@

    Response Headers

    -

    Get Bulk Direct Debits

    @@ -5948,10 +6022,10 @@

    Response Headers

    -

    Get Direct Debits For Specific Accounts

    @@ -6187,10 +6261,10 @@

    Response Headers

    -

    Get Scheduled Payments for Account

    @@ -6481,10 +6555,10 @@

    Response Headers

    -

    Get Scheduled Payments Bulk

    @@ -6857,10 +6931,10 @@

    Response Headers

    -

    Get Scheduled Payments For Specific Accounts

    @@ -7178,10 +7252,10 @@

    Response Headers

    -

    Get Payees

    @@ -7409,10 +7483,10 @@

    Response Headers

    -

    Get Payee Detail

    @@ -7636,10 +7710,10 @@

    Response Headers

    -

    Get Products

    @@ -7941,9 +8015,9 @@

    Response Headers

    -

    Get Product Detail

    @@ -8230,9 +8304,9 @@

    Response Headers

    -

    Common APIs

    Get Customer

    @@ -8431,10 +8505,10 @@

    Response Headers

    -

    Get Customer Detail

    @@ -8729,10 +8803,10 @@

    Response Headers

    -

    Get Status

    @@ -8861,9 +8935,9 @@

    Response Headers

    -

    Get Outages

    @@ -8995,9 +9069,9 @@

    Response Headers

    -

    Schemas

    RequestAccountIds

    @@ -17665,7 +17739,7 @@

    Parameters

    header string optional -Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. +Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. body @@ -17708,10 +17782,16 @@

    Response Headers

    x-v string -The version of the API end point that the data holder has responded with. +The version of the API end point that the data holder has responded with. +

    + @@ -17752,7 +17832,7 @@

    Get Metrics

    NOTE: This version must be implemented by July 31st 2021

    -

    Obsolete versions: v1

    +

    Obsolete versions: v1. If the Data Holder supports private_key_jwt client authentication they MUST validate the scope.

    Endpoint Version

    @@ -17798,7 +17878,7 @@

    Parameters

    header string optional -Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. +Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. @@ -17995,6 +18075,12 @@

    Response Headers

    +

    + @@ -18213,77 +18299,77 @@

    ResponseMetricsListV2

    » availability AvailabilityMetrics -conditional +mandatory none Percentage availability of the CDR platform over time » performance PerformanceMetrics -conditional +mandatory none Percentage of calls within the performance thresholds » invocations InvocationMetrics -conditional +mandatory none Number of API calls in each performance tier over time » averageResponse AverageResponseMetrics -conditional +mandatory none Average response time in seconds, at millisecond resolution, within each performance tier » sessionCount SessionCountMetrics -conditional +mandatory none Session counts over time. Note that a session is defined as the provisioning of an Access Token. » averageTps AverageTPSMetrics -conditional +mandatory none Transactions per second over time » peakTps PeakTPSMetrics -conditional +mandatory none Maximum record transactions per second over time » errors ErrorMetrics -conditional +mandatory none Number of calls resulting in error due to server execution over time » rejections RejectionMetricsV2 -conditional +mandatory none Number of calls rejected due to traffic thresholds over time » customerCount integer -conditional +mandatory none Number of customers with active authorisations at the time of the call » recipientCount integer -conditional +mandatory none Number of data recipients with active authorisations at the time of the call @@ -18441,7 +18527,7 @@

    Properties

    unauthenticated object -conditional +mandatory none API call counts for the unauthenticated tier @@ -18462,7 +18548,7 @@

    Properties

    highPriority object -conditional +mandatory none API call counts for the high priority tier @@ -18483,7 +18569,7 @@

    Properties

    lowPriority object -conditional +mandatory none API call counts for the low priority tier @@ -18504,7 +18590,7 @@

    Properties

    unattended object -conditional +mandatory none API call counts for the unattended tier @@ -18525,7 +18611,7 @@

    Properties

    largePayload object -conditional +mandatory none API call counts for the large payload tier @@ -18600,7 +18686,7 @@

    Properties

    unauthenticated object -conditional +mandatory none Average response time for the unauthenticated tier @@ -18621,7 +18707,7 @@

    Properties

    highPriority object -conditional +mandatory none Average response time for the high priority tier @@ -18642,7 +18728,7 @@

    Properties

    lowPriority object -conditional +mandatory none Average response time for the low priority tier @@ -18663,7 +18749,7 @@

    Properties

    unattended object -conditional +mandatory none Average response time for the unattended tier @@ -18684,7 +18770,7 @@

    Properties

    largePayload object -conditional +mandatory none Average response time for the large payload tier @@ -18909,42 +18995,42 @@

    Properties

    authenticated object -optional +mandatory none Rejection counts for all authenticated end points » currentDay number -optional +conditional none Number of calls rejected for current day » previousDays [number] -optional +conditional none Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. unauthenticated object -optional +mandatory none Rejection counts for all uauthenticated end points » currentDay number -optional +conditional none Number of calls rejected for current day » previousDays [number] -optional +conditional none Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available. @@ -19031,6 +19117,16 @@

    Authorisation Scopes

    The scope would allow the third party to access more detailed information about the customer. Includes the data available with the Basic Customer Data scope plus contact details.

    Includes basic data plus phone, email and address information. +Basic Admin Metrics Data +admin:metrics.basic:read +Metrics data accessible ONLY to the CDR Register. If the Data Holder uses Private Key JWT Client Authentication to authenticate the CDR Register, this scope is required.

    Includes access to basic Metrics data. + + +Admin Metadata Update Data +admin:metadata:update +Update notification accessible ONLY to the CDR Register. If the Data Holder uses Private Key JWT Client Authentication to authenticate the CDR Register, this scope is required.

    Includes permission to notify Data Holders of changes to Data Recipient metadata held by the CDR Register. + + Public NA Openly accessible information. A customer would never need to grant this scope. This scope is included so that end points that can be called without requiring authorisation can be identified.

    Includes access to openly available information such as generic product information. @@ -19237,6 +19333,12 @@

    Change Log

    +29/04/2021 +1.9.0 +Changes arising from the sixth Data Standards Maintenance Iteration +See release notes and Decision 161 for details + + 16/04/2021 1.8.0 CX Standards for Amending Consent @@ -19572,9 +19674,14 @@

    Archives

    +16/04/2021 +1.8.0 +CX Standards for Amending Consent related to Decision 144 + + 10/03/2021 1.7.0 -Banking Maintenance Iteration 5 and related changes arising from Decision 159 +Banking Maintenance Iteration 5 and related changes arising from Decision 159 23/12/2020 diff --git a/docs/stylesheets/screen.css b/docs/stylesheets/screen.css index e26b2b80..1bae8628 100644 --- a/docs/stylesheets/screen.css +++ b/docs/stylesheets/screen.css @@ -1 +1 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,html,body{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:14px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-weight:bold}.content code,.content pre{font-family:Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;font-size:12px;line-height:1.5}.content code{word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}@font-face{font-family:'slate';src:url(../fonts/slate.eot?-syv14m);src:url(../fonts/slate.eot?#iefix-syv14m) format("embedded-opentype"),url(../fonts/slate.woff2?-syv14m) format("woff2"),url(../fonts/slate.woff?-syv14m) format("woff"),url(../fonts/slate.ttf?-syv14m) format("truetype"),url(../fonts/slate.svg?-syv14m#slate) format("svg");font-weight:normal;font-style:normal}.content aside.warning:before,.content aside.notice:before,.content aside.success:before,.toc-wrapper>.search:before{font-family:'slate';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1}.content aside.warning:before{content:"\e600"}.content aside.notice:before{content:"\e602"}.content aside.success:before{content:"\e606"}.toc-wrapper>.search:before{content:"\e607"}html,body{color:#333;padding:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#F3F7F9;height:100%;-webkit-text-size-adjust:none}#toc>ul>li>a>span{float:right;background-color:#2484FF;border-radius:40px;width:20px}.toc-wrapper{transition:left 0.3s ease-in-out;overflow-y:auto;overflow-x:hidden;position:fixed;z-index:30;top:0;left:0;bottom:0;width:230px;background-color:#000000;font-size:13px;font-weight:bold}.toc-wrapper .lang-selector{display:none}.toc-wrapper .lang-selector a{padding-top:0.5em;padding-bottom:0.5em}.toc-wrapper .logo{display:block;max-width:100%;margin-bottom:0px}.toc-wrapper>.search{position:relative}.toc-wrapper>.search input{background:#000000;border-width:0 0 1px 0;border-color:#666;padding:6px 0 6px 20px;box-sizing:border-box;margin:10px 15px;width:200px;outline:none;color:#2FB787;border-radius:0}.toc-wrapper>.search:before{position:absolute;top:17px;left:15px;color:#2FB787}.toc-wrapper .search-results{margin-top:0;box-sizing:border-box;height:0;overflow-y:auto;overflow-x:hidden;transition-property:height, margin;transition-duration:180ms;transition-timing-function:ease-in-out;background:#1E2224}.toc-wrapper .search-results.visible{height:30%;margin-bottom:1em}.toc-wrapper .search-results li{margin:1em 15px;line-height:1}.toc-wrapper .search-results a{color:#2FB787;text-decoration:none}.toc-wrapper .search-results a:hover{text-decoration:underline}.toc-wrapper ul,.toc-wrapper li{list-style:none;margin:0;padding:0;line-height:28px}.toc-wrapper li{color:#2FB787;transition-property:background;transition-timing-function:linear;transition-duration:200ms}.toc-wrapper .toc-link.active{background-color:#00A9CE;color:#fff}.toc-wrapper .toc-link.active-parent{background-color:#1E2224;color:#2FB787}.toc-wrapper .toc-list-h2{display:none;background-color:#1E2224;font-weight:500}.toc-wrapper .toc-h2{padding-left:25px;font-size:12px}.toc-wrapper .toc-footer{padding:1em 0;margin-top:1em;border-top:1px dashed #666}.toc-wrapper .toc-footer li,.toc-wrapper .toc-footer a{color:#2FB787;text-decoration:none}.toc-wrapper .toc-footer a:hover{text-decoration:underline}.toc-wrapper .toc-footer li{font-size:0.8em;line-height:1.7;text-decoration:none}.toc-link,.toc-footer li{padding:0 15px 0 15px;display:block;overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:none;color:#2FB787;transition-property:background;transition-timing-function:linear;transition-duration:130ms}#nav-button{padding:0 1.5em 5em 0;display:none;position:fixed;top:0;left:0;z-index:100;color:#000;text-decoration:none;font-weight:bold;opacity:0.7;line-height:16px;transition:left 0.3s ease-in-out}#nav-button span{display:block;padding:6px 6px 6px;background-color:rgba(243,247,249,0.7);transform-origin:0 0;transform:rotate(-90deg) translate(-100%, 0);border-radius:0 0 0 5px}#nav-button img{height:16px;vertical-align:bottom}#nav-button:hover{opacity:1}#nav-button.open{left:230px}.page-wrapper{margin-left:230px;position:relative;z-index:10;background-color:#F3F7F9;min-height:100%;padding-bottom:1px}.page-wrapper .dark-box{width:40%;background-color:#2E3336;position:absolute;right:0;top:0;bottom:0}.page-wrapper .lang-selector{position:fixed;z-index:50;border-bottom:5px solid #2E3336}.lang-selector{background-color:#1E2224;width:100%;font-weight:bold}.lang-selector a{display:block;float:left;color:#fff;text-decoration:none;padding:0 10px;line-height:30px;outline:0}.lang-selector a:active,.lang-selector a:focus{background-color:#111;color:#fff}.lang-selector a.active{background-color:#2E3336;color:#fff}.lang-selector:after{content:'';clear:both;display:block}.content{-webkit-transform:translateZ(0);position:relative;z-index:30}.content:after{content:'';display:block;clear:both}.content>h1,.content>h2,.content>h3,.content>h4,.content>h5,.content>h6,.content>p,.content>table,.content>ul,.content>ol,.content>aside,.content>dl{margin-right:40%;padding:0 28px;box-sizing:border-box;display:block}.content>ul,.content>ol{padding-left:43px}.content>h1,.content>h2,.content>div{clear:both}.content h1{font-size:25px;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:21px;margin-top:2em;border-top:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#fdfdfd}.content h1:first-child,.content div:first-child+h1{border-top-width:0;margin-top:0}.content h2{font-size:19px;margin-top:4em;margin-bottom:0;border-top:1px solid #ccc;padding-top:1.2em;padding-bottom:1.2em;background-image:linear-gradient(to bottom, rgba(255,255,255,0.2), rgba(255,255,255,0))}.content h1+h2,.content h1+div+h2{margin-top:-21px;border-top:none}.content h3,.content h4,.content h5,.content h6{font-size:15px;margin-top:2.5em;margin-bottom:0.8em}.content h4,.content h5,.content h6{font-size:14px}.content hr{margin:2em 0;border-top:2px solid #2E3336;border-bottom:2px solid #F3F7F9}.content table{margin-bottom:1em;overflow:auto}.content table th,.content table td{text-align:left;vertical-align:top;line-height:1.6}.content table th code,.content table td code{white-space:nowrap}.content table th{padding:5px 10px;border-bottom:1px solid #ccc;vertical-align:bottom}.content table td{padding:10px}.content table tr:last-child{border-bottom:1px solid #ccc}.content table tr:nth-child(odd)>td{background-color:white}.content table tr:nth-child(even)>td{background-color:#fbfcfd}.content dt{font-weight:bold}.content dd{margin-left:15px}.content p,.content li,.content dt,.content dd{line-height:1.6;margin-top:0}.content img{max-width:100%}.content code{background-color:rgba(0,0,0,0.05);padding:3px;border-radius:3px}.content pre>code{background-color:transparent;padding:0}.content aside{padding-top:1em;padding-bottom:1em;margin-top:1.5em;margin-bottom:1.5em;background:#8fbcd4;line-height:1.6}.content aside.warning{background-color:#c97a7e}.content aside.success{background-color:#6ac174}.content aside:before{vertical-align:middle;padding-right:0.5em;font-size:14px}.content .search-highlight{padding:2px;margin:-3px;border-radius:4px;border:1px solid #F7E633;background:linear-gradient(to top left, #F7E633 0%, #F1D32F 100%)}.content pre,.content blockquote{background-color:#1E2224;color:#fff;margin:0;width:40%;float:right;clear:right;box-sizing:border-box}.content pre>p,.content blockquote>p{margin:0}.content pre a,.content blockquote a{color:#fff;text-decoration:none;border-bottom:dashed 1px #ccc}.content pre{padding-top:2em;padding-bottom:2em;padding:2em 28px}.content blockquote>p{background-color:#191D1F;padding:13px 2em;color:#eee}@media (max-width: 930px){.toc-wrapper{left:-230px}.toc-wrapper.open{left:0}.page-wrapper{margin-left:0}#nav-button{display:block}.toc-link{padding-top:0.3em;padding-bottom:0.3em}}@media (max-width: 700px){.dark-box{display:none}.content>h1,.content>h2,.content>h3,.content>h4,.content>h5,.content>h6,.content>p,.content>table,.content>ul,.content>ol,.content>aside,.content>dl{margin-right:0}.toc-wrapper .lang-selector{display:block}.page-wrapper .lang-selector{display:none}.content pre,.content blockquote{width:auto;float:none}.content>pre+h1,.content>blockquote+h1,.content>pre+h2,.content>blockquote+h2,.content>pre+h3,.content>blockquote+h3,.content>pre+h4,.content>blockquote+h4,.content>pre+h5,.content>blockquote+h5,.content>pre+h6,.content>blockquote+h6,.content>pre+p,.content>blockquote+p,.content>pre+table,.content>blockquote+table,.content>pre+ul,.content>blockquote+ul,.content>pre+ol,.content>blockquote+ol,.content>pre+aside,.content>blockquote+aside,.content>pre+dl,.content>blockquote+dl{margin-top:28px}}.highlight .c,.highlight .cm,.highlight .c1,.highlight .cs{color:#909090}.highlight,.highlight .w{background-color:#1E2224} \ No newline at end of file +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,html,body{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:14px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-weight:bold}.content code,.content pre{font-family:Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;font-size:12px;line-height:1.5}.content code{word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}@font-face{font-family:'slate';src:url(../fonts/slate.eot?-syv14m);src:url(../fonts/slate.eot?#iefix-syv14m) format("embedded-opentype"),url(../fonts/slate.woff2?-syv14m) format("woff2"),url(../fonts/slate.woff?-syv14m) format("woff"),url(../fonts/slate.ttf?-syv14m) format("truetype"),url(../fonts/slate.svg?-syv14m#slate) format("svg");font-weight:normal;font-style:normal}.content aside.warning:before,.content aside.notice:before,.content aside.success:before,.toc-wrapper>.search:before{font-family:'slate';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1}.content aside.warning:before{content:"\e600"}.content aside.notice:before{content:"\e602"}.content aside.success:before{content:"\e606"}.toc-wrapper>.search:before{content:"\e607"}html,body{color:#333;padding:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#F3F7F9;height:100%;-webkit-text-size-adjust:none}#toc>ul>li>a>span{float:right;background-color:#2484FF;border-radius:40px;width:20px}.toc-wrapper{transition:left 0.3s ease-in-out;overflow-y:auto;overflow-x:hidden;position:fixed;z-index:30;top:0;left:0;bottom:0;width:230px;background-color:#000000;font-size:13px;font-weight:bold}.toc-wrapper .lang-selector{display:none}.toc-wrapper .lang-selector a{padding-top:0.5em;padding-bottom:0.5em}.toc-wrapper .logo{display:block;max-width:100%;margin-bottom:0px}.toc-wrapper>.search{position:relative}.toc-wrapper>.search input{background:#000000;border-width:0 0 1px 0;border-color:#666;padding:6px 0 6px 20px;box-sizing:border-box;margin:10px 15px;width:200px;outline:none;color:#2FB787;border-radius:0}.toc-wrapper>.search:before{position:absolute;top:17px;left:15px;color:#2FB787}.toc-wrapper .search-results{margin-top:0;box-sizing:border-box;height:0;overflow-y:auto;overflow-x:hidden;transition-property:height, margin;transition-duration:180ms;transition-timing-function:ease-in-out;background:#1E2224}.toc-wrapper .search-results.visible{height:30%;margin-bottom:1em}.toc-wrapper .search-results li{margin:1em 15px;line-height:1}.toc-wrapper .search-results a{color:#2FB787;text-decoration:none}.toc-wrapper .search-results a:hover{text-decoration:underline}.toc-wrapper ul,.toc-wrapper li{list-style:none;margin:0;padding:0;line-height:28px}.toc-wrapper li{color:#2FB787;transition-property:background;transition-timing-function:linear;transition-duration:200ms}.toc-wrapper .toc-link.active{background-color:#00A9CE;color:#fff}.toc-wrapper .toc-link.active-parent{background-color:#1E2224;color:#2FB787}.toc-wrapper .toc-list-h2{display:none;background-color:#1E2224;font-weight:500}.toc-wrapper .toc-h2{padding-left:25px;font-size:12px}.toc-wrapper .toc-footer{padding:1em 0;margin-top:1em;border-top:1px dashed #666}.toc-wrapper .toc-footer li,.toc-wrapper .toc-footer a{color:#2FB787;text-decoration:none}.toc-wrapper .toc-footer a:hover{text-decoration:underline}.toc-wrapper .toc-footer li{font-size:0.8em;line-height:1.7;text-decoration:none}.toc-link,.toc-footer li{padding:0 15px 0 15px;display:block;overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:none;color:#2FB787;transition-property:background;transition-timing-function:linear;transition-duration:130ms}#nav-button{padding:0 1.5em 5em 0;display:none;position:fixed;top:0;left:0;z-index:100;color:#000;text-decoration:none;font-weight:bold;opacity:0.7;line-height:16px;transition:left 0.3s ease-in-out}#nav-button span{display:block;padding:6px 6px 6px;background-color:rgba(243,247,249,0.7);transform-origin:0 0;transform:rotate(-90deg) translate(-100%, 0);border-radius:0 0 0 5px}#nav-button img{height:16px;vertical-align:bottom}#nav-button:hover{opacity:1}#nav-button.open{left:230px}.page-wrapper{margin-left:230px;position:relative;z-index:10;background-color:#F3F7F9;min-height:100%;padding-bottom:1px}.page-wrapper .dark-box{width:40%;background-color:#2E3336;position:absolute;right:0;top:0;bottom:0}.page-wrapper .lang-selector{position:fixed;z-index:50;border-bottom:5px solid #2E3336}.lang-selector{background-color:#1E2224;width:100%;font-weight:bold}.lang-selector a{display:block;float:left;color:#fff;text-decoration:none;padding:0 10px;line-height:30px;outline:0}.lang-selector a:active,.lang-selector a:focus{background-color:#111;color:#fff}.lang-selector a.active{background-color:#2E3336;color:#fff}.lang-selector:after{content:'';clear:both;display:block}.content{-webkit-transform:translateZ(0);position:relative;z-index:30}.content:after{content:'';display:block;clear:both}.content>h1,.content>h2,.content>h3,.content>h4,.content>h5,.content>h6,.content>p,.content>table,.content>ul,.content>ol,.content>aside,.content>dl{margin-right:40%;padding:0 28px;box-sizing:border-box;display:block}.content>ul,.content>ol{padding-left:43px}.content>h1,.content>h2,.content>div{clear:both}.content h1{font-size:25px;padding-top:0.5em;padding-bottom:0.5em;margin-bottom:21px;margin-top:2em;border-top:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#fdfdfd}.content h1:first-child,.content div:first-child+h1{border-top-width:0;margin-top:0}.content h2{font-size:19px;margin-top:4em;margin-bottom:0;border-top:1px solid #ccc;padding-top:1.2em;padding-bottom:1.2em;background-image:linear-gradient(to bottom, rgba(255,255,255,0.2), rgba(255,255,255,0))}.content h1+h2,.content h1+div+h2{margin-top:-21px;border-top:none}.content h3,.content h4,.content h5,.content h6{font-size:15px;margin-top:2.5em;margin-bottom:0.8em}.content h4,.content h5,.content h6{font-size:14px}.content hr{margin:2em 0;border-top:2px solid #2E3336;border-bottom:2px solid #F3F7F9}.content table{margin-bottom:1em;overflow:auto}.content table th,.content table td{text-align:left;vertical-align:top;line-height:1.6}.content table th code,.content table td code{white-space:nowrap}.content table th{padding:5px 10px;border-bottom:1px solid #ccc;vertical-align:bottom}.content table td{padding:10px}.content table tr:last-child{border-bottom:1px solid #ccc}.content table tr:nth-child(odd)>td{background-color:white}.content table tr:nth-child(even)>td{background-color:#fbfcfd}.content dt{font-weight:bold}.content dd{margin-left:15px}.content p,.content li,.content dt,.content dd{line-height:1.6;margin-top:0}.content img{max-width:100%}.content code{background-color:rgba(0,0,0,0.05);padding:3px;border-radius:3px}.content pre>code{background-color:transparent;padding:0}.content aside{padding-top:1em;padding-bottom:1em;margin-top:1.5em;margin-bottom:1.5em;background:#8fbcd4;line-height:1.6}.content aside.warning{background-color:#c97a7e}.content aside.success{background-color:#6ac174}.content aside:before{vertical-align:middle;padding-right:0.5em;font-size:14px}.content .search-highlight{padding:2px;margin:-3px;border-radius:4px;border:1px solid #F7E633;background:linear-gradient(to top left, #F7E633 0%, #F1D32F 100%)}.no-code-layout .content>h1,.no-code-layout .content>h2,.no-code-layout .content>h3,.no-code-layout .content>h4,.no-code-layout .content>h5,.no-code-layout .content>h6,.no-code-layout .content>p,.no-code-layout .content>table,.no-code-layout .content>ul,.no-code-layout .content>ol,.no-code-layout .content>aside,.no-code-layout .content>dl{margin-right:0 !important}.content pre,.content blockquote{background-color:#1E2224;color:#fff;margin:0;width:40%;float:right;clear:right;box-sizing:border-box}.content pre>p,.content blockquote>p{margin:0}.content pre a,.content blockquote a{color:#fff;text-decoration:none;border-bottom:dashed 1px #ccc}.content pre{padding-top:2em;padding-bottom:2em;padding:2em 28px}.content blockquote>p{background-color:#191D1F;padding:13px 2em;color:#eee}@media (max-width: 930px){.toc-wrapper{left:-230px}.toc-wrapper.open{left:0}.page-wrapper{margin-left:0}#nav-button{display:block}.toc-link{padding-top:0.3em;padding-bottom:0.3em}}@media (max-width: 700px){.dark-box{display:none}.content>h1,.content>h2,.content>h3,.content>h4,.content>h5,.content>h6,.content>p,.content>table,.content>ul,.content>ol,.content>aside,.content>dl{margin-right:0}.toc-wrapper .lang-selector{display:block}.page-wrapper .lang-selector{display:none}.content pre,.content blockquote{width:auto;float:none}.content>pre+h1,.content>blockquote+h1,.content>pre+h2,.content>blockquote+h2,.content>pre+h3,.content>blockquote+h3,.content>pre+h4,.content>blockquote+h4,.content>pre+h5,.content>blockquote+h5,.content>pre+h6,.content>blockquote+h6,.content>pre+p,.content>blockquote+p,.content>pre+table,.content>blockquote+table,.content>pre+ul,.content>blockquote+ul,.content>pre+ol,.content>blockquote+ol,.content>pre+aside,.content>blockquote+aside,.content>pre+dl,.content>blockquote+dl{margin-top:28px}}.highlight .c,.highlight .cm,.highlight .c1,.highlight .cs{color:#909090}.highlight,.highlight .w{background-color:#1E2224} \ No newline at end of file diff --git a/slate/source/includes/cds_admin.md b/slate/source/includes/cds_admin.md index 75899aab..3b3db8a2 100644 --- a/slate/source/includes/cds_admin.md +++ b/slate/source/includes/cds_admin.md @@ -62,7 +62,7 @@ Indicate that a critical update to the metadata for Accredited Data Recipients h |Name|In|Type|Required|Description| |---|---|---|---|---| |x-v|header|string|mandatory|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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| -|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.| |body|body|[RequestMetaDataUpdate](#schemarequestmetadataupdate)|mandatory|none|

    Responses

    @@ -75,12 +75,23 @@ Indicate that a critical update to the metadata for Accredited Data Recipients h |Status|Header|Type|Format|Description| |---|---|---|---|---| -|200|x-v|string||The [version](##response-headers) of the API end point that the data holder has responded with.| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| + + + + + + + ## Get Metrics @@ -122,7 +133,7 @@ This end point allows the ACCC to obtain operational statistics from the Data Ho NOTE: This version must be implemented by **July 31st 2021** -Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html) +Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html). If the Data Holder supports private_key_jwt client authentication they MUST validate the scope. ###Endpoint Version | | | @@ -135,7 +146,7 @@ Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html) |---|---|---|---|---| |period|query|string|optional|The period of metrics to be requested. Values can be CURRENT (meaning metrics for current day), HISTORIC (meaning metrics for previous days or months) or ALL. If absent the default is ALL.| |x-v|header|string|mandatory|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 should respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| -|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](##request-headers) and [x-v](##request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable.| #### Enumerated Values @@ -289,9 +300,11 @@ Obsolete versions: [v1](includes/obsolete/get-metrics-v1.html) |---|---|---|---|---| |200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| - + + + ## Schemas

    RequestMetaDataUpdate

    @@ -468,17 +484,17 @@ This operation may only be called by the CDR Register |---|---|---|---|---| |data|object|mandatory|none|none| |» requestTime|[DateTimeString](#common-field-types)|mandatory|none|The date and time that the metrics in this payload were requested.| -|» availability|[AvailabilityMetrics](#schemaavailabilitymetrics)|conditional|none|Percentage availability of the CDR platform over time| -|» performance|[PerformanceMetrics](#schemaperformancemetrics)|conditional|none|Percentage of calls within the performance thresholds| -|» invocations|[InvocationMetrics](#schemainvocationmetrics)|conditional|none|Number of API calls in each performance tier over time| -|» averageResponse|[AverageResponseMetrics](#schemaaverageresponsemetrics)|conditional|none|Average response time in seconds, at millisecond resolution, within each performance tier| -|» sessionCount|[SessionCountMetrics](#schemasessioncountmetrics)|conditional|none|Session counts over time. Note that a session is defined as the provisioning of an Access Token.| -|» averageTps|[AverageTPSMetrics](#schemaaveragetpsmetrics)|conditional|none|Transactions per second over time| -|» peakTps|[PeakTPSMetrics](#schemapeaktpsmetrics)|conditional|none|Maximum record transactions per second over time| -|» errors|[ErrorMetrics](#schemaerrormetrics)|conditional|none|Number of calls resulting in error due to server execution over time| -|» rejections|[RejectionMetricsV2](#schemarejectionmetricsv2)|conditional|none|Number of calls rejected due to traffic thresholds over time| -|» customerCount|integer|conditional|none|Number of customers with active authorisations at the time of the call| -|» recipientCount|integer|conditional|none|Number of data recipients with active authorisations at the time of the call| +|» availability|[AvailabilityMetrics](#schemaavailabilitymetrics)|mandatory|none|Percentage availability of the CDR platform over time| +|» performance|[PerformanceMetrics](#schemaperformancemetrics)|mandatory|none|Percentage of calls within the performance thresholds| +|» invocations|[InvocationMetrics](#schemainvocationmetrics)|mandatory|none|Number of API calls in each performance tier over time| +|» averageResponse|[AverageResponseMetrics](#schemaaverageresponsemetrics)|mandatory|none|Average response time in seconds, at millisecond resolution, within each performance tier| +|» sessionCount|[SessionCountMetrics](#schemasessioncountmetrics)|mandatory|none|Session counts over time. Note that a session is defined as the provisioning of an Access Token.| +|» averageTps|[AverageTPSMetrics](#schemaaveragetpsmetrics)|mandatory|none|Transactions per second over time| +|» peakTps|[PeakTPSMetrics](#schemapeaktpsmetrics)|mandatory|none|Maximum record transactions per second over time| +|» errors|[ErrorMetrics](#schemaerrormetrics)|mandatory|none|Number of calls resulting in error due to server execution over time| +|» rejections|[RejectionMetricsV2](#schemarejectionmetricsv2)|mandatory|none|Number of calls rejected due to traffic thresholds over time| +|» customerCount|integer|mandatory|none|Number of customers with active authorisations at the time of the call| +|» recipientCount|integer|mandatory|none|Number of data recipients with active authorisations at the time of the call| |links|[Links](#schemalinks)|mandatory|none|none| |meta|[Meta](#schemameta)|optional|none|none| @@ -574,19 +590,19 @@ This operation may only be called by the CDR Register |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| -|unauthenticated|object|conditional|none|API call counts for the unauthenticated tier| +|unauthenticated|object|mandatory|none|API call counts for the unauthenticated tier| |» currentDay|number|conditional|none|API call counts for current day| |» previousDays|[number]|conditional|none|API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available| -|highPriority|object|conditional|none|API call counts for the high priority tier| +|highPriority|object|mandatory|none|API call counts for the high priority tier| |» currentDay|number|conditional|none|API call counts for current day| |» previousDays|[number]|conditional|none|API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available| -|lowPriority|object|conditional|none|API call counts for the low priority tier| +|lowPriority|object|mandatory|none|API call counts for the low priority tier| |» currentDay|number|conditional|none|API call counts for current day| |» previousDays|[number]|conditional|none|API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available| -|unattended|object|conditional|none|API call counts for the unattended tier| +|unattended|object|mandatory|none|API call counts for the unattended tier| |» currentDay|number|conditional|none|API call counts for current day| |» previousDays|[number]|conditional|none|API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available| -|largePayload|object|conditional|none|API call counts for the large payload tier| +|largePayload|object|mandatory|none|API call counts for the large payload tier| |» currentDay|number|conditional|none|API call counts for current day| |» previousDays|[number]|conditional|none|API call counts for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available| @@ -636,19 +652,19 @@ This operation may only be called by the CDR Register |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| -|unauthenticated|object|conditional|none|Average response time for the unauthenticated tier| +|unauthenticated|object|mandatory|none|Average response time for the unauthenticated tier| |» currentDay|number|conditional|none|Average response time for current day| |» previousDays|[number]|conditional|none|Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| -|highPriority|object|conditional|none|Average response time for the high priority tier| +|highPriority|object|mandatory|none|Average response time for the high priority tier| |» currentDay|number|conditional|none|Average response time for current day| |» previousDays|[number]|conditional|none|Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| -|lowPriority|object|conditional|none|Average response time for the low priority tier| +|lowPriority|object|mandatory|none|Average response time for the low priority tier| |» currentDay|number|conditional|none|Average response time for current day| |» previousDays|[number]|conditional|none|Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| -|unattended|object|conditional|none|Average response time for the unattended tier| +|unattended|object|mandatory|none|Average response time for the unattended tier| |» currentDay|number|conditional|none|Average response time for current day| |» previousDays|[number]|conditional|none|Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| -|largePayload|object|conditional|none|Average response time for the large payload tier| +|largePayload|object|mandatory|none|Average response time for the large payload tier| |» currentDay|number|conditional|none|Average response time for current day| |» previousDays|[number]|conditional|none|Average response time for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| @@ -772,12 +788,12 @@ This operation may only be called by the CDR Register |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| -|authenticated|object|optional|none|Rejection counts for all authenticated end points| -|» currentDay|number|optional|none|Number of calls rejected for current day| -|» previousDays|[number]|optional|none|Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| -|unauthenticated|object|optional|none|Rejection counts for all uauthenticated end points| -|» currentDay|number|optional|none|Number of calls rejected for current day| -|» previousDays|[number]|optional|none|Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| +|authenticated|object|mandatory|none|Rejection counts for all authenticated end points| +|» currentDay|number|conditional|none|Number of calls rejected for current day| +|» previousDays|[number]|conditional|none|Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| +|unauthenticated|object|mandatory|none|Rejection counts for all uauthenticated end points| +|» currentDay|number|conditional|none|Number of calls rejected for current day| +|» previousDays|[number]|conditional|none|Number of calls rejected for previous days. The first element indicates yesterday and so on. A maximum of seven entries is required if available.| @@ -808,3 +824,4 @@ This operation may only be called by the CDR Register ### Properties *None* + diff --git a/slate/source/includes/cds_full.md b/slate/source/includes/cds_full.md index 7643f077..bc224921 100644 --- a/slate/source/includes/cds_full.md +++ b/slate/source/includes/cds_full.md @@ -138,11 +138,16 @@ Obtain a list of accounts |200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| |200|x-fapi-interaction-id|string||An [RFC4122](https://tools.ietf.org/html/rfc4122) UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a [RFC4122] UUID value is required to be provided in the response header to track the interaction.| -