openapi: 3.1.0
info:
  title: Banking Accounts Administration
  description: |-
    This API allows financial institution administrators and entitled partners to access banking accounts.

     * Use [`getAccountNumbers`](#op-getAccountNumbers) to map one or more account IDs to full account numbers.
     * Use [`getBankingAccounts`](#op-getBankingAccounts) to view details of the requested accounts.
     * Use [`listCustomerAccounts`](#op-listCustomerAccounts) to list all accounts for a specific banking
       customer by ID.

    ## Authenticated Access
    The operations in this API require an OAuth2 access token, which may either be obtained via the Client Credentials flow (for use by secure headless applications) or by Authorization Code Flow by financial institution (FI) administrative users who authenticate with the financial institution's workforce identity provider. Non-FI partner organizations may only use Client Credentials.
    ## Accessing Accounts for a Specific Financial Institution
    The access token is associated with a unique Client ID. Client IDs are normally associated with a specific financial institution. If the Client ID is not tied to a specific institution, the client must provide the `Institution-Id` request header parameter to identify the target institution where the accounts and customers are held. This header is ignored otherwise.
  version: 0.11.0
  contact:
    name: Apiture
    url: https://developer.apiture.com/help/support/
    email: api@apiture.com
  termsOfService: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
  license:
    name: Apiture API License
    url: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
x-apiture-namespace: bankingAdminAccounts
servers:
  - url: /bankingAdmin
tags:
  - name: Banking Accounts Admin
    description: Administration of Banking Accounts at a Financial Institution
paths:
  /bankingAccounts:
    parameters:
      - $ref: '#/components/parameters/institutionIdHeaderParam'
    get:
      summary: List accounts at a financial institution.
      description: |-
        Return account details for a selected list of banking account IDs.

        The response may be a partial list (202 Accepted) when some of accounts' details are not yet available and are thus incomplete (not fully populated). The client can retry the operation with the subset of accounts that were incomplete (based on the `incompleteAccounts` array in the response [`incompleteBankingAccounts`](#schema-incompleteBankingAccounts)), until all data has been returned or the retry limit has passed.
      tags:
        - Banking Accounts Admin
      operationId: getBankingAccounts
      x-apiture-api: bankingAdminAccounts
      x-apiture-group: adminAccounts
      x-apiture-note: This uses the operationId `getBankingAccounts` to reserve the operationId `listBankingAccounts` for a future generic paginated/filtered account collection operation. This operation is more specialized by accepting a fixed list of account IDs to fetch. The response schemas for this operation use the name `bankingAccountList` to reserve the schema name `bankingAccounts` for that generic operation.
      parameters:
        - name: accounts
          description: Fetch account details for the accounts identified in this comma-separated list of banking account IDs. This array and the `?retryCount=` parameter should be set to the corresponding values from the [`incompleteCustomerBankingAccounts`](#schema-incompleteCustomerBankingAccounts) response body.
          in: query
          required: true
          style: form
          explode: false
          schema:
            $ref: '#/components/schemas/bankingAccountIdSelection'
        - name: retryCount
          description: When retrying this operation, pass the `retryCount` from the [`incompleteBankingAccounts`](#schema-incompleteBankingAccounts) response. This is required when passing `?accounts`.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 10
        - $ref: '#/components/parameters/unmaskedQueryParam'
      security:
        - clientCredentials:
            - bankingAdmin/read
      responses:
        '200':
          description: OK. The response contains the account information for the requested account IDs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bankingAccountList'
        '202':
          description: Accepted. The service accepted the request but could not provide balances for all the requested accounts and returned an incomplete response. Try the call again after the time in the `Retry-After` response header has passed, and request only those accounts which are `incomplete`. If there is no `Retry-After` response header, the client has reached its maximum number of tries and should not retry the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/incompleteBankingAccountList'
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This error response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0)<br>
              One or more account IDs are invalid and do not correspond to accounts.
              Remediation: Remove the invalid account IDs from the request and try again.
            The `attributes` object in the error may have the properties defined for [`invalidAccountIds`](https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0).
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/invalidAccountIds'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
  /customerBankingAccounts:
    parameters:
      - $ref: '#/components/parameters/institutionIdHeaderParam'
    get:
      summary: List the accounts a customer is entitled to.
      description: |-
        List all the banking accounts that a banking customer is entitled to access.

        The response may be _incomplete_, indicated by a 202 Accepted response, meaning the system could not fill in all the account details in a timely manner. The client can retry the operation, passing in a list of incomplete `accounts`, until all data is filled in.
      tags:
        - Banking Accounts Admin
      operationId: listCustomerAccounts
      x-apiture-api: bankingAdminAccounts
      x-apiture-group: adminAccounts
      parameters:
        - $ref: '#/components/parameters/requiredCustomerIdQueryParam'
        - $ref: '#/components/parameters/startQueryParam'
        - name: limit
          in: query
          description: The maximum number of items to return in this paged response.
          schema:
            type: integer
            format: int32
            minimum: 0
            maximum: 32
            default: 32
        - name: accounts
          description: A comma-separated list of banking account IDs, used when retrying this operation to fetch details from incomplete customer accounts.
          in: query
          style: form
          explode: false
          schema:
            $ref: '#/components/schemas/bankingAccountIdSelection'
        - name: retryCount
          description: When retrying this operation, pass the `retryCount` from the `incompleteAccountBalances` response.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 10
        - $ref: '#/components/parameters/unmaskedQueryParam'
      security:
        - clientCredentials:
            - bankingAdmin/read
      responses:
        '200':
          description: OK. The response contains the account details for a page of the customer's accounts. Use the `nextPage_url`, if present, to fetch the next page of the customer's accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerBankingAccounts'
        '202':
          description: Accepted. The service accepted the request but could not provide balances or other account details for all the requested accounts and returned an incomplete response. Try the call again after the time in the `Retry-After` response header has passed, and request only those accounts which are `incomplete` by passing the response's `incompleteAccounts` array and `retryCount` value as the `?accounts=` and `?retryCount=` query parameters. If there is no `Retry-After` response header, the client has reached its maximum number of tries and should not retry the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/incompleteCustomerBankingAccounts'
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This error response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0)<br>
              One or more account IDs are invalid and do not correspond to accounts.
              Remediation: Remove the invalid account IDs from the request and try again.
            The `attributes` object in the error may have the properties defined for [`invalidAccountIds`](https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0).
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/invalidAccountIds'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
  /accountIdMappings:
    parameters:
      - $ref: '#/components/parameters/institutionIdHeaderParam'
    post:
      summary: Map one or more account resource IDs to account numbers.
      description: |-
        Map one or more account resource IDs to full account numbers.

        This operation applies a "`GET` over `POST`" pattern: it is a safe, idempotent operation, but passes data via a request body rather than via query parameters.
      tags:
        - Banking Accounts Admin
      operationId: getAccountNumbers
      x-apiture-api: bankingAdminAccounts
      x-apiture-group: adminAccounts
      security:
        - clientCredentials:
            - bankingAdmin/read
      requestBody:
        required: true
        description: A list of banking account resource IDs.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bankingAccountIds'
      responses:
        '200':
          description: OK. The response is the mapping of the requested account IDs to account numbers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bankingAccountIdMappings'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
components:
  schemas:
    bankingAccountIds:
      title: Banking Account IDs (v1.0.0)
      description: A list of unique opaque banking account IDs. Each value is the `id` of a resource in the Accounts API.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The array of account IDs.
              type: array
              minItems: 1
              $comment: This maxItems must match bankingAccountIdMappings.items.maxItems
              maxItems: 1000
              uniqueItems: true
              items:
                $ref: '#/components/schemas/resourceId'
      example:
        items:
          - 6f2625952ad00ef4f701
          - f73e992e4230a6e8ef64
          - d1aa5570846beb619dfa
          - ed202975b84b7acd5161
          - b39069bdbc65c83c58ed
      x-apiture-version: 1.0.0
    bankingAccountIdSelection:
      x-apiture-version: 1.1.0
      title: Account ID Selection (v1.1.0)
      description: A comma-separated list of unique opaque account IDs. Each value is the `id` of a resource in the Accounts API. The list is limited to 32 account IDs.
      type: array
      minItems: 1
      $comment: This maxItems must match bankingAccountList.items.maxItems and incompleteBankingAccountList.items.maxItems
      maxItems: 32
      uniqueItems: true
      items:
        $ref: '#/components/schemas/resourceId'
      example:
        - 6f2625952ad00ef4f701
        - f73e992e4230a6e8ef64
        - d1aa5570846beb619dfa
        - ed202975b84b7acd5161
        - b39069bdbc65c83c58ed
    bankingAccountIdMapping:
      x-apiture-version: 1.1.0
      title: Banking Account ID Mapping (v1.1.0)
      description: Maps a banking account ID to a full account number and account location.
      type: object
      required:
        - id
      properties:
        id:
          description: An account ID from the request body.
          $ref: '#/components/schemas/readOnlyResourceId'
        number:
          description: The full account number associated with the `id`, or omitted if there is no account for that `id`.
          $ref: '#/components/schemas/fullAccountNumber'
        location:
          $ref: '#/components/schemas/bankingAccountLocation'
      example:
        id: 6f2625952ad00ef4f701
        number: '0123456789'
        location: internal
    bankingAccountState:
      title: Banking Account State (v1.0.0)
      description: The state of a banking account.
      type: string
      enum:
        - open
        - closed
      x-apiture-version: 1.0.0
    bankingAccountBalance:
      title: Banking Account Balance (v1.0.0)
      description: A banking account's balances. The fields are optional and may be omitted if the `account.incomplete` is `true`.
      type: object
      properties:
        available:
          description: 'The available balance: the funds available for use. This is the string representation of the exact decimal amount.'
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        current:
          description: The current balance. This is the balance at the end of the previous business day. This is the string representation of the exact decimal amount.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        updatedAt:
          description: The time when the balance values were last updated from the banking core.
          $ref: '#/components/schemas/readOnlyTimestamp'
        currentWithPending:
          description: The current balance, including pending transactions. This is the string representation of the exact decimal amount.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
      x-apiture-version: 1.0.0
    bankingAccountOwnerReference:
      x-apiture-version: 1.1.0
      title: Banking Account Owner Reference (v1.1.0)
      description: 'Identifies the owner of a banking account: a business for a business/commercial account, or the person for a personal/retail account.'
      type: object
      properties:
        id:
          description: The customer ID of primary owner.
          $ref: '#/components/schemas/readOnlyResourceId'
        name:
          description: The name of the primary owner.
          type: string
          format: text
          minLength: 1
          maxLength: 50
      example:
        id: 9ba61351e79c00ea2571
        name: Max Peck
    bankingAccountFields:
      x-apiture-version: 2.2.0
      title: Banking Account Fields (v2.2.0)
      description: Fields used to construct other banking account schemas.
      x-apiture-fragment: true
      properties:
        id:
          description: The unique identifier for this banking account resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/readOnlyResourceId'
        state:
          $ref: '#/components/schemas/bankingAccountState'
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        fullAccountNumber:
          description: The account's full account number. This property is only present if the request includes `?unmasked=true`.
          $ref: '#/components/schemas/fullAccountNumber'
        routingNumber:
          description: The routing number of the beneficiary's account at the local branch (receiving institution).
          $ref: '#/components/schemas/accountRoutingNumber'
        product:
          $ref: '#/components/schemas/productReference'
        location:
          description: Indicates where an account is held.
          allOf:
            - $ref: '#/components/schemas/bankingAccountLocation'
          example: internal
        primaryOwner:
          $ref: '#/components/schemas/bankingAccountOwnerReference'
        openedOn:
          description: The date the account was opened in [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
          type: string
          format: date
          minLength: 10
          maxLength: 10
          example: '2018-10-01'
        balance:
          $ref: '#/components/schemas/bankingAccountBalance'
        currency:
          description: The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for accounts based on this product.
          $ref: '#/components/schemas/currencyCode'
    bankingAccountItem:
      x-apiture-version: 2.2.0
      title: Banking Account Item (v2.2.0)
      description: Details of one banking account in a collection of accounts.
      type: object
      required:
        - id
        - maskedNumber
        - routingNumber
        - product
        - location
        - state
        - currency
      allOf:
        - $ref: '#/components/schemas/bankingAccountFields'
      example:
        id: 590c0c441f3241de9526
        maskedNumber: '*6789'
        fullAccountNumber: '123456789'
        routingNumber: '123123123'
        product:
          type: cd
          coreType: CD
          code: 180D_CDA
          label: 180 Day CD
          description: Certificate of Deposit with a 180 day term
        location: internal
        primaryOwner:
          id: 9ba61351e79c00ea2571
        openedOn: '2018-10-01'
        balance:
          available: '3456.78'
          current: '3456.78'
          updatedAt: '2021-10-30T19:06:04.250Z'
          currentWithPending: '3456.78'
        currency: USD
        state: open
    bankingAccountList:
      x-apiture-version: 2.2.0
      title: Banking Account List (v2.2.0)
      description: A list of banking accounts and key details of those accounts.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array of banking accounts.
              minItems: 1
              $comment: This maxItems must match bankingAccountIdSelection.maxItems
              maxItems: 32
              type: array
              items:
                $ref: '#/components/schemas/bankingAccountItem'
      example:
        items:
          - id: 590c0c441f3241de9526
            maskedNumber: '*6789'
            fullAccountNumber: '123456789'
            routingNumber: '123123123'
            product:
              type: cd
              coreType: CD
              code: 180D_CDA
              label: 180 Day CD
              description: Certificate of Deposit with a 180 day term
            location: internal
            primaryOwner:
              id: 9ba61351e79c00ea2571
            openedOn: '2018-10-01'
            balance:
              available: '3456.78'
              current: '3456.78'
              updatedAt: '2021-10-30T19:06:04.250Z'
              currentWithPending: '3456.78'
            currency: USD
            state: open
    incompleteBankingAccountFields:
      x-apiture-version: 1.0.1
      title: Incomplete Banking Account Fields (v1.0.1)
      description: Fields of an incomplete banking account, used to construct other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        incomplete:
          description: If `true`, the account information is incomplete and the client may retry the operation after the `Retry-After` time in order to fetch balances for any incomplete accounts in the `items`. The retry operation should only pass in accounts that are `incomplete`.
          type: boolean
      example:
        id: 590c0c441f3241de9526
        maskedNumber: '*6789'
        fullAccountNumber: '123456789'
        routingNumber: '123123123'
        product:
          type: cd
          coreType: CD
          code: 180D_CDA
          label: 180 Day CD
          description: Certificate of Deposit with a 180 day term
        location: internal
        primaryOwner:
          id: 9ba61351e79c00ea2571
        openedOn: '2018-10-01'
        currency: USD
        state: open
        incomplete: true
    incompleteBankingAccountItem:
      x-apiture-version: 2.2.0
      title: Incomplete Banking Account Item (v2.2.0)
      description: Details of a banking account. Some fields may not be populated if `incomplete` is `true` while the system processes the request.
      type: object
      required:
        - id
        - maskedNumber
        - routingNumber
        - incomplete
      allOf:
        - $ref: '#/components/schemas/bankingAccountFields'
        - $ref: '#/components/schemas/incompleteBankingAccountFields'
    incompleteBankingAccountList:
      x-apiture-version: 2.2.0
      title: Incomplete Banking Account List (v2.2.0)
      description: |-
        A list of banking accounts and key details of those accounts.

        The data may be incomplete, in which case the client can retry the operation on the subset of incomplete accounts until he data is complete or a maximum number of retries has occurred. The client should pass this object's `incompleteAccounts` and `retryCount` properties as the `?accounts=` and `?retryCount=` query parameters when retrying the [`getBankingAccounts`](#op-getBankingAccounts) operation.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array of banking accounts.
              type: array
              minItems: 1
              $comment: this maxItems must match bankingAccountIdSelection.maxItems
              maxItems: 32
              items:
                $ref: '#/components/schemas/incompleteBankingAccountItem'
            incompleteAccounts:
              description: Pass these values `?accounts=` query parameter on the next retry operation. This value is empty if the client has reached the retry limit.
              $ref: '#/components/schemas/bankingAccountIdSelection'
            retryCount:
              description: Pass this value as the as the `?retryCount=` parameter with the next retry of the [`listAccountBalances`](#op-listAccountBalances) operation.
              type: integer
              format: int32
              minimum: 1
              maximum: 10
      example:
        incompleteAccounts:
          - 590c0c441f3241de9526
        retryCount: 1
        items:
          - id: 590c0c441f3241de9526
            maskedNumber: '*6789'
            fullAccountNumber: '123456789'
            routingNumber: '123123123'
            product:
              type: cd
              coreType: CD
              code: 180D_CDA
              label: 180 Day CD
              description: Certificate of Deposit with a 180 day term
            location: internal
            primaryOwner:
              id: 9ba61351e79c00ea2571
            openedOn: '2018-10-01'
            currency: USD
            state: open
            incomplete: true
    customerBankingAccountItem:
      x-apiture-version: 4.0.0
      title: Customer Banking Account Item (v4.0.0)
      description: Describes an account in the list of a banking accounts a customer has access to.
      type: object
      required:
        - id
        - label
        - maskedNumber
        - routingNumber
        - product
        - location
        - currency
        - electronicStatements
      allOf:
        - $ref: '#/components/schemas/bankingAccountFields'
        - type: object
          properties:
            nickname:
              $ref: '#/components/schemas/accountNickname'
            label:
              description: The human-readable label for this account. This is either the `nickname` (if assigned for the current customer), or the `product.label` concatenated with the `maskedNumber`.
              type: string
              maxLength: 80
              format: text
              example: Checking *6789
              readOnly: true
            allows:
              description: Flags which indicate the permissions the banking customer has on this account item resource. Most of these properties may only be `true` for internal accounts. These permissions are available in account items in the [`customerBankingAccounts`](#schema-customerBankingAccounts) list.
              $ref: '#/components/schemas/fullAccountPermissions'
            electronicStatements:
              description: If `true`, the customer has opted in to receive account statements electronically.
              type: boolean
      example:
        id: 590c0c441f3241de9526
        maskedNumber: '*6789'
        fullAccountNumber: '123456789'
        routingNumber: '123123123'
        nickname: College Fund
        label: College Fund
        product:
          type: cd
          coreType: CD
          code: 180D_CDA
          label: 180 Day CD
          description: Certificate of Deposit with a 180 day term
        location: internal
        primaryOwner:
          id: 9ba61351e79c00ea2571
        openedOn: '2018-10-01'
        balance:
          available: '13456.78'
          current: '13456.78'
          updatedAt: '2021-10-30T19:06:04.250Z'
          currentWithPending: '13456.78'
        allows:
          transferFrom: false
          transferTo: false
          billPay: false
          mobileCheckDeposit: false
          view: true
          viewCards: false
          manageCards: false
          viewLoanPayoffQuote: false
          realTimePaymentFrom: true
          realTimePaymentTo: true
          manageJointOwners: true
          manageOverdraftAccounts: false
          generateVerificationLetter: true
        currency: USD
        electronicStatements: true
        state: open
    customerBankingAccounts:
      x-apiture-version: 4.0.0
      title: Customer Banking Accounts (v4.0.0)
      description: A page of customer's accounts.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - customerId
            - items
            - count
          properties:
            customerId:
              description: The unique ID of a banking customer.
              $ref: '#/components/schemas/readOnlyResourceId'
            items:
              description: An array of banking accounts.
              type: array
              $comment: This maxItems must match incompleteCustomerBankingAccounts.items.maxItems and maximum of ?limit= listCustomerAccounts
              maxItems: 32
              items:
                $ref: '#/components/schemas/customerBankingAccountItem'
            count:
              description: The total number of accounts this customer has access to.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
      example:
        count: 12
        limit: 10
        nextPage_url: /bankingAdmin/customerBankingAccounts?start=47bed5d41e25d7da89e3&limit=10&customerId=a3dd92bf8d3617ba4811
        customerId: a3dd92bf8d3617ba4811
        items:
          - id: 590c0c441f3241de9526
            maskedNumber: '*6789'
            routingNumber: '123123123'
            nickname: College Fund
            label: College Fund
            product:
              type: cd
              coreType: CD
              code: 180D_CDA
              label: 180 Day CD
              description: Certificate of Deposit with a 180 day term
            location: internal
            primaryOwner:
              id: 9ba61351e79c00ea2571
            openedOn: '2018-10-01'
            currency: USD
            electronicStatements: true
            state: open
    incompleteCustomerBankingAccountItem:
      x-apiture-version: 2.3.0
      title: Incomplete Customer Banking Account Item (v2.3.0)
      description: Details of a banking account within a partial (incomplete) response for a list of a customer's accounts. Some fields may not be populated if `incomplete` is `true` while the system processes the request.
      type: object
      required:
        - id
        - maskedNumber
        - routingNumber
        - incomplete
      allOf:
        - $ref: '#/components/schemas/bankingAccountFields'
        - $ref: '#/components/schemas/incompleteBankingAccountFields'
        - type: object
          properties:
            allows:
              description: Flags which indicate the permissions the banking customer has on this account item resource. Most of these properties may only be `true` for internal accounts. These permissions are available in account items in the [`customerBankingAccounts`](#schema-customerBankingAccounts) list.
              $ref: '#/components/schemas/fullAccountPermissions'
            electronicStatements:
              description: If `true`, the customer has opted in to receive account statements electronically.
              type: boolean
      example:
        id: 590c0c441f3241de9562
        maskedNumber: '*6789'
        fullAccountNumber: '123456789'
        routingNumber: '123123123'
        nickname: College Fund
        label: College Fund
        product:
          type: cd
          coreType: CD
          code: 180D_CDA
          label: 180 Day CD
          description: Certificate of Deposit with a 180 day term
        location: internal
        primaryOwner:
          id: 9ba61351e79c00ea2571
        openedOn: '2018-10-01'
        currency: USD
        electronicStatements: true
        state: open
        incomplete: true
    incompleteCustomerBankingAccounts:
      x-apiture-version: 3.3.0
      title: Incomplete Customer Banking Accounts (v3.3.0)
      description: A page of a customer's accounts, some of which are incomplete. Pass this object's `incompleteAccounts` and `retryCount` properties as the `?accounts=` and `?retryCount=` query parameters to [`listCustomerAccounts`](#op-listCustomerAccounts) to fetch the remaining details for those incomplete accounts.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - customerId
            - items
            - count
            - retryCount
          properties:
            customerId:
              description: The unique ID of a banking customer.
              $ref: '#/components/schemas/readOnlyResourceId'
            items:
              description: An array of banking accounts.
              type: array
              minItems: 1
              $comment: This maxItems must match customerBankingAccounts.items.maxItems and maximum of ?limit= listCustomerAccounts
              maxItems: 32
              items:
                $ref: '#/components/schemas/incompleteCustomerBankingAccountItem'
            count:
              description: The total number of accounts this customer has access to.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
            retryCount:
              description: Pass this value as the as the `?retryCount=` parameter with the next retry of the [`listAccountBalances`](#op-listAccountBalances) operation.
              type: integer
              format: int32
              minimum: 1
              maximum: 10
      example:
        count: 12
        limit: 10
        nextPage_url: /bankingAdmin/customerBankingAccounts?start=47bed5d41e25d7da89e3&limit=10&retryCount=2&customerId=a3dd92bf8d3617ba4811
        customerId: a3dd92bf8d3617ba4811
        retryCount: 2
        items:
          - id: 590c0c441f3241de9526
            maskedNumber: '*6789'
            routingNumber: '123123123'
            nickname: College Fund
            label: College Fund
            product:
              type: cd
              coreType: CD
              code: 180D_CDA
              label: 180 Day CD
              description: Certificate of Deposit with a 180 day term
            location: internal
            primaryOwner:
              id: 9ba61351e79c00ea2571
            openedOn: '2018-10-01'
            currency: USD
            electronicStatements: true
            state: open
            incomplete: true
    bankingAccountLocation:
      x-apiture-version: 1.1.0
      title: Banking Account Location (v1.1.0)
      description: |+
        Indicates where an account is held:
          * `internal` accounts at the current financial institution;
          * `external` accounts at another financial institution;

        <strong><code>bankingAccountLocation</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>internal</code></strong></td><td>Internal: <p>Accounts held by the banking customer at the current financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>external</code></strong></td><td>External: <p>Accounts held by the banking customer at another financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>peer</code></strong></td><td>Peer: <p>Accounts held by others at the same financial institution, for which the banking customer has transfer to and/or transfer from entitlements.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: bankingAccountLocation
      enum:
        - internal
        - external
        - peer
    bankingAccountIdMappings:
      x-apiture-version: 1.1.0
      title: Banking Account ID Mappings (v1.1.0)
      description: Maps account IDs to full account numbers.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array which maps account resource IDs to full account numbers. The `id`/`number` values in this array are in the same order as the IDs in the request.
              type: array
              minItems: 1
              $comment: This maxItems must match bankingAccountIds.items.maxItems
              maxItems: 1000
              items:
                $ref: '#/components/schemas/bankingAccountIdMapping'
      $comment: 'Note: No account number for id ''ed202975b84b7acd5161'' in the example.'
      example:
        items:
          - id: 6f2625952ad00ef4f701
            number: '0123456789'
            location: internal
          - id: f73e992e4230a6e8ef64
            number: '1123456789'
            location: internal
          - id: d1aa5570846beb619dfa
            number: '2123456789'
            location: internal
          - id: ed202975b84b7acd5161
          - id: b39069bdbc65c83c58ed
            number: '4123456789'
            location: internal
    problemResponse:
      title: Problem Response (v0.4.1)
      x-apiture-version: 0.4.1
      description: API problem or error response, as per [RFC 9457 application/problem+json](https://tools.ietf.org/html/rfc9457).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/apiProblem'
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/noSuchAccount/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists for the given account reference
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/problemResponse
    abstractBody:
      title: Abstract Body (v0.2.0)
      x-apiture-version: 0.2.0
      description: An abstract schema used to define other request and response body model schemas.
      x-apiture-fragment: true
      type: object
      properties: {}
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractBody
    resourceId:
      x-apiture-version: 1.0.1
      title: Resource Identifier (v1.0.1)
      description: The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/resourceId
    readOnlyResourceId:
      x-apiture-version: 1.0.1
      title: Read-only Resource Identifier (v1.0.1)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.
      readOnly: true
      allOf:
        - $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyResourceId
    fullAccountNumber:
      title: Full Account Number (v1.0.0)
      description: A full account number. This is the number that the customer uses to reference the account within the financial institution.
      type: string
      minLength: 1
      maxLength: 32
      pattern: ^[- a-zA-Z0-9.]{1,32}$
      examples:
        - '123456789'
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/fullAccountNumber
      x-apiture-version: 1.0.0
    creditOrDebitValue:
      x-apiture-version: 1.1.1
      title: Credit Or Debit Value (v1.1.1)
      description: The monetary value representing a credit (positive amounts with no prefix or a `+` prefix) or debit (negative amounts with a `-` prefix). The numeric value is  represented as a string so that it can be exact with no loss of precision.
      example: '3456.78'
      type: string
      format: decimal
      pattern: ^(-|\+)?(0|[1-9][0-9]*)\.[0-9][0-9]$
      maxLength: 16
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/creditOrDebitValue
    readOnlyTimestamp:
      title: Read-Only Timestamp (v1.0.0)
      description: 'A readonly or derived timestamp (an instant in time) formatted in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.'
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      readOnly: true
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyTimestamp
      x-apiture-version: 1.0.0
    maskedAccountNumber:
      x-apiture-version: 1.0.1
      title: Masked Account Number (v1.0.1)
      description: 'A masked account number: an asterisk `*` followed by one to four characters of the `fullAccountNumber`.'
      type: string
      minLength: 2
      maxLength: 5
      pattern: ^\*[- _a-zA-Z0-9.]{1,4}$
      examples:
        - '*1008'
        - '*0005'
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/maskedAccountNumber
    accountRoutingNumber:
      title: Account Routing Number (v1.0.0)
      description: An account ABA routing and transit number.
      type: string
      minLength: 9
      maxLength: 9
      pattern: ^[0-9]{9}$
      example: '123123123'
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/accountRoutingNumber
      x-apiture-version: 1.0.0
    productReference:
      title: Product Reference (v2.3.0)
      x-apiture-version: 2.3.0
      description: A reference to a banking product.
      type: object
      required:
        - type
        - coreType
        - code
        - label
      properties:
        type:
          description: The type of account.
          $ref: '#/components/schemas/productType'
        coreType:
          description: The account product type in the banking core. For example, some cores may use `"D"` for a demand deposit (checking) account, some may use `"DDA"`.
          type: string
          pattern: ^[A-Z0-9]{1,4}$
          minLength: 1
          maxLength: 4
        code:
          description: The product's product code which uniquely identifies the product from other banking products. Codes are unique to the financial institution. For example, different products with the same `type` and the same `coreType` but different rates or other properties have different product codes, such as `CD3M`, `DDA_HI_YLD`, `P3207`.
          type: string
          format: text
          minLength: 1
          maxLength: 16
          example: CD001
        label:
          description: A human-readable label for this banking product.
          type: string
          minLength: 2
          maxLength: 48
          format: text
        description:
          description: A human-readable description of this banking product.
          type: string
          minLength: 2
          maxLength: 400
          format: markdown
      example:
        type: cd
        coreType: CD
        code: 180D_CDA
        label: 180 Day CD
        description: Certificate of Deposit with a 180 day term
      x-resolved-from: ../../products/openapi.yaml#/components/schemas/productReference
    currencyCode:
      description: A [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) This is always upper case ASCII. Crypto currencies with codes longer that 3 characters are not supported.
      type: string
      format: text
      pattern: ^[A-Z]{3}$
      minLength: 3
      maxLength: 3
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/currencyCode
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    accountNickname:
      x-apiture-version: 1.2.0
      title: Account Nickname (v1.2.0)
      description: The nickname (friendly name) the customer has given this account. Each customer can define their own nickname for the same account. If omitted, the customer has not set a nickname.
      type: string
      maxLength: 50
      format: text
      example: Payroll Checking
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/accountNickname
    fullAccountPermissions:
      x-apiture-version: 3.0.0
      title: Full Account Permissions (v3.0.0)
      description: Flags which indicate the permissions the current authorized user has on this account resource. Most of these properties may only be `true` for internal accounts. These permissions are available in [`account`](#schema-account) response from the [`getAccount`](#op-getAccount) operation. See [`accountPermissions`](#schema-accountPermissions) for the subset of permission in `account.allows` flags in the [`listAccounts`](#op-listAccounts) response.
      type: object
      allOf:
        - $ref: '#/components/schemas/accountPermissions'
        - type: object
          required:
            - manageJointOwners
            - manageOverdraftAccounts
            - generateVerificationLetter
          properties:
            manageJointOwners:
              description: If `true`, the customer can list the other joint owners on the account and invite new joint owners.
              type: boolean
            manageOverdraftAccounts:
              description: If `true`, the customer can list and manage additional overdraft sweep accounts to use for overdraft protection.
              type: boolean
            generateVerificationLetter:
              description: If `true`, the customer can obtain a verification letter for this account.
              type: boolean
      examples:
        - billPay: false
          mobileCheckDeposit: true
          transferFrom: true
          transferTo: true
          view: true
          viewCards: true
          manageCards: false
          viewLoanPayoffQuote: false
          realTimePaymentFrom: true
          realTimePaymentTo: true
          manageOverdraftAccounts: true
          manageJointOwners: true
          generateVerificationLetter: true
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/fullAccountPermissions
    abstractPagedBody:
      title: Abstract Paged Body (v0.5.1)
      x-apiture-version: 0.5.1
      description: An abstract schema used to define paginated collections of resources. Collection classes which extend this schema define an array of `items` which represent a page of data.
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/abstractPagedBodyFields'
        - type: object
          properties:
            start:
              description: The opaque cursor that specifies the starting location of this page of items.
              type: string
              format: text
              maxLength: 256
      example:
        start: 1922a8531e8384cfa71b
        limit: 100
        nextPage_url: https://static.api.apiture.com/banking/resources?start=8b76b4a97dccad88890e&limit=100
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractPagedBody
    apiProblem:
      x-apiture-version: 1.2.1
      title: API Problem (v1.2.1)
      description: API problem or error, as per [RFC 7807 application/problem+json](https://tools.ietf.org/html/rfc7807).
      type: object
      properties:
        type:
          type: string
          format: uri-reference
          description: |
            A [URI reference (RFC3986)](https://tools.ietf.org/html/rfc3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be `"about:blank"`.
          example: https://static.api.apiture.com/errors/forbidden/v1.0.0
          maxLength: 2048
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. The title is usually the same for all problem with the same `type`.
          maxLength: 120
          format: text
          example: User is not authorized to perform the requested action or access the requested resource.
        status:
          type: integer
          format: int32
          description: |
            The [HTTP status code](https://datatracker.ietf.org/doc/html/rfc7231#section-6) for this occurrence of the problem.
          minimum: 100
          maximum: 599
          example: 403
        detail:
          type: string
          description: |
            A human-readable explanation specific to this occurrence of the problem.
          maxLength: 256
          format: text
          example: User is not authorized to perform this operation.
        instance:
          type: string
          format: uri-reference
          description: |
            A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment
          example: https://prduction.api.apiture.com/banking/accounts/ad80fc3e722q5402a#189c13ff-c54c-45f7-b8e0-c88984ba724d
          maxLength: 2048
        id:
          description: The unique identifier for this problem. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        occurredAt:
          description: The timestamp when the problem occurred, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC.
          $ref: '#/components/schemas/readOnlyTimestamp'
        problems:
          description: Optional root-causes if there are multiple problems in the request or API call processing.
          type: array
          maxItems: 128
          items:
            $ref: '#/components/schemas/apiProblem'
        attributes:
          type: object
          description: Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/accountNotFound/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists at the given account_url
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/apiProblem
    institutionId:
      x-apiture-version: 1.1.0
      title: Institution ID (v1.1.0)
      description: The unique immutable identifier of a financial institution.
      type: string
      pattern: ^[A-Z0-9_]{2,8}$
      maxLength: 8
      minLength: 2
      example: TIBURON
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/institutionId
    productType:
      x-apiture-version: 2.1.0
      title: Product Type (v2.1.0)
      description: |+
        The type (or category) of banking product.

        <strong><code>productType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>savings</code></strong></td><td>Savings: <p>Savings Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>checking</code></strong></td><td>Checking: <p>Checking Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>cd</code></strong></td><td>CD: <p>Certificate of Deposit Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ira</code></strong></td><td>IRA: <p>Individual Retirement Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>loan</code></strong></td><td>Loan: <p>Loan Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>creditCard</code></strong></td><td>Credit Card: <p>Credit Card Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>moneyMarket</code></strong></td><td>Money Market: <p>Money Market Account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: productType
      enum:
        - savings
        - checking
        - cd
        - ira
        - loan
        - creditCard
        - moneyMarket
      x-resolved-from: ../../products/openapi.yaml#/components/schemas/productType
    accountPermissions:
      title: Account Permissions (v2.0.0)
      description: Flags which indicate the permissions the current authorized user has on this account item resource. Most of these properties may only be `true` for internal accounts. These permissions are available in account items in the [`accounts`](#schema-accounts) list. See [`fullAccountPermissions`](#schema-fullAccountPermissions) for all capabilities a customer has on an account (the `account.allows` object in the [`account`](#schema-account) object response from [`getAccount`](#op-getAccount).)
      x-apiture-version: 2.0.0
      type: object
      required:
        - billPay
        - mobileCheckDeposit
        - transferTo
        - transferFrom
        - view
        - viewCards
        - manageCards
        - viewLoanPayoffQuote
        - realTimePaymentFrom
        - realTimePaymentTo
      properties:
        billPay:
          description: If `true`, the customer may use this account for Bill Pay.
          type: boolean
        mobileCheckDeposit:
          description: If `true`, the customer may use this account for mobile check deposits.
          type: boolean
        transferFrom:
          description: If `true`, the customer may use this account as the target (deposit) account for account-to-account transfers.
          type: boolean
        transferTo:
          description: If `true`, the customer may use this account as the source (debit) account for account-to-account transfers.
          type: boolean
        view:
          description: If `true`, the customer may view the details of this account, including the account balance and transactions.
          type: boolean
        viewCards:
          description: If `true`, the customer may view debit cards associated with this account.
          type: boolean
        manageCards:
          description: If `true`, the customer may manage debit cards associated with this account. This includes locking and unlocking cards, changing card controls, ordering cards, or canceling cards.
          type: boolean
        viewLoanPayoffQuote:
          description: If `true`, the customer may view a loan payoff quote for this account. Only valid for accounts where `product.type` is `loan`.
          type: boolean
        realTimePaymentFrom:
          description: If `true`, the customer may use this account to send credit real-time payments.
          type: boolean
        realTimePaymentTo:
          description: If `true`, the customer may use this account to receive debit real-time payments.
          type: boolean
      examples:
        - billPay: false
          mobileCheckDeposit: true
          transferFrom: true
          transferTo: true
          view: true
          viewCards: true
          manageCards: false
          viewLoanPayoffQuote: false
          realTimePaymentFrom: true
          realTimePaymentTo: true
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/accountPermissions
    abstractPagedBodyFields:
      x-apiture-version: 1.1.1
      title: Abstract Paged Body Fields (v1.1.1)
      description: Common properties of collection page responses.
      x-apiture-fragment: true
      type: object
      required:
        - limit
      properties:
        limit:
          description: The number of items requested for this page response. The length of the `items` array may be less that `limit`.
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
        nextPage_url:
          description: The URL of the next page of resources. If this URL is omitted, there are no more resources in the collection.
          readOnly: true
          maxLength: 8000
          type: string
          format: uri-reference
          example: https://static.api.apiture.com/banking/resources/8b76b4a97dccad88890e
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractPagedBodyFields
  securitySchemes:
    clientCredentials:
      type: oauth2
      description: Client Credentials OAuth2 flow that allows a secure service application to access resources. (This access is not used with insecure clients such as web or mobile applications.) See details at [Secure Access](https://dx.apiture.com/docs/api/guides/secure-access/).
      flows:
        clientCredentials:
          tokenUrl: https://dev-oidc.apiture-comm-nonprod.com/oidc/token
          scopes:
            bankingAdmin/read: Read a wide variety of banking and other financial institution and customer data.
            bankingAdmin/write: Write a wide variety of banking and other financial institution and customer data.
            adminData/read: Read access to non-banking data and resources.
            adminData/write: Read, write, and delete access to non-banking data and resources.
            samlPlatform/write: Write access to security-critical Apiture internal key and certificate data.
            samlPlatform/read: Read access to integration resources, e.g. supported codes.
            samlAdmin/write: Write, delete and execute access to service provider metadata and SAML computation operations.
            systemIntegrations/read: Read access to integration definition resources.
            systemIntegrations/write: Write, delete and execute access to integration definition resources.
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/clientCredentials
  parameters:
    institutionIdHeaderParam:
      name: Institution-Id
      description: The unique identifier of the financial institution.
      in: header
      schema:
        $ref: '#/components/schemas/institutionId'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/institutionIdHeaderParam
    unmaskedQueryParam:
      name: unmasked
      description: When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter with a value of `true` to request that the response body includes the full account number. Such requests are auditable.
      in: query
      required: false
      schema:
        type: boolean
        default: false
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/unmaskedQueryParam
    requiredCustomerIdQueryParam:
      name: customerId
      description: The identifier of a banking customer. This is an opaque string.
      in: query
      required: true
      schema:
        $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/requiredCustomerIdQueryParam
    startQueryParam:
      name: start
      in: query
      description: The location of the next item in the collection. This is an opaque cursor supplied by the API service. Omit this to start at the beginning of the collection. The client does not define this value; the API services automatically pass the `?start=` parameter on the `nextPage_url`.
      schema:
        type: string
        maxLength: 256
        pattern: ^[-a-zA-Z0-9.,-=_+:;@$]{0,256}$
        default: ''
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/startQueryParam
  headers:
    Retry-After:
      description: |-
        Indicates an absolute time, in [HTTP `date-time` format, UTC](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1) or a delay in seconds (a non-negative integer) after which the client may retry the operation. See [RFC7231: Retry-After](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.3)

        Examples:
          * `Retry-After: 5`
          * `Retry-After: Mon, 03 May 2022 23:59:59 GMT`
      schema:
        type: string
        format: text
        maxLength: 32
      x-resolved-from: ../../common/openapi.yaml#/components/headers/Retry-After
  responses:
    '400':
      description: |
        Bad Request. The request body, request headers, and/or query parameters are not well-formed.

        This error response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/badRequest/v1.0.0`](https://static.api.apiture.com/errors/badRequest/v1.0.0)<br>
          The request body and/or parameters was not well-formed.
          Remediation: Correct any syntax or schema errors in the request body or parameters.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/badRequest'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/badRequest/v1.0.0
              title: Bad Request
              status: 400
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: Input did not parse as JSON
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/badRequest/v1.0.0
              title: Bad Request
              status: 400
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: Input did not parse as JSON
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/400
    '401':
      description: |
        Unauthorized. The operation requires authentication but no authentication or insufficient authentication was given.

        This error response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unauthorized/v1.0.0`](https://static.api.apiture.com/errors/unauthorized/v1.0.0)<br>
          The request lacks valid authentication credentials for the target resource or operation.
          Remediation: Authenticate the user and pass the required authorization with the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unauthorized'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/401
    '404':
      description: |
        Not found. There is no such resource at the request URL.

        This error response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/notFound/v1.0.0`](https://static.api.apiture.com/errors/notFound/v1.0.0)<br>
          The resource at the requested URL does not exist.
          Remediation: Use the URL of an existing resource.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/notFound'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/notFound/v1.0.0
              title: Not Found
              status: 404
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The resource at the request URL does not exist.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/notFound/v1.0.0
              title: Not Found
              status: 404
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The resource at the request URL does not exist.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/404
    '422':
      description: |
        Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

        This error response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
          The syntax of the request entity is correct but was unable to process the contained instructions.
          Remediation: Provide a semantically correct request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unprocessableEntity'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0
              title: Unprocessable Entity
              status: 422
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request body and/or query parameters were well-formed but otherwise invalid.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0
              title: Unprocessable Entity
              status: 422
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request body and/or query parameters were well-formed but otherwise invalid.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/422
    '429':
      description: |
        Too Many Requests. The client has sent too many requests in a given amount of time.

        This error response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/tooManyRequests/v1.0.0`](https://static.api.apiture.com/errors/tooManyRequests/v1.0.0)<br>
          The client has sent too many requests in a given amount of time, exceeding rate limiting.
          Remediation: Slow down the rate of API calls.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/tooManyRequests'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/429
    clientCredentials403:
      description: |
        Forbidden. The authenticated caller is not authorized to perform the requested operation.

        This error response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/forbidden/v1.0.0`](https://static.api.apiture.com/errors/forbidden/v1.0.0)<br>
          The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
          Remediation: Check the user's permissions and entitlements before attempting the operation.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/clientCredentials403
    4XX:
      description: Client Request Problem. The client request had a problem not listed under another specific 400-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/4XX
    5XX:
      description: Server Problem. The server encountered a problem not listed under another specific 500-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/5XX
  x-apiture-errors:
    invalidAccountIds:
      description: One or more account IDs are invalid and do not correspond to accounts.
      remediation: Remove the invalid account IDs from the request and try again.
      attributes:
        properties:
          accountIds:
            description: The list of invalid account IDs.
            type: array
            minItems: 1
            maxItems: 1000
            uniqueItems: true
            items:
              $ref: '#/components/schemas/readOnlyResourceId'
      x-resolved-from: ../../accounts/openapi.yaml#/components/x-apiture-errors/invalidAccountIds
    badRequest:
      description: The request body and/or parameters was not well-formed.
      remediation: Correct any syntax or schema errors in the request body or parameters.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/badRequest
    unauthorized:
      description: The request lacks valid authentication credentials for the target resource or operation.
      remediation: Authenticate the user and pass the required authorization with the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unauthorized
    notFound:
      description: The resource at the requested URL does not exist.
      remediation: Use the URL of an existing resource.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/notFound
    unprocessableEntity:
      description: The syntax of the request entity is correct but was unable to process the contained instructions.
      remediation: Provide a semantically correct request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unprocessableEntity
    tooManyRequests:
      description: The client has sent too many requests in a given amount of time, exceeding rate limiting.
      remediation: Slow down the rate of API calls.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/tooManyRequests
    forbidden:
      description: The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
      remediation: Check the user's permissions and entitlements before attempting the operation.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/forbidden
x-resolved-from: ../../adminAccounts/status-codes-openapi.yaml
x-resolved-at: '2024-10-01T15:50:38.881Z'
x-apiture-annotated-at: '2024-10-01T15:50:39.126Z'
