Commonwealth Bank Balances API API

Obtain the balance for a single specified account. Balances API is a consumer API. To access data you'll need the customer's consent.Host URLCommBank requests are passed to the URL https://secure.api.commbank.com.au/api/cds-au/v1/bankingCBA – CommBiz requests are passed to the URL https://secure.cdr.commbiz.api.commbank.com.au/cbzapi/cds-au/v1/banking

Operations 3

GET /accounts/{accountId}/balance Get Balances #
GET /accounts/balances Get Bulk Balances #
POST /accounts/balances Get Balances For Specific Accounts #

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-balances-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-balances-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '1.0'
  title: CommBank Accounts Accounts Balances 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: Balances API
  description: "Obtain the balance for a single specified account. \n\nBalances 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>"
paths:
  /accounts/{accountId}/balance:
    get:
      summary: Get Balances
      description: Obtain the balance of a specified account
      operationId: getBalances
      tags:
      - Balances API
      parameters:
      - name: accountId
        in: path
        description: ID of the specific account requested.
        required: true
        x-cds-type: ASCIIString
        schema:
          type: string
      - $ref: '#/components/parameters/ParamAcceptHeader'
      - $ref: '#/components/parameters/ParamXVHeader'
      - $ref: '#/components/parameters/ParamXMinVHeader'
      - $ref: '#/components/parameters/ParamXFapiAuthDate'
      - $ref: '#/components/parameters/ParamXFapiInterationId'
      - $ref: '#/components/parameters/ParamXFapiCustomerIpAddress'
      - $ref: '#/components/parameters/ParamXCdsClientHeaders'
      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.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBankingAccountsBalanceById'
        '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.
              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.
              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.
              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.
              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.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
  /accounts/balances:
    get:
      tags:
      - Balances API
      summary: Get Bulk Balances
      description: Obtain balances for multiple, filtered accounts
      operationId: listBalancesBulk
      parameters:
      - name: product-category
        in: query
        description: Used to filter results on the productCategory field applicable to accounts. If absent then all accounts returned.
        required: false
        schema:
          type: string
          enum:
          - TRANS_AND_SAVINGS_ACCOUNTS
          - TERM_DEPOSITS
          - TRAVEL_CARDS
          - REGULATED_TRUST_ACCOUNTS
          - RESIDENTIAL_MORTGAGES
          - CRED_AND_CHRG_CARDS
          - PERS_LOANS
          - MARGIN_LOANS
          - LEASES
          - TRADE_FINANCE
          - OVERDRAFTS
          - BUSINESS_LOANS
      - name: open-status
        in: query
        description: Used to filter results according to open/closed status. If absent then ALL is assumed
        required: false
        schema:
          type: string
          enum:
          - OPEN
          - CLOSED
          - ALL
          default: ALL
      - name: is-owned
        in: query
        description: Filters accounts based on whether they are owned by the authorised customer.  True for owned accounts, false for unowned accounts and absent for all accounts
        required: false
        x-cds-type: Boolean
        schema:
          type: boolean
      - $ref: '#/components/parameters/ParamPage'
      - $ref: '#/components/parameters/ParamPageSize'
      - $ref: '#/components/parameters/ParamXVHeader'
      - $ref: '#/components/parameters/ParamXMinVHeader'
      - $ref: '#/components/parameters/ParamXFapiAuthDate'
      - $ref: '#/components/parameters/ParamXFapiInterationId'
      - $ref: '#/components/parameters/ParamXFapiCustomerIpAddress'
      - $ref: '#/components/parameters/ParamXCdsClientHeaders'
      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.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBankingAccountsBalanceList'
        '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.
              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.
              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.
              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.
              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.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
      x-scopes:
      - bank:accounts.basic:read
      x-version: '1'
    post:
      tags:
      - Balances API
      summary: Get Balances For Specific Accounts
      description: Obtain balances for a specified list of accounts
      operationId: listBalancesSpecificAccounts
      parameters:
      - $ref: '#/components/parameters/ParamPage'
      - $ref: '#/components/parameters/ParamPageSize'
      - $ref: '#/components/parameters/ParamXVHeader'
      - $ref: '#/components/parameters/ParamXMinVHeader'
      - $ref: '#/components/parameters/ParamXFapiAuthDate'
      - $ref: '#/components/parameters/ParamXFapiInterationId'
      - $ref: '#/components/parameters/ParamXFapiCustomerIpAddress'
      - $ref: '#/components/parameters/ParamXCdsClientHeaders'
      responses:
        '200':
          description: Success
          headers:
            x-v:
              description: Version of the API end point that the data holder has responded with.
              schema:
                type: string
            x-fapi-interaction-id:
              description: Reflects the value of the Interaction ID in the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBankingAccountsBalanceList'
        '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.
              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.
              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.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse422'
        '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.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
      x-scopes:
      - bank:accounts.basic:read
      x-version: '1'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestAccountIds'
        description: The list of account IDs to obtain balances for
        required: true
components:
  schemas:
    Meta:
      type: object
      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
    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.
    ResponseBankingAccountsBalanceList:
      type: object
      required:
      - data
      - links
      - meta
      example:
        data:
          balances:
          - accountId: 2M_8F2Q0aPjdPnO-FYMkt6fOBQNBPobNrXzAjwzrmWQ
            currentBalance: '561950.07'
            availableBalance: '561950.07'
            currency: AUD
          - accountId: 8L_GAHf3425ADFf-FYMkt6fOBQNBPobNrXzAjwzrmWQ
            currentBalance: '32012.03'
            availableBalance: '32012.037'
            currency: AUD
        links:
          self: https://secure.api.commbank.com.au/api/cds-au/v1/banking/accounts/balances
          first: https://secure.api.commbank.com.au/api/cds-au/v1/banking/accounts/balances?page=1&page-size=25
          last: https://secure.api.commbank.com.au/api/cds-au/v1/banking/accounts/balances?page=1&page-size=25
        meta:
          totalRecords: 2
          totalPages: 1
      properties:
        data:
          $ref: '#/components/schemas/ResponseBankingAccountsBalanceList_data'
        links:
          $ref: '#/components/schemas/LinksPaginated'
        meta:
          $ref: '#/components/schemas/MetaPaginated'
    ResponseBankingAccountsBalanceList_data:
      required:
      - balances
      properties:
        balances:
          type: array
          description: The list of balances returned
          items:
            $ref: '#/components/schemas/BankingBalance'
    RequestAccountIds_data:
      required:
      - accountIds
      properties:
        accountIds:
          type: array
          items:
            type: string
            description: Array of specific accountIds to obtain authorisations for
            x-cds-type: ASCIIString
    ErrorResponse422:
      type: object
      properties:
        errors:
          uniqueItems: false
          type: array
          items:
            $ref: '#/components/schemas/Error'
      example:
        errors:
        - code: AA-BR-01
          title: page-size is invalid
          detail: page-size must be a number and between 1 and 1000.
    ResponseBankingAccountsBalanceById:
      required:
      - data
      - links
      properties:
        data:
          $ref: '#/components/schemas/BankingBalance'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      example:
        data:
          accountId: 2M_8F2Q0aPjdPnO-FYMkt6fOBQNBPobNrXzAjwzrmWQ
          currentBalance: '561950.07'
          availableBalance: '561950.07'
          currency: AUD
        links:
          self: https://secure.api.commbank.com.au/api/cds-au/v1/banking/accounts/balances
        meta: {}
    BankingBalancePurse:
      type: object
      required:
      - amount
      properties:
        amount:
          type: string
          description: The balance available for this additional currency purse
          x-cds-type: AmountString
        currency:
          type: string
          description: The currency for the purse
          x-cds-type: CurrencyString
    ErrorResponse400:
      type: object
      properties:
        errors:
          uniqueItems: false
          type: array
          items:
            $ref: '#/components/schemas/Error'
      example:
        errors:
        - code: AA-BR-02
          title: updated-since is invalid
          detail: updated-since must be a valid date.
        - code: AA-BR-03
          title: effective is invalid
          detail: effective must be either ALL, CURRENT or FUTURE.
        - code: AA-BR-04
          title: product-category is invalid
          detail: product-category must be a valid enumeration.
        - code: AA-BR-05
          title: page is invalid
          detail: page must be a number and must be greater than 0.
        - code: AA-BR-06
          title: '{field-name} is Invalid'
          detail: Something is wrong with your request. Please check your query parameters and try again.
        - code: AA-BR-07
          title: brand is Invalid
          detail: brand must be a valid value.
    RequestAccountIds:
      type: object
      required:
      - data
      example:
        data:
          accountIds:
          - 2M_8F2Q0aPjdPnO-FYMkt6fOBQNBPobNrXzAjwzrmWQ
          - 8L_GAHf3425ADFf-FYMkt6fOBQNBPobNrXzAjwzrmWQ
        meta: {}
      properties:
        data:
          $ref: '#/components/schemas/RequestAccountIds_data'
        meta:
          $ref: '#/components/schemas/Meta'
    MetaPaginated:
      type: object
      required:
      - totalPages
      - totalRecords
      properties:
        totalRecords:
          type: integer
          description: The total number of records in the full set. See [pagination](#pagination).
          x-cds-type: NaturalNumber
        totalPages:
          type: integer
          description: The total number of pages in the full set. See [pagination](#pagination).
          x-cds-type: NaturalNumber
    BankingBalance:
      type: object
      required:
      - accountId
      - availableBalance
      - currentBalance
      properties:
        accountId:
          type: string
          description: A unique ID of the account adhering to the standards for ID permanence.
          x-cds-type: ASCIIString
        currentBalance:
          type: string
          description: The balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing.
          x-cds-type: AmountString
        availableBalance:
          type: string
          description: Balance representing the amount of funds available for transfer. Assumed to be zero or positive.
          x-cds-type: AmountString
        creditLimit:
          type: string
          description: Object representing the maximum amount of credit that is available for this account. Assumed to be zero if absent.
          x-cds-type: AmountString
        amortisedLimit:
          type: string
          description: Object representing the available limit amortised according to payment schedule. Assumed to be zero if absent. <br><i>CommBank does not currently return this value.</i></br>
          x-cds-type: AmountString
        currency:
          type: string
          description: The currency for the balance amounts. If absent assumed to be AUD.
          x-cds-type: CurrencyString
        purses:
          type: array
          description: Optional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards.
          items:
            $ref: '#/components/schemas/BankingBalancePurse'
    Error:
      type: object
      properties:
        code:
          type: string
        title:
          type: string
        detail:
          type: string
    ErrorResponse500:
      type: object
      properties:
        errors:
          uniqueItems: false
          type: array
          items:
            $ref: '#/components/schemas/Error'
      example:
        errors:
        - code: AA-IS-01
          title: Server Error
          detail: An error has occurred whilst processing your request. Please try again later.
    ResponseNoBody:
      type: object
      properties: {}
      example: {}
    Links:
      type: object
      required:
      - self
      properties:
        self:
          type: string
          description: Fully qualified link to this API call.
    ErrorResponse406:
      type: object
      properties:
        errors:
          uniqueItems: false
          type: array
          items:
            $ref: '#/components/schemas/Error'
      example:
        errors:
        - code: AA-RH-01
          title: Accept header is invalid
          detail: Accept header must be application/json.
        - code: AA-RH-02
          title: Content-Type is invalid
          detail: Content-Type header must be application/json.
        - code: AA-RH-03
          title: x-v is Invalid
          detail: x-v header must be a supported version number.
        - code: AA-RH-04
          title: x-min-v is invalid
          detail: x-min-v header must be a supported version number.
  parameters:
    ParamXVHeader:
      name: x-v
      in: header
      description: Version of the API end point being requested.
      example: 1
      required: false
      schema:
        type: integer
    ParamPageSize:
      name: page-size
      in: query
      description: Number of records to return with the page
      required: false
      schema:
        type: integer
        default: 25
        maximum: 1000
        minimum: 1
    ParamXFapiAuthDate:
      name: x-fapi-auth-date
      in: header
      description: The time when the customer last logged in to the data recipient.
      required: false
      example: '2002-10-03T01:00:00+10:00'
      schema:
        type: string
    ParamXMinVHeader:
      name: x-min-v
      in: header
      description: Minimum version of the API end point you are requesting.
      example: 1
      required: false
      schema:
        type: integer
    ParamXFapiInterationId:
      name: x-fapi-interaction-id
      in: header
      description: Reflects the value of the Interaction ID in the request.
      required: false
      example: f688ae24-9719-4975-9f58-f6b7e655c37d
      schema:
        type: string
    ParamAcceptHeader:
      name: Accept
      in: header
      description: Content-Type that is acceptable for the server's response.
      required: true
      schema:
        type: string
        enum:
        - application/json
    ParamXFapiCustomerIpAddress:
      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.
      required: false
      example: 192.168.1.1
      schema:
        type: string
    ParamXCdsClientHeaders:
      name: x-cds-client-headers
      in: header
      description: The customer's original standard http headers encoded, including the original User Agent header, if the customer is currently logged in to the data recipient.
      required: false
      example: Q3VzdG9tZXJzRGV2OkN1c3RvbWVyc0Rldg==
      x-cds-type: Base64
      schema:
        type: string
    ParamPage:
      name: page
      in: query
      description: Page number being requested
      required: false
      schema:
        type: integer
        default: 1
x-tagGroups:
- name: ''
  tags:
  - Accounts API