openapi: 3.1.0
info:
  title: Events Administration
  description: |-
    Describes event message schemas which convey activity in the Apiture Digital Banking platform.

    An _event_ is an action that has occurred at a point in time (such as: user logged in, account beneficiary added, payment batch approved, etc.). An _event_ is an abstraction. Each kind of event has an _event type_. Related events are also organized into _categories_, such as `profile` or `transfers`. Each event type belongs to one category. There can be many event messages over time for each event type.

    An _event message_ is a concrete data packet representation of an _event_ that has occurred. The message contains event metadata (such as a unique event ID, timestamp, etc.) and the event's associated data payload. Each event message is defined with the [`eventMessageItem`](#schema-eventMessageItem) schema, which includes the metadata. The `eventMessageItem` object has a `data` object whose value depends on the `eventMessageItem.type`. The `data` value is constrained to the schema whose name is derived from the type. The `data` event message schema name is the event type name with the suffix `EventSchema`. For example, an event message with `type` of `userLoggedIn` is defined by the [`userLoggedInEventSchema`](#schema-userLoggedInEventSchema).

    This API provides two access patterns for reading events: by date/time, or  reading new events since a previous watermark.
    ## Reading Event History by Date/Time
    Use the [`listEventHistory`](#op-listEventHistory) operation to fetch a paginated list of events between a start and end date/time. This allows filtering by event `type`, `category`, and several other fields, as well as sorting by the event's `occurredAt` time. The response is paginated if there are more events in the filter date/time range than the requested response `limit`.

    The events are not recorded in real time, so new data does not appear immediately.
    ## Reading Event History by Watermark
    Use [`listRecentEventHistory`](#op-listRecentEventHistory) when a scheduled job periodically polls for new events that have been logged since the [_watermark_](https://en.wikipedia.org/wiki/Watermark_(data_synchronization)).

    Previously read events are "below" the _watermark_; newer unread events are "above" the watermark. Each call returns data starting at the watermark point and returns a new watermark. The client should keep the watermark for the next time the job polls for new events.

    It is possible for events in later calls to this operation to have a timestamp that is before the timestamp of the last event in the previous call.
    ## Event Types by Category
    Events are organized into categories, as follows:


    <table>
    <tr><th> Event <code>category</code> </th>
        <th> Event <code>type</code> </th>
        <th> Event Message Schema </th>
    </tr>

    <tr><td> <code>accountApplications</code> </td>
       <td> <code>accountApplicationApproved</code></td>
       <td> <a href='#schema-accountApplicationApprovedEventSchema'><code>accountApplicationApprovedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>accountApplications</code> </td>
       <td> <code>accountApplicationBlocked</code></td>
       <td> <a href='#schema-accountApplicationBlockedEventSchema'><code>accountApplicationBlockedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>accountApplications</code> </td>
       <td> <code>accountApplicationCanceled</code></td>
       <td> <a href='#schema-accountApplicationCanceledEventSchema'><code>accountApplicationCanceledEventSchema</code></a></td>
    </tr>
    <tr><td> <code>accountApplications</code> </td>
       <td> <code>accountApplicationCreated</code></td>
       <td> <a href='#schema-accountApplicationCreatedEventSchema'><code>accountApplicationCreatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>accountApplications</code> </td>
       <td> <code>accountApplicationStarted</code></td>
       <td> <a href='#schema-accountApplicationStartedEventSchema'><code>accountApplicationStartedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>accounts</code> </td>
       <td> <code>fullAccountNumberAccessed</code></td>
       <td> <a href='#schema-fullAccountNumberAccessedEventSchema'><code>fullAccountNumberAccessedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>identityChallengeCreated</code></td>
       <td> <a href='#schema-identityChallengeCreatedEventSchema'><code>identityChallengeCreatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>identityChallengeFailed</code></td>
       <td> <a href='#schema-identityChallengeFailedEventSchema'><code>identityChallengeFailedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>identityChallengeInitiated</code></td>
       <td> <a href='#schema-identityChallengeInitiatedEventSchema'><code>identityChallengeInitiatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>identityChallengeSucceeded</code></td>
       <td> <a href='#schema-identityChallengeSucceededEventSchema'><code>identityChallengeSucceededEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>mfaFailed</code></td>
       <td> <a href='#schema-mfaFailedEventSchema'><code>mfaFailedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>mfaInitiated</code></td>
       <td> <a href='#schema-mfaInitiatedEventSchema'><code>mfaInitiatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>mfaSucceeded</code></td>
       <td> <a href='#schema-mfaSucceededEventSchema'><code>mfaSucceededEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>passwordUpdated</code></td>
       <td> <a href='#schema-passwordUpdatedEventSchema'><code>passwordUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>passwordUpdateFailed</code></td>
       <td> <a href='#schema-passwordUpdateFailedEventSchema'><code>passwordUpdateFailedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>userLoggedIn</code></td>
       <td> <a href='#schema-userLoggedInEventSchema'><code>userLoggedInEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>userLoginFailed</code></td>
       <td> <a href='#schema-userLoginFailedEventSchema'><code>userLoginFailedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>authentication</code> </td>
       <td> <code>usernameUpdated</code></td>
       <td> <a href='#schema-usernameUpdatedEventSchema'><code>usernameUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentApproved</code></td>
       <td> <a href='#schema-achBatchPaymentApprovedEventSchema'><code>achBatchPaymentApprovedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentDeleted</code></td>
       <td> <a href='#schema-achBatchPaymentDeletedEventSchema'><code>achBatchPaymentDeletedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentInitiated</code></td>
       <td> <a href='#schema-achBatchPaymentInitiatedEventSchema'><code>achBatchPaymentInitiatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentRejected</code></td>
       <td> <a href='#schema-achBatchPaymentRejectedEventSchema'><code>achBatchPaymentRejectedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentReversed</code></td>
       <td> <a href='#schema-achBatchPaymentReversedEventSchema'><code>achBatchPaymentReversedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentScheduled</code></td>
       <td> <a href='#schema-achBatchPaymentScheduledEventSchema'><code>achBatchPaymentScheduledEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentSubmitted</code></td>
       <td> <a href='#schema-achBatchPaymentSubmittedEventSchema'><code>achBatchPaymentSubmittedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>businessAchTransfers</code> </td>
       <td> <code>achBatchPaymentUnlocked</code></td>
       <td> <a href='#schema-achBatchPaymentUnlockedEventSchema'><code>achBatchPaymentUnlockedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>customers</code> </td>
       <td> <code>customerDeleted</code></td>
       <td> <a href='#schema-customerDeletedEventSchema'><code>customerDeletedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>entitlements</code> </td>
       <td> <code>accountOwnerEntitled</code></td>
       <td> <a href='#schema-accountOwnerEntitledEventSchema'><code>accountOwnerEntitledEventSchema</code></a></td>
    </tr>
    <tr><td> <code>entitlements</code> </td>
       <td> <code>entitlementUpdated</code></td>
       <td> <a href='#schema-entitlementUpdatedEventSchema'><code>entitlementUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>entitlements</code> </td>
       <td> <code>externalAccountEntitled</code></td>
       <td> <a href='#schema-externalAccountEntitledEventSchema'><code>externalAccountEntitledEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountActivated</code></td>
       <td> <a href='#schema-externalAccountActivatedEventSchema'><code>externalAccountActivatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountRemoved</code></td>
       <td> <a href='#schema-externalAccountRemovedEventSchema'><code>externalAccountRemovedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountRequested</code></td>
       <td> <a href='#schema-externalAccountRequestedEventSchema'><code>externalAccountRequestedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountVerificationBlocked</code></td>
       <td> <a href='#schema-externalAccountVerificationBlockedEventSchema'><code>externalAccountVerificationBlockedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountVerificationFailed</code></td>
       <td> <a href='#schema-externalAccountVerificationFailedEventSchema'><code>externalAccountVerificationFailedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountVerificationRemoved</code></td>
       <td> <a href='#schema-externalAccountVerificationRemovedEventSchema'><code>externalAccountVerificationRemovedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>externalAccountVerified</code></td>
       <td> <a href='#schema-externalAccountVerifiedEventSchema'><code>externalAccountVerifiedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>externalAccounts</code> </td>
       <td> <code>fullExternalAccountNumberAccessed</code></td>
       <td> <a href='#schema-fullExternalAccountNumberAccessedEventSchema'><code>fullExternalAccountNumberAccessedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>overdraftProtection</code> </td>
       <td> <code>overdraftProtectionElectionUpdated</code></td>
       <td> <a href='#schema-overdraftProtectionElectionUpdatedEventSchema'><code>overdraftProtectionElectionUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>profile</code> </td>
       <td> <code>addressUpdated</code></td>
       <td> <a href='#schema-addressUpdatedEventSchema'><code>addressUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>profile</code> </td>
       <td> <code>mobileDeviceRegistrationDeleted</code></td>
       <td> <a href='#schema-mobileDeviceRegistrationDeletedEventSchema'><code>mobileDeviceRegistrationDeletedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>profile</code> </td>
       <td> <code>phoneNumberUpdated</code></td>
       <td> <a href='#schema-phoneNumberUpdatedEventSchema'><code>phoneNumberUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>profile</code> </td>
       <td> <code>primaryEmailUpdated</code></td>
       <td> <a href='#schema-primaryEmailUpdatedEventSchema'><code>primaryEmailUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>profile</code> </td>
       <td> <code>smsConsentUpdated</code></td>
       <td> <a href='#schema-smsConsentUpdatedEventSchema'><code>smsConsentUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>system</code> </td>
       <td> <code>webhookHealthCheck</code></td>
       <td> <a href='#schema-webhookHealthCheckEventSchema'><code>webhookHealthCheckEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferCanceled</code></td>
       <td> <a href='#schema-singleTransferCanceledEventSchema'><code>singleTransferCanceledEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferCreated</code></td>
       <td> <a href='#schema-singleTransferCreatedEventSchema'><code>singleTransferCreatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferFailed</code></td>
       <td> <a href='#schema-singleTransferFailedEventSchema'><code>singleTransferFailedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferInitiated</code></td>
       <td> <a href='#schema-singleTransferInitiatedEventSchema'><code>singleTransferInitiatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferProcessed</code></td>
       <td> <a href='#schema-singleTransferProcessedEventSchema'><code>singleTransferProcessedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferScheduled</code></td>
       <td> <a href='#schema-singleTransferScheduledEventSchema'><code>singleTransferScheduledEventSchema</code></a></td>
    </tr>
    <tr><td> <code>transfers</code> </td>
       <td> <code>singleTransferUpdated</code></td>
       <td> <a href='#schema-singleTransferUpdatedEventSchema'><code>singleTransferUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>wireTransfers</code> </td>
       <td> <code>wireTransferApproved</code></td>
       <td> <a href='#schema-wireTransferApprovedEventSchema'><code>wireTransferApprovedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>wireTransfers</code> </td>
       <td> <code>wireTransferBeneficiaryUpdated</code></td>
       <td> <a href='#schema-wireTransferBeneficiaryUpdatedEventSchema'><code>wireTransferBeneficiaryUpdatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>wireTransfers</code> </td>
       <td> <code>wireTransferCreated</code></td>
       <td> <a href='#schema-wireTransferCreatedEventSchema'><code>wireTransferCreatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>wireTransfers</code> </td>
       <td> <code>wireTransferInitiated</code></td>
       <td> <a href='#schema-wireTransferInitiatedEventSchema'><code>wireTransferInitiatedEventSchema</code></a></td>
    </tr>
    <tr><td> <code>wireTransfers</code> </td>
       <td> <code>wireTransferScheduled</code></td>
       <td> <a href='#schema-wireTransferScheduledEventSchema'><code>wireTransferScheduledEventSchema</code></a></td>
    </tr>
    </table>
  version: 0.54.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: bankingAdminEvents
servers:
  - url: /bankingAdmin
tags:
  - name: Events
    description: Banking Events
  - name: Event History
    description: Event History
  - name: Recent Event History
    description: Recent Event History
  - name: Event Types
    description: Event Types
paths:
  /eventTypes:
    get:
      summary: List all event types supported by the platform
      description: Return a list of all the different types of events supported by the platform.
      operationId: listEventTypes
      x-apiture-api: bankingAdminEvents
      x-apiture-group: eventTypes
      tags:
        - Event Types
      responses:
        '200':
          description: OK.
          content:
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/eventTypes'
            application/json:
              schema:
                $ref: '#/components/schemas/eventTypes'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - bankingAdmin/read
  /eventTypesJsonSchema:
    get:
      summary: Return the event message JSON schema document
      description: Return a [JSON Schema](https://json-schema.org/) bundle document that contains all the event message schemas. Schemas identified in the [`listEventTypes`](#op-listEventTypes) response by a schema `$id` may be accessed from this JSON Schema document. For example, the `data` value for an event message with event type `wireTransferScheduled` is found in this schema bundle document via the schema `$id` `https://static.api.apiture.com/schemas/bankingEvents/wireTransferScheduledEventSchema`.
      operationId: getEventTypesJsonSchema
      x-apiture-api: bankingAdminEvents
      x-apiture-group: eventTypes
      tags:
        - Event Types
      parameters:
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
      responses:
        '200':
          description: OK.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          content:
            application/schema+json:
              schema:
                type: object
        '304':
          $ref: '#/components/responses/304'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - bankingAdmin/read
  /recentEventHistory:
    get:
      summary: Fetch new event history since last called
      description: |-
        Return new event history since this operation was last called. This operation allows clients to poll periodically for new events since they last fetched event history&mdash;new events added after the [watermark](https://en.wikipedia.org/wiki/Watermark_(data_synchronization)). The watermark represents the position of the most recent event that a client has seen.

        Each response provides a new watermark value. The client should pass this watermark value in the `watermark` query parameter the next time it calls this operation. There is a limit of 10,000 items in each response, but there may be more events still to be read. Clients may call the operation again while the response `hasMore` property is `true`. The items in the response are sorted in ascending `occurredAt` order.

        Note: Event records created since the last watermark may have an `occurredAt` time _before_ the watermark was created. The events had not yet been recorded at that time. The watermark should not be considered a time marker.
      operationId: listRecentEventHistory
      x-apiture-api: bankingAdminEvents
      x-apiture-group: eventHistory
      tags:
        - Event History
      parameters:
        - name: watermark
          in: query
          description: The location of the starting point for the requested event items. Clients pass the value of the `watermark` property that they have saved from the last time calling this operation. Omit this parameter to start a short time earlier then the most recent event history record.
          schema:
            type: string
            maxLength: 256
            pattern: ^[-a-zA-Z0-9.,-~=_+:;@$]{0,256}$
            default: ''
        - $ref: '#/components/parameters/largeLimitQueryParam'
        - $ref: '#/components/parameters/eventTypeQueryParam'
        - $ref: '#/components/parameters/eventCategoryQueryParam'
        - $ref: '#/components/parameters/sessionIdQueryParam'
        - $ref: '#/components/parameters/agentIdQueryParam'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/recentEventHistory'
            application/json:
              schema:
                $ref: '#/components/schemas/recentEventHistory'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '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/invalidWatermark/v1.0.0`](https://static.api.apiture.com/errors/invalidWatermark/v1.0.0)<br>
              The `watermark` parameter is invalid.
              Remediation: Use only `watermark` values returned from a previous call's response.
          x-apiture-errors:
            - invalidWatermark
          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:
        - clientCredentials:
            - bankingAdmin/read
  /eventHistory:
    get:
      summary: Fetch event history
      description: Return a page of event history. The items in the response are sorted in descending `occurredAt` order by default.
      operationId: listEventHistory
      x-apiture-api: bankingAdminEvents
      x-apiture-group: eventHistory
      tags:
        - Event History
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/largeLimitQueryParam'
        - name: occurredAt
          in: query
          description: 'Filter the response to only events whose `occurredAt` timestamp is in the range bounded by _start_ and _end_ date-times. The default range is the past one hour. The _start_ and _end_ values are either dates in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DD` date format, or date-times in `YYYY-MM-DDThh:mm:ss.sssZ` date-time format. <p> For example <ul> <li>`[start,end]` between _start_ and _end_ date/times, inclusive of the endpoints</li> <li>`(start,end)` between _start_ and _end_ date/times, exclusive of the endpoints</li> <li>`(start,end]` between _start_ and _end_ date/times, exclusive of _start_ and inclusive of the _end_</li> <li>`[start,end)` between _start_ and _end_ date/times, inclusive of _start_ and exclusive of the _end_</li> <li>`YYYY-MM-DD` equivalent to `[YYYY-MM-DD,YYYY-MM-DD]`</li> </ul> Dates without a time component are converted to UTC date-time values. If _start_ or _end_ are date values, then _start00_ is defined as time 00:00:00Z on the _start_ date, _start24_ is defined as 00:00AM of the day _after_ the _start_ date: _end00_ is defined as time 00:00:00Z on the _end_ date, _end24_ is defined as 00:00AM of the day _after_ the _end_ date: <p> <ul> <li>`[start,end]` is the same as `[start00,end24)`</li> <li>`(start,end]` is the same as `(start24,end24)`</li> <li>`[start,end)` is the same as `[start00,end00)`</li> <li>`(start,end)` is the same as `(start24,end00)`</li> </ul> For example, the range `[2023-05-01,2023-06-01)` for events which occurred any day/time in May 2023 UTC is equivalent to `[2023-05-01T00:00:00.00Z,2023-06-01T00:00:00.00Z)`. <p> If `start` is omitted, the range uses a value of 1 hour before the effective `end`. If `end` is omitted, the range uses a value of 1 hour after the effective `start`.'
          schema:
            $ref: '#/components/schemas/dateTimeRange'
        - $ref: '#/components/parameters/eventTypeQueryParam'
        - $ref: '#/components/parameters/eventCategoryQueryParam'
        - $ref: '#/components/parameters/sessionIdQueryParam'
        - $ref: '#/components/parameters/agentIdQueryParam'
        - name: sortBy
          description: 'Specify the sort order for event items in the response. Use `?sortBy=occurredAt` to request ascending by `occurredAt`. The default is `?sortBy=-occurredAt`: descending by `occurredAt`.'
          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: ^-?occurredAt$
              minLength: 10
              maxLength: 11
      responses:
        '200':
          description: OK.
          content:
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/eventHistory'
            application/json:
              schema:
                $ref: '#/components/schemas/eventHistory'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/clientCredentials403'
        '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/invalidOccurredAtRange/v1.0.0`](https://static.api.apiture.com/errors/invalidOccurredAtRange/v1.0.0)<br>
              The `ocurredAt` parameter is not a valid range of dates/time values.
              Remediation: Use valid `YYYY-MM-DD` or `YYYY-MM-DDThh:mm:ss.ssZ` values and proper delimiters.
          x-apiture-errors:
            - invalidOccurredAtRange
          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:
        - clientCredentials:
            - bankingAdmin/read
webhooks:
  receiveEvent:
    post:
      summary: Receive an Apiture Digital Banking event
      description: |-
        Receive an event from Apiture Digital Banking. The receiver may receive different events via this webhook. The platform invokes webhooks with the `POST` HTTP method.

        It is strongly encouraged to accept the payload and queue it for additional processing via another asynchronous process or thread, and return 202 Accepted or 204 No Content as soon as possible. The response body and response headers are ignored.

        The receiver should use the event `category` and `type` to determine what event it has received. The recipient should avoid blocking on this call.

        Webhooks receive event messages that each adhere to the [`eventMessageItem](#schema-eventMessageItem) schema. The `eventMessageItem` object has a `data` object whose value depends on the `eventMessageItem.type`. The `data` value adheres to the schema whose name is derived from the event type name with the suffix `EventSchema`. For example, an event message with `type` of `userLoggedIn` is defined by the [`userLoggedInEventSchema`](#schema-userLoggedInEventSchema).
      operationId: receiveBankingEvent
      x-apiture-api: bankingAdminEvents
      tags:
        - Received Banking Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eventMessageItem'
      responses:
        '200':
          description: OK. The webhook was received.
        '202':
          description: Accepted. The webhook was received.
        '204':
          description: No content. The webhook was received.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too many requests. The webhook cannot process events at the current cadence.
        2XX:
          description: Success. The webhook was received.
        4XX:
          description: Request error.
        5XX:
          description: Receiving webhook service error.
      security:
        - basic: []
        - webhookClientCredentials: []
components:
  parameters:
    eventTypeQueryParam:
      name: type
      in: query
      description: Filter the response to only events whose `type` is in this pipe-delimited set of type names. See the "Event Types by Category" section above for a list of categories and types.
      style: pipeDelimited
      explode: false
      schema:
        type: array
        minItems: 1
        maxItems: 32
        uniqueItems: true
        items:
          $ref: '#/components/schemas/eventMessageType'
    eventCategoryQueryParam:
      name: category
      in: query
      description: Subset the response to events whose `category` is in this pipe-delimited set of category names. See the "Event Types by Category" section above for a list of categories and types.
      style: pipeDelimited
      explode: false
      schema:
        type: array
        minItems: 1
        maxItems: 16
        uniqueItems: true
        items:
          $ref: '#/components/schemas/eventMessageCategory'
    sessionIdQueryParam:
      name: sessionId
      description: Subset the response to events whose `sessionId` is in this pipe-delimited set of session ID values. Session IDs identify a session begun at user login/authentication and are initially returned in `userLoggedIn` events.
      in: query
      style: pipeDelimited
      explode: false
      schema:
        type: array
        minItems: 1
        maxItems: 16
        uniqueItems: true
        items:
          $ref: '#/components/schemas/resourceId'
    agentIdQueryParam:
      name: agentId
      description: Subset the response to event where the `agentId` has this value.
      in: query
      style: pipeDelimited
      explode: false
      schema:
        type: array
        minItems: 1
        maxItems: 16
        uniqueItems: true
        items:
          $ref: '#/components/schemas/resourceId'
    ifNoneMatchHeaderParam:
      name: If-None-Match
      description: The entity tag that was returned in the `ETag` response header of a previous call. If the resource's current entity tag value matches this header value, the `GET` will return 304 (Not Modified) and no response body, else the current resource representation and updated `ETag` is returned.
      in: header
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/ifNoneMatchHeaderParam
    largeLimitQueryParam:
      name: limit
      in: query
      description: The maximum number of items to return in this paged response.
      schema:
        type: integer
        format: int32
        minimum: 0
        maximum: 10000
        default: 1000
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/largeLimitQueryParam
    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
  securitySchemes:
    clientCredentials:
      type: oauth2
      description: Client Credentials OAuth2 flow that allows a secure service application to access resources. (This access is not used with insecure clients such as web or mobile applications.) See details at [Secure Access](https://dx.apiture.com/docs/api/guides/secure-access/).
      flows:
        clientCredentials:
          tokenUrl: https://dev-oidc.apiture-comm-nonprod.com/oidc/token
          scopes:
            bankingAdmin/read: Read a wide variety of banking and other financial institution and customer data.
            bankingAdmin/write: Write a wide variety of banking and other financial institution and customer data.
            adminData/read: Read access to non-banking data and resources.
            adminData/write: Read, write, and delete access to non-banking data and resources.
            samlPlatform/write: Write access to security-critical Apiture internal key and certificate data.
            samlPlatform/read: Read access to integration resources, e.g. supported codes.
            samlAdmin/write: Write, delete and execute access to service provider metadata and SAML computation operations.
            systemIntegrations/read: Read access to integration definition resources.
            systemIntegrations/write: Write, delete and execute access to integration definition resources.
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/clientCredentials
    webhookClientCredentials:
      type: oauth2
      description: Client Credentials OAuth2 flow that allows the Apiture Digital Banking platform to exchange a client ID and client secret for an access token to use to authorize HTTP calls to a webhook.
      flows:
        clientCredentials:
          tokenUrl: https://partner.webook.receiver.example.com/oauth2/token
          scopes: {}
    basic:
      type: http
      description: The webhook requires [Basic HTTP](https://datatracker.ietf.org/doc/html/rfc7617#section-2) authorization.
      scheme: basic
  schemas:
    eventType:
      x-apiture-version: 1.2.0
      title: Event Type (v1.2.0)
      description: An object that describes all events that have a given `type`.
      type: object
      required:
        - type
        - category
        - description
        - schemaId
      properties:
        type:
          $ref: '#/components/schemas/eventMessageType'
        category:
          $ref: '#/components/schemas/eventMessageCategory'
        description:
          description: 'A description of the event: what triggers the event and its event message data.'
          type: string
          format: text
          maxLength: 4000
        primaryIdDescription:
          description: A short phrase which describes what the `primaryId` in an event message refers to.
          type: string
          format: text
          minLength: 6
          maxLength: 80
        secondaryIdDescription:
          description: A short phrase which describes what the `secondaryId` in an event message refers to.
          type: string
          format: text
          minLength: 6
          maxLength: 80
        schemaId:
          description: |-
            The `$id` of the [JSON schema](https://json-schema.org) for event messages of this `type`. The named schema describes an event message's `data` object within the [`eventMessageItem`](#schema-eventMessageItem) object.

            For example, for the event type `singleTransferCreated`, the `schemaId` is `https://static.api.apiture.com/schemas/bankingEvents/singleTransferCreated`. Event schemas are defined in the JSON schema document returned by [`getEventTypesJsonSchema`](#op-getEventTypesJsonSchema).
          type: string
          format: uri
          maxLength: 128
      example:
        type: wireTransferScheduled
        category: wireTransfers
        description: Payload for event messages triggered when a customer has submitted and approved a wire transfer and it is queued for processing on its scheduled date.
        primaryIdDescription: the wire transfer resource
        schemaId: https://static.api.apiture.com/schemas/bankingEvents/wireTransferScheduled
    eventTypes:
      x-apiture-version: 2.1.0
      title: Event Types (v2.1.0)
      description: A list of event types which describe the data in the event history.
      type: object
      required:
        - items
        - eventsEnabled
      properties:
        items:
          description: An array of event type objects, sorted by ascending `category` (primary sort key) and `type` (secondary sort key).
          type: array
          maxItems: 500
          items:
            $ref: '#/components/schemas/eventType'
        eventsEnabled:
          description: If `true`, the financial institution is currently capturing events; `false` if not. There may be historical events if the financial institution captured events in the past.
          type: boolean
      example:
        items:
          - type: singleTransferCreated
            category: transfers
            description: Payload for event messages triggered when a user has created a single account-to-account transfer.
            primaryIdDescription: the transfer resource
            schemaId: https://static.api.apiture.com/schemas/bankingEvents/singleTransferCreated
          - type: singleTransferScheduled
            category: transfers
            description: Payload for event messages triggered when a customer has scheduled a single account-to-account transfer.
            primaryIdDescription: the transfer resource
            schemaId: https://static.api.apiture.com/schemas/bankingEvents/singleTransferScheduled
          - type: wireTransferScheduled
            category: wireTransfers
            description: Payload for event messages triggered when a customer has submitted and approved a wire transfer and it is queued for processing on its scheduled date.
            primaryIdDescription: the wire transfer resource
            schemaId: https://static.api.apiture.com/schemas/bankingEvents/wireTransferScheduled
        eventsEnabled: true
    recentEventHistory:
      x-apiture-version: 1.8.0
      title: Recent Event History (v1.8.0)
      description: Representation of the recent event history resource.
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/eventMessagesFields'
        - type: object
          required:
            - watermark
            - hasMore
          properties:
            watermark:
              description: An opaque string which represents this response's watermark marker in the event history. The client should save this value and pass it as the `watermark` query parameter the next time it [requests new events](#op-listRecentEventHistory) to fetch the next event history records above this watermark.
              type: string
              maxLength: 256
              pattern: ^[-a-zA-Z0-9.,-~=_+:;@$]{1,256}$
            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
              default: 1000
            hasMore:
              description: '`true` if there are unread events in the history above the watermark. This happens when there were more than `limit` recent items in the history.'
              type: boolean
      example:
        version: 0.2.0
        watermark: VGhpcyBpcyBhIHNhbXBsZSBlbmNvZGVkL29wYXF1ZSBldmVudCBoaXN0b3J5IHdhdGVybWFyaw==
        limit: 1000
        hasMore: true
        startsAt: '2022-12-02T11:00:00.000'
        endsAt: '2022-12-02T11:10:00.000Z'
        items:
          - id: b844b2d641da
            institutionId: TIBURON
            category: authentication
            type: userLoggedIn
            occurredAt: '2022-12-02T11:08:00.375Z'
            correlationId: 0730fd7ac6bfe5a87b0a
            sessionId: 2ded0203a8a2b6e7befa
            agentId: 4f3ec1daab02eed9de64
            coreCustomerId: '12299292'
            agentType: customer
            host: 13.226.38.34
            primaryId: b844b2d6d9ca818df3c8
            data:
              browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
              operatingSystem: macos
              platform: web
              application: apitureDigitalBanking
              score: 2500
          - id: 0399abed30f38b8a365c
            institutionId: TIBURON
            category: transfers
            type: singleTransferScheduled
            occurredAt: '2022-12-02T11:08:00.375Z'
            correlationId: 2266452a0bfd8150cf64
            sessionId: 2ded0203a8a2b6e7befa
            agentId: 4f3ec1daab02eed9de64
            coreCustomerId: '12299292'
            agentType: customer
            host: 13.226.38.34
            primaryId: a727ff2aedea60646819
            data:
              sourceAccount:
                id: a212d3c119148960683d
                maskedNumber: '*3210'
                routingNumber: '021000021'
              targetAccount:
                id: 0c8ad50ab6cf0eb48c25
                maskedNumber: '*3219'
                routingNumber: '021000021'
    eventHistory:
      x-apiture-version: 1.6.0
      title: Event History (v1.6.0)
      description: Representation of the event history resource.
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - $ref: '#/components/schemas/eventMessagesFields'
      example:
        version: 0.2.0
        startsAt: '2022-12-02T11:00:00.000'
        endsAt: '2022-12-02T11:10:00.000Z'
        limit: 1000
        start: 460bf6af1c8a632cc0d8
        nextPage_url: /banking/eventHistory?start=c49b048aea17f0622f06?limit=1000
        items:
          - id: b844b2d641da
            institutionId: TIBURON
            category: authentication
            type: userLoggedIn
            occurredAt: '2022-12-02T11:08:00.375Z'
            correlationId: 0730fd7ac6bfe5a87b0a
            sessionId: 2ded0203a8a2b6e7befa
            agentId: 4f3ec1daab02eed9de64
            coreCustomerId: '12299292'
            agentType: customer
            host: 13.226.38.34
            primaryId: b844b2d6d9ca818df3c8
            data:
              browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
              operatingSystem: macos
              platform: web
              application: apitureDigitalBanking
              score: 2500
          - id: 0399abed30f38b8a365c
            institutionId: TIBURON
            category: transfers
            type: singleTransferScheduled
            occurredAt: '2022-12-02T11:08:00.375Z'
            correlationId: 2266452a0bfd8150cf64
            sessionId: 2ded0203a8a2b6e7befa
            agentId: 4f3ec1daab02eed9de64
            coreCustomerId: '12299292'
            agentType: customer
            host: 13.226.38.34
            primaryId: a727ff2aedea60646819
            data:
              sourceAccount:
                id: a212d3c119148960683d
                maskedNumber: '*3210'
                routingNumber: '021000021'
              targetAccount:
                id: 0c8ad50ab6cf0eb48c25
                maskedNumber: '*3219'
                routingNumber: '021000021'
    singleTransferCanceledEventSchema:
      title: Event Schema (v0.2.0)
      description: |-
        Payload for event messages triggered when a customer or the system has canceled a transfer.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferCanceled`.
        The `primaryId` in the event message is the transfer resource.
      x-apiture-version: 0.2.0
      x-apiture-event:
        type: singleTransferCanceled
        category: transfers
        primaryId: the transfer resource
      type: object
      required:
        - sourceAccount
        - targetAccount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventFields'
      example:
        sourceAccount:
          id: d8f6fabcc1085a2022ae
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: dc09216a9d32f1952259
          maskedNumber: '*3219'
          routingNumber: '021000021'
        amount: '345.70'
    eventEntitlementCategory:
      title: Entitlement Category (v1.0.0)
      description: |+
        Indicates whether the entitlement is over an account or over a customer.

        <strong><code>eventEntitlementCategory</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>Entitlement is over a banking account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>customer</code></strong></td><td>Customer: <p>Entitlement is over a banking customer</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: eventEntitlementCategory
      enum:
        - account
        - customer
      x-apiture-version: 1.0.0
    entitlementUpdatedEventSchema:
      title: Event Schema (v0.1.2)
      description: |-
        Payload for event messages triggered when a customer has changed account or customer entitlements for another customer.

        A `state` value of `true` means the entitlement was set, and `false` means it was unset. For example, when the entitlement `type: view` has `state: true`, the customer's account view access is allowed. Some entitlements (those where the `type` starts with the prefix `"no_"`) are _negative_. For example, when the entitlement `type: no_stmt_view` has a `state: true`, the customer's statement view access is blocked.
        This schema defines the `data` object for event messages with category `entitlements` and event message type of `entitlementUpdated`.
        The `primaryId` in the event message is the customer whose entitlements were change.
        The `secondaryId` in the event message is the ID of the account or customer over which the entitlement was updated.
      x-apiture-version: 0.1.2
      x-apiture-event:
        type: entitlementUpdated
        category: entitlements
        primaryId: the customer whose entitlements were change
        secondaryId: the ID of the account or customer over which the entitlement was updated
      type: object
      required:
        - type
        - category
        - state
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            type:
              description: The name of the entitlement setting.
              type: string
              pattern: ^[a-z][a-z0-9_]{3,63}$
              minLength: 4
              maxLength: 64
            category:
              $ref: '#/components/schemas/eventEntitlementCategory'
            state:
              description: The new entitlement setting; `true` means the entitlement was set, `false` means it was unset.
              type: boolean
      example:
        type: debit_card_controls
        category: account
        state: true
    eventAgentType:
      title: Event User Type (v0.1.0)
      x-apiture-version: 0.1.0
      description: |+
        Describes the type of agent (user or actor) that performed the action that triggered an event.

        <strong><code>eventAgentType</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>customer</code></strong></td><td>Customer: <p>A banking customer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>operator</code></strong></td><td>Operator: <p>A financial institution operator or administrator</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>system</code></strong></td><td>System: <p>A system process or job, not an interactive person</p>
        </td>
            </tr>
        </table>

      type: string
      enum:
        - customer
        - operator
        - system
      x-apiture-enum: eventAgentType
    eventMessagesFields:
      x-apiture-version: 1.3.0
      title: Event Messages Fields (v1.3.0)
      description: Properties used to define other event messages schemas.
      x-apiture-fragment: true
      type: object
      properties:
        version:
          description: The semantic version number of the event metadata structure.
          type: string
          format: semver
          minLength: 5
          maxLength: 12
          example: 0.2.0
          enum:
            - 0.1.0
            - 0.2.0
        startsAt:
          description: The beginning date-time for the events in this page of event messages. This is an [RFC 3339](https://tools.ietf.org/html/rfc3339) UTC date-time string. This is omitted if the `items` array is empty.
          $ref: '#/components/schemas/timestamp'
        endsAt:
          description: The ending date-time for the events in this page of event messages. This is an [RFC 3339](https://tools.ietf.org/html/rfc3339) UTC date-time string. This is omitted if the `items` array is empty.
          $ref: '#/components/schemas/timestamp'
        items:
          description: An array of event items.
          type: array
          maxItems: 10000
          items:
            $ref: '#/components/schemas/eventMessageItem'
    eventMessages:
      title: Event Messages (v0.11.0)
      x-apiture-version: 0.11.0
      description: A list of events within a time frame.
      type: object
      required:
        - version
        - items
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/eventMessagesFields'
      example:
        version: 0.2.0
        startsAt: '2022-12-02T11:00:00.000'
        endsAt: '2022-12-02T11:10:00.000Z'
        items:
          - id: b844b2d641da
            institutionId: TIBURON
            category: authentication
            type: userLoggedIn
            occurredAt: '2022-12-02T11:08:00.375Z'
            correlationId: 0730fd7ac6bfe5a87b0a
            sessionId: 2ded0203a8a2b6e7befa
            agentId: 4f3ec1daab02eed9de64
            coreCustomerId: '12299292'
            agentType: customer
            host: 13.226.38.34
            primaryId: b844b2d6d9ca818df3c8
            data:
              browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
              operatingSystem: macos
              platform: web
              application: apitureDigitalBanking
              score: 2500
          - id: 0399abed30f38b8a365c
            institutionId: TIBURON
            category: transfers
            type: singleTransferScheduled
            occurredAt: '2022-12-02T11:08:00.375Z'
            correlationId: 2266452a0bfd8150cf64
            sessionId: 2ded0203a8a2b6e7befa
            agentId: 4f3ec1daab02eed9de64
            coreCustomerId: '12299292'
            agentType: customer
            host: 13.226.38.34
            primaryId: a727ff2aedea60646819
            data:
              sourceAccount:
                id: a212d3c119148960683d
                maskedNumber: '*3210'
                routingNumber: '021000021'
              targetAccount:
                id: 0c8ad50ab6cf0eb48c25
                maskedNumber: '*3219'
                routingNumber: '021000021'
    eventMessagePayload:
      x-apiture-version: 1.5.0
      title: Event Message Payload (v1.5.0)
      description: Defines schema validation of the `data` object with the message schema that corresponds to the `type` of the event message. For example, if `type` is `smsConsentUpdated`, the `data` object must satisfy the `smsConsentUpdatedEventSchema` schema.
      type: object
      x-apiture-fragment: true
      $comment: This oneOf array is updated by openapi-annotations based on the x-apiture-event annotations
      oneOf:
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `accountApplicationApproved`.
              type: string
              const: accountApplicationApproved
            data:
              $ref: '#/components/schemas/accountApplicationApprovedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `accountApplicationBlocked`.
              type: string
              const: accountApplicationBlocked
            data:
              $ref: '#/components/schemas/accountApplicationBlockedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `accountApplicationCanceled`.
              type: string
              const: accountApplicationCanceled
            data:
              $ref: '#/components/schemas/accountApplicationCanceledEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `accountApplicationCreated`.
              type: string
              const: accountApplicationCreated
            data:
              $ref: '#/components/schemas/accountApplicationCreatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `accountApplicationStarted`.
              type: string
              const: accountApplicationStarted
            data:
              $ref: '#/components/schemas/accountApplicationStartedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `fullAccountNumberAccessed`.
              type: string
              const: fullAccountNumberAccessed
            data:
              $ref: '#/components/schemas/fullAccountNumberAccessedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `identityChallengeCreated`.
              type: string
              const: identityChallengeCreated
            data:
              $ref: '#/components/schemas/identityChallengeCreatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `identityChallengeFailed`.
              type: string
              const: identityChallengeFailed
            data:
              $ref: '#/components/schemas/identityChallengeFailedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `identityChallengeInitiated`.
              type: string
              const: identityChallengeInitiated
            data:
              $ref: '#/components/schemas/identityChallengeInitiatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `identityChallengeSucceeded`.
              type: string
              const: identityChallengeSucceeded
            data:
              $ref: '#/components/schemas/identityChallengeSucceededEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `mfaFailed`.
              type: string
              const: mfaFailed
            data:
              $ref: '#/components/schemas/mfaFailedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `mfaInitiated`.
              type: string
              const: mfaInitiated
            data:
              $ref: '#/components/schemas/mfaInitiatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `mfaSucceeded`.
              type: string
              const: mfaSucceeded
            data:
              $ref: '#/components/schemas/mfaSucceededEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `passwordUpdated`.
              type: string
              const: passwordUpdated
            data:
              $ref: '#/components/schemas/passwordUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `passwordUpdateFailed`.
              type: string
              const: passwordUpdateFailed
            data:
              $ref: '#/components/schemas/passwordUpdateFailedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `userLoggedIn`.
              type: string
              const: userLoggedIn
            data:
              $ref: '#/components/schemas/userLoggedInEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `userLoginFailed`.
              type: string
              const: userLoginFailed
            data:
              $ref: '#/components/schemas/userLoginFailedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `usernameUpdated`.
              type: string
              const: usernameUpdated
            data:
              $ref: '#/components/schemas/usernameUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentApproved`.
              type: string
              const: achBatchPaymentApproved
            data:
              $ref: '#/components/schemas/achBatchPaymentApprovedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentDeleted`.
              type: string
              const: achBatchPaymentDeleted
            data:
              $ref: '#/components/schemas/achBatchPaymentDeletedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentInitiated`.
              type: string
              const: achBatchPaymentInitiated
            data:
              $ref: '#/components/schemas/achBatchPaymentInitiatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentRejected`.
              type: string
              const: achBatchPaymentRejected
            data:
              $ref: '#/components/schemas/achBatchPaymentRejectedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentReversed`.
              type: string
              const: achBatchPaymentReversed
            data:
              $ref: '#/components/schemas/achBatchPaymentReversedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentScheduled`.
              type: string
              const: achBatchPaymentScheduled
            data:
              $ref: '#/components/schemas/achBatchPaymentScheduledEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentSubmitted`.
              type: string
              const: achBatchPaymentSubmitted
            data:
              $ref: '#/components/schemas/achBatchPaymentSubmittedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `achBatchPaymentUnlocked`.
              type: string
              const: achBatchPaymentUnlocked
            data:
              $ref: '#/components/schemas/achBatchPaymentUnlockedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `customerDeleted`.
              type: string
              const: customerDeleted
            data:
              $ref: '#/components/schemas/customerDeletedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `accountOwnerEntitled`.
              type: string
              const: accountOwnerEntitled
            data:
              $ref: '#/components/schemas/accountOwnerEntitledEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `entitlementUpdated`.
              type: string
              const: entitlementUpdated
            data:
              $ref: '#/components/schemas/entitlementUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountEntitled`.
              type: string
              const: externalAccountEntitled
            data:
              $ref: '#/components/schemas/externalAccountEntitledEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountActivated`.
              type: string
              const: externalAccountActivated
            data:
              $ref: '#/components/schemas/externalAccountActivatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountRemoved`.
              type: string
              const: externalAccountRemoved
            data:
              $ref: '#/components/schemas/externalAccountRemovedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountRequested`.
              type: string
              const: externalAccountRequested
            data:
              $ref: '#/components/schemas/externalAccountRequestedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountVerificationBlocked`.
              type: string
              const: externalAccountVerificationBlocked
            data:
              $ref: '#/components/schemas/externalAccountVerificationBlockedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountVerificationFailed`.
              type: string
              const: externalAccountVerificationFailed
            data:
              $ref: '#/components/schemas/externalAccountVerificationFailedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountVerificationRemoved`.
              type: string
              const: externalAccountVerificationRemoved
            data:
              $ref: '#/components/schemas/externalAccountVerificationRemovedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `externalAccountVerified`.
              type: string
              const: externalAccountVerified
            data:
              $ref: '#/components/schemas/externalAccountVerifiedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `fullExternalAccountNumberAccessed`.
              type: string
              const: fullExternalAccountNumberAccessed
            data:
              $ref: '#/components/schemas/fullExternalAccountNumberAccessedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `overdraftProtectionElectionUpdated`.
              type: string
              const: overdraftProtectionElectionUpdated
            data:
              $ref: '#/components/schemas/overdraftProtectionElectionUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `addressUpdated`.
              type: string
              const: addressUpdated
            data:
              $ref: '#/components/schemas/addressUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `mobileDeviceRegistrationDeleted`.
              type: string
              const: mobileDeviceRegistrationDeleted
            data:
              $ref: '#/components/schemas/mobileDeviceRegistrationDeletedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `phoneNumberUpdated`.
              type: string
              const: phoneNumberUpdated
            data:
              $ref: '#/components/schemas/phoneNumberUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `primaryEmailUpdated`.
              type: string
              const: primaryEmailUpdated
            data:
              $ref: '#/components/schemas/primaryEmailUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `smsConsentUpdated`.
              type: string
              const: smsConsentUpdated
            data:
              $ref: '#/components/schemas/smsConsentUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `webhookHealthCheck`.
              type: string
              const: webhookHealthCheck
            data:
              $ref: '#/components/schemas/webhookHealthCheckEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferCanceled`.
              type: string
              const: singleTransferCanceled
            data:
              $ref: '#/components/schemas/singleTransferCanceledEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferCreated`.
              type: string
              const: singleTransferCreated
            data:
              $ref: '#/components/schemas/singleTransferCreatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferFailed`.
              type: string
              const: singleTransferFailed
            data:
              $ref: '#/components/schemas/singleTransferFailedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferInitiated`.
              type: string
              const: singleTransferInitiated
            data:
              $ref: '#/components/schemas/singleTransferInitiatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferProcessed`.
              type: string
              const: singleTransferProcessed
            data:
              $ref: '#/components/schemas/singleTransferProcessedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferScheduled`.
              type: string
              const: singleTransferScheduled
            data:
              $ref: '#/components/schemas/singleTransferScheduledEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `singleTransferUpdated`.
              type: string
              const: singleTransferUpdated
            data:
              $ref: '#/components/schemas/singleTransferUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `wireTransferApproved`.
              type: string
              const: wireTransferApproved
            data:
              $ref: '#/components/schemas/wireTransferApprovedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `wireTransferBeneficiaryUpdated`.
              type: string
              const: wireTransferBeneficiaryUpdated
            data:
              $ref: '#/components/schemas/wireTransferBeneficiaryUpdatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `wireTransferCreated`.
              type: string
              const: wireTransferCreated
            data:
              $ref: '#/components/schemas/wireTransferCreatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `wireTransferInitiated`.
              type: string
              const: wireTransferInitiated
            data:
              $ref: '#/components/schemas/wireTransferInitiatedEventSchema'
        - type: object
          properties:
            type:
              description: Matches an event message item for the event type `wireTransferScheduled`.
              type: string
              const: wireTransferScheduled
            data:
              $ref: '#/components/schemas/wireTransferScheduledEventSchema'
    eventMessageType:
      x-apiture-version: 1.1.0
      title: Event Message Type (v1.1.0)
      description: The type of this event. This is the key into the set of event types. This is a _lowerCamelCase_ string.
      type: string
      minLength: 4
      maxLength: 48
      pattern: ^[a-z][a-zA-Z0-9]{3,47}$
      example: wireTransferScheduled
    eventMessageCategory:
      x-apiture-version: 1.1.0
      title: Event Message Category (v1.1.0)
      description: An identifier for the category of the event. Multiple message types can belong to a category. This is a _lowerCamelCase_ string.
      type: string
      minLength: 4
      maxLength: 40
      pattern: ^[a-z][a-zA-Z0-9]{3,39}$
      example: wireTransfers
    eventMessageItem:
      title: Event Item (v0.11.0)
      description: |-
        A data record representing a banking activity or action performed by a user. This conveys:
          * who did something (`agentId`, `agentType`, `coreCustomerId`)
          * what they did (`type`, `category`),
          * when they did it (`occurredAt`),
          * where they did it (`host`),
          * what they did it to (`primaryId`, `secondaryId`)
          * additional `data` that is specific to the activity `type`.


        The `type` is a key into the set of _event types_ . Each type has a corresponding JSON schema that defines the layout of the `data` object. The schema name is derived from the `type` name by adding `EventSchema`. For example, the `transferScheduled` event type's `data` is defined by the schema named `transferScheduledEventSchema`.
      x-apiture-version: 0.11.0
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/eventMessagePayload'
        - type: object
          required:
            - id
            - type
            - category
            - occurredAt
            - agentType
          properties:
            id:
              description: The unique identifier for this event. This is an immutable opaque string.
              $ref: '#/components/schemas/resourceId'
            institutionId:
              description: The unique identifier of the financial institution, if applicable.
              $ref: '#/components/schemas/institutionId'
            correlationId:
              description: An identifier that allows correlating multiple events. This may represent a business process transaction ID or service request ID.
              $ref: '#/components/schemas/resourceId'
            sessionId:
              description: The customer session ID, if known. User login starts a session.
              $ref: '#/components/schemas/resourceId'
            type:
              $ref: '#/components/schemas/eventMessageType'
            category:
              $ref: '#/components/schemas/eventMessageCategory'
            occurredAt:
              description: The approximate date and time when the action occurred and/or was recorded. This is an [RFC 3339](https://tools.ietf.org/html/rfc3339) UTC date-time string. The time is approximate. That is, if event _a_ occurs before event _b_, it is possible that the `occurredAt` recorded for `_b_ may be before _a_.
              $ref: '#/components/schemas/timestamp'
            agentId:
              description: The unique immutable ID of the agent that performed the action that triggered this event. If `agentType` is `customer` then the agent ID is the customer ID; if `agentType` is `operator` then the agent ID is the operator/administrator ID; if `agentType` is `system` then the agent ID is the process/job name.
              $ref: '#/components/schemas/resourceId'
            agentType:
              description: Indicates what type of agent or actor performed the operation that triggered this event.
              allOf:
                - $ref: '#/components/schemas/eventAgentType'
            coreCustomerId:
              description: The unique ID of the customer in the banking core. This is only present if `agentType` is `customer` and if the banking core supports it.
              $ref: '#/components/schemas/coreCustomerId'
            requesterId:
              description: The unique immutable ID of the operator who is acting on behalf of the user identified by the `agentId` when the `agentType` is `customer`. This is also known as user emulation.
              $ref: '#/components/schemas/resourceId'
            host:
              description: The host IP address of client which was used for this activity, if known.
              type: string
              format: text
              maxLength: 39
            primaryId:
              description: The optional unique system ID of the the primary resource that this activity applies to. For example, if a transfer if scheduled or canceled, this is the ID of the transfer.
              $ref: '#/components/schemas/resourceId'
            secondaryId:
              description: The optional unique system ID of a secondary resource that this activity applies to, if any.
              $ref: '#/components/schemas/resourceId'
            data:
              description: Additional properties of the event, represented as a `type`-specific object.
              type: object
              allOf:
                - $ref: '#/components/schemas/abstractEventDataSchema'
      example:
        id: 0399abed30f38b8a365c
        institutionId: TIBURON
        correlationId: da2da17214b86185fb9e
        type: singleTransferScheduled
        category: transfers
        occurredAt: '2019-09-13T05:03:50.375Z'
        agentId: 4f3ec1daab02eed9de64
        agentType: customer
        coreCustomerId: '138929'
        host: 13.226.38.34
        primaryId: a727ff2aedea60646819
        data:
          sourceAccount:
            id: 14bdbe18a60b58a91982
            maskedNumber: '*3210'
            routingNumber: '021000021'
          targetAccount:
            id: bd9a225cb9a285e59cb8
            maskedNumber: '*3219'
            routingNumber: '021000021'
    abstractEventDataSchema:
      title: Abstract Event Data Schema (v0.1.1)
      description: Abstract schema used to define other event message `data` object schemas.
      x-apiture-version: 0.1.1
      type: object
      properties: {}
    customerDeletedEventSchema:
      title: Customer Deleted Event Schema (v1.0.0)
      description: |-
        Payload for event messages triggered when a customer has been deleted.
        This schema defines the `data` object for event messages with category `customers` and event message type of `customerDeleted`.
        The `primaryId` in the event message is the customer which was deleted.
        The `secondaryId` in the event message is The customer subject ID in the identity provider..
      x-apiture-event:
        type: customerDeleted
        category: customers
        primaryId: the customer which was deleted
        secondaryId: The customer subject ID in the identity provider.
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
      x-apiture-version: 1.0.0
    eventAccountReference:
      title: Account Reference (v0.1.0)
      x-apiture-version: 0.1.0
      description: A reference to a banking account.
      type: object
      additionalProperties: false
      required:
        - id
        - maskedNumber
        - routingNumber
      properties:
        id:
          description: The resource ID of the banking account.
          $ref: '#/components/schemas/resourceId'
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        routingNumber:
          description: The account's routing and transit number.
          $ref: '#/components/schemas/accountRoutingNumber'
      example:
        id: a212d3c119148960683d
        maskedNumber: '*3210'
        routingNumber: '021000021'
    eventInternalAccountReference:
      x-apiture-version: 1.1.0
      title: Event Internal Account Reference (v1.1.0)
      description: Identifies an account held at the current financial institution.
      type: object
      properties:
        id:
          description: The resource ID of the banking account.
          $ref: '#/components/schemas/resourceId'
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        type:
          $ref: '#/components/schemas/productType'
      example:
        id: a212d3c119148960683d
        maskedNumber: '*3210'
        type: checking
    eventAccountFields:
      title: Account Fields (v0.1.0)
      x-apiture-version: 0.1.0
      description: A masked account number and its routing number.
      type: object
      additionalProperties: false
      x-apiture-fragment: true
      required:
        - maskedNumber
        - routingNumber
      properties:
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        routingNumber:
          description: The account's routing and transit number.
          $ref: '#/components/schemas/accountRoutingNumber'
      example:
        maskedNumber: '*3210'
        routingNumber: '021000021'
    singleTransferScheduledEventSchema:
      title: Single Transfer Scheduled Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a customer has scheduled a single account-to-account transfer.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferScheduled`.
        The `primaryId` in the event message is the transfer resource.
      type: object
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: singleTransferScheduled
        category: transfers
        primaryId: the transfer resource
      required:
        - sourceAccount
        - targetAccount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventFields'
        - $ref: '#/components/schemas/singleTransferEventBalanceFields'
      example:
        sourceAccount:
          id: a212d3c119148960683d
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: 0c8ad50ab6cf0eb48c25
          maskedNumber: '*3219'
          routingNumber: '021000021'
        amount: '345.70'
        availableBalance: '2960.10'
    singleTransferEvent:
      x-apiture-version: 1.1.0
      title: Single Transfer Event (v1.1.0)
      description: Describes the details of a single account-to-account transfer in an event payload.
      type: object
      allOf:
        - $ref: '#/components/schemas/singleTransferEventFields'
        - type: object
          properties:
            frequency:
              $ref: '#/components/schemas/transferFrequency'
      example:
        sourceAccount:
          id: 3cfce6d07f4eb75185e9
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: 777a2a2442ce020e63b1
          maskedNumber: '*3219'
          routingNumber: '021000021'
        amount: '350.00'
        frequency: once
    singleTransferUpdatedEventSchema:
      title: Single Transfer Updated Event Schema (v0.3.0)
      description: |-
        Payload for event messages triggered when a customer has scheduled a single account-to-account transfer. The transfer resource ID is captured in the event's `primaryId`.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferUpdated`.
        The `primaryId` in the event message is the transfer resource.
      type: object
      x-apiture-version: 0.3.0
      x-apiture-event:
        type: singleTransferUpdated
        category: transfers
        primaryId: the transfer resource
      required:
        - previousTransfer
        - newTransfer
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventBalanceFields'
        - type: object
          properties:
            previousTransfer:
              $ref: '#/components/schemas/singleTransferEvent'
            newTransfer:
              $ref: '#/components/schemas/singleTransferEvent'
      example:
        previousTransfer:
          sourceAccount:
            id: a212d3c119148960683d
            maskedNumber: '*3210'
            routingNumber: '021000021'
          targetAccount:
            id: 0c8ad50ab6cf0eb48c25
            maskedNumber: '*3219'
            routingNumber: '021000021'
          amount: '350.00'
          frequency: once
        newTransfer:
          sourceAccount:
            id: a212d3c119148960683d
            maskedNumber: '*3210'
            routingNumber: '021000021'
          targetAccount:
            id: f901940ca3df8a40a238
            maskedNumber: '*8239'
            routingNumber: '021000021'
          amount: '450.00'
          frequency: weekly
        availableBalance: '4290.20'
    eventClientIdentificationFields:
      title: Client Identification Fields (v0.2.1)
      description: Fragment schema that defines a set of fields that identify the client the customer was using when performing an action that triggered an event.
      x-apiture-version: 0.2.1
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/deviceIdField'
        - $ref: '#/components/schemas/browserUserAgentField'
        - properties:
            operatingSystem:
              description: The name of operating system of the device associated with the client request, if known.
              type: string
              format: text
              maxLength: 32
            platform:
              description: The application platform of user's client application associated with the client request, if known.
              type: string
              enum:
                - web
                - mobile
                - voice
                - sms
                - other
                - unknown
            application:
              description: The application into which the user logged in. The reserved names `apitureDigitalBanking` and `apitureMobile` represent Apiture's web and mobile applications. `unknown` if the application is not known.
              type: string
              format: text
              maxLength: 32
          example:
            browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
            operatingSystem: macos
            platform: web
            application: apitureDigitalBanking
            deviceId: 9ba299c8aed474403707
    browserUserAgentField:
      title: Browser User Agent Field (v1.0.0)
      description: Fragment schema to define the `browser` (User Agent) Field.
      properties:
        browser:
          description: The browser or user agent associated with the client request, if known.
          type: string
          format: text
          maxLength: 512
      x-apiture-version: 1.0.0
    deviceIdField:
      title: Device Id Field (v1.0.0)
      description: Fragment schema to define a `deviceId` Field.
      x-apiture-fragment: true
      properties:
        deviceId:
          description: Text which identifies the client device the end user agent was using when their activity triggered the event. This property is omitted if the device ID is unknown.
          type: string
          format: text
          maxLength: 64
      x-apiture-version: 1.0.0
    userLoggedInEventSchema:
      title: User Logged In Event Schema (v0.3.1)
      description: |-
        Payload for event messages triggered when a user has logged in. The authenticated user's resource ID is captured in the event's `agentId`.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `userLoggedIn`.
      x-apiture-version: 0.3.1
      x-apiture-event:
        type: userLoggedIn
        category: authentication
      type: object
      required:
        - application
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventClientIdentificationFields'
        - type: object
          properties:
            userType:
              description: Indicates the type of digital banking customer/member. Omitted if not a digital banking customer.
              $ref: '#/components/schemas/userType'
            score:
              description: A score that indicates the risk level of the user.
              type: number
              minimum: 0
              maximum: 10000
      example:
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        operatingSystem: macos
        platform: web
        application: apitureDigitalBanking
        userType: retail
        score: 2500
        deviceId: 9ba299c8aed474403707
    externalAccountRequestedEventSchema:
      title: External Account Requested Event Schema (v0.4.0)
      description: |-
        Payload for event messages triggered when a banking customer has requested linking an external ACH banking account so that they may transfer funds between this financial institution and that external account.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountRequested`.
        The `primaryId` in the event message is the external account resource.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.4.0
      x-apiture-event:
        type: externalAccountRequested
        category: externalAccounts
        primaryId: the external account resource
        secondaryId: the corresponding internal account application, if known
      type: object
      required:
        - maskedNumber
        - routingNumber
        - verificationMethod
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/externalAccountVerificationEventFields'
      example:
        maskedNumber: '*6789'
        routingNumber: '123123123'
        verificationMethod: microDeposits
    addressUpdatedEventSchema:
      title: Address Updated Event Schema (v0.3.0)
      description: |-
        Payload for event messages triggered when a user has updated their postal address.
        This schema defines the `data` object for event messages with category `profile` and event message type of `addressUpdated`.
      x-apiture-version: 0.3.0
      x-apiture-event:
        type: addressUpdated
        category: profile
      type: object
      required:
        - previousAddress
        - newAddress
        - type
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            previousAddress:
              description: The value of the address prior to the update.
              $ref: '#/components/schemas/eventAddress'
            newAddress:
              description: The value of the address after the update.
              $ref: '#/components/schemas/eventAddress'
            type:
              description: Indicates which address associated with this banking customer's profile was updated.
              type: string
              enum:
                - physical
                - mailing
      example:
        previousAddress:
          address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
        newAddress:
          address1: 1822 Tiburon Dr.
          address2: Building 9, Suite 100
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
        type: mailing
    passwordUpdatedEventSchema:
      title: Password Updated Event Schema (v0.3.1)
      description: |-
        Payload for event messages triggered when a user has changed their password.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `passwordUpdated`.
      x-apiture-version: 0.3.1
      x-apiture-event:
        type: passwordUpdated
        category: authentication
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventClientIdentificationFields'
        - type: object
          properties:
            temporaryPassword:
              description: If `true`, the user replaced a temporary password that was assigned for forgotten password flows or first-time login. If `false`  or omitted, the user changed their normal password.
              type: boolean
      example:
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        operatingSystem: macos
        platform: web
        application: apitureDigitalBanking
        deviceId: 9ba299c8aed474403707
    primaryEmailUpdatedEventSchema:
      title: Primary Email Updated Event Schema (v0.2.2)
      description: |-
        Payload for event messages triggered when a user has changed their primary email address.
        This schema defines the `data` object for event messages with category `profile` and event message type of `primaryEmailUpdated`.
      type: object
      x-apiture-event:
        type: primaryEmailUpdated
        category: profile
      x-apiture-version: 0.2.2
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            previousEmail:
              description: The previous original value of the email address before the update.
              type: string
              maxLength: 120
              format: email
            newEmail:
              description: The new value of the email address after the update.
              type: string
              maxLength: 120
              format: email
      example:
        previousEmail: fribble-fin@example.com
        newEmail: fribble-cfo@example.com
    eventWireBeneficiary:
      title: Event Wire Beneficiary (v0.2.1)
      description: The name and address of a wire transfer beneficiary.
      type: object
      x-apiture-version: 0.2.1
      required:
        - name
      properties:
        name:
          description: The name of the wire transfer beneficiary.
          type: string
          format: text
          maxLength: 35
        address:
          $ref: '#/components/schemas/eventAddress'
      example:
        name: Fribble Inc.
        address:
          address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
    wireTransferBeneficiaryUpdatedEventSchema:
      title: Wire Transfer Beneficiary Updated Event Schema (v0.3.1)
      description: |-
        Payload for event messages triggered when a user has changed a wire transfer beneficiary.
        This schema defines the `data` object for event messages with category `wireTransfers` and event message type of `wireTransferBeneficiaryUpdated`.
        The `primaryId` in the event message is the wire transfer resource.
      x-apiture-version: 0.3.1
      type: object
      x-apiture-event:
        type: wireTransferBeneficiaryUpdated
        category: wireTransfers
        primaryId: the wire transfer resource
      required:
        - previousBeneficiary
        - newBeneficiary
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            previousBeneficiary:
              $ref: '#/components/schemas/eventWireBeneficiary'
            newBeneficiary:
              $ref: '#/components/schemas/eventWireBeneficiary'
      example:
        previousBeneficiary:
          name: Fribble Inc.
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
        newBeneficiary:
          name: Fribble LLC
          address:
            address1: 1810 Tiburon Dr.
            address2: Building 6, Suite 100
            locality: Vancouver
            regionName: British Columbia
            countryCode: CA
            postalCode: V5K 0A1
    wireTransferEventTargetAccount:
      title: Wire Transfer Target Account (v1.0.0)
      description: Identifies a target account for a domestic or international wire transfer.
      type: object
      x-apiture-version: 1.0.0
      properties:
        maskedNumber:
          description: The masked account number for the beneficiary. For domestic wire transfers, this is the US Bank Account number. For international wire transfers, this is the International Bank Account Number (IBAN). A masked account number consists of `*` followed by one to four characters of the full account number.
          $ref: '#/components/schemas/maskedAccountNumber'
        locator:
          description: The [American Bankers Association routing number](https://www.aba.com/about-us/routingnumber), [SWIFT Business Identifier Code (BIC) code](https://www.swift.com/standards/data-standards/bic-business-identifier-code), or [IBAN account number](https://www.ecbs.org/iban.htm) of the institution. The form of this institution locator string is set with the `locatorType` property.
          type: string
          format: text
          maxLength: 36
        locatorType:
          description: Indicates the type of this institution's `locator`.
          $ref: '#/components/schemas/institutionLocatorType'
      example:
        maskedNumber: '*6789'
        locatorType: abaRoutingNumber
        locator: '123123123'
    wireTransferEventFields:
      title: Wire Transfer Event Fields (v1.0.0)
      description: Fields used to compose other wire transfer event schemas.
      x-apiture-fragment: true
      x-apiture-version: 1.0.0
      type: object
      properties:
        sourceAccount:
          $ref: '#/components/schemas/eventAccountReference'
        targetAccount:
          $ref: '#/components/schemas/wireTransferEventTargetAccount'
        scope:
          $ref: '#/components/schemas/wireTransferPaymentScope'
        amount:
          description: The amount of money to wire from the source account to the target account.
          $ref: '#/components/schemas/monetaryValue'
        availableBalance:
          description: The available balance of the source account, if known. This is the string representation of the exact decimal amount. This value may be omitted if the system is unable to obtain it.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
    wireTransferCreatedEventSchema:
      title: Wire Transfer Created Event Schema (v1.0.0)
      description: |-
        Payload for event messages triggered when a user has created a wire transfer.
        This schema defines the `data` object for event messages with category `wireTransfers` and event message type of `wireTransferCreated`.
        The `primaryId` in the event message is the wire transfer resource.
      x-apiture-event:
        type: wireTransferCreated
        category: wireTransfers
        primaryId: the wire transfer resource
      x-apiture-version: 1.0.0
      type: object
      required:
        - sourceAccount
        - scope
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/wireTransferEventFields'
      example:
        scope: domestic
        sourceAccount:
          id: c2f333cc-9cef-4bfc-af8e-fca63cd50b1b
          maskedNumber: '*6789'
          routingNumber: '123123123'
        targetAccount:
          maskedNumber: '*8911'
          locatorType: abaRoutingNumber
          locator: '321321321'
        amount: '345.70'
        availableBalance: '2960.10'
    mobileDeviceRegistrationDeletedEventSchema:
      title: Mobile Device Registration Deleted Event Schema (v0.1.2)
      description: |-
        Payload for event messages triggered when a user has deleted a device registration.
        This schema defines the `data` object for event messages with category `profile` and event message type of `mobileDeviceRegistrationDeleted`.
      x-apiture-event:
        type: mobileDeviceRegistrationDeleted
        category: profile
      x-apiture-version: 0.1.2
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/deviceIdField'
      example:
        deviceId: c6b79477550d0ebd16f7
    userLoginFailedEventSchema:
      title: User Login Failed Event Schema (v0.3.1)
      description: |-
        Payload for event messages triggered when a user has failed a login attempt.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `userLoginFailed`.
      x-apiture-event:
        type: userLoginFailed
        category: authentication
      x-apiture-version: 0.3.1
      type: object
      required:
        - reason
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventClientIdentificationFields'
        - type: object
          properties:
            reason:
              description: |-
                Indicates why the user was unable to login. Some possible values are
                  * `disabled`
                  * `invalidCredentials`
                  * `ipRestriction`
                  * `other`
                  * `unknown`

                Other values are possible.
              type: string
              format: text
              maxLength: 80
            userType:
              description: Indicates the type of digital banking customer/member. Omitted if not a digital banking customer.
              $ref: '#/components/schemas/userType'
      example:
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        operatingSystem: macos
        platform: web
        application: apitureDigitalBanking
        reason: disabled
        deviceId: 9ba299c8aed474403707
        userType: retail
    phoneNumberUpdatedEventSchema:
      title: Phone Number Updated Event Schema (v0.1.2)
      description: |-
        Payload for event messages triggered when a user has updated a phone number associated with their profile.
        This schema defines the `data` object for event messages with category `profile` and event message type of `phoneNumberUpdated`.
      x-apiture-event:
        type: phoneNumberUpdated
        category: profile
      x-apiture-version: 0.1.2
      type: object
      required:
        - type
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            previousPhoneNumber:
              description: The previous phone number. If omitted, the user did not have a previous number of this type.
              type: string
              format: text
              maxLength: 20
            newPhoneNumber:
              description: The new phone number. If omitted, the user has removed the number of this type.
              type: string
              format: text
              maxLength: 20
            type:
              $ref: '#/components/schemas/phoneNumberType'
      example:
        previousPhoneNumber: 910-555-1234
        newPhoneNumber: 910-555-5678
        type: mobile
    smsConsentUpdatedEventSchema:
      title: SMS Consent Updated Event Schema (v0.1.1)
      description: |-
        Payload for event messages triggered when a user has changed their SMS notification consent. (i.e. when a user opts-in for or opt-out of SMS notifications.) This is also triggered if the user changes their mobile number.
        This schema defines the `data` object for event messages with category `profile` and event message type of `smsConsentUpdated`.
      x-apiture-event:
        type: smsConsentUpdated
        category: profile
      x-apiture-version: 0.1.1
      type: object
      required:
        - consented
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            consented:
              description: Indicates if the user has just consented to (`true`) removed consent (`false`) for SMS notifications.
              type: boolean
      example:
        consented: true
    eventAuthenticationChallengeFactor:
      title: Event Authentication Challenge Factor (v1.0.0)
      description: |+
        The name of an authentication challenge factor, which indicates the method used to verify a user's identity when performing an operation that requires identity verification.

        <strong><code>eventAuthenticationChallengeFactor</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>softwareToken</code></strong></td><td>Software Token: <p>One-time passcode issued by a pre-registered software authenticator application</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>hardwareToken</code></strong></td><td>Hardware Token: <p>One-time passcode issued by a pre-registered hardware device such as a token key fob</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>authenticatorToken</code></strong></td><td>Authenticator Token: <p>One-time passcode issued by a pre-registered authenticator</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>securityQuestions</code></strong></td><td>Security Questions: <p>Prompt the user to answer their registered security questions</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>twoWaySms</code></strong></td><td>Two-way SMS: <p>Prompt the user to verify their identity via a two-way SMS conversation</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-todo: 'Change this to allOf: - $ref: ''../common/openapi.yaml#/components/schemas/challengeFactorType'' in Challenge API once that has been merged.'
      x-apiture-enum: eventAuthenticationChallengeFactor
      enum:
        - sms
        - email
        - voice
        - hardwareToken
        - softwareToken
        - authenticatorToken
        - securityQuestions
        - twoWaySms
      x-apiture-version: 1.0.0
    wireTransferApprovedEventSchema:
      title: Wire Transfer Approved Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a banking user has approved a wire transfer. The wire transfer requires additional transfers if `remainingApprovalsCount` is greater than `0`. If `remainingApprovalsCount` is `0`, the system will schedule the wire to process on its scheduled date.
        This schema defines the `data` object for event messages with category `wireTransfers` and event message type of `wireTransferApproved`.
        The `primaryId` in the event message is the wire transfer resource.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: wireTransferApproved
        category: wireTransfers
        primaryId: the wire transfer resource
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          required:
            - approvalCount
            - remainingApprovalsCount
          properties:
            approvalCount:
              description: The number of approvals already given for the wire transfer, including the approval corresponding to this event.
              type: integer
              format: int32
              minimum: 0
              maximum: 3
            remainingApprovalsCount:
              description: The number of the remaining approvals that are required before the wire payment can be scheduled and processed.
              type: integer
              format: int32
              minimum: 0
              maximum: 3
            factor:
              description: The authentication challenge factor the agent used to verify their identity when approving a wire transfer, if known.
              $ref: '#/components/schemas/eventAuthenticationChallengeFactor'
      example:
        approvalCount: 1
        remainingApprovalsCount: 1
        factor: email
    eventAddress:
      x-apiture-version: 1.1.0
      title: Event Address (v1.1.0)
      description: A postal address that can hold a US address or an international (non-US) postal addresses.
      type: object
      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
    wireTransferScheduledEventSchema:
      title: Wire Transfer Scheduled Event Schema (v1.0.0)
      description: |-
        Payload for event messages triggered when a customer has submitted and approved a wire transfer and it is queued for processing on its scheduled date.
        This schema defines the `data` object for event messages with category `wireTransfers` and event message type of `wireTransferScheduled`.
        The `primaryId` in the event message is the wire transfer resource.
      x-apiture-version: 1.0.0
      x-apiture-event:
        type: wireTransferScheduled
        category: wireTransfers
        primaryId: the wire transfer resource
      type: object
      required:
        - sourceAccount
        - targetAccount
        - scope
        - amount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/wireTransferEventFields'
      example:
        scope: domestic
        sourceAccount:
          id: c2f333cc-9cef-4bfc-af8e-fca63cd50b1b
          maskedNumber: '*6789'
          routingNumber: '123123123'
        targetAccount:
          maskedNumber: '*8911'
          locatorType: abaRoutingNumber
          locator: '321321321'
        amount: '345.70'
        availableBalance: '2960.10'
    fullAccountNumberAccessedEventSchema:
      title: Full Account Number Accessed Events Schema (v0.1.1)
      description: |-
        Payload for event messages triggered when a user has accessed a full unmasked account number for an internal account at the financial institution.
        This schema defines the `data` object for event messages with category `accounts` and event message type of `fullAccountNumberAccessed`.
        The `primaryId` in the event message is the account resource.
      x-apiture-version: 0.1.1
      x-apiture-event:
        type: fullAccountNumberAccessed
        category: accounts
        primaryId: the account resource
      unevaluatedProperties: false
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventAccountFields'
      example:
        maskedNumber: '*3210'
        routingNumber: '021000021'
    mfaEventFields:
      title: MFA Event Fields (v1.0.0)
      description: Fragment schema used to compose MFA schemas.
      x-apiture-fragment: true
      required:
        - factor
      properties:
        factor:
          description: The factor or delivery method that the user selected to complete the MFA.
          $ref: '#/components/schemas/eventAuthenticationChallengeFactor'
        channels:
          description: An optional list of channels through which the MFA one-time passcode is delivered to the user according to the selected MFA factor. A user can select one or two email channels for the `email` factor. The `voice`, `sms` and `twoWaySms` factors allow only one channel. Omitted if the factor does not have MFA delivery channels.
          type: array
          minItems: 1
          maxItems: 2
          items:
            type: string
            format: text
            description: A masked email address if `factor` is `email`, or the last four digits of the mobile phone number if `factor` is `sms` or `twoWaySms`.
            maxLength: 72
      x-apiture-version: 1.0.0
    mfaFailedEventSchema:
      title: MFA Failed Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered each time a user has failed a multi-factor authentication (MFA) challenge after logging in, such an entering an incorrect one-time passcode. This may be followed by a `mfaSucceeded` event upon a retry, or the user may reach their failure limit and then entire MFA flow fails.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `mfaFailed`.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: mfaFailed
        category: authentication
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/mfaEventFields'
        - type: object
          properties:
            failureCount:
              description: The number of times the user submitted an invalid MFA response, such as the wrong one-time passcode or incorrect security questions.
              type: integer
              format: int32
              minimum: 0
              maximum: 20
      example:
        factor: sms
        channels:
          - '5555'
        failureCount: 1
    mfaInitiatedEventSchema:
      title: MFA Initiated Event Schema (v0.1.2)
      description: |-
        Payload for event messages triggered when the system has initiated multi-factor authentication (MFA) after a user logs in.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `mfaInitiated`.
      x-apiture-version: 0.1.2
      unevaluatedProperties: false
      x-apiture-event:
        type: mfaInitiated
        category: authentication
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/mfaEventFields'
      example:
        factor: sms
        channels:
          - '5555'
    mfaSucceededEventSchema:
      title: MFA Succeeded Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a user has successfully completed multi-factor authentication (MFA) after logging in. This may be preceded my one or more `mfaFailed` events if the user had intermediate failures, as indicated by the `failureCount` property.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `mfaSucceeded`.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: mfaSucceeded
        category: authentication
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/mfaEventFields'
        - type: object
          properties:
            failureCount:
              description: The number of times the user submitted an invalid MFA response, such as the wrong one-time passcode or incorrect security questions.
              type: integer
              format: int32
              minimum: 0
              maximum: 20
      example:
        factor: sms
        channels:
          - '5555'
        failureCount: 1
    passwordUpdateFailedEventSchema:
      title: Password Update Failed Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a user has failed to change a password.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `passwordUpdateFailed`.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: passwordUpdateFailed
        category: authentication
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventClientIdentificationFields'
        - type: object
          properties:
            temporaryPassword:
              description: If `true`, the user failed to update a temporary password that was assigned for forgotten password flows or first-time login. If `false`  or omitted, the failure applied to the user's normal password.
              type: boolean
      example:
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        operatingSystem: macos
        platform: web
        application: apitureDigitalBanking
        temporaryPassword: true
        deviceId: 9ba299c8aed474403707
    usernameUpdatedEventSchema:
      title: Username Updated Event Schema (v0.3.1)
      description: |-
        Payload for event messages triggered when a user has updated their username (access ID).
        This schema defines the `data` object for event messages with category `authentication` and event message type of `usernameUpdated`.
      x-apiture-event:
        type: usernameUpdated
        category: authentication
      x-apiture-version: 0.3.1
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventClientIdentificationFields'
      example:
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        operatingSystem: macos
        platform: web
        application: apitureDigitalBanking
        deviceId: 9ba299c8aed474403707
    externalAccountRemovedEventSchema:
      title: External Account Removed Event Schema (v0.2.0)
      description: |-
        Payload for event messages triggered when a customer has removed (unlinked) an external account.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountRemoved`.
        The `primaryId` in the event message is the external account resource.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-event:
        type: externalAccountRemoved
        category: externalAccounts
        primaryId: the external account resource
        secondaryId: the corresponding internal account application, if known
      x-apiture-version: 0.2.0
      required:
        - maskedNumber
        - routingNumber
        - institutionName
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            maskedNumber:
              $ref: '#/components/schemas/maskedAccountNumber'
            routingNumber:
              $ref: '#/components/schemas/accountRoutingNumber'
            institutionName:
              description: The financial institution's name.
              allOf:
                - $ref: '#/components/schemas/institutionName'
      example:
        maskedNumber: '*6789'
        routingNumber: '123123123'
        institutionName: Third Party Bank
    externalAccountVerificationFailureEventReason:
      x-apiture-version: 1.1.0
      title: External Account Verification Failure Event Reason (v1.1.0)
      description: |+
        Indicates the reason that external account verification failed.

        <strong><code>externalAccountVerificationFailureEventReason</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>microDepositsAccountMismatched</code></strong></td><td>Micro-Deposits Account Number Mismatched: <p>When verifying micro-deposits, the account number did not match the external account being verified</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>microDepositsAmountsMismatched</code></strong></td><td>Micro-Deposits Amounts Mismatched: <p>When verifying micro-deposits, the amounts did not match the actual transactions</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>blockedInstitution</code></strong></td><td>Blocked Institution: <p>The financial institution has blocked linking external accounts from this external institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>Account verification failed for some other reason</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>unknown</code></strong></td><td>Unknown: <p>Account verification failed for an unknown reason</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: externalAccountVerificationFailureEventReasons
      enum:
        - microDepositsAccountMismatched
        - microDepositsAmountsMismatched
        - blockedInstitution
        - other
        - unknown
    externalAccountVerificationEventFields:
      x-apiture-version: 1.2.0
      title: External Account Verification Event Fields (v1.2.0)
      description: Fields used to compose other schemas related to external account verification.
      type: object
      x-apiture-fragment: true
      properties:
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        routingNumber:
          $ref: '#/components/schemas/accountRoutingNumber'
        verificationMethod:
          $ref: '#/components/schemas/externalAccountVerificationMethod'
        institutionName:
          description: The financial institution's name.
          allOf:
            - $ref: '#/components/schemas/institutionName'
    externalAccountVerificationFailedEventSchema:
      title: External Account Verification Failed Event Schema (v0.6.0)
      description: |-
        Payload for event messages triggered when a user has failed to verify ownership of an external account while trying to add access to an external account.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountVerificationFailed`.
        The `primaryId` in the event message is the external account resource.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.6.0
      x-apiture-event:
        type: externalAccountVerificationFailed
        category: externalAccounts
        primaryId: the external account resource
        secondaryId: the corresponding internal account application, if known
      required:
        - maskedNumber
        - routingNumber
        - verificationMethod
        - reason
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/externalAccountVerificationEventFields'
        - type: object
          properties:
            reason:
              description: Indicates why the verification failed.
              $ref: '#/components/schemas/externalAccountVerificationFailureEventReason'
            failureCount:
              description: The number of times a external account verification attempt failed. Omitted if unknown.
              type: integer
              format: int32
              minimum: 1
              maximum: 20
      example:
        maskedNumber: '*6789'
        routingNumber: '123123123'
        verificationMethod: microDeposits
        reason: microDepositsAccountMismatched
        failureCount: 1
    fullExternalAccountNumberAccessedEventSchema:
      title: Full External Account Number Accessed Event Schema (v0.1.1)
      description: |-
        Payload for event messages triggered when a user has accessed a full (unmasked) account number for an external account.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `fullExternalAccountNumberAccessed`.
        The `primaryId` in the event message is the external account resource.
      x-apiture-event:
        type: fullExternalAccountNumberAccessed
        category: externalAccounts
        primaryId: the external account resource
      x-apiture-version: 0.1.1
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/eventAccountFields'
      example:
        maskedNumber: '*3210'
        routingNumber: '021000021'
    wireTransferInitiatedEventSchema:
      title: Wire Transfer Initiated Event Schema (v1.0.0)
      description: |-
        Payload for event messages triggered when the financial institution has initiate  (started processing) a wire transfer with the FED wire network.
        This schema defines the `data` object for event messages with category `wireTransfers` and event message type of `wireTransferInitiated`.
        The `primaryId` in the event message is the wire transfer resource.
      x-apiture-version: 1.0.0
      x-apiture-event:
        type: wireTransferInitiated
        category: wireTransfers
        primaryId: the wire transfer resource
      type: object
      required:
        - sourceAccount
        - targetAccount
        - scope
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/wireTransferEventFields'
      example:
        scope: domestic
        sourceAccount:
          id: 65d2467fe82b5858e9fb
          maskedNumber: '*6789'
          routingNumber: '123123123'
        targetAccount:
          maskedNumber: '*8911'
          locatorType: abaRoutingNumber
          locator: '321321321'
        amount: '345.70'
        availableBalance: '2960.10'
    singleTransferCreatedEventSchema:
      title: Single Transfer Created Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a user has created a single account-to-account transfer.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferCreated`.
        The `primaryId` in the event message is the transfer resource.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: singleTransferCreated
        category: transfers
        primaryId: the transfer resource
      type: object
      required:
        - sourceAccount
        - targetAccount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventFields'
        - $ref: '#/components/schemas/singleTransferEventBalanceFields'
      example:
        sourceAccount:
          id: 370c93621e94f0f088bc
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: 8fdca899061880daf280
          maskedNumber: '*3219'
          routingNumber: '021000021'
        amount: '345.70'
        availableBalance: '2960.10'
    singleTransferEventFields:
      title: Single Transfer Event Fields (v0.1.0)
      description: Schema used to compose other single transfer schemas.
      x-apiture-fragment: true
      x-apiture-version: 0.1.0
      type: object
      properties:
        sourceAccount:
          description: The source account from which the funds are debited.
          $ref: '#/components/schemas/eventAccountReference'
        targetAccount:
          description: The account where the funds are credited.
          $ref: '#/components/schemas/eventAccountReference'
        amount:
          description: The amount of money to transfer between accounts.
          $ref: '#/components/schemas/monetaryValue'
    singleTransferEventBalanceFields:
      x-apiture-version: 1.0.1
      title: Single Transfer Event Balance Field (v1.0.1)
      description: Defines balance fields for constructing other single transfer event schemas.
      x-apiture-fragment: true
      type: object
      properties:
        availableBalance:
          description: The available balance of the transfer's source account. This field is only available if the source account is internal (held at the financial institution) and if the balance is available from the banking core. This is the string representation of the exact decimal amount.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
    singleTransferFailedEventSchema:
      title: Single Transfer Failed Event Schema (v0.2.0)
      description: |-
        Payload for event messages triggered when the system has failed to process a single account-to-account transfer.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferFailed`.
        The `primaryId` in the event message is the transfer resource.
      x-apiture-version: 0.2.0
      x-apiture-event:
        type: singleTransferFailed
        category: transfers
        primaryId: the transfer resource
      type: object
      required:
        - reason
        - sourceAccount
        - targetAccount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventFields'
        - type: object
          properties:
            reason:
              $ref: '#/components/schemas/eventSingleTransferFailedReason'
      example:
        sourceAccount:
          id: a212d3c119148960683d
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: 0c8ad50ab6cf0eb48c25
          maskedNumber: '*3219'
          routingNumber: '123123123'
        amount: '345.70'
        reason: nonSufficientFunds
    eventSingleTransferFailedReason:
      title: Event Single Transfer Failed Reason (v1.0.0)
      description: |+
        Indicates why a single transfer failed.

        <strong><code>eventSingleTransferFailedReason</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>nonSufficientFunds</code></strong></td><td>Non Sufficient Funds: <p>Non Sufficient Funds (NSF) in the source account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>sourceAccountClosed</code></strong></td><td>Source Account Closed: <p>The source (debit) account for the transfer is closed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>targetAccountClosed</code></strong></td><td>Target Account Closed: <p>The target (credit) account for the transfer is closed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>Another unspecified reason</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: eventSingleTransferFailedReason
      enum:
        - nonSufficientFunds
        - sourceAccountClosed
        - targetAccountClosed
        - other
      x-apiture-version: 1.0.0
    singleTransferInitiatedEventSchema:
      title: Message Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when the system has started processing a single scheduled account-to-account transfer.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferInitiated`.
        The `primaryId` in the event message is the transfer resource.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: singleTransferInitiated
        category: transfers
        primaryId: the transfer resource
      type: object
      required:
        - sourceAccount
        - targetAccount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventFields'
        - $ref: '#/components/schemas/singleTransferEventBalanceFields'
      example:
        sourceAccount:
          id: b4f9dc1f07af757b0696
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: 73bec47bcabaee4fca6c
          maskedNumber: '*3219'
          routingNumber: '123123123'
        amount: '345.70'
        availableBalance: '2960.10'
    singleTransferProcessedEventSchema:
      title: Single Transfer Processed Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a single account-to-account transfer has completed processing.
        This schema defines the `data` object for event messages with category `transfers` and event message type of `singleTransferProcessed`.
        The `primaryId` in the event message is the transfer resource.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: singleTransferProcessed
        category: transfers
        primaryId: the transfer resource
      type: object
      required:
        - sourceAccount
        - targetAccount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/singleTransferEventFields'
        - $ref: '#/components/schemas/singleTransferEventBalanceFields'
      example:
        sourceAccount:
          id: 370c93621e94f0f088bc
          maskedNumber: '*3210'
          routingNumber: '021000021'
        targetAccount:
          id: 8fdca899061880daf280
          maskedNumber: '*3219'
          routingNumber: '021000021'
        amount: '345.70'
        availableBalance: '2960.10'
    externalAccountActivatedEventSchema:
      title: External Account Activated Event Schema (v0.2.0)
      description: |-
        Payload for event messages triggered when a user has activated an external banking account after successful account verification, or the financial institution has activated the account on behalf of the customer.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountActivated`.
        The `primaryId` in the event message is the external account resource.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.2.0
      x-apiture-event:
        type: externalAccountActivated
        category: externalAccounts
        primaryId: the external account resource
        secondaryId: the corresponding internal account application, if known
      type: object
      required:
        - account
        - verificationMethod
        - institutionName
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            account:
              description: The identifying properties of the external account.
              $ref: '#/components/schemas/eventAccountReference'
            verificationMethod:
              $ref: '#/components/schemas/externalAccountVerificationMethod'
            institutionName:
              description: The financial institution's name.
              allOf:
                - $ref: '#/components/schemas/institutionName'
      example:
        account:
          id: a5b383950c769e52a316
          maskedNumber: '*3210'
          routingNumber: '021000021'
        institutionName: Third Party Bank
        verificationMethod: instant
    identityChallengeEventFields:
      title: Identity Challenge Event Fields (v1.0.0)
      description: Fragment schema used to compose identity challenge schemas.
      x-apiture-fragment: true
      required:
        - factor
      properties:
        factor:
          description: The factor or delivery method that the user selected to complete the identity challenge.
          $ref: '#/components/schemas/eventAuthenticationChallengeFactor'
        channels:
          description: An optional list of channels through which the identity challenge one-time passcode is delivered to the user according to the selected identity challenge factor. A user can select one or two email channels for the `email` factor. The `voice`, `sms` and `twoWaySms` factors allow only one channel. Omitted if the factor does not have identity challenge delivery channels.
          type: array
          minItems: 1
          maxItems: 2
          items:
            type: string
            format: text
            description: A masked email address if `factor` is `email`, or the last four digits of the mobile phone number if `factor` is `sms` or `twoWaySms`.
            maxLength: 72
      x-apiture-version: 1.0.0
    identityChallengeSucceededEventSchema:
      title: Identity Challenge Succeeded Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a user has successfully completed an identity challenge.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `identityChallengeSucceeded`.
        The `primaryId` in the event message is the identity challenge resource, if known.
        The `secondaryId` in the event message is the `operationId` of the challenge, if known.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: identityChallengeSucceeded
        category: authentication
        primaryId: the identity challenge resource, if known
        secondaryId: the `operationId` of the challenge, if known
      type: object
      required:
        - factor
        - failureCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/identityChallengeEventFields'
        - type: object
          properties:
            failureCount:
              description: The number of times the user submitted an invalid identity Challenge response, such as the wrong one-time passcode or incorrect security questions.
              type: integer
              format: int32
              minimum: 0
              maximum: 20
      example:
        factor: sms
        channels:
          - '5555'
        failureCount: 1
    identityChallengeFailedEventSchema:
      title: Identity Challenge Failed Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when a user has failed an identity challenge.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `identityChallengeFailed`.
        The `primaryId` in the event message is the identity challenge resource, if known.
        The `secondaryId` in the event message is the `operationId` of the challenge, if known.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: identityChallengeFailed
        category: authentication
        primaryId: the identity challenge resource, if known
        secondaryId: the `operationId` of the challenge, if known
      type: object
      required:
        - factor
        - failureCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/identityChallengeEventFields'
        - type: object
          properties:
            failureCount:
              description: The number of times the user submitted an invalid identity Challenge response, such as the wrong one-time passcode or incorrect security questions.
              type: integer
              format: int32
              minimum: 0
              maximum: 20
      example:
        factor: sms
        channels:
          - '5555'
        failureCount: 1
    identityChallengeCreatedEventSchema:
      title: Identity Challenge Created Event Schema (v0.2.1)
      description: |-
        Payload for event messages triggered when system creates a new identity challenge when it requires the user to complete an identity challenge.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `identityChallengeCreated`.
        The `primaryId` in the event message is the identity challenge resource, if known.
        The `secondaryId` in the event message is the `operationId` of the challenge, if known.
      x-apiture-version: 0.2.1
      x-apiture-event:
        type: identityChallengeCreated
        category: authentication
        primaryId: the identity challenge resource, if known
        secondaryId: the `operationId` of the challenge, if known
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            factors:
              description: A list of challenge factors offered to the customer.
              type: array
              minItems: 1
              maxItems: 8
              items:
                $ref: '#/components/schemas/challengeFactorType'
      example:
        factors:
          - sms
          - email
          - voice
    identityChallengeInitiatedEventSchema:
      title: Identity Challenge Initiated Event Schema (v0.1.1)
      description: |-
        Payload for event messages triggered when a user has initiated an identity challenge for an operation that requires proof of identity.
        This schema defines the `data` object for event messages with category `authentication` and event message type of `identityChallengeInitiated`.
        The `primaryId` in the event message is the identity challenge resource, if known.
        The `secondaryId` in the event message is the `operationId` of the challenge, if known.
      x-apiture-version: 0.1.1
      x-apiture-event:
        type: identityChallengeInitiated
        category: authentication
        primaryId: the identity challenge resource, if known
        secondaryId: the `operationId` of the challenge, if known
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/identityChallengeEventFields'
      example:
        factor: sms
        channels:
          - '5555'
    accountApplicationPayloadFields:
      x-apiture-version: 1.1.0
      title: Account Application Payload Fields (v1.1.0)
      description: Account Application Payload Fields used to compose other schemas.
      type: object
      required:
        - product
        - customerType
        - newCustomer
      properties:
        product:
          $ref: '#/components/schemas/eventProductReference'
        customerType:
          $ref: '#/components/schemas/customerType'
        applicationType:
          $ref: '#/components/schemas/applicationType'
        newCustomer:
          description: '`true` if the applicant is a new financial institution customer/member.'
          type: boolean
        trackingId:
          description: An optional tracking ID which identifies the source of the new account application. This is also known as a Ref ID or Reference ID.
          $ref: '#/components/schemas/trackingId'
    accountApplicationAgentFields:
      title: Account Application Agent Fields (v1.0.0)
      description: Fragment schema used to define agent (caller) fields for Account Application events.
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/deviceIdField'
        - $ref: '#/components/schemas/browserUserAgentField'
      x-apiture-version: 1.0.0
    accountApplicationCreatedEventSchema:
      x-apiture-version: 1.3.0
      title: Account Application Created Event Schema (v1.3.0)
      description: |-
        Payload for account application created events, triggered when a customer creates a new account application or joint owner application. This event is quickly followed by an `accountApplicationStarted` event.
        This schema defines the `data` object for event messages with category `accountApplications` and event message type of `accountApplicationCreated`.
        The `primaryId` in the event message is the account application.
        The `secondaryId` in the event message is the banking product.
      x-apiture-event:
        type: accountApplicationCreated
        category: accountApplications
        primaryId: the account application
        secondaryId: the banking product
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/accountApplicationPayloadFields'
        - $ref: '#/components/schemas/accountApplicationAgentFields'
      example:
        product:
          type: savings
          code: SAV_003
        customerType: retail
        newCustomer: true
        trackingId: 29F093B9_E274A168-BE0385
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        deviceId: 9ba299c8aed474403707
    accountApplicationStartedEventSchema:
      x-apiture-version: 1.3.0
      title: Account Application Started Event Schema (v1.3.0)
      description: |-
        Payload for account application started events.
        This schema defines the `data` object for event messages with category `accountApplications` and event message type of `accountApplicationStarted`.
        The `primaryId` in the event message is the account application.
        The `secondaryId` in the event message is the banking product.
      x-apiture-event:
        type: accountApplicationStarted
        category: accountApplications
        primaryId: the account application
        secondaryId: the banking product
        trigger: the digital account opening system starts an account application or joint owner application. The system normally _starts_ the application immediately after the applicant creates an application.
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/accountApplicationPayloadFields'
        - $ref: '#/components/schemas/accountApplicationAgentFields'
      example:
        product:
          type: savings
          code: SAV_003
        customerType: retail
        newCustomer: true
        trackingId: 29F093B9_E274A168-BE0385
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        deviceId: 9ba299c8aed474403707
    accountApplicationBlockedEventSchema:
      x-apiture-version: 1.4.0
      title: Account Application Blocked Event Schema (v1.4.0)
      description: |-
        Payload for account application blocked events, triggered when the account application has become blocked waiting for the financial institution to review the application, or for the completion of some other external activity that prevents the applicant from proceeding with the application.
        This schema defines the `data` object for event messages with category `accountApplications` and event message type of `accountApplicationBlocked`.
        The `primaryId` in the event message is the account application.
        The `secondaryId` in the event message is the banking product.
      x-apiture-event:
        type: accountApplicationBlocked
        category: accountApplications
        primaryId: the account application
        secondaryId: the banking product
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/accountApplicationPayloadFields'
        - $ref: '#/components/schemas/accountApplicationAgentFields'
        - type: object
          properties:
            reviewReasons:
              description: A list of reasons that this application is blocked, awaiting review from financial institution staff.
              type: array
              minItems: 1
              maxItems: 21
              items:
                $ref: '#/components/schemas/accountApplicationReviewReason'
      example:
        product:
          type: savings
          code: SAV_003
        customerType: retail
        newCustomer: true
        trackingId: 29F093B9_E274A168-BE0385
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        deviceId: 9ba299c8aed474403707
        reviewReason:
          - identityVerification
          - charitableDonationsVerification
    accountApplicationReviewReason:
      x-apiture-version: 1.1.0
      title: Account Application Review Reason (v1.1.0)
      description: |+
        The reason the account application is being reviewed

        <strong><code>accountApplicationReviewReason</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>duplicateTaxIdNumber</code></strong></td><td>Duplicate Tax ID Number: <p>A duplicate Tax ID Number was recognized by the system</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>citizenshipVerification</code></strong></td><td>Citizenship Verification: <p>Applicant indicated that they are not a US citizen</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>foreignSeniorPoliticalFigure</code></strong></td><td>Foreign Senior Political Figure: <p>Applicant indicated that they are a foreign senior political figure</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>familyOfForeignSeniorPoliticalFigure</code></strong></td><td>Family of Foreign Senior Political Figure: <p>Applicant indicated that they are related to a foreign senior political figure</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>internetGamblingVerification</code></strong></td><td>Internet Gambling Verification: <p>Applicant indicated that the business accepts payments connected to Restricted Transactions, as outlined in the Unlawful Internet Gambling Enforcement Act of 2006</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>charitableDonationsVerification</code></strong></td><td>Charitable Donations Verification: <p>Applicant indicated that the business depends in whole or in part on charitable donations and voluntary service for support</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>marijuanaBusinessVerification</code></strong></td><td>Marijuana Business Verification: <p>Applicant indicated that the business is a marijuana related business</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>atmOperatorVerification</code></strong></td><td>ATM Operator Verification: <p>Applicant indicated that the business owns, operates, or replenishes ATMs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>usPermanentResident</code></strong></td><td>US Permanent Resident: <p>Applicant indicated that they are a US permanent resident without citizenship</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>secondaryAccountOpening</code></strong></td><td>Secondary Account Opening: <p>Applicant is opening a second business account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>documentRequirement</code></strong></td><td>Document Requirement: <p>The applicant uploaded a document that requires review as part of the customer review process (Customer Identification Program)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>identityVerification</code></strong></td><td>Identity Verification: <p>The applicant failed the automatic identity verification</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>businessVerification</code></strong></td><td>Business Verification: <p>The business failed the automatic verification</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>identityBeneficialOwnerVerification</code></strong></td><td>Identity Beneficial Owner Verification: <p>The beneficial owner identity could not be verified programmatically</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>microDepositAccountLinked</code></strong></td><td>Micro-Deposit Account Linked: <p>The external account was linked to the account via micro-deposit, which must clear before the the system can verify the external account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>instantAccountVerificationAccountLinked</code></strong></td><td>Instant Account Verification Account Linked: <p>The external account was linked to the account via instant account verification</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>accountVerification</code></strong></td><td>Account Verification: <p>The external account was flagged according to configured verification parameters</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>instantAccountVerificationAccountLinkedOwnerDataMismatch</code></strong></td><td>Instant Account Verification Account Linked Owner Data Mismatch: <p>The external account was linked to the account via instant account verification and was flagged according to configured verification parameters</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>inviteeDataMismatch</code></strong></td><td>Invitee Data Mismatch: <p>The data the invitee supplied does not match the data on the invitation</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>highRiskBankingPurpose</code></strong></td><td>High Risk Banking Purpose: <p>The banking purpose supplied by the user is high risk and must be manually approved</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>highRiskAccountPurpose</code></strong></td><td>High Risk Account Purpose: <p>The organization account purpose supplied by the user is high risk and must be manually approved</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: accountApplicationReviewReason
      type: string
      enum:
        - duplicateTaxIdNumber
        - citizenshipVerification
        - foreignSeniorPoliticalFigure
        - familyOfForeignSeniorPoliticalFigure
        - internetGamblingVerification
        - charitableDonationsVerification
        - marijuanaBusinessVerification
        - atmOperatorVerification
        - usPermanentResident
        - secondaryAccountOpening
        - documentRequirement
        - identityVerification
        - businessVerification
        - identityBeneficialOwnerVerification
        - microDepositAccountLinked
        - instantAccountVerificationAccountLinked
        - accountVerification
        - instantAccountVerificationAccountLinkedOwnerDataMismatch
        - inviteeDataMismatch
        - highRiskBankingPurpose
        - highRiskAccountPurpose
    accountApplicationCanceledEventSchema:
      x-apiture-version: 1.2.0
      title: Account Application Canceled Event Schema (v1.2.0)
      description: |-
        Payload for account application canceled events triggered when an applicant cancels a new account application or a joint owner application.
        This schema defines the `data` object for event messages with category `accountApplications` and event message type of `accountApplicationCanceled`.
        The `primaryId` in the event message is the account application.
        The `secondaryId` in the event message is the banking product.
      x-apiture-event:
        type: accountApplicationCanceled
        category: accountApplications
        primaryId: the account application
        secondaryId: the banking product
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/accountApplicationPayloadFields'
        - $ref: '#/components/schemas/accountApplicationAgentFields'
      example:
        product:
          type: savings
          code: SAV_003
        customerType: retail
        newCustomer: true
        trackingId: 29F093B9_E274A168-BE0385
        browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
        deviceId: 9ba299c8aed474403707
    accountApplicationApprovedEventSchema:
      x-apiture-version: 1.2.0
      title: Account Application Approved Event Schema (v1.2.0)
      description: |-
        Payload for account application approved events.
        This schema defines the `data` object for event messages with category `accountApplications` and event message type of `accountApplicationApproved`.
        The `primaryId` in the event message is the account application.
        The `secondaryId` in the event message is the banking product.
      x-apiture-event:
        type: accountApplicationApproved
        category: accountApplications
        primaryId: the account application
        secondaryId: the banking product
        trigger: ths digital account opening system or an agent at the financial institution approves a new account application
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/accountApplicationPayloadFields'
      example:
        product:
          type: savings
          code: SAV_003
        customerType: retail
        newCustomer: true
        trackingId: 29F093B9_E274A168-BE0385
    accountOwnerEntitledEventSchema:
      title: Account Ownership Entitled Event Schema (v0.2.0)
      description: |-
        Payload for event messages triggered when the system has granted a customer ownership entitlement of a banking account, including joint ownership.
        This schema defines the `data` object for event messages with category `entitlements` and event message type of `accountOwnerEntitled`.
        The `primaryId` in the event message is the banking account.
        The `secondaryId` in the event message is the joint owner application, if known.
      x-apiture-version: 0.2.0
      x-apiture-event:
        type: accountOwnerEntitled
        category: entitlements
        primaryId: the banking account
        secondaryId: the joint owner application, if known
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - type: object
          properties:
            account:
              $ref: '#/components/schemas/eventInternalAccountReference'
      example:
        account:
          id: a212d3c119148960683d
          maskedNumber: '*3210'
          type: checking
    externalAccountEntitledEventSchema:
      title: External Account Entitled Event Schema (v0.3.0)
      description: |-
        Payload for event messages triggered when the system has granted a customer entitlements to an external banking account.
        This schema defines the `data` object for event messages with category `entitlements` and event message type of `externalAccountEntitled`.
        The `primaryId` in the event message is the external banking account.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.3.0
      x-apiture-event:
        type: externalAccountEntitled
        category: entitlements
        primaryId: the external banking account
        secondaryId: the corresponding internal account application, if known
      type: object
      unevaluatedProperties: false
      required:
        - maskedNumber
        - routingNumber
        - verificationMethod
        - type
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/externalAccountVerificationEventFields'
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/productType'
      example:
        maskedNumber: '*3210'
        routingNumber: '123123123'
        verificationMethod: instant
        type: savings
    externalAccountVerificationBlockedEventSchema:
      title: External Account Verification Blocked Event Schema (v0.4.0)
      description: |-
        Payload for event messages triggered when micro-deposit account verification is blocked. Micro-deposits are blocked when waiting for the micro-deposit transactions to be recorded against the external account and for the banking customer to enter the micro-deposit values to verify account ownership.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountVerificationBlocked`.
        The `primaryId` in the event message is the external banking account, if known.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.4.0
      x-apiture-event:
        type: externalAccountVerificationBlocked
        category: externalAccounts
        primaryId: the external banking account, if known
        secondaryId: the corresponding internal account application, if known
      type: object
      required:
        - maskedNumber
        - routingNumber
        - verificationMethod
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/externalAccountVerificationEventFields'
      example:
        maskedNumber: '*6789'
        routingNumber: '123123123'
        verificationMethod: microDeposits
    externalAccountVerificationRemovedEventSchema:
      title: External Account Verification Blocked Event Schema (v0.4.0)
      description: |-
        Payload for event messages triggered when a customer removes a micro-deposit account verification. Micro-deposit verifications may be blocked waiting for the remote transactions to complete, and the user may cancel (remove) the verification.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountVerificationRemoved`.
        The `primaryId` in the event message is the external banking account, if known.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.4.0
      x-apiture-event:
        type: externalAccountVerificationRemoved
        category: externalAccounts
        primaryId: the external banking account, if known
        secondaryId: the corresponding internal account application, if known
      type: object
      required:
        - maskedNumber
        - routingNumber
        - verificationMethod
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/externalAccountVerificationEventFields'
      example:
        maskedNumber: '*6789'
        routingNumber: '123123123'
        verificationMethod: microDeposits
    externalAccountVerifiedEventSchema:
      title: External Account Verified Event Schema (v0.3.0)
      description: |-
        Payload for event messages triggered when a customer has successfully verified ownership of an external account.
        This schema defines the `data` object for event messages with category `externalAccounts` and event message type of `externalAccountVerified`.
        The `primaryId` in the event message is the external account resource.
        The `secondaryId` in the event message is the corresponding internal account application, if known.
      x-apiture-version: 0.3.0
      x-apiture-event:
        type: externalAccountVerified
        category: externalAccounts
        primaryId: the external account resource
        secondaryId: the corresponding internal account application, if known
      type: object
      required:
        - maskedNumber
        - routingNumber
        - verificationMethod
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/externalAccountVerificationEventFields'
      example:
        maskedNumber: '*6789'
        routingNumber: '123123123'
        verificationMethod: microDeposits
    businessTransferSettlementAccountReference:
      title: Business Transfer Settlement Account Reference (v1.0.0)
      description: Descriptive fields that identify a business transfer's internal settlement account.
      type: object
      required:
        - id
      properties:
        id:
          description: The account's unique, opaque resource ID.
          allOf:
            - $ref: '#/components/schemas/nullableReadOnlyResourceId'
        maskedNumber:
          description: The account number, masked for partial display.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/maskedAccountNumber'
        routingNumber:
          $ref: '#/components/schemas/accountRoutingNumber'
      example:
        id: bf23bc970b78d27691e
        maskedNumber: '*1008'
        routingNumber: '123123123'
      x-apiture-version: 1.0.0
    achPaymentBatchEventFields:
      x-apiture-version: 1.1.0
      title: ACH Payment Batch Event Fields (v1.1.0)
      description: Fields used to compose other ACH payment batch event payload schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The user-assigned name of this payment batch.
          type: string
          format: text
          maxLength: 10
          example: Payroll 03
        secCode:
          description: The SEC code for these ACH payments. This is derived from `type`.
          allOf:
            - $ref: '#/components/schemas/paymentBatchAchSecCode'
        direction:
          $ref: '#/components/schemas/paymentBatchDirection'
        schedule:
          $ref: '#/components/schemas/paymentBatchSchedule'
        customerId:
          description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
          $ref: '#/components/schemas/resourceId'
        settlementAccount:
          description: The account where the payment funds are drawn or credited.
          $ref: '#/components/schemas/businessTransferSettlementAccountReference'
        creditTotal:
          description: The total of all the payment credit amounts in this batch's payment instructions, expressed as a decimal value. These amounts are credits to the remote accounts and a debit to the settlement account. The total omits instructions where `hold` is `true`.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
          readOnly: true
          example: '2467.50'
        debitTotal:
          description: The total of all the payment debit amounts in this batch's payment instructions, expressed as a decimal value.  These amounts are debits to the remote accounts and a credit to the settlement account. The total omits instructions where `hold` is `true`.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
          readOnly: true
          example: '0.00'
        instructionCount:
          description: The number of ACH transfer instructions in the payment batch.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000
      example:
        name: Payroll-08
        secCode: ppd
        direction: credit
        schedule:
          scheduledOn: '2023-11-01'
          frequency: occasional
          effectiveOn: '2023-10-30'
        customerId: c656f2f586c81e68ddf6
        settlementAccount:
          id: bf23bc970b78d27691e
          maskedNumber: '*1008'
          routingNumber: '123123123'
        creditTotal: '92467.50'
        debitTotal: '0.00'
        instructionCount: 17
    achBatchPaymentSubmittedEventSchema:
      x-apiture-version: 1.3.0
      title: ACH Batch Payment Submitted (v1.3.0)
      description: |-
        Payload for ACH batch payment submitted events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentSubmitted`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentSubmitted
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: an ACH payment batch is submitted for approval
      type: object
      required:
        - name
        - secCode
        - schedule
        - creditTotal
        - debitTotal
        - instructionCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/achPaymentBatchEventFields'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
      example:
        name: Payroll-08
        secCode: ppd
        direction: credit
        schedule:
          scheduledOn: '2023-11-01'
          frequency: occasional
          effectiveOn: '2023-10-30'
        customerId: c656f2f586c81e68ddf6
        settlementAccount:
          id: bf23bc970b78d27691e
          maskedNumber: '*1008'
          routingNumber: '123123123'
        creditTotal: '92467.50'
        debitTotal: '0.00'
        instructionCount: 17
        trackingNumber: '3478721'
    businessTransferTrackingNumber:
      title: Business Transfer Tracking Number (v1.0.0)
      description: The Tracking Number for Business Transfers. This fragment schema is used to compose other schemas.
      x-apiture-fragment: true
      properties:
        trackingNumber:
          $ref: '#/components/schemas/paymentBatchTrackingNumber'
      example:
        trackingNumber: '3478721'
      x-apiture-version: 1.0.0
    achBatchPaymentApprovedEventSchema:
      x-apiture-version: 1.1.0
      title: ACH Batch Payment Approved (v1.1.0)
      description: |-
        Payload for ACH batch payment approved events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentApproved`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentApproved
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: an authorized approver has approved a ACH payment batch
      type: object
      required:
        - approvalCount
        - remainingApprovalsCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
        - type: object
          properties:
            approvalCount:
              description: The number of approvals given for the batch.
              type: integer
              format: int32
              minimum: 0
              maximum: 3
              readOnly: true
              $comment: The maximum here must match the maxItems in paymentBatch.approvals array
            remainingApprovalsCount:
              description: The number of the remaining approvals that are required before the batch can be scheduled. This property only applies if the `state` of the payment batch is `pendingApproval`.
              type: integer
              format: int32
              minimum: 0
              maximum: 3
              readOnly: true
            factor:
              $ref: '#/components/schemas/eventAuthenticationChallengeFactor'
      example:
        approvalCount: 1
        remainingApprovalsCount: 1
        factor: sms
        trackingNumber: '3478721'
    achBatchPaymentDeletedEventSchema:
      x-apiture-version: 1.0.0
      title: ACH Batch Payment Deleted (v1.0.0)
      description: |-
        Payload for ACH batch payment deleted events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentDeleted`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentDeleted
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: an authorized user deleted an ACH payment batch
      required:
        - name
        - secCode
        - creditTotal
        - debitTotal
        - instructionCount
      unevaluatedProperties: false
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/achPaymentBatchEventFields'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
      example:
        name: Payroll-08
        trackingNumber: '3478721'
        secCode: ppd
        direction: credit
        schedule:
          scheduledOn: '2023-11-01'
          frequency: occasional
          effectiveOn: '2023-10-30'
        customerId: c656f2f586c81e68ddf6
        settlementAccount:
          id: bf23bc970b78d27691e
          maskedNumber: '*1008'
          routingNumber: '123123123'
        creditTotal: '92467.50'
        debitTotal: '0.00'
        instructionCount: 17
    achBatchPaymentScheduledEventSchema:
      x-apiture-version: 1.3.0
      title: ACH Batch Payment Scheduled (v1.3.0)
      description: |-
        Payload for ACH batch payment scheduled events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentScheduled`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentScheduled
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: a fully-approved ACH payment batch is scheduled to be processed
      type: object
      required:
        - name
        - secCode
        - schedule
        - creditTotal
        - debitTotal
        - instructionCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/achPaymentBatchEventFields'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
      example:
        name: Payroll-08
        secCode: ppd
        direction: credit
        schedule:
          scheduledOn: '2023-11-01'
          frequency: occasional
          effectiveOn: '2023-10-30'
        customerId: c656f2f586c81e68ddf6
        settlementAccount:
          id: bf23bc970b78d27691e
          maskedNumber: '*1008'
          routingNumber: '123123123'
        creditTotal: '92467.50'
        debitTotal: '0.00'
        instructionCount: 17
        trackingNumber: '3478721'
    achBatchPaymentInitiatedEventSchema:
      x-apiture-version: 1.3.0
      title: ACH Batch Payment Initiated (v1.3.0)
      description: |-
        Payload for ACH batch payment initiated events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentInitiated`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentInitiated
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: processing of an ACH payment batch has started
      type: object
      required:
        - name
        - secCode
        - schedule
        - creditTotal
        - debitTotal
        - instructionCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/achPaymentBatchEventFields'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
      example:
        name: Payroll-08
        secCode: ppd
        direction: credit
        schedule:
          scheduledOn: '2023-11-01'
          frequency: occasional
          effectiveOn: '2023-10-30'
        customerId: c656f2f586c81e68ddf6
        settlementAccount:
          id: bf23bc970b78d27691e
          maskedNumber: '*1008'
          routingNumber: '123123123'
        creditTotal: '92467.50'
        debitTotal: '0.00'
        instructionCount: 17
        trackingNumber: '3478721'
    achBatchPaymentUnlockedEventSchema:
      x-apiture-version: 1.3.0
      title: ACH Batch Payment Unapproved (v1.3.0)
      description: |-
        Payload for ACH batch payment unlocked (unapproved) events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentUnlocked`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentUnlocked
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: an ACH payment batch is unlocked (unapproved)
      type: object
      required:
        - name
        - secCode
        - schedule
        - creditTotal
        - debitTotal
        - instructionCount
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/achPaymentBatchEventFields'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
      example:
        name: Payroll-08
        secCode: ppd
        direction: credit
        schedule:
          scheduledOn: '2023-11-01'
          frequency: occasional
          effectiveOn: '2023-10-30'
        customerId: c656f2f586c81e68ddf6
        settlementAccount:
          id: bf23bc970b78d27691e
          maskedNumber: '*1008'
          routingNumber: '123123123'
        creditTotal: '92467.50'
        debitTotal: '0.00'
        instructionCount: 17
        trackingNumber: '3478721'
    achBatchPaymentRejectedEventSchema:
      x-apiture-version: 1.1.0
      title: ACH Batch Payment Rejected (v1.1.0)
      description: |-
        Payload for ACH batch payment rejected events.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentRejected`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentRejected
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: an authorized approver rejects a ACH payment batch
      type: object
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
        - type: object
          properties:
            reason:
              description: The optional reason the customer is rejecting these batches.
              type: string
              maxLength: 80
              format: text
      example:
        reason: Terminated employee S. Hawkins still in payroll
        trackingNumber: '3478721'
    eventAchBatchReversalLevel:
      title: Event ACH Batch Reversal Level (v1.0.0)
      description: Indicates the level of reversal of an ACH payment batch.
      type: string
      enum:
        - partial
        - full
      x-apiture-version: 1.0.0
    achBatchPaymentReversedEventSchema:
      x-apiture-version: 1.2.0
      title: ACH Batch Payment Reversed (v1.2.0)
      description: |-
        Payload for ACH batch payment reversed events. The properties `reversalLevel`, `batchReversedCreditsCount`, `reversedCreditTotal`, `batchReversedDebitsCount`, and `reversedDebitTotal` are present for both partial and full reversals. The properties `reversedCreditsCount`, `reversedCreditAmount`, `reversedDebitsCount`, and `reversedDebitAmount` are present only on partial reversals.
        This schema defines the `data` object for event messages with category `businessAchTransfers` and event message type of `achBatchPaymentReversed`.
        The `primaryId` in the event message is the payment batch.
      x-apiture-event:
        type: achBatchPaymentReversed
        category: businessAchTransfers
        primaryId: the payment batch
        trigger: an ACH payment batch is partially or fully reversed
      type: object
      required:
        - reversalLevel
        - batchReversedCreditsCount
        - reversedCreditTotal
        - batchReversedDebitsCount
        - reversedDebitTotal
      unevaluatedProperties: false
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
        - $ref: '#/components/schemas/businessTransferTrackingNumber'
        - type: object
          properties:
            reversalLevel:
              $ref: '#/components/schemas/eventAchBatchReversalLevel'
            reversedCreditsCount:
              description: The number the credit transfer instructions that were reversed in this action.
              type: integer
              format: int32
              minimum: 0
              maximum: 1000
            batchReversedCreditsCount:
              description: The total number of reversed credit transfer instructions in the ACH batch.
              type: integer
              format: int32
              minimum: 0
              maximum: 1000
            reversedCreditAmount:
              description: The sum of the credit transfer instructions amounts that were reversed in this action, expressed as a decimal value.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              example: '2467.50'
            reversedCreditTotal:
              description: The total sum of the reversed credit transfer instructions amounts in the ACH batch, expressed as a decimal value.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              example: '2467.50'
            reversedDebitsCount:
              description: The number the debit transfer instructions that were reversed in this action.
              type: integer
              format: int32
              minimum: 0
              maximum: 1000
            batchReversedDebitsCount:
              description: The total number of reversed debit transfer instructions in the ACH batch.
              type: integer
              format: int32
              minimum: 0
              maximum: 1000
            reversedDebitAmount:
              description: The sum of the debit transfer instructions amounts that were reversed in this action, expressed as a decimal value.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              example: '2467.50'
            reversedDebitTotal:
              description: The total sum of the reversed debit transfer instructions amounts in the ACH batch, expressed as a decimal value.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              example: '2467.50'
      example:
        reversalLevel: partial
        batchReversedCreditsCount: 5
        reversedCreditAmount: '43970.10'
        reversedCreditTotal: '43970.10'
        reversedDebitsCount: 0
        batchReversedDebitsCount: 0
        reversedDebitAmount: '0.00'
        reversedDebitTotal: '0.00'
        trackingNumber: '3478721'
    eventProductReference:
      x-apiture-version: 1.1.0
      title: Product Reference (v1.1.0)
      description: A reference to a banking product.
      type: object
      required:
        - type
        - code
      properties:
        type:
          description: The type of account.
          $ref: '#/components/schemas/productType'
        code:
          description: The product's product code which uniquely identifies the product from other banking products. Codes are unique to the financial institution. For example, different products with the same `type` and the same `coreType` but different rates or other properties have different product codes, such as `CD3M`, `DDA_HI_YLD`, `P3207`.
          type: string
          format: text
          minLength: 1
          maxLength: 16
          example: CD001
      example:
        type: cd
        code: 180D_CDA
    userType:
      title: User Type (v1.0.0)
      description: Indicates the type of digital banking customer/member.
      type: string
      enum:
        - commercial
        - retail
      x-apiture-version: 1.0.0
    webhookHealthCheckEventSchema:
      x-apiture-version: 0.1.0
      title: Webhook Health Check Event Schema (v0.1.0)
      description: |-
        Schema for the `data` object for Webhook event health checks. This event does not convey any digital banking activity. The Apiture Digital Banking platform sends this event to test if a webhook service is active and healthy. A 200, 202, 204 or other 2XX response from the webhook service indicates it is healthy.
        This schema defines the `data` object for event messages with category `system` and event message type of `webhookHealthCheck`.
      x-apiture-event:
        type: webhookHealthCheck
        category: system
      allOf:
        - $ref: '#/components/schemas/abstractEventDataSchema'
      example: {}
    overdraftProtectionElectionUpdatedEventSchema:
      title: Overdraft Protection Election Updated Event Schema (v1.0.0)
      description: |-
        Schema for the `data` object for events created when a banking customer changes their primary and/or secondary overdraft protection elections. One or both of `primaryElection` or `secondaryElection` are present in all such events; `primaryElection` or `secondaryElection` are omitted if the banking customer did not change the corresponding election. The previous election value is the boolean negation of the updated election and is thus not part of the `data` object.
        This schema defines the `data` object for event messages with category `overdraftProtection` and event message type of `overdraftProtectionElectionUpdated`.
        The `primaryId` in the event message is the banking account.
      x-apiture-event:
        type: overdraftProtectionElectionUpdated
        category: overdraftProtection
        primaryId: the banking account
      type: object
      properties:
        primaryElection:
          description: The new primary overdraft protection plan election for this account. `true` means the customer opted-in; `false` means the customer opted out. Omitted if the customer did not change their primary overdraft protection plan election.
          type: boolean
        secondaryElection:
          description: The new secondary overdraft protection plan election for this account. `true` means the customer opted-in; `false` means the customer opted out. Omitted if the customer did not change their secondary overdraft protection plan election.
          type: boolean
      examples:
        - primaryElection: true
        - secondaryElection: false
        - primaryElection: true
          secondaryElection: true
      x-apiture-version: 1.0.0
    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
    dateTimeRange:
      title: Date Time Range (v1.0.0)
      description: |-
        A query parameter for selecting items in a date-time range. Filter the response to only items that fall in the range bounded by _start_ and _end_ date-times. The _start_ and _end_ values are either dates in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DD` date format, or date-times in `YYYY-MM-DDThh:mm:ss.sssZ` date-time format.

        For example

           * `[start,end]` between _start_ and _end_ date/times, inclusive of the endpoints
           * `(start,end)` between _start_ and _end_ date/times, exclusive of the endpoints
           * `(start,end]` between _start_ and _end_ date/times, exclusive of _start_ and inclusive of the _end_
           * `[start,end)` between _start_ and _end_ date/times, inclusive of _start_ and exclusive of the _end_
           * `YYYY-MM-DD` equivalent to `[YYYY-MM-DD,YYYY-MM-DD]`

        Dates without a time component are converted to UTC date-time values. If _start_ or _end_ are date values, then _start00_ is defined as time 00:00:00Z on the _start_ date, _start24_ is defined as 00:00AM of the day _after_ the _start_ date: _end00_ is defined as time 00:00:00Z on the _end_ date, _end24_ is defined as 00:00AM of the day _after_ the _end_ date:

          * `[start,end]` is the same as `[start00,end24)`
          * `(start,end]` is the same as `(start24,end24)`
          * `[start,end)` is the same as `[start00,end00)`
          * `(start,end)` is the same as `(start24,end00)`

        For example, the range `[2023-05-01,2023-06-01)` matches any day/time in May 2023 and is equivalent to `[2023-05-01T00:00:00.00Z,2023-06-01T00:00:00.00Z)`.
      type: string
      format: text
      pattern: ^((\d{4}-\d{2}-\d{2})|([[(](((\d{4}-\d{2}-\d{2}([Tt]\d{2}:\d{2}:\d{2}(.\d{1,6})?[Zz])?),(\d{4}-\d{2}-\d{2}([Tt]\d{2}:\d{2}:\d{2}(.\d{1,6})?[Zz])?)?)|(,(\d{4}-\d{2}-\d{2}([Tt]\d{2}:\d{2}:\d{2}(.\d{1,6})?[Zz])?)))[)\]]))$
      minLength: 10
      maxLength: 63
      examples:
        - '[2023-04-28T00:00:00Z,]'
        - '[2023-04-28,2023-04-30]'
        - '[2023-04-28T10:10:10.10Z,2023-04-28T10:10:10.10Z]'
        - '[,2023-04-28T10:10:10.10Z]'
        - (2023-04-28T10:10:10.10Z,2023-04-28T20:20:10.10Z)
        - (2023-04-28T10:10:10.10Z,2023-04-28)
        - '[2023-04-28,2023-04-28T20:20:10.10Z)'
        - (2023-04-28T10:10:10.10Z,2023-04-28T20:20:10.10Z]
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/dateTimeRange
      x-apiture-version: 1.0.0
    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
    entityTag:
      title: Entity Tag (v1.0.0)
      description: An strong or weak [HTTP Entity Tag (ETag)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag). Strong ETags take the form `"{printable-non-control-ASCII-characters}"` but for backwards compatibility the surrounding double quotes are optional. Weak ETags take the form `W/"{printable-non-control-ASCII-characters}"`.
      type: string
      minLength: 3
      maxLength: 512
      pattern: ^(([\x21\x23-\x7e]{1,512})|(W\/\"[\x21\x23-\x7e]{1,509}\"))$
      example: W/"325cf1cc-e370-4baf-8faf-c6db23f195a2"
      x-apiture-version: 1.0.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/entityTag
    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
    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
    timestamp:
      title: Timestamp (v1.0.0)
      description: A timestamp (an instant in time) formatted in `YYYY-MM-DDThh:mm:ss.sssZ` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format.
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/timestamp
      x-apiture-version: 1.0.0
    institutionId:
      x-apiture-version: 1.1.0
      title: Institution ID (v1.1.0)
      description: The unique immutable identifier of a financial institution.
      type: string
      pattern: ^[A-Z0-9_]{2,8}$
      maxLength: 8
      minLength: 2
      example: TIBURON
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/institutionId
    coreCustomerId:
      x-apiture-version: 1.1.0
      title: Core Customer Id (v1.1.0)
      description: The unique ID of the customer/member in the banking core.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]{1,48}$
      minLength: 1
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/coreCustomerId
    maskedAccountNumber:
      x-apiture-version: 1.0.1
      title: Masked Account Number (v1.0.1)
      description: 'A masked account number: an asterisk `*` followed by one to four characters of the `fullAccountNumber`.'
      type: string
      minLength: 2
      maxLength: 5
      pattern: ^\*[- _a-zA-Z0-9.]{1,4}$
      examples:
        - '*1008'
        - '*0005'
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/maskedAccountNumber
    accountRoutingNumber:
      title: Account Routing Number (v1.0.0)
      description: An account ABA routing and transit number.
      type: string
      minLength: 9
      maxLength: 9
      pattern: ^[0-9]{9}$
      example: '123123123'
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/accountRoutingNumber
      x-apiture-version: 1.0.0
    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
    transferFrequency:
      title: Transfer Frequency (v1.0.0)
      description: |+
        For recurring transfers, the interval at which the money movement recurs.

        <strong><code>transferFrequency</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>Transfer does not repeat</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>occasional</code></strong></td><td>Occasional: <p>Transfer recurs but without a new scheduled date</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>daily</code></strong></td><td>Daily: <p>Repeat daily on business days</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>weekly</code></strong></td><td>Weekly: <p>Repeat weekly</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>biweekly</code></strong></td><td>biweekly: <p>Repeat every two weeks (26 times a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>semimonthly</code></strong></td><td>Semimonthly: <p>Repeat twice a month (24 times a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>monthly</code></strong></td><td>Monthly: <p>Repeat monthly</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>monthlyFirstDay</code></strong></td><td>Monthly First Day: <p>Repeat on the first business day of the month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>monthlyLastDay</code></strong></td><td>Monthly Last Day: <p>Repeat on the last business day of the month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>bimonthly</code></strong></td><td>Bimonthly: <p>Repeat every other month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>quarterly</code></strong></td><td>Quarterly: <p>Repeat quarterly (four times a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>semiyearly</code></strong></td><td>Semiyearly: <p>Repeat every six months (twice a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>yearly</code></strong></td><td>Yearly: <p>Repeat once every year</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferFrequency
      enum:
        - once
        - occasional
        - daily
        - weekly
        - biweekly
        - semimonthly
        - monthly
        - monthlyFirstDay
        - monthlyLastDay
        - bimonthly
        - quarterly
        - semiyearly
        - yearly
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/transferFrequency
      x-apiture-version: 1.0.0
    institutionLocatorType:
      x-apiture-version: 2.0.0
      title: Institution Locator Type (v2.0.0)
      description: |+
        Indicates the type of the institution `locator`.

        <strong><code>institutionLocatorType</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>abaRoutingNumber</code></strong></td><td>ABA Routing Number: <p>The <a href="https://www.aba.com/about-us/routing-number">American Bankers Association routing number</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>swiftBicCode</code></strong></td><td>swiftBicCode: <p>The <a href="https://www.swift.com/standards/data-standards/bic-business-identifier-code">SWIFT Business Identifier Code (BIC) code</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A financial institution identifier other than ABA Routing Number or SWIFT Business Identifier Code (BIC)</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: institutionLocatorType
      type: string
      enum:
        - abaRoutingNumber
        - swiftBicCode
        - other
      x-resolved-from: ../../institutions/openapi.yaml#/components/schemas/institutionLocatorType
    wireTransferPaymentScope:
      title: Wire Transfer Payment Scope (v1.0.0)
      description: |+
        Indicates if the wire transfer is a `domestic` wire or an `international` wire.

        <strong><code>wireTransferPaymentScope</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>domestic</code></strong></td><td>Domestic: <p>A wire transfer in which both the sender and beneficiary (recipient) financial institutions are in the US.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>international</code></strong></td><td>International: <p>A wire transfer in which the beneficiary (recipient) financial institution is not in the US.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: wireTransferPaymentScope
      enum:
        - domestic
        - international
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/wireTransferPaymentScope
      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
    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
    phoneNumberType:
      title: Phone Number Type (v1.0.0)
      description: |+
        Describes the type of a banking customer's phone number.

        <strong><code>phoneNumberType</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 user&#39;s primary phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>secondary</code></strong></td><td>Secondary: <p>The user&#39;s secondary phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>mobile</code></strong></td><td>Mobile: <p>The user&#39;s mobile phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>fax</code></strong></td><td>fax: <p>The user&#39;s fax phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>alternate</code></strong></td><td>Alternate: <p>The user&#39;s alternate phone number</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: phoneNumberType
      enum:
        - primary
        - secondary
        - mobile
        - fax
        - alternate
      x-resolved-from: ../../customers/openapi.yaml#/components/schemas/phoneNumberType
      x-apiture-version: 1.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
    institutionName:
      title: Institution Name (v1.0.0)
      description: A financial institution's name.
      type: string
      format: text
      minLength: 2
      maxLength: 128
      x-resolved-from: ../../institutions/openapi.yaml#/components/schemas/institutionName
      x-apiture-version: 1.0.0
    externalAccountVerificationMethod:
      x-apiture-version: 1.1.0
      title: External Account Verification Method (v1.1.0)
      description: |+
        The method used to verify the customer has access to the external account.

        <strong><code>externalAccountVerificationMethod</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>instant</code></strong></td><td>Instant Account Verification: <p>Access to the external account is verified via integration with an account verification service provider.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>microDeposits</code></strong></td><td>Micro-Deposits: <p>Access to the external account is verified via verifying a set of micro-deposits.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>manual</code></strong></td><td>Manual: <p>Access to the external account is verified manually by the financial institution.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: externalAccountVerificationMethod
      enum:
        - instant
        - microDeposits
        - manual
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/externalAccountVerificationMethod
    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
    customerType:
      title: Customer Type (v1.0.0)
      description: Indicates the type of digital banking customer/member.
      type: string
      enum:
        - commercial
        - retail
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/customerType
      x-apiture-version: 1.0.0
    applicationType:
      title: Application Type (v1.0.0)
      description: |+
        The type of an application.

        <strong><code>applicationType</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>newAccount</code></strong></td><td>New Account: <p>An application for a new banking account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>jointOwner</code></strong></td><td>Joint Owner: <p>An application to accept a joint owner invitation to an existing account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: applicationType
      enum:
        - newAccount
        - jointOwner
      x-resolved-from: ../../applications/openapi.yaml#/components/schemas/applicationType
      x-apiture-version: 1.0.0
    trackingId:
      x-apiture-version: 1.1.0
      description: A unique tracking ID string.
      type: string
      format: text
      minLength: 1
      maxLength: 256
      pattern: ^[-a-zA-Z0-9.,-~=_+:;@$]{1,256}$
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/trackingId
      title: ' (v1.1.0)'
    nullableReadOnlyResourceId:
      title: Nullable Read-only Resource Identifier (v1.0.0)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is used in properties that reference a resource by ID rather than URL. This can be used in patch operations to detach a resource. Resource IDs are immutable.
      readOnly: true
      allOf:
        - $ref: '#/components/schemas/nullableResourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/nullableReadOnlyResourceId
      x-apiture-version: 1.0.0
    paymentBatchAchSecCode:
      x-apiture-version: 1.0.1
      title: ACH Payment (v1.0.1)
      description: The Standard Entry Class (SEC) code that denotes the ACH payment authorization type.
      allOf:
        - $ref: '#/components/schemas/achSecCode'
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/paymentBatchAchSecCode
    paymentBatchDirection:
      title: Batch Payment Direction (v1.0.0)
      description: |+
        Indicates the direction of money flow for a payment batch.

        <strong><code>paymentBatchDirection</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>none</code></strong></td><td>None: <p>No payment instructions to determine direction</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>credit</code></strong></td><td>credit: <p>Payments are credit in the external accounts, debit to the settlement account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>debit</code></strong></td><td>debit: <p>Payments are debits in the external accounts, credit to the settlement account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>both</code></strong></td><td>both: <p>Payment instructions include both debits and credits</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchDirection
      enum:
        - none
        - credit
        - debit
        - both
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/paymentBatchDirection
      x-apiture-version: 1.0.0
    paymentBatchSchedule:
      x-apiture-version: 1.3.2
      title: Payment Batch Schedule (v1.3.2)
      description: |-
        The scheduled date when the payment should be completed, the recurrence, if any, and other derived dates based on the scheduled date.

        If the payment is a NACHA pass-through, the schedule is read-only and reflects the earliest `scheduledOn` and `effectiveOn` dates from the NACHA file with a recurrenceType of `once`.
      type: object
      properties:
        recurrenceType:
          $ref: '#/components/schemas/paymentRecurrenceType'
        scheduledOn:
          description: The payment's target completion date, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. For recurring batches, this date get recalculated after each recurrence is processed.
          $ref: '#/components/schemas/date'
        frequency:
          $ref: '#/components/schemas/paymentFrequency'
        endsOn:
          description: The optional date when the recurring batch schedule ends, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. Subsequent recurring payments may be scheduled up to and including this date, but not after. This property is omitted if `frequency` is `once`.
          $ref: '#/components/schemas/date'
        effectiveOn:
          description: The target date when the batch payment or draft should be processed, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. This is derived from the `scheduledOn` date. For recurring batches, this date get recalculated after each recurrence is processed.
          $ref: '#/components/schemas/date'
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/paymentBatchSchedule
    paymentBatchTrackingNumber:
      title: Payment Batch Tracking Number (v1.0.0)
      readOnly: true
      description: A unique tracking number for this batch. Unlike the `id`, this numeric value is visible to the customer, and can be used to lookup a batch by this ID.
      type: string
      pattern: ^[0-9]+$
      minLength: 6
      maxLength: 9
      example: '15474162'
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/paymentBatchTrackingNumber
      x-apiture-version: 1.0.0
    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
    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
    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
    nullableResourceId:
      title: Nullable Resource Identifier (v1.0.0)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is used in properties that reference a resource by ID rather than URL. This can be used in patch operations to detach a resource.
      type:
        - string
        - 'null'
      pattern: ^[-_:.~$a-zA-Z0-9]+$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/nullableResourceId
      x-apiture-version: 1.0.0
    achSecCode:
      title: ACH SEC Code (v1.0.0)
      description: |+
        The ACH transfer type.

        <strong><code>achSecCode</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>arc</code></strong></td><td>Accounts Receivable</td>
            </tr>
        <tr>
            <td><strong><code>boc</code></strong></td><td>Back Office Conversion</td>
            </tr>
        <tr>
            <td><strong><code>ccd</code></strong></td><td>Credit or Debit</td>
            </tr>
        <tr>
            <td><strong><code>cie</code></strong></td><td>Customer-Initiated</td>
            </tr>
        <tr>
            <td><strong><code>ctx</code></strong></td><td>Corporate Trade Exchange</td>
            </tr>
        <tr>
            <td><strong><code>pop</code></strong></td><td>Point of Purchase</td>
            </tr>
        <tr>
            <td><strong><code>ppd</code></strong></td><td>Prearranged Payment and Deposit</td>
            </tr>
        <tr>
            <td><strong><code>rck</code></strong></td><td>Re-Presented Check</td>
            </tr>
        <tr>
            <td><strong><code>tel</code></strong></td><td>Telephone-initiated</td>
            </tr>
        <tr>
            <td><strong><code>web</code></strong></td><td>Internet-initiated/Mobile</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achSecCode
      enum:
        - arc
        - boc
        - ccd
        - cie
        - ctx
        - pop
        - ppd
        - rck
        - tel
        - web
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/achSecCode
      x-apiture-version: 1.0.0
    paymentRecurrenceType:
      x-apiture-version: 1.1.0
      title: Payment Recurrence Type (v1.1.0)
      description: |+
        Describes whether the payment instruction amounts in the batch vary or are fixed when the payment recurs. This is ignored if the payment frequency is `once`.

        <strong><code>paymentRecurrenceType</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>fixed</code></strong></td><td>Fixed: <p>The payment amounts are the same each time a payment recurs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>variable</code></strong></td><td>Variable: <p>The payment amounts vary and must be entered/verified each time a payment recurs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>automaticallyRecur</code></strong></td><td>Automatically Recur: <p>The payment batch will automatically recur after processing (but with no scheduled date)</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentRecurrenceType
      enum:
        - fixed
        - variable
        - automaticallyRecur
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/paymentRecurrenceType
    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
    paymentFrequency:
      x-apiture-version: 1.1.1
      title: Payment Frequency (v1.1.1)
      description: For recurring payments and drafts, the interval at which the money movement recurs.
      allOf:
        - $ref: '#/components/schemas/transferFrequency'
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/paymentFrequency
    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
    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
    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
  x-apiture-errors:
    invalidOccurredAtRange:
      description: The `ocurredAt` parameter is not a valid range of dates/time values.
      remediation: Use valid `YYYY-MM-DD` or `YYYY-MM-DDThh:mm:ss.ssZ` values and proper delimiters.
    invalidWatermark:
      description: The `watermark` parameter is invalid.
      remediation: Use only `watermark` values returned from a previous call's response.
    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
    tooManyRequests:
      description: The client has sent too many requests in a given amount of time, exceeding rate limiting.
      remediation: Slow down the rate of API calls.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/tooManyRequests
    forbidden:
      description: The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
      remediation: Check the user's permissions and entitlements before attempting the operation.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/forbidden
  responses:
    '304':
      description: Not Modified. The resource has not been modified since it was last fetched.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/304
    '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
    '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
    clientCredentials403:
      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.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/clientCredentials403
    4XX:
      description: Client Request Problem. The client request had a problem not listed under another specific 400-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/4XX
    5XX:
      description: Server Problem. The server encountered a problem not listed under another specific 500-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/5XX
  headers:
    ETag:
      description: The value of this resource's _entity tag_, to be passed with `If-Match` and `If-None-Match` request headers in other conditional API calls for this resource.
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/headers/ETag
x-apiture-traits:
  - singleton:
      name: event history
      immutable: true
  - singleton:
      name: recent event history
      immutable: true
  - security:
      baseScope: bankingAdmin
x-resolved-from: ../../adminEvents/status-codes-openapi.yaml
x-resolved-at: '2024-12-09T22:06:02.633Z'
x-apiture-annotated-at: '2024-12-09T22:06:02.969Z'
