NAV Navbar
shell javascript

Introduction

These standards have been developed as part of the introduction in Australia of the Consumer Data Right legislation to give Australians greater control over their data.

The Consumer Data Right is intended to apply 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.

These standards are governed by the Consumer Data Standards team inside Data61. Data61 has been appointed as the interim standards body. The work of the team is overseen by Mr. Andrew Stevens as interim Chair, with industry and consumer advice provided by an Advisory Committee. Data61 works closely 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).

Note that security standards are only partially represented in these standards as they are under development by the Information Security Working Group. More detail can found at the Information Security Profile working draft.

Standards

These standards represent version 0.2.0 of the high level standards which will support the creation of version 1. 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.

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.

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.

Principle 3: APIs provide a good customer experience

The API definitions will consider and incorporate the customer experience implications. The APIs should support the creation of customer experiences that are simple and enticing to use.

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.

Technical Principles

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

Principle 5: 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.

Principle 6: 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.

Principle 7: APIs are simple

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

Principle 8: 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.

Principle 9: 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.

Principle 10: 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.

Principle 11: 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 whereby previous versions are maintained for a period of time to allow for backwards compatibility.

Principle 12: APIs are extensible

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

Versioning

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

Standard Versioning

The base URI structure containing the version for this standard is:
http://<provider path>/cds-au/v1/<resource>

The high level standard will be versioned and this version will be in embedded in the URI Structure for the APIs. This documentation relates specifically to version 1 of the high level standards.

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:
<provider path> / cds-au / <version> / <industry> / <resource>

The components of this URI structure are described as follows:

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

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 …\accounts Returns an array of accounts
GET …\accounts\{id} Returns the detail of a specific account
GET …\accounts\transactions Returns the transactions of multiple accounts
GET …\accounts\{id}\transactions Returns the transactions of a specific account
POST …\accounts Create a new account
POST …\accounts\search Returns 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
Accept = application/json
x-v = 5
x-min-v = 3
x-Correlation-Id = 27639FAB67CC

Header Field Description
Content-Type Standard HTTP Header. Represents the format of the payload provided in the request. Must be set to application/json.
Accept Standard HTTP Header. Specify the Content-Type that is required from the Server.
If specified, must be set to application/json unless otherwise specified in the resource end point standard.
If set to an unacceptable value the provider must respond with a 406 Not Acceptable. If not specified, default is application/json.
x-v Version of the API end point requested by the client. Must be set to a positive integer.
If the version(s) requested is not supported then the provider should respond with a 406 Not Acceptable.
x-min-v Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The provider should respond with the highest supported version between x-min-v and x-v.
If all versions requested are not supported then the provider should respond with a 406 Not Acceptable.
x-<PID>-v A provider specific version of extension fields. Should not be used in conjunction with x-min-v.
x-fapi-financial-id The unique id of the data provider to which the request is issued. The unique id will be issued by the CDR Directory managed by ACCC. If the value does not match the expected value the data provider must reject the request with a 403 (Not Authorized) status code.
x-fapi-customer-last-logged-time The time when the customer last logged in to the data recipient
x-fapi-customer-ip-address 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
x-fapi-interaction-id An RFC4122 UID used as a correlation id. If provided, the data provider must "play back" this value in the x-fapi-interaction-id response header.

Response headers

Header Field Description Mandatory?
Content-Type Standard 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-After Header indicating the time (in seconds) that the client should wait before retrying an operation. The provider should include this header along with responses with the HTTP status code of 429 Too many requests. Optional
x-v The version of the API end point that the provider has responded with. Mandatory
x-Correlation-Id Reflected value of the correlation ID provided by the data consumer in the request headers.
If no correlation ID was provided in the request this header should not be supplied.
If a correlation ID was provided in the request then this header is mandatory.
Optional
x-fapi-interaction-id An RFC4122 UID used as a correlation id. The data provider must set the response header x-fapi-interaction-id to the value received from the corresponding fapi client request header or to a new RFC4122 UUID value if the request header was not provided to track the interaction. 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 provider if these headers are used for a specific implementation. Data providers 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.

Situation HTTP Status Notes POST GET DELETE
Query completed successfully 200 OK Yes Yes No
Normal execution. The request has succeeded. 201 Created The operation results in the creation of a new resource. Yes No No
Delete operation completed successfully 204 No Content No No Yes
The response is not modified since last call 304 Not Modified May be returned if standard caching headers such as ETag or If-modified-since are utilised Yes Yes No
Request has malformed, missing or non-compliant JSON body or URL parameters 400 Bad Request The requested operation will not be carried out. Yes Yes Yes
Authorization header missing or invalid token 401 Unauthorized The operation was refused access. Re-authenticating may result in an appropriate token that may be used. Yes Yes Yes
Token has incorrect scope or a security policy was violated. 403 Forbidden The operation was refused access. Re-authenticating is unlikely to remediate the situation. Yes Yes Yes
The consumer tried to access the resource with a method that is not supported. 405 Method Not Allowed Yes Yes Yes
The request contained an Accept header other than permitted media types, a character set other than UTF-8 or a version that was not supported 406 Not Acceptable Yes Yes Yes
The operation was refused because the payload is in a format not supported by this method on the target resource. 415 Unsupported Media Type Yes No No
The request was well formed but was unable to be processed due to business logic specific to the request 422 Unprocessable Entity If applicable to the HTTP method it is expected that this error will result in an error payload Yes No No
The operation was refused as too many requests have been made within a certain timeframe. 429 Too Many Requests Throttling is a NFR. The data provider should include a Retry-After header in the response indicating how long the data consumer must wait before retrying the operation. Yes Yes Yes
Something went wrong on the API gateway or micro-service 500 Internal Server Error The operation failed. Yes Yes Yes
Service is currently unavailable 503 Service Unavailable Yes Yes Yes
The server was unable to respond in a timely manner 504 Gateway Timeout Returned if a timeout has occurred but a resend of the original request is viable (otherwise us 500 instead) Yes Yes Yes

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:

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:

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:

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:

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.

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”: {
    [
        {
            “shapeType”: “circle”,
            “circle”: {
            }
        },
        {
            “shapeType”: “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.

Common Field Types

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

Type Description Valid Examples
String Standard UTF-8 string but unrestricted in content. Any valid Unicode character can be used.
ASCIIString Standard UTF-8 string but limited to the ASCII character set.
Boolean Standard JSON boolean true
false
Enum String 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”
NaturalNumber A natural number (ie. a positive integer inclusive of zero) 0
1
10000
PositiveInteger A positive integer (zero excluded) 1
10000
NegativeInteger A negative integer inclusive of zero 0
-1
-10000
Integer Any positive or negative integer inclusive of zero 1
0
-1
Number A standard floating point number. Can be positive, negative or zero 0.1
-100.09
10
90.09
DateTimeString Combined Date and Time string as per RFC- 3339 (labelled date-time in the RFC) “2007-05-01T15:43:00.12345Z”
“2012-12-25T15:43:00-08:00”
“1997-01-12T15:43:00.121Z”
DateString Date string as per RFC-3339 (labelled full-date in the RFC). UTC time should always be used “2007-05-01”
“2012-12-25”
TimeString Time string as per RFC-3339 (labelled full-time in the RFC). UTC time should always be used “15:43:00.12345Z”
“15:43:00-12:00”
CurrencyString Standard 3 character currency codes as per ISO-4217 “AUD”
“USD”
“GBP”
RateString A string representing an interest rate. A rate of 100% would be represented by the value 1.0
- A positive number (or zero)
- 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
“82”
“0.05”
“12.3456789”
“99.123456789123”
AmountString A 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”
MaskedPANString Masked 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"
MaskedAccountString Masked 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"
URIString A valid URI "http://www.google.com"

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:

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

Response Fields

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

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

Additional Pagination Rules

Cursor Support

For performance reasons data providers 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:

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

The three types of extension that the standards address are:

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

Provider Identifier

For example, the prefixes for the four major Banks required to implement by 1st July 2019 would be:

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

Data providers 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 provider. Care should be taken not to use a prefix already adopted by another provider in the regime.

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

New API Categories

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

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

For the extension API categories for a specific provider they would be structured as:
<provider path> / cds-au / <version> / <PID> / <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 provider section implies that they are additional to the standard.

Note that:

New End Points In Existing API Categories

When creating new end points that are in parallel to existing API categories in the standard the Provider 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 provider 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}/<PID>-balance-movement

Note that:

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

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:

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 <PID>- to avoid potential collision with extension by another data provider.

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-<PID>-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

High Level Profile

Securing of the API end points defined by the standards will be accomplished through alignment with well defined industry protocols and security profiles. Context specific constraints are then applied to these profiles to provide implementation clarity or reduce risk.

In particular the standards are aligned to the Financial API (FAPI) Read/Wite profile.

Note that the FAPI Read/Write profile builds on the FAPI Read Only profile and implies alignment with the use of Open ID Connect.

Additional Constraints

The FAPI Read/Write profile implies specific implementation decisions that are worthy of explicit statement. There are also some additional, specific constraints are applicable for implementations conforming to these standards:

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 Name Scope ID Description
Basic Bank Account Data bank_basic_accounts This 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 Data bank_detailed_accounts This 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 Data bank_transactions This 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 Data bank_payees This scope allows access to payee information stored by the customer.

Includes payee information such as billers, international beneficiaries and domestic payees.
Basic Customer Data common_basic_customer The 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 Data common_detailed_customer 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.
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.

OIDC Scopes & Claims

In addition to the Consumer Data Standards specific scopes above the following standard scopes and claims described by OpenID Connect core will be supported:

Banking APIs

Get Accounts

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
open-status query string false Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
is-owned query string false Filters accounts based on whether they are owned by the authorised customer
product-category query string false 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.
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Enumerated Values

Parameter Value
open-status OPEN
open-status CLOSED
open-status ALL
is-owned OWNED
is-owned NOT_OWNED
is-owned ALL
product-category PERS_AT_CALL_DEPOSITS
product-category BUS_AT_CALL_DEPOSITS
product-category TERM_DEPOSITS
product-category RESIDENTIAL_MORTGAGES
product-category PERS_CRED_AND_CHRG_CARDS
product-category BUS_CRED_AND_CHRG_CARDS
product-category PERS_LOANS
product-category PERS_LEASING
product-category BUS_LEASING
product-category TRADE_FINANCE
product-category PERS_OVERDRAFT
product-category BUS_OVERDRAFT
product-category BUS_LOANS
product-category FOREIGN_CURR_AT_CALL_DEPOSITS
product-category FOREIGN_CURR_TERM_DEPOSITS
product-category FOREIGN_CURR_LOAN
product-category FOREIGN_CURRRENCT_OVERDRAFT
product-category TRAVEL_CARD

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success ResponseBankingAccounts

Get Account Detail

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/{accountId} HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
accountId path string(ASCIIString) true A tokenised identifier for the account which is unique but not shareable

Example responses

200 Response

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "maskedNumber": "string",
    "openStatus": "OPEN",
    "isOwned": "true",
    "productCategory": "PERS_AT_CALL_DEPOSITS",
    "productName": "string",
    "bsb": "string",
    "accountNumber": "string",
    "bundleName": "string",
    "specificAccountUType": "termDeposit",
    "termDeposit": {
      "lodgementDate": "string",
      "maturityDate": "string",
      "maturityAmount": "string",
      "maturityCurrency": "string",
      "maturityInstructions": "ROLLED_OVER"
    },
    "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"
      ],
      "repaymentFrequency": "string",
      "repaymentType": "INTEREST_ONLY"
    },
    "features": [
      {
        "featureType": "CARD_ACCESS",
        "additionalValue": "string"
      }
    ],
    "fees": [
      {
        "name": "string",
        "feeType": "PERIODIC",
        "amount": "string",
        "balanceRate": "string",
        "transactionRate": "string",
        "currency": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string",
        "discounts": [
          {
            "description": "string",
            "discountType": "BALANCE",
            "amount": "string",
            "additionalValue": "string"
          }
        ]
      }
    ],
    "depositRates": [
      {
        "depositRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "lendingRates": [
      {
        "lendingRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "address": {
      "addressUType": "simple",
      "simple": {
        "mailingName": "string",
        "addressLine1": "string",
        "addressLine2": "string",
        "addressLine3": "string",
        "postcode": "string",
        "city": "string",
        "state": "string",
        "country": "string"
      },
      "paf": {
        "dpid": "string",
        "thoroughfareNumber1": 0,
        "thoroughfareNumber1Suffix": "string",
        "thoroughfareNumber2": 0,
        "thoroughfareNumber2Suffix": "string",
        "flatUnitNumber": "string",
        "floorLevelNumber": "string",
        "lotNumber": 0,
        "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

Status Meaning Description Schema
200 OK Success ResponseBankingAccount

Get Bulk Balances

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/balances HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
open-status query string false Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
is-owned query string false Filters accounts based on whether they are owned by the authorised customer
product-category query string false 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.
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Enumerated Values

Parameter Value
open-status OPEN
open-status CLOSED
open-status ALL
is-owned OWNED
is-owned NOT_OWNED
is-owned ALL
product-category PERS_AT_CALL_DEPOSITS
product-category BUS_AT_CALL_DEPOSITS
product-category TERM_DEPOSITS
product-category RESIDENTIAL_MORTGAGES
product-category PERS_CRED_AND_CHRG_CARDS
product-category BUS_CRED_AND_CHRG_CARDS
product-category PERS_LOANS
product-category PERS_LEASING
product-category BUS_LEASING
product-category TRADE_FINANCE
product-category PERS_OVERDRAFT
product-category BUS_OVERDRAFT
product-category BUS_LOANS
product-category FOREIGN_CURR_AT_CALL_DEPOSITS
product-category FOREIGN_CURR_TERM_DEPOSITS
product-category FOREIGN_CURR_LOAN
product-category FOREIGN_CURRRENCT_OVERDRAFT
product-category TRAVEL_CARD

Example responses

200 Response

{
  "data": {
    "balances": [
      {
        "accountId": "string",
        "balanceUType": "deposit",
        "deposit": {
          "currentBalance": {
            "amount": "string",
            "currency": "string"
          },
          "availableBalance": {
            "amount": "string",
            "currency": "string"
          }
        },
        "lending": {
          "accountBalance": {
            "amount": "string",
            "currency": "string"
          },
          "availableBalance": {
            "amount": "string",
            "currency": "string"
          },
          "creditLimit": {
            "amount": "string",
            "currency": "string"
          },
          "amortisedLimit": {
            "amount": "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

Status Meaning Description Schema
200 OK resource listing the financial balances for the account ResponseBankingAccountsBalances

Get Balances For Specific Accounts

Code samples

POST https://data.provider.com.au/cds-au/v1/banking/accounts/balances HTTP/1.1
Host: data.provider.com.au
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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": {}
}

Parameters

Name In Type Required Description
body body RequestAccountIds true The list of account IDs to obtain information for

Example responses

200 Response

{
  "data": {
    "balances": [
      {
        "accountId": "string",
        "balanceUType": "deposit",
        "deposit": {
          "currentBalance": {
            "amount": "string",
            "currency": "string"
          },
          "availableBalance": {
            "amount": "string",
            "currency": "string"
          }
        },
        "lending": {
          "accountBalance": {
            "amount": "string",
            "currency": "string"
          },
          "availableBalance": {
            "amount": "string",
            "currency": "string"
          },
          "creditLimit": {
            "amount": "string",
            "currency": "string"
          },
          "amortisedLimit": {
            "amount": "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

Status Meaning Description Schema
200 OK Success ResponseBankingAccountsBalances
422 Unprocessable Entity The request was well formed but was unable to be processed due to business logic specific to the request ErrorList

Get Transactions For Account

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/{accountId}/transactions HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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:

Parameters

Name In Type Required Description
accountId path string(ASCIIString) true ID of the account to get transactions for. Must have previously been returned by one of the account list end points.
start-time query string(DateTimeString) false Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to current time. Format is aligned to DateTimeString common type
end-time query string(DateTimeString) false Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to start-time plus 100 days. Format is aligned to DateTimeString common type
min-amount query string(AmountString) false Filter transactions to only transactions with amounts higher or equal to than this amount
max-amount query string(AmountString) false Filter transactions to only transactions with amounts less than or equal to than this amount
text query string false 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
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Example responses

200 Response

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "transactions": [
      {
        "accountId": "string",
        "transactionId": "string",
        "isDetailAvailable": true,
        "type": "FEE",
        "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

Status Meaning Description Schema
200 OK Success ResponseBankingTransactions

Get Transaction Detail

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/{accountId}/transactions/{transactionId} HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
accountId path string(ASCIIString) true The account id token that is used to uniquely represent the account
transactionId path string(ASCIIString) true The unique identifier for the specific transaction for which details are being requested

Example responses

200 Response

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "transaction": [
      {
        "accountId": "string",
        "transactionId": "string",
        "isDetailAvailable": true,
        "type": "FEE",
        "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": "extendedDescription",
          "extendedDescription": "string",
          "serviceId": "X2P1.01"
        }
      }
    ]
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Responses

Status Meaning Description Schema
200 OK Success ResponseBankingTransactionDetail

Get Transactions For Multiple Accounts

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/transactions HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.com.au/cds-au/v1/banking/accounts/transactions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

GET /banking/accounts/transactions

Obtain transactions for multiple, filtered accounts

Parameters

Name In Type Required Description
open-status query string false Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed
is-owned query string false Filters accounts based on whether they are owned by the authorised customer
product-category query string false 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.
start-time query string(DateTimeString) false Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to current time. Format is aligned to DateTimeString common type
end-time query string(DateTimeString) false Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to start-time plus 100 days. Format is aligned to DateTimeString common type
min-amount query string(AmountString) false Filter transactions to only transactions with amounts higher or equal to than this amount
max-amount query string(AmountString) false Filter transactions to only transactions with amounts less than or equal to than this amount
text query string false 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
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Enumerated Values

Parameter Value
open-status OPEN
open-status CLOSED
open-status ALL
is-owned OWNED
is-owned NOT_OWNED
is-owned ALL
product-category PERS_AT_CALL_DEPOSITS
product-category BUS_AT_CALL_DEPOSITS
product-category TERM_DEPOSITS
product-category RESIDENTIAL_MORTGAGES
product-category PERS_CRED_AND_CHRG_CARDS
product-category BUS_CRED_AND_CHRG_CARDS
product-category PERS_LOANS
product-category PERS_LEASING
product-category BUS_LEASING
product-category TRADE_FINANCE
product-category PERS_OVERDRAFT
product-category BUS_OVERDRAFT
product-category BUS_LOANS
product-category FOREIGN_CURR_AT_CALL_DEPOSITS
product-category FOREIGN_CURR_TERM_DEPOSITS
product-category FOREIGN_CURR_LOAN
product-category FOREIGN_CURRRENCT_OVERDRAFT
product-category TRAVEL_CARD

Example responses

200 Response

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "transactions": [
      {
        "accountId": "string",
        "transactionId": "string",
        "isDetailAvailable": true,
        "type": "FEE",
        "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

Status Meaning Description Schema
200 OK Success ResponseBankingTransactions

Get Transactions For Specific Accounts

Code samples

POST https://data.provider.com.au/cds-au/v1/banking/accounts/transactions HTTP/1.1
Host: data.provider.com.au
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.com.au/cds-au/v1/banking/accounts/transactions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

POST /banking/accounts/transactions

Obtain transactions for a specified list of transactions.

Body parameter

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

Parameters

Name In Type Required Description
start-time query string(DateTimeString) false Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to current time. Format is aligned to DateTimeString common type
end-time query string(DateTimeString) false Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to start-time plus 100 days. Format is aligned to DateTimeString common type
min-amount query string(AmountString) false Filter transactions to only transactions with amounts higher or equal to than this amount
max-amount query string(AmountString) false Filter transactions to only transactions with amounts less than or equal to than this amount
text query string false 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
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)
body body RequestAccountIds true The list of account IDs to obtain information for

Example responses

200 Response

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "transactions": [
      {
        "accountId": "string",
        "transactionId": "string",
        "isDetailAvailable": true,
        "type": "FEE",
        "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

Status Meaning Description Schema
200 OK Success ResponseBankingTransactions
422 Unprocessable Entity The request was well formed but was unable to be processed due to business logic specific to the request ErrorList

Get Direct Debits For Account

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/{accountId}/direct-debits HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
accountId path string(ASCIIString) true ID of the account to get direct debit authorisations for. Must have previously been returned by one of the account list end points.
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Example responses

200 Response

{
  "data": {
    "directDebitAuthorisations": [
      {
        "accountId": "string",
        "authorisedEntity": {
          "name": "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

Status Meaning Description Schema
200 OK Success ResponseBankingDirectDebits

Get Bulk Direct Debits

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/accounts/direct-debits HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
is-owned query string false Filters accounts based on whether they are owned by the authorised customer
product-category query string false 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.
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Enumerated Values

Parameter Value
is-owned OWNED
is-owned NOT_OWNED
is-owned ALL
product-category PERS_AT_CALL_DEPOSITS
product-category BUS_AT_CALL_DEPOSITS
product-category TERM_DEPOSITS
product-category RESIDENTIAL_MORTGAGES
product-category PERS_CRED_AND_CHRG_CARDS
product-category BUS_CRED_AND_CHRG_CARDS
product-category PERS_LOANS
product-category PERS_LEASING
product-category BUS_LEASING
product-category TRADE_FINANCE
product-category PERS_OVERDRAFT
product-category BUS_OVERDRAFT
product-category BUS_LOANS
product-category FOREIGN_CURR_AT_CALL_DEPOSITS
product-category FOREIGN_CURR_TERM_DEPOSITS
product-category FOREIGN_CURR_LOAN
product-category FOREIGN_CURRRENCT_OVERDRAFT
product-category TRAVEL_CARD

Example responses

200 Response

{
  "data": {
    "directDebitAuthorisations": [
      {
        "accountId": "string",
        "authorisedEntity": {
          "name": "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

Status Meaning Description Schema
200 OK Success ResponseBankingDirectDebits

Get Direct Debits For Specific Accounts

Code samples

POST https://data.provider.com.au/cds-au/v1/banking/accounts/direct-debits HTTP/1.1
Host: data.provider.com.au
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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": {}
}

Parameters

Name In Type Required Description
body body RequestAccountIds true The list of account IDs to obtain information for

Example responses

200 Response

{
  "data": {
    "directDebitAuthorisations": [
      {
        "accountId": "string",
        "authorisedEntity": {
          "name": "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

Status Meaning Description Schema
200 OK Success ResponseBankingDirectDebits
422 Unprocessable Entity The request was well formed but was unable to be processed due to business logic specific to the request ErrorList

Get Payees

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/payees HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
type query string false 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
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Enumerated Values

Parameter Value
type DOMESTIC
type INTERNATIONAL
type BILLER

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success ResponseBankingPayees

Get Payee Detail

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/payees/{payeeId} HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
payeeId path string(ASCIIString) true The ID used to locate the details of a particular payee

Example responses

200 Response

{
  "data": {
    "payeeId": "string",
    "nickname": "string",
    "description": "string",
    "type": "DOMESTIC",
    "creationDate": "string",
    "payeeUType": "domestic",
    "domestic": {
      "payeeAccountUType": "account",
      "account": {
        "accountName": "string",
        "bsb": "string",
        "accountNumber": "string"
      },
      "card": {
        "cardNumber": "string"
      },
      "payId": {
        "name": "string",
        "identifier": "string",
        "type": "EMAIL"
      }
    },
    "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

Status Meaning Description Schema
200 OK Success ResponseBankingPayeeDetails

Get Products

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/products HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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:

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 provider to describe the product more fully using a web page hosted on their on 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 productCategory is a common field between accounts and products but there is not common linkage field specific to a product that appears within the account payloads.

Similarly, many of the fields and objects in the product payload will appear in the account detail payload but the full sets of options are not identical between the two entities.

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.

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.

Parameters

Name In Type Required Description
effective query string false 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. If absent defaults to 'CURRENT'
updated-since query string(DateTimeString) false Only include products that have been updated after the specified date and time. If absent defaults to include all products
brand query string false Filter results based on a specific brand
product-category query string false 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.
page query integer false Page of results to request (standard pagination)
page-size query integer false Page size to request. Default is 25 (standard pagination)

Enumerated Values

Parameter Value
effective CURRENT
effective FUTURE
effective ALL
product-category PERS_AT_CALL_DEPOSITS
product-category BUS_AT_CALL_DEPOSITS
product-category TERM_DEPOSITS
product-category RESIDENTIAL_MORTGAGES
product-category PERS_CRED_AND_CHRG_CARDS
product-category BUS_CRED_AND_CHRG_CARDS
product-category PERS_LOANS
product-category PERS_LEASING
product-category BUS_LEASING
product-category TRADE_FINANCE
product-category PERS_OVERDRAFT
product-category BUS_OVERDRAFT
product-category BUS_LOANS
product-category FOREIGN_CURR_AT_CALL_DEPOSITS
product-category FOREIGN_CURR_TERM_DEPOSITS
product-category FOREIGN_CURR_LOAN
product-category FOREIGN_CURRRENCT_OVERDRAFT
product-category TRAVEL_CARD

Example responses

200 Response

{
  "data": {
    "products": [
      {
        "productId": "string",
        "effectiveFrom": "string",
        "effectiveTo": "string",
        "lastUpdated": "string",
        "productCategory": "PERS_AT_CALL_DEPOSITS",
        "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

Status Meaning Description Schema
200 OK Success ResponseBankingProducts

Get Product Detail

Code samples

GET https://data.provider.com.au/cds-au/v1/banking/products/{productId} HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Parameters

Name In Type Required Description
productId path string(ASCIIString) true ID of the specific product requested

Example responses

200 Response

{
  "data": {
    "productId": "string",
    "effectiveFrom": "string",
    "effectiveTo": "string",
    "lastUpdated": "string",
    "productCategory": "PERS_AT_CALL_DEPOSITS",
    "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",
        "additionalInfoUri": "string",
        "productIds": [
          "string"
        ]
      }
    ],
    "features": [
      {
        "featureType": "CARD_ACCESS",
        "additionalValue": "string"
      }
    ],
    "constraints": [
      {
        "constraintType": "MIN_BALANCE",
        "additionalValue": "string"
      }
    ],
    "eligibility": [
      {
        "eligibilityType": "BUSINESS",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "fees": [
      {
        "name": "string",
        "feeType": "PERIODIC",
        "amount": "string",
        "balanceRate": "string",
        "transactionRate": "string",
        "currency": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string",
        "discounts": [
          {
            "description": "string",
            "discountType": "BALANCE",
            "amount": "string",
            "additionalValue": "string"
          }
        ]
      }
    ],
    "depositRates": [
      {
        "depositRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "lendingRates": [
      {
        "lendingRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ]
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Responses

Status Meaning Description Schema
200 OK Success ResponseBankingProduct

Common APIs

Get Customer

Code samples

GET https://data.provider.com.au/cds-au/v1/common/customer HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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

Example responses

200 Response

{
  "data": {
    "customerUType": "person",
    "person": {
      "lastUpdateTime": "string",
      "firstName": "string",
      "lastName": "string",
      "middleNames": [
        "string"
      ],
      "prefix": "string",
      "suffix": "string",
      "occupationCode": "string"
    },
    "organisation": {
      "lastUpdateTime": "string",
      "agentFirstName": "string",
      "agentLastName": "string",
      "agentRole": "string",
      "businessName": "string",
      "legalName": "string",
      "shortName": "string",
      "abn": "string",
      "acn": "string",
      "isACNCRegistered": true,
      "industryCode": "string",
      "organisationType": "SOLE_TRADER",
      "registeredCountry": "string",
      "establishmentDate": "string"
    }
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Responses

Status Meaning Description Schema
200 OK Success ResponseCommonCustomer

Get Customer Detail

Code samples

GET https://data.provider.com.au/cds-au/v1/common/customer/detail HTTP/1.1
Host: data.provider.com.au
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://data.provider.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.

Example responses

200 Response

{
  "data": {
    "customerUType": "person",
    "person": {
      "lastUpdateTime": "string",
      "firstName": "string",
      "lastName": "string",
      "middleNames": [
        "string"
      ],
      "prefix": "string",
      "suffix": "string",
      "occupationCode": "string",
      "phoneNumbers": [
        {
          "isPreferred": true,
          "purpose": "MOBILE",
          "countryCode": "string",
          "areaCode": "string",
          "number": "string",
          "extension": "string",
          "fullNumber": "string"
        }
      ],
      "emailAddresses": [
        {
          "isPreferred": true,
          "purpose": "WORK",
          "address": "string"
        }
      ],
      "physicalAddresses": [
        {
          "purpose": "REGISTERED",
          "addressUType": "simple",
          "simple": {
            "mailingName": "string",
            "addressLine1": "string",
            "addressLine2": "string",
            "addressLine3": "string",
            "postcode": "string",
            "city": "string",
            "state": "string",
            "country": "string"
          },
          "paf": {
            "dpid": "string",
            "thoroughfareNumber1": 0,
            "thoroughfareNumber1Suffix": "string",
            "thoroughfareNumber2": 0,
            "thoroughfareNumber2Suffix": "string",
            "flatUnitNumber": "string",
            "floorLevelNumber": "string",
            "lotNumber": 0,
            "buildingName1": "string",
            "buildingName2": "string",
            "streetName": "string",
            "streetType": "string",
            "streetSuffix": "string",
            "postalDeliveryType": "string",
            "postalDeliveryNumber": 0,
            "postalDeliveryNumberPrefix": "string",
            "postalDeliveryNumberSuffix": "string",
            "localityName": "string",
            "postcode": "string",
            "state": "string"
          }
        }
      ]
    },
    "organisation": {
      "lastUpdateTime": "string",
      "agentFirstName": "string",
      "agentLastName": "string",
      "agentRole": "string",
      "businessName": "string",
      "legalName": "string",
      "shortName": "string",
      "abn": "string",
      "acn": "string",
      "isACNCRegistered": true,
      "industryCode": "string",
      "organisationType": "SOLE_TRADER",
      "registeredCountry": "string",
      "establishmentDate": "string",
      "physicalAddresses": [
        {
          "purpose": "REGISTERED",
          "addressUType": "simple",
          "simple": {
            "mailingName": "string",
            "addressLine1": "string",
            "addressLine2": "string",
            "addressLine3": "string",
            "postcode": "string",
            "city": "string",
            "state": "string",
            "country": "string"
          },
          "paf": {
            "dpid": "string",
            "thoroughfareNumber1": 0,
            "thoroughfareNumber1Suffix": "string",
            "thoroughfareNumber2": 0,
            "thoroughfareNumber2Suffix": "string",
            "flatUnitNumber": "string",
            "floorLevelNumber": "string",
            "lotNumber": 0,
            "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

Status Meaning Description Schema
200 OK Success ResponseCommonCustomerDetailed

Shared Schemas

RequestAccountIds

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

Properties

Name Type Required Restrictions Description
data object true none none
» accountIds [string] true none none
meta Meta true none none

ResponseBankingProducts

{
  "data": {
    "products": [
      {
        "productId": "string",
        "effectiveFrom": "string",
        "effectiveTo": "string",
        "lastUpdated": "string",
        "productCategory": "PERS_AT_CALL_DEPOSITS",
        "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

Name Type Required Restrictions Description
data object true none none
» products [Product] true none none
links LinksPaginated true none none
meta MetaPaginated true none none

Product

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

Properties

Name Type Required Restrictions Description
productId string(ASCIIString) true none A provider 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.
effectiveFrom string(DateTimeString) false none 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
effectiveTo string(DateTimeString) false none 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
lastUpdated string(DateTimeString) true none 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)
productCategory EnumProductCategory true none The list of available product categories for categorising products and accounts
name string true none The display name of the product
description string true none A description of the product
brand string true none A label of the brand for the product. Able to be used for filtering. For data providers with single brands this value is still required
brandName string false none An optional display name of the brand
applicationUri string(URIString) false none A link to the an application web page where this product can be applied for.
isTailored boolean true none 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
additionalInformation object false none none
» overviewUri string(URIString) false none General overview of the product
» termsUri string(URIString) false none Terms and conditions for the product
» eligibilityUri string(URIString) false none Eligibility rules and criteria for the product
» feesAndPricingUri string(URIString) false none Description of fees, pricing, discounts, exemptions and bonuses for the product
» bundleUri string(URIString) false none Description of a bundle that this product can be part of

ResponseBankingProduct

{
  "data": {
    "productId": "string",
    "effectiveFrom": "string",
    "effectiveTo": "string",
    "lastUpdated": "string",
    "productCategory": "PERS_AT_CALL_DEPOSITS",
    "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",
        "additionalInfoUri": "string",
        "productIds": [
          "string"
        ]
      }
    ],
    "features": [
      {
        "featureType": "CARD_ACCESS",
        "additionalValue": "string"
      }
    ],
    "constraints": [
      {
        "constraintType": "MIN_BALANCE",
        "additionalValue": "string"
      }
    ],
    "eligibility": [
      {
        "eligibilityType": "BUSINESS",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "fees": [
      {
        "name": "string",
        "feeType": "PERIODIC",
        "amount": "string",
        "balanceRate": "string",
        "transactionRate": "string",
        "currency": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string",
        "discounts": [
          {
            "description": "string",
            "discountType": "BALANCE",
            "amount": "string",
            "additionalValue": "string"
          }
        ]
      }
    ],
    "depositRates": [
      {
        "depositRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "lendingRates": [
      {
        "lendingRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ]
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Properties

Name Type Required Restrictions Description
data ProductDetail true none none
links Links true none none
meta Meta true none none

ProductDetail

{
  "productId": "string",
  "effectiveFrom": "string",
  "effectiveTo": "string",
  "lastUpdated": "string",
  "productCategory": "PERS_AT_CALL_DEPOSITS",
  "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",
      "additionalInfoUri": "string",
      "productIds": [
        "string"
      ]
    }
  ],
  "features": [
    {
      "featureType": "CARD_ACCESS",
      "additionalValue": "string"
    }
  ],
  "constraints": [
    {
      "constraintType": "MIN_BALANCE",
      "additionalValue": "string"
    }
  ],
  "eligibility": [
    {
      "eligibilityType": "BUSINESS",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string"
    }
  ],
  "fees": [
    {
      "name": "string",
      "feeType": "PERIODIC",
      "amount": "string",
      "balanceRate": "string",
      "transactionRate": "string",
      "currency": "string",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string",
      "discounts": [
        {
          "description": "string",
          "discountType": "BALANCE",
          "amount": "string",
          "additionalValue": "string"
        }
      ]
    }
  ],
  "depositRates": [
    {
      "depositRateType": "FIXED",
      "rate": "string",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string"
    }
  ],
  "lendingRates": [
    {
      "lendingRateType": "FIXED",
      "rate": "string",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string"
    }
  ]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous Product false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» bundles [ProductBundles] false none none
» features [ProductFeatures] false none none
» constraints [ProductConstraints] false none none
» eligibility [ProductEligibility] false none none
» fees [ProductFees] false none none
» depositRates [ProductDepositRates] false none none
» lendingRates [ProductLendingRates] false none none

ProductBundles

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

Properties

Name Type Required Restrictions Description
name string true none Name of the bundle
description string true none Description of the bundle
additionalInfoUri string(URIString) false none Link to a web page with more information on the bundle criteria and benefits
productIds [string] true none Array of product IDs for products included in the bundle

ProductFeatures

{
  "featureType": "CARD_ACCESS",
  "additionalValue": "string"
}

Properties

Name Type Required Restrictions Description
featureType string true none The type of feature described
additionalValue string false none Generic field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of featureType

Enumerated Values

Property Value
featureType CARD_ACCESS
featureType ADDITIONAL_CARDS
featureType UNLIMITED_TXNS
featureType FREE_TXNS
featureType FREE_TXNS_ALLOWANCE
featureType LOYALTY_PROGRAM
featureType OFFSET
featureType OVERDRAFT
featureType REDRAW
featureType INSURANCE
featureType BALANCE_TRANSFERS
featureType INTEREST_FREE
featureType INTEREST_FREE_TRANSFERS
featureType DIGITAL_WALLET
featureType DIGITAL_BANKING
featureType NPP_PAYID
featureType NPP_ENABLED
featureType DONATE_INTEREST
featureType BILL_PAYMENT

ProductConstraints

{
  "constraintType": "MIN_BALANCE",
  "additionalValue": "string"
}

Properties

Name Type Required Restrictions Description
constraintType string true none The type of constraint described. See the next section for an overview of valid values and their meaning
additionalValue string false none Generic field containing additional information relevant to the constraintType specified. Whether mandatory or not is dependent on the value of constraintType

Enumerated Values

Property Value
constraintType MIN_BALANCE
constraintType OPENING_BALANCE
constraintType MAX_LIMIT
constraintType MIN_LIMIT

ProductEligibility

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

Properties

Name Type Required Restrictions Description
eligibilityType string true none The type of eligibility criteria described. See the next section for an overview of valid values and their meaning
additionalValue string false none Generic field containing additional information relevant to the eligibilityType specified. Whether mandatory or not is dependent on the value of eligibilityType
additionalInfo string false none Display text providing more information on the eligibility criteria. Mandatory if the eligibilityType field is set to OTHER
additionalInfoUri string(URIString) false none Link to a web page with more information on this eligibility criteria

Enumerated Values

Property Value
eligibilityType BUSINESS
eligibilityType PENSION_RECIPIENT
eligibilityType MIN_AGE
eligibilityType MAX_AGE
eligibilityType MIN_INCOME
eligibilityType MIN_TURNOVER
eligibilityType STAFF
eligibilityType STUDENT
eligibilityType EMPLOYMENT_STATUS
eligibilityType RESIDENCY_STATUS
eligibilityType OTHER

ProductFees

{
  "name": "string",
  "feeType": "PERIODIC",
  "amount": "string",
  "balanceRate": "string",
  "transactionRate": "string",
  "currency": "string",
  "additionalValue": "string",
  "additionalInfo": "string",
  "additionalInfoUri": "string",
  "discounts": [
    {
      "description": "string",
      "discountType": "BALANCE",
      "amount": "string",
      "additionalValue": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
name string true none Name of the fee
feeType string true none The type of fee
amount string(AmountString) false none The amount charged for the fee. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory
balanceRate string(RateString) false none A fee rate calculated based on a proportion of the balance. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory
transactionRate string(RateString) false none A fee rate calculated based on a proportion of a transaction. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory
currency string(CurrencyString) false none The currency the fee will be charged in. Assumes AUD if absent
additionalValue string false none Generic field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
additionalInfo string false none Display text providing more information on the fee
additionalInfoUri string(URIString) false none Link to a web page with more information on this fee
discounts [ProductDiscounts] false none none

Enumerated Values

Property Value
feeType PERIODIC
feeType TRANSACTION
feeType ESTABLISHMENT
feeType EXIT
feeType OVERDRAW
feeType MIN_BALANCE
feeType REDRAW
feeType CHEQUE_CASH
feeType CHEQUE_STOP
feeType CHEQUE_BOOK
feeType CARD_REPLACE
feeType PAPER_STATEMENT
feeType OTHER_EVENT

ProductDiscounts

{
  "description": "string",
  "discountType": "BALANCE",
  "amount": "string",
  "additionalValue": "string"
}

Properties

Name Type Required Restrictions Description
description string true none Description of the discount
discountType string true none The type of discount. See the next section for an overview of valid values and their meaning
amount string(AmountString) true none Value of the discount. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself
additionalValue string false none Generic field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType

Enumerated Values

Property Value
discountType BALANCE
discountType DEPOSITS
discountType PAYMENTS
discountType BUNDLE

ProductDepositRates

{
  "depositRateType": "FIXED",
  "rate": "string",
  "additionalValue": "string",
  "additionalInfo": "string",
  "additionalInfoUri": "string"
}

Properties

Name Type Required Restrictions Description
depositRateType string true none The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning
rate string(RateString) true none The rate to be applied
additionalValue string false none Generic field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
additionalInfo string false none Display text providing more information on the fee
additionalInfoUri string(URIString) false none Link to a web page with more information on this fee

Enumerated Values

Property Value
depositRateType FIXED
depositRateType BONUS
depositRateType BUNDLE_BONUS
depositRateType VARIABLE
depositRateType INTRODUCTORY

ProductLendingRates

{
  "lendingRateType": "FIXED",
  "rate": "string",
  "additionalValue": "string",
  "additionalInfo": "string",
  "additionalInfoUri": "string"
}

Properties

Name Type Required Restrictions Description
lendingRateType string true none The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning
rate string(RateString) true none The rate to be applied
additionalValue string false none Information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the Generic field containing additional information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the value of lendingRateType
additionalInfo string false none Display text providing more information on the fee.
additionalInfoUri string(URIString) false none Link to a web page with more information on this fee

Enumerated Values

Property Value
lendingRateType FIXED
lendingRateType INTRODUCTORY
lendingRateType DISCOUNT
lendingRateType PENALTY
lendingRateType BUNDLE_DISCOUNT
lendingRateType FLOATING
lendingRateType MARKET_LINKED
lendingRateType CASH_ADVANCE
lendingRateType VARIABLE
lendingRateType COMPARISON

ResponseBankingAccounts

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

Properties

Name Type Required Restrictions Description
data object true none none
» accounts [Account] true none none
links LinksPaginated true none none
meta MetaPaginated true none none

Account

{
  "accountId": "string",
  "displayName": "string",
  "nickname": "string",
  "maskedNumber": "string",
  "openStatus": "OPEN",
  "isOwned": "true",
  "productCategory": "PERS_AT_CALL_DEPOSITS",
  "productName": "string"
}

Properties

Name Type Required Restrictions Description
accountId string(ASCIIString) true none A unique ID of the account adhering to the standards for ID permanence
displayName string true none The display name of the account. If a customer provided nickname is available that value should be returned
nickname string false none A customer supplied nick name for the account
maskedNumber string(MaskedAccountString) true none A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number this should be formatted with each digit masked and the last three digits unmasked
openStatus string false none Open or closed status for the account. If not present then OPEN is assumed
isOwned boolean false none Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If no present then 'true' is assumed
productCategory EnumProductCategory true none The list of available product categories for categorising products and accounts
productName string true none A unique name or identifier for the account class for this account as defined by the account provider. Not expected to be used for display

Enumerated Values

Property Value
openStatus OPEN
openStatus CLOSED

ResponseBankingAccount

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "maskedNumber": "string",
    "openStatus": "OPEN",
    "isOwned": "true",
    "productCategory": "PERS_AT_CALL_DEPOSITS",
    "productName": "string",
    "bsb": "string",
    "accountNumber": "string",
    "bundleName": "string",
    "specificAccountUType": "termDeposit",
    "termDeposit": {
      "lodgementDate": "string",
      "maturityDate": "string",
      "maturityAmount": "string",
      "maturityCurrency": "string",
      "maturityInstructions": "ROLLED_OVER"
    },
    "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"
      ],
      "repaymentFrequency": "string",
      "repaymentType": "INTEREST_ONLY"
    },
    "features": [
      {
        "featureType": "CARD_ACCESS",
        "additionalValue": "string"
      }
    ],
    "fees": [
      {
        "name": "string",
        "feeType": "PERIODIC",
        "amount": "string",
        "balanceRate": "string",
        "transactionRate": "string",
        "currency": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string",
        "discounts": [
          {
            "description": "string",
            "discountType": "BALANCE",
            "amount": "string",
            "additionalValue": "string"
          }
        ]
      }
    ],
    "depositRates": [
      {
        "depositRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "lendingRates": [
      {
        "lendingRateType": "FIXED",
        "rate": "string",
        "additionalValue": "string",
        "additionalInfo": "string",
        "additionalInfoUri": "string"
      }
    ],
    "address": {
      "addressUType": "simple",
      "simple": {
        "mailingName": "string",
        "addressLine1": "string",
        "addressLine2": "string",
        "addressLine3": "string",
        "postcode": "string",
        "city": "string",
        "state": "string",
        "country": "string"
      },
      "paf": {
        "dpid": "string",
        "thoroughfareNumber1": 0,
        "thoroughfareNumber1Suffix": "string",
        "thoroughfareNumber2": 0,
        "thoroughfareNumber2Suffix": "string",
        "flatUnitNumber": "string",
        "floorLevelNumber": "string",
        "lotNumber": 0,
        "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

Name Type Required Restrictions Description
data AccountDetail true none none
links Links true none none
meta Meta true none none

AccountDetail

{
  "accountId": "string",
  "displayName": "string",
  "nickname": "string",
  "maskedNumber": "string",
  "openStatus": "OPEN",
  "isOwned": "true",
  "productCategory": "PERS_AT_CALL_DEPOSITS",
  "productName": "string",
  "bsb": "string",
  "accountNumber": "string",
  "bundleName": "string",
  "specificAccountUType": "termDeposit",
  "termDeposit": {
    "lodgementDate": "string",
    "maturityDate": "string",
    "maturityAmount": "string",
    "maturityCurrency": "string",
    "maturityInstructions": "ROLLED_OVER"
  },
  "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"
    ],
    "repaymentFrequency": "string",
    "repaymentType": "INTEREST_ONLY"
  },
  "features": [
    {
      "featureType": "CARD_ACCESS",
      "additionalValue": "string"
    }
  ],
  "fees": [
    {
      "name": "string",
      "feeType": "PERIODIC",
      "amount": "string",
      "balanceRate": "string",
      "transactionRate": "string",
      "currency": "string",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string",
      "discounts": [
        {
          "description": "string",
          "discountType": "BALANCE",
          "amount": "string",
          "additionalValue": "string"
        }
      ]
    }
  ],
  "depositRates": [
    {
      "depositRateType": "FIXED",
      "rate": "string",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string"
    }
  ],
  "lendingRates": [
    {
      "lendingRateType": "FIXED",
      "rate": "string",
      "additionalValue": "string",
      "additionalInfo": "string",
      "additionalInfoUri": "string"
    }
  ],
  "address": {
    "addressUType": "simple",
    "simple": {
      "mailingName": "string",
      "addressLine1": "string",
      "addressLine2": "string",
      "addressLine3": "string",
      "postcode": "string",
      "city": "string",
      "state": "string",
      "country": "string"
    },
    "paf": {
      "dpid": "string",
      "thoroughfareNumber1": 0,
      "thoroughfareNumber1Suffix": "string",
      "thoroughfareNumber2": 0,
      "thoroughfareNumber2Suffix": "string",
      "flatUnitNumber": "string",
      "floorLevelNumber": "string",
      "lotNumber": 0,
      "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

Name Type Required Restrictions Description
anonymous Account false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» bsb string false none The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces
» accountNumber string false none 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 string false none Optional field to indicate if this account is part of a bundle that is providing additional benefit for to the customer
» specificAccountUType string false none The type of structure to present account specific fields.
» termDeposit TermDepositAccount false none none
» creditCard CreditCardAccount false none none
» loan LoanAccount false none none
» features [AccountFeatures] false none none
» fees [AccountFees] false none none
» depositRates [AccountDepositRates] false none none
» lendingRates [AccountLendingRates] false none none
» address PhysicalAddress false none none

Enumerated Values

Property Value
specificAccountUType termDeposit
specificAccountUType creditCard
specificAccountUType loan

TermDepositAccount

{
  "lodgementDate": "string",
  "maturityDate": "string",
  "maturityAmount": "string",
  "maturityCurrency": "string",
  "maturityInstructions": "ROLLED_OVER"
}

Properties

Name Type Required Restrictions Description
lodgementDate string(DateString) true none The lodgement date of the original deposit
maturityDate string(DateString) true none Maturity date for the term deposit
maturityAmount string(AmountString) false none Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated
maturityCurrency string(CurrencyString) false none If absent assumes AUD
maturityInstructions string true none Current instructions on action to be taken at maturity

Enumerated Values

Property Value
maturityInstructions ROLLED_OVER
maturityInstructions PAID_OUT_AT_MATURITY

CreditCardAccount

{
  "minPaymentAmount": "string",
  "paymentDueAmount": "string",
  "paymentCurrency": "string",
  "paymentDueDate": "string"
}

Properties

Name Type Required Restrictions Description
minPaymentAmount string(AmountString) true none The minimum payment amount due for the next card payment
paymentDueAmount string(AmountString) true none The amount due for the next card payment
paymentCurrency string(CurrencyString) false none If absent assumes AUD
paymentDueDate string(DateString) true none Date that the next payment for the card is due

LoanAccount

{
  "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"
  ],
  "repaymentFrequency": "string",
  "repaymentType": "INTEREST_ONLY"
}

Properties

Name Type Required Restrictions Description
originalStartDate string(DateString) false none Optional original start date for the loan
originalLoanAmount string(AmountString) false none Optional original loan value
originalLoanCurrency string(CurrencyString) false none If absent assumes AUD
loanEndDate string(DateString) false none Date that the loan is due to be repaid in full
nextInstalmentDate string(DateString) false none Next date that an instalment is required
minInstalmentAmount string(AmountString) false none Minimum amount of next instalment
minInstalmentCurrency string(CurrencyString) false none If absent assumes AUD
maxRedraw string(AmountString) false none Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account
maxRedrawCurrency string(CurrencyString) false none If absent assumes AUD
minRedraw string(AmountString) false none Minimum redraw amount
minRedrawCurrency string(CurrencyString) false none If absent assumes AUD
offsetAccountEnabled boolean false none Set to true if one or more offset accounts are configured for this loan account
offsetAccountIds [string] false none The accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accesses 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
repaymentFrequency string false none The expected or required repayment frequency. Formatted according to ISO 8601 Durations
repaymentType string false none Options in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST

Enumerated Values

Property Value
repaymentType INTEREST_ONLY
repaymentType PRINCIPAL_AND_INTEREST

AccountFeatures

{
  "featureType": "CARD_ACCESS",
  "additionalValue": "string"
}

Properties

Name Type Required Restrictions Description
featureType string true none The type of feature described
additionalValue string false none Generic field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of featureType

Enumerated Values

Property Value
featureType CARD_ACCESS
featureType ADDITIONAL_CARDS
featureType UNLIMITED_TXNS
featureType FREE_TXNS
featureType FREE_TXNS_ALLOWANCE
featureType LOYALTY_PROGRAM
featureType OFFSET
featureType OVERDRAFT
featureType REDRAW
featureType INSURANCE
featureType BALANCE_TRANSFERS
featureType INTEREST_FREE
featureType INTEREST_FREE_TRANSFERS
featureType DIGITAL_WALLET
featureType DIGITAL_BANKING
featureType NPP_PAYID
featureType NPP_ENABLED
featureType DONATE_INTEREST
featureType BILL_PAYMENT

AccountFees

{
  "name": "string",
  "feeType": "PERIODIC",
  "amount": "string",
  "balanceRate": "string",
  "transactionRate": "string",
  "currency": "string",
  "additionalValue": "string",
  "additionalInfo": "string",
  "additionalInfoUri": "string",
  "discounts": [
    {
      "description": "string",
      "discountType": "BALANCE",
      "amount": "string",
      "additionalValue": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
name string true none Name of the fee
feeType string true none The type of fee
amount string(AmountString) false none The amount charged for the fee. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory
balanceRate string(RateString) false none A fee rate calculated based on a proportion of the balance. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory
transactionRate string(RateString) false none A fee rate calculated based on a proportion of a transaction. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory
currency string(CurrencyString) false none The currency the fee will be charged in. Assumes AUD if absent
additionalValue string false none Generic field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
additionalInfo string false none Display text providing more information on the fee
additionalInfoUri string(URIString) false none Link to a web page with more information on this fee
discounts [AccountDiscounts] false none none

Enumerated Values

Property Value
feeType PERIODIC
feeType TRANSACTION
feeType EXIT
feeType OVERDRAW
feeType MIN_BALANCE
feeType REDRAW
feeType CHEQUE_CASH
feeType CHEQUE_STOP
feeType CHEQUE_BOOK
feeType CARD_REPLACE
feeType PAPER_STATEMENT
feeType OTHER_EVENT

AccountDiscounts

{
  "description": "string",
  "discountType": "BALANCE",
  "amount": "string",
  "additionalValue": "string"
}

Properties

Name Type Required Restrictions Description
description string true none Description of the discount
discountType string true none The type of discount. See the next section for an overview of valid values and their meaning
amount string(AmountString) true none Value of the discount. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself
additionalValue string false none Generic field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType

Enumerated Values

Property Value
discountType BALANCE
discountType DEPOSITS
discountType PAYMENTS
discountType BUNDLE

AccountDepositRates

{
  "depositRateType": "FIXED",
  "rate": "string",
  "additionalValue": "string",
  "additionalInfo": "string",
  "additionalInfoUri": "string"
}

Properties

Name Type Required Restrictions Description
depositRateType string true none The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning
rate string(RateString) true none The rate to be applied
additionalValue string false none Generic field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
additionalInfo string false none Display text providing more information on the fee
additionalInfoUri string(URIString) false none Link to a web page with more information on this fee

Enumerated Values

Property Value
depositRateType FIXED
depositRateType BONUS
depositRateType BUNDLE_BONUS
depositRateType VARIABLE
depositRateType INTRODUCTORY

AccountLendingRates

{
  "lendingRateType": "FIXED",
  "rate": "string",
  "additionalValue": "string",
  "additionalInfo": "string",
  "additionalInfoUri": "string"
}

Properties

Name Type Required Restrictions Description
lendingRateType string true none The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning
rate string(RateString) true none The rate to be applied
additionalValue string false none Information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the Generic field containing additional information relevant to the lendingRateType specified. Whether mandatory or not is dependent on the value of lendingRateType
additionalInfo string false none Display text providing more information on the fee.
additionalInfoUri string(URIString) false none Link to a web page with more information on this fee

Enumerated Values

Property Value
lendingRateType FIXED
lendingRateType INTRODUCTORY
lendingRateType DISCOUNT
lendingRateType PENALTY
lendingRateType BUNDLE_DISCOUNT
lendingRateType FLOATING
lendingRateType MARKET_LINKED
lendingRateType CASH_ADVANCE
lendingRateType VARIABLE
lendingRateType COMPARISON

ResponseBankingTransactions

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "transactions": [
      {
        "accountId": "string",
        "transactionId": "string",
        "isDetailAvailable": true,
        "type": "FEE",
        "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

Name Type Required Restrictions Description
data object true none none
» accountId string(ASCIIString) false none ID of the account for which transactions are provided
» displayName string false none 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 string false none A customer supplied nick name for the account
» transactions [Transaction] true none none
links LinksPaginated true none none
meta MetaPaginated true none none

Transaction

{
  "accountId": "string",
  "transactionId": "string",
  "isDetailAvailable": true,
  "type": "FEE",
  "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

Name Type Required Restrictions Description
accountId string(ASCIIString) true none A unique ID of the account adhering to the standards for ID permanence
transactionId string(ASCIIString) false none 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
isDetailAvailable boolean true none True if extended information is available using the transaction detail end point. False if extended data is not available
type string true none The type of the transaction
status string true none Status of the transaction whether pending or posted. Note that there is currently no provision in the standards to gaurantee the ability to correlate a pending transaction with an associated posted transaction
description string true none The transaction description as applied by the financial institution
postingDateTime string(DateTimeString) false none 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
valueDateTime string(DateTimeString) false none 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
executionDateTime string(DateTimeString) false none The time the transaction was executed by the originating customer, if available
amount string(AmountString) false none The value of the transaction. Negative values mean money was outgoing from the account
currency string(CurrencyString) false none The currency for the transaction amount. AUD assumed if not present
reference string true none The reference for the transaction provided by the originating institution. Empty string if no data provided
merchantName string false none Name of the merchant for an outgoing payment to a merchant
merchantCategoryCode string false none The merchant category code (or MCC) for an outgoing payment to a merchant
billerCode string false none BPay Biller Code for the transaction (if available)
billerName string false none Name of the BPay biller for the transaction (if available)
crn string false none BPay CRN for the transaction (if available)
apcaNumber string false none 6 Digit APCA number for the initiating institution

Enumerated Values

Property Value
type FEE
type INTEREST_CHARGED
type INTEREST_PAID
type TRANSFER_OUTGOING
type TRANSFER_INCOMING
type PAYMENT
type OTHER
status PENDING
status POSTED

ResponseBankingTransactionDetail

{
  "data": {
    "accountId": "string",
    "displayName": "string",
    "nickname": "string",
    "transaction": [
      {
        "accountId": "string",
        "transactionId": "string",
        "isDetailAvailable": true,
        "type": "FEE",
        "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": "extendedDescription",
          "extendedDescription": "string",
          "serviceId": "X2P1.01"
        }
      }
    ]
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Properties

Name Type Required Restrictions Description
data object true none none
» accountId string(ASCIIString) true none ID of the account for which transactions are provided
» displayName string true none 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 string false none A customer supplied nick name for the account
» transaction [TransactionDetail] true none none
links Links true none none
meta Meta true none none

TransactionDetail

{
  "accountId": "string",
  "transactionId": "string",
  "isDetailAvailable": true,
  "type": "FEE",
  "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": "extendedDescription",
    "extendedDescription": "string",
    "serviceId": "X2P1.01"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous Transaction false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» extendedData object true none none
»» payer string false none Name or description of the originating payer. Mandatory for inbound payment
»» payee string false none Name or description of the target payee. Mandatory for an outbound payment
»» extensionUType string false none Optional extended data provided specific to transaction originated via NPP
»» extendedDescription string false none An extended string description. Only present if specified by the extensionUType field
»» serviceId string false none Identifier of the applicable NPP payment service

Enumerated Values

Property Value
extensionUType extendedDescription
serviceId X2P1.01

ResponseBankingAccountsBalances

{
  "data": {
    "balances": [
      {
        "accountId": "string",
        "balanceUType": "deposit",
        "deposit": {
          "currentBalance": {
            "amount": "string",
            "currency": "string"
          },
          "availableBalance": {
            "amount": "string",
            "currency": "string"
          }
        },
        "lending": {
          "accountBalance": {
            "amount": "string",
            "currency": "string"
          },
          "availableBalance": {
            "amount": "string",
            "currency": "string"
          },
          "creditLimit": {
            "amount": "string",
            "currency": "string"
          },
          "amortisedLimit": {
            "amount": "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

Name Type Required Restrictions Description
data object true none none
» balances [Balance] true none none
links LinksPaginated true none none
meta MetaPaginated true none none

Balance

{
  "accountId": "string",
  "balanceUType": "deposit",
  "deposit": {
    "currentBalance": {
      "amount": "string",
      "currency": "string"
    },
    "availableBalance": {
      "amount": "string",
      "currency": "string"
    }
  },
  "lending": {
    "accountBalance": {
      "amount": "string",
      "currency": "string"
    },
    "availableBalance": {
      "amount": "string",
      "currency": "string"
    },
    "creditLimit": {
      "amount": "string",
      "currency": "string"
    },
    "amortisedLimit": {
      "amount": "string",
      "currency": "string"
    }
  },
  "purses": [
    {
      "amount": "string",
      "currency": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
accountId string(ASCIIString) true none A unique ID of the account adhering to the standards for ID permanence
balanceUType string true none The type of balance object provided for the account
deposit DepositBalance false none none
lending LendingBalance false none none
purses [CurrencyAmount] false none none

Enumerated Values

Property Value
balanceUType deposit
balanceUType lending
balanceUType purses

DepositBalance

{
  "currentBalance": {
    "amount": "string",
    "currency": "string"
  },
  "availableBalance": {
    "amount": "string",
    "currency": "string"
  }
}

Properties

Name Type Required Restrictions Description
currentBalance CurrencyAmount true none none
availableBalance CurrencyAmount true none none

LendingBalance

{
  "accountBalance": {
    "amount": "string",
    "currency": "string"
  },
  "availableBalance": {
    "amount": "string",
    "currency": "string"
  },
  "creditLimit": {
    "amount": "string",
    "currency": "string"
  },
  "amortisedLimit": {
    "amount": "string",
    "currency": "string"
  }
}

Properties

Name Type Required Restrictions Description
accountBalance CurrencyAmount true none none
availableBalance CurrencyAmount true none none
creditLimit CurrencyAmount true none none
amortisedLimit CurrencyAmount false none none

CurrencyAmount

{
  "amount": "string",
  "currency": "string"
}

Properties

Name Type Required Restrictions Description
amount string(AmountString) true none The current balance of the account at this time. Should align to the current balance available via other channels such as ATM balance enquiry or Internet Banking
currency string(CurrencyString) false none If not present assumes AUD

ResponseBankingPayees

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

Properties

Name Type Required Restrictions Description
data object true none none
» payees [Payee] true none The list of payees returned
links LinksPaginated true none none
meta MetaPaginated true none none

ResponseBankingPayeeDetails

{
  "data": {
    "payeeId": "string",
    "nickname": "string",
    "description": "string",
    "type": "DOMESTIC",
    "creationDate": "string",
    "payeeUType": "domestic",
    "domestic": {
      "payeeAccountUType": "account",
      "account": {
        "accountName": "string",
        "bsb": "string",
        "accountNumber": "string"
      },
      "card": {
        "cardNumber": "string"
      },
      "payId": {
        "name": "string",
        "identifier": "string",
        "type": "EMAIL"
      }
    },
    "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

Name Type Required Restrictions Description
data PayeeDetail true none none
links Links true none none
meta Meta true none none

Payee

{
  "payeeId": "string",
  "nickname": "string",
  "description": "string",
  "type": "DOMESTIC",
  "creationDate": "string"
}

Properties

Name Type Required Restrictions Description
payeeId string(ASCIIString) true none ID of the payee adhering to the rules of ID permanence
nickname string true none The short display name of the payee as provided by the customer
description string false none A description of the payee provided by the customer
type string true none 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
creationDate string(DateString) false none The date the payee was created by the customer

Enumerated Values

Property Value
type DOMESTIC
type INTERNATIONAL
type BILLER

PayeeDetail

{
  "payeeId": "string",
  "nickname": "string",
  "description": "string",
  "type": "DOMESTIC",
  "creationDate": "string",
  "payeeUType": "domestic",
  "domestic": {
    "payeeAccountUType": "account",
    "account": {
      "accountName": "string",
      "bsb": "string",
      "accountNumber": "string"
    },
    "card": {
      "cardNumber": "string"
    },
    "payId": {
      "name": "string",
      "identifier": "string",
      "type": "EMAIL"
    }
  },
  "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

Name Type Required Restrictions Description
anonymous Payee false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» payeeUType string true none Type of object included that describes the payee in detail
» domestic DomesticPayee false none none
» biller BillerPayee false none none
» international InternationalPayee false none none

Enumerated Values

Property Value
payeeUType domestic
payeeUType biller
payeeUType international

DomesticPayee

{
  "payeeAccountUType": "account",
  "account": {
    "accountName": "string",
    "bsb": "string",
    "accountNumber": "string"
  },
  "card": {
    "cardNumber": "string"
  },
  "payId": {
    "name": "string",
    "identifier": "string",
    "type": "EMAIL"
  }
}

Properties

Name Type Required Restrictions Description
payeeAccountUType string true none Type of account object included. Valid values are: { payeeAccountUType - - account A standard Australian account defined by BSB/Account Number payId A PayID recognised by NPP
account DomesticPayeeAccount false none none
card DomesticPayeeCard false none none
payId DomesticPayeePayId false none none

Enumerated Values

Property Value
payeeAccountUType account
payeeAccountUType card
payeeAccountUType payId

DomesticPayeeAccount

{
  "accountName": "string",
  "bsb": "string",
  "accountNumber": "string"
}

Properties

Name Type Required Restrictions Description
accountName string true none Name of the account to pay to
bsb string true none BSB of the account to pay to
accountNumber string true none Number of the account to pay to

DomesticPayeeCard

{
  "cardNumber": "string"
}

Properties

Name Type Required Restrictions Description
cardNumber string(MaskedPANString) true none Name of the account to pay to

DomesticPayeePayId

{
  "name": "string",
  "identifier": "string",
  "type": "EMAIL"
}

Properties

Name Type Required Restrictions Description
name string false none The name assigned to the PayID by the owner of the PayID
identifier string true none The identifier of the PayID (dependent on type)
type string true none The type of the PayID

Enumerated Values

Property Value
type EMAIL
type MOBILE
type ORG_NUMBER
type ORG_NAME

BillerPayee

{
  "billerCode": "string",
  "crn": "string",
  "billerName": "string"
}

Properties

Name Type Required Restrictions Description
billerCode string true none BPay Biller Code of the Biller
crn string false none BPay CRN of the Biller. If the contents of the CRN match the format of a Credit Card PAN then it should be masked using the rules applicable for the MaskedPANString common type
billerName string true none Name of the Biller

InternationalPayee

{
  "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

Name Type Required Restrictions Description
beneficiaryDetails object true none none
» name string false none Name of the beneficiary
» country string true none Country where the beneficiary resides. A valid ISO 3166 Alpha-3 country code
» message string false none Response message for the payment
bankDetails object true none none
» country string true none Country of the recipient institution. A valid ISO 3166 Alpha-3 country code
» accountNumber string true none Account Targeted for payment
» bankAddress object false none none
»» name string true none Name of the recipient Bank
»» address string true none Address of the recipient Bank
» beneficiaryBankBIC string false none Swift bank code. Aligns with standard ISO 9362
» fedWireNumber string false none Number for Fedwire payment (Federal Reserve Wire Network)
» sortCode string false none Sort code used for account identification in some jurisdictions
» chipNumber string false none Number for the Clearing House Interbank Payments System
» routingNumber string false none International bank routing number
» legalEntityIdentifier string false none The legal entity identifier (LEI) for the beneficiary. Aligns with ISO 17442

ResponseBankingDirectDebits

{
  "data": {
    "directDebitAuthorisations": [
      {
        "accountId": "string",
        "authorisedEntity": {
          "name": "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

Name Type Required Restrictions Description
data object true none none
» directDebitAuthorisations [DirectDebits] true none The list of authorisations returned
links LinksPaginated true none none
meta MetaPaginated true none none

DirectDebits

{
  "accountId": "string",
  "authorisedEntity": {
    "name": "string",
    "financialInstitution": "string",
    "abn": "string",
    "acn": "string",
    "arbn": "string"
  },
  "lastDebitDateTime": "string",
  "lastDebitAmount": "string"
}

Properties

Name Type Required Restrictions Description
accountId string(ASCIIString) true none A unique ID of the account adhering to the standards for ID permanence.
authorisedEntity AuthorisedEntity false none none
lastDebitDateTime string(DateTimeString) false none The date and time of the last debit executed under this authorisation
lastDebitAmount string(AmountString) false none The amount of the last debit executed under this authorisation

AuthorisedEntity

{
  "name": "string",
  "financialInstitution": "string",
  "abn": "string",
  "acn": "string",
  "arbn": "string"
}

Properties

Name Type Required Restrictions Description
name string true none Name of the authorised entity
financialInstitution string true none Name of the financial institution through which the direct debit will be executed
abn string false none Australian Business Number for the authorised entity
acn string false none Australian Business Number for the authorised entity
arbn string false none Australian Registered Body Number for the authorised entity

ResponseCommonCustomer

{
  "data": {
    "customerUType": "person",
    "person": {
      "lastUpdateTime": "string",
      "firstName": "string",
      "lastName": "string",
      "middleNames": [
        "string"
      ],
      "prefix": "string",
      "suffix": "string",
      "occupationCode": "string"
    },
    "organisation": {
      "lastUpdateTime": "string",
      "agentFirstName": "string",
      "agentLastName": "string",
      "agentRole": "string",
      "businessName": "string",
      "legalName": "string",
      "shortName": "string",
      "abn": "string",
      "acn": "string",
      "isACNCRegistered": true,
      "industryCode": "string",
      "organisationType": "SOLE_TRADER",
      "registeredCountry": "string",
      "establishmentDate": "string"
    }
  },
  "links": {
    "self": "string"
  },
  "meta": {}
}

Properties

Name Type Required Restrictions Description
data object true none none
» customerUType string true none The type of customer object that is present
» person Person false none none
» organisation Organisation false none none
links Links true none none
meta Meta true none none

Enumerated Values

Property Value
customerUType person
customerUType organisation

ResponseCommonCustomerDetailed

{
  "data": {
    "customerUType": "person",
    "person": {
      "lastUpdateTime": "string",
      "firstName": "string",
      "lastName": "string",
      "middleNames": [
        "string"
      ],
      "prefix": "string",
      "suffix": "string",
      "occupationCode": "string",
      "phoneNumbers": [
        {
          "isPreferred": true,
          "purpose": "MOBILE",
          "countryCode": "string",
          "areaCode": "string",
          "number": "string",
          "extension": "string",
          "fullNumber": "string"
        }
      ],
      "emailAddresses": [
        {
          "isPreferred": true,
          "purpose": "WORK",
          "address": "string"
        }
      ],
      "physicalAddresses": [
        {
          "purpose": "REGISTERED",
          "addressUType": "simple",
          "simple": {
            "mailingName": "string",
            "addressLine1": "string",
            "addressLine2": "string",
            "addressLine3": "string",
            "postcode": "string",
            "city": "string",
            "state": "string",
            "country": "string"
          },
          "paf": {
            "dpid": "string",
            "thoroughfareNumber1": 0,
            "thoroughfareNumber1Suffix": "string",
            "thoroughfareNumber2": 0,
            "thoroughfareNumber2Suffix": "string",
            "flatUnitNumber": "string",
            "floorLevelNumber": "string",
            "lotNumber": 0,
            "buildingName1": "string",
            "buildingName2": "string",
            "streetName": "string",
            "streetType": "string",
            "streetSuffix": "string",
            "postalDeliveryType": "string",
            "postalDeliveryNumber": 0,
            "postalDeliveryNumberPrefix": "string",
            "postalDeliveryNumberSuffix": "string",
            "localityName": "string",
            "postcode": "string",
            "state": "string"
          }
        }
      ]
    },
    "organisation": {
      "lastUpdateTime": "string",
      "agentFirstName": "string",
      "agentLastName": "string",
      "agentRole": "string",
      "businessName": "string",
      "legalName": "string",
      "shortName": "string",
      "abn": "string",
      "acn": "string",
      "isACNCRegistered": true,
      "industryCode": "string",
      "organisationType": "SOLE_TRADER",
      "registeredCountry": "string",
      "establishmentDate": "string",
      "physicalAddresses": [
        {
          "purpose": "REGISTERED",
          "addressUType": "simple",
          "simple": {
            "mailingName": "string",
            "addressLine1": "string",
            "addressLine2": "string",
            "addressLine3": "string",
            "postcode": "string",
            "city": "string",
            "state": "string",
            "country": "string"
          },
          "paf": {
            "dpid": "string",
            "thoroughfareNumber1": 0,
            "thoroughfareNumber1Suffix": "string",
            "thoroughfareNumber2": 0,
            "thoroughfareNumber2Suffix": "string",
            "flatUnitNumber": "string",
            "floorLevelNumber": "string",
            "lotNumber": 0,
            "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

Name Type Required Restrictions Description
data object true none none
» customerUType string true none The type of customer object that is present
» person PersonDetail false none none
» organisation OrganisationDetail false none none
links Links true none none
meta Meta true none none

Enumerated Values

Property Value
customerUType person
customerUType organisation

Person

{
  "lastUpdateTime": "string",
  "firstName": "string",
  "lastName": "string",
  "middleNames": [
    "string"
  ],
  "prefix": "string",
  "suffix": "string",
  "occupationCode": "string"
}

Properties

Name Type Required Restrictions Description
lastUpdateTime string(DateTimeString) true none 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
firstName string false none For people with single names this field need not be present. The single name should be in the lastName field
lastName string true none For people with single names the single name should be in this field
middleNames [string] true none Field is mandatory but array may be empty
prefix string false none Also known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)
suffix string false none Used for a trailing suffix to the name (e.g. Jr)
occupationCode string false none Value is a valid ANZCO v1.2 Standard Occupation classification.

PersonDetail

{
  "lastUpdateTime": "string",
  "firstName": "string",
  "lastName": "string",
  "middleNames": [
    "string"
  ],
  "prefix": "string",
  "suffix": "string",
  "occupationCode": "string",
  "phoneNumbers": [
    {
      "isPreferred": true,
      "purpose": "MOBILE",
      "countryCode": "string",
      "areaCode": "string",
      "number": "string",
      "extension": "string",
      "fullNumber": "string"
    }
  ],
  "emailAddresses": [
    {
      "isPreferred": true,
      "purpose": "WORK",
      "address": "string"
    }
  ],
  "physicalAddresses": [
    {
      "purpose": "REGISTERED",
      "addressUType": "simple",
      "simple": {
        "mailingName": "string",
        "addressLine1": "string",
        "addressLine2": "string",
        "addressLine3": "string",
        "postcode": "string",
        "city": "string",
        "state": "string",
        "country": "string"
      },
      "paf": {
        "dpid": "string",
        "thoroughfareNumber1": 0,
        "thoroughfareNumber1Suffix": "string",
        "thoroughfareNumber2": 0,
        "thoroughfareNumber2Suffix": "string",
        "flatUnitNumber": "string",
        "floorLevelNumber": "string",
        "lotNumber": 0,
        "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

Name Type Required Restrictions Description
anonymous Person false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» phoneNumbers [PhoneNumber] true none At least one record is required
» emailAddresses [EmailAddress] true none May be empty
» physicalAddresses [PhysicalAddressWithPurpose] true none 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

Organisation

{
  "lastUpdateTime": "string",
  "agentFirstName": "string",
  "agentLastName": "string",
  "agentRole": "string",
  "businessName": "string",
  "legalName": "string",
  "shortName": "string",
  "abn": "string",
  "acn": "string",
  "isACNCRegistered": true,
  "industryCode": "string",
  "organisationType": "SOLE_TRADER",
  "registeredCountry": "string",
  "establishmentDate": "string"
}

Properties

Name Type Required Restrictions Description
lastUpdateTime string(DateTimeString) true none 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
agentFirstName string false none 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 string true none 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 string true none 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 string true none Name of the organisation
legalName string false none Legal name, if different to the business name
shortName string false none Short name used for communication, if different to the business name
abn string false none Australian Business Number for the organisation
acn string false none Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type
isACNCRegistered boolean false none True if registered with the ACNC. False if not. Absent or null if not confirmed.
industryCode string false none ANZSIC (2006) code for the organisation.
organisationType string true none Legal organisation type
registeredCountry string false none Enumeration with values from ISO 3166 Alpha-3 country codes. Assumed to be AUS if absent
establishmentDate string(DateString) false none The date the organisation described was established

Enumerated Values

Property Value
organisationType SOLE_TRADER
organisationType COMPANY
organisationType PARTNERSHIP
organisationType TRUST
organisationType GOVERNMENT_ENTITY
organisationType OTHER

OrganisationDetail

{
  "lastUpdateTime": "string",
  "agentFirstName": "string",
  "agentLastName": "string",
  "agentRole": "string",
  "businessName": "string",
  "legalName": "string",
  "shortName": "string",
  "abn": "string",
  "acn": "string",
  "isACNCRegistered": true,
  "industryCode": "string",
  "organisationType": "SOLE_TRADER",
  "registeredCountry": "string",
  "establishmentDate": "string",
  "physicalAddresses": [
    {
      "purpose": "REGISTERED",
      "addressUType": "simple",
      "simple": {
        "mailingName": "string",
        "addressLine1": "string",
        "addressLine2": "string",
        "addressLine3": "string",
        "postcode": "string",
        "city": "string",
        "state": "string",
        "country": "string"
      },
      "paf": {
        "dpid": "string",
        "thoroughfareNumber1": 0,
        "thoroughfareNumber1Suffix": "string",
        "thoroughfareNumber2": 0,
        "thoroughfareNumber2Suffix": "string",
        "flatUnitNumber": "string",
        "floorLevelNumber": "string",
        "lotNumber": 0,
        "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

Name Type Required Restrictions Description
anonymous Organisation false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» physicalAddresses [PhysicalAddressWithPurpose] true none 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

PhoneNumber

{
  "isPreferred": true,
  "purpose": "MOBILE",
  "countryCode": "string",
  "areaCode": "string",
  "number": "string",
  "extension": "string",
  "fullNumber": "string"
}

Properties

Name Type Required Restrictions Description
isPreferred boolean false none Required to be true for one and only one entry to indicate the preferred phone number. Assumed to be 'false' if not present
purpose string true none The purpose of the number as specified by the customer
countryCode string false none If absent, assumed to be Australia (+61). The + should be included
areaCode string false none Required for non Mobile Phones, if field is present and refers to Australian code - the leading 0 should be omitted.
number string true none The actual phone number, with leading zeros as appropriate
extension string false none An extension number (if applicable)
fullNumber string true none Fully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of RFC 3966

Enumerated Values

Property Value
purpose MOBILE
purpose HOME
purpose WORK
purpose OTHER
purpose INTERNATIONAL
purpose UNSPECIFIED

EmailAddress

{
  "isPreferred": true,
  "purpose": "WORK",
  "address": "string"
}

Properties

Name Type Required Restrictions Description
isPreferred boolean true none Required for one and only one email record in the collection. Denotes the default email address
purpose string true none The purpose for the email, as specified by the customer (Enumeration)
address string true none A correctly formatted email address, as defined by the addr_spec format in RFC_5322

Enumerated Values

Property Value
purpose WORK
purpose HOME
purpose OTHER
purpose UNSPECIFIED

PhysicalAddressWithPurpose

{
  "purpose": "REGISTERED",
  "addressUType": "simple",
  "simple": {
    "mailingName": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "addressLine3": "string",
    "postcode": "string",
    "city": "string",
    "state": "string",
    "country": "string"
  },
  "paf": {
    "dpid": "string",
    "thoroughfareNumber1": 0,
    "thoroughfareNumber1Suffix": "string",
    "thoroughfareNumber2": 0,
    "thoroughfareNumber2Suffix": "string",
    "flatUnitNumber": "string",
    "floorLevelNumber": "string",
    "lotNumber": 0,
    "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

Name Type Required Restrictions Description
anonymous object false none none
» purpose string true none Enumeration of values indicating the purpose of the physical address

and

Name Type Required Restrictions Description
anonymous PhysicalAddress false none none

Enumerated Values

Property Value
purpose REGISTERED
purpose MAIL
purpose PHYSICAL
purpose WORK
purpose OTHER

PhysicalAddress

{
  "addressUType": "simple",
  "simple": {
    "mailingName": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "addressLine3": "string",
    "postcode": "string",
    "city": "string",
    "state": "string",
    "country": "string"
  },
  "paf": {
    "dpid": "string",
    "thoroughfareNumber1": 0,
    "thoroughfareNumber1Suffix": "string",
    "thoroughfareNumber2": 0,
    "thoroughfareNumber2Suffix": "string",
    "flatUnitNumber": "string",
    "floorLevelNumber": "string",
    "lotNumber": 0,
    "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

Name Type Required Restrictions Description
addressUType string true none The type of address object present
simple SimpleAddress false none none
paf PAFAddress false none Australian address formatted according to the file format defined by the PAF file format

Enumerated Values

Property Value
addressUType simple
addressUType paf

SimpleAddress

{
  "mailingName": "string",
  "addressLine1": "string",
  "addressLine2": "string",
  "addressLine3": "string",
  "postcode": "string",
  "city": "string",
  "state": "string",
  "country": "string"
}

Properties

Name Type Required Restrictions Description
mailingName string false none Name of the individual or business formatted for inclusion in an address used for physical mail
addressLine1 string true none First line of the standard address object
addressLine2 string false none Second line of the standard address object
addressLine3 string false none Third line of the standard address object
postcode string false none Mandatory for Australian addresses
city string true none Name of the city or locality
state string true none Free text if the country is not Australia. If country is Australia then must be one of the values defined by the ISO 3166:AU standard
country string false none A valid ISO 3166 Alpha-3 country code

PAFAddress

{
  "dpid": "string",
  "thoroughfareNumber1": 0,
  "thoroughfareNumber1Suffix": "string",
  "thoroughfareNumber2": 0,
  "thoroughfareNumber2Suffix": "string",
  "flatUnitNumber": "string",
  "floorLevelNumber": "string",
  "lotNumber": 0,
  "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

Name Type Required Restrictions Description
dpid string false none Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier
thoroughfareNumber1 integer false none Thoroughfare number for a property (first number in a property ranged address)
thoroughfareNumber1Suffix string false none Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated
thoroughfareNumber2 integer false none Second thoroughfare number (only used if the property has a ranged address eg 23-25)
thoroughfareNumber2Suffix string false none Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated
flatUnitNumber string false none Unit number (including suffix, if applicable)
floorLevelNumber string false none Floor or level number (including alpha characters)
lotNumber integer false none Allotment number for the address
buildingName1 string false none Building/Property name 1
buildingName2 string false none Building/Property name 2
streetName string false none The name of the street
streetType string false none The street type. Valid enumeration defined by Australia Post PAF code file
streetSuffix string false none The street type suffix. Valid enumeration defined by Australia Post PAF code file
postalDeliveryType string false none Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file
postalDeliveryNumber integer false none Postal delivery number if the address is a postal delivery type
postalDeliveryNumberPrefix string false none Postal delivery number prefix related to the postal delivery number
postalDeliveryNumberSuffix string false none Postal delivery number suffix related to the postal delivery number
localityName string true none Full name of locality
postcode string true none Postcode for the locality
state string true none State in which the address belongs. Valid enumeration defined by Australia Post PAF code file

{
  "self": "string"
}

Properties

Name Type Required Restrictions Description
self string(URIString) false none Fully qualified link to this API call

Meta

{}

Properties

None

LinksPaginated

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

Properties

Name Type Required Restrictions Description
self string(URIString) false none Fully qualified link to this API call
first string(URIString) false none URI to the first page of this set. Mandatory if this response is not the first page
prev string(URIString) false none URI to the first previous page of this set. Mandatory if this response is not the first page
next string(URIString) false none URI to the first next page of this set. Mandatory if this response is not the last page
last string(URIString) false none URI to the first last page of this set. Mandatory if this response is not the last page

MetaPaginated

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

Properties

Name Type Required Restrictions Description
totalRecords integer(NaturalNumber) false none The total number of records in the full set
totalPages integer(NaturalNumber) false none The total number of pages in the full set

ErrorList

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

Properties

Name Type Required Restrictions Description
errors [object] true none none
» code string true none The code of the error
» title string true none A displayable title of the error type
» detail string true none Detail of the error
» meta object false none Optional additional data for specific error types

EnumProductCategory

"PERS_AT_CALL_DEPOSITS"

The list of available product categories for categorising products and accounts

Properties

Name Type Required Restrictions Description
anonymous string false none The list of available product categories for categorising products and accounts

Enumerated Values

Property Value
anonymous PERS_AT_CALL_DEPOSITS
anonymous BUS_AT_CALL_DEPOSITS
anonymous TERM_DEPOSITS
anonymous RESIDENTIAL_MORTGAGES
anonymous PERS_CRED_AND_CHRG_CARDS
anonymous BUS_CRED_AND_CHRG_CARDS
anonymous PERS_LOANS
anonymous PERS_LEASING
anonymous BUS_LEASING
anonymous TRADE_FINANCE
anonymous PERS_OVERDRAFT
anonymous BUS_OVERDRAFT
anonymous BUS_LOANS
anonymous FOREIGN_CURR_AT_CALL_DEPOSITS
anonymous FOREIGN_CURR_TERM_DEPOSITS
anonymous FOREIGN_CURR_LOAN
anonymous FOREIGN_CURRRENCT_OVERDRAFT
anonymous TRAVEL_CARD

Product & Account Components

Product Feature Types

Description of the usage of the featureType field as it applies to products.

Value Description Use of additionalValue Field
CARD_ACCESS A card is available for the product to access funds NA
ADDITIONAL_CARDS Additional cards can be requested The maximum number of additional cards. If no maximum then should be set to null
UNLIMITED_TXNS Unlimited free transactions available NA
FREE_TXNS A set number of free transactions available per month The number of free transactions
FREE_TXNS_ALLOWANCE A set amount of transaction fee value that is discounted per month The amount of transaction fee discounted (in AUD)
LOYALTY_PROGRAM A points based loyalty program is available Name of the loyalty program
OFFSET An offset account can be connected to the product NA
OVERDRAFT An overdraft can be applied for NA
REDRAW Redraw of repaid principal above minimum required is available NA
INSURANCE Insurance is provided as an additional feature of the product Text description of the type of insurance (e.g. Travel Insurance)
BALANCE_TRANSFERS Balance transfers can be made from the account (eg. for credit cards) NA
INTEREST_FREE Interest free period for purchases Interest free period. Formatted according to ISO 8601 Durations
INTEREST_FREE_TRANSFERS Interest free period for balance transfers Interest free period. Formatted according to ISO 8601 Durations
DIGITAL_WALLET A Digital wallet can be attached to the product The name or brand of the wallet
DIGITAL_BANKING Access is available to online banking features for the product NA
NPP_PAYID An account of this product type can be used as the target of an NPP PayID NA
NPP_ENABLED An account of this product type can be used to receive funds as a result of a BSB/Number based NPP payment NA
DONATE_INTEREST Indicates that interest generated from the product can be automatically donated to a charity or community group NA
BILL_PAYMENT The product can be attached to an automatic budgeting and bill payment service Optional name of the service

Product Constraint Types

Description of the usage of the constraintType field as it applies to products.

Value Description Use of additionalValue Field
MIN_BALANCE A minimum balance is required for the product The minimum balance in AmountString format
OPENING_BALANCE An opening balance is required for the product The minimum opening balance in AmountString format
MAX_LIMIT A maximum credit limit exists The maximum limit in AmountString format
MIN_LIMIT A minimum credit limit exists The minimum limit in AmountString format

Product Eligibility Types

Description of the usage of the eligibilityType field as it applies to products.

Value Description Use of additionalValue Field
BUSINESS Only business may apply for the account NA
PENSION_RECIPIENT A recipient of a government pension may apply for the product NA
MIN_AGE Only customers older than a minimum age may apply The minimum age in years
MAX_AGE Only customers younger than a maximum age may apply The maximum age in years
MIN_INCOME The customer must have an income greater than a specified threshold to obtain the product Minimum income in AmountString format
MIN_TURNOVER Only a business with greater than a minimum turnover may apply Minimum turnover in AmountString format
STAFF Only a staff member of the provider may apply NA
STUDENT Only students may apply for the product NA
EMPLOYMENT_STATUS An eligibility constraint based on employment status applies A description of the status required
RESIDENCY_STATUS An eligibility constraint based on residency status applies A description of the status required
OTHER Another eligibility criteria exists as described in the additionalInfo field (if this option is specified then the additionalInfo field is mandatory) Value relevant to the criteria

Product Fee Types

Description of the usage of the feeType field as it applies to products.

Value Description Use of additionalValue Field
PERIODIC A periodic fee such as a monthly account servicing fee The period of charge. Formatted according to ISO 8601 Durations
TRANSACTION A fee for each transaction (above any free transactions in a period) A description of the type of transaction (eg. Assisted Transaction, Teller Transaction, Cheque)
ESTABLISHMENT An establishment fee for the product NA
EXIT A fee for closing the product NA
OVERDRAW A fee for overdrawing the account NA
MIN_BALANCE A periodic fee for being below the minimum balance The period of charge. Formatted according to ISO 8601 Durations
REDRAW A fee for performing a redraw transaction NA
CHEQUE_CASH A fee for cashing a cheque NA
CHEQUE_STOP A fee for stopping a cheque NA
CHEQUE_BOOK A fee for ordering a new cheque book NA
CARD_REPLACE A fee for ordering a replacement card NA
PAPER_STATEMENT A fee for obtaining a paper statement NA
OTHER_EVENT A fee for another type of event not already specified in the list of valid values Text description of the event

Product Discount Types

Description of the usage of the discountType field as it applies to products.

Value Description Use of additionalValue Field
BALANCE Discount on a fee for maintaining a set balance. As the discount applies to a fee the period is the same as for the fee The minimum balance in AmountString format
DEPOSITS Discount 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 fee The minimum deposit amount in AmountString format
PAYMENTS Discount 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 fee The payment threshold amount in AmountString format
BUNDLE Discount for originating a bundle instead of a standalone product The name of the applicable bundle

Product Deposit Rate Types

Description of the usage of the depositRateType field as it applies to products.

Value Description Use of additionalValue Field
FIXED Fixed rate for a period of time The period of time fixed. Formatted according to ISO 8601 Durations
BONUS A bonus rate available by meeting a specific criteria A description of the criteria to obtain the bonus
BUNDLE_BONUS A bonus rate obtained by originating a bundle instead of a standalone product The name of the bundle
VARIABLE A variable base rate for the product NA
INTRODUCTORY An introductory bonus that will expire after a set period The period of time for the introductory rate. Formatted according to ISO 8601 Durations

Product Lending Rate Types

Description of the usage of the lendingRateType field as it applies to products.

Value Description Use of additionalValue Field
FIXED Fixed rate for a period of time The period of time fixed. Formatted according to ISO 8601 Durations
INTRODUCTORY An introductory discount that will expire after a set period The period of time for the introductory rate. Formatted according to ISO 8601 Durations
DISCOUNT A specific discount rate that may be applied. A discount rate reduces the interest payable Description of the discount rate that is applicable
PENALTY A specific penalty rate that may be applied. A penalty rate increases the interest payable Description of the penalty rate that is applicable
BUNDLE_DISCOUNT A discount rate obtained by originating a bundle instead of a standalone product The name of the bundle
FLOATING A floating rate is relatively fixed but still adjusts under specific circumstances Details of the float parameters
MARKET_LINKED A rate that is linked to a specific market, commodity or asset class Details of the market linkage
CASH_ADVANCE Specific rate applied to case advances from the account NA
VARIABLE A variable base rate for the product NA
COMPARISON A comparison rate for the product Description of the comparison algorithm applied (eg. AAPR)

Account Feature Types

Description of the usage of the featureType field as it applies to accounts.

Value Description Use of additionalValue Field
CARD_ACCESS A card is available for the product to access funds NA
ADDITIONAL_CARDS Additional cards can be requested The maximum number of additional cards. If no maximum then should be set to null
UNLIMITED_TXNS Unlimited free transactions available NA
FREE_TXNS A set number of free transactions available per month The number of free transactions
FREE_TXNS_ALLOWANCE A set amount of transaction fee value that is discounted per month The amount of transaction fee discounted (in AUD)
LOYALTY_PROGRAM A points based loyalty program is available Name of the loyalty program
OFFSET An offset account can be connected to the product NA
OVERDRAFT An overdraft can be applied for NA
REDRAW Redraw of repaid principal above minimum required is available NA
INSURANCE Insurance is provided as an additional feature of the product Text description of the type of insurance (e.g. Travel Insurance)
BALANCE_TRANSFERS Balance transfers can be made from the account (eg. for credit cards) NA
INTEREST_FREE Interest free period for purchases Interest free period. Formatted according to ISO 8601 Durations
INTEREST_FREE_TRANSFERS Interest free period for balance transfers Interest free period. Formatted according to ISO 8601 Durations
DIGITAL_WALLET A Digital wallet can be attached to the product The name or brand of the wallet
DIGITAL_BANKING Access is available to online banking features for the product NA
NPP_PAYID An account of this product type can be used as the target of an NPP PayID NA
NPP_ENABLED An account of this product type can be used to receive funds as a result of a BSB/Number based NPP payment NA
DONATE_INTEREST Indicates that interest generated from the product can be automatically donated to a charity or community group NA
BILL_PAYMENT The product can be attached to an automatic budgeting and bill payment service Optional name of the service

Account Fee Types

Description of the usage of the feeType field as it applies to accounts.

Value Description Use of additionalValue Field
PERIODIC A periodic fee such as a monthly account servicing fee The period of charge. Formatted according to ISO 8601 Durations
TRANSACTION A fee for each transaction (above any free transactions in a period) A description of the type of transaction (eg. Assisted Transaction, Teller Transaction, Cheque)
EXIT A fee for closing the product NA
OVERDRAW A fee for overdrawing the account NA
MIN_BALANCE A periodic fee for being below the minimum balance The period of charge. Formatted according to ISO 8601 Durations
REDRAW A fee for performing a redraw transaction NA
CHEQUE_CASH A fee for cashing a cheque NA
CHEQUE_STOP A fee for stopping a cheque NA
CHEQUE_BOOK A fee for ordering a new cheque book NA
CARD_REPLACE A fee for ordering a replacement card NA
PAPER_STATEMENT A fee for obtaining a paper statement NA
OTHER_EVENT A fee for another type of event not already specified in the list of valid values Text description of the event

Account Discount Types

Description of the usage of the discountType field as it applies to accounts.

Value Description Use of additionalValue Field
BALANCE Discount on a fee for maintaining a set balance. As the discount applies to a fee the period is the same as for the fee The minimum balance in AmountString format
DEPOSITS Discount 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 fee The minimum deposit amount in AmountString format
PAYMENTS Discount 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 fee The payment threshold amount in AmountString format
BUNDLE Discount for originating a bundle instead of a standalone product The name of the applicable bundle

Account Deposit Rate Types

Description of the usage of the depositRateType field as it applies to accounts.

Value Description Use of additionalValue Field
FIXED Fixed rate for a period of time DateTimeString representing when the fixed rate will expire
BONUS A bonus rate available by meeting a specific criteria A description of the criteria to obtain the bonus
BUNDLE_BONUS A bonus rate obtained by originating a bundle instead of a standalone product The name of the bundle
VARIABLE A variable base rate for the product NA
INTRODUCTORY An introductory bonus that will expire after a set period DateTimeString representing when the introductory rate will expire

Account Lending Rate Types

Description of the usage of the lendingRateType field as it applies to accounts.

Value Description Use of additionalValue Field
FIXED Fixed rate for a period of time DateTimeString representing when the fixed rate will expire
INTRODUCTORY An introductory discount that will expire after a set period DateTimeString representing when the introductory rate will expire
DISCOUNT A specific discount rate that may be applied. A discount rate reduces the interest payable Description of the discount rate that is applicable
PENALTY A specific penalty rate that may be applied. A penalty rate increases the interest payable Description of the penalty rate that is applicable
BUNDLE_DISCOUNT A discount rate obtained by originating a bundle instead of a standalone product The name of the bundle
FLOATING A floating rate is relatively fixed but still adjusts under specific circumstances Details of the float parameters
MARKET_LINKED A rate that is linked to a specific market, commodity or asset class Details of the market linkage
CASH_ADVANCE Specific rate applied to case advances from the account NA
VARIABLE A variable base rate for the product NA
COMPARISON A comparison rate for the product Description of the comparison algorithm applied (eg. AAPR)

Known Issues

There are certain aspects of the standards that are actively under review. These known issues are articulated in the following table.

Issue Description
Swagger limitations Due to the use of Swagger 2 and limitations in swagger related to representation of OIDC flows and explicit formats for common types consideration is being given how best to represent this information
End point version End point versions are included in a swagger extension but are not appearing yet in the automatically generated documentation
Conditional restriction The conditionally required attribute for fields is included in a swagger extension but is not appearing yet in the automatically generated documentation
Example data Addition of example data for each field needs to be added to the swagger to improve the automatically generated sample json snippets
Product reference payloads The product reference payloads are under active review and have not yet been substantially changed from the version published on 2nd November 2018. It is expected that changes arising from feedback will be made in the near term
Specific error codes Feedback has been provided that additional specific errors would be of value. This is under consideration
Discoverability A proposal for end point and version discoverability is under consideration.
Administration end points The end points to support administration and reporting are outstanding. The definition of these end points is dependent on clarity of the directory specification.
InfoSec merge The informations security standards have been under development under a separate repository. Once this work stabilises it will be merged with these standards into a single site.
Additional link fields The inclusion of additional links to aid traversal of the end points has been suggested. This is under consideration.
Non-functional requirements Non-functional requirements are being reviewed and a proposal has been provided to the community for feedback. More work is required before this issue can be resolved.

Change Log

The following table lists the changes made to these standards in reverse date order (most recent change is at the top).

Change Date Description Detail Of change
20/12/2018 Version 0.20 Version updated formally to version 0.20 for Christmas Draft
20/12/2018 Updated documentation Documentation has been automatically generated from the swagger for consistency
20/12/2018 Known issues Added a section identifying known issues with the standards that are under review
20/12/2018 Cursor based pagination Added commentary in pagination section on the potential use of cursors
20/12/2018 Minor amendments to response codes Additional wording to support caching and inserted a cross reference to the error payload section
20/12/2018 Minor amendments to extensibility Minor wording changes for clarity and included reference to addition of new query parameters
20/12/2018 Unauthenticated end points Modified URI structure commentary to allow for a different provider path for unauthenticated end points
20/12/2018 Festive spirit Critical update - added a Santa hat to the logo
20/12/2018 FAPI Headers Added FAPI specific headers arising from the InfoSec work
19/12/2018 PAFAddress Added detail for the PAFAddress model based on the Australia Post PAF file format definition
19/12/2018 RateString common type Changed the RateString type to represent rates such that 100% is represented by the value 1.0
19/12/2018 URIString common type Corrected the name of the URIString common type
19/12/2018 Updated swagger files Swagger 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/2018 Masking rules Added specificity to the masking guidance for the masked string primitives
18/12/2018 Updated swagger files Swagger 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/2018 Addition of change log This change log was added to the standards documentation