Commonwealth Bank Products API API

Get details on available CommBank products including deposit and transaction accounts, credit cards, home loans, personal loans, and offset accounts. Information available through the API includes eligibility, features, pricing, and links to terms & conditions. The Products API is public and does not require any authentication by consumers. Product details including features, eligibility, rates and fees may change from time to time without notice. Please direct your end users to refer to commbank.com.au for current product details.Host URLAll requests are passed to the URL https://api.commbank.com.au/public/cds-au/v1/banking

Operations 2

GET /products Get Products #
GET /products/{productId} Get Product Detail #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/commonwealth-bank-products-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

commonwealth-bank-products-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '1.0'
  title: CommBank Accounts Accounts Products API
  description: "Obtain the list of accounts authorised to be shared by the customer. \n\nAccount API is a consumer API. To access data you'll need the customer's consent.</p><h3 style=\"margin-top:30px;\">Host URL</h3><p>CommBank requests are passed to the URL <span class=\"sc-1noysbl-9 JKaaQ\">https://secure.api.commbank.com.au/api/cds-au/v1/banking</span></p><p>CBA – CommBiz requests are passed to the URL <span class=\"sc-1noysbl-9 JKaaQ\">https://secure.cdr.commbiz.api.commbank.com.au/cbzapi/cds-au/v1/banking</span></p>"
  x-provenance: First-party CommBank OpenAPI (Swagger 2.0) harvested verbatim from the CommBank developer portal. These are Commonwealth Bank's own renderings of its CDR / Open Banking Consumer Data Standards endpoints.
  x-source-url: https://www.commbank.com.au/developer/Documentation/specification/Accounts
  x-doc-url: https://www.commbank.com.au/developer/documentation/Accounts
  x-harvested: '2026-07-21'
servers:
- url: https://secure.api.commbank.com.au/api/cds-au/v1/banking
tags:
- name: Products API
  description: "Get details on available CommBank products including deposit and transaction accounts, credit cards, home loans, personal loans, and offset accounts. Information available through the API includes eligibility, features, pricing, and links to terms & conditions. \n\nThe Products API is public and does not require any authentication by consumers.\n\n<p>Product details including features, eligibility, rates and fees may change from time to time without notice. Please direct your end users to refer to <a href=\"https://www.commbank.com.au\">commbank.com.au</a> for current product details.</p><h3 style=\"margin-top:30px;\">Host URL</h3>All requests are passed to the URL <span class=\"sc-1noysbl-9 JKaaQ\">https://api.commbank.com.au/public/cds-au/v1/banking</span></p>"
paths:
  /products:
    get:
      summary: Get Products
      description: Retrieve summary level information of CommBank products
      operationId: listProducts
      tags:
      - Products API
      parameters:
      - $ref: '#/components/parameters/ParamAcceptHeader'
      - $ref: '#/components/parameters/ParamXVHeader'
      - $ref: '#/components/parameters/ParamXMinVHeader'
      - $ref: '#/components/parameters/ParamXFapiInterationId'
      - name: effective
        in: query
        description: Filter to retrieve products based on the effective status.
        required: false
        schema:
          type: string
          enum:
          - CURRENT
          - FUTURE
          - ALL
          default: CURRENT
      - name: updated-since
        in: query
        description: Filter to retrieve products that were updated since the specified date and time.
        required: false
        schema:
          type: datetime
      - name: brand
        in: query
        description: Filter to retrieve products with a specific brand.
        required: false
        schema:
          type: string
          enum:
          - CBA
      - $ref: '#/components/parameters/ParamProductCategory'
      - $ref: '#/components/parameters/ParamPage'
      - $ref: '#/components/parameters/ParamPageSize'
      responses:
        '200':
          description: Success
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBankingProductList'
        '400':
          description: Bad Request
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse406'
        '422':
          description: Unprocessable Entity
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            Retry-After:
              description: Amount of time the client should wait before re-trying the operation.
              schema:
                type: integer
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseNoBody'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
  /products/{productId}:
    /aa:
      get:
        summary: Get Product Detail
        description: Retrieve detailed information on a single CommBank product.
        operationId: getProductDetail
    get:
      summary: Get Product Detail
      description: Retrieve detailed information on a single CommBank product.
      operationId: getProductDetail
      tags:
      - Products API
      parameters:
      - $ref: '#/components/parameters/ParamAcceptHeader'
      - $ref: '#/components/parameters/ParamXVHeader'
      - $ref: '#/components/parameters/ParamXMinVHeader'
      - $ref: '#/components/parameters/ParamXFapiInterationId'
      - name: productId
        in: path
        description: CommBank’s unique identifier for the product. This should be obtained via the /products end point.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBankingProductById'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse406'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            Retry-After:
              description: Indicates the amount of time the client should wait before retrying the operation
              schema:
                type: integer
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseNoBody'
        '500':
          description: Server Error
          headers:
            Content-Type:
              description: Payload format responded with.
              schema:
                type: string
            x-v:
              description: Version of the API end point responded with.
              schema:
                type: integer
            x-fapi-interaction-Id:
              description: Reflects the value of the Interaction ID in the request, if provided.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
      x-version: '1'
components:
  schemas:
    Meta:
      type: object
      required:
      - totalRecords
      - totalPages
      properties:
        totalRecords:
          type: integer
          description: Total number of records in the full set.
          example: 10
        totalPages:
          description: Total number of pages in the full set.
          example: 10
          type: integer
    Tier:
      type: object
      description: Defines the criteria and conditions for which a rate applies.
      required:
      - name
      - unitOfMeasure
      - minimumValue
      - maximumValue
      properties:
        name:
          type: string
          description: A display name for the tier.
        unitOfMeasure:
          type: string
          description: The unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. 'DOLLAR', 'MONTH' (in the case of term deposit tiers), 'PERCENT' (in the case of loan-to-value ratio or LVR).
          enum:
          - DOLLAR
          - PERCENT
          - MONTH
          - DAY
        minimumValue:
          type: number
          description: The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value.
        maximumValue:
          type: number
          description: 'The number of tierUnitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as tierValueMinimum. Where this is the same as the tierValueMinimum value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months).'
        rateApplicationMethod:
          type: string
          description: The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps').
          enum:
          - WHOLE_BALANCE
          - PER_TIER
        applicabilityConditions:
          $ref: '#/components/schemas/BankingProductRateCondition'
        subTier:
          type: object
          description: Defines the sub-tier criteria and conditions for which a rate applies.
          required:
          - name
          - unitOfMeasure
          - minimumValue
          - maximumValue
          properties:
            name:
              type: string
              description: A display name for the tier.
            unitOfMeasure:
              type: string
              description: The unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. 'DOLLAR', 'MONTH' (in the case of term deposit tiers), 'PERCENT' (in the case of loan-to-value ratio or LVR).
              enum:
              - DOLLAR
              - PERCENT
              - MONTH
              - DAY
            minimumValue:
              type: number
              description: The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value.
            maximumValue:
              type: number
              description: 'The number of tierUnitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as tierValueMinimum. Where this is the same as the tierValueMinimum value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months).'
            rateApplicationMethod:
              type: string
              description: The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps').
              enum:
              - WHOLE_BALANCE
              - PER_TIER
            applicabilityConditions:
              $ref: '#/components/schemas/BankingProductRateCondition'
    LinksPaginated:
      type: object
      required:
      - self
      x-conditional:
      - prev
      - next
      - first
      - last
      properties:
        self:
          type: string
          description: Fully qualified link to this API call.
        first:
          type: string
          description: URI to the first page of this set.
        prev:
          type: string
          description: URI to the previous page of this set.
        next:
          type: string
          description: URI to the next page of this set.
        last:
          type: string
          description: URI to the last page of this set.
    BankingProductRateCondition:
      type: object
      description: Defines a condition for the applicability of a tiered rate.
      properties:
        additionalValue:
          type: string
        additionalInfo:
          type: string
          description: Display text providing more information on the condition.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on this condition.
    BankingProductV3:
      type: object
      required:
      - productId
      - lastUpdated
      - productCategory
      - name
      - description
      - brand
      - isTailored
      properties:
        productId:
          type: string
          description: CommBank’s unique identifier for this product.
        effectiveFrom:
          type: string
          description: Date and time from which this product is made available to customers.
        effectiveTo:
          type: string
          description: Date and time at which this product will be retired and will no longer be offered.
        lastUpdated:
          type: string
          description: Date and time that the information for this product was last updated.
        productCategory:
          type: string
          $ref: '#/components/schemas/BankingEnumProductCategory'
        name:
          type: string
          description: Display name of the product.
        description:
          type: string
          description: Description of the product.
        brand:
          type: string
          description: Label of the brand for the product.
        brandName:
          type: string
          description: Brand display name
        applicationUri:
          type: string
          description: A link to the web page where this product can be applied for.
        isTailored:
          type: boolean
          description: Indicates whether the pricing for the product can be tailored to a specific customer.
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    Constraint:
      type: object
      required:
      - constraintType
      x-conditional:
      - additionalValue
      properties:
        constraintType:
          description: The type of constraint described.
          enum:
          - MIN_BALANCE
          - MAX_BALANCE
          - OPENING_BALANCE
          - MAX_LIMIT
          - MIN_LIMIT
          type: string
        additionalValue:
          description: 'Generic field containing additional information relevant to the constraintType specified. Whether mandatory or not is dependent on the value of constraintType.


            See the below table for more details.


            |Value|Description|Use of additionalValue Field|

            |--- |--- |--- |

            |MIN_BALANCE|A minimum balance is required for the product|The minimum balance in AmountString format|

            |MAX_BALANCE|A maximum balance is required for the product|The maximum balance in AmountString format|

            |OPENING_BALANCE|An opening balance is required for the product|The minimum opening balance in AmountString format|

            |MAX_LIMIT|A maximum credit limit exists|The maximum limit in AmountString format|

            |MIN_LIMIT|A minimum credit limit exists|The minimum limit in AmountString format|


            '
          type: string
        additionalInfo:
          type: string
          description: Display text providing more information describing the constraint.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on the constraint.
    ErrorResponse406:
      type: object
      properties:
        errors:
          uniqueItems: false
          type: array
          items:
            $ref: '#/components/schemas/Error'
      example:
        errors:
        - code: PA-RH-01
          title: Accept header is invalid
          detail: Accept header must be application/json.
        - code: PA-RH-02
          title: Content-Type is invalid
          detail: Content-Type header must be application/json.
        - code: PA-RH-03
          title: x-v is Invalid
          detail: x-v header must be a supported version number.
        - code: PA-RH-04
          title: x-min-v is invalid
          detail: x-min-v header must be a supported version number.
    Eligibility:
      type: object
      required:
      - eligibilityType
      x-conditional:
      - additionalValue
      - additionalInfo
      properties:
        eligibilityType:
          description: The type of eligibility criteria described.
          enum:
          - BUSINESS
          - PENSION_RECIPIENT
          - MIN_AGE
          - MAX_AGE
          - MIN_INCOME
          - MIN_TURNOVER
          - STAFF
          - STUDENT
          - EMPLOYMENT_STATUS
          - RESIDENCY_STATUS
          - NATURAL_PERSON
          - INTRODUCTORY
          - OTHER
          type: string
        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.


            See the below table for more details.


            |Value|Description|Use of additionalValue Field|

            |--- |--- |--- |

            |BUSINESS|Only business may apply for the account|NA|

            |PENSION_RECIPIENT|A recipient of a government pension may apply for the product|NA|

            |MIN_AGE|Only customers older than a minimum age may apply|The minimum age in years|

            |MAX_AGE|Only customers younger than a maximum age may apply|The maximum age in years|

            |MIN_INCOME|The customer must have an income greater than a specified threshold to obtain the product|Minimum income in AmountString format|

            |MIN_TURNOVER|Only a business with greater than a minimum turnover may apply|Minimum turnover in AmountString format|

            |STAFF|Only a staff member of the provider may apply|NA|

            |STUDENT|Only students may apply for the product|NA|

            |EMPLOYMENT_STATUS|An eligibility constraint based on employment status applies|A description of the status required|

            |RESIDENCY_STATUS|An eligibility constraint based on residency status applies|A description of the status required|

            |NATURAL_PERSON|The customer must be a natural person rather than another legal entity|NA|

            |OTHER|Another eligibility criteria exists as described in the additionalInfo field (if this option is specified then the additionalInfo field is mandatory)|Value relevant to the criteria|


            '
          example: '14'
        additionalInfo:
          type: string
          description: Display text providing more information on the eligibility criteria. Mandatory if the eligibilityType field is set to OTHER.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on this eligibility criteria.
    BankingProductDetailV3:
      allOf:
      - $ref: '#/components/schemas/BankingProductV3'
      - type: object
        properties:
          bundles:
            description: An array of bundles that this product participates in.  Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle.  It is assumed that the current product is included in the bundle.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/Bundle'
          features:
            description: Array of features available for the product.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/Feature'
          constraints:
            description: Constraints on the application for or operation of the product such as minimum balances or limit thresholds.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/Constraint'
          eligibility:
            description: Eligibility criteria for the product.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/Eligibility'
          fees:
            description: Fees applicable for the product.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/Fee'
          depositRates:
            description: Interest rates available for deposits.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/DepositRate'
          lendingRates:
            description: Interest rates charged against lending balances.
            uniqueItems: false
            type: array
            items:
              $ref: '#/components/schemas/LendingRate'
          productId:
            type: string
          effectiveFrom:
            format: date-time
            type: string
          effectiveTo:
            format: date-time
            type: string
          lastUpdated:
            format: date-time
            type: string
          productCategory:
            type: string
          name:
            type: string
          description:
            type: string
          brand:
            type: string
          brandName:
            type: string
          applicationUri:
            type: string
          isTailored:
            type: boolean
    Feature:
      type: object
      required:
      - featureType
      x-conditional:
      - additionalValue
      - additionalInfo
      properties:
        featureType:
          type: string
          description: The type of feature described.
          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
          - COMPLEMENTARY_PRODUCT_DISCOUNTS
          - BONUS_REWARDS
          - NOTIFICATIONS
          - OTHER
        additionalValue:
          type: string
          conditional: true
          description: 'Generic field containing additional information relevant to the featureType specified. Whether mandatory or not is dependent on the value of featureType.


            See the below table for more details.


            |Value|Description|Use of additionalValue Field|

            |--- |--- |--- |

            |CARD_ACCESS|A card is available for the product to access funds|Text describing list of card types that this product can be linked to|

            |ADDITIONAL_CARDS|Additional cards can be requested|The maximum number of additional cards.  If no maximum then should be set to null|

            |UNLIMITED_TXNS|Unlimited free transactions available|NA|

            |FREE_TXNS|A set number of free transactions available per month|The number of free transactions|

            |FREE_TXNS_ALLOWANCE|A set amount of transaction fee value that is discounted per month|The amount of transaction fee discounted (in AUD)|

            |LOYALTY_PROGRAM|A points based loyalty program is available|Name of the loyalty program|

            |OFFSET|An offset account can be connected to the product|NA|

            |OVERDRAFT|An overdraft can be applied for|NA|

            |REDRAW|Redraw of repaid principal above minimum required is available|NA|

            |INSURANCE|Insurance is provided as an additional feature of the product|Text description of the type of insurance (e.g. Travel Insurance)|

            |BALANCE_TRANSFERS|Balance transfers can be made to the account (eg. for credit cards)|NA|

            |INTEREST_FREE|Interest free period for purchases|Interest free period. Formatted according to ISO 8601 Durations|

            |INTEREST_FREE_TRANSFERS|Interest free period for balance transfers|Interest free period. Formatted according to ISO 8601 Durations|

            |DIGITAL_WALLET|A Digital wallet can be attached to the product|The name or brand of the wallet|

            |DIGITAL_BANKING|Access is available to online banking features for the product|NA|

            |NPP_PAYID|An account of this product type can be used as the target of an NPP PayID|NA|

            |NPP_ENABLED|An account of this product type can be used to receive funds as a result of a BSB/Number based NPP payment|NA|

            |DONATE_INTEREST|Indicates that interest generated from the product can be automatically donated to a charity or community group|NA|

            |BILL_PAYMENT|The product can be attached to an automatic budgeting and bill payment service|Optional name of the service|

            |COMPLEMENTARY_PRODUCT_DISCOUNTS|Indicates that complementary, discounted offerings (such as gift cards, or discounted travel) is available|Description of the complementary offering|

            |BONUS_REWARDS|Bonus loyalty rewards points are available|Number of points available|

            |NOTIFICATIONS|Advanced notifications are available for the product|Description of the notification capability|

            |OTHER|Another feature that can not be included in any of the other categories.  The additionalInfo field is mandatory for this type|NA|


            '
          example: 'No'
        additionalInfo:
          type: string
          description: Display text providing more information on the feature. Mandatory if the feature type is set to OTHER.
        additionalInfoUri:
          type: string
          description: Link to a web page with more information on this feature.
    BankingEnumProductCategory:
      type: string
      description: Product category of the product.
      enum:
      - TRANS_AND_SAVINGS_ACCOUNTS
      - TERM_DEPOSITS
      - CRED_AND_CHRG_CARDS
    ErrorResponse422:
      type: object
      properties:
        errors:
          uniqueItems: false
          type: array
          items:
            $ref: '#/components/schemas/Error'
      example:
        errors:
        - code: PA-BR-01
          title: page-size is invalid
          detail: page-size must be a number and between 1 and 1000.
    DiscountEligibility:
      type: object
      required:
      - discountEligibilityType
      x-conditional:
      - additionalValue
      properties:
        discountEligibilityType:
          enum:
          - BUSINESS
          - PENSION_RECIPIENT
          - MIN_AGE
          - MAX_AGE
          - MIN_INCOME
          - MIN_TURNOVER
          - STAFF
          - STUDENT
          - EMPLOYMENT_STATUS
          - RESIDENCY_STATUS
          - NATURAL_PERSON
          - INTRODUCTORY
          - OTHER
          type: string
        additionalValue:
          type: string
          description: 'Generic field containing additional information relevant to the discountEligibilityType specified. Whether mandatory or not is dependent on the value of discountEligibilityType.


            See the below table for more details.


            |Value|Description|Use of additionalValue Field|

            |--- |--- |--- |

            |BUSINESS|A business or other non-person legal entity|NA|

            |PENSION_RECIPIENT|A recipient of a government pension may receive the discount|Optional. Should contain a description of which pensions qualify|

            |MIN_AGE|Only customers older than a minimum age receive the discount|The minimum age in years|

            |MAX_AGE|Only customers younger than a maximum age receive the discount|The maximum age in years|

            |MIN_INCOME|The customer must have an income greater than a specified threshold to obtain the discount|Minimum income in AmountString format|

            |MIN_TURNOVER|Only a business with greater than a minimum turnover is eligible|Minimum turnover in AmountString format|

            |STAFF|Only a staff member of the provider may receive the discount|NA|

            |STUDENT|Only students may receive the discount|Optional. Should contain a description of who qualifies as a student, e.g. do apprentices qualify?|

            |EMPLOYMENT_STATUS|An eligibility constraint based on employment status applies|A description of the status required|

            |RESIDENCY

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/commonwealth-bank/refs/heads/main/openapi/commonwealth-bank-products-api-api-openapi.yml