openapi: 3.1.0
info:
  title: Credit Cards
  description: |-
    The Credit Card Management API provides operations for managing credit cards issued by a financial institution. This API allows card holders to perform various operations on their credit card accounts, such as viewing account details, making payments, and monitoring usage.
    ## Gathering Cards
    When retrieving a list of credit cards, a card provider allows either gathering the list within the context of an account or gathering the list within the context of the current customer or member. Card providers only allow one of these contexts; the list cannot be gathered by both the customer and the account.

    The card provider context is retrieved using the [`getCreditCardProvider`](#op-getCreditCardProvider) operation. This operation's response contains `provider.context` which has the value of `account` or `customer`.

    If the `provider.context` is `account`, find a valid credit card account using the [listAccounts](https://developer.apiture.com/docs/apis/bankingAccounts/index.html#op-listAccounts) operation with `?productType=creditCard`. Upon success of the `listAccounts` operation, use an `id` from the response as the `accountId` path parameter on [listCreditCards](#op-listCreditCards) to retrieve all credit cards for the credit card account represented by that `id`.

    If the `provider.context` is `customer`, instead use [`listCustomerCreditCards`](#op-listCustomerCreditCards) to retrieve a list of the customer's credit cards.

    Use `provider.merchantCategories` to determine which merchant categories are allowed within alert subscriptions and transaction rules.
    ## Identity Challenges
    The card provider also indicates whether operations in the API are enabled for the current financial institution, as well as if they require an _identity challenge_ to be completed before invoking the operation as a security measure. For example, the [`changeCreditCardPin`](#op-changeCreditCardPin) operation may require a completed identity challenge.

    If `provider.operations.changeCreditCardPin.requiresIdentityChallenge` is `true`, the client should call [`createCreditCardChallenge`](#op-createCreditCardChallenge) or [`createCustomerCreditCardChallenge`](#op-createCustomerCreditCardChallenge), depending on the value of `provider.context`, passing in a request body `{ "type": "changePin" }` to create a new identity challenge for the `changeCreditCardPin` operation, then start the new challenge. Once the challenge process completes, pass the generated `challengeToken` in the completed challenge as the `Challenge` request header on the [`changeCreditCardPin`](#op-changeCreditCardPin) operation. See the "Challenges API" for additional information.
    ## Primary Account Numbers (PANs)
    A primary account number (PAN) is a numeric identifier assigned to credit cards for financial transactions. It typically consists of 16 digits and can be found on the front or back of a credit card. The PAN helps financial institutions, merchants, and other entities securely identify account holders during transactions. Some financial institutions use the same PAN for the primary cardholder and any secondary cardholders in the credit card account.

    To determine if credit cards for a credit card account are linked by their PAN, credit card resources can have one or multiple _card groups_. Within a card group, each card shares a PAN, and actions are applied to all credit cards within the card group. For example, when one credit card in the card group is locked, every other credit card within the same card group is also locked.
    ## Activating Cards
    Credit cards are activated through the [activateCreditCard](#op-activateCreditCard) operation. Cards are activated by submitting the full card number of the new card and other additional card details for verification.
    ## Lost, Stolen or Damaged Cards
    When cards are lost, stolen, or damaged, they can be reported to the financial institution and a new card will be sent to the primary address of the primary cardholder. When a card is reported as damaged, the card is reissued. A reissued card has the same PAN as the damaged card, but a different expiration date and security code. Cards reported as lost or stolen are replaced with cards that have a new PAN, as well as a different expiration date and security code. Cards can be reported as lost, stolen, or damaged through the [reportCreditCard](#op-reportCreditCard) operation. When cards are reported as lost or stolen, they have a state of `disabled` until the replacement cards are [activated](#op-activateCreditCard). Cards reported as damaged may be used until the reissued card is activated.
    ## Travel Notifications
    When traveling, cardholders can create [travel notifications](#op-createCreditCardTravelNotification) when they plan to use their cards outside their typical geographic regions, so that such use is not tagged as possibly fraudulent. Travel notifications are unrelated to other notification channels, such as in-app notifications, email, or SMS. Travel notifications are independent of any transaction rules, such as authorized regions, and as such, do not change the values set for transaction rules. Some financial institutions or card providers may ignore authorized region rules.
    ## Credit Card Payments
    Customers or members can manage individual or recurring payments for credit card accounts. Payments post on the account payment due date. Payments cannot be modified when they are processing or once they are completed. When an individual payment processes, a `confirmationNumber` is generated immediately after creating the payment. Recurring payments must be made on the account due date. The amount debited from the source account can be set to be the statement balance amount due, the minimum payment amount due, the current account balance, or a fixed recurring amount. Recurring payments have an `effectiveOn` date for the next due date. When the payment processes, a new record is made with an updated `effectiveOn` date.
    ## Alert Subscriptions
    Customers or members can [manage alert subscriptions](#op-patchCreditCardAlertSubscriptions). Alert subscriptions define how a customer or member wants to be notified on specified communication channels, such as e-mail or device notifications. Each alert subscription can configure a different communication channel to send alerts to. Some alert subscriptions require additional configuration.
    ## Transaction Rules
    Customers or members can also [manage transaction rules](#op-patchCreditCardTransactionRules). Transaction rules allow the financial institution to automatically deny transactions on behalf of the customer or member. For example, card transactions can be denied based on the geographic location of the merchant or if a transaction exceeds a specified threshold.
  version: 0.28.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: bankingCreditCards
servers:
  - url: /banking
tags:
  - name: Credit Cards
    description: Banking Credit Cards
  - name: Credit Card Providers
    description: Credit Card Providers
  - name: Credit Card Statements
    description: Credit Card Statements
  - name: Credit Card Travel Notifications
    description: Credit Card Travel Notifications
  - name: Credit Card Controls
    description: Credit Card Controls
  - name: Credit Card Payments
    description: Credit Card Payments
  - name: Credit Card Regions
    description: Credit Card Regions
  - name: Credit Card Actions
    description: Banking Credit Card Actions
paths:
  /creditCardProvider:
    get:
      summary: Fetch a representation of the credit card provider
      description: Return the JSON representation of the credit card provider resource, which informs the client how to use certain operations in this API based on what type of integration the card provider supports and what context it requires.
      operationId: getCreditCardProvider
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardProvider
      tags:
        - Credit Card Providers
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardProvider'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardProvider'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardProvider
  /creditCards:
    get:
      summary: Return a collection of credit card resources
      description: |-
        Return a collection of credit card resources for the current customer or member.
        The list may be empty if the customer or member does not have any credit cards.
        If the customer or member is not the primary cardholder, they will only see credit card resources for which they are authorized.

        Use this operation if the [credit card provider](#op-getCreditCardProvider) `context` is `customer`. if the credit card provider context is `account`, use [`lisCCreditCards`](#op-listCreditCards) instead.
      operationId: listCustomerCreditCards
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Cards
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCards'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCards'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCustomerCreditCards
  /creditCards/{creditCardId}:
    parameters:
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/unmaskedCreditCardQueryParam'
    get:
      summary: Fetch a representation of this credit card resource
      description: |-
        Return the JSON representation of this credit card resource.

        Some actions may not be available based on the cardholder type.

        The full credit card number and security code is not included in the response by default for security reasons. Include the `unmasked` query parameter with a comma-separated list of properties to request that the response body includes the full credit card number and security code, if available. The security code is not available on physical cards requiring activation. Such requests are auditable.
      operationId: getCustomerCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Cards
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCustomerCreditCard
  /creditCards/{creditCardId}/locked:
    parameters:
      - $ref: '#/components/parameters/creditCardIdPathParam'
    post:
      summary: Lock a Credit Card
      description: |-
        Lock a credit card. This changes the `state` property of the credit card to `locked`. The response is the updated representation of the credit card.

        A locked credit card may not be used for new purchases until the cardholder [unlocks the card](#op-unlockCustomerCreditCard).

        This is an idempotent action; locking a credit card changes nothing if the card is already locked.

        Locking a credit card is not allowed if `allows.lock` is `false`.
      operationId: lockCustomerCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Card Actions
      responses:
        '200':
          description: |-
            OK. The operation succeeded. The credit card resource was updated and its `state` changed to `locked`.

            This operation is idempotent: no changes are made if the credit card resource is already `locked`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: lockCustomerCreditCard
  /creditCards/{creditCardId}/unlocked:
    parameters:
      - $ref: '#/components/parameters/creditCardIdPathParam'
    post:
      summary: Unlock a Credit Card
      description: |-
        Unlock a credit card. This changes the `state` property of the credit card to `active`. The response is the updated representation of the credit card.

        This is an idempotent action; unlocking a credit card changes nothing if the card is already locked.

        Unlocking a credit card is not allowed if `allows.unlock` is `false`.
      operationId: unlockCustomerCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Card Actions
      responses:
        '200':
          description: |-
            OK. The operation succeeded. The credit card resource was updated.

            This operation is idempotent: no changes are made if the credit card resource is already in a state other than `locked`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: unlockCustomerCreditCard
  /creditCards/{creditCardId}/challenges:
    parameters:
      - $ref: '#/components/parameters/creditCardIdPathParam'
    post:
      summary: Issue a Credit Card Identity Challenge
      description: |-
        Issue an identity challenge for credit card operations.

        See the "Challenges API" for completing the identity challenge.
      operationId: createCustomerCreditCardChallenge
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardActions
      tags:
        - Credit Card Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardOperationChallengeRequest'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requiredIdentityChallenge'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/requiredIdentityChallenge'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createCustomerCreditCardChallenge
  /accounts/{accountId}/creditCards:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    get:
      summary: Return a collection of credit card resources
      description: |-
        Return a collection of credit card resources for the current customer or member.
        The list may be empty if the customer or member does not have any credit cards.
        If the customer or member is not the primary cardholder, they will only see credit card resources for which they are authorized.

        Use this operation if the [credit card provider](#op-getCreditCardProvider) `context` is `account`. If the credit card provider context is `customer`, use [`listCustomerCreditCards`](#op-listCustomerCreditCards) instead.
      operationId: listCreditCards
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Cards
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCards'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCards'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCreditCards
  /accounts/{accountId}/creditCards/{creditCardId}:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/unmaskedCreditCardQueryParam'
      - $ref: '#/components/parameters/challengeHeaderParam'
    get:
      summary: Fetch a representation of this credit card resource
      description: |-
        Return the JSON representation of this credit card resource.

        Some actions may not be available based on the cardholder type.

        The full credit card number and security code is not included in the response by default for security reasons. Include the `unmasked` query parameter with a comma-separated list of properties to request that the response body includes the full credit card number and security code, if available. The security code is not available on physical cards requiring activation. Such requests are auditable.

        Note: This operation may require an identity challenge as described above in [Identity Challenges](#identity-challenges). See the "Challenges API" for completing the identity challenge.
      operationId: getCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      x-apiture-auditable: true
      tags:
        - Credit Cards
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCard
  /accounts/{accountId}/creditCards/{creditCardId}/challenges:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    post:
      summary: Issue a Credit Card Identity Challenge
      description: |-
        Issue an identity challenge for credit card operations.

        See the "Challenges API" for completing the identity challenge.
      operationId: createCreditCardChallenge
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardActions
      tags:
        - Credit Card Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardOperationChallengeRequest'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requiredIdentityChallenge'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/requiredIdentityChallenge'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createCreditCardChallenge
  /accounts/{accountId}/creditCards/{creditCardId}/pinChange:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/challengeHeaderParam'
    post:
      operationId: changeCreditCardPin
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      summary: Change a Credit Card PIN
      description: |-
        Change the Personal Identification Number (PIN) for this credit card. The previous PIN used will no longer work after this change. The new PIN must be different than the current PIN.

        The `creditCard.allows.changePin` permission must be `true` to use this operation, The operation returns a 403 Forbidden, with problem type `forbidden`, if the currently authenticated user does not have permission to change the PIN.

        Note: This operation may require an identity challenge as described above in [Identity Challenges](#identity-challenges). See the "Challenges API" for completing the identity challenge.
      tags:
        - Credit Card Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardPinChange'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/cardPinChange'
      responses:
        '200':
          description: OK. The operation succeeded. The PIN was updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPin/v1.0.0`](https://static.api.apiture.com/errors/invalidPin/v1.0.0)<br>
              Either the current or new PIN is invalid.
              Remediation: Use a different PIN.

            * [`https://static.api.apiture.com/errors/tooManyPinChangeAttempts/v1.0.0`](https://static.api.apiture.com/errors/tooManyPinChangeAttempts/v1.0.0)<br>
              Too many invalid pin change attempts were made.
              Remediation: Try again at a different time.

            * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
              The operation cannot be performed for this financial institution.
              Remediation: Use a different operation as per the card provider context.
          x-apiture-errors:
            - invalidPin
            - tooManyPinChangeAttempts
            - invalidCardOperationForFinancialInstitution
          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'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: changeCreditCardPin
  /accounts/{accountId}/creditCards/{creditCardId}/activated:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/challengeHeaderParam'
    post:
      summary: Activate a Credit Card
      description: |-
        Activate a credit card.

        Activating a card unlocks the card from the `disabled` state.

        This is an idempotent action; Activating a credit card with a state of `active` has no effect.

        Note: This operation may require an identity challenge as described above in [Identity Challenges](#identity-challenges). See the "Challenges API" for completing the identity challenge.
      operationId: activateCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Card Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/creditCardActivationRequest'
      responses:
        '201':
          description: Activated. The credit card has been successfully activated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardItem'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardItem'
          headers:
            Location:
              description: The URI of the credit card.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '409':
          description: |
            Conflict.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidStateForCreditCardActivation/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForCreditCardActivation/v1.0.0)<br>
              The credit card cannot be activated in the current state.
              Remediation: Try again when the credit card is in a different state.
          x-apiture-errors:
            - invalidStateForCreditCardActivation
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: activateCreditCard
  /accounts/{accountId}/creditCards/{creditCardId}/transactions:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return a collection of transaction summaries for a credit card resource
      description: Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of credit card transactions. The [nextPage_url](https://developer.apiture.com/docs/concepts/links) in the response is a pagination link.
      operationId: listCreditCardTransactions
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Cards
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
        - $ref: '#/components/parameters/transactionOccurredOnQueryParam'
        - name: sortBy
          description: The sort order for the items in the response. Use `?sortBy=occurredOn` or `?sortBy=-occurredOn` to sort by ascending or descending order of the [transactions's `occurredOn` date](#schema-cardTransactionSummaryItem).
          in: query
          style: form
          explode: false
          schema:
            type: array
            uniqueItems: true
            $comment: Defined as an array so we can pass multiple sort keys in the future.
            maxItems: 1
            minItems: 1
            items:
              description: The sort key defining which value to sort by. A `-` prefix means descending.
              type: string
              pattern: ^-?(occurredOn)
              minLength: 10
              maxLength: 11
            default:
              - '-occurredOn'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardTransactions'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardTransactions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem 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.

            * [`https://static.api.apiture.com/errors/invalidStart/v1.0.0`](https://static.api.apiture.com/errors/invalidStart/v1.0.0)<br>
              The `start` query parameter is invalid.
              Remediation: Use the `nextPage_url` in the previous response (and its service-generated `?start=` parameter) to access the next page.

            * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
              The operation cannot be performed for this financial institution.
              Remediation: Use a different operation as per the card provider context.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - $ref: '#/components/x-apiture-errors/invalidStart'
            - invalidCardOperationForFinancialInstitution
          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'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCreditCardTransactions
  /accounts/{accountId}/creditCards/{creditCardId}/reported:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/challengeHeaderParam'
    post:
      summary: Report a Credit Card as Lost, Stolen, or Damaged
      description: |-
        Report a credit card as lost, stolen, or damaged. Reported cards have their state set to `disabled` and cannot be used to make purchases. Cards that are lost or stolen are replaced. Replacing a card involves changing the primary access number (PAN). Damaged cards are reissued with the same PAN but different expiration date and security card. All credit cards in the same card group are replaced or reissued.

        This is an idempotent action; reporting a credit card as lost, stolen, or damaged changes nothing if the card was already reported as damaged and has not yet been replaced or reissued.

        Damaged cards are `active` and can be used for transactions until the reissued card is [activated](#op-activateCreditCard). Once a card is reported as lost or stolen, it is `disabled`. The replacement card is `disabled` until it is activated.

        Reporting a credit card as lost is not allowed if `allows.reportLost` is `false`. Reporting a credit card as stolen is not allowed if `allows.reportStolen` is `false`. Reporting a credit card as damaged is not allowed if `allows.reportDamaged` is `false`.

        Some financial institutions may allow a card reported as lost to be marked as found before a replacement card is sent. A future API operation may support this action. Until then, if the lost card is found, the cardholder should contact the issuing financial institution to cancel the card replacement request.

        Note: This operation may require an identity challenge as described above in [Identity Challenges](#identity-challenges). See the "Challenges API" for completing the identity challenge.
      operationId: reportCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Card Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardReportedRequest'
      responses:
        '200':
          description: |-
            OK.
            All credit cards belonging to the same card group as this credit card resource have been reported as lost, stolen, or damaged.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: |
            Forbidden. The authenticated caller is not authorized to perform the requested operation.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/creditCardReplacementNotAllowed/v1.0.0`](https://static.api.apiture.com/errors/creditCardReplacementNotAllowed/v1.0.0)<br>
              The credit card cannot be reported as lost, stolen, or damaged.
              Remediation: Try again at a different time.

            * [`https://static.api.apiture.com/errors/creditCardReissueNotAllowed/v1.0.0`](https://static.api.apiture.com/errors/creditCardReissueNotAllowed/v1.0.0)<br>
              The credit card cannot be reported as damaged.
              Remediation: Try again at a different time.
          x-apiture-errors:
            - creditCardReplacementNotAllowed
            - creditCardReissueNotAllowed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: reportCreditCard
  /accounts/{accountId}/creditCards/{creditCardId}/locked:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    post:
      summary: Lock a Credit Card
      description: |-
        Lock a credit card. This changes the `state` property of the credit card to `locked`. The response is the updated representation of the credit card.

        A locked credit card may not be used for new purchases until the cardholder [unlocks the card](#op-unlockCreditCard).

        This is an idempotent action; locking a credit card changes nothing if the card is already locked.

        Locking a credit card is not allowed if `allows.lock` is `false`.
      operationId: lockCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Card Actions
      responses:
        '200':
          description: |-
            OK. The operation succeeded. The credit card resource was updated and its `state` changed to `locked`.

            This operation is idempotent: no changes are made if the credit card resource is already `locked`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: lockCreditCard
  /accounts/{accountId}/creditCards/{creditCardId}/unlocked:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    post:
      summary: Unlock a Credit Card
      description: |-
        Unlock a credit card. This changes the `state` property of the credit card to `active`. The response is the updated representation of the credit card.

        This is an idempotent action; unlocking a credit card changes nothing if the card is already locked.

        Unlocking a credit card is not allowed if `allows.unlock` is `false`.
      operationId: unlockCreditCard
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCards
      tags:
        - Credit Card Actions
      responses:
        '200':
          description: |-
            OK. The operation succeeded. The credit card resource was updated.

            This operation is idempotent: no changes are made if the credit card resource is already in a state other than `locked`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCard'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: unlockCreditCard
  /accounts/{accountId}/creditCards/{creditCardId}/transactionRules:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return this credit card's transaction rules
      description: Return transaction rules for this credit card. Each credit card on an account maintains its own set of rules.
      operationId: getCreditCardTransactionRules
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardControls
      tags:
        - Credit Card Controls
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardTransactionRules'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/cardTransactionRules'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardTransactionRules
    patch:
      summary: Update credit card transaction rules
      description: Perform a partial update of this credit card's transaction rules as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396). Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchCreditCardTransactionRules
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardControls
      tags:
        - Credit Card Controls
      requestBody:
        required: true
        description: The new card transaction rules configuration.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/cardTransactionRulesPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/cardTransactionRulesPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardTransactionRules'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/cardTransactionRules'
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cannotRemoveCommunicationChannel/v1.0.0`](https://static.api.apiture.com/errors/cannotRemoveCommunicationChannel/v1.0.0)<br>
              The communication channel is required and cannot be removed.
              Remediation: Try again without removing the communication channel.
            The `attributes` object in the error may have the properties defined for [`cannotRemoveCommunicationChannel`](https://static.api.apiture.com/errors/cannotRemoveCommunicationChannel/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
              The operation cannot be performed for this financial institution.
              Remediation: Use a different operation as per the card provider context.
          x-apiture-errors:
            - cannotRemoveCommunicationChannel
            - invalidCardOperationForFinancialInstitution
          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'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchCreditCardTransactionRules
  /accounts/{accountId}/creditCards/{creditCardId}/alertSubscriptions:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return this credit card's alert subscriptions
      description: Return alert subscriptions for this credit card. Each credit card on an account maintains its own set of alert subscriptions. Allowed alert subscriptions may be limited by the cardholder type.
      operationId: getCreditCardAlertSubscriptions
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardControls
      tags:
        - Credit Card Controls
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardAlertSubscriptions'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/cardAlertSubscriptions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardAlertSubscriptions
    patch:
      summary: Update credit card alert subscriptions
      description: Perform a partial update of this credit card's alert subscriptions as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396). Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchCreditCardAlertSubscriptions
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardControls
      tags:
        - Credit Card Controls
      requestBody:
        required: true
        description: The new card alert subscription.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/cardAlertSubscriptionsPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/cardAlertSubscriptionsPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardAlertSubscriptions'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/cardAlertSubscriptions'
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchCreditCardAlertSubscriptions
  /accounts/{accountId}/creditCards/{creditCardId}/statements:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return a collection of credit card statements.
      description: Return statements for this credit card resource.
      operationId: listCreditCardStatements
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardStatements
      tags:
        - Credit Card Statements
      x-apiture-comment: A future enhancement might also include filtering between annual and monthly statements. Current scope of work only provides monthly statements. An additional enhancement may be to filter based on a date range.
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardStatements'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardStatements'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCreditCardStatements
  /accounts/{accountId}/creditCards/{creditCardId}/statements/{creditCardStatementId}:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/creditCardStatementIdPathParam'
    get:
      summary: Fetch a representation of this statement
      description: Return the JSON representation of this statement resource.
      operationId: getCreditCardStatement
      x-apiture-api: bankingCreditCards
      x-apiture-group: statements
      tags:
        - Credit Card Statements
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardStatement'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardStatement'
        '202':
          description: |-
            Accepted. The statement resource is currently unavailable.
            Try the call again after the time in the `Retry-After` response header has passed. 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/creditCardStatementItem'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardStatementItem'
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: |
            Not Found.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
              The named `accountId` does not exist or the user is not entitled to access the account.
              Remediation: Pass the `id` of an existing account the caller has access to.

            * [`https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0)<br>
              There is no such credit card account resource for the given `creditCardId`.
              Remediation: Pass a valid credit card account ID.

            * [`https://static.api.apiture.com/errors/noSuchCreditCardStatement/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardStatement/v1.0.0)<br>
              There is no such credit card statement resource for the given `statementId`.
              Remediation: Pass a valid statement ID.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/invalidAccountId'
            - noSuchCreditCardAccount
            - noSuchCreditCardStatement
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardStatement
  /accounts/{accountId}/creditCards/{creditCardId}/travelNotifications:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return a collection of credit card travel notifications
      description: Return a collection of travel notifications.
      operationId: listCreditCardTravelNotifications
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardTravelNotifications
      tags:
        - Credit Card Travel Notifications
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardTravelNotifications'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardTravelNotifications'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardTravelNotification'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCreditCardTravelNotifications
    post:
      summary: Create a new travel notification
      description: Create a new travel notification within the travel notifications collection.
      operationId: createCreditCardTravelNotification
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardTravelNotifications
      tags:
        - Credit Card Travel Notifications
      requestBody:
        required: true
        description: The data necessary to create a new travel notification.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newTravelNotification'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travelNotification'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/travelNotification'
          headers:
            Location:
              description: The URI of the new credit card travel notification.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardTravelNotification'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createCreditCardTravelNotification
  /accounts/{accountId}/creditCards/{creditCardId}/travelNotifications/{travelNotificationId}:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/travelNotificationIdPathParam'
    get:
      summary: Fetch a representation of this travel notification
      description: Return the JSON representation of this travel notification resource.
      operationId: getCreditCardTravelNotification
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardTravelNotifications
      tags:
        - Credit Card Travel Notifications
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travelNotification'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/travelNotification'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardTravelNotification'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardTravelNotification
    patch:
      summary: Update this travel notification
      description: Perform a partial update of this travel notification as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396). Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchCreditCardTravelNotification
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardTravelNotifications
      tags:
        - Credit Card Travel Notifications
      requestBody:
        required: true
        description: The new travel notification.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/travelNotificationPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/travelNotificationPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travelNotification'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/travelNotification'
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardTravelNotification'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchCreditCardTravelNotification
    delete:
      summary: Delete this travel notification resource
      description: Delete this travel notification resource.
      operationId: deleteCreditCardTravelNotification
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardTravelNotifications
      tags:
        - Credit Card Travel Notifications
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardTravelNotification'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deleteCreditCardTravelNotification
  /accounts/{accountId}/creditCards/{creditCardId}/payments:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return a collection of credit card payments
      description: Return a collection of credit card payments sorted by `lastUpdated` in descending order.
      operationId: listCreditCardPayments
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardPayments
      tags:
        - Credit Card Payments
      parameters:
        - name: state
          in: query
          required: false
          description: |-
            Include only payments whose `state` is in this pipe-delimited set. For example, to list only completed or canceled payments, use

            `?state=completed|canceled`.
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 4
            uniqueItems: true
            items:
              $ref: '#/components/schemas/creditCardPaymentState'
        - name: frequency
          in: query
          required: false
          description: Include only payments whose `frequency` is in this pipe-delimited set.
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 2
            uniqueItems: true
            items:
              $ref: '#/components/schemas/creditCardPaymentFrequency'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardPayments'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardPayments'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCreditCardPayments
    post:
      summary: Create a new credit card payment
      description: |-
        Create a new credit card payment within the credit card payments collection.

        Only source accounts with `allows.transferFrom: true` are eligible for credit card payments.

        Once a payment is created, the `type` cannot be changed.
      operationId: createCreditCardPayment
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardPayments
      tags:
        - Credit Card Payments
      requestBody:
        required: true
        description: The data necessary to create a new credit card payment.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newCreditCardPayment'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
          headers:
            Location:
              description: The URI of the new credit card payment.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '409':
          description: |
            Conflict.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/tooManyRecurringCreditCardPayments/v1.0.0`](https://static.api.apiture.com/errors/tooManyRecurringCreditCardPayments/v1.0.0)<br>
              Adding this recurring payment exceeds limits for recurring payments.
              Remediation: Remove an existing recurring payment before adding an additional recurring payment.
          x-apiture-errors:
            - tooManyRecurringCreditCardPayments
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/ineligiblePaymentSourceAccount/v1.0.0`](https://static.api.apiture.com/errors/ineligiblePaymentSourceAccount/v1.0.0)<br>
              The source account for this credit card payment is ineligible for transfers.
              Remediation: Choose a different source account.

            * [`https://static.api.apiture.com/errors/noSuchSourceAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchSourceAccount/v1.0.0)<br>
              There is no such source account at the financial institution for the given `sourceAccount.id`.
              Remediation: Pass a valid source account ID.

            * [`https://static.api.apiture.com/errors/invalidCreditCardPaymentScheduleDate/v1.0.0`](https://static.api.apiture.com/errors/invalidCreditCardPaymentScheduleDate/v1.0.0)<br>
              The payment scheduled start date for this credit card payment is invalid.
              Remediation: Set a different scheduled date.

            * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
              The operation cannot be performed for this financial institution.
              Remediation: Use a different operation as per the card provider context.
          x-apiture-errors:
            - ineligiblePaymentSourceAccount
            - noSuchSourceAccount
            - invalidCreditCardPaymentScheduleDate
            - invalidCardOperationForFinancialInstitution
          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'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createCreditCardPayment
  /accounts/{accountId}/creditCards/{creditCardId}/payments/{creditCardPaymentId}:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/creditCardPaymentIdPathParam'
    get:
      summary: Fetch a representation of this credit card payment
      description: Return the JSON representation of this credit card payment resource.
      operationId: getCreditCardPayment
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardPayments
      tags:
        - Credit Card Payments
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardPayment'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardPayment
    patch:
      summary: Update this credit card payment
      description: |-
        Perform a partial update of this credit card payment as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.

        Payments can only be patched when `allows.edit` is `true`.

        Only source accounts with `allows.transferFrom: true` are eligible for credit card payments.

        Payments with a `state` of `processing` or `completed` are ineligible for patching.
      operationId: patchCreditCardPayment
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardPayments
      tags:
        - Credit Card Payments
      requestBody:
        required: true
        description: The fields to update within the credit card payment.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/creditCardPaymentPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/creditCardPaymentPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardPayment'
        '409':
          $ref: '#/components/responses/409'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/ineligiblePaymentSourceAccount/v1.0.0`](https://static.api.apiture.com/errors/ineligiblePaymentSourceAccount/v1.0.0)<br>
              The source account for this credit card payment is ineligible for transfers.
              Remediation: Choose a different source account.

            * [`https://static.api.apiture.com/errors/noSuchSourceAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchSourceAccount/v1.0.0)<br>
              There is no such source account at the financial institution for the given `sourceAccount.id`.
              Remediation: Pass a valid source account ID.

            * [`https://static.api.apiture.com/errors/invalidCreditCardPaymentScheduleDate/v1.0.0`](https://static.api.apiture.com/errors/invalidCreditCardPaymentScheduleDate/v1.0.0)<br>
              The payment scheduled start date for this credit card payment is invalid.
              Remediation: Set a different scheduled date.

            * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
              The operation cannot be performed for this financial institution.
              Remediation: Use a different operation as per the card provider context.
          x-apiture-errors:
            - ineligiblePaymentSourceAccount
            - noSuchSourceAccount
            - invalidCreditCardPaymentScheduleDate
            - invalidCardOperationForFinancialInstitution
          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'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchCreditCardPayment
  /accounts/{accountId}/creditCards/{creditCardId}/payments/{creditCardPaymentId}/canceled:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/creditCardPaymentIdPathParam'
    delete:
      summary: Cancel a credit card payment
      description: |-
        Delete (cancel) a credit card payment. When a recurring payment is canceled, all future recurrences are also canceled.

        This is an idempotent action: no changes are made if the credit card payment is already `canceled`.

        Processing and completed payments cannot be canceled.
      operationId: cancelCreditCardPayment
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardPayments
      tags:
        - Credit Card Payments
      responses:
        '200':
          description: OK. The credit card payment was successfully canceled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/creditCardPayment'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardPayment'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422InvalidCardOperation'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: cancelCreditCardPayment
  /accounts/{accountId}/creditCards/{creditCardId}/regions:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
    get:
      summary: Return a collection of named card regions
      description: Return a collection of named card regions. These regions define geographic areas where the cardholder plans to use the card, that is, where card use is authorized.
      operationId: listCreditCardRegions
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardRegions
      tags:
        - Credit Card Regions
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardRegions'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listCreditCardRegions
    post:
      summary: Create a new card region
      description: Create a new named card region within this card's regions collection. The new region defines an additional geographic areas where the cardholder plans to use the card, that is, where card use is authorized. The new region may overlap existing regions.
      operationId: createCreditCardRegion
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardRegions
      tags:
        - Credit Card Regions
      requestBody:
        required: true
        description: The data necessary to create a new region.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newCardRegion'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardRegion'
          headers:
            Location:
              description: The URI of the new card region.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCard'
        '422':
          $ref: '#/components/responses/422CardRegion'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createCreditCardRegion
  /accounts/{accountId}/creditCards/{creditCardId}/regions/{regionId}:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/creditCardIdPathParam'
      - $ref: '#/components/parameters/regionIdPathParam'
    get:
      summary: Fetch a representation of this card region
      description: Return the JSON representation of this card region resource.
      operationId: getCreditCardRegion
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardRegions
      tags:
        - Credit Card Regions
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardRegion'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardRegion'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCreditCardRegion
    patch:
      summary: Update this card region
      description: Perform a partial update of this card region as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchCreditCardRegion
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardRegions
      tags:
        - Credit Card Regions
      requestBody:
        required: true
        description: The fields to update within the card region.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/cardRegionPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/cardRegionPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardRegion'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardRegion'
        '422':
          $ref: '#/components/responses/422CardRegion'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchCreditCardRegion
    delete:
      summary: Delete this card region resource
      description: Delete this card region resource and any resources that are owned by it.
      operationId: deleteCreditCardRegion
      x-apiture-api: bankingCreditCards
      x-apiture-group: creditCardRegions
      tags:
        - Credit Card Regions
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CreditCardRegion'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deleteCreditCardRegion
components:
  parameters:
    creditCardIdPathParam:
      name: creditCardId
      description: The unique identifier of this credit card resource. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/externalResourceId'
      required: true
    creditCardStatementIdPathParam:
      name: creditCardStatementId
      description: The unique identifier of this credit card statement resource. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/externalResourceId'
      required: true
    creditCardPaymentIdPathParam:
      name: creditCardPaymentId
      description: The unique identifier of this credit card payment. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/externalResourceId'
      required: true
    travelNotificationIdPathParam:
      name: travelNotificationId
      description: The unique identifier of this travel notification. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/externalResourceId'
      required: true
    unmaskedCreditCardQueryParam:
      name: unmasked
      description: |-
        When requesting details for a card, the full account number is not included in the response by default for security reasons. The security code is not included for physical cards, and may not be requested until the card has been activated. Because digitally issued cards do not require activation, there are not any restrictions on requesting the unmasked security code.

        Include this query parameter with a comma-separated list of properties to unmask in the response body. Such requests are auditable.
      in: query
      explode: false
      style: form
      required: false
      schema:
        type: array
        uniqueItems: true
        minItems: 1
        maxItems: 2
        x-apiture-note: The maximum number of items corresponds with the number of enum values in `creditCardMaskedProperties`
        items:
          $ref: '#/components/schemas/creditCardMaskedProperties'
    regionIdPathParam:
      name: regionId
      description: The unique identifier of this region. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/externalResourceId'
      required: true
    accountIdPathParam:
      name: accountId
      description: The unique identifier of this account resource. This is an opaque string.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../accounts/openapi.yaml#/components/parameters/accountIdPathParam
    challengeHeaderParam:
      name: Challenge
      description: This operation may require a completed challenge. If the first attempt calling this operation fails with a 403 `challengeRequired` error, the client should complete the challenge flow as described in the Challenges API, then retry the operation with this `Challenge` request header using the `challengeToken` returned at the end of that flow. If this is passed but the value is invalid, the operation fails with a 403 status code and the `invalidIdentityChallengeHeader` problem type.
      in: header
      schema:
        $ref: '#/components/schemas/challengeToken'
      x-resolved-from: ../../challenges/openapi.yaml#/components/parameters/challengeHeaderParam
    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
    limitQueryParam:
      name: limit
      in: query
      description: The maximum number of items to return in this paged response.
      schema:
        type: integer
        format: int32
        minimum: 0
        maximum: 1000
        default: 100
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/limitQueryParam
    transactionOccurredOnQueryParam:
      name: occurredOn
      description: |-
        Return only transactions whose `occurredOn` date is in this date range. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. Each account has an implicit default transaction history range of _n_ days. This is normally 30 days but may be shorter for accounts with high activity. This _n_ day period is applied to any unbounded date ranges. The default date range is the most recent _n_ days.

        Example date ranges:
          * `2023-05-19` match transactions occurring on May 19, 2023.
          * `[2023-05-01,2023-05-31]` match transactions occurring between May 1 and 31, 2023, inclusive
          * `[2023-05-01,2023-06-01)` match transactions occurring in May, 2023 (on or after May 1, but before June 1)
          * `[2023-05-09,]` match transactions _n_ days on or after May 9, 2023
          * `(2023-05-09,)` match transactions _n_ days after May 9, 2023
          * `[,2023-05-09]` match transactions _n_ days on or before May 9, 2023
          * `(,2023-05-09)` match transactions _n_ days before but excluding May 9, 2023
      in: query
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$
        minLength: 10
        maxLength: 24
        examples:
          - '2023-05-19'
          - '[2023-05-01,2023-05-31]'
          - '[2023-05-01,2023-06-01)'
          - '[2023-05-19,]'
          - (2023-05-19,)
          - '[,2023-05-19]'
          - (,2023-05-19)
      x-resolved-from: ../../transactions/openapi.yaml#/components/parameters/transactionOccurredOnQueryParam
  responses:
    '204':
      description: No Content. The operation succeeded but returned no response body.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/204
    '400':
      description: |
        Bad Request. The request body, request headers, and/or query parameters are not well-formed.

        This problem 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 problem 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
    '403':
      description: |
        Forbidden. The authenticated caller is not authorized to perform the requested operation.

        This problem 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.

        * [`https://static.api.apiture.com/errors/customerDisabled/v1.0.0`](https://static.api.apiture.com/errors/customerDisabled/v1.0.0)<br>
          The customer is disabled.
          Remediation: Have the customer contact the financial institution for support.

        * [`https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0`](https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0)<br>
          The financial institution requires the customer to have anti-malware software installed.
          Remediation: Direct the user to the software requirements guide to install the correct anti-malware software.

        * [`https://static.api.apiture.com/errors/modificationForbidden/v1.0.0`](https://static.api.apiture.com/errors/modificationForbidden/v1.0.0)<br>
          The customer is properly authenticated but not authorized to create, modify, or delete resources.
          Remediation: Avoid modification operation for customers with read-only authorization.

        * [`https://static.api.apiture.com/errors/challengeRequired/v1.0.0`](https://static.api.apiture.com/errors/challengeRequired/v1.0.0)<br>
          The operation requires the customer to complete an identity challenge.
          Remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
        The `attributes` object in the error may have the properties defined by the [`requiredIdentityChallenge` schema](#schema-requiredIdentityChallenge).
        * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
          The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
          Remediation: Have the user end their login session and login again.

        * [`https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0`](https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0)<br>
          This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
          Remediation: Have the user register one or more challenge security code delivery factors.

        * [`https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0`](https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0)<br>
          The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
          Remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
        - $ref: '#/components/x-apiture-errors/customerDisabled'
        - $ref: '#/components/x-apiture-errors/antiMalwareRequired'
        - $ref: '#/components/x-apiture-errors/modificationForbidden'
        - $ref: '#/components/x-apiture-errors/challengeRequired'
        - $ref: '#/components/x-apiture-errors/challengeBlocked'
        - $ref: '#/components/x-apiture-errors/noIdentityChallengeFactors'
        - $ref: '#/components/x-apiture-errors/invalidIdentityChallengeHeader'
      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/403
    '404':
      description: |
        Not found. There is no such resource at the request URL.

        This problem 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
    '409':
      description: |
        Conflict. The request conflicts with the state of the application.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/conflict/v1.0.0`](https://static.api.apiture.com/errors/conflict/v1.0.0)<br>
          The request could not be completed due to a conflict with the current state of the target resource.
          Remediation: Try another operation that is allowed.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/conflict'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/409
    '429':
      description: |
        Too Many Requests. The client has sent too many requests in a given amount of time.

        This problem 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
    404CreditCard:
      description: |
        Not Found. There is no such resource at the request URL.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
          The named `accountId` does not exist or the user is not entitled to access the account.
          Remediation: Pass the `id` of an existing account the caller has access to.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0)<br>
          There is no such credit card account resource for the given `creditCardId`.
          Remediation: Pass a valid credit card account ID.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/invalidAccountId'
        - noSuchCreditCardAccount
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404CreditCardTravelNotification:
      description: |
        Not Found. There is no such resource at the request URL.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
          The named `accountId` does not exist or the user is not entitled to access the account.
          Remediation: Pass the `id` of an existing account the caller has access to.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0)<br>
          There is no such credit card account resource for the given `creditCardId`.
          Remediation: Pass a valid credit card account ID.

        * [`https://static.api.apiture.com/errors/noSuchTravelNotification/v1.0.0`](https://static.api.apiture.com/errors/noSuchTravelNotification/v1.0.0)<br>
          There is no such travel notification resource for the given `travelNotificationId`.
          Remediation: Pass a valid travel notification ID.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/invalidAccountId'
        - noSuchCreditCardAccount
        - noSuchTravelNotification
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404CreditCardPayment:
      description: |
        Not Found. There is no such resource at the request URL.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
          The named `accountId` does not exist or the user is not entitled to access the account.
          Remediation: Pass the `id` of an existing account the caller has access to.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0)<br>
          There is no such credit card account resource for the given `creditCardId`.
          Remediation: Pass a valid credit card account ID.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardPayment/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardPayment/v1.0.0)<br>
          There is no such credit card payment resource for the given `creditCardPaymentId`.
          Remediation: Pass a valid credit card payment ID.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/invalidAccountId'
        - noSuchCreditCardAccount
        - noSuchCreditCardPayment
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422InvalidCardOperation:
      description: |
        Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
          The operation cannot be performed for this financial institution.
          Remediation: Use a different operation as per the card provider context.
      x-apiture-errors:
        - invalidCardOperationForFinancialInstitution
    404CreditCardRegion:
      description: |
        Not Found. There is no such resource at the request URL.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
          The named `accountId` does not exist or the user is not entitled to access the account.
          Remediation: Pass the `id` of an existing account the caller has access to.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardAccount/v1.0.0)<br>
          There is no such credit card account resource for the given `creditCardId`.
          Remediation: Pass a valid credit card account ID.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardPayment/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardPayment/v1.0.0)<br>
          There is no such credit card payment resource for the given `creditCardPaymentId`.
          Remediation: Pass a valid credit card payment ID.

        * [`https://static.api.apiture.com/errors/noSuchCreditCardRegion/v1.0.0`](https://static.api.apiture.com/errors/noSuchCreditCardRegion/v1.0.0)<br>
          There is no such credit card region resource for the given `regionId`.
          Remediation: Pass a valid credit card region ID.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/invalidAccountId'
        - noSuchCreditCardAccount
        - noSuchCreditCardPayment
        - noSuchCreditCardRegion
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422CardRegion:
      description: |
        Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

        This problem 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.

        * [`https://static.api.apiture.com/errors/invalidRadius/v1.0.0`](https://static.api.apiture.com/errors/invalidRadius/v1.0.0)<br>
          The given region's radius is less than 5 miles (8km) or greater than 500 miles (805km).
          Remediation: Use a radius between 5 miles (8km) and 500 miles (805 km).

        * [`https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidCardOperationForFinancialInstitution/v1.0.0)<br>
          The operation cannot be performed for this financial institution.
          Remediation: Use a different operation as per the card provider context.

        * [`https://static.api.apiture.com/errors/invalidCountryCodeForCardRegion/v1.0.0`](https://static.api.apiture.com/errors/invalidCountryCodeForCardRegion/v1.0.0)<br>
          The country code is invalid for this card region based on the financial institution's configuration.
          Remediation: Use a different country code.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unprocessableEntity'
        - $ref: '#/components/x-apiture-errors/invalidRadius'
        - $ref: '#/components/x-apiture-errors/invalidCardOperationForFinancialInstitution'
        - $ref: '#/components/x-apiture-errors/invalidCountryCodeForCardRegion'
      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-resource/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/banking-resource/bb709151-575041fcd617
    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
  schemas:
    creditCardProvider:
      x-apiture-version: 5.0.0
      title: Credit Card Provider (v5.0.0)
      description: Representation of the credit card provider resource.
      required:
        - context
        - operations
        - merchantCategories
        - cardRegionType
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            context:
              $ref: '#/components/schemas/cardProviderContext'
            operations:
              $ref: '#/components/schemas/creditCardOperations'
            merchantCategories:
              description: Categories of card merchants for alerts and transaction rules.
              type: array
              minItems: 0
              maxItems: 12
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardMerchantCategories'
            cardRegionType:
              description: Indicates the required location `type` for card regions.
              allOf:
                - $ref: '#/components/schemas/cardRegionLocationType'
      example:
        context: account
        operations:
          listCustomerCreditCards:
            enabled: false
            requiresIdentityChallenge: false
          getCustomerCreditCard:
            enabled: false
            requiresIdentityChallenge: false
          getCustomerCreditCardUnmaskedProperties:
            enabled: true
            requiresIdentityChallenge: true
          lockCustomerCreditCard:
            enabled: false
            requiresIdentityChallenge: false
          unlockCustomerCreditCard:
            enabled: false
            requiresIdentityChallenge: false
          createCustomerCreditCardChallenge:
            enabled: false
            requiresIdentityChallenge: false
          listCreditCards:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCard:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCardUnmaskedProperties:
            enabled: true
            requiresIdentityChallenge: true
          createCreditCardChallenge:
            enabled: true
            requiresIdentityChallenge: false
          changeCreditCardPin:
            enabled: true
            requiresIdentityChallenge: true
          activateCreditCard:
            enabled: true
            requiresIdentityChallenge: true
          listCreditCardTransactions:
            enabled: true
            requiresIdentityChallenge: false
          reportCreditCard:
            enabled: true
            requiresIdentityChallenge: true
          lockCreditCard:
            enabled: true
            requiresIdentityChallenge: false
          unlockCreditCard:
            enabled: true
            requiresIdentityChallenge: true
          getCreditCardTransactionRules:
            enabled: true
            requiresIdentityChallenge: false
          patchCreditCardTransactionRules:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCardAlertSubscriptions:
            enabled: true
            requiresIdentityChallenge: false
          patchCreditCardAlertSubscriptions:
            enabled: true
            requiresIdentityChallenge: false
          listCreditCardStatements:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCardStatement:
            enabled: true
            requiresIdentityChallenge: false
          listCreditCardTravelNotifications:
            enabled: true
            requiresIdentityChallenge: false
          createCreditCardTravelNotification:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCardTravelNotification:
            enabled: true
            requiresIdentityChallenge: false
          patchCreditCardTravelNotification:
            enabled: true
            requiresIdentityChallenge: false
          deleteCreditCardTravelNotification:
            enabled: true
            requiresIdentityChallenge: false
          listCreditCardPayments:
            enabled: true
            requiresIdentityChallenge: false
          createCreditCardPayment:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCardPayment:
            enabled: true
            requiresIdentityChallenge: false
          patchCreditCardPayment:
            enabled: true
            requiresIdentityChallenge: false
          cancelCreditCardPayment:
            enabled: true
            requiresIdentityChallenge: false
          listCreditCardRegions:
            enabled: true
            requiresIdentityChallenge: false
          createCreditCardRegion:
            enabled: true
            requiresIdentityChallenge: false
          getCreditCardRegion:
            enabled: true
            requiresIdentityChallenge: false
          patchCreditCardRegion:
            enabled: true
            requiresIdentityChallenge: false
          deleteCreditCardRegion:
            enabled: true
            requiresIdentityChallenge: false
        merchantCategories:
          - ageRestricted
          - education
          - entertainment
          - foodAndDining
          - giftsAndDonations
          - household
          - insurance
          - personalCare
          - shopping
          - transportation
          - travel
          - other
        cardRegionType: coordinates
    cardProviderContext:
      title: Card Provider Context (v1.0.0)
      description: |+
        The context of the card provider, indicating which operations to use for listing cards, retrieving card details, and others.

        <strong><code>cardProviderContext</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>account</code></strong></td><td>Account: <p>The card provider operations use an account context</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>customer</code></strong></td><td>Customer/Member: <p>The card provider operations use a customer or member context</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cardProviderContext
      enum:
        - account
        - customer
      x-apiture-version: 1.0.0
    cardProviderOperation:
      title: Card Provider Operation (v1.0.0)
      description: Describes if and how a client may access various card-specific operations in this API.
      type: object
      required:
        - enabled
        - requiresIdentityChallenge
      properties:
        enabled:
          description: When `true`, this operation is enabled for the card provider.
          type: boolean
        requiresIdentityChallenge:
          description: When `true`, this operation requires an identity challenge to be completed.
          type: boolean
      x-apiture-version: 1.0.0
    creditCardOperations:
      x-apiture-version: 2.0.0
      title: Credit Card Operations (v2.0.0)
      description: API operations for credit cards within Apiture Digital Banking.
      type: object
      required:
        - listCustomerCreditCards
        - getCustomerCreditCard
        - getCustomerCreditCardUnmaskedProperties
        - lockCustomerCreditCard
        - unlockCustomerCreditCard
        - createCustomerCreditCardChallenge
        - listCreditCards
        - getCreditCard
        - getCreditCardUnmaskedProperties
        - createCreditCardChallenge
        - changeCreditCardPin
        - activateCreditCard
        - listCreditCardTransactions
        - reportCreditCard
        - lockCreditCard
        - unlockCreditCard
        - getCreditCardTransactionRules
        - patchCreditCardTransactionRules
        - getCreditCardAlertSubscriptions
        - patchCreditCardAlertSubscriptions
        - listCreditCardStatements
        - getCreditCardStatement
        - listCreditCardTravelNotifications
        - createCreditCardTravelNotification
        - getCreditCardTravelNotification
        - patchCreditCardTravelNotification
        - deleteCreditCardTravelNotification
        - listCreditCardPayments
        - createCreditCardPayment
        - getCreditCardPayment
        - patchCreditCardPayment
        - cancelCreditCardPayment
        - listCreditCardRegions
        - createCreditCardRegion
        - getCreditCardRegion
        - patchCreditCardRegion
        - deleteCreditCardRegion
      properties:
        listCustomerCreditCards:
          $ref: '#/components/schemas/cardProviderOperation'
        getCustomerCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        getCustomerCreditCardUnmaskedProperties:
          description: |-
            Describes if and how a client may access various card-specific operations in this API.

            This operation is tied to parameterized functionality within the `getCustomerCreditCard` operation. The intent is to clarify that while `getCustomerCreditCard` may not require an identity challenge, this feature of the operation may.
          allOf:
            - $ref: '#/components/schemas/cardProviderOperation'
        lockCustomerCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        unlockCustomerCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        createCustomerCreditCardChallenge:
          $ref: '#/components/schemas/cardProviderOperation'
        listCreditCards:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardUnmaskedProperties:
          description: |-
            Describes if and how a client may access various card-specific operations in this API.

            This operation is tied to parameterized functionality within the `getCreditCard` operation. The intent is to clarify that while `getCreditCard` may not require an identity challenge, this feature of the operation may.
          allOf:
            - $ref: '#/components/schemas/cardProviderOperation'
        createCreditCardChallenge:
          $ref: '#/components/schemas/cardProviderOperation'
        changeCreditCardPin:
          $ref: '#/components/schemas/cardProviderOperation'
        activateCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        listCreditCardTransactions:
          $ref: '#/components/schemas/cardProviderOperation'
        reportCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        lockCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        unlockCreditCard:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardTransactionRules:
          $ref: '#/components/schemas/cardProviderOperation'
        patchCreditCardTransactionRules:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardAlertSubscriptions:
          $ref: '#/components/schemas/cardProviderOperation'
        patchCreditCardAlertSubscriptions:
          $ref: '#/components/schemas/cardProviderOperation'
        listCreditCardStatements:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardStatement:
          $ref: '#/components/schemas/cardProviderOperation'
        listCreditCardTravelNotifications:
          $ref: '#/components/schemas/cardProviderOperation'
        createCreditCardTravelNotification:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardTravelNotification:
          $ref: '#/components/schemas/cardProviderOperation'
        patchCreditCardTravelNotification:
          $ref: '#/components/schemas/cardProviderOperation'
        deleteCreditCardTravelNotification:
          $ref: '#/components/schemas/cardProviderOperation'
        listCreditCardPayments:
          $ref: '#/components/schemas/cardProviderOperation'
        createCreditCardPayment:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardPayment:
          $ref: '#/components/schemas/cardProviderOperation'
        patchCreditCardPayment:
          $ref: '#/components/schemas/cardProviderOperation'
        cancelCreditCardPayment:
          $ref: '#/components/schemas/cardProviderOperation'
        listCreditCardRegions:
          $ref: '#/components/schemas/cardProviderOperation'
        createCreditCardRegion:
          $ref: '#/components/schemas/cardProviderOperation'
        getCreditCardRegion:
          $ref: '#/components/schemas/cardProviderOperation'
        patchCreditCardRegion:
          $ref: '#/components/schemas/cardProviderOperation'
        deleteCreditCardRegion:
          $ref: '#/components/schemas/cardProviderOperation'
    travelNotificationFields:
      title: Travel Notification Fields (v1.0.0)
      description: Common fields of the travel notification resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        departingOn:
          description: The date the travel begins in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format.
          $ref: '#/components/schemas/date'
        returningOn:
          description: The date the travel ends in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format.
          $ref: '#/components/schemas/date'
        countryCode:
          description: The country the customer or member is traveling to in the [ISO-3611 alpha-2](https://www.iso.org/glossary-for-iso-3166.html) format.
          $ref: '#/components/schemas/countryCode'
        regionCode:
          type: string
          maxLength: 2
          minLength: 2
          pattern: ^[A-Za-z]{2}$
          description: |-
            The state, district, or [outlying area](https://nrs.ed.gov/rt) where the customer or member is traveling when in the United States.

            This is required when `countryCode` is `US`.
          examples:
            - NC
            - DC
            - VT
        phoneNumber:
          description: The phone number where the member can be reached at while traveling.
          $ref: '#/components/schemas/simplePhoneNumber'
        notes:
          description: Notes from the customer or member regarding their travel.
          type: string
          format: text
          minLength: 1
          maxLength: 1000
      x-apiture-version: 1.0.0
    newTravelNotification:
      title: New Travel Notification (v1.0.0)
      description: Representation used to create a new travel notification.
      required:
        - departingOn
        - returningOn
        - countryCode
        - phoneNumber
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/travelNotificationFields'
      example:
        departingOn: '2024-06-01'
        returningOn: '2024-06-10'
        countryCode: US
        regionCode: FL
        phoneNumber: '5555555555'
        notes: Disney, Universal and Sea World
      x-apiture-version: 1.0.0
    travelNotificationImmutableFields:
      title: Travel Notification Immutable Fields (v1.0.0)
      description: Immutable fields used to compose other model schemas for travel notifications.
      x-apiture-fragment: true
      type: object
      properties:
        id:
          description: The unique identifier for this travel notification resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        allows:
          $ref: '#/components/schemas/travelNotificationAllows'
      x-apiture-version: 1.0.0
    creditCardTravelNotificationItem:
      x-apiture-version: 2.0.0
      title: Credit Card Travel Notification Item (v2.0.0)
      description: Summary representation of a travel notification resource in travel notifications collections. To fetch the full representation of this credit card travel notification, use the [`getCreditCardTravelNotification`](#op-getCreditCardTravelNotification) operation, passing this item's `id` field as the `travelNotificationId` path parameter.
      type: object
      required:
        - id
        - departingOn
        - returningOn
        - countryCode
        - allows
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/travelNotificationImmutableFields'
        - $ref: '#/components/schemas/travelNotificationFields'
      example:
        id: 0399abed-fd3d
        departingOn: '2024-06-01'
        returningOn: '2024-06-10'
        countryCode: US
        regionCode: FL
        phoneNumber: '5555555555'
        notes: Disney, Universal and Sea World
        allows:
          edit: false
          delete: false
    travelNotification:
      x-apiture-version: 2.0.0
      title: Travel Notification (v2.0.0)
      description: Representation of a travel notification resource.
      type: object
      required:
        - id
        - departingOn
        - returningOn
        - countryCode
        - phoneNumber
        - allows
      allOf:
        - $ref: '#/components/schemas/travelNotificationFields'
        - $ref: '#/components/schemas/travelNotificationImmutableFields'
      example:
        id: 0399abed-fd3d
        departingOn: '2024-06-01'
        returningOn: '2024-06-10'
        countryCode: US
        regionCode: FL
        phoneNumber: '5555555555'
        notes: Disney, Universal and Sea World
        allows:
          edit: false
          delete: false
    creditCardTravelNotifications:
      x-apiture-version: 2.0.0
      title: Credit Card Travel Notification Collection (v2.0.0)
      description: Collection of credit card travel notifications. The items in the collection are ordered in the `items` array.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing credit card travel notification items.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/creditCardTravelNotificationItem'
      example:
        items:
          - id: ebf3709442ea-4836
            departingOn: '2024-11-03'
            returningOn: '2024-11-17'
            countryCode: UK
            phoneNumber: '5555555555'
            notes: Visiting family
            allows:
              edit: false
              delete: false
          - id: 0399abed-fd3d
            departingOn: '2024-06-01'
            returningOn: '2024-06-10'
            countryCode: US
            regionCode: FL
            phoneNumber: '5555555555'
            notes: Disney, Universal and Sea World
            allows:
              edit: false
              delete: false
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            departingOn: '2024-03-20'
            returningOn: '2024-03-24'
            countryCode: US
            regionCode: DC
            phoneNumber: '5555555555'
            allows:
              edit: false
              delete: false
    travelNotificationPatch:
      title: Travel Notification Patch Request (v1.0.0)
      description: Representation used to patch a travel notification using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/travelNotificationFields'
      x-apiture-version: 1.0.0
    travelNotificationAllows:
      title: Travel Notification Allows (v1.0.0)
      description: Flags which indicate the permissions the current authorized user has on this travel notification resource.
      required:
        - edit
        - delete
      type: object
      properties:
        edit:
          description: If `true`, the currently authenticated user is authorized to edit this travel notification.
          type: boolean
        delete:
          description: If `true`, the currently authenticated user is authorized to delete this travel notification.
          type: boolean
      x-apiture-version: 1.0.0
    cardTransactionItem:
      title: Card Transaction Item (v1.0.0)
      description: Representation of a transaction resource in the card transactions collection.
      type: object
      required:
        - occurredOn
        - description
        - amount
        - direction
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            occurredOn:
              description: The date of the transaction in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/date'
            description:
              description: The transaction description assigned by the card provider.
              type: string
              format: text
              maxLength: 128
            amount:
              description: The monetary value of this card transaction. This is immutable.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
            direction:
              description: The direction of the transaction. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/cardTransactionDirection'
      example:
        occurredOn: '2024-01-16'
        description: '**MACYS1234'
        amount: '-52.05'
        direction: debit
      x-apiture-version: 1.0.0
    creditCardTransactions:
      x-apiture-version: 2.0.0
      title: Credit Card Transactions Collection (v2.0.0)
      description: Collection of credit card transactions. The response object may contain the `nextPage_url` pagination link.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          properties:
            items:
              description: An array containing a page of transaction items.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/cardTransactionItem'
      example:
        start: d1b48af913464aa49fcb07065dcc0616
        limit: 10
        nextPage_url: https://static.api.apiture.com/banking/accounts/0399abed-fd3d/creditCards/d2d01f5e-f64a/transactions?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10
        items:
          - occurredOn: '2024-01-16'
            description: '**MACYS1234'
            amount: '52.05'
            direction: credit
          - occurredOn: '2024-01-15'
            description: '**MACYS1234'
            amount: '-52.05'
            direction: debit
          - occurredOn: '2024-01-13'
            description: '**WALMART1337'
            amount: '-49.85'
            direction: debit
    cardTransactionDirection:
      title: Card Transaction Direction (v1.0.0)
      description: |+
        Distinguishes the direction of a card transaction.

        <strong><code>cardTransactionDirection</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>debit</code></strong></td><td>Debit: <p>A debit against the account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>credit</code></strong></td><td>Credit: <p>A credit transaction for the account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cardTransactionDirection
      enum:
        - debit
        - credit
      x-apiture-version: 1.0.0
    issuerIdentificationNumber:
      description: The issuer identification number (IIN) or bank identification number (BIN) of the card.
      type: string
      minLength: 4
      maxLength: 8
      pattern: ^\d{4,8}$
      example: '379790'
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    creditCardFields:
      x-apiture-version: 1.6.0
      title: Credit Card Fields (v1.6.0)
      description: Fields used to construct other banking credit card schemas.
      x-apiture-fragment: true
      properties:
        id:
          description: The unique identifier for this credit card account resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        type:
          $ref: '#/components/schemas/cardType'
        state:
          $ref: '#/components/schemas/creditCardState'
        issuerIdentificationNumber:
          $ref: '#/components/schemas/issuerIdentificationNumber'
        displayName:
          description: The name printed on a physical card, or associated with a digitally issued card.
          type: string
          format: text
          minLength: 3
          maxLength: 50
        lockedBy:
          description: If `state` is `locked`, the customer or member who initiated the lock on this credit card.
          allOf:
            - $ref: '#/components/schemas/userAccountReference'
        lockedAt:
          description: If `state` is `locked`, the date-time when this credit card was locked, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
          allOf:
            - $ref: '#/components/schemas/readOnlyTimestamp'
        group:
          description: |-
            Card groups are sets of card that are linked together.
            Any actions applied to a card in group are also applied to the other cards in the same group.
          allOf:
            - $ref: '#/components/schemas/creditCardGroup'
        balance:
          description: |-
            The current balance of the credit card account. This amount may not reflect the balance due for the current billing cycle.

            A negative balance indicates a debit balance: the card holder owes money to the card issuer. This is calculated by taking the amount charged and interest assessed to the account, minus any payments or credits received. For example, if the previous balance was -150.00, and the cardholder made a $100.00 payment in the previous billing cycle, and incurred $600.00 in new charges and $1.17 in interest, the credit card balance would be `"-651.17"` `(-150.00 +100.00 -600.00 -1.17)`.

            A positive balance indicates a credit balance: the card holder has more money in their account than they owe. This can happen when a credit card issuer issues a credit or if the card holder made an over payment, or when they have a credit balance that is carried over from a previous billing cycle.

            A balance of `"0.00"` indicate no credit or debit exists.

            The balance is excluded when cardholders are not authorized to view it.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        statementBalance:
          description: |-
            The balance due for the current billing cycle.

            A negative balance indicates a debit balance: the card holder owes money to the card issuer. This is calculated by taking the amount charged and interest assessed to the account, minus any payments or credits received. For example, if the previous `statementBalance` was `-150.00`, and the cardholder made a $100.00 payment in the previous billing cycle, and incurred $600.00 in new charges and $1.17 in interest, the credit card `statementBalance` would be `"-651.17"` `(-150.00 +100.00 -600.00 -1.17)`.

            A positive balance indicates a credit balance: the card holder has more money in their account than they owe. This can happen when a credit card issuer issues a credit or if the card holder made an over payment, or when they have a credit balance that is carried over from a previous billing cycle.

            A balance of `"0.00"` indicate no credit or debit exists.

            The balance is excluded when cardholders are not authorized to view it.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        minimumPaymentDue:
          description: |-
            The minimum balance amount due for the current billing cycle.

            The minimum payment due is excluded when cardholders are not authorized to view it.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        paymentDueOn:
          description: |-
            The date when the next payment is due. This is required when the balance is not `"0.00"`.

            The payment due date is excluded when cardholders are not authorized to view it.
          allOf:
            - $ref: '#/components/schemas/date'
        maskedAccountNumber:
          $ref: '#/components/schemas/maskedCardPersonalAccountNumber'
        allows:
          $ref: '#/components/schemas/creditCardAllows'
    cardType:
      title: Card Type (v1.0.0)
      description: |+
        Indicates whether the card is a physical or digitally issued card.

        <strong><code>cardType</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>physical</code></strong></td><td>Physical: <p>A physically issued card</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>digital</code></strong></td><td>Digital: <p>A card that is only digitally issued</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: cardType
      type: string
      enum:
        - physical
        - digital
      x-apiture-version: 1.0.0
    creditCardMaskedProperties:
      title: Credit Card Masked Properties (v1.0.0)
      description: |+
        Credit card properties that are masked by default. The unmasked values of the properties can be requested using the `?unmasked=` query parameter. Such requests are auditable.

        <strong><code>creditCardMaskedProperties</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>fullAccountNumber</code></strong></td><td>Full Account Number: <p>The full Personal Account Number (PAN) of a credit card</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>securityCode</code></strong></td><td>Security Code: <p>The security code of a credit card</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: creditCardMaskedProperties
      enum:
        - fullAccountNumber
        - securityCode
      x-apiture-version: 1.0.0
    creditCardGroup:
      title: Credit Card Group (v1.0.0)
      description: Representation of a group of credit cards.
      required:
        - id
        - cardId
        - count
      type: object
      properties:
        id:
          description: The identifier for the group this credit card belongs to.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        cardId:
          description: |-
            The identifier of the card within the group for which this credit card belongs to.

            Different groups may have overlapping values for `cardId`, however, the values are unrelated. Each `cardId` is unique within the group it is a part of.

            A `cardId` is different from the credit card account `id`.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        count:
          description: The total number of credit cards in this group.
          type: number
          format: int32
          minimum: 1
          maximum: 1000
      example:
        id: fd3d
        cardId: 0399abed
        count: 1
      x-apiture-version: 1.0.0
    creditCardItem:
      x-apiture-version: 4.0.0
      title: Credit Card Summary Item (v4.0.0)
      description: Summary representation of a credit card resource.
      required:
        - id
        - type
        - state
        - issuerIdentificationNumber
        - displayName
        - maskedAccountNumber
        - cardholder
        - group
        - allows
      allOf:
        - $ref: '#/components/schemas/creditCardFields'
        - type: object
          properties:
            cardholder:
              description: Properties describing the cardholder.
              allOf:
                - $ref: '#/components/schemas/cardholderSummary'
      example:
        id: 0399abed-fd3d
        type: physical
        state: active
        issuerIdentificationNumber: '379790'
        displayName: PHIL DUCIARY
        cardholder:
          name: Phil Duciary
          type: primary
        balance: '-112.35'
        statementBalance: '-56.12'
        paymentDueOn: '2023-12-15'
        minimumPaymentDue: '35.00'
        group:
          id: fd3d
          cardId: 48a3
          count: 2
        maskedAccountNumber: '*1000'
        allows:
          activate: false
          viewStatements: true
          viewBalanceDetails: true
          viewPayments: true
          viewUnmaskedSecurityCode: true
          reportLost: true
          reportFound: false
          reportStolen: true
          reportDamaged: true
          lock: true
          unlock: false
          changePin: true
          manageTravelNotifications: true
    creditCards:
      x-apiture-version: 4.0.0
      title: Credit Cards (v4.0.0)
      description: Collection of credit cards.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing credit card items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/creditCardItem'
      example:
        items:
          - id: 0399abed-fd3d
            type: physical
            state: active
            issuerIdentificationNumber: '379790'
            displayName: PHIL DUCIARY
            cardholder:
              name: Phil Duciary
              type: primary
            maskedAccountNumber: '*1000'
            balance: '-112.35'
            statementBalance: '-56.12'
            paymentDueOn: '2023-12-15'
            minimumPaymentDue: '35.00'
            group:
              id: fd3d
              cardId: 48a3
              count: 2
            allows:
              activate: false
              viewStatements: true
              viewBalanceDetails: true
              viewPayments: true
              viewUnmaskedSecurityCode: true
              reportLost: true
              reportFound: false
              reportStolen: true
              reportDamaged: true
              lock: true
              unlock: false
              changePin: true
              manageTravelNotifications: true
          - id: 697e1052-dac2
            type: physical
            state: active
            issuerIdentificationNumber: '379790'
            displayName: JANE DUCIARY
            cardholder:
              name: Jane Duciary
              type: secondary
            maskedAccountNumber: '*1000'
            balance: '-112.35'
            paymentDueOn: '2023-12-15'
            minimumPaymentDue: '35.00'
            group:
              id: fd3d
              cardId: 8a75
              count: 2
            allows:
              activate: false
              viewStatements: true
              viewBalanceDetails: true
              viewPayments: true
              viewUnmaskedSecurityCode: true
              reportLost: true
              reportFound: false
              reportStolen: true
              reportDamaged: true
              lock: true
              unlock: false
              changePin: true
              manageTravelNotifications: true
    creditCard:
      x-apiture-version: 9.0.0
      title: Credit Card (v9.0.0)
      description: Representation of a credit card resource.
      type: object
      required:
        - id
        - type
        - state
        - issuerIdentificationNumber
        - displayName
        - cardholder
        - group
        - maskedAccountNumber
        - allows
      allOf:
        - $ref: '#/components/schemas/creditCardFields'
        - type: object
          properties:
            cardholder:
              $ref: '#/components/schemas/cardholder'
            expirationMonth:
              $ref: '#/components/schemas/cardExpirationMonth'
            expirationYear:
              $ref: '#/components/schemas/cardExpirationYear'
            fullAccountNumber:
              description: The account's full account number. This property is only present if the request includes `?unmasked=` with `cardNumber` included.
              allOf:
                - $ref: '#/components/schemas/fullCardPersonalAccountNumber'
            securityCode:
              description: The card's security code. This property is only present if the request includes `securityCode` in the list of requested `unmasked` values and if `allows.viewUnmaskedSecurityCode` is `true`.
              allOf:
                - $ref: '#/components/schemas/cardSecurityCode'
      example:
        id: 0399abed-fd3d
        type: physical
        state: active
        issuerIdentificationNumber: '379790'
        displayName: PHIL DUCIARY
        balance: '-112.35'
        paymentDueOn: '2023-12-15'
        minimumPaymentDue: '35.00'
        maskedAccountNumber: '*1000'
        expirationMonth: '12'
        expirationYear: '29'
        group:
          id: fd3d
          cardId: 48a3
          count: 2
        cardholder:
          name: Phil Duciary
          type: primary
          address:
            address1: 1805 Tiburon Dr.
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28403'
        allows:
          activate: false
          viewStatements: true
          viewBalanceDetails: true
          viewPayments: true
          viewUnmaskedSecurityCode: true
          reportLost: true
          reportFound: false
          reportStolen: true
          reportDamaged: true
          lock: true
          unlock: false
          changePin: true
          manageTravelNotifications: true
    cardOperationChallengeType:
      x-apiture-version: 1.1.0
      title: Card Operation Challenge Type (v1.1.0)
      description: |+
        Types of operations available for card identity challenges.

        <strong><code>cardOperationChallengeType</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>unmaskCardProperties</code></strong></td><td>Unmask Card Properties: <p>A challenge for viewing the unmasked properties of a card</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>changePin</code></strong></td><td>Change PIN: <p>A challenge for a changing the PIN of a card</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>reportCard</code></strong></td><td>Report Card: <p>A challenge for reporting cards as lost, stolen or damaged</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>activateCard</code></strong></td><td>Activate Card: <p>A challenge for activating newly issued cards</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: cardOperationChallengeType
      type: string
      enum:
        - unmaskCardProperties
        - changePin
        - reportCard
        - activateCard
    cardOperationChallengeRequest:
      title: Card Operation Challenge Request (v1.0.0)
      description: Properties to manually issue a challenge for card operations.
      required:
        - type
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/cardOperationChallengeType'
      x-apiture-version: 1.0.0
    creditCardPaymentFields:
      x-apiture-version: 2.0.1
      title: Credit Card Payment Fields (v2.0.1)
      description: Common fields of the credit card payment resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        sourceAccount:
          description: 'The source account where the funds are withdrawn. Only accounts with `allows.transferFrom: true` and with the `type` of `checking` or `savings` and are valid.'
          allOf:
            - $ref: '#/components/schemas/transferAccountReference'
        amountType:
          description: The type of the payment amount.
          allOf:
            - $ref: '#/components/schemas/creditCardPaymentAmountType'
    creditCardPaymentScheduledOnField:
      title: Credit Card Payment Scheduled On Field (v1.0.0)
      description: Composable field for the credit card payment scheduled on date.
      x-apiture-fragment: true
      type: object
      properties:
        scheduledOn:
          description: The date this payment is scheduled to be debited from the source account on, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format.
          allOf:
            - $ref: '#/components/schemas/date'
      x-apiture-version: 1.0.0
    creditCardPaymentAmountField:
      title: Credit Card Payment Amount Field (v1.0.0)
      description: Composable field for credit card payment amount.
      x-apiture-fragment: true
      type: object
      properties:
        amount:
          description: The amount of money to credit between accounts.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
      x-apiture-version: 1.0.0
    creditCardPaymentImmutableFields:
      x-apiture-version: 2.0.1
      title: Credit Card Payment Immutable Fields (v2.0.1)
      description: Common fields of the credit card payment resource used to build other model schemas.
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/timestampFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this credit card payment resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/externalResourceId'
            paymentFrequency:
              description: The frequency of this payment.
              allOf:
                - $ref: '#/components/schemas/creditCardPaymentFrequency'
            amountType:
              $ref: '#/components/schemas/creditCardPaymentAmountType'
            state:
              description: The state of this credit card payment. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/creditCardPaymentState'
            effectiveOn:
              description: The effective date of the credit card payment in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. When the effective date differs from `scheduledOn`, it is due to a banking holiday, weekend, or other non-business day.
              allOf:
                - $ref: '#/components/schemas/date'
            confirmationNumber:
              description: The confirmation number for this posted credit card payment. This is only available immediately following the submission of a one-time payment.
              type: string
              format: text
              maxLength: 16
              minLength: 4
            allows:
              $ref: '#/components/schemas/creditCardPaymentAllows'
    newCreditCardPayment:
      x-apiture-version: 2.0.1
      title: New Credit Card Payment (v2.0.1)
      description: Representation used to create a new credit card payment.
      type: object
      required:
        - sourceAccount
        - paymentFrequency
        - amountType
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/creditCardPaymentFields'
        - type: object
          properties:
            paymentFrequency:
              description: The frequency of this payment. This cannot be changed once the payment is created.
              allOf:
                - $ref: '#/components/schemas/creditCardPaymentFrequency'
            scheduledOn:
              description: |-
                The date this payment is scheduled to be debited from the source account on, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format.

                This is required for payments where `paymentFrequency` is `once`. This property is ignored when creating a recurring payment.
              allOf:
                - $ref: '#/components/schemas/date'
            amount:
              description: The amount of money to credit between accounts. This is required when `amountType` is `fixed`, otherwise it is ignored.
              allOf:
                - $ref: '#/components/schemas/monetaryValue'
      example:
        sourceAccount:
          id: 89b19e14f7b602d79240
          label: Premiere Checking *6789
          type: checking
          location: internal
        amount: '356.40'
        amountType: fixed
        scheduledOn: '2024-03-20'
        paymentFrequency: once
    creditCardPaymentItem:
      x-apiture-version: 2.1.1
      title: Credit Card Payment Item (v2.1.1)
      description: Summary representation of a credit card payment resource in credit card payments collection. To fetch the full representation of this credit card payment, use the [`getCreditCardPayment`](#op-getCreditCardPayment) operation, passing this item's `id` field as the `creditCardPaymentId` path parameter.
      type: object
      required:
        - id
        - sourceAccount
        - amountType
        - amount
        - paymentFrequency
        - scheduledOn
        - effectiveOn
        - state
        - allows
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/creditCardPaymentFields'
        - $ref: '#/components/schemas/creditCardPaymentImmutableFields'
        - $ref: '#/components/schemas/creditCardPaymentAmountField'
        - $ref: '#/components/schemas/creditCardPaymentScheduledOnField'
      example:
        id: 0399abed-fd3d
        sourceAccount:
          id: 89b19e14f7b602d79240
          label: Premiere Checking *6789
          type: checking
          location: internal
        amountType: statementDueAmount
        amount: '356.40'
        paymentFrequency: recurring
        scheduledOn: '2024-03-20'
        effectiveOn: '2024-03-20'
        state: scheduled
        allows:
          edit: true
          cancel: true
        createdAt: '2023-03-15T07:48:20.375Z'
        updatedAt: '2023-03-15T07:48:20.375Z'
    creditCardPayment:
      x-apiture-version: 2.1.1
      title: Credit Card Payment (v2.1.1)
      description: Representation of a credit card payment resource.
      type: object
      required:
        - id
        - sourceAccount
        - amountType
        - amount
        - paymentFrequency
        - scheduledOn
        - effectiveOn
        - state
        - allows
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/creditCardPaymentFields'
        - $ref: '#/components/schemas/creditCardPaymentImmutableFields'
        - $ref: '#/components/schemas/creditCardPaymentAmountField'
        - $ref: '#/components/schemas/creditCardPaymentScheduledOnField'
      example:
        id: 0399abed-fd3d
        sourceAccount:
          id: 89b19e14f7b602d79240
          label: Premiere Checking *6789
          type: checking
          location: internal
        amountType: statementDueAmount
        amount: '356.40'
        paymentFrequency: once
        scheduledOn: '2024-03-20'
        effectiveOn: '2024-03-20'
        state: scheduled
        allows:
          edit: true
          cancel: true
        createdAt: '2023-03-15T07:48:20.375Z'
        updatedAt: '2023-03-15T07:48:20.375Z'
    creditCardPaymentPatch:
      x-apiture-version: 2.0.1
      title: Credit Card Payment Patch (v2.0.1)
      description: Representation of a credit card payment resource.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/creditCardPaymentFields'
        - type: object
          properties:
            amount:
              description: The amount of money to credit between accounts. This is only allowed for payment with an `amountType` of `fixed`, otherwise it is ignored.
              allOf:
                - $ref: '#/components/schemas/monetaryValue'
            scheduledOn:
              description: |-
                The date this payment is scheduled to be debited from the source account on, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format.

                This is only valid for payments where `paymentFrequency` is `once`. This property is ignored for recurring payments.
              allOf:
                - $ref: '#/components/schemas/date'
      example:
        scheduledOn: '2024-03-20'
    creditCardPayments:
      x-apiture-version: 2.1.1
      title: Credit Card Payment Collection (v2.1.1)
      description: Collection of credit card payments. The items in the collection are ordered in the `items` array.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing credit card payment items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/creditCardPaymentItem'
      example:
        items:
          - id: 0399abed-fd3d
            sourceAccount:
              id: 89b19e14f7b602d79240
              label: Premiere Checking *6789
              type: checking
              location: internal
            amountType: statementDueAmount
            amount: '356.40'
            paymentFrequency: recurring
            scheduledOn: '2023-03-20'
            effectiveOn: '2023-03-20'
            state: completed
            allows:
              edit: false
              cancel: false
            createdAt: '2023-03-20T00:00:00.000Z'
            updatedAt: '2023-03-20T00:00:00.000Z'
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            sourceAccount:
              id: 89b19e14f7b602d79240
              label: Premiere Checking *6789
              type: checking
              location: internal
            amountType: statementDueAmount
            amount: '112.35'
            paymentFrequency: recurring
            scheduledOn: '2023-04-20'
            effectiveOn: '2023-04-20'
            state: scheduled
            allows:
              edit: true
              cancel: true
            createdAt: '2023-04-01T07:48:20.375Z'
            updatedAt: '2023-04-01T07:48:20.375Z'
    creditCardPaymentFrequency:
      title: Credit Card Payment Frequency (v1.0.0)
      description: |+
        The frequency of the credit card payment.

        <strong><code>creditCardPaymentFrequency</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>once</code></strong></td><td>Once: <p>The payment is processed once</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>recurring</code></strong></td><td>Recurring: <p>The payment is processed on a recurring schedule</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: creditCardPaymentFrequency
      enum:
        - once
        - recurring
      x-apiture-version: 1.0.0
    creditCardPaymentAllows:
      title: Credit Card Payment Allows (v1.0.0)
      description: Flags which indicate the permissions the current authorized user has on this credit card payment resource.
      required:
        - edit
        - cancel
      type: object
      properties:
        edit:
          description: If `true`, the currently authenticated user is authorized to [`modify this credit card payment`](#op-patchCreditCardPayment).
          type: boolean
        cancel:
          description: If `true`, the currently authenticated user is authorized to [`cancel this credit card payment`](#op-cancelCreditCardPayment).
          type: boolean
      x-apiture-version: 1.0.0
    creditCardPaymentAmountType:
      x-apiture-version: 1.0.1
      title: Credit Card Payment Amount Type (v1.0.1)
      description: |+
        The type of the credit card payment amount.

        <strong><code>creditCardPaymentAmountType</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>minimumBalanceDue</code></strong></td><td>Minimum Balance Due: <p>The minimum required balance due for the credit card account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>currentBalance</code></strong></td><td>Current Balance: <p>The balance of the credit card account at the processing start time</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>statementDueAmount</code></strong></td><td>Statement Due Amount: <p>The amount due for the credit card account to avoid fees and additional interest</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>fixed</code></strong></td><td>Fixed: <p>A fixed amount to apply to the credit card account balance</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: creditCardPaymentAmountType
      enum:
        - minimumBalanceDue
        - currentBalance
        - statementDueAmount
        - fixed
    creditCardPaymentState:
      title: Credit Card Payment State (v1.0.0)
      description: |+
        The state of the credit card payment.

        <strong><code>creditCardPaymentState</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>scheduled</code></strong></td><td>Scheduled: <p>The credit card payment was scheduled</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>processing</code></strong></td><td>Processing: <p>The credit card payment is processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>completed</code></strong></td><td>Completed: <p>The credit card payment was completed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>canceled</code></strong></td><td>Canceled: <p>The credit card payment was canceled</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>The credit card payment failed to process</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: creditCardPaymentState
      enum:
        - scheduled
        - processing
        - completed
        - canceled
        - failed
      x-apiture-version: 1.0.0
    creditCardState:
      x-apiture-version: 1.1.0
      title: Credit Card State (v1.1.0)
      description: |+
        The state of the credit card issued for the credit card account.

        <strong><code>creditCardState</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>active</code></strong></td><td>Active: <p>The credit card is active</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>inactive</code></strong></td><td>Inactive: <p>The credit card is inactive</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>locked</code></strong></td><td>Locked: <p>The credit card is locked and unable to be used for transactions</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>disabled</code></strong></td><td>Disabled: <p>The credit card is disabled and unable to be used for transactions. Contact the issuing financial institution for additional information.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: creditCardState
      enum:
        - active
        - inactive
        - locked
        - disabled
    cardLossType:
      title: Card Loss Type (v1.0.0)
      description: |+
        The loss type for the card.

        <strong><code>cardLossType</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>lost</code></strong></td><td>Lost</td>
            </tr>
        <tr>
            <td><strong><code>stolen</code></strong></td><td>Stolen</td>
            </tr>
        <tr>
            <td><strong><code>damaged</code></strong></td><td>Damaged</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cardLossType
      enum:
        - lost
        - stolen
        - damaged
      x-apiture-version: 1.0.0
    cardReportedRequest:
      x-apiture-version: 2.0.0
      title: Card Reported Request (v2.0.0)
      description: Request body for reporting a card as lost, stolen, or damaged.
      type: object
      required:
        - type
        - dateLost
        - pinCompromised
      properties:
        type:
          description: The reason the card is being reported.
          $ref: '#/components/schemas/cardLossType'
        primaryCardholderDateOfBirth:
          description: The date of birth of the primary cardholder for this credit card account formatted in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
          allOf:
            - $ref: '#/components/schemas/date'
        dateLost:
          description: The date that any of the cards in this credit card account were discovered as lost, formatted in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
          allOf:
            - $ref: '#/components/schemas/date'
        lastUsedDate:
          description: The last known date that any of the cards in this credit card account were used for a valid transaction, formatted in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
          allOf:
            - $ref: '#/components/schemas/date'
        alternativeShippingMethod:
          description: |-
            An alternative shipping method for delivering the replacement cards. Submitted card replacement requests are not affected by changes made by the financial institution to the available shipping methods.

            If excluded, the replacement cards are delivered using standard mail.
          allOf:
            - $ref: '#/components/schemas/cardShippingMethod'
        temporaryMailingAddress:
          description: |-
            A temporary mailing address to deliver the replacement cards.

            If excluded, the replacement cards are sent to the customer or member's default mailing address.
          allOf:
            - $ref: '#/components/schemas/address'
        pinCompromised:
          description: If `true`, the personal identification number (PIN) for the card needs to be changed.
          type: boolean
        additionalInformation:
          description: Additional information to be shared with the financial institution about this card replacement request.
          type: array
          minItems: 0
          maxItems: 3
          uniqueItems: true
          items:
            type: string
            description: A line of additional information regarding this replacement request.
            format: text
            maxLength: 75
    cardShippingMethod:
      title: Card Shipping Method (v1.0.0)
      description: |+
        Shipping method options determined by the financial institution.

        <strong><code>cardShippingMethod</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>primaryMethod</code></strong></td><td>Primary Method: <p>The primary shipping method from the financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>secondaryMethod</code></strong></td><td>Secondary Method: <p>The secondary shipping method from the financial institution</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: cardShippingMethod
      type: string
      enum:
        - primaryMethod
        - secondaryMethod
      x-apiture-version: 1.0.0
    creditCardAllows:
      x-apiture-version: 3.5.0
      title: Credit Card Allows (v3.5.0)
      description: Flags which indicate the permissions the current authorized user has on this credit card resource.
      required:
        - activate
        - viewStatements
        - viewBalanceDetails
        - viewPayments
        - viewUnmaskedSecurityCode
        - reportLost
        - reportFound
        - reportStolen
        - reportDamaged
        - lock
        - unlock
        - changePin
        - manageTravelNotifications
      type: object
      properties:
        activate:
          description: |-
            If `true`, the currently authenticated user is authorized to [`activate`](#op-activateCreditCard) the credit card and the card's state allows activation.

            Credit cards may be activated when their `state` is `inactive` or `disabled`.
          type: boolean
        viewStatements:
          description: If `true`, the currently authenticated user is authorized to [`view credit card statements`](#op-listCreditCardStatements).
          type: boolean
        viewBalanceDetails:
          description: If `true`, the currently authenticated user is authorized to X.
          type: boolean
        viewPayments:
          description: If `true`, the currently authenticated user is authorized to view details about payments.
          type: boolean
        viewUnmaskedSecurityCode:
          description: If `true`, the currently authenticated user is authorized to view the unmasked security code for the debit card.
          type: boolean
        reportLost:
          description: If `true`, the currently authenticated user is authorized to [`report`](#op-reportCreditCard) the card as lost for replacement.
          type: boolean
        reportFound:
          description: If `true`, the currently authenticated user is authorized to report a lost card as found, canceling replacement.
          type: boolean
        reportStolen:
          description: If `true`, the currently authenticated user is authorized to [`report`](#op-reportCreditCard) the card as stolen for replacement.
        reportDamaged:
          description: If `true`, the currently authenticated user is authorized to [`report`](#op-reportCreditCard) the card as damaged for reissuing.
          type: boolean
        lock:
          description: If `true`, the currently authenticated user is authorized to [`lock`](#op-lockCreditCard) the credit card and the card's state allows locking.
          type: boolean
        unlock:
          description: If `true`, the currently authenticated user is authorized to [`unlock`](#op-unlockCreditCard) the credit card and the card's state allows unlocking.
          type: boolean
        changePin:
          description: If `true`, the currently authenticated user is authorized to [`change`](#op-changeCreditCardPin) the credit card PIN.
          type: boolean
        manageTravelNotifications:
          description: If `true`, the currently authenticated user is authorized to `manage travel notifications` for this credit card resource.
          type: boolean
    cardPin:
      title: Card Personal Identification Number (PIN) (v1.0.0)
      description: A numeric value used to validate card usage in authorizing card transactions.
      type: string
      minLength: 4
      maxLength: 4
      pattern: ^\d{4}$
      x-apiture-version: 1.0.0
    cardPinChange:
      title: Card PIN Change (v1.0.0)
      description: Representation used to change a personal identification number (PIN) for a card.
      type: object
      required:
        - currentPin
        - newPin
      properties:
        currentPin:
          description: The current personal identification number (PIN) for the card.
          allOf:
            - $ref: '#/components/schemas/cardPin'
        newPin:
          description: The requested new personal identification number (PIN) for a card. This must be different than the current PIN.
          allOf:
            - $ref: '#/components/schemas/cardPin'
      x-apiture-version: 1.0.0
    creditCardActivationRequest:
      title: Credit Card Activation Request (v1.0.0)
      description: Representation used to activate a credit card.
      required:
        - cardNumber
        - expirationMonth
        - expirationYear
        - securityCode
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            cardNumber:
              description: The full account number of the credit card being activated.
              allOf:
                - $ref: '#/components/schemas/fullCardPersonalAccountNumber'
            expirationMonth:
              description: The month the card expires at the end of, in `MM` format.
              allOf:
                - $ref: '#/components/schemas/cardExpirationMonth'
            expirationYear:
              description: The last two digits of year portion of the card's expiration date, in `YY` format.
              allOf:
                - $ref: '#/components/schemas/cardExpirationYear'
            securityCode:
              description: The security code associated with the credit card being activated. This is the Card Validation Code (CVC) or Card Validation Value (CVV) on the physical card.
              allOf:
                - $ref: '#/components/schemas/cardSecurityCode'
      example:
        cardNumber: '4242424242424242'
        expirationMonth: '03'
        expirationYear: '28'
        securityCode: '311'
      x-apiture-version: 1.0.0
    creditCardStatementFields:
      title: Credit Card Statement Fields (v1.0.0)
      description: Common fields of the credit card statement resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        id:
          description: The unique identifier for this statement resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        endingOn:
          description: The date of the statement in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
          allOf:
            - $ref: '#/components/schemas/date'
        type:
          $ref: '#/components/schemas/creditCardStatementType'
      x-apiture-version: 1.0.0
    creditCardStatementType:
      title: Credit Card Statement Type (v1.0.0)
      description: |+
        The type of credit card statement.

        <strong><code>creditCardStatementType</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>monthly</code></strong></td><td>Monthly: <p>A credit card statement for a single month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>annual</code></strong></td><td>Annual: <p>A credit card statement for a single year</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: creditCardStatementType
      type: string
      enum:
        - monthly
        - annual
      x-apiture-version: 1.0.0
    creditCardStatementItem:
      title: Credit Card Statement Item (v1.0.0)
      description: Summary representation of a statement resource in the list. To fetch the full representation of this statement, use the [`getCreditCardStatement`](#op-getCreditCardStatement) operation, passing this item's `id` field as the `creditCardStatementId` path parameter.
      type: object
      required:
        - id
        - endingOn
        - type
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/creditCardStatementFields'
      example:
        id: 0399abed-fd3d
        endingOn: '2023-11-11'
        type: monthly
      x-apiture-version: 1.0.0
    creditCardStatement:
      title: Credit Card Statement (v1.0.0)
      description: Representation of a credit card statement resource.
      type: object
      required:
        - id
        - endingOn
        - type
        - content
      allOf:
        - $ref: '#/components/schemas/creditCardStatementFields'
        - type: object
          properties:
            content:
              description: The Base64 encoded credit card statement content.
              type: string
              format: byte
              contentEncoding: base64
              maxLength: 13333333
      example:
        id: 0399abed-fd3d
        endingOn: '2023-11-11'
        type: monthly
        content: VGhlIGNvbnRlbnQgb2YgYSBjcmVkaXQgY2FyZCBlbGVjdHJvbmljIHN0YXRlbWVudA==
      x-apiture-version: 1.0.0
    creditCardStatements:
      title: Credit Card Statements Collection (v1.0.0)
      description: Collection of statements for a credit card account. The items in the collection are ordered in the `items` array.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing credit card statement items.
              type: array
              $comment: 180 covers 15 years of monthly statements.
              maxItems: 180
              items:
                $ref: '#/components/schemas/creditCardStatementItem'
      example:
        items:
          - id: 0399abed-fd3d
            endingOn: '2023-11-11'
            type: monthly
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            endingOn: '2023-12-10'
            type: monthly
      x-apiture-version: 1.0.0
    cardAlertSubscriptionFields:
      title: Card Alert Subscription Fields (v1.0.0)
      description: Common card alert subscription properties, used to compose additional schemas.
      x-apiture-fragment: true
      type: object
      properties:
        communicationChannels:
          description: Channels to communicate this alert subscription.
          type: array
          minItems: 0
          maxItems: 5
          uniqueItems: true
          items:
            $ref: '#/components/schemas/customerCommunicationChannel'
      x-apiture-version: 1.0.0
    simpleCardAlertSubscription:
      title: Simple Alert (v1.0.0)
      description: A card alert subscription configuration based on communication channels.
      required:
        - communicationChannels
      allOf:
        - $ref: '#/components/schemas/cardAlertSubscriptionFields'
      x-apiture-version: 1.0.0
    requiredCommunicationChannelAlertSubscription:
      title: Required Communication Channel Alert (v1.0.0)
      description: A card alert subscription configuration requiring at least one communication channel.
      required:
        - communicationChannels
      type: object
      properties:
        communicationChannels:
          description: Channels to communicate this alert subscription.
          type: array
          minItems: 1
          maxItems: 5
          uniqueItems: true
          items:
            $ref: '#/components/schemas/customerCommunicationChannel'
      x-apiture-version: 1.0.0
    cardMonetaryThreshold:
      description: The monetary value, supporting only positive dollar amounts without decimal (cents) values.
      type: integer
      format: int32
      minimum: 0
      maximum: 10000000
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    monetaryThresholdAlertSubscription:
      title: Monetary Threshold Alert Subscription (v1.0.0)
      description: A card alert subscription based on a monetary threshold and communication channels.
      required:
        - threshold
        - communicationChannels
      allOf:
        - $ref: '#/components/schemas/cardAlertSubscriptionFields'
        - type: object
          properties:
            threshold:
              description: The monetary value, supporting only positive dollar amounts without decimal (cents) values. Use a threshold of `0` and an empty list of communication channels to disable this alert.
              allOf:
                - $ref: '#/components/schemas/cardMonetaryThreshold'
      x-apiture-version: 1.0.0
    cardAlertSubscriptionPropertyFields:
      x-apiture-version: 2.0.0
      title: Card Alert Subscription Property Fields (v2.0.0)
      description: Card alert property fields used to construct schemas.
      x-apiture-fragment: true
      type: object
      properties:
        transactionLimit:
          description: Alert the account holder when any transaction exceeds this positive monetary amount in United States Dollars (USD).
          allOf:
            - $ref: '#/components/schemas/monetaryThresholdAlertSubscription'
        monthlySpendingLimit:
          description: Alert the account holder when the total of all debits in a monthly period on the account exceeds this positive monetary amount in United States Dollars (USD).
          allOf:
            - $ref: '#/components/schemas/monetaryThresholdAlertSubscription'
        transactionOccurred:
          description: Alert the account holder when any transaction using this card occurs.
          allOf:
            - $ref: '#/components/schemas/simpleCardAlertSubscription'
        transactionDeclined:
          description: |-
            Alert the account holder when any transaction using this card is declined.

            This alert requires at least one communication channel to be configured.
          allOf:
            - $ref: '#/components/schemas/requiredCommunicationChannelAlertSubscription'
        merchantCategories:
          $ref: '#/components/schemas/cardAlertSubscriptionMerchantCategories'
        transactionCategories:
          $ref: '#/components/schemas/cardAlertSubscriptionTransactionCategories'
    cardAlertSubscriptionMerchantCategories:
      x-apiture-version: 2.0.0
      description: Alert the account holder when a card transaction's merchant category matches any of these categories. An empty array for categories and communication channels means this alert is disabled.
      required:
        - categories
        - communicationChannels
      allOf:
        - $ref: '#/components/schemas/cardAlertSubscriptionFields'
        - type: object
          properties:
            categories:
              description: Categories used for the transaction alert.
              type: array
              minItems: 0
              maxItems: 12
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardMerchantCategories'
      title: ' (v2.0.0)'
    cardAlertSubscriptionTransactionCategories:
      x-apiture-version: 2.0.0
      description: Alert the account holder when a transaction using this card has a category matching any of these categories. An empty array for categories and communication channels means this alert is disabled.
      required:
        - categories
        - communicationChannels
      allOf:
        - $ref: '#/components/schemas/cardAlertSubscriptionFields'
        - type: object
          properties:
            categories:
              description: Categories used for the transaction alert.
              type: array
              minItems: 0
              maxItems: 8
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardTransactionCategories'
      title: ' (v2.0.0)'
    cardAlertSubscriptionAllowedRegions:
      x-apiture-version: 2.0.0
      title: Card Alert Subscription Known Regions (v2.0.0)
      description: Alert the account holder when a transaction using this card occurs outside the boundaries of all of these regions. An empty array for either `regions` and `communicationChannels` means this alert is disabled.
      required:
        - regions
        - communicationChannels
      allOf:
        - $ref: '#/components/schemas/cardAlertSubscriptionFields'
        - type: object
          properties:
            regions:
              description: Regions excluded for transaction alerts.
              type: array
              minItems: 0
              maxItems: 3
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardRegionItem'
    cardAlertSubscriptionAllowedRegionsPatch:
      x-apiture-version: 2.0.0
      title: Card Alert Subscription Known Regions Patch (v2.0.0)
      description: Alert the account holder when a transaction using this card occurs outside the boundaries of all of these regions. An empty array for either `regions` and `communicationChannels` means this alert is disabled.
      required:
        - regions
        - communicationChannels
      allOf:
        - $ref: '#/components/schemas/cardAlertSubscriptionFields'
        - type: object
          properties:
            regions:
              description: Regions excluded for transaction alerts.
              type: array
              minItems: 0
              maxItems: 3
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardRegionReference'
    cardAlertSubscriptions:
      x-apiture-version: 4.0.0
      title: Card Alert Subscriptions (v4.0.0)
      description: Representation of alert subscriptions for a card account.
      required:
        - transactionLimit
        - monthlySpendingLimit
        - transactionOccurred
        - transactionDeclined
        - merchantCategories
        - transactionCategories
        - allowedRegions
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cardAlertSubscriptionPropertyFields'
        - type: object
          properties:
            allowedRegions:
              $ref: '#/components/schemas/cardAlertSubscriptionAllowedRegions'
    cardAlertSubscriptionsPatch:
      x-apiture-version: 3.0.0
      description: |-
        Representation used to patch existing card alert subscriptions using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only included fields are updated on the resource; fields which are omitted are not updated.

        Changes to alert subscription configurations may result in no operations performed when triggered.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cardAlertSubscriptionPropertyFields'
        - type: object
          properties:
            allowedRegions:
              $ref: '#/components/schemas/cardAlertSubscriptionAllowedRegionsPatch'
      title: ' (v3.0.0)'
    cardTransactionRulesFields:
      x-apiture-version: 4.0.0
      title: Card Transaction Rules Fields (v4.0.0)
      description: Fields used to construct card transaction rules schemas.
      x-apiture-fragment: true
      type: object
      properties:
        transactionLimit:
          description: Decline transactions attempted using this card exceeding this positive monetary amount in United States Dollars (USD).
          allOf:
            - $ref: '#/components/schemas/cardMonetaryThreshold'
        monthlySpendingLimit:
          description: Decline transactions attempted using this card when the monthly spending on the account exceeds this positive monetary amount in United States Dollars (USD).
          allOf:
            - $ref: '#/components/schemas/cardMonetaryThreshold'
        allowInternationalTransactions:
          description: If `false`, transactions attempts using this card outside of the account's origin country are denied.
          type: boolean
        merchantCategories:
          description: Decline transactions attempted using this card when the merchant category matches any of these merchant categories. An empty array means there are no merchant category restrictions for transaction authorization.
          type: array
          minItems: 0
          maxItems: 12
          uniqueItems: true
          items:
            $ref: '#/components/schemas/cardMerchantCategories'
        transactionCategories:
          description: Decline transactions attempted using this card whose categories match any of these categories. An empty array means there are no transaction category restrictions for transaction authorization.
          type: array
          minItems: 0
          maxItems: 8
          uniqueItems: true
          items:
            $ref: '#/components/schemas/cardTransactionCategories'
    cardTransactionRules:
      x-apiture-version: 5.0.0
      title: Card Transaction Rules (v5.0.0)
      description: Representation of thresholds or values to have card transactions automatically declined.
      required:
        - transactionLimit
        - monthlySpendingLimit
        - allowInternationalTransactions
        - authorizedRegions
        - merchantCategories
        - transactionCategories
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cardTransactionRulesFields'
        - type: object
          properties:
            authorizedRegions:
              description: Decline any transactions attempted by this card that do not originate in the defined authorized regions. An empty array means there are no region restrictions for transaction authorization.
              type: array
              minItems: 0
              maxItems: 3
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardRegionItem'
    cardTransactionRulesPatch:
      x-apiture-version: 5.0.0
      title: Card Transaction Rules Patch (v5.0.0)
      description: |-
        Representation used to patch existing card transaction rules using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only included fields are updated on the resource; fields which are omitted are not updated.

        Changes to card transaction rule configurations may result in no operations performed when triggered.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cardTransactionRulesFields'
        - type: object
          properties:
            authorizedRegions:
              description: Decline any transactions attempted by this card that do not originate in the defined authorized regions. An empty array means there are no region restrictions for transaction authorization.
              type: array
              minItems: 0
              maxItems: 3
              uniqueItems: true
              items:
                $ref: '#/components/schemas/cardRegionReference'
    cardTransactionCategories:
      title: Card Transaction Categories (v1.0.0)
      description: |+
        Categories of card transactions for alerts and transaction rules.

        <strong><code>cardTransactionCategories</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>atm</code></strong></td><td>Automatic Teller Machine (ATM): <p>A withdrawal transaction from an ATM</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>autopay</code></strong></td><td>Autopay: <p>A transaction that occurred from an automated payment</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transfer</code></strong></td><td>Transfer: <p>A transaction that occurred from a money movement to another account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>physicalMerchant</code></strong></td><td>Physical Merchant: <p>A transaction that occurred at a merchant in a physical location</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>mailMerchant</code></strong></td><td>Mail Merchant: <p>A transaction that occurred through a mail based retailer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>phoneMerchant</code></strong></td><td>Phone Merchant: <p>A transaction that occurred through a phone based retailer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>onlineMerchant</code></strong></td><td>Online Merchant: <p>A transaction that occurred through an online retailer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A transaction not matching other categories</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cardTransactionCategories
      enum:
        - atm
        - autopay
        - transfer
        - physicalMerchant
        - mailMerchant
        - phoneMerchant
        - onlineMerchant
        - other
      x-apiture-version: 1.0.0
    cardMerchantCategories:
      x-apiture-version: 1.1.0
      title: Card Merchant Categories (v1.1.0)
      description: |+
        Categories of card merchants for alerts and transaction rules.

        <strong><code>cardMerchantCategories</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>ageRestricted</code></strong></td><td>Age Restricted: <p>A merchant providing goods or services with age restrictions, such as gambling or liquor</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ageRestricted.drinkingPlaces</code></strong></td><td>Age Restricted - Drinking Places: <p>A merchant that sells alcoholic beverages for consumption on the premises, such as bars, pubs, or clubs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ageRestricted.gambling</code></strong></td><td>Age Restricted - Gambling: <p>A merchant offering games of chance or betting services, including casinos, lotteries, and sports betting</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ageRestricted.liquorAndCigarStores</code></strong></td><td>Age Restricted - Liquor and Cigar Stores: <p>A merchant that specializes in the sale of alcoholic beverages and tobacco products, including cigars</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ageRestricted.dating</code></strong></td><td>Age Restricted - Dating: <p>A merchant offering services for personal matchmaking or dating platforms that require age verification</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>education</code></strong></td><td>Education: <p>A merchant that provides educational services or supplies, including schools, tutoring, and course materials</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>education.tuitionFees</code></strong></td><td>Education - Tuition Fees: <p>A merchant charging fees for educational instruction, including universities, colleges, and private schools</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>education.books</code></strong></td><td>Education - Books: <p>A merchant that sells textbooks or educational materials, including physical and digital formats</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>entertainment</code></strong></td><td>Entertainment: <p>A merchant that provides entertainment services, such as an arcade or movie theater</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>entertainment.games</code></strong></td><td>Entertainment - Games: <p>A merchant that sells or provides access to video games, board games, or other interactive gaming experiences</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>entertainment.musicAndMovies</code></strong></td><td>Entertainment - Music and Movies: <p>A merchant offering music, movies, or streaming services, either through physical media or digital platforms</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>entertainment.parks</code></strong></td><td>Entertainment - Parks: <p>A merchant providing access to amusement or theme parks, including rides, shows, and other attractions</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>entertainment.other</code></strong></td><td>Entertainment - Other: <p>A merchant that offers other forms of entertainment not covered by the above categories, such as live events or virtual experiences</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>foodAndDining</code></strong></td><td>Food and Dining: <p>A merchant that provides food or beverages, either prepared or for later consumption</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>foodAndDining.restaurants</code></strong></td><td>Food and Dining - Restaurants: <p>A merchant that sells prepared foods</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>foodAndDining.groceries</code></strong></td><td>Food and Dining - Groceries: <p>A merchant that sells pre-packaged or fresh food products</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>giftsAndDonations</code></strong></td><td>Gifts and Donations: <p>A merchant that facilitates the purchase of gifts or charitable donations</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>giftsAndDonations.gifts</code></strong></td><td>Gifts and Donations - Gifts: <p>A merchant that sells items intended for gifting, such as flowers, greeting cards, or gift baskets</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>giftsAndDonations.donations</code></strong></td><td>Gifts and Donations - Donations: <p>A merchant that accepts contributions to charitable organizations or causes</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household</code></strong></td><td>Household: <p>A merchant that sells household goods, such as rugs or lamps</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.maintenanceOrRepair</code></strong></td><td>Household - Maintenance or Repair: <p>A merchant that provides services or goods related to the maintenance or repair of a home, such as plumbing or electrical work</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.decorationOrImprovement</code></strong></td><td>Household - Decoration or Improvement: <p>A merchant offering products or services for home decoration or improvement, including furniture, paint, or renovation services</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.housekeeping</code></strong></td><td>Household - Housekeeping: <p>A merchant that provides cleaning or housekeeping services, either for regular maintenance or special occasions</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.cableUtilities</code></strong></td><td>Household - Cable Utilities: <p>A merchant that provides cable television services or related equipment</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.communicationUtilities</code></strong></td><td>Household - Communication Utilities: <p>A merchant that offers telephone, internet, or other communication services</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.security</code></strong></td><td>Household - Security: <p>A merchant providing home security systems, alarm monitoring, or surveillance equipment</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.chemicalUtilities</code></strong></td><td>Household - Chemical Utilities: <p>A merchant that offers chemical-based services or products for the home, such as pest control or pool maintenance</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.otherUtilities</code></strong></td><td>Household - Other Utilities: <p>A merchant offering other utilities services, such as electricity or water supply</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.rentalServices</code></strong></td><td>Household - Rental Services: <p>A merchant that rents household items or equipment, such as tools, furniture, or party supplies</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>household.laundry</code></strong></td><td>Household - Laundry: <p>A merchant providing laundry or dry-cleaning services, including self-service laundromats</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>insurance</code></strong></td><td>Insurance: <p>A merchant providing insurance services, including health, auto, home, or life insurance policies</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare</code></strong></td><td>Personal Care: <p>A merchant that sells personal care items</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare.pharmacy</code></strong></td><td>Personal Care - Pharmacy: <p>A merchant that sells prescription or over-the-counter medications, as well as health-related products</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare.beautyProducts</code></strong></td><td>Personal Care - Beauty Products: <p>A merchant offering beauty or skincare products, including makeup, lotions, or hair care items</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare.doctor</code></strong></td><td>Personal Care - Doctor: <p>A merchant providing medical services, such as general practitioners, specialists, or medical clinics</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare.sports</code></strong></td><td>Personal Care - Sports: <p>A merchant offering sports-related goods or services, such as fitness centers or sporting equipment</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare.wellness</code></strong></td><td>Personal Care - Wellness: <p>A merchant providing wellness services, such as spas, massage therapy, or alternative medicine</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>personalCare.childrenServices</code></strong></td><td>Personal Care - Children Services: <p>A merchant offering services specific to children, such as daycare, tutoring, or children&#39;s health care</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>shopping</code></strong></td><td>Shopping: <p>A merchant that sells consumer goods</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>shopping.clothing</code></strong></td><td>Shopping - Clothing: <p>A merchant that sells apparel, including formal wear, casual wear, or specialty items such as uniforms or costumes</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>shopping.electronics</code></strong></td><td>Shopping - Electronics: <p>A merchant that sells electronic devices or accessories, including computers, smartphones, and audio equipment</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>shopping.accessories</code></strong></td><td>Shopping - Accessories: <p>A merchant offering items to complement clothing or electronics, such as jewelry, bags, or cases</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>shopping.other</code></strong></td><td>Shopping - Other: <p>A merchant selling other consumer goods not categorized under clothing, electronics, or accessories</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transportation</code></strong></td><td>Transportation: <p>A merchant providing services or goods for transportation, such as public transit, vehicle maintenance, or fuel</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transportation.autoServices</code></strong></td><td>Transportation - Auto Services: <p>A merchant providing services related to vehicle maintenance or repair, including oil changes, tire services, or auto body work</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transportation.gasOrFuel</code></strong></td><td>Transportation - Gas or Fuel: <p>A merchant that sells gasoline for vehicles. The merchant may also sell convenience items, such as snacks or beverages</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transportation.parking</code></strong></td><td>Transportation - Parking: <p>A merchant providing parking services, including garages or metered parking facilities</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transportation.toll</code></strong></td><td>Transportation - Toll: <p>A merchant that charges fees for access to certain roadways or bridges, typically via toll booths or automated systems</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transportation.other</code></strong></td><td>Transportation - Other: <p>A merchant providing other transportation-related services, such as ride-sharing, taxis, or bicycles</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>travel</code></strong></td><td>Travel: <p>A merchant providing transportation services, such as an airline</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>travel.autoRentals</code></strong></td><td>Travel - Auto Rentals: <p>A merchant offering car rentals, including short-term or long-term vehicle hire</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>travel.airline</code></strong></td><td>Travel - Airline: <p>A merchant providing air travel services, including passenger flights or cargo transport</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>travel.train</code></strong></td><td>Travel - Train: <p>A merchant providing rail services for passenger or cargo transport, including trains or subways</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>travel.lodging</code></strong></td><td>Travel - Lodging: <p>A merchant offering overnight accommodations, such as hotels, motels, or vacation rentals</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>travel.other</code></strong></td><td>Travel - Other: <p>A merchant offering other travel-related services, such as cruises, tours, or travel agencies</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A merchant not matching other defined categories</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other.atm</code></strong></td><td>Other - ATM: <p>A merchant providing access to automated teller machines for cash withdrawals or banking services</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cardMerchantCategories
      enum:
        - ageRestricted
        - ageRestricted.drinkingPlaces
        - ageRestricted.gambling
        - ageRestricted.liquorAndCigarStores
        - ageRestricted.dating
        - education
        - education.tuitionFees
        - education.books
        - entertainment
        - entertainment.games
        - entertainment.musicAndMovies
        - entertainment.parks
        - entertainment.other
        - foodAndDining
        - foodAndDining.restaurants
        - foodAndDining.groceries
        - giftsAndDonations
        - giftsAndDonations.gifts
        - giftsAndDonations.donations
        - household
        - household.maintenanceOrRepair
        - household.decorationOrImprovement
        - household.housekeeping
        - household.cableUtilities
        - household.communicationUtilities
        - household.security
        - household.chemicalUtilities
        - household.otherUtilities
        - household.rentalServices
        - household.laundry
        - insurance
        - personalCare
        - personalCare.pharmacy
        - personalCare.beautyProducts
        - personalCare.doctor
        - personalCare.sports
        - personalCare.wellness
        - personalCare.childrenServices
        - shopping
        - shopping.clothing
        - shopping.electronics
        - shopping.accessories
        - shopping.other
        - transportation
        - transportation.autoServices
        - transportation.gasOrFuel
        - transportation.parking
        - transportation.toll
        - transportation.other
        - travel
        - travel.autoRentals
        - travel.airline
        - travel.train
        - travel.lodging
        - travel.other
        - other
        - other.atm
    cardRegionFields:
      x-apiture-version: 2.0.0
      title: Card Region Fields (v2.0.0)
      description: Common fields of the card region resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        name:
          description: A name describing this geographic region.
          type: string
          format: text
          minLength: 1
          maxLength: 55
        type:
          $ref: '#/components/schemas/cardRegionLocationType'
        coordinates:
          description: |-
            The geographic coordinates for a circular geographic region.

            This is required when `type` is `coordinates`.
          allOf:
            - $ref: '#/components/schemas/cardRegionCoordinateLocation'
        address:
          description: |-
            The address, scoped to a locality, for a geographic region.

            This is required when `type` is `address`.
          allOf:
            - $ref: '#/components/schemas/cardRegionAddressLocation'
    cardRegionLocationType:
      title: Card Region Location Type (v1.0.0)
      description: |+
        The type of the location for this card region.

        <strong><code>cardRegionLocationType</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>coordinates</code></strong></td><td>Coordinates: <p>The card region is defined by geographical coordinates and radius</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>address</code></strong></td><td>Address: <p>The card region is defined by an address</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cardRegionLocationType
      enum:
        - coordinates
        - address
      x-apiture-version: 1.0.0
    cardRegionCoordinateLocation:
      title: Card Region Coordinate Location (v1.0.0)
      description: |-
        The coordinates and radius for a circular geographic region.

        The `latitude` and `longitude` map coordinates define the center of the circular region and the `radius` defines the circle's radius.
      unevaluatedProperties: false
      type: object
      properties:
        latitude:
          $ref: '#/components/schemas/latitude'
        longitude:
          $ref: '#/components/schemas/longitude'
        radius:
          description: |-
            The radius for this circular geographic card region. The unit of measurement may be included following the distance value. Use `mi` for miles and `km` for kilometers. When a unit of measurement is not included, the default unit is miles. For example: `5mi` (5 miles) or `4km` (4 km) or `4.25` (4.25 miles) Up to two decimal places of precision are supported.
            The minimum radius is `5mi` or `8km`; the maximum radius is `500mi` or `805km`.
          type: string
          pattern: ^\d{1}(\.\d{1,2})?(mi|km)?$
          minLength: 1
          maxLength: 6
      x-apiture-version: 1.0.0
    cardRegionAddressLocation:
      title: Card Region Address Location (v1.0.0)
      description: The address for a geographic region, scoped to a specific locality.
      unevaluatedProperties: false
      type: object
      required:
        - locality
        - region
        - postalCode
      properties:
        locality:
          type: string
          description: The name of the city, town, or municipality.
          examples:
            - Wilmington
            - Atlanta
          maxLength: 30
          format: text
        countryCode:
          $ref: '#/components/schemas/countryCode'
        postalCode:
          $ref: '#/components/schemas/postalCode'
      x-apiture-version: 1.0.0
    newCardRegion:
      x-apiture-version: 2.0.0
      title: New Card Region (v2.0.0)
      description: Representation used to create a geographical region for a card.
      type: object
      required:
        - name
        - type
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cardRegionFields'
      example:
        name: Disney World's Magic Kingdom
        type: coordinates
        coordinates:
          latitude: 28.4188
          longitude: -81.5818
          radius: 5mi
    cardRegionItem:
      x-apiture-version: 2.0.0
      title: Card Region Item (v2.0.0)
      description: Summary representation of a named card region resource in card regions collection.
      type: object
      required:
        - id
        - name
        - type
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cardRegionFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this card region resource. This is an immutable opaque string.
              $ref: '#/components/schemas/externalResourceId'
      example:
        id: 0399abed-fd3d
        name: Disney World's Magic Kingdom
        type: coordinates
        coordinates:
          latitude: 28.4188
          longitude: -81.5818
          radius: 5mi
    cardRegionReference:
      x-apiture-version: 2.0.0
      title: Card Region Reference (v2.0.0)
      description: Reference representation of a region resource.
      type: object
      required:
        - id
        - name
        - type
      allOf:
        - $ref: '#/components/schemas/cardRegionFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this region resource. This is an immutable opaque string.
              $ref: '#/components/schemas/externalResourceId'
      example:
        id: 0399abed-fd3d
        name: Disney World's Magic Kingdom
        type: coordinates
        coordinates:
          latitude: 28.4188
          longitude: -81.5818
          radius: 5mi
    cardRegionPatch:
      x-apiture-version: 2.0.0
      title: Card Region Patch (v2.0.0)
      description: Representation used to patch a named card region resource.
      type: object
      allOf:
        - $ref: '#/components/schemas/cardRegionFields'
      example:
        name: Disney World's Magic Kingdom Park
    cardRegion:
      x-apiture-version: 2.0.0
      title: Card Region (v2.0.0)
      description: Representation of a named card region resource.
      type: object
      required:
        - id
        - name
        - type
      allOf:
        - $ref: '#/components/schemas/cardRegionFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this region resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/externalResourceId'
      example:
        id: 0399abed-fd3d
        name: Disney World's Magic Kingdom
        type: coordinates
        coordinates:
          latitude: 28.4188
          longitude: -81.5818
          radius: 5mi
    cardRegions:
      x-apiture-version: 2.0.0
      title: Card Region Collection (v2.0.0)
      description: Collection of card regions. The items in the collection are ordered in the `items` array.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing a page of card region items.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/cardRegionItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Disney World's Magic Kingdom
            type: coordinates
            coordinates:
              latitude: 28.4188
              longitude: -81.5818
              radius: 5mi
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Washington D.C.
            type: coordinates
            coordinates:
              latitude: 38.8875
              longitude: -77.0364
              radius: 3mi
    requiredIdentityChallenge:
      x-apiture-version: 1.2.3
      title: Required Challenge (v1.2.3)
      description: A request from the service for the user to verify their identity. This contains a challenge ID, the corresponding operation ID, and a list of challenge factors for identity verification. The user must complete one of these challenge factors to satisfy the challenge. This schema defines the attributes in the 401 [Unauthorized problem response](#schema-apiProblem) when the 401 problem type name is `challengeRequired`. See the "Challenge API" for details.
      type: object
      required:
        - operationId
        - challengeId
        - factors
      properties:
        operationId:
          $ref: '#/components/schemas/challengeOperationId'
        challengeId:
          description: The unique ID of this challenge instance. This is an opaque string. This is passed when starting a challenge factor or when validating the identity challenge responses.
          $ref: '#/components/schemas/readOnlyResourceId'
        factors:
          description: 'A list of challenge factors. The user must complete one of these challenge factors. The `labels` in each factor identify one or more channels the user may use, such as a list of email addresses the system may use to send a one-time passcode to the user. ***Note**: The same channel may be used by multiple factors in the array of factors. For example, the user''s primary mobile phone number may be used for both an `sms` factor and a `voice` factor.'
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeFactor'
      example:
        operationId: createTransfer
        challengeId: 0504076c566a3cf7009c
        factors:
          - type: sms
            labels:
              - '9876'
            id: 85c0ee5753fcd0b0953f
          - type: voice
            labels:
              - '9876'
            id: d089e10a80a8627df37b
          - type: voice
            labels:
              - '6754'
            id: 10506ecf9d1c2ee00403
          - type: email
            labels:
              - an****nk@example.com
              - an****98@example.com
            id: e917d671cb2f030b56f1
          - type: authenticatorToken
            labels:
              - Acme fob
            id: fe6c452d7da0bbb4e407
          - type: securityQuestions
            securityQuestions:
              questions:
                - id: q1
                  prompt: What is your mother's maiden name?
                - id: q4
                  prompt: What is your high school's name?
                - id: q9
                  prompt: What is the name of your first pet?
            id: df33c6f88a37d6b3f0a6
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/requiredIdentityChallenge
    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
    externalResourceId:
      x-apiture-version: 1.1.0
      title: External Resource Identifier (v1.1.0)
      description: The unique, opaque system identifier for an external resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference an external resource by ID rather than URL.
      type: string
      format: text
      readOnly: true
      minLength: 1
      maxLength: 256
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/externalResourceId
    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
    challengeToken:
      x-apiture-version: 1.1.0
      title: Challenge Token (v1.1.0)
      description: The value of the identity `Challenge` request header that the client must send when retrying an operation which required a challenge.
      type: string
      pattern: ^[-_:.~%$a-zA-Z0-9]{6,255}$
      minLength: 6
      maxLength: 255
      x-resolved-from: ../../challenges/openapi.yaml#/components/schemas/challengeToken
    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
    date:
      title: Date (v1.0.0)
      description: A date formatted in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
      type: string
      minLength: 10
      maxLength: 10
      format: date
      example: '2021-10-30'
      x-apiture-since: 0.5.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/date
      x-apiture-version: 1.0.0
    countryCode:
      title: Country Code (v1.0.0)
      description: The [ISO-3611 alpha-2](https://www.iso.org/glossary-for-iso-3166.html) value for a country.
      type: string
      minLength: 2
      maxLength: 2
      pattern: ^[A-Za-z]{2}$
      examples:
        - US
        - CA
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/countryCode
      x-apiture-version: 1.0.0
    simplePhoneNumber:
      x-apiture-version: 1.1.0
      title: Simple Phone Number (v1.1.0)
      description: The phone number as a string. The service strips all spaces, hyphens, periods and parentheses from input. The default country code prefix is `+1`. Phone numbers are returned in responses in [E.164](https://en.wikipedia.org/wiki/E.164) format with a leading `+`, country code (up to 3 digits) and subscriber number for a total of up to 15 digits. See [Phone Number Representations](https://developer.apiture.com/docs/concepts/phone-numbers/) for more information. If the number is masked to hide Personally Identifiable Information, all but the last four digits are replaced with one or more `*`, such as `*1234`.
      type: string
      example: '+19105550155'
      minLength: 5
      maxLength: 20
      format: phone-number
      x-apiture-since: 0.5.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/simplePhoneNumber
    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
    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
    userAccountReference:
      x-apiture-version: 2.0.0
      title: User Account Reference (v2.0.0)
      description: The representation of a user account.
      type: object
      required:
        - id
        - firstName
        - lastName
        - username
      properties:
        id:
          description: The immutable, unique, opaque identifier for the user.
          $ref: '#/components/schemas/resourceId'
        firstName:
          description: The user's first name.
          type: string
          format: text
          maxLength: 56
        lastName:
          description: The user's last name.
          type: string
          format: text
          maxLength: 56
        username:
          description: The user's login name.
          $ref: '#/components/schemas/customerUsername'
      example:
        id: 0399abed-fd3d
        firstName: Benny
        lastName: Billings
        username: bbillings
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/userAccountReference
    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
    monetaryValue:
      x-apiture-version: 1.1.1
      title: Monetary Value (v1.1.1)
      description: The monetary value, supporting only positive amounts. The numeric value is  represented as a string so that it can be exact with no loss of precision.
      example: '3456.78'
      format: decimal
      type: string
      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/monetaryValue
    maskedCardPersonalAccountNumber:
      x-apiture-version: 1.0.1
      title: Masked Card Personal Account Number (v1.0.1)
      description: 'A masked card personal account number: an asterisk `*` followed by the last four digits of the full Personal Account Number (PAN).'
      type: string
      minLength: 5
      maxLength: 5
      pattern: ^\*\d{4}$
      examples:
        - '*1008'
        - '*0005'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/maskedCardPersonalAccountNumber
    cardholderSummary:
      title: Cardholder Summary (v1.0.0)
      description: Summary information about the cardholder of an issued credit or debit card.
      required:
        - name
      allOf:
        - $ref: '#/components/schemas/cardholderFields'
      example:
        name: Phil Duciary
        type: primary
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardholderSummary
      x-apiture-version: 1.0.0
    cardholder:
      x-apiture-version: 1.1.0
      title: Cardholder (v1.1.0)
      description: Information about the cardholder of an issued credit or debit card.
      required:
        - name
      allOf:
        - $ref: '#/components/schemas/cardholderFields'
        - type: object
          properties:
            address:
              $ref: '#/components/schemas/address'
      example:
        name: Phil Duciary
        type: primary
        address:
          address1: 1805 Tiburon Dr.
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28403'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardholder
    cardExpirationMonth:
      title: Card Expiration Month (v1.0.0)
      description: The month portion of the card's MM/YY expiration in MM format.
      type: string
      pattern: ^(0[1-9]|1[012])$
      minLength: 2
      maxLength: 2
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardExpirationMonth
      x-apiture-version: 1.0.0
    cardExpirationYear:
      title: Card Expiration Year (v1.0.0)
      description: The year portion of the year of the card's MM/YY expiration, in YY format (last two digits)
      type: string
      pattern: ^\d{2}$
      minLength: 2
      maxLength: 2
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardExpirationYear
      x-apiture-version: 1.0.0
    fullCardPersonalAccountNumber:
      title: Full Card Personal Account Number (v1.0.0)
      description: A full personal account number used in a credit or debit card. Spaces in requests are ignored. Spaces are omitted in responses.
      type: string
      pattern: ^\d{1}[0-9 ]{12,17}\d{1}$
      minLength: 14
      maxLength: 19
      examples:
        - '4242424242424242'
        - 4000 0566 5566 5556
        - '378282246310005'
        - 3714 496353 98431
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/fullCardPersonalAccountNumber
      x-apiture-version: 1.0.0
    cardSecurityCode:
      title: Card Security Code (v1.0.0)
      description: The Card Validation Code (CVC) or Card Validation Value (CVV) on a credit or debit card.
      type: string
      pattern: ^\d{3,4}$
      minLength: 3
      maxLength: 4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardSecurityCode
      x-apiture-version: 1.0.0
    transferAccountReference:
      x-apiture-version: 3.0.0
      title: Transfer Account Reference (v3.0.0)
      description: A reference to a banking account used within an account to account transfer. This object may be set from an account's `account.reference` object.
      type: object
      required:
        - id
      properties:
        id:
          description: The unique ID of a banking account.
          $ref: '#/components/schemas/resourceId'
        label:
          $ref: '#/components/schemas/accountLabel'
        type:
          description: The product type of the account.
          $ref: '#/components/schemas/productType'
        location:
          description: Indicates where an account is held.
          $ref: '#/components/schemas/accountLocation'
      example:
        id: e821ce54-c715
        label: Premiere Checking *6789
        type: checking
        location: internal
      x-resolved-from: ../../transfers/openapi.yaml#/components/schemas/transferAccountReference
    timestampFields:
      x-apiture-version: 1.1.0
      title: Timestamp Fields (v1.1.0)
      description: Timestamps which describe when a resource was created or last updated.
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/createdAtField'
        - type: object
          properties:
            updatedAt:
              description: The date-time when the resource was last updated, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
              $ref: '#/components/schemas/readOnlyTimestamp'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/timestampFields
    address:
      x-apiture-version: 1.6.1
      title: Address (v1.6.1)
      description: A postal address that can hold a US address or an international (non-US) postal addresses.
      type: object
      required:
        - address1
        - locality
        - postalCode
        - countryCode
      allOf:
        - $ref: '#/components/schemas/fullAddressFields'
      examples:
        - address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28403'
        - address1: 999 Canada Place
          locality: Vancouver
          regionName: British Columbia
          countryCode: CA
          postalCode: V6C 3T4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/address
    customerCommunicationChannel:
      title: Customer Communication Channel (v1.0.0)
      description: A customer's communication channel.
      type: object
      required:
        - id
        - label
        - type
      properties:
        id:
          description: The identifier of this communication channel. This is derived and immutable.
          $ref: '#/components/schemas/readOnlyResourceId'
        label:
          description: A text representation of the communication channel.
          type: string
          format: text
          minLength: 5
          maxLength: 55
        type:
          description: The classification of this customer communication channel.
          $ref: '#/components/schemas/customerCommunicationFactorType'
      example:
        id: 0399abed-fd3d
        label: Max.Pike@example.com
        type: email
      x-resolved-from: ../../customers/openapi.yaml#/components/schemas/customerCommunicationChannel
      x-apiture-version: 1.0.0
    latitude:
      title: Latitude (v1.0.0)
      description: The north-south angular distance of a point on Earth's surface, as measured from the equator. Distances to the north are expressed as positive numbers. Distances to the south are expressed as negative numbers.
      type: number
      minimum: -90
      maximum: 90
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/latitude
      x-apiture-version: 1.0.0
    longitude:
      x-apiture-version: 1.0.1
      title: Longitude (v1.0.1)
      description: The east-west angular distance of a point on Earth's surface, as measured from the Prime Meridian (passing through Greenwich, England). Distances to the east are expressed as positive numbers. Distances to the west are expressed as negative numbers.
      type: number
      minimum: -180
      maximum: 180
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/longitude
    postalCode:
      title: Postal code (v1.0.0)
      description: The postal code, which varies in format by country. For postal codes in the US, this should be a five digit US ZIP code or ten character ZIP+4.
      type: string
      minLength: 2
      maxLength: 20
      pattern: '[0-9A-Za-z][- 0-9A-Za-z]{0,18}[0-9A-Za-z]'
      examples:
        - '20521'
        - 20521-1380
        - V6C 3T4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/postalCode
      x-apiture-version: 1.0.0
    challengeOperationId:
      x-apiture-version: 1.0.1
      title: Challenge Operation ID (v1.0.1)
      description: The ID of an operation/action for which the user must verify their identity via an identity challenge. This is passed when starting a challenge factor or when validating the identity challenge responses.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeOperationId
    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
    challengeFactor:
      x-apiture-version: 1.2.1
      title: Challenge Factor (v1.2.1)
      description: A challenge factor. See [`requiredIdentityChallenge`](#schema-requiredIdentityChallenge) for multiple examples.
      type: object
      required:
        - type
      properties:
        id:
          description: |-
            The ID of an a challenge factor. This ID is unique within the challenge factors associated with a challenge. The client should pass this `id` value as the `factorId` when starting or verifying a challenge factor.

            *Note*: The `id` will become `required` in a future update to this schema.
          $ref: '#/components/schemas/challengeFactorId'
        type:
          $ref: '#/components/schemas/challengeFactorType'
        labels:
          description: A list of text label which identifies the channel(s) through which the user completes the challenge. For an `sms` or `voice` challenge, the only label item is the last four digits of the corresponding phone number. For an `email` challenge, each label is the masked email address.
          type: array
          minItems: 1
          maxItems: 4
          items:
            type: string
            maxLength: 300
            format: text
        securityQuestions:
          $ref: '#/components/schemas/challengeSecurityQuestions'
      example:
        type: sms
        labels:
          - '9876'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactor
    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
    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
    customerUsername:
      x-apiture-version: 2.0.0
      title: Customer Username (v2.0.0)
      description: A customer's login username.
      type: string
      format: text
      minLength: 5
      maxLength: 20
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/customerUsername
    cardholderFields:
      title: Cardholder Fields (v1.0.0)
      description: Fields used to construct other banking credit or debit card cardholder schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The name of the credit or debit card cardholder.
          type: string
          format: text
          maxLength: 55
          minLength: 3
        type:
          $ref: '#/components/schemas/cardholderType'
      example:
        name: Phil Duciary
        type: primary
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardholderFields
      x-apiture-version: 1.0.0
    accountLabel:
      title: Account Label (v1.0.0)
      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
      minLength: 1
      maxLength: 80
      format: text
      example: Checking *1008
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/accountLabel
      x-apiture-version: 1.0.0
    productType:
      x-apiture-version: 2.2.0
      title: Product Type (v2.2.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>
        <tr>
            <td><strong><code>healthSavings</code></strong></td><td>Health Savings: <p>Health Savings Account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: productType
      enum:
        - savings
        - checking
        - cd
        - ira
        - loan
        - creditCard
        - moneyMarket
        - healthSavings
      x-resolved-from: ../../products/openapi.yaml#/components/schemas/productType
    accountLocation:
      x-apiture-version: 1.1.0
      title: Account Location (v1.1.0)
      description: |+
        Indicates where an account is held

        <strong><code>accountLocation</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>outside</code></strong></td><td>Outside: <p>Non-banking accounts such as brokerage and fund accounts.</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: accountLocation
      enum:
        - internal
        - external
        - outside
        - peer
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/accountLocation
    createdAtField:
      description: A field used to represent the `createdAt` date-time for a resource.
      x-apiture-fragment: true
      type: object
      properties:
        createdAt:
          description: The date-time when this resource was created, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
          $ref: '#/components/schemas/readOnlyTimestamp'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/createdAtField
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    fullAddressFields:
      x-apiture-version: 1.2.1
      title: Full Address Fields (v1.2.1)
      description: A postal address that can hold a US address or an international (non-US) postal addresses.
      type: object
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/addressFields'
        - type: object
          properties:
            regionName:
              type: string
              minLength: 2
              maxLength: 20
              format: text
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is not `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - Alessandria
                - Rio de Janeiro
                - British Columbia
            regionCode:
              type: string
              maxLength: 2
              minLength: 2
              pattern: ^[A-Za-z]{2}$
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - NC
                - IL
                - VI
            postalCode:
              $ref: '#/components/schemas/postalCode'
      examples:
        - address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28403'
        - address1: 999 Canada Place
          locality: Vancouver
          regionName: British Columbia
          countryCode: CA
          postalCode: V6C 3T4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/fullAddressFields
    customerCommunicationFactorType:
      title: Customer Communication Factor Type (v1.0.0)
      description: |+
        Identifier of the type of a communication channel.

        <strong><code>customerCommunicationFactorType</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>email</code></strong></td><td>Email: <p>Communication delivered by email</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>sms</code></strong></td><td>SMS: <p>Communication delivered by SMS</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>device</code></strong></td><td>Device: <p>Communication delivered by a in-app notification on a device</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: customerCommunicationFactorType
      enum:
        - email
        - sms
        - device
      x-resolved-from: ../../customers/openapi.yaml#/components/schemas/customerCommunicationFactorType
      x-apiture-version: 1.0.0
    challengeFactorId:
      title: Challenge Factor ID (v1.0.0)
      description: The ID of an a challenge factor. This ID is unique within the factors offered with a challenge.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{3,48}$
      minLength: 3
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorId
      x-apiture-version: 1.0.0
    challengeFactorType:
      title: Challenge Factor Type (v1.0.0)
      description: |+
        The name of challenge factor.

        <strong><code>challengeFactorType</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>sms</code></strong></td><td>SMS: <p>One-time passcode sent to the primary mobile phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>email</code></strong></td><td>Email: <p>One-time passcode sent to the primary email address</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>voice</code></strong></td><td>Voice: <p>One-time passcode communicated via automated voice phone call</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>authenticatorToken</code></strong></td><td>authenticator Token: <p>One-time passcode issued by a pre-registered hardware device, such as a token key fob, or an authenticator app</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>securityQuestions</code></strong></td><td>Security Questions: <p>Prompt with the user&#39;s security questions registered with their security profile</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: challengeFactorType
      enum:
        - sms
        - email
        - voice
        - securityQuestions
        - authenticatorToken
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorType
      x-apiture-version: 1.0.0
    challengeSecurityQuestions:
      x-apiture-version: 1.0.1
      title: Challenge Security Questions (v1.0.1)
      description: Describes a `securityQuestions` challenge. This is omitted if the challenge `type` is not `securityQuestions`.
      type: object
      required:
        - questions
      properties:
        questions:
          description: The array of security questions.
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeSecurityQuestion'
      example:
        questions:
          - id: q1
            prompt: What is your mother's maiden name?
          - id: q4
            prompt: What is your high school's name?
          - id: q9
            prompt: What is the name of your first pet?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestions
    cardholderType:
      title: Cardholder Type (v1.0.0)
      description: |+
        The type of cardholder for this credit or debit card. For debit cards, this is always `primary`.

        <strong><code>cardholderType</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>primary</code></strong></td><td>Primary: <p>The primary cardholder for this card account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>secondary</code></strong></td><td>Secondary: <p>An additional authorized cardholder for this card account</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: cardholderType
      type: string
      enum:
        - primary
        - secondary
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/cardholderType
      x-apiture-version: 1.0.0
    addressFields:
      x-apiture-version: 1.4.0
      title: Address Fields (v1.4.0)
      description: Properties of a simple address, used to compose other addresses.
      x-apiture-fragment: true
      properties:
        address1:
          type: string
          description: The first line of the postal address. In the US, this typically includes the building number and street name.
          example: 1805 Tiburon Dr.
          maxLength: 35
          format: text
        address2:
          type: string
          description: The second line of the street address. This should only be used if it has a value. Typical values include building numbers, suite numbers, and other identifying information beyond the first line of the postal address.
          example: Building 14, Suite 1500
          maxLength: 35
          format: text
        locality:
          type: string
          description: The city/town/municipality of the address.
          examples:
            - Wilmington
            - Atlanta
          maxLength: 30
          format: text
        countryCode:
          $ref: '#/components/schemas/countryCode'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/addressFields
    challengeSecurityQuestion:
      x-apiture-version: 1.0.1
      title: Challenge Security Question (v1.0.1)
      description: A single security question within the `questions` array of the [`challengeSecurityQuestions`](#schema-challengeSecurityQuestions)
      type: object
      required:
        - id
        - prompt
      properties:
        id:
          description: The unique ID of security question prompt. This should be included in the [`challengeVerification`](#schema-challengeVerification) response as the `promptId`.
          $ref: '#/components/schemas/challengePromptId'
        prompt:
          description: The text prompt of this security question.
          type: string
          format: text
          maxLength: 80
      example:
        id: 74699fa628911e762ea5
        prompt: What is your mother's maiden name?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestion
    challengePromptId:
      title: Challenge Prompt ID (v1.0.0)
      description: The unique ID of a prompt (such as a security question) in a challenge factor.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]+$
      minLength: 1
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengePromptId
      x-apiture-version: 1.0.0
  securitySchemes:
    accessToken:
      type: openIdConnect
      description: OpenId Connect (OIDC) authentication/authorization. The client uses the `authorization_endpoint` and `token_endpoint` to obtain an access token to pass in the `Authorization` header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at [Secure Access](https://dx.apiture.com/docs/api/concepts/api-keys/).
      openIdConnectUrl: https://auth.apiture.com/oidc/.well-known/openid-configuration
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/accessToken
  x-apiture-errors:
    invalidRadius:
      description: The given region's radius is less than 5 miles (8km) or greater than 500 miles (805km).
      remediation: Use a radius between 5 miles (8km) and 500 miles (805 km).
    invalidCountryCodeForCardRegion:
      description: The country code is invalid for this card region based on the financial institution's configuration.
      remediation: Use a different country code.
    noSuchCreditCardAccount:
      description: There is no such credit card account resource for the given `creditCardId`.
      remediation: Pass a valid credit card account ID.
    noSuchCreditCardRegion:
      description: There is no such credit card region resource for the given `regionId`.
      remediation: Pass a valid credit card region ID.
    invalidStateForCreditCardActivation:
      description: The credit card cannot be activated in the current state.
      remediation: Try again when the credit card is in a different state.
    noSuchCreditCardStatement:
      description: There is no such credit card statement resource for the given `statementId`.
      remediation: Pass a valid statement ID.
    creditCardReplacementNotAllowed:
      description: The credit card cannot be reported as lost, stolen, or damaged.
      remediation: Try again at a different time.
    creditCardReissueNotAllowed:
      description: The credit card cannot be reported as damaged.
      remediation: Try again at a different time.
    invalidPin:
      description: Either the current or new PIN is invalid.
      remediation: Use a different PIN.
    tooManyPinChangeAttempts:
      description: Too many invalid pin change attempts were made.
      remediation: Try again at a different time.
    noSuchTravelNotification:
      description: There is no such travel notification resource for the given `travelNotificationId`.
      remediation: Pass a valid travel notification ID.
    noSuchCreditCardPayment:
      description: There is no such credit card payment resource for the given `creditCardPaymentId`.
      remediation: Pass a valid credit card payment ID.
    tooManyRecurringCreditCardPayments:
      description: Adding this recurring payment exceeds limits for recurring payments.
      remediation: Remove an existing recurring payment before adding an additional recurring payment.
    noSuchSourceAccount:
      description: There is no such source account at the financial institution for the given `sourceAccount.id`.
      remediation: Pass a valid source account ID.
    ineligiblePaymentSourceAccount:
      description: The source account for this credit card payment is ineligible for transfers.
      remediation: Choose a different source account.
    invalidCreditCardPaymentScheduleDate:
      description: The payment scheduled start date for this credit card payment is invalid.
      remediation: Set a different scheduled date.
    invalidCardOperationForFinancialInstitution:
      description: The operation cannot be performed for this financial institution.
      remediation: Use a different operation as per the card provider context.
    cannotRemoveCommunicationChannel:
      description: The communication channel is required and cannot be removed.
      remediation: Try again without removing the communication channel.
      attributes:
        properties:
          communicationChannel:
            id:
              description: The identifier of this communication channel. This is derived and immutable.
              type: string
              pattern: ^[-_:.~$a-zA-Z0-9]{3,48}$
              minLength: 3
              maxLength: 48
            label:
              description: A text representation of the communication channel.
              type: string
              format: text
              minLength: 5
              maxLength: 55
            type:
              description: The classification of this customer communication channel.
              type: string
              enum:
                - email
                - sms
                - device
    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
    invalidStart:
      description: The `start` query parameter is invalid.
      remediation: Use the `nextPage_url` in the previous response (and its service-generated `?start=` parameter) to access the next page
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/invalidStart
    invalidAccountId:
      x-apiture-version: 0.2.0
      description: The named `accountId` does not exist or the user is not entitled to access the account.
      remediation: Pass the `id` of an existing account the caller has access to.
      x-resolved-from: ../../accounts/openapi.yaml#/components/x-apiture-errors/invalidAccountId
    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
    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
    customerDisabled:
      description: The customer is disabled.
      remediation: Have the customer contact the financial institution for support.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/customerDisabled
    antiMalwareRequired:
      description: The financial institution requires the customer to have anti-malware software installed.
      remediation: Direct the user to the software requirements guide to install the correct anti-malware software.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/antiMalwareRequired
    modificationForbidden:
      description: The customer is properly authenticated but not authorized to create, modify, or delete resources.
      remediation: Avoid modification operation for customers with read-only authorization.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/modificationForbidden
    challengeRequired:
      description: The operation requires the customer to complete an identity challenge.
      remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
      attributes:
        $ref: '#/components/schemas/requiredIdentityChallenge'
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeRequired
    challengeBlocked:
      description: The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
      remediation: Have the user end their login session and login again.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeBlocked
    noIdentityChallengeFactors:
      description: This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
      remediation: Have the user register one or more challenge security code delivery factors.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/noIdentityChallengeFactors
    invalidIdentityChallengeHeader:
      description: The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
      remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/invalidIdentityChallengeHeader
    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
    conflict:
      description: The request could not be completed due to a conflict with the current state of the target resource.
      remediation: Try another operation that is allowed.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/conflict
    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
  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
x-apiture-traits:
  - resource:
      name: credit card
      cursorPaginated: false
      paginated: false
      excludeMethods:
        - post
        - put
        - patch
        - delete
      applied: true
  - action:
      verb: activate
      state: activated
      name: creditCard
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      applied: true
  - resource:
      name: statement
      cursorPaginated: false
      paginated: false
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      excludeMethods:
        - post
        - put
        - patch
        - delete
      applied: true
  - action:
      verb: report
      state: reported
      name: creditCard
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      applied: true
  - action:
      verb: lock
      state: locked
      name: creditCard
      pathPrefix: /creditCards/{creditCardId}
      applied: true
  - resource:
      name: alert
      cursorPaginated: false
      paginated: false
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      excludeMethods:
        - post
        - put
        - delete
      applied: true
  - resource:
      name: control
      cursorPaginated: false
      paginated: false
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      excludeMethods:
        - put
        - delete
      applied: true
  - resource:
      name: travel notification
      cursorPaginated: false
      paginated: false
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      excludeMethods:
        - put
      etag: false
      applied: true
  - resource:
      name: credit card payment
      cursorPaginated: false
      paginated: false
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      excludeMethods:
        - put
        - delete
      applied: true
  - action:
      verb: challenge
      state: challenge
      name: challenge
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      applied: true
  - resource:
      name: region
      cursorPaginated: false
      paginated: false
      pathPrefix: /accounts/{accountId}/creditCards/{creditCardId}
      excludeMethods:
        - put
      applied: true
  - singleton:
      name: credit card provider
      excludeMethods:
        - put
        - patch
      applied: true
x-resolved-from: ../../creditCards/status-codes-openapi.yaml
x-resolved-at: '2024-12-09T22:10:44.033Z'
x-apiture-annotated-at: '2024-12-09T22:10:44.358Z'
