swagger: '2.0'
x-generation-date: 'November 10, 2018 2:01 AM'
x-workspaceId: dpBSjv7JDN6DgRaYu
info:
  title: Consumer Data Standards
  description: API sets created by the Australian  Consumer Data Standards to meet the needs of the Consumer Data Right
  version: '1'
  license:
    name: MIT Licence
    url: 'https://opensource.org/licenses/MIT'
host: data.provider.com.au
basePath: /cds-au/v1
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
paths:
  /banking/accounts:
    get:
      summary: Get Accounts
      description: Obtain a list of accounts
      operationId: G-BA
      tags:
        - Accounts
      parameters:
        - name: open-status
          in: query
          description: 'Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed'
          required: false
          type: string
          default: ALL
        - name: product-category
          in: query
          description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.
          required: false
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
        - name: start-time
          in: query
          description: Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to today. Format is aligned to DateTimeString common type
          required: false
          type: string
          default: ''
        - name: end-time
          in: query
          description: 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
          required: false
          type: string
          default: ''
        - name: min-amount
          in: query
          description: Filter transactions to only transactions with amounts higher or equal to than this amount
          required: false
          type: number
          default: ''
        - name: max-amount
          in: query
          description: Filter transactions to only transactions with amounts less than or equal to than this amount
          required: false
          type: number
          default: ''
        - name: text
          in: query
          description: Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string
          required: false
          type: string
          default: ''
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Accounts'
      x-version: '1'
  '/banking/accounts/{accountId}':
    get:
      summary: Get Account Detail
      description: Obtain detailed information on a single account
      operationId: G-BA-D
      tags:
        - Accounts
      parameters:
        - name: accountId
          in: path
          description: A tokenised identifier for the account which is unique but not shareable
          required: true
          type: string
          default: ''
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Account'
      x-version: '1'
  /banking/accounts/balances:
    get:
      summary: Get Bulk Balances
      description: 'Obtain balances for multiple, filtered accounts'
      operationId: G-BAB
      tags:
        - Accounts
      parameters:
        - name: product-category
          in: query
          description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned
          required: false
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: ''
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: ''
      responses:
        '200':
          description: resource listing the financial balances for the account
          schema:
            $ref: '#/definitions/200_GET_Banking_Accounts_Balances'
      x-version: '1'
    post:
      summary: Get Balances For Specific Accounts
      description: Obtain balances for a specified list of accounts
      operationId: P-BAB-Q
      tags:
        - Accounts
      parameters:
        - name: accountIds
          in: body
          description: The list of account IDs to obtain information for
          required: true
          schema:
            $ref: '#/definitions/AccountIds_Request'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Accounts_Balances'
        '422':
          description: The request was well formed but was unable to be processed due to business logic specific to the request
          schema:
            $ref: '#/definitions/422_Errors'
      x-version: '1'
  '/banking/accounts/{accountId}/transactions':
    get:
      summary: Get Transactions For Account
      description: Obtain transactions for a specific account
      operationId: G-BA-D-T
      tags:
        - Accounts
      parameters:
        - name: accountId
          in: path
          description: ID of the account to get transactions for.  Must have previously been returned by one of the account list end points.
          required: true
          type: string
          default: ''
        - name: start-time
          in: query
          description: Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to today. Format is aligned to DateTimeString common type
          required: false
          type: string
          default: ''
        - name: end-time
          in: query
          description: 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
          required: false
          type: string
          default: ''
        - name: min-amount
          in: query
          description: Filter transactions to only transactions with amounts higher or equal to this amount
          required: false
          type: number
          default: ''
        - name: max-amount
          in: query
          description: Filter transactions to only transactions with amounts less than or equal to than this amount
          required: false
          type: number
          default: ''
        - name: text
          in: query
          description: Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string
          required: false
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Account_Transactions'
      x-version: '1'
  '/banking/accounts/{accountId}/transactions/{transactionId}':
    get:
      summary: Get Transaction Detail
      description: Obtain detailed information on a transaction for a specific account
      operationId: G-BA-D-T-D
      tags:
        - Accounts
      parameters:
        - name: accountId
          in: path
          description: The account id token that is used to uniquely represent the account
          required: true
          type: string
          default: '1234567890'
        - name: transactionId
          in: path
          description: The unique identifier for the specific transaction for which details are being requested
          required: true
          type: string
          default: '987654321'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Transactions_Detail'
      x-version: '1'
  /banking/accounts/transactions:
    get:
      summary: Get Transactions For Account
      description: 'Obtain transactions for multiple, filtered accounts'
      operationId: G-BAT
      tags:
        - Accounts
      parameters:
        - name: product-category
          in: query
          description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned
          required: false
          type: string
          default: ''
        - name: start-time
          in: query
          description: Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to today. Format is aligned to DateTimeString common type
          required: false
          type: string
          default: ''
        - name: end-time
          in: query
          description: 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
          required: false
          type: string
          default: ''
        - name: min-amount
          in: query
          description: Filter transactions to only transactions with amounts higher or equal to this amount
          required: false
          type: number
          default: ''
        - name: max-amount
          in: query
          description: Filter transactions to only transactions with amounts less than or equal to this amount
          required: false
          type: string
          default: ''
        - name: text
          in: query
          description: Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string
          required: false
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Bulk_Transactions'
      x-version: '1'
    post:
      summary: Get Transactions For Specific Accounts
      description: Obtain transactions for a specified list of transactions.
      operationId: P-BAT-Q
      tags:
        - Accounts
      parameters:
        - name: start-time
          in: query
          description: Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to today. Format is aligned to DateTimeString common type
          required: false
          type: string
          default: ''
        - name: end-time
          in: query
          description: 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
          required: false
          type: string
          default: ''
        - name: min-amount
          in: query
          description: Filter transactions to only transactions with amounts higher or equal to this amount
          required: false
          type: number
          default: ''
        - name: max-amount
          in: query
          description: Filter transactions to only transactions with amounts less than or equal to than this amount
          required: false
          type: number
          default: ''
        - name: text
          in: query
          description: Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string
          required: false
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
        - name: accountIds
          in: body
          description: The list of account IDs to obtain information for
          required: true
          schema:
            $ref: '#/definitions/AccountIds_Request'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Bulk_Transactions'
        '422':
          description: The request was well formed but was unable to be processed due to business logic specific to the request
          schema:
            $ref: '#/definitions/422_Errors'
      x-version: '1'
  '/banking/accounts/{accountId}/direct-debits':
    get:
      summary: Get Direct Debits For Account
      description: Obtain direct debit authorisations for a specific account
      operationId: G-BAD-D
      tags:
        - Direct Debits
      parameters:
        - name: accountId
          in: path
          description: ID of the account to get direct debit authorisations for.  Must have previously been returned by one of the account list end points.
          required: true
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: string
          default: '1'
        - name: page-size
          in: query
          description: Page size to request.  Default is 25 (standard pagination)
          required: false
          type: string
          default: '25'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Direct-Debits'
      x-version: '1'
  /banking/accounts/direct-debits:
    get:
      summary: Get Bulk Direct Debits
      description: 'Obtain direct debit authorisations for multiple, filtered accounts'
      operationId: G-BAD
      tags:
        - Direct Debits
      parameters:
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request.  Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
        - name: product-category
          in: query
          description: Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned
          required: false
          type: string
          default: ''
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Direct-Debits'
      x-version: '1'
    post:
      summary: Get Direct Debits For Specific Accounts
      description: Obtain direct debit authorisations for a specified list of accounts
      operationId: P-BAD-Q
      tags:
        - Direct Debits
      parameters:
        - name: accountIds
          in: body
          description: The list of account IDs to obtain information for
          required: true
          schema:
            $ref: '#/definitions/AccountIds_Request'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Direct-Debits'
        '422':
          description: The request was well formed but was unable to be processed due to business logic specific to the request
          schema:
            $ref: '#/definitions/422_Errors'
      x-version: '1'
  /banking/payees:
    get:
      summary: Get Payees
      description: Obtain a list of pre-registered payees
      operationId: G-BPY
      tags:
        - Payees
      parameters:
        - name: type
          in: query
          description: 'Filter on the payee type field.  In addition to normal type field values, ALL can be specified to retrieve all payees.  If absent the assumed value is ALL'
          required: false
          type: string
          default: ALL
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Payees'
      x-version: '1'
  '/banking/payees/{payeeId}':
    get:
      summary: Get Payee Detail
      description: Obtain detailed information on a single payee
      operationId: G-BPY-D
      tags:
        - Payees
      parameters:
        - name: payeeId
          in: path
          description: The ID used to locate the details of a particular payee
          required: true
          type: string
          default: ''
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Payee_Details'
      x-version: '1'
  /banking/products:
    get:
      summary: Get Products
      description: Obtain a list of products that are currently openly offered to the market
      operationId: G-BP
      tags:
        - Products
      parameters:
        - name: product-category
          in: query
          description: Used to filter results on the productCategory field. Any one of the valid values for this field can be supplied. If absent then all products returned
          required: false
          type: string
          default: ''
        - name: effective
          in: query
          description: If true then only include products that are effective right now and exclude products that may be available at a future time. If false only include products effective in the future. If absent defaults to include all products
          required: false
          type: boolean
          default: ''
        - name: updated-since
          in: query
          description: Only include products that have been updated after the specified date and time. If absent defaults to include all products
          required: false
          type: string
          default: ''
        - name: brand
          in: query
          description: Filter results based on a specific brand
          required: false
          type: string
          default: ''
        - name: page
          in: query
          description: Page of results to request (standard pagination)
          required: false
          type: integer
          default: '1'
        - name: page-size
          in: query
          description: Page size to request. Default is 25 (standard pagination)
          required: false
          type: integer
          default: '25'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Products'
      x-version: '1'
  '/banking/products/{productId}':
    get:
      summary: Get Product Detail
      description: Obtain detailed information on a single product offered openly to the market
      operationId: G-BP-D
      tags:
        - Products
      parameters:
        - name: productId
          in: path
          description: ID of the specific product requested
          required: true
          type: string
          default: ''
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Banking_Product'
      x-version: '1'
  /common/customer:
    get:
      summary: Get Customer
      description: Obtain basic information on the customer that has authorised the current session
      operationId: G-CC
      tags:
        - Customer
      parameters: []
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Common_Customer'
      x-version: '1'
  /common/customer/detail:
    get:
      summary: Get Customer Detail
      description: Obtain detailed information on the authorised customer within the current session.
      operationId: G-CCD
      tags:
        - Customer
      parameters: []
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/200_GET_Common_Customer_Detailed'
      x-version: '1'
definitions:
  AccountIds_Request:
    type: object
    required:
      - data
      - meta
    properties:
      data:
        type: object
        required:
          - accountIds
        properties:
          accountIds:
            type: array
            items:
              type: string
              description: A valid account ID previously obtained from another end point
      meta:
        $ref: '#/definitions/Meta_Object'
  200_GET_Banking_Products:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - products
        properties:
          products:
            type: array
            items:
              $ref: '#/definitions/Product_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  Product_Object:
    type: object
    required:
      - productId
      - lastUpdated
      - productCategory
      - name
      - description
      - brand
      - isNegotiable
    properties:
      productId:
        type: string
        description: 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.
        default: ''
        format: ASCIIString
      effectiveFrom:
        type: string
        description: The date and time from which this product is effective (ie. is available for origination)
        default: ''
        format: DateTimeString
      effectiveTo:
        type: string
        description: The date and time at which this product will be retired and will no longer be offered
        default: ''
        format: DateTimeString
      lastUpdated:
        type: string
        description: The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)
        default: ''
        format: DateTimeString
      productCategory:
        type: string
        description: The category of the accounts generated from this product
        default: ''
        enum:
          - PERS_AT_CALL_DEPOSITS
          - BUS_AT_CALL_DEPOSITS
          - TERM_DEPOSITS
          - RESIDENTIAL_MORTGAGES
          - PERS_CRED_AND_CHRG_CARDS
          - BUS_CRED_AND_CHRG_CARDS
          - PERS_LOANS
          - PERS_LEASING
          - BUS_LEASING
          - TRADE_FINANCE
          - PERS_OVERDRAFT
          - BUS_OVERDRAFT
          - BUS_LOANS
          - FOREIGN_CURR_AT_CALL_DEPOSITS
          - FOREIGN_CURR_TERM_DEPOSITS
          - FOREIGN_CURR_LOAN
          - FOREIGN_CURRRENCT_OVERDRAFT
          - TRAVEL_CARD
      name:
        type: string
        description: The display name of the product
        default: ''
      description:
        type: string
        description: A description of the product
        default: ''
      brand:
        type: string
        description: 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
        default: ''
      brandName:
        type: string
        description: An optional display name of the brand
        default: ''
      applicationUri:
        type: string
        description: A link to the an application web page where this product can be applied for.
        default: ''
      isNegotiable:
        type: boolean
        description: Indicates whether the product is specifically designed so that fees and prices are negotiated depending on context. While all products are open to a degree of negotiation this flag indicates that negotiation is expected and thus that the provision of specific fees and rates is not applicable
        default: ''
      additionalInformation:
        type: object
        properties:
          overviewUri:
            type: string
            description: General overview of the product
            default: ''
            format: URIString
          termsUri:
            type: string
            description: Terms and conditions for the product
            default: ''
            format: URIString
          eligibilityUri:
            type: string
            description: Eligibility rules and criteria for the product
            default: ''
            format: URIString
          feesAndPricingUri:
            type: string
            description: 'Description of fees, pricing, discounts, exemptions and bonuses for the product'
            default: ''
            format: URIString
          bundleUri:
            type: string
            description: Description of a bundle that this product can be part of
            default: ''
            format: URIString
  200_GET_Banking_Product:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        $ref: '#/definitions/ProductDetail_Object'
      links:
        $ref: '#/definitions/Links_Object'
      meta:
        $ref: '#/definitions/Meta_Object'
  ProductDetail_Object:
    type: object
    required:
      - productId
      - lastUpdated
      - productCategory
      - name
      - description
      - brand
      - isNegotiable
    properties:
      productId:
        type: string
        description: 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.
        default: ''
        format: ASCIIString
      effectiveFrom:
        type: string
        description: The date and time from which this product is effective (ie. is available for origination)
        default: ''
        format: DateTimeString
      effectiveTo:
        type: string
        description: The date and time at which this product will be retired and will no longer be offered
        default: ''
        format: DateTimeString
      lastUpdated:
        type: string
        description: The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)
        default: ''
        format: DateTimeString
      productCategory:
        type: string
        description: The category of the accounts generated from this product
        default: ''
        enum:
          - PERS_AT_CALL_DEPOSITS
          - BUS_AT_CALL_DEPOSITS
          - TERM_DEPOSITS
          - RESIDENTIAL_MORTGAGES
          - PERS_CRED_AND_CHRG_CARDS
          - BUS_CRED_AND_CHRG_CARDS
          - PERS_LOANS
          - PERS_LEASING
          - BUS_LEASING
          - TRADE_FINANCE
          - PERS_OVERDRAFT
          - BUS_OVERDRAFT
          - BUS_LOANS
          - FOREIGN_CURR_AT_CALL_DEPOSITS
          - FOREIGN_CURR_TERM_DEPOSITS
          - FOREIGN_CURR_LOAN
          - FOREIGN_CURRRENCT_OVERDRAFT
          - TRAVEL_CARD
      name:
        type: string
        description: The display name of the product
        default: ''
      description:
        type: string
        description: A description of the product
        default: ''
      brand:
        type: string
        description: 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
        default: ''
      brandName:
        type: string
        description: An optional display name of the brand
        default: ''
      applicationUri:
        type: string
        description: A link to the an application web page where this product can be applied for.
        default: ''
      isNegotiable:
        type: boolean
        description: Indicates whether the product is specifically designed so that fees and prices are negotiated depending on context. While all products are open to a degree of negotiation this flag indicates that negotiation is expected and thus that the provision of specific fees and rates is not applicable
        default: ''
      additionalInformation:
        type: object
        properties:
          overviewUri:
            type: string
            description: General overview of the product
            default: ''
            format: URIString
          termsUri:
            type: string
            description: Terms and conditions for the product
            default: ''
            format: URIString
          eligibilityUri:
            type: string
            description: Eligibility rules and criteria for the product
            default: ''
            format: URIString
          feesAndPricingUri:
            type: string
            description: 'Description of fees, pricing, discounts, exemptions and bonuses for the product'
            default: ''
            format: URIString
          bundleUri:
            type: string
            description: Description of a bundle that this product can be part of
            default: ''
            format: URIString
      bundles:
        type: array
        items:
          $ref: '#/definitions/ProductBundles_Object'
      features:
        type: array
        items:
          $ref: '#/definitions/ProductFeatures_Object'
      constraints:
        type: array
        items:
          $ref: '#/definitions/ProductConstraints_Object'
      eligibility:
        type: array
        items:
          $ref: '#/definitions/ProductEligibility_Object'
      fees:
        type: array
        items:
          $ref: '#/definitions/ProductFees_Object'
      depositRates:
        type: array
        items:
          $ref: '#/definitions/ProductDepositRates_Object'
      lendingRates:
        type: array
        items:
          $ref: '#/definitions/ProductLendingRates_Object'
  ProductBundles_Object:
    type: object
    required:
      - name
      - description
      - productIds
    properties:
      name:
        type: string
        description: Name of the bundle
        default: ''
      description:
        type: string
        description: Description of the bundle
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information on the bundle criteria and benefits
        default: ''
        format: URIString
      productIds:
        type: array
        description: Array of product IDs for products included in the bundle
        items:
          type: string
  ProductFeatures_Object:
    type: object
    required:
      - featureType
    properties:
      featureType:
        type: string
        description: The type of feature described
        default: ''
        enum:
          - CARD_ACCESS
          - ADDITIONAL_CARDS
          - UNLIMITED_TXNS
          - FREE_TXNS
          - FREE_TXNS_ALLOWANCE
          - LOYALTY_PROGRAM
          - OFFSET
          - OVERDRAFT
          - REDRAW
          - INSURANCE
          - BALANCE_TRANSFERS
          - INTEREST_FREE
          - INTEREST_FREE_TRANSFERS
          - DIGITAL_WALLET
          - DIGITAL_BANKING
          - NPP_PAYID
          - NPP_ENABLED
          - DONATE_INTEREST
          - BILL_PAYMENT
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of featureType
        default: ''
  ProductConstraints_Object:
    type: object
    required:
      - constraintType
    properties:
      constraintType:
        type: string
        description: The type of constraint described.  See the next section for an overview of valid values and their meaning
        default: ''
        enum:
          - MIN_BALANCE
          - OPENING_BALANCE
          - MAX_LIMIT
          - MIN_LIMIT
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the constraintType specified.  Whether mandatory or not is dependent on the value of constraintType
        default: ''
  ProductEligibility_Object:
    type: object
    required:
      - eligibilityType
    properties:
      eligibilityType:
        type: string
        description: The type of eligibility criteria described.  See the next section for an overview of valid values and their meaning
        default: ''
        enum:
          - BUSINESS
          - PENSION_RECIPIENT
          - MIN_AGE
          - MAX_AGE
          - MIN_INCOME
          - MIN_TURNOVER
          - STAFF
          - STUDENT
          - EMPLOYMENT_STATUS
          - RESIDENCY_STATUS
          - OTHER
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the eligibilityType specified.  Whether mandatory or not is dependent on the value of eligibilityType
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the eligibility criteria. Mandatory if the eligibilityType field is set to OTHER
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information on this eligibility criteria
        default: ''
        format: URIString
  ProductFees_Object:
    type: object
    required:
      - name
      - feeType
    properties:
      name:
        type: string
        description: Name of the fee
        default: ''
      feeType:
        type: string
        description: The type of fee
        default: ''
        enum:
          - PERIODIC
          - TRANSACTION
          - ESTABLISHMENT
          - EXIT
          - OVERDRAW
          - MIN_BALANCE
          - REDRAW
          - CHEQUE_CASH
          - CHEQUE_STOP
          - CHEQUE_BOOK
          - CARD_REPLACE
          - PAPER_STATEMENT
          - OTHER_EVENT
      amount:
        type: string
        description: 'The amount charged for the fee. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory'
        default: ''
        format: AmountString
      balanceRate:
        type: string
        description: 'A fee rate calculated based on a proportion of the balance. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory'
        default: ''
        format: RateString
      transactionRate:
        type: string
        description: 'A fee rate calculated based on a proportion of a transaction. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory'
        default: ''
        format: RateString
      currency:
        type: string
        description: The currency the fee will be charged in. Assumes AUD if absent
        default: ''
        format: CurrencyString
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the fee
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information on this fee
        default: ''
        format: URIString
      discounts:
        type: array
        items:
          $ref: '#/definitions/ProductDiscounts_Object'
  ProductDiscounts_Object:
    type: object
    required:
      - description
      - discountType
      - amount
    properties:
      description:
        type: string
        description: Description of the discount
        default: ''
      discountType:
        type: string
        description: The type of discount. See the next section for an overview of valid values and their meaning
        default: ''
        enum:
          - BALANCE
          - DEPOSITS
          - PAYMENTS
          - BUNDLE
      amount:
        type: string
        description: 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
        default: ''
        format: AmountString
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType
        default: ''
  ProductDepositRates_Object:
    type: object
    required:
      - depositRateType
      - rate
    properties:
      depositRateType:
        type: string
        description: 'The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning'
        default: ''
        enum:
          - FIXED
          - BONUS
          - BUNDLE_BONUS
          - VARIABLE
          - INTRODUCTORY
      rate:
        type: string
        description: The rate to be applied
        default: ''
        format: RateString
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the fee
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information on this fee
        default: ''
        format: URIString
  ProductLendingRates_Object:
    type: object
    required:
      - lendingRateType
      - rate
    properties:
      lendingRateType:
        type: string
        description: 'The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning'
        default: ''
        enum:
          - FIXED
          - INTRODUCTORY
          - DISCOUNT
          - PENALTY
          - BUNDLE_DISCOUNT
          - FLOATING
          - MARKET_LINKED
          - CASH_ADVANCE
          - VARIABLE
          - COMPARISON
      rate:
        type: string
        description: The rate to be applied
        default: ''
        format: RateString
      additionalValue:
        type: string
        description: 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
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the fee.
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information  on this fee
        default: ''
        format: URIString
  200_GET_Banking_Accounts:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - accounts
        properties:
          accounts:
            type: array
            items:
              $ref: '#/definitions/Account_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  Account_Object:
    type: object
    required:
      - accountId
      - displayName
      - maskedNumber
      - productCategory
      - providerType
      - balance$type
    properties:
      accountid:
        type: string
        description: A unique ID of the account adhering to the standards for ID permanence
        default: ''
        format: ASCIIString
      displayName:
        type: string
        description: The display name of the account. If a customer provided nickname is available that value should be returned
        default: ''
      nickname:
        type: string
        description: A customer supplied nick name for the account
        default: ''
      maskedNumber:
        type: string
        description: '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'
        default: ''
        format: MaskedAccountString
      productCategory:
        type: string
        description: The category of the product or account
        default: ''
        enum:
          - PERS_AT_CALL_DEPOSITS
          - BUS_AT_CALL_DEPOSITS
          - TERM_DEPOSITS
          - RESIDENTIAL_MORTGAGES
          - PERS_CRED_AND_CHRG_CARDS
          - BUS_CRED_AND_CHRG_CARDS
          - PERS_LOANS
          - PERS_LEASING
          - BUS_LEASING
          - TRADE_FINANCE
          - PERS_OVERDRAFT
          - BUS_OVERDRAFT
          - BUS_LOANS
          - FOREIGN_CURR_AT_CALL_DEPOSITS
          - FOREIGN_CURR_TERM_DEPOSITS
          - FOREIGN_CURR_LOAN
          - FOREIGN_CURRRENCT_OVERDRAFT
          - TRAVEL_CARD
      providerType:
        type: string
        description: The unique type as defined by the account provider
        default: ''
      balance$type:
        type: string
        description: 'The type of balance object provided for the account. Must be one of: debit Debit Balance Type (see above) Conditional credit Credit Balance Type (see above) Conditional Multi Currency Purses Type (see above) Conditional purses debit credit purses'
        default: ''
        enum:
          - deposits
          - lending
          - purses
      deposits:
        $ref: '#/definitions/DepositsBalance_Object'
      lending:
        $ref: '#/definitions/LendingBalance_Object'
      purses:
        type: array
        items:
          $ref: '#/definitions/CurrencyAmount_Object'
  200_GET_Banking_Account:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        $ref: '#/definitions/AccountDetail_Object'
      links:
        $ref: '#/definitions/Links_Object'
      meta:
        $ref: '#/definitions/Meta_Object'
  AccountDetail_Object:
    type: object
    required:
      - accountId
      - displayName
      - maskedNumber
      - productCategory
      - providerType
      - balance$type
      - address$type
    properties:
      accountid:
        type: string
        description: A unique ID of the account adhering to the standards for ID permanence
        default: ''
        format: ASCIIString
      displayName:
        type: string
        description: The display name of the account. If a customer provided nickname is available that value should be returned
        default: ''
      nickname:
        type: string
        description: A customer supplied nick name for the account
        default: ''
      maskedNumber:
        type: string
        description: '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'
        default: ''
        format: MaskedAccountString
      productCategory:
        type: string
        description: The category of the product or account
        default: ''
        enum:
          - PERS_AT_CALL_DEPOSITS
          - BUS_AT_CALL_DEPOSITS
          - TERM_DEPOSITS
          - RESIDENTIAL_MORTGAGES
          - PERS_CRED_AND_CHRG_CARDS
          - BUS_CRED_AND_CHRG_CARDS
          - PERS_LOANS
          - PERS_LEASING
          - BUS_LEASING
          - TRADE_FINANCE
          - PERS_OVERDRAFT
          - BUS_OVERDRAFT
          - BUS_LOANS
          - FOREIGN_CURR_AT_CALL_DEPOSITS
          - FOREIGN_CURR_TERM_DEPOSITS
          - FOREIGN_CURR_LOAN
          - FOREIGN_CURRRENCT_OVERDRAFT
          - TRAVEL_CARD
      providerType:
        type: string
        description: The unique type as defined by the account provider
        default: ''
      balance$type:
        type: string
        description: 'The type of balance object provided for the account. Must be one of: debit Debit Balance Type (see above) Conditional credit Credit Balance Type (see above) Conditional Multi Currency Purses Type (see above) Conditional purses debit credit purses'
        default: ''
        enum:
          - deposits
          - lending
          - purses
      deposits:
        $ref: '#/definitions/DepositsBalance_Object'
      lending:
        $ref: '#/definitions/LendingBalance_Object'
      purses:
        type: array
        items:
          $ref: '#/definitions/CurrencyAmount_Object'
      bundleName:
        type: string
        description: Optional field to indicate if this account is part of a bundle that is providing additional benefit for to the customer
        default: ''
      specificAccount$type:
        type: string
        description: The type of structure to present account specific fields.
        default: ''
        enum:
          - termDeposit
          - creditCard
          - loan
      termDeposit:
        $ref: '#/definitions/TermDepositAccount_Object'
      creditCard:
        $ref: '#/definitions/CreditCardAccount_Object'
      loan:
        $ref: '#/definitions/LoanAccount_Object'
      features:
        type: array
        items:
          $ref: '#/definitions/AccountFeatures_Object'
      fees:
        type: array
        items:
          $ref: '#/definitions/AccountFees_Object'
      depositRates:
        type: array
        items:
          $ref: '#/definitions/AccountDepositRates_Object'
      lendingRates:
        type: array
        items:
          $ref: '#/definitions/AccountLendingRates_Object'
      address:
        type: object
        required:
          - address$type
        properties:
          address$type:
            type: string
            description: The type of address object present
            default: ''
            enum:
              - simple
              - paf
          simple:
            $ref: '#/definitions/SimpleAddress_Object'
          paf:
            $ref: '#/definitions/PAFAddress_Object'
  TermDepositAccount_Object:
    type: object
    required:
      - lodgementDate
      - maturityDate
      - maturityInstructions
    properties:
      lodgementDate:
        type: string
        description: The lodgement date of the original deposit
        default: ''
        format: DateTimeString
      maturityDate:
        type: string
        description: Maturity date for the term deposit
        default: ''
        format: DateTimeString
      maturityAmount:
        type: string
        description: Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated
        default: ''
        format: AmountString
      maturityCurrency:
        type: string
        description: If absent assumes AUD
        default: ''
        format: CurrencyString
      maturityInstructions:
        type: string
        description: Current instructions on action to be taken at maturity
        default: ''
        enum:
          - ROLLED_OVER
          - PAID_OUT_AT_MATURITY
  CreditCardAccount_Object:
    type: object
    required:
      - minPaymentAmount
      - paymentDueAmount
      - paymentDueDate
    properties:
      minPaymentAmount:
        type: string
        description: The minimum payment amount due for the next card payment
        default: ''
        format: AmountString
      paymentDueAmount:
        type: string
        description: The amount due for the next card payment
        default: ''
        format: AmountString
      paymentCurrency:
        type: string
        description: If absent assumes AUD
        default: ''
        format: CurrencyString
      paymentDueDate:
        type: string
        description: Date that the next payment for the card is due
        default: ''
        format: DateTimeString
  LoanAccount_Object:
    type: object
    required:
      - loanEndDate
      - nextInstalmentDate
      - minInstalmentAmount
      - repaymentFrequency
    properties:
      originalStartDate:
        type: string
        description: Optional original start date for the loan
        default: ''
        format: DateTimeString
      originalLoanAmount:
        type: string
        description: Optional original loan value
        default: ''
        format: AmountString
      originalLoanCurrency:
        type: string
        description: If absent assumes AUD
        default: ''
        format: CurrencyString
      loanEndDate:
        type: string
        description: Date that the loan is due to be repaid in full
        default: ''
        format: DateTimeString
      nextInstalmentDate:
        type: string
        description: Next date that an instalment is required
        default: ''
        format: DateTimeString
      minInstalmentAmount:
        type: string
        description: Minimum amount of next instalment
        default: ''
        format: AmountString
      minInstalmentCurrency:
        type: string
        description: If absent assumes AUD
        default: ''
        format: CurrencyString
      maxRedraw:
        type: string
        description: Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account
        default: ''
        format: AmountString
      maxRedrawCurrency:
        type: string
        description: If absent assumes AUD
        default: ''
        format: CurrencyString
      minRedraw:
        type: string
        description: Minimum redraw amount
        default: ''
      minRedrawCurrency:
        type: string
        description: If absent assumes AUD
        default: ''
        format: CurrencyString
      offsetAccountEnabled:
        type: boolean
        description: Set to true if one or more offset accounts are configured for this loan account
        default: ''
      offsetAccountIds:
        type: array
        description: 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
        items:
          type: string
      repaymentType:
        type: string
        description: Options in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST
        default: ''
      repaymentFrequency:
        type: string
        description: The expected or required repayment frequency. Formatted according to ISO 8601 Durations
        default: ''
        enum:
          - INTEREST_ONLY
          - PRINCIPAL_AND_INTEREST
  AccountFeatures_Object:
    type: object
    required:
      - featureType
    properties:
      featureType:
        type: string
        description: The type of feature described
        default: ''
        enum:
          - CARD_ACCESS
          - ADDITIONAL_CARDS
          - UNLIMITED_TXNS
          - FREE_TXNS
          - FREE_TXNS_ALLOWANCE
          - LOYALTY_PROGRAM
          - OFFSET
          - OVERDRAFT
          - REDRAW
          - INSURANCE
          - BALANCE_TRANSFERS
          - INTEREST_FREE
          - INTEREST_FREE_TRANSFERS
          - DIGITAL_WALLET
          - DIGITAL_BANKING
          - NPP_PAYID
          - NPP_ENABLED
          - DONATE_INTEREST
          - BILL_PAYMENT
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of featureType
        default: ''
  AccountFees_Object:
    type: object
    required:
      - name
      - feeType
    properties:
      name:
        type: string
        description: Name of the fee
        default: ''
      feeType:
        type: string
        description: The type of fee
        default: ''
        enum:
          - PERIODIC
          - TRANSACTION
          - EXIT
          - OVERDRAW
          - MIN_BALANCE
          - REDRAW
          - CHEQUE_CASH
          - CHEQUE_STOP
          - CHEQUE_BOOK
          - CARD_REPLACE
          - PAPER_STATEMENT
          - OTHER_EVENT
      amount:
        type: string
        description: 'The amount charged for the fee. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory'
        default: ''
        format: AmountString
      balanceRate:
        type: string
        description: 'A fee rate calculated based on a proportion of the balance. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory'
        default: ''
        format: RateString
      transactionRate:
        type: string
        description: 'A fee rate calculated based on a proportion of a transaction. Assumed to be in AUD. One of amount, balanceRate and transactionRate is mandatory'
        default: ''
        format: RateString
      currency:
        type: string
        description: The currency the fee will be charged in. Assumes AUD if absent
        default: ''
        format: CurrencyString
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the feeType specified. Whether mandatory or not is dependent on the value of feeType
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the fee
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information on this fee
        default: ''
        format: URIString
      discounts:
        type: array
        items:
          $ref: '#/definitions/AccountDiscounts_Object'
  AccountDiscounts_Object:
    type: object
    required:
      - description
      - discountType
      - amount
    properties:
      description:
        type: string
        description: Description of the discount
        default: ''
      discountType:
        type: string
        description: The type of discount. See the next section for an overview of valid values and their meaning
        default: ''
        enum:
          - BALANCE
          - DEPOSITS
          - PAYMENTS
          - BUNDLE
      amount:
        type: string
        description: 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
        default: ''
        format: AmountString
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the discountType specified. Whether mandatory or not is dependent on the value of discountType
        default: ''
  AccountDepositRates_Object:
    type: object
    required:
      - depositRateType
      - rate
    properties:
      depositRateType:
        type: string
        description: 'The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning'
        default: ''
        enum:
          - FIXED
          - BONUS
          - BUNDLE_BONUS
          - VARIABLE
          - INTRODUCTORY
      rate:
        type: string
        description: The rate to be applied
        default: ''
        format: RateString
      additionalValue:
        type: string
        description: Generic field containing additional information relevant to the depositRateType specified. Whether mandatory or not is dependent on the value of depositRateType
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the fee
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information on this fee
        default: ''
        format: URIString
  AccountLendingRates_Object:
    type: object
    required:
      - lendingRateType
      - rate
    properties:
      lendingRateType:
        type: string
        description: 'The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning'
        default: ''
        enum:
          - FIXED
          - INTRODUCTORY
          - DISCOUNT
          - PENALTY
          - BUNDLE_DISCOUNT
          - FLOATING
          - MARKET_LINKED
          - CASH_ADVANCE
          - VARIABLE
          - COMPARISON
      rate:
        type: string
        description: The rate to be applied
        default: ''
        format: RateString
      additionalValue:
        type: string
        description: 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
        default: ''
      additionalInfo:
        type: string
        description: Display text providing more information on the fee.
        default: ''
      additionalInfoUri:
        type: string
        description: Link to a web page with more information  on this fee
        default: ''
        format: URIString
  200_GET_Banking_Account_Transactions:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - accountId
          - displayName
          - transactions
        properties:
          accountId:
            type: string
            description: ID of the account for which transactions are provided
            default: ''
            format: ASCIIString
          displayName:
            type: string
            description: The display name of the account as defined by the bank.  This should not incorporate account numbers or PANs.  If it does the values should be masked according to the rules of the MaskedAccountString common type.
            default: ''
          nickname:
            type: string
            description: A customer supplied nick name for the account
            default: ''
          transactions:
            type: array
            items:
              $ref: '#/definitions/Transaction_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  Transaction_Object:
    type: object
    required:
      - isDetailAvailable
      - status
      - description
      - reference
    properties:
      transactionid:
        type: string
        description: A unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type
        default: ''
        format: ASCIIString
      isDetailAvailable:
        type: boolean
        description: True if extended information is available using the transaction detail end point. False if extended data is not available
        default: ''
      status:
        type: string
        description: Status of the transaction
        default: ''
        enum:
          - PENDING
          - POSTED
      description:
        type: string
        description: The transaction description as applied by the financial institution
        default: ''
      postDateTime:
        type: string
        description: The time the transaction was posted. This field is mandatory if the transaction has status POSTED. This is the time that appears on a standard statement
        default: ''
        format: DateTimeString
      executionDateTime:
        type: string
        description: 'The time the transaction was executed by the originating customer, if available'
        default: ''
        format: DateTimeString
      amount:
        type: string
        description: The value of the transaction. Negative values mean money was outgoing
        default: ''
        format: AmountString
      currency:
        type: string
        description: The currency for the transaction amount. AUD assumed if not present
        default: ''
        format: CurrencyString
      reference:
        type: string
        description: The reference for the transaction provided by the originating institution
        default: ''
  200_GET_Banking_Transactions_Detail:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - accountId
          - displayName
          - transaction
        properties:
          accountId:
            type: string
            description: ID of the account for which transactions are provided
            default: ''
            format: ASCIIString
          displayName:
            type: string
            description: The display name of the account as defined by the bank.  This should not incorporate account numbers or PANs.  If it does the values should be masked according to the rules of the MaskedAccountString common type.
            default: ''
          nickname:
            type: string
            description: A customer supplied nick name for the account
            default: ''
          transaction:
            type: array
            items:
              $ref: '#/definitions/TransactionDetail_Object'
      links:
        $ref: '#/definitions/Links_Object'
      meta:
        $ref: '#/definitions/Meta_Object'
  TransactionDetail_Object:
    type: object
    required:
      - status
      - description
      - reference
    properties:
      transactionid:
        type: string
        description: A unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type
        default: ''
        format: ASCIIString
      status:
        type: string
        description: Status of the transaction
        default: ''
        enum:
          - PENDING
          - POSTED
      description:
        type: string
        description: The transaction description as applied by the financial institution
        default: ''
      postDateTime:
        type: string
        description: The time the transaction was posted. This field is mandatory if the transaction has status POSTED. This is the time that appears on a standard statement
        default: ''
        format: DateTimeString
      executionDateTime:
        type: string
        description: 'The time the transaction was executed by the originating customer, if available'
        default: ''
        format: DateTimeString
      amount:
        type: string
        description: The value of the transaction. Negative values mean money was outgoing
        default: ''
        format: AmountString
      currency:
        type: string
        description: The currency for the transaction amount. AUD assumed if not present
        default: ''
        format: CurrencyString
      reference:
        type: string
        description: The reference for the transaction provided by the originating institution
        default: ''
      extendedData:
        $ref: '#/definitions/TransactionExtendedData_Object'
  TransactionExtendedData_Object:
    type: object
    required:
      - service
    properties:
      payer:
        type: string
        description: Label of the originating payer.  Mandatory for inbound payment
        default: ''
      payee:
        type: string
        description: Label of the target PayID. Mandatory for an outbound payment
        default: ''
      extension$type:
        type: string
        description: Optional extended data provided specific to transaction originated via NPP
        default: ''
        enum:
          - extendedDescription
      extendedDescription:
        type: string
        description: An extended string description. Only present if specified by the extensionType field
        default: ''
      service:
        type: string
        description: Identifier of the applicable overlay service
        default: ''
        enum:
          - X2P1.01
  200_GET_Banking_Bulk_Transactions:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - transactions
        properties:
          transactions:
            type: array
            items:
              $ref: '#/definitions/BulkTransaction_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  BulkTransaction_Object:
    type: object
    required:
      - accountId
      - isDetailAvailable
      - status
      - description
      - reference
    properties:
      accountId:
        type: string
        description: A unique ID of the account adhering to the standards for ID permanence
        default: ''
        format: ASCIIString
      transactionid:
        type: string
        description: A unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type
        default: ''
        format: ASCIIString
      isDetailAvailable:
        type: boolean
        description: True if extended information is available using the transaction detail end point. False if extended data is not available
        default: ''
      status:
        type: string
        description: Status of the transaction
        default: ''
        enum:
          - PENDING
          - POSTED
      description:
        type: string
        description: The transaction description as applied by the financial institution
        default: ''
      postDateTime:
        type: string
        description: The time the transaction was posted. This field is mandatory if the transaction has status POSTED. This is the time that appears on a standard statement
        default: ''
        format: DateTimeString
      executionDateTime:
        type: string
        description: 'The time the transaction was executed by the originating customer, if available'
        default: ''
        format: DateTimeString
      amount:
        type: string
        description: The value of the transaction. Negative values mean money was outgoing
        default: ''
        format: AmountString
      currency:
        type: string
        description: The currency for the transaction amount. AUD assumed if not present
        default: ''
        format: CurrencyString
      reference:
        type: string
        description: The reference for the transaction provided by the originating institution
        default: ''
  200_GET_Banking_Accounts_Balances:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - balances
        properties:
          balances:
            type: array
            items:
              $ref: '#/definitions/Balance_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  Balance_Object:
    type: object
    required:
      - accountId
      - balance$type
    properties:
      accountid:
        type: string
        description: A unique ID of the account adhering to the standards for ID permanence
        default: ''
      balance$type:
        type: string
        description: The type of balance object provided for the account
        default: ''
        enum:
          - debit
          - lending
          - purses
      deposits:
        $ref: '#/definitions/DepositsBalance_Object'
      lending:
        $ref: '#/definitions/LendingBalance_Object'
      purses:
        type: array
        items:
          $ref: '#/definitions/CurrencyAmount_Object'
  DepositsBalance_Object:
    type: object
    required:
      - currentBalance
      - availableBalance
    properties:
      currentBalance:
        $ref: '#/definitions/CurrencyAmount_Object'
      availableBalance:
        $ref: '#/definitions/CurrencyAmount_Object'
  LendingBalance_Object:
    type: object
    required:
      - accountBalance
      - availableBalance
      - creditLimit
    properties:
      accountBalance:
        $ref: '#/definitions/CurrencyAmount_Object'
      availableBalance:
        $ref: '#/definitions/CurrencyAmount_Object'
      creditLimit:
        $ref: '#/definitions/CurrencyAmount_Object'
      amortisedLimit:
        $ref: '#/definitions/CurrencyAmount_Object'
  CurrencyAmount_Object:
    type: object
    required:
      - amount
    properties:
      amount:
        type: string
        description: 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
        default: ''
        format: AmountString
      currency:
        type: string
        description: If not present assumes AUD
        default: ''
        format: CurrencyString
  200_GET_Banking_Payees:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - payees
        properties:
          payees:
            type: array
            description: The list of payees returned
            items:
              $ref: '#/definitions/Payee_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  200_GET_Banking_Payee_Details:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        $ref: '#/definitions/PayeeDetail_Object'
      links:
        $ref: '#/definitions/Links_Object'
      meta:
        $ref: '#/definitions/Meta_Object'
  Payee_Object:
    type: object
    required:
      - payeeId
      - nickname
      - type
    properties:
      payeeId:
        type: string
        description: ID of the payee adhering to the rules of ID permanence
        default: ''
      nickname:
        type: string
        description: The short display name of the payee as provided by the customer
        default: ''
      description:
        type: string
        description: A description of the payee provided by the customer
        default: ''
      type:
        type: string
        description: The type of payee. DOMESTIC means a registered payee for domestic payments including NPP. INTERNATIONAL means a registered payee for international payments. BILLER means a registered payee for BPAY
        default: ''
        enum:
          - DOMESTIC
          - INTERNATIONAL
          - BILLER
  PayeeDetail_Object:
    type: object
    required:
      - payeeId
      - nickname
      - type
      - payee$type
    properties:
      payeeId:
        type: string
        description: ID of the payee adhering to the rules of ID permanence
        default: ''
      nickname:
        type: string
        description: The short display name of the payee as provided by the customer
        default: ''
      description:
        type: string
        description: A description of the payee provided by the customer
        default: ''
      type:
        type: string
        description: The type of payee. DOMESTIC means a registered payee for domestic payments including NPP. INTERNATIONAL means a registered payee for international payments. BILLER means a registered payee for BPAY
        default: ''
        enum:
          - DOMESTIC
          - INTERNATIONAL
          - BILLER
      payee$type:
        type: string
        description: Type of object included that describes the payee in detail
        default: ''
        enum:
          - domestic
          - biller
          - international
      domestic:
        $ref: '#/definitions/DomesticPayee_Object'
      biller:
        $ref: '#/definitions/BillerPayee_Object'
      international:
        $ref: '#/definitions/InternationalPayee_Object'
  DomesticPayee_Object:
    type: object
    required:
      - payeeAccount$type
    properties:
      payeeAccount$type:
        type: string
        description: 'Type of account object included. Valid values are: { payeeAccount$type - - account A standard Australian account defined by BSB/Account Number payId A PayID recognised by NPP'
        default: ''
        enum:
          - account
          - card
          - payid
      account:
        $ref: '#/definitions/DomesticPayeeAccount_Object'
      card:
        $ref: '#/definitions/DomesticPayeeCard_Object'
      payId:
        $ref: '#/definitions/DomesticPayeePayId_Object'
  DomesticPayeeAccount_Object:
    type: object
    required:
      - accountName
      - bsb
      - accountNumber
    properties:
      accountName:
        type: string
        description: Name of the account to pay to
        default: ''
      bsb:
        type: string
        description: BSB of the account to pay to
        default: ''
      accountNumber:
        type: string
        description: Number of the account to pay to
        default: ''
  DomesticPayeeCard_Object:
    type: object
    required:
      - cardNumber
    properties:
      cardNumber:
        type: string
        description: Name of the account to pay to
        default: ''
        format: MaskedPANString
  DomesticPayeePayId_Object:
    type: object
    required:
      - name
      - identifier
      - type
    properties:
      name:
        type: string
        description: The name assigned to the PayID by the owner of the PayID
        default: ''
      identifier:
        type: string
        description: The identifier of the PayID (dependent on type)
        default: ''
      type:
        type: string
        description: The type of the PayID
        default: ''
        enum:
          - EMAIL
          - MOBILE
          - ORG_NUMBER
          - ORG_NAME
  BillerPayee_Object:
    type: object
    required:
      - billerCode
      - billerName
    properties:
      billerCode:
        type: string
        description: BPay Biller Code of the Biller
        default: ''
      crn:
        type: string
        description: 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
        default: ''
      billerName:
        type: string
        description: Name of the Biller
        default: ''
  InternationalPayee_Object:
    type: object
    required:
      - beneficiaryDetails
      - bankDetails
    properties:
      beneficiaryDetails:
        type: object
        required:
          - country
        properties:
          name:
            type: string
            description: Name of the beneficiary
            default: ''
          country:
            type: string
            description: Country where the beneficiary resides
            default: ''
          message:
            type: string
            description: Response message for the payment
            default: ''
      bankDetails:
        type: object
        required:
          - country
          - accountNumber
        properties:
          country:
            type: string
            description: Country of the recipient institution
            default: ''
          accountNumber:
            type: string
            description: Account Targeted for payment
            default: ''
          bankAddress:
            type: object
            required:
              - name
              - address
            properties:
              name:
                type: string
                description: Name of the recipient Bank
                default: ''
              address:
                type: string
                description: Address of the recipient Bank
                default: ''
          beneficiaryBankBIC:
            type: string
            description: Swift bank code
            default: ''
          fedWireNumber:
            type: string
            description: Number for Fedwire payment (Federal Reserve Wire Network)
            default: ''
          sortCode:
            type: string
            description: Sort code used for account identification in some jurisdictions
            default: ''
          chipNumber:
            type: string
            description: Number for the Clearing House Interbank Payments System
            default: ''
          routingNumber:
            type: string
            description: International bank routing number
            default: ''
  200_GET_Banking_Direct-Debits:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - directDebitAuthorisations
        properties:
          directDebitAuthorisations:
            type: array
            description: The list of authorisations returned
            items:
              $ref: '#/definitions/DirectDebits_Object'
      links:
        $ref: '#/definitions/LinksPaginated_Object'
      meta:
        $ref: '#/definitions/MetaPaginated_Object'
  DirectDebits_Object:
    type: object
    required:
      - accountId
    properties:
      accountId:
        type: string
        description: A unique ID of the account adhering to the standards for ID permanence.
        default: ''
        format: ASCIIString
      authorisedEntity:
        $ref: '#/definitions/AuthorisedEntity_Object'
      lastDebitDateTime:
        type: string
        description: The date and time of the last debit executed under this authorisation
        default: ''
        format: DateTimeString
      lastDebitAmount:
        type: string
        description: The amount of the last debit executed under this authorisation
        default: ''
        format: AmountString
  AuthorisedEntity_Object:
    type: object
    required:
      - name
      - financialInstitution
    properties:
      name:
        type: string
        description: Name of the authorised entity
        default: ''
      financialInstitution:
        type: string
        description: Name of the financial institution through which the direct debit will be executed
        default: ''
      abn:
        type: string
        description: Australian Business Number for the authorised entity
        default: ''
      acn:
        type: string
        description: Australian Business Number for the authorised entity
        default: ''
  200_GET_Common_Customer:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - customer$type
        properties:
          customer$type:
            type: string
            description: The type of customer object that is present
            default: ''
            enum:
              - person
              - organisation
          person:
            $ref: '#/definitions/Person_Object'
          organisation:
            $ref: '#/definitions/Organisation_Object'
      links:
        $ref: '#/definitions/Links_Object'
      meta:
        $ref: '#/definitions/Meta_Object'
  200_GET_Common_Customer_Detailed:
    type: object
    required:
      - data
      - links
      - meta
    properties:
      data:
        type: object
        required:
          - customer$type
        properties:
          customer$type:
            type: string
            description: The type of customer object that is present
            default: ''
            enum:
              - person
              - organisation
          person:
            $ref: '#/definitions/PersonDetail_Object'
          organisation:
            $ref: '#/definitions/OrganisationDetail_Object'
      links:
        $ref: '#/definitions/Links_Object'
      meta:
        $ref: '#/definitions/Meta_Object'
  Person_Object:
    type: object
    required:
      - lastUpdateTime
      - lastName
      - middleNames
    properties:
      lastUpdateTime:
        type: string
        description: The date and time that this record was last updated by the customer.  If no update has occurred then this date should reflect the initial creation date for the data
        format: DateTimeString
        default: ''
      firstName:
        type: string
        description: For people with single names this field need not be present.  The single name should be in the lastName field
        default: ''
      lastName:
        type: string
        description: For people with single names the single name should be in this field
        default: ''
      middleNames:
        type: array
        description: Field is mandatory but array may be empty
        items:
          type: string
      prefix:
        type: string
        description: 'Also known as title or salutation.  The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)'
        default: ''
      suffix:
        type: string
        description: Used for a trailing suffix to the name (e.g. Jr)
        default: ''
      occupationCode:
        type: string
        description: Occupation code as defined by the ANZSCO  v1.2 Standard Classification of Occupations
        default: ''
  PersonDetail_Object:
    type: object
    required:
      - lastUpdateTime
      - lastName
      - middleNames
      - phoneNumbers
      - emailAddresses
      - physicalAddresses
    properties:
      lastUpdateTime:
        type: string
        description: The date and time that this record was last updated by the customer.  If no update has occurred then this date should reflect the initial creation date for the data
        format: DateTimeString
        default: ''
      firstName:
        type: string
        description: For people with single names this field need not be present.  The single name should be in the lastName field
        default: ''
      lastName:
        type: string
        description: For people with single names the single name should be in this field
        default: ''
      middleNames:
        type: array
        description: Field is mandatory but array may be empty
        items:
          type: string
      prefix:
        type: string
        description: 'Also known as title or salutation.  The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)'
        default: ''
      suffix:
        type: string
        description: Used for a trailing suffix to the name (e.g. Jr)
        default: ''
      occupationCode:
        type: string
        description: Occupation code as defined by the ANZSCO  v1.2 Standard Classification of Occupations
        default: ''
      phoneNumbers:
        type: array
        description: At least one record is required
        items:
          $ref: '#/definitions/PhoneNumber'
      emailAddresses:
        type: array
        description: May be empty
        items:
          $ref: '#/definitions/EmailAddress'
      physicalAddresses:
        type: array
        description: 'Must contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail'
        items:
          $ref: '#/definitions/PhysicalAddress_Object'
  Organisation_Object:
    type: object
    required:
      - lastUpdateTime
      - agentLastName
      - agentRole
      - businessName
      - organisationType
    properties:
      lastUpdateTime:
        type: string
        description: The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data
        format: DateTimeString
        default: ''
      agentFirstName:
        type: string
        description: The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present.  The single name should be in the lastName field
        default: ''
      agentLastName:
        type: string
        description: The last name of the individual providing access on behalf of the organisation. For people with single names the single name should be in this field
        default: ''
      agentRole:
        type: string
        description: The role of the individual identified as the agent who is providing authorisation.  Expected to be used for display.  Default to “Unspecified” if the role is not known
        default: ''
      businessName:
        type: string
        description: Name of the organisation
        default: ''
      legalName:
        type: string
        description: 'Legal name, if different to the business name'
        default: ''
      shortName:
        type: string
        description: 'Short name used for communication, if  different to the business name'
        default: ''
      abn:
        type: string
        description: Australian Business Number for the organisation
        default: ''
      acn:
        type: string
        description: Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type
        default: ''
      isACNCRegistered:
        type: boolean
        description: True if registered with the ACNC.  False if not. Absent or null if not confirmed.
        default: ''
      industryCode:
        type: string
        description: ANZSIC (2006) code for the organisation.
        default: ''
      organisationType:
        type: string
        description: Legal organisation type
        default: ''
        enum:
          - SOLE_TRADER
          - COMPANY
          - PARTNERSHIP
          - TRUST
          - GOVERNMENT_ENTITY
          - OTHER
      registeredCountry:
        type: string
        description: Enumeration with values from ISO 3166 Alpha-3 country codes.  Assumed to be AUS if absent
        default: ''
      establishmentDate:
        type: string
        description: The date the organisation described was established
        format: DateTimeString
        default: ''
  OrganisationDetail_Object:
    type: object
    required:
      - lastUpdateTime
      - agentLastName
      - agentRole
      - businessName
      - organisationType
      - physicalAddress
    properties:
      lastUpdateTime:
        type: string
        description: The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data
        format: DateTimeString
        default: ''
      agentFirstName:
        type: string
        description: The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present.  The single name should be in the lastName field
        default: ''
      agentLastName:
        type: string
        description: The last name of the individual providing access on behalf of the organisation. For people with single names the single name should be in this field
        default: ''
      agentRole:
        type: string
        description: The role of the individual identified as the agent who is providing authorisation.  Expected to be used for display.  Default to “Unspecified” if the role is not known
        default: ''
      businessName:
        type: string
        description: Name of the organisation
        default: ''
      legalName:
        type: string
        description: 'Legal name, if different to the business name'
        default: ''
      shortName:
        type: string
        description: 'Short name used for communication, if  different to the business name'
        default: ''
      abn:
        type: string
        description: Australian Business Number for the organisation
        default: ''
      acn:
        type: string
        description: Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type
        default: ''
      isACNCRegistered:
        type: boolean
        description: True if registered with the ACNC.  False if not. Absent or null if not confirmed.
        default: ''
      industryCode:
        type: string
        description: ANZSIC (2006) code for the organisation.
        default: ''
      organisationType:
        type: string
        description: Legal organisation type
        default: ''
        enum:
          - SOLE_TRADER
          - COMPANY
          - PARTNERSHIP
          - TRUST
          - GOVERNMENT_ENTITY
          - OTHER
      registeredCountry:
        type: string
        description: Enumeration with values from ISO 3166 Alpha-3 country codes.  Assumed to be AUS if absent
        default: ''
      establishmentDate:
        type: string
        description: The date the organisation described was established
        format: DateTimeString
        default: ''
      physicalAddress:
        type: array
        description: 'Must contain at least one address. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail'
        items:
          $ref: '#/definitions/PhysicalAddress_Object'
  PhoneNumber:
    type: object
    required:
      - isPreferred
      - purpose
      - number
      - fullNumber
    properties:
      isPreferred:
        type: boolean
        description: Required to be true for one and only one entry to indicate the preferred phone number
        default: ''
      purpose:
        type: string
        description: The purpose of the number as specified by the customer
        default: ''
        enum:
          - MOBILE
          - HOME
          - WORK
          - OTHER
          - INTERNATIONAL
          - UNSPECIFIED
      countryCode:
        type: string
        description: 'If absent, assumed to be Australia (+61). The + should be included'
        default: ''
      areaCode:
        type: string
        description: 'Required for non Mobile Phones, if field is present and refers to Australian code - the leading 0 should be omitted.'
        default: ''
      number:
        type: string
        description: 'The actual phone number, with leading zeros as appropriate'
        default: ''
      extension:
        type: string
        description: An extension number (if applicable)
        default: ''
      fullNumber:
        type: string
        description: 'Fully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of RFC 3966'
        default: ''
  EmailAddress:
    type: object
    required:
      - isPreferred
      - purpose
      - address
    properties:
      isPreferred:
        type: boolean
        description: Required for one and only one email record in the collection. Denotes the default email address
        default: ''
      purpose:
        type: string
        description: 'The purpose for the email, as specified by the customer (Enumeration)'
        default: ''
        enum:
          - WORK
          - HOME
          - OTHER
          - UNSPECIFIED
      address:
        type: string
        description: 'A correctly formatted email address, as defined by the addr_spec format in RFC_5322'
        default: ''
  PhysicalAddress_Object:
    type: object
    required:
      - purpose
      - address$type
    properties:
      purpose:
        type: string
        description: Enumeration of values indicating the purpose of the physical address
        default: ''
        enum:
          - REGISTERED
          - MAIL
          - PHYSICAL
          - WORK
          - OTHER
      address$type:
        type: string
        description: The type of address object present
        default: ''
        enum:
          - simple
          - paf
      simple:
        $ref: '#/definitions/SimpleAddress_Object'
      paf:
        $ref: '#/definitions/PAFAddress_Object'
  SimpleAddress_Object:
    type: object
    required:
      - addressLine1
      - city
      - state
    properties:
      mailingName:
        type: string
        description: Name of the individual or business formatted for inclusion in an address used for physical mail
        default: ''
      addressLine1:
        type: string
        description: First line of the standard address object
        default: ''
      addressLine2:
        type: string
        description: Second line of the standard address object
        default: ''
      addressLine3:
        type: string
        description: Third line of the standard address object
        default: ''
      postcode:
        type: string
        description: Mandatory for Australian addresses
        default: ''
      city:
        type: string
        description: Name of the city or locality
        default: ''
      state:
        type: string
        description: 'Free text if the country is not Australia. If country is Australia then must be one of the values defined by the ISO 3166:AU standard'
        default: ''
      country:
        type: string
        description: A valid ISO 3166 Alpha-3 country code
        default: ''
  PAFAddress_Object:
    type: object
  Links_Object:
    type: object
    properties:
      self:
        type: string
        description: Fully qualified link to this API call
        default: ''
        format: URIString
  Meta_Object:
    type: object
  LinksPaginated_Object:
    type: object
    properties:
      self:
        type: string
        description: Fully qualified link to this API call
        default: ''
        format: URIString
      first:
        type: string
        description: URI to the first page of this set. Mandatory if this response is not the first page
        default: ''
        format: URIString
      prev:
        type: string
        description: URI to the first previous page of this set. Mandatory if this response is not the first page
        default: ''
        format: URIString
      next:
        type: string
        description: URI to the first next page of this set. Mandatory if this response is not the last page
        default: ''
        format: URIString
      last:
        type: string
        description: URI to the first last page of this set. Mandatory if this response is not the last page
        default: ''
        format: URIString
  MetaPaginated_Object:
    type: object
    properties:
      totalRecords:
        type: integer
        description: The total number of records in the full set
        default: ''
        format: NaturalNumber
      totalPages:
        type: integer
        description: The total number of pages in the full set
        default: ''
        format: NaturalNumber
  422_Errors:
    type: object
    required:
      - errors
    properties:
      errors:
        type: array
        items:
          type: object
          required:
            - code
            - title
            - detail
          properties:
            code:
              type: string
              description: The code of the error
              default: ''
            title:
              type: string
              description: A displayable title of the error type
              default: ''
            detail:
              type: string
              description: Detail of the error
              default: ''
            meta:
              type: object
              description: Optional additional data for specific error types
              default: ''
