BCU Bank Banking Accounts API

Banking Account endpoints

OpenAPI Specification

bcu-bank-banking-accounts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: CDR Banking Banking Account Balances Banking Accounts API
  version: 1.36.0
  description: Specifications for resource endpoints applicable to data holders in the Banking sector.
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
  contact:
    name: Data Standards Body
    email: contact@dsb.gov.au
    url: https://dsb.gov.au/
servers:
- description: MTLS
  url: https://mtls.dh.example.com/cds-au/v1
tags:
- name: Banking Accounts
  x-shortName: Accounts
  description: Banking Account endpoints
paths:
  /banking/accounts:
    get:
      tags:
      - Banking Accounts
      summary: Get Accounts
      description: 'Obtain a list of accounts.


        Obsolete versions: [v1](includes/obsolete/get-accounts-v1.html), [v2](includes/obsolete/get-accounts-v2.html).'
      operationId: listBankingAccounts
      parameters:
      - $ref: '#/components/parameters/QueryBankingProductCategory'
      - $ref: '#/components/parameters/QueryBankingAccountOpenStatus'
      - $ref: '#/components/parameters/QueryBankingAccountIsOwned'
      - $ref: '#/components/parameters/QueryPage'
      - $ref: '#/components/parameters/QueryPageSize'
      - $ref: '#/components/parameters/HeaderXV'
      - $ref: '#/components/parameters/HeaderXMinV'
      - $ref: '#/components/parameters/HeaderXFAPIInteractionId'
      - $ref: '#/components/parameters/HeaderXFAPIAuthDate'
      - $ref: '#/components/parameters/HeaderXFAPICustomerIPAddress'
      - $ref: '#/components/parameters/HeaderXCDSClientHeaders'
      responses:
        '200':
          $ref: '#/components/responses/ListBankingAccounts200'
        '400':
          $ref: '#/components/responses/ListBankingAccounts400'
        '406':
          $ref: '#/components/responses/ListBankingAccounts406'
        '422':
          $ref: '#/components/responses/ListBankingAccounts422'
      x-scopes:
      - bank:accounts.basic:read
      x-version: '3'
  /banking/accounts/{accountId}:
    get:
      tags:
      - Banking Accounts
      summary: Get Account Detail
      description: 'Obtain detailed information on a single account.


        Obsolete versions: [v1](includes/obsolete/get-account-detail-v1.html), [v2](includes/obsolete/get-account-detail-v2.html), [v3](includes/obsolete/get-account-detail-v3.html), [v4](includes/obsolete/get-account-detail-v4.html).'
      operationId: getBankingAccountDetail
      parameters:
      - $ref: '#/components/parameters/PathAccountId'
      - $ref: '#/components/parameters/HeaderXV'
      - $ref: '#/components/parameters/HeaderXMinV'
      - $ref: '#/components/parameters/HeaderXFAPIInteractionId'
      - $ref: '#/components/parameters/HeaderXFAPIAuthDate'
      - $ref: '#/components/parameters/HeaderXFAPICustomerIPAddress'
      - $ref: '#/components/parameters/HeaderXCDSClientHeaders'
      responses:
        '200':
          $ref: '#/components/responses/GetBankingAccountDetail200'
        '400':
          $ref: '#/components/responses/GetBankingAccountDetail400'
        '404':
          $ref: '#/components/responses/GetBankingAccountDetail404'
        '406':
          $ref: '#/components/responses/GetBankingAccountDetail406'
      x-scopes:
      - bank:accounts.detail:read
      x-version: '5'
components:
  parameters:
    HeaderXFAPICustomerIPAddress:
      name: x-fapi-customer-ip-address
      in: header
      description: The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.
      schema:
        type: string
    HeaderXCDSClientHeaders:
      name: x-cds-client-headers
      in: header
      description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User-Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.
      schema:
        type: string
      x-conditional: true
      x-cds-type: Base64
    HeaderXFAPIInteractionId:
      name: x-fapi-interaction-id
      in: header
      description: An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.
      schema:
        type: string
    QueryBankingAccountIsOwned:
      name: is-owned
      in: query
      description: Filters accounts based on whether they are owned by the authorised customer. `true` for owned accounts, `false` for unowned accounts and absent for all accounts.
      schema:
        type: boolean
    PathAccountId:
      name: accountId
      in: path
      description: The _accountId_ to obtain data for. _accountId_ values are returned by account list endpoints.
      required: true
      schema:
        $ref: '#/components/schemas/BankingAccountId'
    QueryBankingAccountOpenStatus:
      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.
      schema:
        type: string
        default: ALL
        enum:
        - ALL
        - CLOSED
        - OPEN
    QueryBankingProductCategory:
      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.
      schema:
        $ref: '#/components/schemas/BankingProductCategoryV2'
    HeaderXV:
      name: x-v
      in: header
      description: Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).
      required: true
      schema:
        type: string
    HeaderXMinV:
      name: x-min-v
      in: header
      description: Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.
      schema:
        type: string
    QueryPageSize:
      name: page-size
      in: query
      description: Page size to request. Default is 25 (standard pagination).
      schema:
        type: integer
        default: 25
      x-cds-type: PositiveInteger
    HeaderXFAPIAuthDate:
      name: x-fapi-auth-date
      in: header
      description: The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
      schema:
        type: string
      x-conditional: true
    QueryPage:
      name: page
      in: query
      description: Page of results to request (standard pagination).
      schema:
        type: integer
        default: 1
      x-cds-type: PositiveInteger
  schemas:
    BankingProductDiscountV2:
      description: Note that the currency of the fee discount is expected to be the same as the currency of the fee itself.
      required:
      - description
      - discountType
      - discountMethodUType
      type: object
      properties:
        description:
          type: string
          description: Description of the discount.
        discountType:
          type: string
          description: The type of discount. For further details, refer to [Product Discount Types](#tocSproductdiscounttypedoc).
          enum:
          - BALANCE
          - DEPOSITS
          - ELIGIBILITY_ONLY
          - FEE_CAP
          - PAYMENTS
        discountMethodUType:
          type: string
          description: Reference to the applicable fee discount method structure.
          enum:
          - fixedAmount
          - rateBased
        fixedAmount:
          description: Mandatory if the _discountMethodUType_ value is `fixedAmount`. Where the discount is a specific amount.
          allOf:
          - $ref: '#/components/schemas/BankingFeeDiscountAmount'
        rateBased:
          description: Mandatory if the _discountMethodUType_ value is `rateBased`. Where the discount is based on a type of rate. Unless noted in _additionalInfo_, assumes the application and calculation frequency are the same as the corresponding fee.
          allOf:
          - $ref: '#/components/schemas/BankingFeeDiscountRate'
        additionalValue:
          type: string
          description: Generic field containing additional information relevant to the [_discountType_](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [_discountType_](#tocSproductdiscounttypedoc).
        additionalInfo:
          type: string
          description: Display text providing more information on the discount.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on this discount.
          x-cds-type: URIString
        eligibility:
          type: array
          description: Eligibility constraints that apply to this discount. Mandatory if the [_discountType_](#tocSproductdiscounttypedoc) value is `ELIGIBILITY_ONLY`.
          items:
            $ref: '#/components/schemas/BankingProductDiscountEligibility'
      x-conditional:
      - fixedAmount
      - rateBased
      - additionalValue
      - eligibility
    Meta:
      type: object
    BankingFeeDiscountRate:
      type: object
      required:
      - rateType
      - rate
      properties:
        rateType:
          type: string
          description: Type of fee rate discount calculation.<ul><li>`BALANCE` A fee rate discount based on a balance</li><li>`FEE` A fee rate discount based on the fee to which the discount is attached</li><li>`INTEREST_ACCRUED` A fee rate discount based on interest accrued</li><li>`TRANSACTION` A fee rate discount based on a transaction.</li></ul>
          enum:
          - BALANCE
          - FEE
          - INTEREST_ACCRUED
          - TRANSACTION
        rate:
          type: string
          x-cds-type: RateString
          description: The fee rate discount calculated according to the _rateType_.
        amountRange:
          $ref: '#/components/schemas/BankingFeeDiscountRange'
    Links:
      required:
      - self
      type: object
      properties:
        self:
          type: string
          description: Fully qualified link that generated the current response document.
          x-cds-type: URIString
    CommonSimpleAddress:
      description: Mandatory if the _addressUType_ value is `simple`.
      required:
      - addressLine1
      - city
      - state
      type: object
      properties:
        mailingName:
          type: string
          description: Name of the individual or business formatted for inclusion in an address used for physical mail.
        addressLine1:
          type: string
          description: First line of the standard address object.
        addressLine2:
          type: string
          description: Second line of the standard address object.
        addressLine3:
          type: string
          description: Third line of the standard address object.
        postcode:
          type: string
          description: Mandatory for Australian addresses.
        city:
          type: string
          description: Name of the city or locality.
        state:
          type: string
          description: Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.
        country:
          type: string
          description: A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (`AUS`) is assumed if country is not present.
          default: AUS
          x-cds-type: ExternalRef
      x-conditional:
      - postcode
    LinksPaginated:
      required:
      - self
      type: object
      properties:
        self:
          type: string
          description: Fully qualified link that generated the current response document.
          x-cds-type: URIString
        first:
          type: string
          description: URI to the first page of this set. Mandatory if this response is not the first page.
          x-cds-type: URIString
        prev:
          type: string
          description: URI to the previous page of this set. Mandatory if this response is not the first page.
          x-cds-type: URIString
        next:
          type: string
          description: URI to the next page of this set. Mandatory if this response is not the last page.
          x-cds-type: URIString
        last:
          type: string
          description: URI to the last page of this set. Mandatory if this response is not the last page.
          x-cds-type: URIString
      x-conditional:
      - prev
      - next
      - first
      - last
    BankingAccountDetailV5:
      allOf:
      - $ref: '#/components/schemas/BankingAccountV3'
      - type: object
        properties:
          bsb:
            type: string
            description: The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces.
          accountNumber:
            type: string
            description: The unmasked account number for the account. Should not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces.
          bundleName:
            type: string
            description: Optional field to indicate if this account is part of a bundle that is providing additional benefit to the customer.
          instalments:
            $ref: '#/components/schemas/BankingProductInstalments'
          specificAccountUType:
            type: string
            description: The type of structure to present account specific fields.
            enum:
            - creditCard
            - loan
            - termDeposit
          termDeposit:
            type: array
            description: Mandatory if the _specificAccountUType_ value is `termDeposit`.
            items:
              $ref: '#/components/schemas/BankingTermDepositAccount'
          creditCard:
            description: Mandatory if the _specificAccountUType_ value is `creditCard`.
            allOf:
            - $ref: '#/components/schemas/BankingCreditCardAccount'
          loan:
            description: Mandatory if the _specificAccountUType_ value is `loan`.
            allOf:
            - $ref: '#/components/schemas/BankingLoanAccountV3'
          depositRate:
            type: string
            description: Current rate to calculate interest earned being applied to deposit balances as it stands at the time of the API call.
            x-cds-type: RateString
          lendingRate:
            type: string
            description: The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call.
            x-cds-type: RateString
          depositRates:
            type: array
            description: Fully described deposit rates for this account based on the equivalent structure in Product Reference.
            items:
              $ref: '#/components/schemas/BankingProductDepositRateV2'
          lendingRates:
            type: array
            description: Fully described lending rates for this account based on the equivalent structure in Product Reference.
            items:
              $ref: '#/components/schemas/BankingProductLendingRateV3'
          features:
            type: array
            description: Array of features of the account based on the equivalent structure in Product Reference with the following additional field.
            items:
              type: object
              allOf:
              - $ref: '#/components/schemas/BankingProductFeatureV4'
              - type: object
                properties:
                  isActivated:
                    type: string
                    description: <ul><li>`ACTIVATED` if the feature has been activated by the customer or is a standard feature of the product</li><li>`NOT_ACTIVATED` if the feature is not activated but is available for activation</li><li>`UNKNOWN` or absent if the activation state is unknown.</ul>**Note:** This is an additional field appended to the feature structure defined in the Product Reference payload.
                    enum:
                    - ACTIVATED
                    - NOT_ACTIVATED
                    - UNKNOWN
                    default: UNKNOWN
          fees:
            type: array
            description: Fees and charges applicable to the account based on the equivalent structure in Product Reference.
            items:
              $ref: '#/components/schemas/BankingProductFeeV2'
          addresses:
            type: array
            description: The addresses for the account to be used for correspondence.
            items:
              $ref: '#/components/schemas/CommonPhysicalAddress'
        x-conditional:
        - termDeposit
        - creditCard
        - loan
    ResponseBankingAccountByIdV5:
      required:
      - data
      - links
      type: object
      properties:
        data:
          $ref: '#/components/schemas/BankingAccountDetailV5'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
    BankingFeeRate:
      type: object
      required:
      - rateType
      - rate
      properties:
        rateType:
          type: string
          description: Type of fee rate calculation.<ul><li>`BALANCE` A fee rate based on a balance</li><li>`INTEREST_ACCRUED` A fee rate based on interest accrued</li><li>`TRANSACTION` A fee rate based on a transaction.</li></ul>
          enum:
          - BALANCE
          - INTEREST_ACCRUED
          - TRANSACTION
        rate:
          type: string
          x-cds-type: RateString
          description: The fee rate calculated according to the _rateType_.
        accrualFrequency:
          type: string
          description: The indicative frequency with which the fee is calculated on the account if applicable. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).
          x-cds-type: ExternalRef
        amountRange:
          $ref: '#/components/schemas/BankingFeeRange'
      x-conditional:
      - balanceRate
      - transactionRate
      - accruedRate
    BankingCreditCardAccount:
      required:
      - minPaymentAmount
      - paymentDueAmount
      - paymentDueDate
      type: object
      properties:
        minPaymentAmount:
          type: string
          description: The minimum payment amount due for the next card payment.
          x-cds-type: AmountString
        paymentDueAmount:
          type: string
          description: The amount due for the next card payment.
          x-cds-type: AmountString
        paymentCurrency:
          type: string
          description: If absent assumes `AUD`.
          default: AUD
          x-cds-type: CurrencyString
        paymentDueDate:
          type: string
          description: Date that the next payment for the card is due.
          x-cds-type: DateString
    BankingProductDepositRateV2:
      required:
      - depositRateType
      - rate
      - applicationType
      type: object
      properties:
        depositRateType:
          type: string
          description: The type of rate (`FIXED`, `VARIABLE`, `BONUS`, etc.) For further details, refer to [Product Deposit Rate Types](#tocSproductdepositratetypedoc).
          enum:
          - BONUS
          - BUNDLE_BONUS
          - FIXED
          - FLOATING
          - INTRODUCTORY
          - MARKET_LINKED
          - VARIABLE
          example: VARIABLE
        rate:
          type: string
          description: The rate to be applied.
          x-cds-type: RateString
        calculationFrequency:
          type: string
          description: The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see _applicationFrequency_). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).
          x-cds-type: ExternalRef
        applicationType:
          type: string
          description: The type of approach used to apply the rate to the account.
          enum:
          - MATURITY
          - PERIODIC
          - UPFRONT
          example: PERIODIC
        applicationFrequency:
          type: string
          description: The period after which the calculated amount(s) (see _calculationFrequency_) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax). Mandatory if the _applicationType_ value is `PERIODIC`.
          x-cds-type: ExternalRef
        tiers:
          type: array
          description: Qualifying criteria or conditions relevant to the associated rate.
          items:
            $ref: '#/components/schemas/BankingProductRateTierV4'
        applicabilityConditions:
          type: array
          description: Applicability conditions for the rate.
          items:
            $ref: '#/components/schemas/BankingProductRateConditionV2'
        additionalValue:
          type: string
          description: Generic field containing additional information relevant to the [_depositRateType_](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [_depositRateType_](#tocSproductdepositratetypedoc).
        additionalInfo:
          type: string
          description: Display text providing more information on the rate.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on this rate.
          x-cds-type: URIString
      x-conditional:
      - additionalValue
      - applicationFrequency
    ErrorV2:
      type: object
      required:
      - code
      - title
      - detail
      x-conditional:
      - meta
      properties:
        code:
          type: string
          description: The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the _meta_ object. Otherwise, the value is the error code URN.
        title:
          type: string
          description: A short, human-readable summary of the problem that **MUST NOT** change from occurrence to occurrence of the problem represented by the error code.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        meta:
          type: object
          x-conditional:
          - urn
          description: Additional data for customised error codes.
          properties:
            urn:
              type: string
              description: The CDR error code URN which the application-specific error code extends. Mandatory if the error _code_ is an application-specific error rather than a standardised error code.
    BankingProductInstalments:
      description: Details of instalment features on the account.
      required:
      - minimumSplit
      - maximumSplit
      type: object
      properties:
        maximumConcurrentPlans:
          type: integer
          description: Maximum number of concurrent active instalment plans that may be created on the account. If `null`, there is no predetermined maximum number.
          x-cds-type: NaturalNumber
        instalmentsLimit:
          type: string
          description: Maximum combined limit of all instalment plans that may be created on the account. If `null` or not present, an opened account balance _creditLimit_ may be assumed to provide a maximum limit for instalments.
          x-cds-type: AmountString
        minimumPlanValue:
          type: string
          description: Minimum value that can be opened as an instalment plan.
          x-cds-type: AmountString
        maximumPlanValue:
          type: string
          description: Maximum value that can be opened as an instalment plan. If `null` or not present, _instalmentsLimit_ is assumed to be the maximum individual plan value.
          x-cds-type: AmountString
        minimumSplit:
          type: integer
          description: Minimum number of instalment payments a plan can be created with.
          x-cds-type: PositiveInteger
          example: 4
        maximumSplit:
          type: integer
          description: Maximum number of instalment payments a plan can be created with.
          x-cds-type: PositiveInteger
          example: 4
    BankingAccountId:
      type: string
      description: A unique identifier for a Banking account, generated according to [CDR ID Permanence](#id-permanence) requirements.
      x-cds-type: ASCIIString
    CommonPhysicalAddress:
      required:
      - addressUType
      type: object
      properties:
        addressUType:
          type: string
          description: The type of address object present.
          enum:
          - paf
          - simple
        simple:
          $ref: '#/components/schemas/CommonSimpleAddress'
        paf:
          $ref: '#/components/schemas/CommonPAFAddress'
      x-conditional:
      - simple
      - paf
    ResponseBankingAccountListV3:
      required:
      - data
      - links
      - meta
      type: object
      properties:
        data:
          required:
          - accounts
          type: object
          properties:
            accounts:
              type: array
              description: The list of accounts returned. If the filter results in an empty set then this array may have no records.
              items:
                $ref: '#/components/schemas/BankingAccountV3'
        links:
          $ref: '#/components/schemas/LinksPaginated'
        meta:
          $ref: '#/components/schemas/MetaPaginated'
    BankingProductLendingRateV3:
      required:
      - lendingRateType
      - rate
      - applicationType
      - repaymentType
      - loanPurpose
      type: object
      properties:
        lendingRateType:
          type: string
          description: The type of rate (`FIXED`, `VARIABLE`, etc.) For further details, refer to [Product Lending Rate Types](#tocSproductlendingratetypedoc).
          enum:
          - BALANCE_TRANSFER
          - BUNDLE_DISCOUNT_FIXED
          - BUNDLE_DISCOUNT_VARIABLE
          - CASH_ADVANCE
          - DISCOUNT
          - FIXED
          - FLOATING
          - INTRODUCTORY
          - MARKET_LINKED
          - PENALTY
          - PURCHASE
          - VARIABLE
          example: FIXED
        rate:
          type: string
          description: The rate to be applied.
          x-cds-type: RateString
        comparisonRate:
          type: string
          description: A comparison rate equivalent for this rate.
          x-cds-type: RateString
        calculationFrequency:
          type: string
          description: The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see _applicationFrequency_). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).
          x-cds-type: ExternalRef
        applicationType:
          type: string
          description: The type of approach used to apply the rate to the account.
          enum:
          - MATURITY
          - PERIODIC
          - UPFRONT
          example: PERIODIC
        applicationFrequency:
          type: string
          description: The period after which the calculated amount(s) (see _calculationFrequency_) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax). Mandatory if the _applicationType_ value is `PERIODIC`.
          x-cds-type: ExternalRef
        interestPaymentDue:
          type: string
          description: When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered.
          enum:
          - IN_ADVANCE
          - IN_ARREARS
        repaymentType:
          type: string
          description: Option in place for repayments.
          enum:
          - INTEREST_ONLY
          - OTHER
          - PRINCIPAL_AND_INTEREST
          - UNCONSTRAINED
        loanPurpose:
          type: string
          description: The reason for taking out the loan.
          enum:
          - INVESTMENT
          - OTHER
          - OWNER_OCCUPIED
          - UNCONSTRAINED
        tiers:
          type: array
          description: Qualifying criteria or conditions relevant to the associated rate.
          items:
            $ref: '#/components/schemas/BankingProductRateTierV4'
        applicabilityConditions:
          type: array
          description: Applicability conditions for the rate.
          items:
            $ref: '#/components/schemas/BankingProductRateConditionV2'
        additionalValue:
          type: string
          description: Generic field containing additional information relevant to the [_lendingRateType_](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [_lendingRateType_](#tocSproductlendingratetypedoc).
        additionalInfo:
          type: string
          description: Display text providing more information on the rate.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on this rate.
          x-cds-type: URIString
      x-conditional:
      - additionalValue
      - applicationFrequency
    BankingProductDiscountEligibility:
      required:
      - discountEligibilityType
      type: object
      properties:
        discountEligibilityType:
          type: string
          description: The type of the specific eligibility constraint for a discount. For further details, refer to [Product Discount Eligibility Types](#tocSproductdiscounteligibilitydoc).
          enum:
          - BUSINESS
          - EMPLOYMENT_STATUS
          - INTRODUCTORY
          - MAX_AGE
          - MIN_AGE
          - MIN_INCOME
          - MIN_TURNOVER
          - NATURAL_PERSON
          - OTHER
          - PENSION_RECIPIENT
          - RESIDENCY_STATUS
          - STAFF
          - STUDENT
        additionalValue:
          type: string
          description: Generic field containing additional information relevant to the [_discountEligibilityType_](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [_discountEligibilityType_](#tocSproductdiscounteligibilitydoc).
        additionalInfo:
          type: string
          description: Display text providing more information on this eligibility constraint. Mandatory if the [_discountEligibilityType_](#tocSproductdiscounteligibilitydoc) value is `OTHER`.
        additionalInfoUri:
          type: string

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bcu-bank/refs/heads/main/openapi/bcu-bank-banking-accounts-api-openapi.yml