openapi: 3.0.0
info:
  contact:
    name: MX Platform API
    url: https://www.mx.com/products/platform-api
  description: >
    The MX Platform API is a powerful, fully-featured API designed to make
    aggregating and enhancing financial data easy and reliable. It can
    seamlessly connect your app or website to tens of thousands of financial
    institutions.


    ## What's Changed?


    Several endpoints, headers, and fields changed in `v20250224`. For more on
    breaking changes, refer to our
    [versioning](/api-reference/platform-api/overview/versioning#v20250224) and
    [migration](/api-reference/platform-api/overview/migration) guides.


    ## Version Header

    Versions are set in the `Accept-Version` header of API requests. Version
    numbers correspond with the date associated with that version.  The example
    below uses the version `v20250224`.


    ```

    -H 'Accept: application/json'

    -H 'Accept-Version: v20250224'

    ```


    ---
  title: MX Platform API
  version: '20250224'
servers:
  - url: https://int-api.mx.com
  - url: https://api.mx.com
security:
  - basicAuth: []
tags:
  - name: authorization
  - name: accounts
    description: >
      The Accounts endpoints represent a user's checking, savings, mortgage,
      401(k), or other types of accounts held by a financial institution.


      An account belongs to a `member`, which represents the user's overall
      relationship with a particular financial institution. A checking account
      may be just one part of a larger relationship that could also include a
      car loan and a savings account.


      Accounts—and the transactions associated with them—are updated every 24
      hours, unless the associated `user` is disabled.


      You can also create manual accounts. Since a manual account has no
      credentials tied to the member, the account will never aggregate or
      include data from a data feed. All manual accounts are automatically
      created under the Manual Institution member.
  - name: ach return
    description: >
      The features documented here are in a beta state, and this documentation
      is considered draft material subject to frequent change.


      Using our Platform API, you can securely submit ACH Returns to reduce your
      ACH return rates and automate your ACH return process.


      You can query the status and outcomes of your submitted ACH returns to
      track progress and access resolution details.
  - name: budgets
    description: >
      Use these endpoints to create and manage budgets for your end users.


      You can create a budget for a specific category or autogenerate a budget
      for several categories based on existing transactions.


      Each budget has a `category_guid`, relating to one of the
      [categories](docs.mx.com/api-reference/platform-api/reference/categories#default-categories-and-subcategories).
  - name: categories
    description: >
      A `transaction` can have its `category` set to one of MX’s default
      categories or a custom category for a specific `user`. 


      See [Default Categories and
      Subcategories](docs.mx.com/api-reference/platform-api/reference/categories#default-categories-and-subcategories)
      for a complete list.
  - name: deprecated
  - name: goals
    description: >
      Use these endpoints to create and manage goals for a `user`. You can also
      reposition goals to adjust their priority levels.


      Every goal has a track type and a meta type.


      The [track
      type](docs.mx.com/api-reference/platform-api/reference/goals/#goal-track-type)
      is the overall classification of the goal (debt, savings, retirement, or
      emergency fund) while the [meta
      type](docs.mx.com/api-reference/platform-api/reference/goals/#goal-meta-type)
      is the specific classification (like college, house, vacation, and so on).
  - name: insights
    description: >
      Use these endpoints to build customizable user experiences in UIs powered
      by our Financial Insights data.


      With Financial Insights, your users will receive personalized insights
      based on their transaction history.


      Want to learn more about the product? See [Financial
      Insights](docs.mx.com/products/experience/insights).


      Looking for a guide to use these endpoints? See [Build Your Own Insights
      UI](docs.mx.com/products/experience/insights/integration-guides/insights-api-guide).
  - name: institutions
    description: >
      Institutions represent a financial institution.


      A single real-world financial institution may have several `institution`
      objects on the MX platform.


      For example, the mortgage division of a financial institution might use a
      separate system than its everyday banking division, which is different
      from its credit card division.


      For more info, see [Institutions
      Overview](docs.mx.com/api-reference/reference/institutions).
  - name: investment holdings
    description: >
      Investment Data Enhancement lets you connect to an end user's financial
      institution and retrieve cleansed and enhanced investment data. By
      combining investment data with retail banking information, you get
      comprehensive insights into customer financial behaviors, risk tolerance,
      and investment strategies.


      You can [read a user's
      holding](docs.mx.com/api-reference/platform-api/reference/read-holding),
      [list all their
      holdings](docs.mx.com/api-reference/platform-api/reference/list-holdings),
      or list their holdings by
      [account](docs.mx.com/api-reference/platform-api/reference/list-holdings-by-account)
      or
      [member](docs.mx.com/api-reference/platform-api/reference/list-holdings-by-member).


      You can also [deactivate a
      user](docs.mx.com/api-reference/platform-api/reference/deactivate-user)
      from the Investment Data Enhancement. This is non-billable.
  - name: managed data
  - name: members
    description: >
      Members represent the connection between an end user and a financial
      institution. This institution may represent your institution or another
      one from which MX is aggregating data.


      For more info, see [Members
      Overview](docs.mx.com/api-reference/reference/members).
  - name: merchants
    description: >
      Merchants are representations of a transaction’s origin. For example, if
      you buy a coffee at Starbucks, the transaction merchant will be
      `Starbucks`.


      Use the `merchant_guid` and a `merchant_location_guidon` any `transaction`
      object to access Merchant endpoints for details like the merchant’s name,
      logo URL, website, street address, and more.
  - name: microdeposits
    description: >
      Microdeposits is an additional verification method that allows you to
      verify account details and navigate the process of using microdeposits and
      the automated clearing house (ACH) system. 


      Make two, small ACH deposits into a consumer's account using the provided
      account and routing number. You can then require that the end user confirm
      the exact amount of each deposit to verify that they own the account and
      meet NACHA’s account verification.


      For more info, including process flows, setting block lists, and more, see
      [Microdeposits](docs.mx.com/products/connectivity/microdeposits).
  - name: monthly cash flow profile
  - name: notifications
    description: >
      You can only use notifications endpoints if you’re using the MX mobile
      application.


      All notifications created through the API will be of notification type
      `API_NOTIFICATION`, channel `PUSH`, and will not be associated to an
      entity. No other channels are supported.


      The read and list endpoints can return any notification associated with
      the `user`, including notifications created by MX for other channels
      besides `PUSH`.
  - name: processor token
  - name: rewards
  - name: spending plan
    description: >
      Use the Spending Plan endpoints to create your own version of our
      [Spending Plan
      Widget](docs.mx.com/products/experience/pfm/legacy-widget-overviews/spending-plan),
      which helps end users track their spending throughout the month.


      To understand key terms and how to best use these endpoints, see [Build
      Your Own Spending Plan
      UI](docs.mx.com/products/experience/pfm/integration-guides/build-your-own-spending-plan-ui).
  - name: statements
    description: >
      With Statements, you can retrieve a user's monthly account statements in
      PDF format. This data can be used for solutions like personal financial
      management or risk analysis.
  - name: taggings
    description: >
      Tags and taggings are two resources in the MX Platform API that, when used
      together, give end users more control over organizing their transactions. 


      A tag is a custom label that can be applied to a transaction.


      After you create a tag, use it for tagging. This means you should actually
      apply the tag to a particular transaction.


      Together, they're a powerful tool for personalization, customization, and
      money management.


      For a guide on creating a tag and then applying it to a specific
      transaction with a tagging, see [Custom Tags and
      Taggings](docs.mx.com/products/experience/pfm/integration-guides/personalization/).
  - name: tags
    description: >
      Tags and taggings are two resources in the MX Platform API that, when used
      together, give end users more control over organizing their transactions. 


      A tag is a custom label that can be applied to a transaction.


      After you create a tag, use it for tagging. This means you should actually
      apply the tag to a particular transaction.


      Together, they're a powerful tool for personalization, customization, and
      money management.


      For a guide on creating a tag and then applying it to a specific
      transaction with a tagging, see [Custom Tags and
      Taggings](docs.mx.com/products/experience/pfm/integration-guides/personalization/).
  - name: transaction rules
    description: >
      Transaction Rules allow users to automatically recategorize or rename all
      similar transactions according to their preferences. This only applies to
      future transactions.


      When recategorizing or renaming a transaction, the user will be asked
      whether they want the new data to apply to the selected transaction or to
      all future transactions. If they choose to apply it to all future
      transactions, it will create a transaction rule which will automatically
      apply the changes going forward.
  - name: transactions
    description: >
      Transactions represent any instance in which money moves into or out of an
      account. This could be a purchase at a business, a payroll deposit, a
      transfer from one account to another, an ATM withdrawal, and so on.


      Transactions are created automatically when a member is successfully
      aggregated.


      Each `transaction` belongs to only one `account`.


      For more info, see [Transactions
      Overview](docs.mx.com/api-reference/reference/transactions).
  - name: users
    description: >
      Users represent an end user using the Platform API through your web or
      mobile app.


      Users are created by MX clients and belong to a specific
      [client](docs.mx.com/products/connectivity/overview/data-architecture/#clients)
      on the platform.
  - name: verifiable credentials
    description: >
      MX provides Verifiable Credential endpoints that comply with web5
      standards. 


      For more info, see [Verifiable Credentials
      Overview](docs.mx.com/api-reference/reference/verifiable-credentials).
  - name: widgets
    description: >
      Use the [Request Widget
      URL](docs.mx.com/api-reference/platform-api/reference/request-widget-url)
      endpoint to generate a URL that loads one of our widgets.


      Many request body parameters only work for some widgets.


      For more info, including widget types, see [Widgets
      Overview](docs.mx.com/api-reference/reference/widgets).
paths:
  /authorization_code:
    post:
      description: >-
        Clients use this endpoint to request an authorization code according to
        the parameters specified in the scope. Clients then pass this code to
        processors. Processor access is scoped only to the GUIDs and features
        specified in this request. Before requesting an authorization code which
        includes a member in the scope, clients must have verified that member.
      operationId: requestAuthorizationCode
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationCodeRequestBody'
        description: The scope for the authorization code.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationCodeResponseBody'
          description: OK
      summary: Request an authorization code
      tags:
        - processor token
  /ach_returns/{ach_return_guid}:
    get:
      description: |
        Use this endpoint to get an ACH return by its `guid` or `id`.
      operationId: readACHRetrun
      parameters:
        - $ref: '#/components/parameters/achReturnGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACHReturnResponseBody'
          description: OK
      summary: Read ACH Return
      tags:
        - ach return
  /ach_returns:
    get:
      description: |
        Use this endpoint to get all ACH returns.
      operationId: listACHRetruns
      parameters:
        - $ref: '#/components/parameters/institutionGuid'
        - $ref: '#/components/parameters/returnedAt'
        - $ref: '#/components/parameters/resolvedStatusAt'
        - $ref: '#/components/parameters/returnCode'
        - $ref: '#/components/parameters/returnStatus'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACHReturnsResponseBody'
          description: OK
      summary: List ACH Returns
      tags:
        - ach return
    post:
      description: |
        Use this endpoint to create an ACH return in our system.
      operationId: createACHReturn
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ACHReturnCreateRequestBody'
        description: ACH return object to be created.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACHReturnResponseBody'
          description: OK
      summary: Create ACH Return
      tags:
        - ach return
  /categories/default:
    get:
      description: >-
        Use this endpoint to retrieve a list of all the default categories and
        subcategories offered within the MX Platform API. In other words, each
        item in the returned list will have its `is_default` field set to
        `true`. There are currently 119 default categories and subcategories.
        Both the _list default categories_ and _list default categories by user_
        endpoints return the same results. The different routes are provided for
        convenience.
      operationId: listDefaultCategories
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesResponseBody'
          description: OK
      summary: List default categories
      tags:
        - categories
  /categories/{category_guid}:
    get:
      description: Use this endpoint to read the attributes of a default category.
      operationId: readDefaultCategory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/categoryGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Read a default category
      tags:
        - categories
  /institutions:
    get:
      description: >-
        Lists financial institutions available through the MX platform. This
        endpoint has been updated in `v20250224` to enhance search and filtering
        capabilities based on the products supported by each institution.
      operationId: listInstitutions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/institutionName'
        - $ref: '#/components/parameters/isoCountryCode'
        - $ref: '#/components/parameters/includeBlockedInstitutions'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/supportedProducts'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstitutionsResponseBody'
          description: OK
      summary: List institutions
      tags:
        - institutions
  /institutions/favorites:
    get:
      description: >-
        This endpoint returns a paginated list containing institutions that have
        been set as favorites, sorted by popularity. Please contact MX to set a
        list of favorites.
      operationId: listFavoriteInstitutions
      parameters:
        - $ref: '#/components/parameters/isoCountryCode'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstitutionsResponseBody'
          description: OK
      summary: List favorite institutions
      tags:
        - institutions
  /institutions/{institution_code}:
    get:
      description: >-
        This endpoint returns information about the institution specified by
        `institution_code`. The `v20250224` update enhances the granularity of
        the information provided about the services and products supported by
        the institution.
      operationId: readInstitution
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/institutionCode'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstitutionResponseBody'
          description: OK
      summary: Read institution
      tags:
        - institutions
  /institutions/{institution_identifier}/credentials:
    get:
      description: >
        Use this endpoint to see which credentials will be needed to create a
        member for a specific institution.


        Passing an invalid `institution_identifier` returns a `404`.
      operationId: listInstitutionCredentials
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/institutionIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialsResponseBody'
          description: OK
      summary: List institution credentials
      tags:
        - institutions
  /managed_institutions:
    get:
      description: >
        This endpoint returns a list of institutions which can be used to create
        partner-managed members.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration)

        </Warning>
      operationId: listManagedInstitutions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstitutionsResponseBody'
          description: OK
      summary: List managed institutions
      tags:
        - managed data [deprecated]
      deprecated: true
  /merchant_locations/{merchant_location_guid}:
    get:
      description: >-
        This endpoint returns the specified `merchant_location` resource. The
        `merchant_location_guid` can be found on `transaction` objects.
      operationId: readMerchantLocation
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/merchantLocationGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantLocationResponseBody'
          description: OK
      summary: Read merchant location
      tags:
        - merchants
  /merchants:
    get:
      description: >-
        This endpoint returns a paginated list of all the merchants in the MX
        system.
      operationId: listMerchants
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/merchantName'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantsResponseBody'
          description: OK
      summary: List merchants
      tags:
        - merchants
  /merchants/{merchant_guid}:
    get:
      description: >-
        Returns information about a particular merchant, such as a logo, name,
        and website.
      operationId: readMerchant
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/merchantGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantResponseBody'
          description: OK
      summary: Read merchant
      tags:
        - merchants
  /transactions/enhance:
    post:
      description: >-
        Use this endpoint to categorize, cleanse, and classify transactions.
        These transactions are not  persisted or stored on the MX platform. <br
        /><br />For more information on returned data, please  see the [Enhanced
        Transactions fields
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions).
      operationId: enhanceTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnhanceTransactionsRequestBody'
        description: Transaction object to be enhanced
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhanceTransactionsResponseBody'
          description: OK
      summary: Enhance transactions
      tags:
        - transactions
  /users:
    get:
      description: >-
        Use this endpoint to list every user you've created in the MX Platform
        API.
      operationId: listUsers
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userId'
        - $ref: '#/components/parameters/userEmail'
        - $ref: '#/components/parameters/userIsDisabled'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsersResponseBody'
          description: OK
      summary: List users
      tags:
        - users
    post:
      description: >-
        Use this endpoint to create a new user. The API will respond with the
        newly-created user object if successful, containing a `guid` that you'll
        set as the `user_guid` in other requests when required. Disabling a user
        means that accounts and transactions associated with it will not be
        updated in the background by MX. It will also restrict access to that
        user’s data until they are no longer disabled.
      operationId: createUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequestBody'
        description: >-
          User object to be created. (None of these parameters are required, but
          the user object cannot be empty)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponseBody'
          description: OK
      summary: Create user
      tags:
        - users
  /users/{user_identifier}:
    delete:
      description: >
        Use this endpoint to delete the specified `user`. The response will have
        a status of `204 No Content` without an object.


        <Warning>

        Deleting a user is permanent. Deleted users can never be restored. For
        more info, see [Deleting
        Objects](/api-reference/platform-api/overview/deleting-objects).

        </Warning>
      operationId: deleteUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '204':
          description: No Content
      summary: Delete user
      tags:
        - users
    get:
      description: Use this endpoint to read the attributes of a specific user.
      operationId: readUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponseBody'
          description: OK
      summary: Read user
      tags:
        - users
    put:
      description: Use this endpoint to update the attributes of the specified user.
      operationId: updateUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequestBody'
        description: >-
          User object to be updated (None of these parameters are required, but
          the user object cannot be empty.)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponseBody'
          description: OK
      summary: Update user
      tags:
        - users
  /users/{user_identifier}/accounts:
    get:
      description: >
        This endpoint returns a list of all the accounts associated with the
        specified `user`.

        <Warning>

        This request will not return the full account number. It may return the
        last four digits of the account number if that information has been
        provided during aggregation. If you need the full account number, please
        refer to [List account numbers by
        member](/api-reference/platform-api/reference/list-account-numbers-by-member/)
        or [List account numbers by
        account](/api-reference/platform-api/reference/list-account-numbers-by-account/).

        </Warning>
      operationId: listUserAccounts
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/memberIsManagedByUser'
        - $ref: '#/components/parameters/accountIsManual'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/useCase'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsResponseBody'
          description: OK
      summary: List accounts
      tags:
        - accounts
    post:
      description: >
        This endpoint can only be used to create manual accounts. Creating a
        manual account will automatically create it under the Manual Institution
        member. Since a manual account has no credentials tied to the member,
        the account will never aggregate or include data from a data feed.

        <Warning>

        You must use the user `guid` when setting `user_identifier` in the path.

        </Warning>
      operationId: createManualAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCreateRequestBody'
        description: Manual account object to be created.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Create manual account
      tags:
        - accounts
  /users/{user_guid}/accounts/{account_guid}:
    get:
      description: This endpoint returns the specified `account` resource.
      operationId: readAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Read account
      tags:
        - accounts
    delete:
      description: >-
        This endpoint deletes accounts that were manually created. The API will
        respond with an empty object and a status of `204 No Content`.
      operationId: deleteManualAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No content.
      summary: Delete manual account
      tags:
        - accounts
  /users/{user_identifier}/accounts/{account_identifier}/account_numbers:
    get:
      description: >-
        This endpoint returns a list of account numbers associated with the
        specified `account`.
      operationId: listAccountNumbersByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountNumbersResponseBody'
          description: OK
      summary: List account numbers by account
      tags:
        - accounts
  /users/{user_guid}/accounts/{account_guid}/date_range_category_totals:
    get:
      tags:
        - categories
      summary: List category totals by account
      operationId: listDateRangeCategoryTotalsByAccount
      description: >-
        Returns a list of categories that have transactions dated within the
        provided date range, and the total of all transactions that belong to
        each category.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/fromDateRequired'
        - $ref: '#/components/parameters/toDateRequired'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DateRangeCategoryTotalsResponseBody'
  /users/{user_guid}/date_range_category_totals:
    get:
      tags:
        - categories
      summary: List category totals by user
      operationId: listCategoryTotalsByUser
      description: >-
        Returns a list of categories that have transactions dated within the
        provided date range, and the total of all transactions that belong to
        each category.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/fromDateRequired'
        - $ref: '#/components/parameters/toDateRequired'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DateRangeCategoryTotalsResponseBody'
  /users/{user_guid}/accounts/{account_guid}/block:
    put:
      description: >
        This endpoint is used to delete existing data and block new data from
        being stored on the specified account. This may be necessary to comply
        with certain rules, regulations, or standards. This endpoint also:

        - Immediately and permanently deletes most data from the account object.
        Certain information is retained that is necessary for MX to prevent the
        account from being re-added.

        - Prevents MX from creating or storing any additional data associated
        with the account, for example transactions, holdings, statements, and so
        on.

        - Immediately and permanently deletes all data associated with the
        account, for example transactions, holdings, statements, etc.

        This action is scoped to the member the account belongs to. This means
        that if the real world account is connected or reconnected via another
        member, the block will have no effect on that account.

        This action cannot be taken on accounts where `is_manual` is `true`.

        Objects deleted as a result of blocking an account will issue a webhook
        for that object with the action set to deleted. For example, account
        deleted, transaction deleted, and so on. There is no special webhook or
        action for blocking.
      operationId: blockAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          description: OK
      summary: Block an account
      tags:
        - accounts
  /users/{user_guid}/accounts/{account_guid}/insights:
    get:
      description: Use this endpoint to list all insights associated with an account GUID.
      operationId: listInsightsByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightsResponseBody'
          description: OK
      summary: List insights by account
      tags:
        - insights
  /users/{user_guid}/accounts/merge:
    post:
      operationId: mergeAccounts
      tags:
        - accounts
      summary: Merge accounts
      description: >
        Merge two or more financial accounts that an end user has identified as
        duplicates. 

        Provide at least two account GUIDs belonging to the same user. 

        <Warning>


        The response will return a single consolidated account. Any other
        accounts you provided that were not included in the response will be
        deleted.

        This is a destructive action and can't be undone.


        </Warning>
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountsMergeRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
  /users/{user_guid}/accounts/{account_guid}/monthly_account_balances:
    get:
      description: >-
        Use this endpoint to list all monthly account balances associated with
        an account GUID. Setting `from_date` returns account balances starting
        from the set month. Setting `to_date` returns account balances ending
        with the set month.
      operationId: listAccountBalancesByMonth
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/fromDateRequired'
        - $ref: '#/components/parameters/toDateRequired'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyAccountBalancesResponseBody'
          description: OK
      summary: List account balances by month
      tags:
        - accounts
  /users/{user_guid}/accounts/{account_guid}/transactions:
    post:
      operationId: createManualTransaction
      tags:
        - transactions
      summary: Create manual transaction
      description: >
        This endpoint can only be used to create manual transactions that are
        under a manual account. This endpoint accepts the optional
        MX-Skip-Webhook header and `skip_webhook` parameter.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/accountGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionCreateRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionCreateResponseBody'
    get:
      description: >-
        Requests to this endpoint return a list of transactions associated with
        the specified account. <br /><br /> Enhanced transaction data may be
        requested using the `includes` parameter. To use this optional
        parameter,  the value should include the optional metadata requested
        such as `repeating_transactions`, `merchants`,  `classifications`,
        `geolocations`. For more information, see the [Optional Enhancement
        Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: listTransactionsByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDateUnix'
        - $ref: '#/components/parameters/toDateUnix'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: List transactions by account
      tags:
        - transactions
  /users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions:
    get:
      description: >-
        Requests to this endpoint return a list of transactions associated with
        the specified account. <br /><br /> Enhanced transaction data may be
        requested using the `includes` parameter. To use this optional
        parameter,  the value should include the optional metadata requested
        such as `repeating_transactions`, `merchants`,  `classifications`,
        `geolocations`. For more information, see the [Optional Enhancement
        Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: listTransactionsByAccountPerMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDateUnix'
        - $ref: '#/components/parameters/toDateUnix'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: List transactions by account per member
      tags:
        - transactions
  /users/{user_guid}/categories:
    get:
      description: >-
        Use this endpoint to list all categories associated with a `user`,
        including both default and custom categories.
      operationId: listCategories
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesResponseBody'
          description: OK
      summary: List categories
      tags:
        - categories
    post:
      description: Use this endpoint to create a new custom category for a specific `user`.
      operationId: createCategory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryCreateRequestBody'
        description: Custom category object to be created
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Create category
      tags:
        - categories
  /users/{user_guid}/categories/default:
    get:
      description: >-
        Use this endpoint to retrieve a list of all the default categories and
        subcategories, scoped by user, offered within the MX Platform API. In
        other words, each item in the returned list will have its `is_default`
        field set to `true`. There are currently 119 default categories and
        subcategories. Both the _list default categories_ and _list default
        categories by user_ endpoints return the same results. The different
        routes are provided for convenience.
      operationId: listDefaultCategoriesByUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesResponseBody'
          description: OK
      summary: List default categories by user
      tags:
        - categories
  /users/{user_guid}/categories/{category_guid}:
    delete:
      description: >-
        Use this endpoint to delete a specific custom category according to its
        unique GUID. The API will respond with an empty object and a status of
        `204 No Content`.
      operationId: deleteCategory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/categoryGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete category
      tags:
        - categories
    get:
      description: >-
        Use this endpoint to read the attributes of either a default category or
        a custom category.
      operationId: readCategory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/categoryGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Read a custom category
      tags:
        - categories
    put:
      description: >-
        Use this endpoint to update the attributes of a custom category
        according to its unique GUID.
      operationId: updateCategory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/categoryGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryUpdateRequestBody'
        description: >-
          Category object to be updated (While no single parameter is required,
          the `category` object cannot be empty)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Update category
      tags:
        - categories
  /users/{user_identifier}/jobs/{job_guid}:
    get:
      description: >
        Use this endpoint to read the attributes of a specific job.

        > **Warning:** New implementations shouldn't use this endpoint. It is
        maintained for compatibility with our Nexus API only.
      tags:
        - jobs
      summary: Read job
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/jobGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResponseBody'
          description: OK
  /users/{user_guid}/insights:
    get:
      description: Use this endpoint to list all the insights associated with the user.
      operationId: listInsightsUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightsResponseBody'
          description: OK
      summary: List all insights for a user
      tags:
        - insights
  /users/{user_guid}/insights/{insight_guid}/categories:
    get:
      description: >-
        Use this endpoint to list all the categories associated with the
        insight.
      operationId: listCategoriesInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesResponseBody'
          description: OK
      summary: List all categories associated with an insight
      tags:
        - insights
  /users/{user_guid}/insights/{insight_guid}/accounts:
    get:
      description: Use this endpoint to list all the accounts associated with the insight.
      operationId: listAccountsInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsResponseBody'
          description: OK
      summary: List all accounts associated with an insight
      tags:
        - insights
  /users/{user_guid}/insights/{insight_guid}/merchants:
    get:
      description: Use this endpoint to list all the merchants associated with the insight.
      operationId: listMerchantsInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantsResponseBody'
          description: OK
      summary: List all merchants associated with an insight
      tags:
        - insights
  /users/{user_guid}/insights/{insight_guid}/scheduled_payments:
    get:
      description: >-
        Use this endpoint to list all the scheduled payments associated with the
        insight.
      operationId: listScheduledPaymentsInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledPaymentsResponseBody'
          description: OK
      summary: List all scheduled payments associated with an insight
      tags:
        - insights
  /users/{user_guid}/insights/{insight_guid}/transactions:
    get:
      description: >-
        Use this endpoint to list all the transactions associated with the
        insight.
      operationId: listTransactionsInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBody'
          description: OK
      summary: List all transactions associated with an insight
      tags:
        - insights
  /users/{user_guid}/insights/{insight_guid}:
    get:
      description: >-
        Use this endpoint to read the attributes of an insight according to its
        unique GUID.
      operationId: readInsightUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightResponseBody'
          description: OK
      summary: Read insight
      tags:
        - insights
    put:
      description: >-
        Use this endpoint to update the attributes of an insight according to
        its unique GUID.
      operationId: updateInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/insightGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InsightUpdateRequestBody'
        description: >-
          The insight to be updated (None of these parameters are required, but
          the user object cannot be empty.)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightResponse'
          description: OK
      summary: Update insight
      tags:
        - insights
  /users/{user_guid}/managed_members:
    get:
      description: >
        This endpoint returns a list of all the partner-managed members
        associated with the specified `user`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: listManagedMembers
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembersResponseBody'
          description: OK
      summary: List managed members
      tags:
        - managed data [deprecated]
      deprecated: true
    post:
      description: >
        Use this endpoint to create a new partner-managed `member`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: createManagedMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedMemberCreateRequestBody'
        description: Managed member to be created.
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Create managed member
      tags:
        - managed data [deprecated]
      deprecated: true
  /users/{user_guid}/managed_members/{member_guid}:
    delete:
      description: >
        Use this endpoint to delete the specified partner-managed `member`. The
        endpoint will respond with a status of `204 No Content` without a
        resource.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: deleteManagedMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete managed member
      tags:
        - managed data [deprecated]
      deprecated: true
    get:
      description: >
        This endpoint returns the attributes of the specified
        partner-managed`member`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: readManagedMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Read managed member
      tags:
        - managed data [deprecated]
      deprecated: true
    put:
      description: >
        Use this endpoint to update the attributes of the specified
        partner_managed `member`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: updateManagedMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedMemberUpdateRequestBody'
        description: >
          Managed member object to be updated (While no single parameter is
          required, the request body can't be empty).


          <Warning>

          This endpoint has been deprecated. For more information, reference the
          [Migration guide](/api-reference/platform-api/overview/migration).

          </Warning>
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Update managed member
      tags:
        - managed data [deprecated]
      deprecated: true
  /users/{user_guid}/managed_members/{member_guid}/accounts:
    get:
      description: >
        Use this endpoint to retrieve a list of all the partner-managed accounts
        associated with the given partner-managed member.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: listManagedAccounts
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsResponseBody'
          description: OK
      summary: List managed accounts
      tags:
        - managed data [deprecated]
      deprecated: true
    post:
      description: >
        Use this endpoint to create a partner-managed account.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: createManagedAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedAccountCreateRequestBody'
        description: Managed account to be created.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Create managed account
      tags:
        - managed data [deprecated]
      deprecated: true
  /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}:
    delete:
      description: >
        Use this endpoint to delete a partner-managed account according to its
        unique GUID. If successful, the API will respond with a status of `204
        No Content`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: deleteManagedAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete managed account
      tags:
        - managed data [deprecated]
      deprecated: true
    get:
      description: >
        Use this endpoint to read the attributes of a partner-managed account
        according to its unique guid.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: readManagedAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Read managed account
      tags:
        - managed data [deprecated]
      deprecated: true
    put:
      description: >
        Use this endpoint to update the attributes of a partner-managed account
        according to its unique GUID.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: updateManagedAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedAccountUpdateRequestBody'
        description: >-
          Managed account object to be updated (While no single parameter is
          required, the request body can't be empty).
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Update managed account
      tags:
        - managed data [deprecated]
      deprecated: true
  /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions:
    get:
      description: >
        This endpoint returns a list of all the partner-managed transactions
        associated with the specified `account`, scoped through a `user` and a
        `member`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: listManagedTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/fromDate'
        - $ref: '#/components/parameters/toDate'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBody'
          description: OK
      summary: List managed transactions
      tags:
        - managed data [deprecated]
      deprecated: true
    post:
      description: >
        Use this endpoint to create a new partner-managed `transaction`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: createManagedTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedTransactionCreateRequestBody'
        description: Managed transaction to be created.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponseBody'
          description: OK
      summary: Create managed transaction
      tags:
        - managed data [deprecated]
      deprecated: true
  /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions/{transaction_guid}:
    delete:
      description: >
        Use this endpoint to delete the specified partner-managed `transaction`.
        The endpoint will respond with a status of `204 No Content` without a
        resource.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: deleteManagedTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/transactionGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete managed transaction
      tags:
        - managed data [deprecated]
      deprecated: true
    get:
      description: >
        Requests to this endpoint will return the attributes of the specified
        partner-managed `transaction`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: readManagedTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/transactionGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponseBody'
          description: OK
      summary: Read managed transaction
      tags:
        - managed data [deprecated]
      deprecated: true
    put:
      description: >
        Use this endpoint to update the attributes of the specified
        partner_managed `transaction`.

        <Warning>

        This endpoint has been deprecated. For more information, reference the
        [Migration guide](/api-reference/platform-api/overview/migration).

        </Warning>
      operationId: updateManagedTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/transactionGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedTransactionUpdateRequestBody'
        description: >-
          Managed transaction object to be updated (While no single parameter is
          required, the request body can't be empty)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponseBody'
          description: OK
      summary: Update managed transaction
      tags:
        - managed data [deprecated]
      deprecated: true
  /users/{user_identifier}/members:
    get:
      description: >-
        This endpoint returns an array which contains information on every
        member associated with a specific user.
      operationId: listMembers
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/useCase'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembersResponseBody'
          description: OK
      summary: List members
      tags:
        - members
    post:
      description: >-
        This endpoint allows you to create a new member using the required
        parameters `institution_code`, `credentials` (if creating a non-OAuth
        member), and `data_request.products`. When creating a non-OAuth member,
        include the correct type of credential required by the financial
        institution and provided by the user. You can find out which credential
        type is required with the `/institutions/{institution_code}/credentials`
        endpoint. Once you successfully create a member, MX will immediately
        validate the provided credentials and attempt to aggregate data. A
        status of 200 indicates the member was created successfully, and no
        aggregation was requested. A status of 201 indicates the member was
        created, but a product within `data_request` failed to aggregate. A
        status of 202 indicates the member was successfully created, and
        standard aggregation (no `data_request`) was requested (does not
        indicate success or failure).
      operationId: createMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/xCallback'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberCreateRequestBody'
        description: Member object to be created
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseWithJobErrorBody'
          description: Created
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Create member
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}:
    delete:
      description: Accessing this endpoint will permanently delete a member.
      operationId: deleteMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '204':
          description: No Content
      summary: Delete member
      tags:
        - members
    get:
      description: Use this endpoint to read the attributes of a specific member.
      operationId: readMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Read member
      tags:
        - members
    put:
      description: >-
        Use this endpoint to update a members attributes. Only the credentials,
        id, and metadata parameters can be updated. To get a list of the
        required credentials for the member, use the list member credentials
        endpoint.
      operationId: updateMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/xCallback'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberUpdateRequestBody'
        description: >-
          Member object to be updated (While no single parameter is required,
          the request body can't be empty)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Update member
      tags:
        - members
  /users/{user_guid}/members/{member_guid}/account_numbers:
    get:
      description: >-
        This endpoint returns a list of account numbers associated with the
        specified `member`.
      operationId: listAccountNumbersByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountNumbersResponseBody'
          description: OK
      summary: List account numbers by member
      tags:
        - accounts
  /users/{user_identifier}/members/{member_identifier}/account_owners:
    get:
      description: >-
        This endpoint returns an array with information about every account
        associated with a particular member.
      operationId: listAccountOwnersByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountOwnersResponseBody'
          description: OK
      summary: List account owners by member
      tags:
        - accounts
  /users/{user_identifier}/members/{member_identifier}/accounts:
    get:
      description: >-
        This endpoint returns a list of all the accounts associated with the
        specified `member`.
      operationId: listMemberAccounts
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIsManagedByUser'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsResponseBody'
          description: OK
      summary: List member accounts
      tags:
        - accounts
  /users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}:
    get:
      description: >-
        This endpoint allows you to read the attributes of an `account`
        resource.
      operationId: readAccountByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Read member account
      tags:
        - accounts
    put:
      description: >-
        This endpoint allows you to update certain attributes of an `account`
        resource, including manual accounts. For manual accounts, you can update
        every field listed. For aggregated accounts, you can only update
        `is_business`, `is_hidden` and `metadata`.
      operationId: updateAccountByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUpdateRequestBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Update account by member
      tags:
        - accounts
  /users/{user_identifier}/members/{member_identifier}/aggregate:
    post:
      description: >-
        Calling this endpoint initiates an aggregation event for the member.
        This brings in the latest account and transaction data from the
        connected institution. If this data has recently been updated, MX may
        not initiate an aggregation event.
      operationId: aggregateMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/xCallback'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Aggregate member
      tags:
        - members
  /users/{user_identifier}/members/aggregate_all:
    post:
      description: >
        This endpoint will kick off a new aggregation job for each member which
        belongs to the user. If you've set the `use_cases` field when creating
        the member, then the member's use case must be set to `PFM`, otherwise a
        403 will return. The response will include important information about
        the members' aggregations including the `is_being_aggregated` and
        `connection_status` fields. Aggregations can take some time to finish;
        you can use the the read member or list members endpoints to track the
        status and completion of each individual aggregation as it progresses.
      operationId: aggregateAllMembers
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembersResponseBody'
          description: Accepted
      summary: Aggregate all members
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/challenges:
    get:
      description: >-
        Use this endpoint for information on what multi-factor authentication
        challenges need to be answered in order to aggregate a member. If the
        aggregation is not challenged, i.e., the member does not have a
        connection status of `CHALLENGED`, then code `204 No Content` will be
        returned. If the aggregation has been challenged, i.e., the member does
        have a connection status of `CHALLENGED`, then code `200 OK` will be
        returned - along with the corresponding credentials.
      operationId: listMemberChallenges
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChallengesResponseBody'
          description: OK
      summary: List member challenges
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/check_balance:
    post:
      description: >-
        This endpoint operates much like the aggregate member endpoint except
        that it gathers only account balance information; it does not gather any
        transaction data.
      operationId: checkBalances
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Check balances
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/credentials:
    get:
      description: >-
        This endpoint returns an array which contains information on every
        non-MFA credential associated with a specific member.
      operationId: listMemberCredentials
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialsResponseBody'
          description: OK
      summary: List member credentials
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/extend_history:
    post:
      description: >-
        Some institutions allow developers to access an extended transaction
        history with up to 24 months of data associated with a particular
        member. The process for fetching and then reading this extended
        transaction history is much like standard aggregation, and it may
        trigger multi-factor authentication.
      operationId: extendHistory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Extend history
      tags:
        - transactions
  /users/{user_identifier}/members/{member_identifier}/fetch_statements:
    post:
      description: >-
        Use this endpoint to fetch the statements associated with a particular
        member.
      operationId: fetchStatements
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Fetch statements
      tags:
        - statements
  /users/{user_guid}/members/{member_guid}/investment_holdings:
    get:
      description: This endpoint lists all holdings associated with the specified member.
      operationId: listHoldingsByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsResponseBody'
          description: OK
      summary: List holdings by member
      tags:
        - investment holdings
  /users/{user_guid}/investment_holdings:
    get:
      description: >-
        This endpoint lists all holdings associated with the user across all
        accounts.
      operationId: listHoldings
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsResponseBody'
          description: OK
      summary: List holdings by user
      tags:
        - investment holdings
  /users/{user_guid}/investment_holdings/{holding_guid}:
    get:
      description: Use this endpoint to read the attributes of a specific `holding`.
      operationId: readHolding
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/holdingGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingResponseBody'
          description: OK
      summary: Read holding
      tags:
        - investment holdings
  /users/{user_guid}/accounts/{account_guid}/investment_holdings:
    get:
      description: >-
        This endpoint lists all holdings associated with the particular account
        defined.
      operationId: listHoldingsByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsResponseBody'
          description: OK
      summary: List holdings by account
      tags:
        - investment holdings
  /users/{user_guid}/investment_holdings_deactivate:
    get:
      description: >-
        This endpoint deactivates the specific user from the
        `/investment_holdings` product. To reactivate a user, use any of the
        current `/investment_holding` endpoints.
      operationId: deactivateUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsDeactivation'
          description: OK
      summary: Deactivate user from Investment Holdings
      tags:
        - investment holdings
  /users/{user_identifier}/members/{member_identifier}/identify:
    post:
      description: >-
        The identify endpoint begins an identification process for an
        already-existing member.
      operationId: identifyMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Identify member
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/oauth_window_uri:
    get:
      description: >-
        This endpoint will generate an `oauth_window_uri` for the specified
        `member`.
      operationId: requestOAuthWindowURI
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/clientRedirectUrl'
        - $ref: '#/components/parameters/enableApp2app'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/referralSource'
        - $ref: '#/components/parameters/skipAggregation'
        - $ref: '#/components/parameters/uiMessageWebviewUrlScheme'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthWindowResponseBody'
          description: OK
      summary: Request oauth window uri
      tags:
        - widgets
  /users/{user_identifier}/members/{member_identifier}/resume:
    put:
      description: >-
        This endpoint answers the challenges needed when a member has been
        challenged by multi-factor authentication.
      operationId: resumeAggregation
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberResumeRequestBody'
        description: Member object with MFA challenge answers
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: Accepted
      summary: Resume aggregation
      tags:
        - members
  /users/{user_guid}/members/{member_guid}/statements:
    get:
      description: Use this endpoint to get an array of available statements.
      operationId: listStatementsByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementsResponseBody'
          description: OK
      summary: List statements by member
      tags:
        - statements
  /users/{user_guid}/members/{member_guid}/statements/{statement_guid}:
    get:
      description: Use this endpoint to read a JSON representation of the statement.
      operationId: readStatementByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/statementGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponseBody'
          description: OK
      summary: Read statement by member
      tags:
        - statements
  /users/{user_guid}/members/{member_guid}/statements/{statement_guid}.pdf:
    get:
      description: Use this endpoint to download a specified statement PDF.
      operationId: downloadStatementPDF
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/statementGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+pdf:
              schema:
                format: binary
                type: string
          description: OK
      summary: Download statement pdf
      tags:
        - statements
  /users/{user_identifier}/members/{member_identifier}/status:
    get:
      description: >-
        This endpoint provides the status of the members most recent aggregation
        event. The results returned by this endpoint should determine what you
        do next in order to successfully aggregate a member.
      operationId: readMemberStatus
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatusResponseBody'
          description: OK
      summary: Read member status
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/transactions:
    get:
      description: >-
        Requests to this endpoint return a list of transactions associated with
        the specified  `member`, across all accounts associated with that
        `member`. <br /><br />Enhanced transaction data  may be requested using
        the `includes` parameter. To use this optional parameter, the value
        should  include the optional metadata requested such as
        `repeating_transactions`, `merchants`, `classifications`, 
        `geolocations`. For more information, see the [Optional Enhancement
        Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: listTransactionsByMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDateUnix'
        - $ref: '#/components/parameters/toDateUnix'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromTimestamp'
        - $ref: '#/components/parameters/toTimestamp'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: List transactions by member
      tags:
        - transactions
  /users/{user_identifier}/members/{member_identifier}/verify:
    post:
      description: The verify endpoint begins a verification process for a member.
      operationId: verifyMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/xCallback'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Verify member
      tags:
        - members
  /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items:
    post:
      description: This endpoint creates a new `spending_plan_iteration_item`.
      operationId: createSpendingPlanIterationItem
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendingPlanIterationItemCreateRequestBody'
        description: Iteration item to be created with required parameter (planned_amount)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationItemResponse'
          description: OK
      summary: Create spending plan iteration item
      tags:
        - spending plan
    get:
      description: >-
        Use this endpoint to list all the spending plan `iteration_items`
        associated with the `iteration`.
      operationId: listSpendingPlanIterationItems
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationItemsResponseBody'
          description: OK
      summary: List spending plan iteration items
      tags:
        - spending plan
  /users/{user_guid}/spending_plans:
    post:
      description: This endpoint creates a new `spending_plan` for the user.
      operationId: createSpendingPlan
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanResponse'
          description: OK
      summary: Create spending plan
      tags:
        - spending plan
    get:
      description: >-
        Use this endpoint to list all the spending plans associated with the
        user.
      operationId: listSpendingPlans
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlansResponseBody'
          description: OK
      summary: List spending plans
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}/spending_plan_accounts/{spending_plan_account_guid}:
    delete:
      description: Use this endpoint to delete a `spending_plan_account`.
      operationId: deleteSpendingPlanAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/spendingPlanAccountGuid'
      responses:
        '204':
          description: No Content
      summary: Delete spending plan account
      tags:
        - spending plan
    get:
      description: >-
        Use this endpoint to read the attributes of a specific spending plan
        account according to its unique GUID.
      operationId: readSpendingPlanAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/spendingPlanAccountGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanAccountResponse'
          description: OK
      summary: Read spending plan account
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items/{iteration_item_guid}:
    delete:
      description: Use this endpoint to delete a spending plan `iteration_item`.
      operationId: deleteSpendingPlanIterationItem
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/iterationItemGuid'
      responses:
        '204':
          description: No Content
      summary: Delete spending plan iteration item
      tags:
        - spending plan
    get:
      description: >-
        Use this endpoint to read the attributes of a specific spending plan
        `iteration_item` according to its unique GUID.
      operationId: readSpendingPlanIterationItem
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/iterationItemGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationItemResponse'
          description: OK
      summary: Read a spending plan iteration item
      tags:
        - spending plan
    put:
      description: Use this endpoint to update an existing `spending_plan_iteration_item`.
      operationId: updateSpendingPlanIterationItem
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/iterationItemGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendingPlanIterationItemCreateRequestBody'
        description: Iteration item to be updated with required parameter (planned_amount)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationItemResponse'
          description: OK
      summary: Update a spending plan iteration item
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}:
    delete:
      description: Use this endpoint to delete a user's `spending_plan`.
      operationId: deleteSpendingPlan
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
      responses:
        '204':
          description: No Content
      summary: Delete spending plan
      tags:
        - spending plan
    get:
      description: >-
        Use this endpoint to read the attributes of a specific spending plan
        according to its unique GUID.
      operationId: readSpendingPlanUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanResponse'
          description: OK
      summary: Read a spending plan for a user
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}/spending_plan_accounts:
    get:
      description: >-
        Use this endpoint to list all the spending plan accounts associated with
        the spending plan.
      operationId: listSpendingPlanAccounts
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanAccountsResponse'
          description: OK
      summary: List spending plan accounts
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations:
    get:
      description: >-
        Use this endpoint to list all the spending plan `iterations` associated
        with the `spending_plan`.
      operationId: listSpendingPlanIterations
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationsResponse'
          description: OK
      summary: List spending plan iterations
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current:
    get:
      description: >-
        Use this endpoint to read the attributes of the current spending plan
        `iteration`.
      operationId: readCurrentSpendingPlanIteration
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationResponse'
          description: OK
      summary: Read current spending plan iteration
      tags:
        - spending plan
  /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/{iteration_number}:
    get:
      description: >-
        Use this endpoint to read the attributes of a specific spending plan
        `iteration` according to its `iteration_number`.
      operationId: readSpendingPlanIteration
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/spendingPlanGuid'
        - $ref: '#/components/parameters/iterationNumber'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingPlanIterationResponse'
          description: OK
      summary: Read a spending plan iteration
      tags:
        - spending plan
  /users/{user_guid}/taggings:
    get:
      description: >-
        Use this endpoint to retrieve a list of all the taggings associated with
        a specific user.
      operationId: listTaggings
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaggingsResponseBody'
          description: OK
      summary: List taggings
      tags:
        - taggings
    post:
      description: >-
        Use this endpoint to create a new association between a tag and a
        particular transaction, according to their unique GUIDs.
      operationId: createTagging
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaggingCreateRequestBody'
        description: >-
          Tagging object to be created with required parameters (tag_guid and
          transaction_guid)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaggingResponseBody'
          description: Accepted
      summary: Create tagging
      tags:
        - taggings
  /users/{user_guid}/taggings/{tagging_guid}:
    delete:
      description: >-
        Use this endpoint to delete a tagging according to its unique GUID. If
        successful, the API will respond with an empty body and a status of 204
        NO Content.
      operationId: deleteTagging
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/taggingGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete tagging
      tags:
        - taggings
    get:
      description: >-
        Use this endpoint to read the attributes of a `tagging` according to its
        unique GUID.
      operationId: readTagging
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/taggingGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaggingResponseBody'
          description: OK
      summary: Read tagging
      tags:
        - taggings
    put:
      description: Use this endpoint to update a tagging.
      operationId: updateTagging
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/taggingGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaggingUpdateRequestBody'
        description: Tagging object to be updated with required parameter (tag_guid)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaggingResponseBody'
          description: OK
      summary: Update tagging
      tags:
        - taggings
  /users/{user_guid}/tags:
    get:
      description: >-
        Use this endpoint to list all tags associated with the specified `user`.
        Each user includes the `Business` tag by default.
      operationId: listTags
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagsResponseBody'
          description: OK
      summary: List tags
      tags:
        - tags
    post:
      description: Use this endpoint to create a new custom tag.
      operationId: createTag
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagCreateRequestBody'
        description: Tag object to be created with required parameters (tag_guid)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagResponseBody'
          description: OK
      summary: Create tag
      tags:
        - tags
  /users/{user_guid}/tags/{tag_guid}:
    delete:
      description: >-
        Use this endpoint to permanently delete a specific tag based on its
        unique GUID. If successful, the API will respond with status of `204 No
        Content`.
      operationId: deleteTag
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/tagGuid'
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete tag
      tags:
        - tags
    get:
      description: >-
        Use this endpoint to read the attributes of a particular tag according
        to its unique GUID.
      operationId: readTag
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/tagGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagResponseBody'
          description: OK
      summary: Read tag
      tags:
        - tags
    put:
      description: >-
        Use this endpoint to update the name of a specific tag according to its
        unique GUID.
      operationId: updateTag
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/tagGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagUpdateRequestBody'
        description: Tag object to be updated with required parameter (tag_guid)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagResponseBody'
          description: OK
      summary: Update tag
      tags:
        - tags
  /users/{user_identifier}/tags/{tag_guid}/transactions:
    get:
      description: >-
        Use this endpoint to get a list of all transactions associated with a
        particular tag  according to the tag's unique GUID. This lists all
        transactions that have been assigned to a particular  tag using the
        create tagging endpoint. <br /><br />Enhanced transaction data may be
        requested using the  `includes` parameter. To use this optional
        parameter, the value should include the optional metadata  requested
        such as `repeating_transactions`, `merchants`, `classifications`,
        `geolocations`. For more  information, see the [Optional Enhancement
        Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: listTransactionsByTag
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/tagGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDateUnix'
        - $ref: '#/components/parameters/toDateUnix'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: List transactions by tag
      tags:
        - transactions
  /users/{user_guid}/transaction_rules:
    get:
      description: >-
        Use this endpoint to read the attributes of all existing transaction
        rules belonging to the user.
      operationId: listTransactionRules
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRulesResponseBody'
          description: OK
      summary: List transaction rules
      tags:
        - transaction rules
    post:
      description: >
        Use this endpoint to create a new transaction rule. The newly-created
        `transaction_rule` object will be returned if successful.


        For more information about transaction rules, see the [Transaction Rules
        Guide](/products/experience/pfm/integration-guides/personalization/transaction-rules).
      operationId: createTransactionRule
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRuleCreateRequestBody'
        description: >-
          TransactionRule object to be created with optional parameters
          (description) and required parameters (category_guid and
          match_description)
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRuleResponseBody'
          description: OK
      summary: Create transaction rule
      tags:
        - transaction rules
  /users/{user_guid}/transaction_rules/{transaction_rule_guid}:
    delete:
      description: >-
        Use this endpoint to permanently delete a transaction rule based on its
        unique GUID.
      operationId: deleteTransactionRule
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/transactionRuleGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '204':
          description: No Content
      summary: Delete transaction rule
      tags:
        - transactions
    get:
      description: >-
        Use this endpoint to read the attributes of an existing transaction rule
        based on the rule’s unique GUID.
      operationId: readTransactionRule
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/transactionRuleGuid'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRuleResponseBody'
          description: OK
      summary: Read transaction rule
      tags:
        - transaction rules
    put:
      description: >
        Use this endpoint to update the attributes of a specific transaction
        rule based on its unique GUID. The API will respond with the updated
        transaction_rule object. Any attributes not provided will be left
        unchanged.


        For more information about transaction rules, see the [Transaction Rules
        Guide](/products/experience/pfm/integration-guides/personalization/transaction-rules).
      operationId: updateTransactionRule
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/transactionRuleGuid'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRuleUpdateRequestBody'
        description: TransactionRule object to be updated
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRuleResponseBody'
          description: OK
      summary: Update transaction rule
      tags:
        - transaction rules
  /users/{user_identifier}/transactions:
    get:
      description: >-
        Requests to this endpoint return a list of transactions associated with
        the specified  `user`, across all members and accounts associated with
        that `user`. <br /><br />Enhanced transaction  data may be requested
        using the `includes` parameter. To use this optional parameter, the
        value should  include the optional metadata requested such as
        `repeating_transactions`, `merchants`, `classifications`, 
        `geolocations`. For more information, see the [Optional Enhancement
        Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: listTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDateUnix'
        - $ref: '#/components/parameters/toDateUnix'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/useCase'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: List transactions
      tags:
        - transactions
  /users/{user_guid}/transactions/{transaction_guid}:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/userGuid'
      - $ref: '#/components/parameters/transactionGuid'
    get:
      description: >-
        Requests to this endpoint will return the attributes of the specified
        `transaction`. To  read a manual transaction, use the manual transaction
        guid in the path as the `transactionGuid`. <br /><br /> Enhanced
        transaction data may be requested using the `includes` parameter. To use
        this optional parameter,  the value should include the optional metadata
        requested such as `repeating_transactions`, `merchants`, 
        `classifications`, `geolocations`. For more information, see the
        [Optional Enhancement Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: readTransaction
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: Read transaction
      tags:
        - transactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/includes'
    put:
      description: >-
        Use this endpoint to update the `description` of a specific transaction
        according to its unique GUID.
      operationId: updateTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionUpdateRequestBody'
        description: Transaction object to be updated with a new description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponseBody'
          description: OK
      summary: Update transaction
      tags:
        - transactions
    delete:
      tags:
        - transactions
      operationId: deleteManualTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      summary: Delete manual transactions
      description: >-
        Delete a manual transaction. In the path, use the manual transaction
        guid as the `transaction_guid`, such as
        `MAN-810828b0-5210-4878-9bd3-f4ce514f90c4`.
      responses:
        '204':
          description: No content
  /users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions/{transaction_identifier}:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/userIdentifier'
      - $ref: '#/components/parameters/memberIdentifier'
      - $ref: '#/components/parameters/accountIdentifier'
      - $ref: '#/components/parameters/transactionIdentifier'
    get:
      description: >-
        Requests to this endpoint will return the attributes of the specified
        `transaction`. To  read a manual transaction, use the manual transaction
        guid in the path as the `transactionGuid`. <br /><br /> Enhanced
        transaction data may be requested using the `includes` parameter. To use
        this optional parameter,  the value should include the optional metadata
        requested such as `repeating_transactions`, `merchants`, 
        `classifications`, `geolocations`. For more information, see the
        [Optional Enhancement Query Parameter
        guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
      operationId: readTransactionByAccount
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBodyIncludes'
          description: OK
      summary: Read transaction by account
      tags:
        - transactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/includes'
    put:
      description: >-
        Use this endpoint to update the `description` of a specific transaction
        according to its unique GUID.
      operationId: updateTransactionByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionUpdateRequestBody'
        description: Transaction object to be updated with a new description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponseBody'
          description: OK
      summary: Update transaction by account
      tags:
        - transactions
  /users/{user_identifier}/widget_urls:
    post:
      description: >
        Get an embeddable URL for integrating a widget into your website or app.
        The URL expires after ten minutes or upon first use, whichever occurs
        first. You'll need to obtain a new URL each time the page loads or
        reloads.


        Include the `widget_type` in the request body to specify which widget
        you want to embed—the Connect Widget, a Personal Financial Management
        widget, or an Insights widget. Some request parameters are specific to
        certain widget types.


        To embed the Connect Widget, set `widget_type` to `connect_widget`.


        For a full list of available widget types, see [Widget
        Types](/api-reference/platform-api/reference/widgets#widget-types).
      operationId: requestWidgetURL
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xCallback'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                widget_url:
                  $ref: '#/components/schemas/WidgetRequest'
        description: The widget_url configuration options.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WidgetResponseBody'
          description: OK
      summary: Request widget URL
      tags:
        - widgets
  /users/{user_guid}/budgets/generate:
    post:
      tags:
        - budgets
      operationId: autoGenerateBudgets
      summary: Auto-generate budgets
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      description: >-
        This endpoint will automatically create budgets for several categories
        based on existing transactions; these budgets are returned as an array.
        Specifically, budgets will only be generated if the `user` has at least
        one `transaction` in a given category during each of the two previous
        calendar months. For example, if the request is made on March 6, and
        there is at least one "Bills & Utilities" `transaction` in both January
        and February, a budget will be generated for "Bills & Utilities." If
        there are two "Bills & Utilities" transactions in February but none in
        January, no budget will be generated for that category. If budgets
        already exist for particular categories, new budgets will be generated
        and returned based on the available transactions. If one or more budgets
        remain unchanged, they will nevertheless be returned in the response. If
        no transaction data for the `user` meet the above criteria, a `422
        Unprocessable Entity` error will be returned with status code 4221 along
        with the message, `There aren't enough transactions to automatically
        create any budgets`.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
  /users/{user_guid}/budgets:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/userGuid'
    post:
      tags:
        - budgets
      operationId: createBudget
      summary: Create a budget
      description: >-
        Create a budget. This endpoint accepts the optional `MX-Skip-Webhook`
        header and `skip_webhook` parameter. You cannot create a duplicate
        budget. For example, if you attempt to create a budget for "Gas", but
        that budget already exist, the request will fail. You can retrieve a
        list of all existing categories by using the List Categories endpoint.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetCreateRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
    get:
      tags:
        - budgets
      operationId: listAllBudgets
      summary: List all budgets
      description: List all budgets
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
  /users/{user_guid}/budgets/{budget_guid}:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/userGuid'
      - $ref: '#/components/parameters/budgetGuid'
    get:
      tags:
        - budgets
      operationId: readSpecificBudget
      summary: Read a specific budget
      description: Read a specific budget.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
    put:
      tags:
        - budgets
      operationId: updateSpecificBudget
      summary: Update a specific budget
      description: Update a specific budget.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetUpdateRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
    delete:
      tags:
        - budgets
      operationId: deleteBudget
      summary: Delete a budget
      description: Delete a budget.
      responses:
        '204':
          description: No content
  /users/{user_guid}/goals:
    post:
      tags:
        - goals
      operationId: createGoal
      summary: Create a goal
      description: >-
        Create a goal. This endpoint accepts the optional `MX-Skip-Webhook`
        header and `skip_webhook` parameter.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoalRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalResponseBody'
    get:
      tags:
        - goals
      operationId: listGoals
      summary: List goals
      description: List all goals a user can set.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalsResponseBody'
  /users/{user_guid}/goals/{goal_guid}:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/goalGuid'
      - $ref: '#/components/parameters/userGuid'
    delete:
      tags:
        - goals
      operationId: deleteGoal
      summary: Delete a goal
      description: Delete a goal.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/acceptHeader'
      responses:
        '204':
          description: No content
    get:
      tags:
        - goals
      operationId: readGoal
      summary: Read a goal
      description: Read a specific goal.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalResponseBody'
    put:
      tags:
        - goals
      operationId: updateGoal
      summary: Update a goal
      description: This endpoint updates a specific goal.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGoalRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalResponseBody'
  /users/{user_guid}/goals/reposition:
    put:
      tags:
        - goals
      operationId: repositionGoals
      summary: Reposition goals
      description: >-
        This endpoint repositions goal priority levels. If one goal is set to a
        lower priority, then any other goals need to be adjusted accordingly.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositionRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositionResponseBody'
  /users/{user_guid}/notifications:
    post:
      tags:
        - notifications
      operationId: createNotification
      summary: Create a notification
      description: >-
        All notifications created through the API will be of notification type
        `API_NOTIFICATION`, channel `PUSH`, and will not be associated to an
        entity.  No other channels are supported.  This will only have an effect
        for clients using an MX mobile application.
      parameters:
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationResponseBody'
    get:
      tags:
        - notifications
      operationId: listNotifications
      summary: List notifications
      description: >-
        All notifications for the user can be listed, including notifications
        created by MX for other channels besides `PUSH`.
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/acceptVersion'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationsResponseBody'
  /users/{user_guid}/notifications/{notification_guid}:
    get:
      tags:
        - notifications
      operationId: readNotifications
      summary: Read notifications
      description: >
        Can pull up any notification associated with the user, including
        notifications created by MX for other channels besides `PUSH`.
      parameters:
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/notificationGuid'
        - $ref: '#/components/parameters/acceptVersion'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationResponseBody'
  /users/{user_guid}/repeating_transactions:
    get:
      description: >-
        Retrieve a list of all recurring transactions for a user. <br /><br
        />For more see the [Repeating Transactions
        guide](/api-reference/platform-api/reference/transactions-overview#repeating-transactions).
      operationId: repeatingTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepeatingTransactionsResponseBody'
          description: OK
      summary: List Repeating Transactions
      tags:
        - transactions
  /users/{user_guid}/repeating_transactions/{repeating_transaction_guid}:
    get:
      description: Get a Specific Repeating Transaction.
      operationId: specificRepeatingTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/repeatingTransactionGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepeatingTransactionsResponseBody'
          description: OK
      summary: Get a Repeating Transaction
      tags:
        - transactions
  /users/{user_guid}/transactions/{transaction_guid}/insights:
    get:
      description: >-
        Use this endpoint to list all insights associated with a transaction
        GUID.
      operationId: listInsightsByTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/transactionGuid'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightsResponseBody'
          description: OK
      summary: List insights by transaction
      tags:
        - insights
  /users/{user_guid}/transactions/{transaction_guid}/split:
    parameters:
      - $ref: '#/components/parameters/transactionGuid'
      - $ref: '#/components/parameters/userGuid'
      - $ref: '#/components/parameters/acceptVersion'
    delete:
      tags:
        - transactions
      operationId: deleteSplitTransactions
      summary: Delete split transactions
      description: >-
        This endpoint deletes all split transactions linked to a parent
        transaction, but it leaves the parent transaction active. This request
        will also update the parent transaction's has_been_split field to false.
        This endpoint accepts the optional MX-Skip-Webhook header.
      responses:
        '204':
          description: No content
    post:
      tags:
        - transactions
      operationId: createSplitTransactions
      summary: Create split transactions
      description: >
        This endpoint creates two or more child transactions that are branched
        from a previous transaction. This endpoint allows you to link multiple
        categories, descriptions, and amounts to a parent transaction.  When a
        split transaction is created, the parent transaction's `has_been_split`
        field will automatically be updated to true and the child transactions'
        `parent_guid` will have the transaction guid of the parent. The total
        amount of the child transactions must equal the amount of the parent
        transaction. Once a transaction has been split it can't be split
        again.    In order to re-split a transaction, it must first be un-split.
        This can be done by calling the Delete Split Transactions endpoint.
        Calling this endpoint will delete the existing child transactions and
        update the parent transaction's `has_been_split` field to false. You can
        then re-split the parent transaction by calling Create Split Transaction
        again.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitTransactionRequestBody'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitTransactionsResponseBody'
          description: OK
  /users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions/{transaction_identifier}/split:
    parameters:
      - $ref: '#/components/parameters/userIdentifier'
      - $ref: '#/components/parameters/memberIdentifier'
      - $ref: '#/components/parameters/accountIdentifier'
      - $ref: '#/components/parameters/transactionIdentifier'
      - $ref: '#/components/parameters/acceptVersion'
    delete:
      tags:
        - transactions
      operationId: deleteSplitTransactionsbyAccount
      summary: Delete split transactions by account
      description: >-
        This endpoint deletes all split transactions linked to a parent
        transaction, but it leaves the parent transaction active. This request
        will also update the parent transaction's has_been_split field to false.
        This endpoint accepts the optional MX-Skip-Webhook header.
      responses:
        '204':
          description: No content
    post:
      tags:
        - transactions
      operationId: createSplitTransactionsbyAccount
      summary: Create split transactions by account
      description: >
        This endpoint creates two or more child transactions that are branched
        from a previous transaction. This endpoint allows you to link multiple
        categories, descriptions, and amounts to a parent transaction.  When a
        split transaction is created, the parent transaction's `has_been_split`
        field will automatically be updated to true and the child transactions'
        `parent_guid` will have the transaction guid of the parent. The total
        amount of the child transactions must equal the amount of the parent
        transaction. Once a transaction has been split it can't be split
        again.    In order to re-split a transaction, it must first be un-split.
        This can be done by calling the Delete Split Transactions endpoint.
        Calling this endpoint will delete the existing child transactions and
        update the parent transaction's `has_been_split` field to false. You can
        then re-split the parent transaction by calling Create Split Transaction
        again.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitTransactionRequestBody'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitTransactionsResponseBody'
          description: OK
  /users/{user_identifier}/monthly_cash_flow_profile:
    parameters:
      - $ref: '#/components/parameters/userIdentifier'
      - $ref: '#/components/parameters/acceptVersion'
    get:
      tags:
        - monthly cash flow profile
      operationId: readMonthlyCashFlowProfile
      summary: Read monthly cash flow profile
      description: Read monthly cash flow profile.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyCashFlowResponseBody'
    put:
      tags:
        - monthly cash flow profile
      operationId: updateMonthlyCashFlowProfile
      summary: Update monthly cash flow profile
      description: >-
        Use this endpoint to update the attributes of a
        `monthly_cash_flow_profile`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonthlyCashFlowProfileRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyCashFlowResponseBody'
  /tokens:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
    get:
      tags:
        - processor token
      operationId: listTokens
      summary: View a List of Tokens
      description: View a list of tokens that exist for a user, member, or account.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequestBody'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponseBody'
          description: OK
  /account/account_numbers:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
    get:
      security:
        - bearerAuth: []
      tags:
        - processor token
      operationId: requestAccountNumber
      summary: Request an account number (Processors Only)
      description: >-
        Get account information such as routing number and account number,
        scoped to your access token.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessorAccountNumberBody'
  /account/check_balance:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
    post:
      security:
        - bearerAuth: []
      tags:
        - processor token
      operationId: checkRealTimeAccountBalance
      summary: Check Real Time Account Balance (Processors Only)
      description: Check the real-time account balance using your access token.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
  /payment_account:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
    get:
      security:
        - bearerAuth: []
      tags:
        - processor token
      operationId: readAccountBalance
      summary: Read the account balance (Processors Only)
      description: Read the account balance (Processors Only)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentAccountBody'
  /account/transactions:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
    get:
      security:
        - bearerAuth: []
      tags:
        - processor token
      operationId: getAccountOwnerInfo
      summary: Get account owner information (Processors Only)
      description: Get account owner information (Processors Only)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessorOwnerBody'
  /users/{user_guid}/micro_deposits:
    get:
      tags:
        - microdeposits
      operationId: listUserMicrodeposits
      summary: List all microdeposits for a user
      description: >-
        Use this endpoint to read the attributes of a specific microdeposit
        according to its unique GUID.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrodepositsResponseBody'
    post:
      tags:
        - microdeposits
      operationId: createMicrodeposit
      summary: Create or pre-initiate a microdeposit
      description: >
        Use this endpoint to create or pre-initiate a microdeposit. The response
        will include the new microdeposit record with a status of `INITIATED` or
        `PREINITIATED` respectively.


        To pre-initiate a microdeposit, you only need to set `email` (string),
        `first_name` (string), and `last_name` (string) in the request body. 


        Pre-initiating a microdeposit allows you to pass the end user's first
        name, last name, and email if this data has already been collected. If
        the end user selects an institution which requires the microdeposit
        flow, the pre-initiated `micro_deposit` will be used and the Connect
        Widget step that normally requests this info from the end user will be
        skipped. However, if the end user selects an institution which supports
        IAV, the pre-initiated `micro_deposit` will be deleted and IAV will be
        used instead. When requesting a Connect Widget URL after pre-initiating,
        make sure to set the `current_microdeposit_guid` to the resulting
        microdeposit's `guid` and set `data_request.products` to include
        `account_verification`. If you use this enhanced flow, a `micro_deposit`
        should be pre-initiated for all connect sessions in verification mode.
        After pre-initiating a microdeposit, pass the GUID to the config as
        `current_microdeposit_guid` and set `data_request.products` to include
        `account_verification` when requesting a Connect URL.  Pre-initiating a
        microdeposit is optional. If you choose to implement this flow, it
        should be used for all Connect Widget sessions in verification mode.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MicrodepositRequestBody'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrodepositResponseBody'
  /users/{user_guid}/micro_deposits/{micro_deposit_guid}:
    parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/microDepositGuid'
      - $ref: '#/components/parameters/userGuid'
    delete:
      tags:
        - microdeposits
      operationId: deleteMicrodeposit
      summary: Delete a microdeposit
      description: Use this endpoint to delete the specified microdeposit.
      responses:
        '204':
          description: No Content
    get:
      tags:
        - microdeposits
      operationId: readUserMicrodeposit
      summary: Read a microdeposit for a user
      description: >-
        Use this endpoint to read the attributes of a specific microdeposit
        according to its  unique GUID. <br></br> Webhooks for microdeposit
        status changes are triggered when a  status changes. The actual status
        of the microdeposit guid updates every minute. You may  force a status
        update by calling the read microdeposit endpoint.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrodepositResponseBody'
  /micro_deposits/{micro_deposit_guid}/verify:
    put:
      tags:
        - microdeposits
      operationId: verifyMicrodeposit
      summary: Verify a Microdeposit
      description: >-
        Use this endpoint to verify the amounts deposited into the account
        during a microdeposit verification. The verification has not
        successfully completed until the `status` is `VERIFIED`. Poll the
        `/users/{user_guid}/micro_deposits/{micro_deposit_guid}` (read
        microdeposit) endpoint until you see this status or an error state.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/microDepositGuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MicrodepositVerifyRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrodepositResponseBody'
  /users/{user_guid}/account_verifications:
    get:
      tags:
        - microdeposits
      operationId: listUserVerifications
      summary: List all verifications for a user
      description: >
        This endpoint returns a list of the account verifications associated
        with the user, as well as the status of those verifications.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrodepositResponseBody'
  /users/{user_identifier}/members/{member_identifier}/fetch_rewards:
    post:
      description: >-
        Calling this endpoint initiates an aggregation-type event which will
        gather the member's rewards information, as well as account and
        transaction information. Rewards data is also gathered with daily
        background aggregations. Member and Rewards guids are defined by MX.
      operationId: fetchRewards
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponseBody'
          description: OK
      summary: Fetch Rewards
      tags:
        - rewards
  /users/{user_guid}/members/{member_guid}/rewards:
    get:
      description: >-
        Use this endpoint to list all the `rewards` associated with a specified
        `member`. Member guids are defined by MX.
      operationId: listRewards
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/memberGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardsResponseBody'
          description: OK
      summary: List Rewards
      tags:
        - rewards
  /users/{user_guid}/members/{member_guid}/rewards/{reward_guid}:
    get:
      description: >-
        Use this endpoint to read a specific `reward` based on its unique GUID.
        Member and Rewards guids are defined by MX.
      operationId: readRewards
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/memberGuid'
        - $ref: '#/components/parameters/rewardGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardResponseBody'
          description: OK
      summary: Read Reward
      tags:
        - rewards
  /credit_card_products/{credit_card_product_guid}:
    get:
      description: >-
        This endpoint returns the specified `credit_card_product` according to
        the unique GUID.
      operationId: creditCard
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/creditCardProductGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardProductResponse'
          description: OK
      summary: Read a Credit Card Product
      tags:
        - rewards
  /vc/users/{user_guid}/members/{member_guid}/customers:
    get:
      description: Get an MX-issued verifiable credential of a user's identity data.
      operationId: getIdentityData
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/memberGuid'
      responses:
        '200':
          content:
            application/vnd.mx.api.v2beta+json:
              schema:
                $ref: '#/components/schemas/VCResponse'
          description: OK
      summary: Get Identity Data
      tags:
        - verifiable credentials
  /vc/users/{user_guid}/members/{member_guid}/accounts:
    get:
      description: Get an MX-issued verifiable credential of a user's accounts data.
      operationId: getAccountsData
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/memberGuid'
      responses:
        '200':
          content:
            application/vnd.mx.api.v2beta+json:
              schema:
                $ref: '#/components/schemas/VCResponse'
          description: OK
      summary: Get Accounts Data
      tags:
        - verifiable credentials
  /vc/users/{user_guid}/accounts/{account_guid}/transactions:
    get:
      description: Get an MX-issued verifiable credential of a user's transaction data.
      operationId: getTransactionsData
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/startTime'
        - $ref: '#/components/parameters/endTime'
      responses:
        '200':
          content:
            application/vnd.mx.api.v2beta+json:
              schema:
                $ref: '#/components/schemas/VCResponse'
          description: OK
      summary: Get Transactions Data
      tags:
        - verifiable credentials
components:
  securitySchemes:
    basicAuth:
      scheme: basic
      type: http
      description: >
        The MX Platform API requires basic access authentication using your
        `client_id` and `api_key`. These credentials must be Base64 encoded and
        included in the Authorization header of each API request to ensure
        secure access.


        Here's an example using curl to access `v20250224`. Replace
        `https://int-api.mx.com/endpoint` with the actual API endpoint you wish
        to access and your Base64 encoded `client_id` and `api_key`.


        ```

        curl -L -X POST `https://int-api.mx.com/endpoint' \

        -H 'Content-Type: application/json' \

        -H 'Accept: application/json' \

        -H 'Accept-Version: v20250224'

        -H 'Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}'

        ```
    bearerAuth:
      type: http
      scheme: bearer
  parameters:
    acceptVersion:
      name: Accept-Version
      in: header
      required: true
      schema:
        type: string
        default: v20250224
        example: v20250224
      description: MX Platform API version.
    achReturnGuid:
      name: ach_return_guid
      description: The unique identifier (`guid`) for the ACH return. Defined by MX.
      required: true
      in: path
      schema:
        type: string
    institutionGuid:
      description: >-
        The identifier for the institution associated with the ACH return.
        Defined by MX.
      in: query
      name: institution_guid
      required: false
      schema:
        type: string
    returnedAt:
      description: >-
        The date and time when the return was reported by the Receiving
        Financial Depository Institution (RDFI) in ISO 8601 format without
        timestamp.
      example: '2025-02-13T18:09:00+00:00'
      in: query
      name: returned_at
      required: false
      schema:
        type: string
    resolvedStatusAt:
      description: >-
        The date and time when the return was resolved by the Receiving
        Financial Depository Institution (RDFI) in ISO 8601 format without
        timestamp
      example: '2025-02-13T18:09:00+00:00'
      in: query
      name: resolved_status_at
      required: false
      schema:
        type: string
    returnCode:
      description: >-
        The associated ACH return code and notice of change code. See [Return
        Codes](/api-reference/platform-api/reference/ach-return-fields/#return-codes)
        for a complete list.
      in: query
      name: return_code
      required: false
      schema:
        type: string
    returnStatus:
      description: >-
        The status of the return. See [Return
        Statuses](/api-reference/platform-api/reference/ach-return-fields/#return-status)
        for a complete list.
      example: SUBMITTED
      in: query
      name: return_status
      required: false
      schema:
        type: string
    page:
      description: Results are paginated. Specify current page.
      example: 1
      in: query
      name: page
      schema:
        type: integer
    recordsPerPage:
      description: >-
        This specifies the number of records to be returned on each page.
        Defaults to `25`. The valid range is from `10` to `100`. If the value
        exceeds `100`, the default value of `25` will be used instead.
      example: 10
      in: query
      name: records_per_page
      schema:
        type: integer
    categoryGuid:
      name: category_guid
      description: The unique id for a `category`.
      in: path
      required: true
      schema:
        type: string
        example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
    institutionName:
      description: This will list only institutions in which the appended string appears.
      example: mxbank
      in: query
      name: name
      schema:
        type: string
    isoCountryCode:
      description: >-
        An array of strings that filters institutions in the widget by the
        specified country code. Acceptable codes include `US`, `CA`, and `MX`
        (Mexico).
      required: false
      in: query
      name: iso_country_code
      example:
        - US
        - CA
      schema:
        type: array
        items:
          type: string
    includeBlockedInstitutions:
      description: >-
        When set to `true`, returns all institutions regardless of their
        operational status. When `false` or omitted, only returns institutions
        that are currently operational.
      required: false
      in: query
      name: include_blocked_institutions
      example: true
      schema:
        type: boolean
        default: false
    recordsPerPageMax1000:
      description: >-
        This specifies the number of records to be returned on each page.
        Defaults to `25`. The valid range is from `10` to `1000`. If the value
        exceeds `1000`, the default value of `25` will be used instead.
      example: 10
      in: query
      name: records_per_page
      schema:
        type: integer
    supportedProducts:
      name: supported_products[]
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - account_verification
            - identity_verification
            - transactions
            - transaction_history
            - statements
            - investments
      description: >-
        Filters institutions that support specific products. Values may include
        account_verification, identity_verification, transactions,
        transaction_history, statements, investments.


        For example, institutions that support account_verification and
        statements,
        `?supported_products[]=account_verification&supported_products[]=statements`.
      example:
        - account_verification
        - statements
    institutionCode:
      description: A unique identifier for each institution, defined by MX.
      example: mxbank
      in: path
      name: institution_code
      required: true
      schema:
        type: string
    institutionIdentifier:
      description: >-
        The identifier for the institution. For this identifier, use either the
        `institution_code` or the institution `guid`.
      example: mxbank
      in: path
      name: institution_identifier
      required: true
      schema:
        type: string
    merchantLocationGuid:
      description: The unique id for a `merchant_location`.
      example: MCH-09466f0a-fb58-9d1a-bae2-2af0afbea621
      in: path
      name: merchant_location_guid
      required: true
      schema:
        type: string
    merchantName:
      description: This will list only merchants in which the appended string appears.
      example: Comcast
      in: query
      name: name
      schema:
        type: string
    merchantGuid:
      description: The unique id for a `merchant`.
      example: MCH-7ed79542-884d-2b1b-dd74-501c5cc9d25b
      in: path
      name: merchant_guid
      required: true
      schema:
        type: string
    userId:
      description: The user `id` to search for.
      example: u-12324-abdc
      in: query
      name: id
      schema:
        type: string
    userEmail:
      description: The user `email` to search for.
      example: example@example.com
      in: query
      name: email
      schema:
        type: string
    userIsDisabled:
      description: Search for users that are disabled.
      example: true
      in: query
      name: is_disabled
      schema:
        type: boolean
    userIdentifier:
      description: >-
        Use either the user `id` you defined or the MX-defined user `guid`. See
        [MX-Defined GUIDs vs IDs Defined by
        You​](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
      in: path
      required: true
      name: user_identifier
      schema:
        type: string
    acceptHeader:
      description: Specifies the media type expected in the response.
      in: header
      name: Accept
      required: true
      schema:
        type: string
        example: application/json
    memberIsManagedByUser:
      description: List only accounts whose member is managed by the user.
      example: true
      in: query
      name: member_is_managed_by_user
      schema:
        type: boolean
    accountIsManual:
      description: List only accounts that were manually created.
      example: true
      in: query
      name: is_manual
      schema:
        type: boolean
    useCase:
      description: >-
        The use case associated with the member. Valid values are `PFM` and
        `MONEY_MOVEMENT`. For example, you can append either `?use_case=PFM` or
        `?use_case=MONEY_MOVEMENT`.
      required: false
      in: query
      name: use_case
      schema:
        type: string
    accountGuid:
      description: The unique id for an `account`.
      example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
      in: path
      name: account_guid
      required: true
      schema:
        type: string
    userGuid:
      description: The unique identifier for a `user`, beginning with the prefix `USR-`.
      example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
      in: path
      name: user_guid
      required: true
      schema:
        type: string
    accountIdentifier:
      description: >-
        Use either the account `id` you defined or the MX-defined account
        `guid`. See [MX-Defined GUIDs vs IDs Defined by
        You](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
      in: path
      required: true
      name: account_identifier
      schema:
        type: string
    fromDateRequired:
      description: >-
        Filter transactions from this date. This only supports ISO 8601 format
        without timestamp (YYYY-MM-DD). Defaults to 120 days ago if not
        provided.
      example: '2024-02-01'
      required: true
      in: query
      name: from_date
      schema:
        type: string
    toDateRequired:
      description: >-
        Filter transactions to this date (at midnight). This only supports ISO
        8601 format without timestamp (YYYY-MM-DD). Defaults to 5 days forward
        from the day the request is made to capture pending transactions.
      example: '2024-08-28'
      in: query
      required: true
      name: to_date
      schema:
        type: string
    fromDateUnix:
      description: >-
        Filter transactions from this date. This only supports unix timestamp
        format. Defaults to 120 days ago if not provided.
      example: '1666936800'
      in: query
      name: from_date
      schema:
        type: string
    toDateUnix:
      description: >-
        Filter transactions to this date (at midnight). This only supports unix
        timestamp format. Defaults to 5 days forward from the day the request is
        made to capture pending transactions.
      example: '1698472800'
      in: query
      name: to_date
      schema:
        type: string
    fromCreatedAt:
      name: from_created_at
      in: query
      description: >-
        Filter transactions from the date the transaction was created. This only
        supports unix timestamp format.
      example: '1666936800'
      schema:
        type: string
    toCreatedAt:
      name: to_created_at
      description: >-
        Filter transaction to the date in which the transaction was created.
        This only supports unix timestamp format.
      example: '1698472800'
      in: query
      schema:
        type: string
    fromUpdatedAt:
      name: from_updated_at
      description: >-
        Filter transactions from the date in which the transaction was updated.
        This only supports unix timestamp format.
      example: '1666936800'
      in: query
      schema:
        type: string
    toUpdatedAt:
      name: to_updated_at
      description: >-
        Filter transactions to the date in which the transaction was updated.
        This only supports unix timestamp format.
      example: '1698472800'
      in: query
      schema:
        type: string
    includes:
      description: >
        Options for enhanced transactions. This query parameter is optional.
        Possible additional metadata: `repeating_transactions`, `merchants`,
        `classifications`, `geolocations`. The query value is format sensitive.
        To retrieve all available enhancements, append:


        `?includes=repeating_transactions,merchants,classifications,geolocations`. 
         
        The query options may be combined to specific enhancements. For example,
        to request Repeating Transactions and Geolocation data, use: 


        `?includes=repeating_transactions,geolocations`.


        - Repeating Transactions: Identifies transactions with predictable
        recurrence patterns (e.g., Bill, Income, Subscription).

        - Merchants: Enriches transactions with merchant name.

        - Classifications: Provides more insight into the type of money movement
        that is occurring on the transaction, whether it be retail or
        investments.

        - Geolocation: Provides geographic metadata.
      example: repeating_transactions,merchants,classifications,geolocations
      in: query
      name: includes
      required: false
      schema:
        type: string
    memberIdentifier:
      description: >-
        Use either the member `id` you defined or the MX-defined member `guid`.
        See [MX-Defined GUIDs vs IDs Defined by
        You](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
      name: member_identifier
      in: path
      required: true
      schema:
        type: string
    jobGuid:
      description: The unique identifier for the job. Defined by MX.
      name: job_guid
      required: true
      in: path
      schema:
        type: string
    insightGuid:
      description: The unique identifier for the insight. Defined by MX.
      example: BET-1234-abcd
      in: path
      name: insight_guid
      required: true
      schema:
        type: string
    memberGuid:
      description: The unique id for a `member`.
      example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
      in: path
      name: member_guid
      required: true
      schema:
        type: string
    fromDate:
      description: >-
        Filter transactions from this date. This only supports ISO 8601 format
        without timestamp (YYYY-MM-DD). Defaults to 120 days ago if not
        provided.
      example: '2024-02-01'
      in: query
      name: from_date
      schema:
        type: string
    toDate:
      description: >-
        Filter transactions to this date (at midnight). This only supports ISO
        8601 format without timestamp (YYYY-MM-DD). Defaults to 5 days forward
        from the day the request is made to capture pending transactions.
      example: '2024-08-28'
      in: query
      name: to_date
      schema:
        type: string
    transactionGuid:
      description: The unique id for a `transaction`.
      example: TRN-810828b0-5210-4878-9bd3-f4ce514f90c4
      in: path
      name: transaction_guid
      required: true
      schema:
        type: string
    xCallback:
      description: >-
        The base64 encoded string defined in this header will be returned in the
        [Member](/resources/webhooks/member/) and [Member Data
        Updated](/resources/webhooks/member/#member-data-updated) webhooks. This
        allows you to trace user interactions and workflows initiated externally
        and internally in the MX Platform. Max 1024 characters.
      example: 813e50bd-4a7e-4517-b6bb-9eef65a68cbd
      in: header
      name: X-CALLBACK-PAYLOAD
      schema:
        type: string
    holdingGuid:
      description: The unique id for a `holding`.
      example: HOL-d65683e8-9eab-26bb-bcfd-ced159c9abe2
      in: path
      name: holding_guid
      required: true
      schema:
        type: string
    clientRedirectUrl:
      description: >-
        A URL that MX will redirect to at the end of OAuth with additional query
        parameters. Only available with `referral_source=APP`.
      example: https://{yoursite.com}
      in: query
      name: client_redirect_url
      schema:
        type: string
    enableApp2app:
      description: >-
        This indicates whether OAuth app2app behavior is enabled for
        institutions that support it. Defaults to `true`. When set to `false`,
        any `oauth_window_uri` generated will **not** direct the end user to the
        institution's mobile application. This setting is not persistent. This
        setting currently only affects Chase institutions.
      example: 'false'
      in: query
      name: enable_app2app
      schema:
        type: string
    referralSource:
      description: >-
        Must be either `BROWSER` or `APP` depending on the implementation.
        Defaults to `BROWSER`.
      example: APP
      in: query
      name: referral_source
      schema:
        type: string
    skipAggregation:
      description: >-
        Setting this parameter to `true` will prevent the member from
        automatically aggregating after being redirected from the authorization
        page.
      example: false
      in: query
      name: skip_aggregation
      schema:
        type: boolean
    uiMessageWebviewUrlScheme:
      description: >-
        A scheme for routing the user back to the application state they were
        previously in. Only available with `referral_source=APP`.
      in: query
      name: ui_message_webview_url_scheme
      schema:
        type: string
    statementGuid:
      description: The unique id for a `statement`.
      example: STA-737a344b-caae-0f6e-1384-01f52e75dcb1
      in: path
      name: statement_guid
      required: true
      schema:
        type: string
    fromTimestamp:
      name: from_timestamp
      in: query
      description: >-
        Filter transactions from the date the transaction was created. This only
        supports unix timestamp format.
      example: '1666936800'
      schema:
        type: string
    toTimestamp:
      name: to_timestamp
      description: >-
        Filter transaction to the date in which the transaction was created.
        This only supports unix timestamp format.
      example: '1698472800'
      in: query
      schema:
        type: string
    spendingPlanGuid:
      description: The unique ID for the `spending_plan`.
      example: SPL-e5f9a5bd-c5b3-4901-bdc0-62119b9db262
      in: path
      name: spending_plan_guid
      required: true
      schema:
        type: string
    spendingPlanAccountGuid:
      description: The unique ID for the specified account.
      example: ACT-e9f80fee-84da-7s7r-9a5e-0346g4279b4c
      in: path
      name: spending_plan_account_guid
      required: true
      schema:
        type: string
    iterationItemGuid:
      description: The unique ID for the `iteration_item`.
      example: SII-a4dc1549-da28-1245-9c9c-53eee4cdfbe3
      in: path
      name: iteration_item_guid
      required: true
      schema:
        type: string
    iterationNumber:
      description: The current iteration number for the spending plan `iteration`.
      example: 1
      in: path
      name: iteration_number
      required: true
      schema:
        type: integer
    taggingGuid:
      description: The unique id for a `tagging`.
      example: TGN-007f5486-17e1-45fc-8b87-8f03984430fe
      in: path
      name: tagging_guid
      required: true
      schema:
        type: string
    tagGuid:
      description: The unique id for a `tag`.
      example: TAG-aef36e72-6294-4c38-844d-e573e80aed52
      in: path
      name: tag_guid
      required: true
      schema:
        type: string
    transactionRuleGuid:
      description: The unique id for a `transaction_rule`.
      example: TXR-a080e0f9-a2d4-4d6f-9e03-672cc357a4d3
      in: path
      name: transaction_rule_guid
      required: true
      schema:
        type: string
    transactionIdentifier:
      description: >-
        Use either the transaction `id` you defined or the MX-defined
        transaction `guid`. See [MX-Defined GUIDs vs IDs Defined by
        You​](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
      in: path
      required: true
      name: transaction_identifier
      schema:
        type: string
    acceptLanguage:
      description: The desired language of the widget.
      example: en-US
      in: header
      name: Accept-Language
      schema:
        type: string
    budgetGuid:
      name: budget_guid
      description: The unique identifier for the budget. Defined by MX.
      required: true
      in: path
      schema:
        type: string
    goalGuid:
      name: goal_guid
      description: The unique identifier for a goal. Defined by MX.
      required: true
      in: path
      schema:
        type: string
    notificationGuid:
      name: notification_guid
      description: The unique identifier for notifications. Defined by MX.
      example: NTF-b53294f5-2356-4782-9f81-ae064c42b40a
      in: path
      required: true
      schema:
        type: string
    repeatingTransactionGuid:
      description: The unique id for a recurring transaction.
      example: TRN-810828b0-5210-4878-9bd3-f4ce514f90c4
      in: path
      name: repeating_transaction_guid
      required: true
      schema:
        type: string
    microDepositGuid:
      name: micro_deposit_guid
      description: The unique identifier for the microdeposit. Defined by MX.
      in: path
      required: true
      example: MIC-09ba578e-8448-4f7f-89e1-b62ff2517edb
      schema:
        type: string
    rewardGuid:
      description: The unique identifier for the rewards. Defined by MX.
      example: RWD-fa7537f3-48aa-a683-a02a-b324322f54
      in: path
      name: reward_guid
      required: true
      schema:
        type: string
    creditCardProductGuid:
      description: >-
        The required `credit_card_product_guid` can be found on the `account`
        object.
      example: credit_card_product_guid
      in: path
      name: credit_card_product_guid
      required: true
      schema:
        type: string
    startTime:
      description: >-
        Filter transactions from this date. Must be in the format YYYY-MM-DD.
        The range is limited to 1 year.
      example: '2015-09-20'
      in: query
      name: startTime
      schema:
        type: string
    endTime:
      description: >-
        Filter transactions to this date. Must be in the format YYYY-MM-DD. The
        range is limited to 1 year.
      example: '2015-09-20'
      in: query
      name: endTime
      schema:
        type: string
  schemas:
    AuthorizationCodeRequest:
      properties:
        scope:
          example: >-
            user-guid:USR-101ad774-288b-44ed-ad16-da87d522ea20
            member-guid:MBR-54feffb9-8474-47bd-8442-de003910113a
            account-guid:ACT-32a64160-582a-4f00-ab34-5f49cc35ed35 read-protected
          nullable: true
          type: string
      type: object
    AuthorizationCodeRequestBody:
      properties:
        authorization_code:
          $ref: '#/components/schemas/AuthorizationCodeRequest'
      type: object
    AuthorizationCodeResponse:
      properties:
        code:
          example: 9nN-9D8_4Z3WYazx7-zXfmqsD3jwgL_2W927Sb3otI
          nullable: true
          type: string
      type: object
    AuthorizationCodeResponseBody:
      properties:
        authorization_code:
          $ref: '#/components/schemas/AuthorizationCodeResponse'
      type: object
    ACHResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        account_number_last_four:
          description: >-
            The last 4 digits of the account number used for the transaction by
            the Originating Depository Financial Institution (ODFI).
          example: '1234'
          nullable: true
          type: string
        account_type:
          description: The type of account. Some account types may include subtypes.
          example: CHECKING
          nullable: true
          type: string
          enum:
            - ANY
            - CASH
            - CHECKING
            - CHECKING_LINE_OF_CREDIT
            - CREDIT_CARD
            - LOAN
            - LINE_OF_CREDIT
            - SAVINGS
            - INVESTMENT
            - MORTGAGE
            - INSURANCE
            - PREPAID
            - PROPERTY
        ach_initiated_at:
          description: >-
            The date and time when the transaction was initiated by the
            Originating Depository Financial Institution (ODFI) in ISO 8601
            format without timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        client_guid:
          description: >-
            The unique identifier for the client associated with the insight.
            Defined by MX.
          example: CLT-abcd-1234
          nullable: false
          type: string
        corrected_account_number:
          description: >-
            The account number correction reported by the RDFI. Populate only if
            the `resolution_code` is `NOTICE_OF_CHANGE`.
          example: null
          nullable: true
          type: string
        corrected_routing_number:
          description: >-
            The routing number correction reported by the RDFI. Populated only
            if the `resolution_code` is `NOTICE_OF_CHANGE`. Must be a valid
            9-digit routing number format.
          example: null
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the ACH return was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: false
          type: string
        guid:
          description: The unique identifier for the ACH return record. Defined by MX.
          example: ACH-d74cb14f-fd0a-449f-991b-e0362a63d9c6
          nullable: false
          type: string
        id:
          description: >-
            Client-defined identifier for this specific return submission.
            Allows you to track and reference your requests.
          example: client_ach_return_id_1234
          nullable: false
          type: string
        institution_guid:
          description: The unique identifier for an institution. Defined by MX.
          example: INS-34r4f44b-cfge-0f6e-3484-21f47e45tfv7
          nullable: false
          type: string
        investigation_notes:
          description: >-
            Notes added by Product Support during investigation of the ACH
            return.
          example: null
          nullable: true
          type: string
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: false
          type: string
        processing_errors:
          description: Any errors that occurred during processing.
          example: null
          nullable: true
          type: string
        resolution_code:
          description: >-
            A short, machine-readable code that categorizes the type of
            resolution or reason for the status. See [Resolution
            Codes](/api-reference/platform-api/reference/ach-return-fields#resolution-codes)
            for a complete list.
          example: null
          nullable: true
          type: string
        resolution_detail:
          description: >-
            A more detailed, human-readable message providing context and next
            steps related to the `return_status` and `resolution_code`.
          example: null
          nullable: true
          type: string
        resolved_status_at:
          description: Date and time when the return was marked as resolved.
          example: null
          nullable: true
          type: string
        return_code:
          description: >-
            The associated ACH return codes and notice of change codes (for
            example, R02, R03, R04, R05, R20, NOC). See [Return
            Codes](/api-reference/platform-api/reference/ach-return-fields#return-codes)
            for a complete list
          example: R01
          nullable: false
          type: string
        return_notes:
          description: Notes that you set to inform MX on internal ACH processing.
          example: null
          nullable: true
          type: string
        return_account_number:
          description: Incorrect account number used in the ACH transaction.
          example: null
          nullable: true
          type: string
        return_routing_number:
          description: Incorrect routing number used in the ACH transaction.
          example: null
          nullable: true
          type: string
        return_status:
          description: >-
            The current processing status of the ACH return. See [Return
            Status](/api-reference/platform-api/reference/ach-return-fields#return-status)
            for a complete list of statuses.
          example: SUBMITTED
          nullable: true
          type: string
        returned_at:
          description: >-
            The date and time when the return was reported by the Receiving
            Financial Depository Institution (RDFI) in ISO 8601 format without
            timestamp.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        sec_code:
          description: >-
            The three-letter SEC code (Standard Entry Class Code) describing how
            a payment was authorized (for example, `WEB`). See [SEC
            Codes](/api-reference/platform-api/reference/ach-return-fields#sec-codes)
            for a complete list.
          example: PPD
          nullable: true
          type: string
        started_processing_at:
          description: Date and time when MX started processing the return.
          example: null
          nullable: true
          type: string
        submitted_at:
          description: Date and time when the record was submitted through the API.
          example: null
          nullable: true
          type: string
        transaction_amount:
          description: The amount of the transaction.
          example: 225.84
          format: double
          nullable: true
          type: number
        updated_at:
          description: Date and time when the ACH return record was last updated.
          example: 'null'
          nullable: false
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: false
          type: string
      type: object
    ACHReturnResponseBody:
      properties:
        ach_return:
          $ref: '#/components/schemas/ACHResponse'
      type: object
    PaginationResponse:
      properties:
        current_page:
          description: The page delivered by the current response.
          example: 1
          type: integer
        per_page:
          description: The number of records delivered with each page.
          example: 25
          type: integer
        total_entries:
          description: The total number of records available.
          example: 1
          type: integer
        total_pages:
          description: The total number of pages available.
          example: 1
          type: integer
      type: object
    ACHReturnsResponseBody:
      properties:
        ach_returns:
          items:
            $ref: '#/components/schemas/ACHResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    ACHReturnCreateRequest:
      properties:
        account_guid:
          description: >-
            The unique identifier for the account associated with the
            transaction. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        account_number_last_four:
          description: >-
            The last 4 digits of the account number used for the transaction by
            the Originating Depository Financial Institution (ODFI).
          example: '1234'
          nullable: true
          type: string
        ach_initiated_at:
          description: >-
            The date and time when the transaction was initiated by the
            Originating Depository Financial Institution (ODFI) in ISO 8601
            format without timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        corrected_account_number:
          description: >-
            The account number correction reported by the RDFI. Populate only if
            the `resolution_code` is `NOTICE_OF_CHANGE`.
          example: null
          nullable: true
          type: string
        corrected_routing_number:
          description: >-
            The routing number correction reported by the RDFI. Populated only
            if the `resolution_code` is `NOTICE_OF_CHANGE`. Must be a valid
            9-digit routing number format.
          example: null
          nullable: true
          type: string
        id:
          description: >-
            Client-defined identifier for this specific return submission.
            Allows you to track and reference you requests.
          example: client_ach_id_1234
          nullable: false
          type: string
        member_guid:
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          description: >-
            The unique identifier for the member associated with the
            transaction. Defined by MX.
          nullable: false
          type: string
        return_account_number:
          description: Incorrect account number used in the ACH transaction.
          example: 'null'
          type: string
        return_code:
          description: >-
            A short, machine-readable code that categorizes the type of
            resolution or reason for the status. See [Resolution
            Codes](/api-reference/platform-api/reference/ach-return-fields/#resolution-codes)
            for a complete list.
          example: R01
          nullable: false
          type: string
        return_notes:
          description: Notes that you set to inform MX on internal ACH processing.
          example: 'null'
          type: string
        return_routing_number:
          description: Incorrect routing number used in the ACH transaction.
          example: 'null'
          type: string
        returned_at:
          description: >-
            The date and time when the return was reported by the Receiving
            Financial Depository Institution (RDFI) in ISO 8601 format without
            timestamp.
          example: '2025-02-13T18:09:00+00:00'
          type: string
        sec_code:
          description: >-
            The SEC code (Standard Entry Class Code)–a three-letter code
            describing how a payment was authorized (for example, `WEB`). See
            [SEC Codes](#sec-codes) for a complete list.
          example: PPD
          type: string
        transaction_amount:
          description: The amount of the transaction.
          example: 225.84
          type: number
        transaction_amount_range:
          description: The transaction amount range, used for impact assessment.
          example: 0
          type: number
        user_guid:
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          description: MX-defined identifier for the user associated with the ACH return.
          nullable: false
          type: string
      required:
        - member_guid
        - account_guid
        - id
        - user_guid
        - return_code
    ACHReturnCreateRequestBody:
      properties:
        ach_return:
          $ref: '#/components/schemas/ACHReturnCreateRequest'
      type: object
    CategoryResponse:
      properties:
        created_at:
          description: >-
            The date and time the category was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
          nullable: true
          type: string
        is_default:
          description: >-
            Indicates whether the category is an MX-created default category.
            This will always be `false` for custom categories.
          example: true
          nullable: true
          type: boolean
        is_income:
          description: Indicates whether the transaction is income.
          example: false
          nullable: true
          type: boolean
        metadata:
          description: Additional information you stored on the `category`.
          example: some metadata
          nullable: true
          type: string
        name:
          example: Auto Insurance
          nullable: true
          type: string
          description: The name of the category.
        parent_guid:
          description: The unique identifier for the parent category. Defined by MX.
          example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
      type: object
    CategoriesResponseBody:
      properties:
        categories:
          items:
            $ref: '#/components/schemas/CategoryResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    CategoryResponseBody:
      properties:
        category:
          $ref: '#/components/schemas/CategoryResponse'
      type: object
    SupportedProducts:
      type: string
      enum:
        - account_verification
        - identity_verification
        - transactions
        - transaction_history
        - statements
        - investments
        - rewards
    InstitutionResponse:
      properties:
        client_status:
          description: >
            The client-level status of the institution, indicating restrictions
            on member connections.
          example: AVAILABLE
          type: string
          enum:
            - AVAILABLE
            - PREVENT_ALL
            - PREVENT_NEW
            - PREVENT_ALL_AND_DISCONNECT
            - PREVENT_VERIFICATION
            - PREVENT_BACKGROUND_AGG
        code:
          description: The code identifying a financial institution.
          example: mxbank
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the institution was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        forgot_password_url:
          description: URL for the forgot password page of the institution.
          example: https://example.url.mxbank.com/forgot-password
          nullable: true
          type: string
        forgot_username_url:
          description: URL for the forgot username page of the institution.
          example: https://example.url.mxbank.com/forgot-username
          nullable: true
          type: string
        guid:
          description: The unique identifier for the institution. Defined by MX.
          example: INS-1572a04c-912b-59bf-5841-332c7dfafaef
          type: string
        instructional_text:
          description: >-
            Render this text when end users are asked for their credentials, as
            it helps end users provide the correct credentials when creating a
            new member. May contain `<a></a>` tags to link to explanatory
            material.
          example: >-
            Some instructional text <a
            href="https://example.url.mxbank.com/instructions"
            id="instructional_text">for end users</a>.
          nullable: true
          type: string
        instructional_text_steps:
          type: array
          items:
            type: string
          description: An array of instructional steps that may contain html elements.
          example:
            - 'Step 1: Do this.'
            - 'Step 2: Do that.'
          nullable: true
        is_disabled_by_client:
          description: Indicates whether the institution is disabled by the client.
          example: false
          nullable: true
          type: boolean
        is_hidden:
          example: true
          type: boolean
          description: >-
            If the institution is available for creating new member connections,
            this field will be `false`. Otherwise, this field will be `true`.
        iso_country_code:
          description: The ISO country code associated with the institution.
          example: US
          type: string
          enum:
            - US
            - CA
        medium_logo_url:
          description: >-
            The URL for a 100px X 100px logo for each `institution`. A generic
            logo is returned for institutions that don't have one.
          example: >-
            https://content.moneydesktop.com/storage/MD_Assets/Ipad%20Logos/100x100/default_100x100.png
          nullable: true
          type: string
        name:
          description: The name of the institution.
          example: MX Bank
          nullable: true
          type: string
        small_logo_url:
          description: >-
            The URL for a 50px X 50px logo for each `institution`. A generic
            logo is returned for institutions that don't have one.
          example: >-
            https://content.moneydesktop.com/storage/MD_Assets/Ipad%20Logos/50x50/default_50x50.png
          nullable: true
          type: string
        status:
          description: |
            The operational status of the institution.
          example: OPERATIONAL
          type: string
          enum:
            - OPERATIONAL
            - MAINTENANCE
            - DEGRADED
            - UNAVAILABLE
        supported_products:
          items:
            $ref: '#/components/schemas/SupportedProducts'
        supports_oauth:
          description: >
            If true, this indicates that the institution supports OAuth and that
            you have been properly registered for OAuth with that institution.
          example: true
          nullable: true
          type: boolean
        supports_tax_document:
          description: This indicates whether the institution supports tax documents.
          example: true
          nullable: true
          type: boolean
        trouble_signing_in_url:
          description: >-
            The URL of the institution for helping users troubleshoot any other
            sign-in issue.
          example: https://example.url.mxbank.com/login-trouble
          nullable: true
          type: string
        url:
          description: The URL for an institution's website.
          example: https://www.mxbank.com
          nullable: true
          type: string
      type: object
    InstitutionsResponseBody:
      properties:
        institutions:
          items:
            $ref: '#/components/schemas/InstitutionResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    InstitutionResponseBody:
      properties:
        institution:
          $ref: '#/components/schemas/InstitutionResponse'
      type: object
    CredentialResponse:
      properties:
        display_order:
          example: 1
          nullable: true
          type: integer
        field_name:
          example: LOGIN
          nullable: true
          type: string
        field_type:
          example: TEXT
          nullable: true
          type: string
        guid:
          example: CRD-1ec152cd-e628-e81a-e852-d1e7104624da
          nullable: true
          type: string
        label:
          example: Username
          nullable: true
          type: string
        type:
          example: TEXT
          nullable: true
          type: string
      type: object
    CredentialsResponseBody:
      properties:
        credentials:
          items:
            $ref: '#/components/schemas/CredentialResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    MerchantLocationResponse:
      properties:
        city:
          description: The city name.
          example: North Kishaberg
          nullable: true
          type: string
        country:
          description: The country name.
          example: US
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the merchant was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        guid:
          description: The unique identifier for the merchant location. Defined by MX.
          example: MCL-00024e59-18b5-4d79-b879-2a7896726fea
          nullable: true
          type: string
        latitude:
          description: >-
            The latitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's latitude
            is -22.9027800 and Tokyo's latitude is 35.689488).
          example: 39.5963005
          nullable: true
          type: number
        longitude:
          description: >-
            The longitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's longitude
            is -43.2075000 and Tokyo's longitude is 139.691706).
          example: -104.89158799999998
          nullable: true
          type: number
        merchant_guid:
          description: The unique identifier for the merchant. Defined by MX.
          example: MCH-09466f0a-fb58-9d1a-bae2-2af0afbea621
          nullable: true
          type: string
        phone_number:
          description: The phone number of the merchant location.
          example: (303) 689-0728
          nullable: true
          type: string
        postal_code:
          description: The postal code of the merchant location.
          example: '801121436'
          nullable: true
          type: string
        state:
          description: The state abbreviation of the merchant location.
          example: CO
          nullable: true
          type: string
        street_address:
          description: The street address of the merchant location.
          example: 8547 E Arapahoe Rd, Ste 1
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
      type: object
    MerchantLocationResponseBody:
      properties:
        merchant_location:
          $ref: '#/components/schemas/MerchantLocationResponse'
      type: object
    MerchantResponse:
      properties:
        created_at:
          description: >-
            The date and time the merchant was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        guid:
          description: The unique identifier for the merchant. Defined by MX.
          example: MCH-7ed79542-884d-2b1b-dd74-501c5cc9d25b
          nullable: true
          type: string
        logo_url:
          description: The URL for a 100px X 100px logo for the merchant.
          example: https://s3.amazonaws.com/MD_Assets/merchant_logos/comcast.png
          nullable: true
          type: string
        name:
          description: The name of the merchant.
          example: Comcast
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        website_url:
          description: URL to the merchant's website.
          example: https://www.example.com
          nullable: true
          type: string
      type: object
    MerchantsResponseBody:
      properties:
        merchants:
          items:
            $ref: '#/components/schemas/MerchantResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    MerchantResponseBody:
      properties:
        merchant:
          $ref: '#/components/schemas/MerchantResponse'
      type: object
    EnhanceTransactionsRequest:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: true
          type: number
        description:
          description: The description of the `transaction` to be enhanced.
          example: ubr* pending.uber.com
          type: string
        extended_transaction_type:
          description: The transaction type assigned by the partner.
          example: partner_transaction_type
          type: string
        id:
          description: The unique partner-defined identifier for the `transaction`.
          example: ID-123
          type: string
        memo:
          description: >-
            This field contains additional descriptive information about the
            `transaction`.
          example: Additional-information*on_transaction
          type: string
        merchant_category_code:
          description: The ISO 18245 category code for the `transaction`.
          example: 4121
          type: integer
        type:
          description: The type of transaction. Can be either `CREDIT` or `DEBIT`.
          example: DEBIT
          type: string
          enum:
            - CREDIT
            - DEBIT
      required:
        - description
        - id
      type: object
    EnhanceTransactionsRequestBody:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/EnhanceTransactionsRequest'
          type: array
      type: object
    EnhanceTransactionResponse:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: true
          type: number
        categorized_by:
          description: >-
            The method used to determine the category assigned to the
            transaction.
          example: 13
          nullable: true
          type: integer
        category:
          description: The category of the `transaction`.
          example: Paycheck
          nullable: true
          type: string
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        described_by:
          description: The method used to describe the `transaction`.
          example: 6
          nullable: true
          type: integer
        description:
          description: >-
            A human-readable version of the `original_description` field. This
            is provided by the MX Platform.
          example: Uber
          nullable: true
          type: string
        extended_transaction_type:
          description: The transaction type assigned by the partner.
          example: partner_transaction_type
          nullable: true
          type: string
        id:
          description: The unique partner-defined identifier for the transaction.
          example: ID-123
          nullable: true
          type: string
        is_bill_pay:
          description: Indicates whether the transaction is a bill payment.
          example: false
          nullable: true
          type: boolean
        is_direct_deposit:
          description: Indicates whether the transaction is a direct deposit.
          example: false
          nullable: true
          type: boolean
        is_expense:
          description: Indicates whether the transaction is an expense.
          example: false
          nullable: true
          type: boolean
        is_fee:
          description: Indicates whether the transaction is a fee.
          example: false
          nullable: true
          type: boolean
        is_income:
          description: Indicates whether the transaction is income.
          example: false
          nullable: true
          type: boolean
        is_international:
          description: >-
            Indicates whether the transaction is international. If the data
            provider determines it isn't international then it will be `false`.
            It will be `null` if the data provider does not have this
            information.
          example: false
          type: boolean
        is_overdraft_fee:
          description: Indicates whether the transaction is an overdraft fee.
          example: false
          nullable: true
          type: boolean
        is_payroll_advance:
          description: Indicates whether the transaction is a payroll advance.
          example: false
          nullable: true
          type: boolean
        is_subscription:
          description: Indicates whether the transaction is a subscription payment.
          example: false
          nullable: true
          type: boolean
        memo:
          description: >-
            This field contains additional descriptive information about the
            `transaction`.
          example: Additional-information*on_transaction
          nullable: true
          type: string
        merchant_category_code:
          description: The ISO 18245 category code for the `transaction`.
          example: 4121
          nullable: true
          type: integer
        merchant_guid:
          description: >-
            The unique identifier for the merchant associated with this
            `transaction`. Defined by MX.
          example: MCH-14f25b63-ef47-a38e-b2b6-d02b280b6e4e
          nullable: true
          type: string
        merchant_location_guid:
          description: >-
            The unique identifier for the `merchant_location` associated with
            this `transaction`. Defined by MX.
          example: MCL-00024e59-18b5-4d79-b879-2a7896726fea
          nullable: true
          type: string
        original_description:
          description: >-
            The original description of the `transaction` as provided by our
            data feed.
          example: ubr* pending.uber.com
          nullable: true
          type: string
        top_level_category_guid:
          description: >-
            The unique identifier for the `top_level_category` associated with
            this `transaction`. Defined by MX.
          example: CAT-9588eaad-90a4-bb5c-66c8-1812503d0db8
          nullable: true
          type: string
        type:
          description: The type of transaction.
          example: DEBIT
          nullable: true
          type: string
          enum:
            - CREDIT
            - DEBIT
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    EnhanceTransactionsResponseBody:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/EnhanceTransactionResponse'
          type: array
      type: object
    UserResponse:
      properties:
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
        guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-d74cb14f-fd0a-449f-991b-e0362a63d9c6
          nullable: true
          type: string
        id:
          description: The unique partner-defined identifier for the user.
          example: My-Unique-ID
          nullable: true
          type: string
        is_disabled:
          description: Indicates whether the user has been disabled. Defaults to `false`.
          example: false
          nullable: true
          type: boolean
        metadata:
          description: Additional information you stored about the `user`.
          example: '{\"first_name\": \"Steven\", \"last_name\": \"Universe\"}'
          nullable: true
          type: string
      type: object
    UsersResponseBody:
      properties:
        users:
          items:
            $ref: '#/components/schemas/UserResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    UserCreateRequest:
      properties:
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
        id:
          description: The unique partner-defined identifier for the user.
          example: My-Unique-ID
          type: string
        is_disabled:
          description: Indicates whether the user has been disabled. Defaults to `false`.
          example: false
          type: boolean
        metadata:
          description: Additional information you can store about the `user`.
          example: '{\"type\": \"individual\", \"status\": \"preferred\"}'
          type: string
      type: object
    UserCreateRequestBody:
      properties:
        user:
          $ref: '#/components/schemas/UserCreateRequest'
      type: object
    UserResponseBody:
      properties:
        user:
          $ref: '#/components/schemas/UserResponse'
      type: object
    UserUpdateRequest:
      properties:
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
        id:
          description: The unique partner-defined identifier for the user.
          example: My-Unique-ID
          type: string
        is_disabled:
          description: Indicates whether the user has been disabled. Defaults to `false`.
          example: false
          type: boolean
        metadata:
          description: Additional information you can store about the `user`.
          example: '{\"first_name\": \"Steven\", \"last_name\": \"Universe\"}'
          type: string
      type: object
    UserUpdateRequestBody:
      properties:
        user:
          $ref: '#/components/schemas/UserUpdateRequest'
      type: object
    AccountResponse:
      properties:
        account_number:
          description: >-
            The account number associated with the account. This will typically
            be a masked or partial account number.
          example: '3331261'
          type: string
          nullable: true
        account_ownership:
          description: >-
            The type of ownership associated with the account. `NULL` is
            returned if not received in the data feed.
          example: INDIVIDUAL
          nullable: true
          type: string
          enum:
            - UNKNOWN
            - INDIVIDUAL
            - JOINT
            - MULTIPLE
            - null
        annuity_policy_to_date:
          description: The date until which the policy is in effect.
          example: '2025-12-31'
          nullable: true
          type: string
        annuity_provider:
          description: The provider of the insurance policy.
          example: Metlife
          nullable: true
          type: string
        annuity_term_year:
          description: >-
            The effective duration of an insurance policy (one year, five years,
            etc.).
          example: 30
          nullable: true
          type: integer
        apr:
          description: The annual percentage rate associated with the `account`.
          example: 1
          nullable: true
          type: number
        apy:
          description: The annual percentage yield associated with the `account`.
          example: 2.35
          nullable: true
          type: number
        available_balance:
          description: >
            The balance that is available for use in asset accounts like
            checking and savings.


            `PENDING` transactions are typically (not always) taken into account
            with the available balance.


            `available_balance` will usually be a positive value for all account
            types, determined in the same way as the balance field.
          example: 1000
          type: number
          nullable: true
        available_credit:
          description: >
            The amount of credit available for use in liability accounts like
            credit cards and lines of credit.


            `PENDING` transactions are typically (not always) taken into account
            with available credit.


            `available_credit` will usually be a positive value for all account
            types, determined in the same way as the `balance` field.
          example: 4000
          nullable: true
          type: number
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
          nullable: true
        cash_balance:
          description: The cash balance of the `account`.
          example: 2500
          nullable: true
          type: number
        cash_surrender_value:
          description: >-
            The sum of money paid to the policyholder or annuity holder in the
            event the policy is voluntarily terminated before it matures, or the
            insured event occurs.
          example: 1000
          type: number
          nullable: true
        created_at:
          description: >-
            The date and time the account was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: false
          type: string
        credit_limit:
          description: The credit limit associated with the `account`.
          example: 5000
          nullable: true
          type: number
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        day_payment_is_due:
          description: >-
            The day of the month the payment is due. For example, the 14th is
            passed as `14`.
          example: 14
          nullable: true
          type: integer
        death_benefit:
          description: >-
            The amount paid to the beneficiary of the account upon death of the
            account owner.
          example: 1000
          nullable: true
          type: integer
        federal_insurance_status:
          description: >
            The federal insurance status of the account. Indicates whether the
            account is insured by the FDIC (banks) or NCUA (credit unions).


            Returns an integer (`UNKNOWN_INSURED` = 0, `INSURED` = 1,
            `NOT_INSURED` = 2).
          example: INSURED
          nullable: true
          type: string
          enum:
            - UNKNOWN_INSURED
            - INSURED
            - NOT_INSURED
        guid:
          description: Unique identifier for the account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: true
          type: string
        id:
          description: The unique partner-defined identifier for the account.
          example: '1040434698'
          nullable: true
          type: string
        imported_at:
          description: >-
            The date and time at which the `account` was last successfully
            aggregated and received data.
          example: '2015-10-13T17:57:37.000Z'
          nullable: true
          type: string
        interest_rate:
          description: The interest rate associated with the account.
          example: 3.25
          nullable: true
          type: number
        institution_code:
          description: The code identifying a financial institution.
          example: 3af3685e-05d9-7060-359f-008d0755e993
          nullable: true
          type: string
        insured_name:
          description: The name of the insured person.
          example: Tommy Shelby
          nullable: true
          type: string
        is_closed:
          description: >-
            Indicates whether an account has been closed. Closed accounts will
            no longer update balance or transaction information.
          example: false
          type: boolean
        is_hidden:
          description: >-
            Indicates whether the account is hidden. Hidden accounts can still
            have an active balance and receive transactions. Defaults to
            `false`.
          example: false
          nullable: true
          type: boolean
        is_manual:
          description: >-
            Indicates whether the transaction was manually created or belongs to
            a manual account.
          example: false
          nullable: true
          type: boolean
        last_payment:
          description: The amount of the most recent payment on the `account`.
          example: 100
          nullable: true
          type: number
        last_payment_at:
          description: >-
            The date and time when the last payment was made, represented in ISO
            8601 format with a timestamp.
          example: '2023-07-25T17:14:46Z'
          nullable: true
          type: string
        loan_amount:
          description: The amount of the loan associated with the `account`.
          example: 1000
          nullable: true
          type: number
        margin_balance:
          description: >-
            Represents the amount of debt the investor owes to the broker for
            the use of margin. It can be positive or negative, depending on the
            performance of the investments made with the borrowed funds. A
            positive margin balance indicates that the securities purchased on
            margin have increased in value, whereas a negative margin balance
            signifies that the securities have decreased in value.
          example: 1000
          nullable: true
          type: number
        matures_on:
          description: The date on which the `account` matures.
          example: '2015-10-13T17:57:37.000Z'
          nullable: true
          type: string
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        member_id:
          description: >-
            The unique, partner-defined, identifier for the member associated
            with this `account`.
          example: member123
          nullable: true
          type: string
        member_is_managed_by_user:
          description: >-
            This indicates whether the member is managed by the user or the MX
            partner. Members created with the managed member feature will have
            this field set to `false`.
          example: false
          nullable: true
          type: boolean
        metadata:
          description: Additional information you stored about the `account`.
          example: some metadata
          nullable: true
          type: string
        minimum_balance:
          description: The minimum balance associated with the `account`.
          example: 100
          nullable: true
          type: number
        minimum_payment:
          description: >-
            The minimum payment required for an account. This can apply to any
            debt account.
          example: 10
          nullable: true
          type: number
        name:
          description: The human-readable name for the resource.
          example: Test account 2
          nullable: true
          type: string
        nickname:
          description: An alternate name for the `account`.
          example: My Checking
          nullable: true
          type: string
        original_balance:
          description: >-
            The original balance associated with the `account`. This will always
            be positive.
          example: 10
          nullable: true
          type: number
        pay_out_amount:
          description: >-
            The amount paid out to the insured individual or beneficiary under
            the conditions of the insurance policy.
          example: 10
          nullable: true
          type: number
        payment_due_at:
          description: The date and time at which the next payment is due on the `account`.
          example: '2015-10-13T17:57:37.000Z'
          nullable: true
          type: string
        payoff_balance:
          description: >-
            The payoff balance for a debt `account`. This will normally be a
            positive number.
          example: 10
          nullable: true
          type: number
        premium_amount:
          description: The insurance policy's premium amount.
          example: 1
          nullable: true
          type: number
        property_type:
          description: >-
            Subtype if the account type is `PROPERTY`. This field should be
            ignored unless the type is set to PROPERTY.
          example: VEHICLE
          nullable: true
          type: string
          enum:
            - APPLIANCES
            - ART
            - COMPUTER
            - ELECTRONICS
            - FURNITURE
            - JEWELRY
            - MISCELLANEOUS
            - REAL_ESTATE
            - SPORTS_EQUIPMENT
            - VEHICLE
        routing_number:
          description: The routing number for the `account`.
          example: '68899990000000'
          nullable: true
          type: string
        started_on:
          description: The date on which the loan from a debt account started.
          example: '2025-10-13T17:57:37.000Z'
          nullable: true
          type: string
        statement_balance:
          description: The balance at the end of the account's last statement period.
          example: 1000.5
          nullable: true
          type: number
        subtype:
          description: >-
            The account's subtype, for example, `PLAN_401_K`, `MONEY_MARKET`, or
            `HOME_EQUITY`. Each subtype belongs to an account `type`. For a full
            list of account subtypes and types, see
            [Accounts](/api-reference/platform-api/reference/accounts).
          example: MONEY_MARKET
          nullable: true
          type: string
        today_ugl_amount:
          description: The unrealized gain/loss amount for the day for the account.
          example: 1000.5
          nullable: true
          type: number
        today_ugl_percentage:
          description: The unrealized gain/loss percentage for the date for the account.
          example: 6.9
          nullable: true
          type: number
        total_account_value:
          description: >-
            The sum of the long and short positions, the sweep account and/or
            cash balance, and any margin debt associated with a particular
            account. This amount includes the market value of all positions held
            in the account and is reduced by any debit balance and the amount of
            short options positions that are "in the money". This may sum to a
            negative value, and it does not represent an account balance.
          example: 1
          nullable: true
          type: number
        total_account_value_ugl:
          description: >-
            The unrealized gains and losses represent the amount the account has
            gained or lost based on the purchase price. This is calculated by
            subtracting the purchase price from the current market value. It
            does not affect the account until the positions are sold and
            "realized". This may sum to a negative value, and it does not
            represent an account balance.
          example: 1
          nullable: true
          type: number
        type:
          description: The type of account. Some account types may include subtypes.
          example: CHECKING
          nullable: true
          type: string
          enum:
            - ANY
            - CASH
            - CHECKING
            - CHECKING_LINE_OF_CREDIT
            - CREDIT_CARD
            - LOAN
            - LINE_OF_CREDIT
            - SAVINGS
            - INVESTMENT
            - MORTGAGE
            - INSURANCE
            - PREPAID
            - PROPERTY
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
        user_id:
          description: The unique partner-defined identifier for the user.
          example: u-1234
          nullable: true
          type: string
      type: object
    AccountsResponseBody:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/AccountResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    AccountCreateRequest:
      properties:
        account_subtype:
          description: >-
            The account's subtype, for example, `PLAN_401_K`, `MONEY_MARKET`, or
            `HOME_EQUITY`. Each subtype belongs to an account `type`. For a full
            list of account subtypes and types, see
            [Accounts](/api-reference/platform-api/reference/account-types).
          example: CHECKING
          nullable: true
          type: string
        account_type:
          description: >-
            The type of account. Some account types may include subtypes. For a
            full list of account types and subtypes, see [Account
            Types](/api-reference/platform-api/reference/account-types).
          example: CHECKING
          nullable: true
          type: string
          enum:
            - ANY
            - CASH
            - CHECKING
            - CHECKING_LINE_OF_CREDIT
            - CREDIT_CARD
            - LOAN
            - LINE_OF_CREDIT
            - SAVINGS
            - INVESTMENT
            - MORTGAGE
            - INSURANCE
            - PREPAID
            - PROPERTY
        apr:
          description: The annual percentage rate associated with the `account`.
          example: 1
          type: number
        apy:
          description: The annual percentage yield associated with the `account`.
          example: 2.35
          type: number
        available_balance:
          description: >
            The balance that is available for use in asset accounts like
            checking and savings.


            `PENDING` transactions are typically (not always) taken into account
            with the available balance.


            `available_balance` will usually be a positive value for all account
            types, determined in the same way as the balance field.
          example: 1000
          type: number
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
        cash_surrender_value:
          description: >-
            The sum of money paid to the policyholder or annuity holder in the
            event the policy is voluntarily terminated before it matures, or the
            insured event occurs.
          example: 1000
          type: number
        credit_limit:
          description: The credit limit associated with the `account`.
          example: 100
          type: number
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        death_benefit:
          description: >-
            The amount paid to the beneficiary of the account upon death of the
            account owner.
          example: 1000
          type: integer
        interest_rate:
          description: The interest rate associated with the account.
          example: 3.25
          type: number
        is_business:
          description: Indicates whether the account is a business account.
          example: false
          type: boolean
        is_closed:
          description: >-
            Indicates whether an account has been closed. Closed accounts will
            no longer update balance or transaction information.
          example: false
          type: boolean
        is_hidden:
          description: >-
            Indicates whether the account is hidden. Hidden accounts can still
            have an active balance and receive transactions. Defaults to
            `false`.
          example: false
          type: boolean
        loan_amount:
          description: The amount of the loan associated with the `account`.
          example: 1000
          type: number
        metadata:
          description: Additional information you can store about the `account`.
          example: some metadata
          type: string
        name:
          description: The human-readable name for the `account`.
          example: Test account 2
          type: string
        nickname:
          description: An alternate name for the `account`.
          example: Swiss Account
          type: string
        original_balance:
          description: >-
            The original balance associated with the `account`. This will always
            be positive.
          example: 10
          type: number
        property_type:
          description: >-
            Subtype if the account type is `PROPERTY`. This field should be
            ignored unless the type is set to `PROPERTY`. For a full list of
            property types, see [Account
            Types](/api-reference/platform-api/reference/account-types).
          example: VEHICLE
          type: string
          enum:
            - APPLIANCES
            - ART
            - COMPUTER
            - ELECTRONICS
            - FURNITURE
            - JEWELRY
            - MISCELLANEOUS
            - REAL_ESTATE
            - SPORTS_EQUIPMENT
            - VEHICLE
        skip_webhook:
          description: >-
            If set to `true`, prevents sending an account webhook for the update
            if that webhook type is enabled for you.
          example: true
          type: boolean
      required:
        - name
        - account_type
      type: object
    AccountCreateRequestBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountCreateRequest'
      type: object
    AccountResponseBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountResponse'
      type: object
    AccountNumberResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        account_number:
          description: >-
            The account number associated with the account. This will typically
            be a masked or partial account number.
          example: '3331261'
          type: string
          nullable: true
        guid:
          description: Unique identifier for the account number. Defined by MX.
          example: ACN-8899832e-e5b4-42cd-aa25-bbf1dc889a8f
          nullable: true
          type: string
        institution_number:
          description: The three-digit number identifying a Canadian banking institution.
          example: '123'
          nullable: true
          type: string
        loan_guarantor:
          description: The guarantor of the student loan.
          example: U.S. DEPARTMENT OF EDUCATION (123456)
          nullable: true
          type: string
        loan_reference_number:
          description: The reference number of the student loan.
          example: '123456789012345'
          nullable: true
          type: string
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        passed_validation:
          description: >-
            This indicates whether the account and routing numbers passed MX's
            internal validity checks. If true, the account and routing/transit
            numbers are likely (but not guaranteed) to be valid. If false,
            either the account number, routing/transit number, or both are
            likely invalid.
          example: true
          nullable: true
          type: boolean
        routing_number:
          description: The routing number for the `account`.
          example: '68899990000000'
          nullable: true
          type: string
        sequence_number:
          description: The sequence number of the student loan.
          example: 1-01
          nullable: true
          type: string
        transit_number:
          description: >-
            The five-digit number identifying the branch of a Canadian financial
            institution.
          example: '12345'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    AccountNumbersResponseBody:
      properties:
        account_numbers:
          items:
            $ref: '#/components/schemas/AccountNumberResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    DateRangeCategoryTotalsResponse:
      properties:
        category_guid:
          type: string
          description: The unique identifier for the category. Defined by MX.
          example: CAT-bf9f3294-4c40-1677-d269-54fbc189faf3
        end_date:
          type: integer
          description: The Unix timestamp for the end date of the date range.
          example: 1466056800
        start_date:
          type: integer
          description: The Unix timestamp for the start date of the date range.
          example: 1459490400
        total:
          type: number
          description: The total amount for the category within the date range.
          example: 155.72
        user_guid:
          type: string
          description: The unique identifier for the user. Defined by MX.
          example: USR-d8843e3e-7153-ce05-db54-fb3241c15d94
    DateRangeCategoryTotalsResponseBody:
      type: object
      properties:
        date_range_category_totals:
          items:
            $ref: '#/components/schemas/DateRangeCategoryTotalsResponse'
          type: array
    InsightResponse:
      properties:
        active_at:
          description: >-
            The date and time when the insight was activated, represented in ISO
            8601 format with a timestamp.
          example: '2022-01-07T12:00:00Z'
          nullable: true
          type: string
        client_guid:
          description: >-
            The unique identifier for the client associated with the insight.
            Defined by MX.
          example: CLT-abcd-1234
          type: string
        created_at:
          description: >-
            The date and time the insight was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        cta_clicked_at:
          description: >-
            The date and time when a call-to-action was clicked, represented in
            ISO 8601 format with a timestamp.
          example: '2022-01-13T18:13:51Z'
          nullable: true
          type: string
        description:
          description: The human-readable information being delivered to the end user.
          example: >-
            Gold's Gym charged you $36.71 more this month than normal. Did you
            upgrade your service?
          nullable: true
          type: string
        guid:
          description: The unique identifier for the `insight`. Defined by MX.
          example: BET-abcd-1234
          nullable: true
          type: string
        has_associated_accounts:
          description: Indicates whether there are accounts associated with the insight.
          example: false
          nullable: true
          type: boolean
        has_associated_categories:
          description: Indicates whether there are categories associated with the insight.
          example: false
          nullable: true
          type: boolean
        has_associated_merchants:
          description: Indicates whether there are merchants associated with the insight.
          example: false
          nullable: true
          type: boolean
        has_associated_scheduled_payments:
          description: >-
            Indicates whether there are scheduled payments associated with the
            insight.
          example: false
          nullable: true
          type: boolean
        has_associated_transactions:
          description: >-
            Indicates whether there are transactions associated with the
            insight.
          example: true
          nullable: true
          type: boolean
        has_been_displayed:
          description: Indicates whether the insight has been shown to the end user.
          example: true
          nullable: true
          type: boolean
        is_dismissed:
          description: Indicates whether the insight has been dismissed by the user.
          example: false
          nullable: true
          type: boolean
        micro_call_to_action:
          description: A short call-to-action text for prompting user engagement.
          example: Learn more
          nullable: true
          type: string
        micro_description:
          description: >-
            A shorter version (300 characters or less) of `description`. This is
            the insight's description we display to the end user in the Micro
            Widget
          example: Netflix charged you $5.00 more this month than normal.
          nullable: true
          type: string
        micro_title:
          description: >-
            A shorter version (60 characters or less) of `title`. This is the
            insight's title we display to the end user in the Micro Widget. For
            example, `Price Increase` or `Paycheck Deposit`.
          example: Price Increase
          nullable: true
          type: string
        template:
          description: >-
            A short label for the type of `insight` being delivered, for
            example, `SubscriptionPriceIncrease` or `MonthlyCategoryTotal`.
          example: SubscriptionPriceIncrease
          nullable: true
          type: string
        title:
          description: >-
            The title for the specific `insight`, for example, `Price Increase`
            or `Paycheck Deposit`.
          example: Price increase
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type: string
        user_id:
          description: The unique partner-defined identifier for the user.
          example: u-1234
          type: string
      type: object
    InsightsResponseBody:
      properties:
        insights:
          items:
            $ref: '#/components/schemas/InsightResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    AccountsMergeRequest:
      properties:
        account_guids:
          type: array
          description: >-
            A list of account GUIDs to merge. Must include at least two GUIDs
            belonging to the same user.
          items:
            type: string
          example:
            - ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
            - ACT-e1b1e9e7-9436-4720-a1b5-f02373433bd4
      required:
        - account_guids
      type: object
    AccountsMergeRequestBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountsMergeRequest'
      type: object
    MonthlyAccountBalance:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
        month:
          description: The month for which the balance.
          example: 1
          type: number
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type: string
        year:
          description: The year for which the balance is reported.
          example: 2023
          type: number
    MonthlyAccountBalancesResponseBody:
      properties:
        monthly_account_balances:
          items:
            $ref: '#/components/schemas/MonthlyAccountBalance'
          type: array
      type: object
    TransactionResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        account_id:
          description: The unique client-defined identifier for the account.
          example: account123
          nullable: true
          type: string
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: true
          type: number
        category:
          description: The category of the `transaction`.
          example: Paycheck
          nullable: true
          type: string
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        check_number_string:
          description: The check number for the `transaction`.
          example: null
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the transaction was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        date:
          description: >-
            The date on which the transaction took place. This is the field used
            when searching for transactions by date and is generally the same as
            `transacted_at`, but uses `posted_at` as a fallback.
          example: '2024-12-20'
          nullable: true
          type: string
        description:
          description: A human-readable description of the transaction.
          example: MX Technologies Payroll
          nullable: true
          type: string
        extended_transaction_type:
          description: The transaction type assigned by the partner.
          example: null
          nullable: true
          type: string
        guid:
          description: The unique identifier for the transaction. Defined by MX.
          example: TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1
          nullable: true
          type: string
        id:
          description: The unique partner-defined identifier for the transaction.
          example: 1734681600000-178fa8095c154a55b9172f977b4c5f9a-0
          nullable: true
          type: string
        is_bill_pay:
          description: Indicates whether the transaction is a bill payment.
          example: false
          nullable: true
          type: boolean
        is_direct_deposit:
          description: Indicates whether the transaction is a direct deposit.
          example: false
          nullable: true
          type: boolean
        is_expense:
          description: Indicates whether the transaction is an expense.
          example: false
          nullable: true
          type: boolean
        is_fee:
          description: Indicates whether the transaction is a fee.
          example: false
          nullable: true
          type: boolean
        is_income:
          description: Indicates whether the transaction is income.
          example: true
          nullable: true
          type: boolean
        is_international:
          description: >-
            Indicates whether the transaction is international. If the data
            provider determines it isn't international then it will be `false`.
            It will be `null` if the data provider does not have this
            information.
          example: false
          type: boolean
        is_manual:
          description: >-
            Indicates whether the transaction was manually created or belongs to
            a manual account.
          example: false
          nullable: true
          type: boolean
        is_overdraft_fee:
          description: Indicates whether the transaction is an overdraft fee.
          example: false
          nullable: true
          type: boolean
        is_payroll_advance:
          description: Indicates whether the transaction is a payroll advance.
          example: false
          nullable: true
          type: boolean
        is_recurring:
          description: Deprecated. If required, reach out to MX to discuss an alternative.
          example: null
          nullable: true
          type: boolean
        is_subscription:
          description: Indicates whether the transaction is a subscription payment.
          example: false
          nullable: true
          type: boolean
        latitude:
          description: >-
            The latitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's latitude
            is -22.9027800 and Tokyo's latitude is 35.689488).
          example: null
          nullable: true
          type: number
        localized_description:
          description: >-
            A human-readable description of the transaction, provided in a local
            language.
          example: This is a localized_description
          nullable: true
          type: string
        localized_memo:
          description: >-
            Additional descriptive information about the transaction, provided
            in a local language.
          example: This is a localized_memo
          nullable: true
          type: string
        longitude:
          description: >-
            The longitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's longitude
            is -43.2075000 and Tokyo's longitude is 139.691706).
          example: null
          nullable: true
          type: number
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        member_is_managed_by_user:
          description: >-
            This indicates whether the member is managed by the user or the MX
            partner. Members created with the managed member feature will have
            this field set to `false`.
          example: true
          nullable: true
          type: boolean
        memo:
          description: Additional information about the transaction.
          example: Transactions
          nullable: true
          type: string
        merchant_category_code:
          description: The ISO 18245 category code for the transaction.
          example: null
          nullable: true
          type: integer
        merchant_guid:
          description: The unique identifier for the merchant. Defined by MX.
          example: MCH-8cc3b01a-1c52-47d4-970d-30f8ee5566f1
          nullable: true
          type: string
        merchant_location_guid:
          description: The unique identifier for the merchant location. Defined by MX.
          example: null
          nullable: true
          type: string
        metadata:
          description: Additional information you stored about the `transaction`.
          example: some metadata
          nullable: true
          type: string
        original_description:
          description: >-
            The original description of the transaction as provided by our data
            feed.
          example: MX TECHNOLOGIES PAYMENT
          nullable: true
          type: string
        posted_at:
          description: The date and time the transaction was posted to the account.
          example: '2024-12-20T12:00:00Z'
          nullable: true
          type: string
        status:
          description: >
            The status of the transaction.


            All transaction data on our systems represent what we get through
            our data feed which depends what institutions make available for
            aggregation. Many institutions do not provide data for pending
            transactions; transactions from those accounts always have a status
            of `POSTED`.


            When we do receive data for pending transactions, a single
            transaction may be updated from `PENDING` to `POSTED` and keep the
            same `guid`. This is done through various matching methods performed
            automatically by MX.


            If a single transaction can't be updated, the `PENDING` transaction
            will often be deleted and replaced with a new `POSTED` transaction
            (with a new `guid`) when it is sent to us; this is the most common
            scenario when pending data is available.


            In unusual circumstances, there may be separate `PENDING` and
            `POSTED` transactions on MX systems for up to 14 days. All `PENDING`
            transactions are deleted after 14 days as a failsafe.
          example: POSTED
          type: string
          nullable: true
          enum:
            - POSTED
            - PENDING
        top_level_category:
          description: The parent category assigned to this transaction's category.
          example: Income
          nullable: true
          type: string
        transacted_at:
          description: The date and time the transaction took place.
          example: '2024-12-20T12:00:00Z'
          nullable: true
          type: string
        type:
          description: The type of transaction.
          example: CREDIT
          nullable: true
          type: string
          enum:
            - CREDIT
            - DEBIT
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
        user_id:
          description: The unique partner-defined identifier for the user.
          example: u-1234
          nullable: true
          type: string
      type: object
    TransactionIncludesResponse:
      allOf:
        - $ref: '#/components/schemas/TransactionResponse'
        - properties:
            classification:
              type: object
              nullable: true
              properties:
                parent_class:
                  example: Deposit
                  type: string
                  enum:
                    - Payroll
                    - Deposit
                    - Savings
                    - Transfer
                    - Refunds
                    - Spend
                    - Investment
                    - Buy
                    - Sell
                    - Income
                    - Fees
                    - Expenses
                    - Corporate Actions
                    - Other
                guid:
                  example: MNC-3ad50f86-60d0-4545-a1f9-e66c2ac40f69
                  type: string
            geolocation:
              nullable: true
              type: object
              properties:
                country:
                  description: The country name.
                  example: US
                  nullable: true
                  type: string
                state:
                  example: UT
                  type: string
                city:
                  description: The city name.
                  example: North Kishaberg
                  nullable: true
                  type: string
                postal code:
                  example: '84043'
                  type: string
            merchant:
              type: object
              nullable: true
              properties:
                name:
                  description: The name of the merchant.
                  example: MX
                  type: string
                guid:
                  example: MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84
                  type: string
                logo_url:
                  description: The URL for a 100px X 100px logo for the merchant.
                  type: string
                  example: >-
                    https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png
                website_url:
                  type: string
                  description: URL to the merchant's website.
                  example: https://www.example.com
            repeating_transaction:
              nullable: true
              type: object
              properties:
                repeating_transaction_type:
                  description: The type of the repeating transaction.
                  type: string
                  enum:
                    - BILL
                    - SUBSCRIPTION
                    - INCOME
                    - UNKNOWN
                recurrence_type:
                  description: The recurrence type of the repeating transaction.
                  type: string
                  enum:
                    - EVERY_OTHER_WEEK
                guid:
                  description: >-
                    The unique identifier for the repeating transaction. Defined
                    by MX.
                  type: string
                  example: RPT-065b8b1d-826a-45ce-8487-60ca1510e72a
      type: object
    TransactionsResponseBodyIncludes:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/TransactionIncludesResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    TransactionCreateRequest:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: true
          type: number
        date:
          description: The date of the `transaction`.
          example: '2016-10-06'
          type: string
        description:
          description: >-
            A human-readable version of the `original_description` field.
            Provided by MX.
          example: Whole foods
          type: string
        type:
          description: The type of transaction, which must be `CREDIT` or `DEBIT`.
          example: DEBIT
          type: string
          enum:
            - CREDIT
            - DEBIT
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        has_been_viewed:
          description: Indicates whether the transaction has been viewed.
          example: false
          type: boolean
        is_hidden:
          description: >-
            Indicates whether the account is hidden. Hidden accounts can still
            have an active balance and receive transactions. Defaults to
            `false`.
          example: false
          type: boolean
        is_international:
          description: >-
            Indicates whether the transaction is international. If the data
            provider determines it isn't international then it will be `false`.
            It will be `null` if the data provider does not have this
            information.
          example: false
          type: boolean
        memo:
          description: A note about the transaction.
          example: This is a memo
          type: string
        metadata:
          description: Additional information you can store about the `transaction`.
          example: some metadata
          type: string
        skip_webhook:
          description: >-
            When set to `true`, this parameter will prevent a webhook from being
            triggered by the request.
          example: true
          type: boolean
      required:
        - amount
        - date
        - description
        - type
    TransactionCreateRequestBody:
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionCreateRequest'
      type: object
    TransactionCreateResponseBody:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        account_id:
          description: The unique client-defined identifier for the account.
          example: account123
          nullable: true
          type: string
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: false
          type: number
        category:
          description: The category of the `transaction`.
          example: Groceries
          nullable: true
          type: string
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        check_number_string:
          description: The check number for the `transaction`.
          example: null
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the transaction was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        date:
          description: The date of the `transaction`.
          example: '2016-10-06T00:00:00.000Z'
          nullable: true
          type: string
        description:
          description: >-
            A human-readable version of the `original_description` field.
            Provided by MX.
          example: Whole foods
          nullable: true
          type: string
        extended_transaction_type:
          description: The transaction type assigned by the partner.
          example: null
          nullable: true
          type: string
        guid:
          description: The unique identifier for the transaction. Defined by MX.
          example: TRN-265abee9-889b-af6a-c69b-25157db2bdd9
          nullable: true
          type: string
        id:
          description: The unique partner-defined identifier for the transaction.
          example: null
          nullable: true
          type: string
        is_bill_pay:
          description: Indicates whether the transaction is a bill payment.
          example: false
          nullable: true
          type: boolean
        is_direct_deposit:
          description: Indicates whether the transaction is a direct deposit.
          example: false
          nullable: true
          type: boolean
        is_expense:
          description: Indicates whether the transaction is an expense.
          example: true
          nullable: true
          type: boolean
        is_fee:
          description: Indicates whether the transaction is a fee.
          example: false
          nullable: true
          type: boolean
        is_income:
          description: Indicates whether the transaction is income.
          example: false
          nullable: true
          type: boolean
        is_international:
          description: >-
            Indicates whether the transaction is international. If the data
            provider determines it isn't international then it will be `false`.
            It will be `null` if the data provider does not have this
            information.
          example: false
          type: boolean
          nullable: true
        is_manual:
          description: >-
            Indicates whether the transaction was manually created or belongs to
            a manual account.
          example: false
          nullable: true
          type: boolean
        is_overdraft_fee:
          description: Indicates whether the transaction is an overdraft fee.
          example: false
          nullable: true
          type: boolean
        is_payroll_advance:
          description: Indicates whether the transaction is a payroll advance.
          example: false
          nullable: true
          type: boolean
        is_recurring:
          description: Deprecated. If required, reach out to MX to discuss an alternative.
          example: null
          nullable: true
          type: boolean
        is_subscription:
          description: Indicates whether the transaction is a subscription payment.
          example: false
          nullable: true
          type: boolean
        latitude:
          description: >-
            The latitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's latitude
            is -22.9027800 and Tokyo's latitude is 35.689488).
          example: null
          nullable: true
          type: number
        localized_description:
          description: >-
            A human-readable description of the transaction, provided in a local
            language.
          example: null
          nullable: true
          type: string
        localized_memo:
          description: >-
            Additional descriptive information about the transaction, provided
            in a local language.
          example: null
          nullable: true
          type: string
        longitude:
          description: >-
            The longitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's longitude
            is -43.2075000 and Tokyo's longitude is 139.691706).
          example: null
          nullable: true
          type: number
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        member_is_managed_by_user:
          description: >-
            This indicates whether the member is managed by the user or the MX
            partner. Members created with the managed member feature will have
            this field set to `false`.
          example: true
          nullable: true
          type: boolean
        memo:
          description: A note about the transaction.
          example: This is a memo
          nullable: true
          type: string
        merchant_category_code:
          description: The category code assigned to the merchant. Defined by MX.
          example: null
          nullable: true
          type: integer
        merchant_guid:
          description: The unique identifier for the merchant. Defined by MX.
          example: null
          nullable: true
          type: string
        merchant_location_guid:
          description: The unique identifier for the merchant location. Defined by MX.
          example: null
          nullable: true
          type: string
        metadata:
          description: Additional information you stored about the `transaction`.
          example: some metadata
          nullable: true
          type: string
        original_description:
          description: >-
            The original description of the transaction as provided by the MX
            data feed.
          example: null
          nullable: true
          type: string
        posted_at:
          description: The date and time the transaction was posted to the account.
          example: null
          nullable: true
          type: string
        status:
          description: >
            The status of the transaction.


            All transaction data on our systems represent what we get through
            our data feed which depends what institutions make available for
            aggregation. Many institutions do not provide data for pending
            transactions; transactions from those accounts always have a status
            of `POSTED`.


            When we do receive data for pending transactions, a single
            transaction may be updated from `PENDING` to `POSTED` and keep the
            same `guid`. This is done through various matching methods performed
            automatically by MX.


            If a single transaction can't be updated, the `PENDING` transaction
            will often be deleted and replaced with a new `POSTED` transaction
            (with a new `guid`) when it is sent to us; this is the most common
            scenario when pending data is available.


            In unusual circumstances, there may be separate `PENDING` and
            `POSTED` transactions on MX systems for up to 14 days. All `PENDING`
            transactions are deleted after 14 days as a failsafe.
          example: POSTED
          type: string
          nullable: true
          enum:
            - POSTED
            - PENDING
        top_level_category:
          description: The parent category assigned to this transaction's category.
          example: Food & Dining
          nullable: true
          type: string
        transacted_at:
          description: The date and time the transaction took place.
          example: null
          nullable: true
          type: string
        type:
          description: The type of transaction.
          example: DEBIT
          nullable: false
          type: string
          enum:
            - CREDIT
            - DEBIT
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: false
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
        user_id:
          description: The unique partner-defined identifier for the user.
          example: u-1234
          nullable: true
          type: string
      type: object
    CategoryCreateRequest:
      properties:
        metadata:
          description: Additional information you can store on the `category`.
          example: some metadata
          type: string
        name:
          example: Online Shopping
          type: string
          description: The name of the category.
        parent_guid:
          example: CAT-aad51b46-d6f7-3da5-fd6e-492328b3023f
          type: string
          description: The unique identifier for the parent category.
      required:
        - name
        - parent_guid
      type: object
    CategoryCreateRequestBody:
      properties:
        category:
          $ref: '#/components/schemas/CategoryCreateRequest'
      type: object
    CategoryUpdateRequest:
      properties:
        metadata:
          description: Additional information you can store on the `category`.
          example: some metadata
          type: string
        name:
          example: Web shopping
          type: string
          description: The name of the category.
      type: object
    CategoryUpdateRequestBody:
      properties:
        category:
          $ref: '#/components/schemas/CategoryUpdateRequest'
      type: object
    JobResponse:
      properties:
        created_at:
          description: >-
            The date and time the institution was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        error_message:
          example: null
          nullable: true
          description: >-
            If the job returns an error, this field will contain the message of
            the error.
          type: string
        error_message_code:
          example: null
          nullable: true
          description: >-
            Date and time the job finished, represented in ISO 8601 format with
            timestamp.
          type: string
        finished_at:
          example: '2022-06-16T18:42:43+00:00'
          type: string
          description: >-
            The date and time the job finished, represented in ISO 8601 format
            with a timestamp.
        institution_guid:
          example: INS-1572a04c-912b-59bf-5841-332c7dfafaef
          type: string
          description: >-
            Unique identifier for the institution the job is attached to.
            Defined by MX.
        is_authenticated:
          example: true
          type: boolean
          description: >-
            If the member's credentials have been authenticated, this field will
            be true. Otherwise, this field will be false.
        member_guid:
          example: MBR-84ca0882-ad6c-4f10-817f-c8c0de7424fa
          type: string
          description: >-
            Unique identifier for the member the job is attached to. Defined by
            MX.
        started_at:
          example: '2022-06-16T18:42:30+00:00'
          type: string
          description: >-
            Date and time the job started, represented in ISO 8601 format with
            timestamp.
        status:
          example: 6
          description: The status of the job.
          type: integer
        status_name:
          example: COMPLETED
          description: The name of the status.
        updated_at:
          example: '2022-06-16T18:42:43+00:00'
          type: string
          description: >-
            Date and time the job was updated, represented in ISO 8601 format
            with timestamp.
        user_guid:
          example: USR-11141024-90b3-1bce-cac9-c06ced52ab4c
          type: string
          description: >-
            Unique identifier for the user the job is attached to. Defined by
            MX.
    JobResponseBody:
      properties:
        job:
          $ref: '#/components/schemas/JobResponse'
      type: object
    ScheduledPaymentResponse:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          type: number
        created_at:
          description: >-
            The date and time the scheduled payment was created, represented in
            ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        description:
          description: >-
            A human-readable description of the `scheduled_payment`, for
            example, Power bill.
          example: Netflix
          type: string
        guid:
          description: The unique identifier for the scheduled payment. Defined by MX.
          example: SPA-c76e4a85-b2c4-4335-82b7-8f8b8f28c35a
          type: string
        is_completed:
          description: >-
            Indicates whether the `scheduled_payment` has been paid or not. This
            field is only applicable to one-time transactions.
          example: false
          type: boolean
        is_recurring:
          description: Deprecated. If required, reach out to MX to discuss an alternative.
          example: true
          type: boolean
        merchant_guid:
          description: The unique identifier for the merchant. Defined by MX.
          example: MCH-b8a2624c-2176-59ec-c150-37854bc38aa8
          type: string
        occurs_on:
          description: >-
            The date on which the payment is scheduled to occur, given in ISO
            8601 format without a timestamp.
          example: '2022-01-15'
          type: string
        recurrence_day:
          description: The day of the month where the next payment is expected to occur.
          example: 15
          type: integer
        recurrence_type:
          description: The type of recurrence schedule.
          example: EVERY_MONTH
          type: string
        transaction_type:
          description: The type of transaction.
          example: DEBIT
          type: string
          enum:
            - CREDIT
            - DEBIT
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type: string
      type: object
    ScheduledPaymentsResponseBody:
      properties:
        scheduled_payments:
          items:
            $ref: '#/components/schemas/ScheduledPaymentResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    TransactionsResponseBody:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/TransactionResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
    InsightResponseBody:
      properties:
        insight:
          $ref: '#/components/schemas/InsightResponse'
      type: object
    InsightUpdateRequest:
      properties:
        has_been_displayed:
          description: Indicates whether the insight has been shown to the end user.
          example: false
          type: boolean
        is_dismissed:
          description: Indicates whether the insight has been dismissed by the user.
          example: false
          type: boolean
    InsightUpdateRequestBody:
      properties:
        insight:
          $ref: '#/components/schemas/InsightUpdateRequest'
      type: object
    MemberResponse:
      properties:
        aggregated_at:
          description: >
            The date and time the most recent aggregation-type job was started,
            given in ISO 8601 format with a time component.


            A job will automatically be started when a member is created or its
            credentials are updated, unless the `skip_aggregation` parameter is
            used.


            Jobs can also be started via manual aggregations, background
            aggregations, API endpoints, or when opening an MX widget.


            A job can be a normal aggregation, or a premium job such as
            identification, verification, fetching statements, or fetching an
            extended transaction history.


            If a member is deleted and then re-created with the
            `skip_aggregation` parameter set to `true` or if it is re-created
            within the throttle window (typically three hours), the previous
            value will be returned.
          example: '2016-10-13T18:07:57.000Z'
          nullable: true
          type: string
        background_aggregation_is_disabled:
          description: >-
            Indicates whether background aggregation is disabled for the
            `member`.
          example: false
          type: boolean
        connection_status:
          description: >-
            The status of a user's connection to an institution. See [Member
            Connection
            Status](/api-reference/platform-api/reference/members#member-connection-statuses).
          example: CONNECTED
          nullable: true
          type: string
          enum:
            - null
            - CREATED
            - PREVENTED
            - DENIED
            - CHALLENGED
            - REJECTED
            - LOCKED
            - CONNECTED
            - IMPEDED
            - RECONNECTED
            - DEGRADED
            - DISCONNECTED
            - DISCONTINUED
            - CLOSED
            - DELAYED
            - FAILED
            - UPDATED
            - DISABLED
            - IMPORTED
            - RESUMED
            - EXPIRED
            - IMPAIRED
            - PENDING
        connection_status_message:
          description: >-
            A human-readable message describing the connection status. See
            [Member Connection
            Status](/api-reference/platform-api/reference/members#member-connection-statuses).
          example: Connected to MX Bank
          nullable: true
          type: string
        error:
          nullable: true
          type: object
        guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        id:
          description: The unique partner-defined identifier for the member.
          example: unique_id
          nullable: true
          type: string
        institution_code:
          description: The code identifying a financial institution.
          example: mxbank
          nullable: true
          type: string
        institution_guid:
          description: The unique identifier for the institution. Defined by MX.
          example: INST-12345678-90ab-cdef-1234-567890abcdef
          nullable: false
          type: string
        is_being_aggregated:
          description: >-
            Indicates whether the member was being aggregated at the time of the
            request.
          example: false
          nullable: true
          type: boolean
        is_managed_by_user:
          description: >-
            Indicates whether the member is managed by the user or the MX
            partner. Members created with the managed member feature will have
            this field set to `false`.
          example: false
          nullable: true
          type: boolean
        is_manual:
          description: >-
            Indicates whether the transaction was manually created or belongs to
            a manual account.
          example: false
          nullable: true
          type: boolean
        is_oauth:
          description: >-
            Indicates whether the member uses OAuth to authenticate. Defaults to
            `false`.
          example: false
          nullable: true
          type: boolean
        metadata:
          description: Additional information you stored about the `member`.
          example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
          nullable: true
          type: string
        most_recent_job_detail_code:
          description: >-
            (Deprecated) This field is no longer used and will be removed at a
            future date.
          example: null
          nullable: true
          type: integer
        most_recent_job_detail_text:
          description: >-
            (Deprecated) This field is no longer used and will be removed at a
            future date.
          example: null
          nullable: true
          type: boolean
        most_recent_job_guid:
          description: The unique identifier for the most recent job. Defined by MX.
          example: JOB-12345678-90ab-cdef-1234-567890abcdef
          nullable: true
          type: string
        name:
          description: The name of the `member`.
          example: MX Bank
          nullable: true
          type: string
        needs_updated_credentials:
          description: >-
            Internal field used by MX in some circumstances. When set to `true`,
            MX will not attempt to aggregate the member. It will be set to
            `false` automatically when the member's credentials are updated.
          example: false
          nullable: true
          type: boolean
        oauth_window_uri:
          description: >-
            When connecting a member using OAuth, this field will contain the
            URL to send the user to in order to authenticate, otherwise it will
            be blank.
          example: >-
            https://mxbank.mx.com/oauth/authorize?client_id=b8OikQ4Ep3NuSUrQ13DdvFuwpNx-qqoAsJDVAQCyLkQ&redirect_uri=https%3A%2F%2Fint-app.moneydesktop.com%2Foauth%2Fredirect_from&response_type=code&scope=openid&state=d745bd4ee6f0f9c184757f574bcc2df2
          nullable: true
          type: string
        successfully_aggregated_at:
          description: >-
            The date and time when the member was last successfully aggregated,
            represented in ISO 8601 format with a timestamp.
          example: '2016-10-13T17:57:38.000Z'
          nullable: true
          type: string
        use_cases:
          type: array
          description: >-
            The use case associated with the member. Valid values are `PFM`
            and/or `MONEY_MOVEMENT`. Only set this if you've met with MX and
            have opted in to using this field.
          items:
            type: string
            enum:
              - MONEY_MOVEMENT
              - PFM
          example:
            - PFM
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
        user_id:
          description: The unique partner-defined identifier for the user.
          example: u-1234
          nullable: true
          type: string
      type: object
    MembersResponseBody:
      properties:
        members:
          items:
            $ref: '#/components/schemas/MemberResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    ManagedMemberCreateRequest:
      properties:
        id:
          description: The unique partner-defined identifier for the member.
          example: member123
          type: string
        institution_code:
          description: The code identifying a financial institution.
          example: mxbank
          type: string
        metadata:
          description: Additional information you can store about the `member`.
          example: some metadata
          type: string
        name:
          description: The name of the `member`.
          example: MX Bank
          type: string
      required:
        - institution_code
      type: object
    ManagedMemberCreateRequestBody:
      properties:
        member:
          $ref: '#/components/schemas/ManagedMemberCreateRequest'
      type: object
    MemberResponseBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberResponse'
      type: object
    ManagedMemberUpdateRequest:
      properties:
        id:
          description: The unique partner-defined identifier for the member.
          example: member123
          type: string
        metadata:
          description: Additional information you can store about the `member`.
          example: some metadata
          type: string
        name:
          description: The name of the `member`.
          example: MX Bank
          type: string
      type: object
    ManagedMemberUpdateRequestBody:
      properties:
        member:
          $ref: '#/components/schemas/ManagedMemberUpdateRequest'
      type: object
    ManagedAccountCreateRequest:
      properties:
        account_number:
          description: >-
            The account number associated with the account. This will typically
            be a masked or partial account number.
          example: '3331261'
          type: string
        apr:
          description: The annual percentage rate associated with the `account`.
          example: 5.25
          type: number
        apy:
          description: The annual percentage yield associated with the `account`.
          example: 2.35
          type: number
        available_balance:
          description: >
            The balance that is available for use in asset accounts like
            checking and savings.


            `PENDING` transactions are typically (not always) taken into account
            with the available balance.


            `available_balance` will usually be a positive value for all account
            types, determined in the same way as the balance field.
          example: 1000
          type: number
        available_credit:
          description: >
            The amount of credit available for use in liability accounts like
            credit cards and lines of credit.


            `PENDING` transactions are typically (not always) taken into account
            with available credit.


            `available_credit` will usually be a positive value for all account
            types, determined in the same way as the `balance` field.
          example: 4000
          nullable: true
          type: number
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
        cash_surrender_value:
          description: >-
            Can only be updated for manual accounts. The sum of money paid to
            the policyholder or annuity holder in the event the policy is
            voluntarily terminated before it matures, or the insured event
            occurs.
          example: 1000
          type: number
        credit_limit:
          description: The credit limit associated with the `account`.
          example: 5000
          type: number
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        day_payment_is_due:
          description: >-
            The day of the month the payment is due. For example, the 14th is
            passed as `14`.
          example: 14
          nullable: true
          type: integer
        death_benefit:
          description: >-
            The amount paid to the beneficiary of the account upon death of the
            account owner.
          example: 1000
          type: integer
        id:
          description: The unique partner-defined identifier for the account.
          example: '1040434698'
          type: string
        interest_rate:
          description: The interest rate associated with the account.
          example: 3.25
          type: number
        is_closed:
          description: >-
            Indicates whether an account has been closed. Closed accounts will
            no longer update balance or transaction information.
          example: false
          type: boolean
        is_hidden:
          example: false
          type: boolean
          description: >-
            Indicates whether the account is hidden. Hidden accounts can still
            have an active balance and receive transactions. Defaults to
            `false`.
        last_payment:
          description: The amount of the most recent payment on the `account`.
          example: 100
          type: number
        last_payment_at:
          description: >-
            The date and time when the last payment was made, represented in ISO
            8601 format with a timestamp.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        loan_amount:
          description: The amount of the loan associated with the `account`.
          example: 1000
          type: number
        matures_on:
          description: The date on which the `account` matures.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        metadata:
          description: Additional information you can store about the `account`.
          type: string
        minimum_balance:
          description: The minimum balance associated with the `account`.
          example: 100
          type: number
        minimum_payment:
          description: >-
            The minimum payment required for an account. This can apply to any
            debt account.
          example: 10
          type: number
        name:
          description: The name of the account.
          example: Test account 2
          type: string
        nickname:
          description: An alternate name for the `account`.
          example: Swiss Account
          type: string
        original_balance:
          description: The original balance associated with the `account`.
          example: 10
          type: number
        payment_due_at:
          description: The date and time at which the next payment is due on the `account`.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        payoff_balance:
          description: >-
            The payoff balance for a debt account. This will normally be a
            positive number.
          example: 10
          type: number
        routing_number:
          description: The routing number for the `account`.
          example: '68899990000000'
          type: string
        started_on:
          description: The date on which the loan from a debt account started.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        subtype:
          description: >-
            The account's subtype, e.g., `PLAN_401_K`, `MONEY_MARKET`, or
            `HOME_EQUITY`.
          example: NONE
          type: string
        type:
          description: The general or parent type of the `account`.
          example: SAVINGS
          type: string
      required:
        - balance
        - id
        - name
        - type
      type: object
    ManagedAccountCreateRequestBody:
      properties:
        account:
          $ref: '#/components/schemas/ManagedAccountCreateRequest'
      type: object
    ManagedAccountUpdateRequest:
      properties:
        account_number:
          description: >-
            The account number associated with the account. This will typically
            be a masked or partial account number.
          example: '3331261'
          type: string
        apr:
          description: The annual percentage rate associated with the `account`.
          example: 5.25
          type: number
        apy:
          description: The annual percentage yield associated with the `account`.
          example: 2.35
          type: number
        available_balance:
          description: >
            The balance that is available for use in asset accounts like
            checking and savings.


            `PENDING` transactions are typically (not always) taken into account
            with the available balance.


            `available_balance` will usually be a positive value for all account
            types, determined in the same way as the balance field.
          example: 1000
          type: number
        available_credit:
          description: >
            The amount of credit available for use in liability accounts like
            credit cards and lines of credit.


            `PENDING` transactions are typically (not always) taken into account
            with available credit.


            `available_credit` will usually be a positive value for all account
            types, determined in the same way as the `balance` field.
          example: 4000
          nullable: true
          type: number
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
          nullable: true
        cash_surrender_value:
          description: >-
            Can only be updated for manual accounts. The sum of money paid to
            the policyholder or annuity holder in the event the policy is
            voluntarily terminated before it matures, or the insured event
            occurs.
          example: 1000
          type: number
        credit_limit:
          description: The credit limit associated with the `account`.
          example: 5000
          type: number
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        day_payment_is_due:
          description: >-
            The day of the month the payment is due. For example, the 14th is
            passed as `14`.
          example: 14
          nullable: true
          type: integer
        death_benefit:
          description: >-
            The amount paid to the beneficiary of the account upon death of the
            account owner.
          example: 1000
          type: integer
        id:
          description: The unique partner-defined identifier for the `account`.
          example: '1040434698'
          type: string
        interest_rate:
          description: The interest rate associated with the `account`.
          example: 3.25
          type: number
        is_closed:
          description: >-
            Indicates whether an account has been closed. Closed accounts will
            no longer update balance or transaction information.
          example: false
          type: boolean
        is_hidden:
          description: >-
            Indicates whether the account is hidden. Hidden accounts can still
            have an active balance and receive transactions. Defaults to
            `false`.
          example: false
          type: boolean
        last_payment:
          description: The amount of the most recent payment on the `account`.
          example: 100
          type: number
        last_payment_at:
          description: >-
            The date and time when the last payment was made, represented in ISO
            8601 format with a timestamp.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        loan_amount:
          description: The amount of the loan associated with the `account`.
          example: 1000
          type: number
        matures_on:
          description: The date on which the `account` matures.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        metadata:
          description: Additional information you can store about the `account`.
          example: some metadata
          type: string
        minimum_balance:
          description: The minimum balance associated with the `account`.
          example: 100
          type: number
        minimum_payment:
          description: >-
            The minimum payment required for an `account`. This can apply to any
            debt `account`.
          example: 10
          type: number
        name:
          description: The name of the `account`.
          example: Test account 2
          type: string
        nickname:
          description: A short, informal name for the `account`.
          example: Swiss Account
          type: string
        original_balance:
          description: The original balance associated with the `account`.
          example: 10
          type: number
        payment_due_at:
          description: The date and time at which the next payment is due on the `account`.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        payoff_balance:
          description: >-
            The payoff balance for a debt account. This will normally be a
            positive number.
          example: 10
          type: number
        routing_number:
          description: The routing number for the `account`.
          example: '68899990000000'
          type: string
        started_on:
          description: The date on which the loan from a debt account started.
          example: '2015-10-13T17:57:37.000Z'
          type: string
        subtype:
          description: >-
            The account's subtype, e.g., `PLAN_401_K`, `MONEY_MARKET`, or
            `HOME_EQUITY`.
          example: NONE
          type: string
        type:
          description: The general or parent type of the `account`.
          example: SAVINGS
          type: string
      type: object
    ManagedAccountUpdateRequestBody:
      properties:
        account:
          $ref: '#/components/schemas/ManagedAccountUpdateRequest'
      type: object
    ManagedTransactionCreateRequest:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: '61.11'
          type: string
        category:
          description: The category of the `transaction`.
          example: Groceries
          nullable: true
          type: string
        check_number_string:
          description: The check number for the `transaction`.
          example: '6812'
          nullable: true
          type: string
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        description:
          description: A human-readable description of the transaction.
          example: Whole Foods
          type: string
        id:
          description: The unique partner-defined identifier for the `transaction`.
          example: transaction-265abee9-889b-af6a-c69b-25157db2bdd9
          type: string
        is_international:
          description: >-
            Indicates whether the transaction is international. If the data
            provider determines it isn't international then it will be `false`.
            It will be `null` if the data provider does not have this
            information.
          example: false
          type: boolean
        latitude:
          description: >-
            The latitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's latitude
            is -22.9027800 and Tokyo's latitude is 35.689488).
          example: -43.2075
          type: number
        localized_description:
          description: >-
            A human-readable description of the transaction, provided in a local
            language.
          example: This is a localized_description
          type: string
        localized_memo:
          description: >-
            Additional descriptive information about the transaction, provided
            in a local language.
          example: This is a localized_memo
          type: string
        longitude:
          description: >-
            The longitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's longitude
            is -43.2075000 and Tokyo's longitude is 139.691706).
          example: 139.691706
          type: number
        memo:
          description: A human-readable note about the transaction.
          example: This is a memo
          type: string
        merchant_category_code:
          description: The ISO 18245 category code for the transaction.
          example: 5411
          type: integer
        merchant_guid:
          description: The unique identifier for the `merchant`. Defined by MX.
          example: MCH-7ed79542-884d-2b1b-dd74-501c5cc9d25b
          type: string
        merchant_location_guid:
          description: The unique identifier for the `merchant_location`. Defined by MX.
          example: MCL-00024e59-18b5-4d79-b879-2a7896726fea
          type: string
        metadata:
          description: Additional information you can store about the `transaction`.
          example: some metadata
          type: string
        posted_at:
          description: The date and time the transaction was posted to the account.
          example: '2016-10-07T06:00:00.000Z'
          type: string
        status:
          description: The status of the transaction. Can be either `POSTED` or `PENDING`.
          example: POSTED
          type: string
          enum:
            - POSTED
            - PENDING
        transacted_at:
          description: The date and time the transaction took place.
          example: '2016-10-06T13:00:00.000Z'
          type: string
        type:
          description: The type of transaction. Can be either `CREDIT` or `DEBIT`.
          example: DEBIT
          type: string
          enum:
            - CREDIT
            - DEBIT
      required:
        - amount
        - description
        - status
        - posted_at
        - transacted_at
        - type
      type: object
    ManagedTransactionCreateRequestBody:
      properties:
        transaction:
          $ref: '#/components/schemas/ManagedTransactionCreateRequest'
      type: object
    TransactionResponseBody:
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionResponse'
      type: object
    ManagedTransactionUpdateRequest:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: '61.11'
          nullable: true
          type: string
        category:
          description: The category of the `transaction`.
          example: Groceries
          nullable: true
          type: string
        check_number_string:
          description: The check number for the `transaction`.
          example: '6812'
          nullable: true
          type: string
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        description:
          description: A human-readable version of the `original_description` field.
          example: Whole foods
          type: string
        id:
          description: The unique partner-defined identifier for the `transaction`.
          example: transaction-265abee9-889b-af6a-c69b-25157db2bdd9
          type: string
        is_international:
          description: >-
            Indicates whether the transaction is international. If the data
            provider determines it isn't international then it will be `false`.
            It will be `null` if the data provider does not have this
            information.
          example: false
          type: boolean
        latitude:
          description: >-
            The latitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's latitude
            is -22.9027800 and Tokyo's latitude is 35.689488).
          example: -43.2075
          type: number
        localized_description:
          description: >-
            A human-readable description of the transaction, provided in a local
            language.
          example: This is a localized_description
          type: string
        localized_memo:
          description: >-
            Additional descriptive information about the transaction, provided
            in a local language.
          example: This is a localized_memo
          type: string
        longitude:
          description: >-
            The longitude of the location where the transaction occurred. The
            number is a signed decimal (for example, Rio de Janeiro's longitude
            is -43.2075000 and Tokyo's longitude is 139.691706).
          example: 139.691706
          type: number
        memo:
          description: Additional information about the `transaction`.
          example: This is a memo
          type: string
        merchant_category_code:
          description: The ISO 18245 category code for the transaction.
          example: 5411
          type: integer
        merchant_guid:
          description: The unique identifier for the merchant. Defined by MX.
          example: MCH-7ed79542-884d-2b1b-dd74-501c5cc9d25b
          type: string
        merchant_location_guid:
          description: The unique identifier for the merchant location. Defined by MX.
          example: MCL-00024e59-18b5-4d79-b879-2a7896726fea
          type: string
        metadata:
          description: Additional information you can store about the `transaction`.
          example: some metadata
          type: string
        posted_at:
          description: The date and time the transaction was posted to the account.
          example: '2016-10-07T06:00:00.000Z'
          type: string
        status:
          description: The status of the transaction. Can be either `POSTED` or `PENDING`.
          example: POSTED
          type: string
          enum:
            - POSTED
            - PENDING
        transacted_at:
          description: The date and time the transaction took place.
          example: '2016-10-06T13:00:00.000Z'
          type: string
        type:
          description: The type of transaction. Can be either `CREDIT` or `DEBIT`.
          example: DEBIT
          type: string
          enum:
            - CREDIT
            - DEBIT
      type: object
    ManagedTransactionUpdateRequestBody:
      properties:
        transaction:
          $ref: '#/components/schemas/ManagedTransactionUpdateRequest'
      type: object
    DataRequest:
      type: object
      description: >-
        Contains a products array that specifies the products you want to
        aggregate.
      required:
        - products
      properties:
        products:
          description: >-
            Contains the products you want to aggregate upon a successful
            connection. For accepted products, see [Defining
            Products](/products/connectivity/overview/intro-to-unified-product-ordering/#defining-products).
          items:
            $ref: '#/components/schemas/SupportedProducts'
          type: array
    CredentialRequest:
      properties:
        guid:
          example: CRD-27d0edb8-1d50-5b90-bcbc-be270ca42b9f
          type: string
        value:
          example: password
          type: string
      type: object
    MemberCreateRequest:
      properties:
        background_aggregation_is_disabled:
          description: >-
            Indicates whether background aggregation is disabled for the
            `member`.
          example: false
          type: boolean
        credentials:
          items:
            $ref: '#/components/schemas/CredentialRequest'
          type: array
        id:
          description: The unique partner-defined identifier for the member.
          example: unique_id
          type: string
        institution_code:
          description: The code identifying a financial institution.
          example: mxbank
          type: string
        is_oauth:
          description: >-
            Indicates whether the member uses OAuth to authenticate. Defaults to
            `false`.
          example: false
          type: boolean
        metadata:
          description: Additional information you can store about the `member`.
          example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
          type: string
        use_cases:
          type: array
          description: >-
            The use case associated with the member. Valid values are `PFM`
            and/or `MONEY_MOVEMENT`. Only set this if you've met with MX and
            have opted in to using this field.
          items:
            type: string
            enum:
              - MONEY_MOVEMENT
              - PFM
          example:
            - PFM
      required:
        - credentials
        - institution_code
      type: object
    MemberCreateRequestBody:
      properties:
        client_redirect_url:
          description: >
            This determines the redirect destination at the end of OAuth when
            used with `is_mobile_webview: true` or `oauth_referral_source:
            'APP'`.
          example: https://{yoursite.com}
          type: string
        data_request:
          type: object
          $ref: '#/components/schemas/DataRequest'
        enable_app2app:
          example: false
          type: boolean
          description: >
            This indicates whether OAuth app2app behavior is enabled for
            institutions that support it. Defaults to `true`. When set to
            `false`, any `oauth_window_uri` generated will **not** direct the
            end user to the institution's mobile application. This setting is
            not persistent. This setting currently only affects Chase
            institutions.
        member:
          $ref: '#/components/schemas/MemberCreateRequest'
        referral_source:
          example: APP
          type: string
        ui_message_webview_url_scheme:
          description: >-
            A client-defined scheme used in OAuth redirects in WebViews.
            Defaults to `mx`.
          type: string
      type: object
    MemberResponseWithJobError:
      allOf:
        - $ref: '#/components/schemas/MemberResponse'
        - type: object
          properties:
            error:
              type: object
              properties:
                error_type:
                  description: The type of error that occurred.
                  type: string
                  example: MEMBER
                error_code:
                  description: The specific error code.
                  type: string
                  example: REQUEST_FAILED
                error_message:
                  description: A human-readable message describing the error.
                  type: string
                  example: >-
                    There was an error attempting to process your request. The
                    Member was created but we were unable to fulfill the data
                    request.
                user_message:
                  description: A human-readable message intended for the end user.
                  type: string
                  example: >-
                    We're having trouble connecting right now. Please try again
                    later.
    MemberResponseWithJobErrorBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberResponseWithJobError'
      type: object
    MemberUpdateRequest:
      properties:
        background_aggregation_is_disabled:
          description: >-
            Indicates whether background aggregation is disabled for the
            `member`.
          example: false
          type: boolean
        credentials:
          items:
            $ref: '#/components/schemas/CredentialRequest'
          type: array
        id:
          description: The unique partner-defined identifier for the member.
          example: unique_id
          type: string
        metadata:
          description: Additional information you can store about the `member`.
          example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
          type: string
        use_cases:
          type: array
          description: >-
            The use case associated with the member. Valid values are `PFM`
            and/or `MONEY_MOVEMENT`. Only set this if you've met with MX and
            have opted in to using this field.
          items:
            type: string
            enum:
              - MONEY_MOVEMENT
              - PFM
          example:
            - PFM
      type: object
    MemberUpdateRequestBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberUpdateRequest'
      type: object
    AccountOwnerResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        address:
          description: The account owner's street address.
          example: 3541 Adrian Street
          nullable: true
          type: string
        city:
          description: The account owner's city.
          example: Middlesex
          nullable: true
          type: string
        country:
          description: The account owner's country.
          example: US
          nullable: true
          type: string
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
        first_name:
          description: >-
            The account owner's first name. This may also include a middle name.
            This field will be `null` unless name splitting has been enabled.
            Contact MX to have this feature enabled.
          example: Josh
          type: string
          nullable: true
        guid:
          description: Unique identifier for the account owner. Defined by MX.
          example: ACO-63dc7714-6fc0-4aa2-a069-c06cdccd1af9
          nullable: true
          type: string
        last_name:
          description: The last name of the account holder.
          example: Smith
          nullable: true
          type: string
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        owner_name:
          description: The account owner's name.
          example: Josh Smith
          nullable: true
          type: string
        phone:
          description: The account owner's phone number.
          example: 555-555-5555
          nullable: true
          type: string
        postal_code:
          description: The account owner's postal code.
          example: 00000-0000
          nullable: true
          type: string
        state:
          description: The account owner's state.
          example: VA
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    AccountOwnersResponseBody:
      properties:
        account_owners:
          items:
            $ref: '#/components/schemas/AccountOwnerResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    AccountUpdateRequest:
      properties:
        account_subtype:
          description: Can only be updated for manual accounts.
          example: PERSONAL
          nullable: true
          type: string
        account_type:
          description: >-
            The type of account. Some account types may include subtypes. For a
            full list of account types and subtypes, see [Account
            Types](/api-reference/platform-api/reference/account-types).
          example: CHECKING
          nullable: true
          type: string
          enum:
            - ANY
            - CASH
            - CHECKING
            - CHECKING_LINE_OF_CREDIT
            - CREDIT_CARD
            - LOAN
            - LINE_OF_CREDIT
            - SAVINGS
            - INVESTMENT
            - MORTGAGE
            - INSURANCE
            - PREPAID
            - PROPERTY
        apr:
          description: >-
            Can only be updated for manual accounts. The annual percentage rate
            associated with the `account`.
          example: 5.25
          nullable: true
          type: number
        apy:
          description: >-
            Can only be updated for manual accounts. The annual percentage yield
            associated with the `account`.
          example: 2.35
          type: number
        available_balance:
          description: >
            Can only be updated for manual accounts.


            The balance that is available for use in asset accounts like
            checking and savings.
          example: 1000
          type: number
        balance:
          description: >-
            Can only be updated for manual accounts. The current balance of the
            account.
          example: 1000
          type: number
        cash_surrender_value:
          description: >-
            Can only be updated for manual accounts. The sum of money paid to
            the policyholder or annuity holder in the event the policy is
            voluntarily terminated before it matures, or the insured event
            occurs.
          example: 1000
          type: number
        credit_limit:
          description: >-
            Can only be updated for manual accounts. The credit limit associated
            with the `account`.
          example: 5000
          nullable: true
          type: number
        currency_code:
          description: >-
            Can only be updated for manual accounts. The three-character ISO
            4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        death_benefit:
          description: >-
            Can only be updated for manual accounts. The amount paid to the
            beneficiary of the account upon death of the account owner.
          example: 1000
          type: integer
        interest_rate:
          example: 1
          type: number
          description: Can only be updated for manual accounts.
        is_business:
          example: false
          type: boolean
          description: Can be updated for manual accounts and aggregated accounts.
        is_closed:
          example: false
          type: boolean
          description: Can only be updated for manual accounts.
        is_hidden:
          example: false
          type: boolean
          description: Can be updated for manual accounts and aggregated accounts.
        loan_amount:
          example: 1000
          type: number
          description: Can only be updated for manual accounts.
        metadata:
          example: some metadata
          type: string
          description: Can only be updated for manual accounts.
        name:
          example: Test account 2
          type: string
          description: Can only be updated for manual accounts.
        nickname:
          example: Swiss Account
          type: string
          description: Can only be updated for manual accounts.
        original_balance:
          example: 10
          type: number
          description: Can only be updated for manual accounts.
        property_type:
          example: VEHICLE
          type: string
          description: Can only be updated for manual accounts.
        skip_webhook:
          example: true
          type: boolean
          description: >-
            If set to `true`, prevents sending an account webhook for the update
            if that webhook type is enabled for you.
      type: object
    AccountUpdateRequestBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountUpdateRequest'
      type: object
    ImageOptionResponse:
      properties:
        data_uri:
          example: data:image/png;base64,iVBORw0KGgoAAAANSUh ... more image data ...
          nullable: true
          type: string
        guid:
          example: CRD-ce76d2e3-86bd-ec4a-ec52-eb53b5194bf5
          nullable: true
          type: string
        label:
          example: IMAGE_1
          nullable: true
          type: string
        value:
          example: image_data
          nullable: true
          type: string
      type: object
    OptionResponse:
      properties:
        guid:
          example: CRD-ce76d2e3-86bd-ec4a-ec52-eb53b5194bf5
          nullable: true
          type: string
        label:
          example: IMAGE_1
          nullable: true
          type: string
        value:
          example: image_data
          nullable: true
          type: string
      type: object
    ChallengeResponse:
      properties:
        field_name:
          example: Who is this guy?
          nullable: true
          type: string
        guid:
          example: CRD-ce76d2e3-86bd-ec4a-ec52-eb53b5194bf5
          nullable: true
          type: string
        image_data:
          example: Who is this guy?
          nullable: true
          type: string
        image_options:
          items:
            $ref: '#/components/schemas/ImageOptionResponse'
          type: array
        label:
          example: Who is this guy?
          nullable: true
          type: string
        options:
          items:
            $ref: '#/components/schemas/OptionResponse'
          type: array
        type:
          example: IMAGE_DATA
          nullable: true
          type: string
      type: object
    ChallengesResponseBody:
      properties:
        challenges:
          items:
            $ref: '#/components/schemas/ChallengeResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    InvestmentHoldingResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        cost_basis:
          description: >-
            The original value of an asset for tax purposes, usually the
            purchase price, used to calculate capital gains or losses.
            Accumulated price.
          example: 827
          nullable: true
          type: number
        coupon_yield:
          description: The rate of return the bonds coupon rate generates.
          example: null
          nullable: true
          type: string
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          nullable: true
          type: string
        current_price:
          description: >-
            The present market price of a single unit of the holding (for
            example, stock price per share).
          example: 15
          nullable: true
          type: number
        daily_change:
          description: >-
            The daily change in the `current_price` of the holding since the
            previous trading day.
          example: 2.5
          nullable: true
          type: number
        description:
          description: >-
            A brief description of the holding, such as the company name for
            stocks or the bond type for bonds.
          example: Guggenheim Defensive Equity ETF
          nullable: true
          type: string
        expiration:
          description: The expiration date associated with the holding.
          example: null
          nullable: true
          type: string
        face_value:
          description: >-
            The nominal value of a bond or fixed-income security, paid to the
            holder at maturity.
          example: 1000
          nullable: true
          type: number
        frequency:
          description: >-
            The frequency of the interest paid on the bond (i.e. Annually,
            Monthly, etc.)
          example: ANNUALLY
          nullable: true
          type: string
        guid:
          description: The unique identifier for the holding. Defined by MX.
          example: HOL-d65683e8-9eab-26bb-bcfd-ced159c9abe2
          nullable: true
          type: string
        market_value:
          description: >-
            The current market value of the holding, calculated as the current
            price times the number of units (shares) owned.
          example: 989.5
          nullable: true
          type: number
        maturity_date:
          description: The maturity date associated with the holding.
          example: null
          nullable: true
          type: string
        percentage_change:
          description: >-
            The percent change in the `current_price` of the holding compared to
            a previous time period. It is the percentage change that reflects
            the `daily_change`.
          example: 0.2
          nullable: true
          type: number
        purchase_price:
          description: The average price paid for the holding.
          example: 26.3
          nullable: true
          type: number
        quantity:
          description: >-
            The number of units of the holding owned (for example, number of
            shares of stock).
          example: '5000.0'
          nullable: true
          type: string
        rate:
          description: >-
            The interest on the bond, subject to determining the payout amount
            of the bond.
          example: null
          nullable: true
          type: number
        strike_price:
          description: The strike price associated to the option.
          example: null
          nullable: true
          type: number
        symbol:
          description: >-
            The ticker symbol or unique identifier of the holding, used in stock
            exchanges.
          example: DEF
          nullable: true
          type: string
        term:
          description: >-
            The length of time until the bond's principal amount is due to be
            repaid. It is the period from when the bond is issued until it
            reaches its maturity date.
          example: null
          nullable: true
          type: string
        today_ugl_amount:
          description: The unrealized gain/loss amount for today.
          example: 200
          nullable: true
          type: number
        today_ugl_percentage:
          description: The unrealized gain/loss percentage for today.
          example: 0.27
          nullable: true
          type: number
        total_ugl_amount:
          description: The total unrealized gain/loss amount for an investment.
          example: 20000
          nullable: true
          type: number
        total_ugl_percentage:
          description: >-
            The total unrealized gain/loss for the holding since it was
            acquired.
          example: 26.67
          nullable: true
          type: number
        unvested_quantity:
          description: >-
            The number of units (for example, shares) of the holding that are
            not yet vested or owned outright by the holder.
          example: null
          nullable: true
          type: number
        unvested_value:
          description: The value of the portion of the holding that is unvested.
          example: null
          nullable: true
          type: number
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
        vested_quantity:
          description: >-
            The number of units (for example, shares) of the holding that are
            vested and fully owned by the holder.
          example: null
          nullable: true
          type: number
        vested_value:
          description: >-
            The value of the portion of the holding that is vested and fully
            owned by the holder.
          example: null
          nullable: true
          type: number
        created_at:
          description: >-
            The date and time the investment holding was created, represented in
            ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        current_price_as_of:
          description: >-
            The date and time when the current price was last updated,
            represented in ISO 8601 format with a timestamp.
          example: '2023-11-06T00:00:00Z'
          nullable: true
          type: string
        issue_date:
          description: The date on which a security was issued or made available for sale.
          example: '2015-08-15'
          nullable: true
          type: string
        vesting_start_date:
          description: The date from which the vesting schedule for a holding begins.
          example: null
          nullable: true
          type: string
        vesting_end_date:
          description: The date from which the vesting schedule for a holding ends.
          example: null
          nullable: true
          type: string
        put_or_call:
          description: States whether the option is a `PUT` or `CALL`.
          example: null
          nullable: true
          type: string
        holding_type:
          description: >-
            The type of investment (e.g., equity, fixed income, mutual fund,
            etc.)
          example: MUTUAL_FUND
          nullable: true
          type: string
        term_unit:
          description: >-
            The unit type of the term associated to the bond. (Year, Month,
            etc.)
          example: null
          nullable: true
          type: string
      type: object
    InvestmentHoldingsResponseBody:
      properties:
        investment_holdings:
          items:
            $ref: '#/components/schemas/InvestmentHoldingResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    InvestmentHoldingResponseBody:
      properties:
        investment_holding:
          $ref: '#/components/schemas/InvestmentHoldingResponse'
      type: object
    InvestmentHoldingsDeactivation:
      properties:
        message:
          example: Successfully deactivated user from billing
        status:
          example: 200
    OAuthWindowResponse:
      properties:
        guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-df96fd60-7122-4464-b3c2-ff11d8c74f6f
          nullable: true
          type: string
        oauth_window_uri:
          description: >-
            When connecting a member using OAuth, this field will contain the
            URL to send the user to in order to authenticate, otherwise it will
            be blank.
          example: >-
            https://mxbank.mx.com/oauth/authorize?client_id=b8OikQ4Ep3NuSUrQ13DdvFuwpNx-qqoAsJDVAQCyLkQ&redirect_uri=https%3A%2F%2Fint-app.moneydesktop.com%2Foauth%2Fredirect_from&response_type=code&scope=openid&state=d745bd4ee6f0f9c184757f574bcc2df2
          nullable: true
          type: string
      type: object
    OAuthWindowResponseBody:
      properties:
        member:
          $ref: '#/components/schemas/OAuthWindowResponse'
      type: object
    MemberResumeRequest:
      properties:
        challenges:
          items:
            $ref: '#/components/schemas/CredentialRequest'
          type: array
      type: object
    MemberResumeRequestBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberResumeRequest'
      type: object
    StatementResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        content_hash:
          description: An SHA-256 hash value of the statement's byte payload.
          example: ca53785b812d00ef821c3d94bfd6e5bbc0020504410589b7ea8552169f021981
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the statement was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        guid:
          description: The unique identifier for the `statement`. Defined by MX.
          example: STA-737a344b-caae-0f6e-1384-01f52e75dcb1
          nullable: true
          type: string
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        uri:
          description: A URI for accessing the byte payload of the `statement`.
          example: uri/to/statement
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    StatementsResponseBody:
      properties:
        statements:
          items:
            $ref: '#/components/schemas/StatementResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    StatementResponseBody:
      properties:
        statement:
          $ref: '#/components/schemas/StatementResponse'
      type: object
    MemberStatusResponse:
      properties:
        aggregated_at:
          description: >
            The date and time the most recent aggregation-type job was started,
            given in ISO 8601 format with a time component.


            A job will automatically be started when a member is created or its
            credentials are updated, unless the `skip_aggregation` parameter is
            used.


            Jobs can also be started via manual aggregations, background
            aggregations, API endpoints, or when opening an MX widget.


            A job can be a normal aggregation, or a premium job such as
            identification, verification, fetching statements, or fetching an
            extended transaction history.


            If a member is deleted and then re-created with the
            `skip_aggregation` parameter set to `true` or if it is re-created
            within the throttle window (typically three hours), the previous
            value will be returned.
          example: '2016-10-13T18:07:57.000Z'
          nullable: true
          type: string
        challenges:
          items:
            $ref: '#/components/schemas/ChallengeResponse'
          type: array
        connection_status:
          description: >-
            The status of a user's connection to an institution. See [Member
            Connection
            Status](/api-reference/platform-api/reference/members#member-connection-statuses).
          example: CONNECTED
          nullable: true
          type: string
          enum:
            - null
            - CREATED
            - PREVENTED
            - DENIED
            - CHALLENGED
            - REJECTED
            - LOCKED
            - CONNECTED
            - IMPEDED
            - RECONNECTED
            - DEGRADED
            - DISCONNECTED
            - DISCONTINUED
            - CLOSED
            - DELAYED
            - FAILED
            - UPDATED
            - DISABLED
            - IMPORTED
            - RESUMED
            - EXPIRED
            - IMPAIRED
            - PENDING
        guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        has_processed_account_numbers:
          description: Indicates whether the member has processed account numbers.
          example: true
          nullable: true
          type: boolean
        has_processed_accounts:
          description: Indicates whether the member has processed accounts.
          example: true
          nullable: true
          type: boolean
        has_processed_transactions:
          description: Indicates whether the member has processed transactions.
          example: false
          nullable: true
          type: boolean
        is_authenticated:
          example: false
          nullable: true
          type: boolean
        is_being_aggregated:
          example: false
          nullable: true
          type: boolean
        successfully_aggregated_at:
          description: >-
            The date and time when the member was last successfully aggregated,
            represented in ISO 8601 format with a timestamp.
          example: '2016-10-13T17:57:38.000Z'
          nullable: true
          type: string
      type: object
    MemberStatusResponseBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberStatusResponse'
      type: object
    SpendingPlanIterationItemResponse:
      properties:
        actual_amount:
          description: >-
            The sum of the transactions associated with the spending plan
            `iteration_item`.
          example: 345
          nullable: true
          type: number
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the spending plan iteration item was created,
            represented in ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        guid:
          description: >-
            The unique identifier for the spending plan `iteration_item`.
            Defined by MX.
          example: SPL-e5f9a5bd-c5b3-4901-bdc0-62119b9db262
          nullable: true
          type: string
        item_type:
          description: >-
            The type of transaction grouping for the spending plan
            `iteration_item` (0 = `RECURRING_EXPENSE`, 1 = `PLANNED_EXPENSE`, 2
            = `OTHER_EXPENSE`, 3 = `INCOME`).
          example: 1
          nullable: true
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        planned_amount:
          description: The total amount planned for a spending plan `iteration_item`.
          example: 110
          nullable: true
          type: number
        scheduled_payment_guid:
          description: >-
            The unique identifier for the `scheduled_payment_guid` associated
            with the spending plan `iteration_item`. Defined by MX.
          example: SCP-c731988a-712f-4f83-9b3b-0aa5b3d5208b
          nullable: true
          type: string
        spending_plan_iteration_guid:
          description: >-
            The unique identifier for the spending plan `iteration_item`.
            Defined by MX.
          example: SPI-848e6648-3fa3-4632-ac8f-e65f03167102
          nullable: true
          type: string
        top_level_category_guid:
          description: >-
            The unique identifier for the `top_level_category_guid` associated
            with the spending plan `iteration_item`. Defined by MX.
          example: CAT-9588eaad-90a4-bb5c-66c8-1812503d0db8
          nullable: true
          type: string
        transaction_guids:
          description: >-
            An array of transaction GUIDs that are relevant to the spending plan
            `iteration_item`. Defined by MX.
          items:
            example: TRN-265abee9-889b-af6a-c69b-25157db2bdd9
            nullable: true
            type: string
          type: array
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    SpendingPlanIterationItemsResponseBody:
      properties:
        iteration_items:
          items:
            $ref: '#/components/schemas/SpendingPlanIterationItemResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    SpendingPlanIterationItemCreateRequestBody:
      properties:
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          type: string
        item_type:
          description: >-
            The type of transaction grouping for the spending plan
            `iteration_item` (0 = `RECURRING_EXPENSE`, 1 = `PLANNED_EXPENSE`, 2
            = `OTHER_EXPENSE`, 3 = `INCOME`).
          example: 1
          type: number
        planned_amount:
          description: The total amount planned for a spending plan `iteration_item`.
          example: 61.11
          type: number
        scheduled_payment_guid:
          description: >-
            The unique identifier for the `scheduled_payment_guid` associated
            with the spending plan `iteration_item`. Defined by MX.
          example: SCP-c731988a-712f-4f83-9b3b-0aa5b3d5208b
          type: string
        top_level_category_guid:
          description: >-
            The unique identifier for the `top_level_category_guid` associated
            with the spending plan `iteration_item`. Defined by MX.
          example: CAT-9588eaad-90a4-bb5c-66c8-1812503d0db8
          type: string
      required:
        - planned_amount
      type: object
    SpendingPlanResponse:
      properties:
        created_at:
          description: >-
            The date and time the spending plan was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        current_iteration_number:
          description: >-
            The current active associated `spending_plan_iteration` number for a
            given `spending_plan`.
          example: 1
          nullable: true
          type: integer
        guid:
          description: The unique identifier for the `spending_plan`. Defined by MX.
          example: SPL-e5f9a5bd-c5b3-4901-bdc0-62119b9db262
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    SpendingPlansResponseBody:
      properties:
        spending_plans:
          items:
            $ref: '#/components/schemas/SpendingPlanResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    SpendingPlanAccountResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        client_guid:
          description: >-
            The unique identifier for the client associated with the insight.
            Defined by MX.
          example: CLT-abcd-1234
          type: string
        created_at:
          description: >-
            The date and time the spending plan account was created, represented
            in ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        guid:
          description: The unique identifier for the spending plan account. Defined by MX.
          example: SPA-c76e4a85-b2c4-4335-82b7-8f8b8f28c35a
          type: string
        spending_plan_guid:
          description: The unique identifier for the spending plan. Defined by MX.
          example: SPL-dbfe201d-c341-4bff-93c0-62a918d0b600
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type: string
      type: object
    SpendingPlanAccountsResponse:
      properties:
        spending_plan_accounts:
          items:
            $ref: '#/components/schemas/SpendingPlanAccountResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    SpendingPlanIterationResponse:
      properties:
        created_at:
          description: >-
            The date and time the spending plan iteration was created,
            represented in ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        end_on:
          description: The date on which the spending plan iteration ends.
          example: '2023-05-31'
          nullable: true
          type: string
        guid:
          description: >-
            The unique identifier for the spending plan iteration. Defined by
            MX.
          example: SPI-848e6648-3fa3-4632-ac8f-e65f03167102
          nullable: true
          type: string
        iteration_number:
          description: The current iteration number for the spending plan iteration.
          example: 1
          nullable: true
          type: integer
        spending_plan_guid:
          description: The unique identifier for the spending plan. Defined by MX.
          example: SPL-dbfe201d-c341-4bff-93c0-62a918d0b600
          nullable: true
          type: string
        start_on:
          description: The date on which the spending plan iteration starts.
          example: '2023-05-01'
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    SpendingPlanIterationsResponse:
      properties:
        iterations:
          items:
            $ref: '#/components/schemas/SpendingPlanIterationResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    TaggingResponse:
      properties:
        guid:
          description: The unique identifier for the tagging. Defined by MX.
          example: TGN-007f5486-17e1-45fc-8b87-8f03984430fe
          nullable: true
          type: string
        member_is_managed_by_user:
          description: >-
            This indicates whether the member is managed by the user or the MX
            partner. Members created with the managed member feature will have
            this field set to `false`.
          example: false
          nullable: true
          type: boolean
        tag_guid:
          description: The unique identifier for the tag. Defined by MX.
          example: TAG-40faf068-abb4-405c-8f6a-e883ed541fff
          nullable: true
          type: string
        transaction_guid:
          description: The unique identifier for the transaction. Defined by MX.
          example: TRN-810828b0-5210-4878-9bd3-f4ce514f90c4
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    TaggingsResponseBody:
      properties:
        taggings:
          items:
            $ref: '#/components/schemas/TaggingResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    TaggingCreateRequest:
      properties:
        tag_guid:
          description: The unique identifier for the tag.
          example: TAG-40faf068-abb4-405c-8f6a-e883ed541fff
          type: string
        transaction_guid:
          description: The unique identifier for the `transaction`.
          example: TRN-810828b0-5210-4878-9bd3-f4ce514f90c4
          type: string
      required:
        - tag_guid
        - transaction_guid
      type: object
    TaggingCreateRequestBody:
      properties:
        tagging:
          $ref: '#/components/schemas/TaggingCreateRequest'
      type: object
    TaggingResponseBody:
      properties:
        tagging:
          $ref: '#/components/schemas/TaggingResponse'
      type: object
    TaggingUpdateRequest:
      properties:
        tag_guid:
          description: The unique identifier for the tagging.
          example: TAG-40faf068-abb4-405c-8f6a-e883ed541fff
          type: string
      required:
        - tag_guid
      type: object
    TaggingUpdateRequestBody:
      properties:
        tagging:
          $ref: '#/components/schemas/TaggingUpdateRequest'
      type: object
    TagResponse:
      properties:
        guid:
          description: The unique identifier for the tag. Defined by MX.
          example: TAG-aef36e72-6294-4c38-844d-e573e80aed52
          nullable: true
          type: string
        name:
          description: The name of the tag.
          example: MY TAG
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    TagsResponseBody:
      properties:
        tags:
          items:
            $ref: '#/components/schemas/TagResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    TagCreateRequest:
      properties:
        name:
          description: The name of the tag.
          example: MY TAG
          type: string
      required:
        - name
      type: object
    TagCreateRequestBody:
      properties:
        tag:
          $ref: '#/components/schemas/TagCreateRequest'
      type: object
    TagResponseBody:
      properties:
        tag:
          $ref: '#/components/schemas/TagResponse'
      type: object
    TagUpdateRequest:
      properties:
        name:
          description: The name of the tag.
          example: MY TAG
          type: string
      required:
        - name
      type: object
    TagUpdateRequestBody:
      properties:
        tag:
          $ref: '#/components/schemas/TagUpdateRequest'
      type: object
    TransactionRuleResponse:
      properties:
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        created_at:
          description: >-
            The date and time the resource was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        description:
          description: >-
            The matched transaction's `description` will be updated to the
            string provided here.
          example: Wal-mart food storage
          nullable: true
          type: string
        guid:
          description: A unique identifier for the `transaction_rule`. Defined by MX.
          example: TXR-a080e0f9-a2d4-4d6f-9e03-672cc357a4d3
          nullable: true
          type: string
        match_description:
          description: >-
            A string used to find a transaction to which the rule will be
            applied. Transaction matching is based on a comparison of
            `match_description` to a transaction's cleansed description.
          example: Wal-mart
          nullable: true
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          nullable: true
          type: string
      type: object
    TransactionRulesResponseBody:
      properties:
        transaction_rules:
          items:
            $ref: '#/components/schemas/TransactionRuleResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    TransactionRuleCreateRequest:
      properties:
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        description:
          example: Wal-mart food storage
          type: string
        match_description:
          example: Wal-mart
          type: string
      required:
        - category_guid
        - match_description
      type: object
    TransactionRuleCreateRequestBody:
      properties:
        transaction_rule:
          $ref: '#/components/schemas/TransactionRuleCreateRequest'
      type: object
    TransactionRuleResponseBody:
      properties:
        transaction_rule:
          $ref: '#/components/schemas/TransactionRuleResponse'
      type: object
    TransactionRuleUpdateRequest:
      properties:
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        description:
          description: >-
            The matched transaction's `description` will be updated to the
            string provided here.
          example: Wal-mart food storage
          type: string
        match_description:
          description: >-
            A string used to find a transaction to which the rule will be
            applied. Transaction matching is based on a comparison of
            `match_description` to a transaction's cleansed description.
          example: Wal-mart
          type: string
      type: object
    TransactionRuleUpdateRequestBody:
      properties:
        transaction_rule:
          $ref: '#/components/schemas/TransactionRuleUpdateRequest'
      type: object
    TransactionUpdateRequest:
      properties:
        description:
          example: new description
          type: string
      required:
        - description
      type: object
    TransactionUpdateRequestBody:
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionUpdateRequest'
      type: object
    DeepLinkParams:
      description: Enables widget-specific behavior.
      properties:
        account_guid:
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          type: string
          description: >-
            Only use this option if the `widget_type` is set to
            `spending_widget`. When used with the Legacy Spending Widget, used
            to filter by account. Contains an `account_guid` (string) optional
            param.
        date_range:
          type: object
          description: >-
            Only use this option if the `widget_type` is set to
            `spending_widget`. When used with the Legacy Spending widget, used
            to filter by date range. Set the `date_range` using `start_date`
            (string) and `end_date` (string).
          properties:
            start_date:
              type: string
              description: The start date of the range in `YYYY-MM-DD` format.
              example: '2023-01-01'
            end_date:
              type: string
              description: The end date of the range in `YYYY-MM-DD` format.
              example: '2023-12-31'
        launch_integration:
          example: direct-deposit
          type: string
          description: >-
            Only use this option if the `widget_type` is set to
            `actionable_integration_widget`. Launches a deep link integration.
            Valid value is `direct-deposit`.
        view:
          example: manage_income
          type: string
          description: >-
            When used with the Cash Flow, Settings, or Money Dashboard widget,
            sets the widget's default view. Valid value for Cash Flow or Money
            Dashboard Widgets is `manage_income.` Valid values for the
            Notifications section of the Settings Widget
            (`notifications_settings_widget`) are `accounts`, `budgets`, or
            `insights`.
        widget:
          example: budgets
          type: string
          description: >-
            Only use this option if the `widget_type` is set to `master_widget`.
            Launches a specific view in the Master Widget. Valid values are
            `accounts`, `budgets`, `cash_flow`, `debts`, `finstrong`, `goals`,
            `insights`, `investments`, `networth`, `recurringtransactions`,
            `spending`, `transactions`, and `trends`.
    Style:
      type: object
      description: Contains fields to customize the appearance of a widget.
      required:
        - font_name
      properties:
        font_name:
          type: string
          description: Sets the widget's font. Pass any Google font to change it.
          example: Roboto
    WidgetRequest:
      properties:
        client_redirect_url:
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`.


            This determines the redirect destination at the end of OAuth when
            used with `is_mobile_webview: true` or `oauth_referral_source:
            'APP'`.
          example: https://{yoursite.com}
          type: string
        color_scheme:
          description: >
            This option can be passed to any `widget_type` but will not affect
            [legacy PFM
            widgets](/products/experience/pfm/legacy-widget-overviews/).


            Load the widget with the specified `color_scheme`; options are
            `light`, `dark`, and `browser` (respects user's browser setting).
            Defaults to `light`.
          example: light
          nullable: true
          type: string
          enum:
            - light
            - browser
            - dark
        current_institution_code:
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`.


            Load the widget into the credential view for the specified
            institution.
          example: mx_bank
          nullable: true
          type: string
        current_institution_guid:
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`.


            Load the widget into the credential view for the specified
            institution.
          example: INS-f1a3285d-e855-b61f-6aa7-8ae575c0e0e9
          type: string
        current_member_guid:
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`.


            Load the widget into a specific member that contains an error or
            requires multifactor authentication. The widget will determine the
            best view to load based on the member's current state.


            This option takes precedence over `current_institution_code` and
            `current_institution_guid`.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: true
          type: string
        current_microdeposit_guid:
          example: MIC-1234567890
          description: >-
            Only use this option if the `widget_type` is set to
            `connect_widget`. This loads the Connect Widget to whichever step
            the microdeposit process is currently in, which may be the verify
            amounts step, an error state, and so on. This field is required if
            attempting to load a specific microdeposit for end users to enter
            amounts.
          type: string
        data_request:
          $ref: '#/components/schemas/DataRequest'
        deep_link_params:
          $ref: '#/components/schemas/DeepLinkParams'
          type: object
        disable_background_agg:
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`. This determines whether background aggregation is
            enabled or disabled for the `member` created by the Connect Widget.
            Defaults to `false` in `aggregation` mode and `true` in
            `verification` mode. A global default for all members can be set by
            reaching out to MX.
          example: false
          type: boolean
        disable_institution_search:
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`.


            When set to `true`, the institution search feature in the Connect
            Widget will be disabled and end users will not be able to navigate
            to it. Defaults to `false`.


            This option must be used with `current_institution_code`,
            `current_institution_guid`, or `current_member_guid`.
          example: false
          nullable: true
          type: boolean
        enable_app2app:
          example: false
          type: boolean
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`. This indicates whether OAuth app2app behavior is
            enabled for institutions that support it. Defaults to `true`. When
            set to `false`, the widget will **not** direct the end user to the
            institution's mobile application. This setting is not persistent.
            This setting currently only affects Chase institutions.
        include_identity:
          example: false
          type: boolean
          description: >
            Use `data_request.products` instead to set your products.


            Only use this option if the `widget_type` is set to
            `connect_widget`. This determines whether account owner
            identification data (AOI, previously called "identity verification")
            aggregates after the data that's specified by the `mode` finishes
            aggregating. Defaults to `false`. This can be set in either
            `aggregation` or `verification` mode. Setting this to `true` will
            produce the following behaviors:


            - The widget will only search for and display institutions that
            support the data the `mode` (`aggregation` or `verification`) is
            aggregating and AOI.

            - The member connected postMessage event will not be sent until both
            aggregations are complete.
        include_transactions:
          description: >
            Use `data_request.products` instead to set your products.


            Only use this option if the `widget_type` is set to
            `connect_widget`. This determines whether transaction data are
            retrieved. Defaults to `true` in `aggregation` mode and `false` in
            `verification` mode. This can be set in either aggregation or
            verification mode. This option does not affect future foreground or
            background aggregations.
          example: true
          type: boolean
        insight_guid:
          example: null
          type: string
          nullable: true
          description: >
            Only use this option if the `widget_type` is set to `pulse_widget`.
            Set this to the insight guid you want to appear at the top of the
            insights feed.
        iso_country_code:
          example:
            - US
            - CA
          type: array
          items:
            type: string
          description: >
            An array of strings that filters institutions in the widget by the
            specified country code. Acceptable codes include `US`, `CA`, and
            `MX` (Mexico).
        is_mobile_webview:
          example: false
          type: boolean
          description: >
            This option is for every `widget_type`. This configures the widget
            to render in a mobile WebView. JavaScript event postMessages are
            replaced with URL updates.
        microwidget_instance_id:
          example: null
          type: string
          nullable: true
          description: >
            Only use this option if the `widget_type` is set to
            `micro_pulse_carousel_widget`. Set this to a unique value for each
            instance of the Micro Widget. This lets us collect unique data for
            each instance of the widget.
        locale:
          description: >
            Sets the language of the widget. 


            If you're requesting the Connect or Connections Widgets, you must
            use the Accept-Language header.
          example: fr-CA
          type: string
        mode:
          example: aggregation
          type: string
          description: >
            Use `data_request.products` instead to set your products.


            Only use this option if the `widget_type` is set to
            `connect_widget`. `mode` is the most important option for the
            Connect Widget. This determines what kind of process Connect will
            run, which affects how you should set many other options. Defaults
            to `aggregation`. `aggregation` mode retrieves account and
            transaction data; in other words, this runs a standard aggregation.
            `verification` mode retrieves account numbers and routing/transit
            numbers; in other words, it runs an Instant Account Verification
            (IAV). By default, verification mode does not retrieve transaction
            data; this default can be modified with secondary options. By
            default, background aggregation is disabled for all members created
            in verification mode; this default can be modified with secondary
            options.
        oauth_referral_source:
          example: BROWSER
          type: string
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`. This determines how MX will respond to the result
            of an OAuth flow. When set to `APP`, MX will redirect to the URI
            specified in the `ui_message_webview_url_scheme`. When set to
            `BROWSER`, MX will send a postMessage but not redirect. If
            `is_mobile_webview` is `true`, this defaults to `APP`. If false, it
            defaults to `BROWSER`.
        style:
          $ref: '#/components/schemas/Style'
        ui_message_version:
          example: 4
          type: integer
          description: >
            This option is for all `widget_type`s. This determines which version
            of postMessage events are triggered. Defaults to 4. All new
            implementations must use version 4. Prior versions are deprecated.
        ui_message_webview_url_scheme:
          type: string
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`. This is a client-defined scheme used in OAuth
            redirects in WebViews; also used in URL updates when these replace
            postMessages in WebViews. Defaults to `mx`.
        update_credentials:
          example: false
          type: boolean
          description: >
            Only use this option if the `widget_type` is set to
            `connect_widget`. Load the widget into a view that allows them to
            update the current member. Optionally used with
            `current_member_guid`. This option should be used sparingly. The
            best practice is to use `current_member_guid` and let the widget
            resolve the issue.
        use_cases:
          type: array
          description: >-
            The use case that will be associated with any members created
            through the widget. Valid values are `PFM` and/or `MONEY_MOVEMENT`.
            This is **required** if you've met with MX and have opted in to
            using this field.
          items:
            type: string
            enum:
              - MONEY_MOVEMENT
              - PFM
          example:
            - PFM
        widget_type:
          example: connect_widget
          type: string
          description: >
            This determines which widget URL you'll receive.


            See [Widget Types](/api-reference/platform-api/reference/widgets)
            for a list of potential values. Additional request parameters may
            only apply to some widget types.
      required:
        - widget_type
      type: object
    WidgetResponse:
      properties:
        type:
          description: >
            This determines which widget URL you'll receive. Additional request
            parameters may only apply to some widget types.
          example: connect_widget
          nullable: true
          type: string
          enum:
            - accounts_widget
            - mini_accounts_widget
            - actionable_integration_widget
            - budgets_widget
            - mini_budgets_widget
            - cash_flow_widget
            - mini_cash_flow_widget
            - connect_widget
            - connections_widget
            - debts_widget
            - finstrong_widget
            - mini_finstrong_widget
            - goals_widget
            - help_widget
            - master_widget
            - money_dashboard_widget
            - net_worth_widget
            - mini_net_worth_widget
            - notifications_settings_widget
            - recurringtransactions_widget
            - mini_recurringtransactions_widget
            - settings_widget
            - spending_widget
            - mini_spending_widget
            - spending_plan_widget
            - mini_spending_plan_widget
            - transaction_rules_widget
            - transactions_widget
            - trends_widget
            - mini_trends_widget
        url:
          description: The URL for accessing the widget.
          example: >-
            https://int-widgets.moneydesktop.com/md/connect/yxcdk7f1nb99jwApp34lA24m0AZ8rzprgmw17gm8z8h2AzjyAnd1rj42qfv42r3xnn07Amfwlg3j09hwp8bkq8tc5z21j33xjggmp2qtlpkz2v4gywfhfn31l44tx2w91bfc2thc58j4syqp0hgxcyvA4g7754hk7gjc56kt7tc36s45mmkdz2jqqqydspytmtr3dAb9jh6fkb24f3zkfpdjj0v77f0vmrtzvzxkmxz7dklsq8gd0gstkbhlw5bgpgc3m9mAtpAcr2w15gwy5xc4blgxppl42Avnm63291z3cyp0wm3lqgmvgzdAddct423gAdqxdlfx5d4mvc0ck2gt7ktqgks4vxq1pAy5
          nullable: true
          type: string
        user_id:
          description: The unique partner-defined identifier for the user.
          example: u-1234
          nullable: true
          type: string
      type: object
    WidgetResponseBody:
      properties:
        widget_url:
          $ref: '#/components/schemas/WidgetResponse'
      type: object
    BudgetResponse:
      properties:
        amount:
          description: >-
            A goal amount set by the user for a category's transaction total
            during a month.
          example: 153
          type: number
        category_guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: false
          type: string
        created_at:
          description: >-
            The date and time the budget was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          nullable: false
          type: string
        guid:
          description: Unique identifier for the `budget`. Defined by MX.
          example: BGT-6ca0e3ef-c65e-4655-8b5a-275a3c19c21d
          type: string
        is_exceeded:
          description: >-
            If the budget has been exceeded, this field will be true. Otherwise,
            this field will be false.
          example: true
          type: boolean
        is_off_track:
          description: >-
            If the budget is off track, this field will be true. Otherwise, this
            field will be false.
          example: true
          type: boolean
        metadata:
          description: Additional information you stored about the `budget`.
          example: some metadata
          nullable: true
          type: string
        name:
          description: >-
            The name of the budget that is visible to the user (ie "Food",
            "Bills", "Entertainment", etc).
          example: Food & Dining
          type: string
          nullable: true
        off_track_percentage:
          description: The percentage amount of off track spending. (Deprecated).
          nullable: true
          type: number
        parent_guid:
          description: Unique identifier for the parent budget. Defined by MX.
          nullable: true
          type: string
        percent_spent:
          description: >-
            The percentage of a budget that has been spent during the current
            calendar month Calculated as the transaction total divided by the
            amount and then multiplied by 100.A value of zero will be returned
            when `amount` is zero.
          example: 1276.34
          nullable: true
          type: number
        projected_spending:
          description: The projected amount of spending for the budget.
          example: 3562.4
          type: number
        revision:
          description: The revision number of this budget record.
          example: 561
          type: integer
        transaction_total:
          description: The cumulative amount of all transactions under the budget.
          example: 1952.8
        updated_at:
          description: >-
            Date and time the budget was updated, represented in ISO 8601 format
            with timestamp.
          example: '2022-06-14T21:17:11+00:00'
        user_guid:
          description: Unique identifier for the user. Defined by MX.
          example: USR-11141024-90b3-1bce-cac9-c06ced52ab4c
    BudgetResponseBody:
      properties:
        budget:
          $ref: '#/components/schemas/BudgetResponse'
      type: object
    BudgetCreateRequest:
      properties:
        category_guid:
          description: The unique identifier for the category.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          type: string
        parent_guid:
          example: BGT-6be44a91-e105-f68a-4770-8c7c0a5c9778
          description: >-
            Unique identifier of the parent budget. This is only required when
            creating a budget on a sub-category.
          type: string
        amount:
          example: 1000
          description: Amount of the budget.
          type: integer
        metadata:
          example: Additional information
          description: Additional information you can store on the `budget`.
          type: string
        skip_webhook:
          example: true
          description: >-
            When set to true, this parameter will prevent a webhook from being
            triggered by the request.
          type: boolean
      required:
        - category_guid
        - parent_guid
      type: object
    BudgetCreateRequestBody:
      properties:
        budget:
          $ref: '#/components/schemas/BudgetCreateRequest'
      type: object
    BudgetUpdateRequest:
      properties:
        amount:
          example: 1000
          description: Amount of the budget.
          type: integer
        metadata:
          example: Additional information
          description: Additional information you can store on the `budget`.
          type: string
        skip_webhook:
          example: true
          description: >-
            When set to true, this parameter will prevent a webhook from being
            triggered by the request.
          type: boolean
      type: object
    BudgetUpdateRequestBody:
      properties:
        budget:
          $ref: '#/components/schemas/BudgetUpdateRequest'
      type: object
    GoalsResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        amount:
          description: The amount of the `goal`.
          example: 4500
          type: number
        current_amount:
          description: The current amount of the `goal`.
          example: 1500
          type: number
        guid:
          description: The unique identifier for the goal. Defined by MX.
          example: GOL-524ca5db-a2d5-44f3-b048-16de16059024
          type: string
        goal_type_name:
          description: The type of goal.
          example: SAVE_AMOUNT
          nullable: true
          type: string
          enum:
            - SAVE_AMOUNT
            - PAYOFF
        meta_type_name:
          description: The category of the goal.
          example: VACATION
          type: string
        name:
          description: The name of the goal.
          example: Save for Europe
          type: string
        completed_at:
          description: >-
            Date and time the `goal` was completed, represented in ISO 8601
            format with a timestamp.
          example: '2025-08-15T10:30:00+00:00'
          type: string
        has_been_spent:
          description: Determines if the goal has been spent.
          example: false
          type: boolean
        is_complete:
          description: Determines if the goal is complete.
          example: false
          type: boolean
        metadata:
          description: Additional information you stored about the `goal`.
          example: Additional information
          type: string
        position:
          description: The priority of the goal in relation to multiple goals.
          example: 3
          type: integer
        projected_to_complete_at:
          description: The date on which the project was completed.
          example: '2022-06-14T16:03:53-00:00'
          type: string
        targeted_to_complete_at:
          description: >-
            Date and time the goal is to complete, represented in ISO 8601
            format with timestamp. Intended for users to set their own goal
            completion dates.
          example: '2026-12-08 00:00:00.000000'
          type: string
        track_type_name:
          description: The track of the goal.
          example: SAVINGS_TRACK
          type: string
          enum:
            - DEBT_TRACK
            - SAVINGS_TRACK
            - RETIREMENT_TRACK
            - EMERGENCY_FUND_TRACK
        user_guid:
          description: The unique identifier for the the user. Defined by MX.
          example: USR-11141024-90b3-1bce-cac9-c06ced52ab4c
          type: string
    GoalsResponseBody:
      properties:
        goals:
          items:
            $ref: '#/components/schemas/GoalsResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    GoalRequest:
      properties:
        account_guid:
          description: The unique identifier for an account.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        amount:
          description: The amount of the `goal`.
          example: 4500
          type: number
        goal_type_name:
          description: The type of goal. Can be `SAVE_AMOUNT` or `PAYOFF`.
          example: SAVE_AMOUNT
          nullable: true
          type: string
          enum:
            - SAVE_AMOUNT
            - PAYOFF
        meta_type_name:
          description: The category of the `goal`.
          example: VACATION
          type: string
        name:
          description: The name of the `goal`.
          example: Save for Europe
          type: string
        completed_at:
          description: >-
            Date and time the `goal` was completed, represented in ISO 8601
            format with a timestamp.
          example: '2025-08-15T10:30:00+00:00'
          type: string
        has_been_spent:
          description: Determines if the `goal` has been spent.
          example: false
          type: boolean
        is_complete:
          description: Determines if the `goal` is complete.
          example: false
          type: boolean
        metadata:
          description: Additional information you can store about the `goal`.
          example: Additional information
          type: string
        position:
          description: The priority of the goal in relation to multiple goals.
          example: 3
          type: integer
        targeted_to_complete_at:
          description: >-
            Date and time the `goal` is to complete. Intended for users to set
            their own goal completion dates.
          example: '2026-12-08 00:00:00.000000'
          type: string
      required:
        - account_guid
        - amount
        - goal_type_name
        - meta_type_name
        - name
      type: object
    GoalRequestBody:
      properties:
        goal:
          $ref: '#/components/schemas/GoalRequest'
      type: object
    GoalResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        amount:
          description: The amount of the `goal`.
          example: 4500
          type: number
        completed_at:
          description: >-
            Date and time the `goal` was completed, represented in ISO 8601
            format with a timestamp.
          example: '2025-08-15T10:30:00+00:00'
          type: string
        current_amount:
          description: The current amount of the `goal`.
          example: 1500
          type: number
        goal_type_name:
          description: The type of goal.
          example: SAVE_AMOUNT
          nullable: true
          type: string
          enum:
            - SAVE_AMOUNT
            - PAYOFF
        guid:
          description: Unique identifier for the goal. Defined by MX.
          example: GOL-f223463-4355-48d0-rce7-fe2rb345617c
          type: string
        has_been_spent:
          description: Determines if the goal has been spent.
          example: false
          type: boolean
        is_complete:
          description: Determines if the goal is complete.
          example: false
          type: boolean
        metadata:
          description: Additional information you stored about the `goal`.
          example: Additional information
          type: string
        meta_type_name:
          description: The category of the `goal`.
          example: VACATION
          type: string
        name:
          description: The name of the `goal`.
          example: Save for Europe
          type: string
        position:
          description: The priority of the `goal` in relation to multiple goals.
          example: 3
          type: integer
        projected_to_complete_at:
          description: Date and time the `goal` is projected to be completed.
          example: '2022-06-14T16:03:53-00:00'
          type: string
        targeted_to_complete_at:
          description: >-
            Date and time the `goal` is to complete. Intended for users to set
            their own goal completion dates.
          example: '2026-12-08 00:00:00.000000'
          type: string
        track_type_name:
          description: The track of the `goal`.
          example: SAVINGS_TRACK
          type: string
          enum:
            - DEBT_TRACK
            - SAVINGS_TRACK
            - RETIREMENT_TRACK
            - EMERGENCY_FUND_TRACK
        user_guid:
          description: The unique identifier for the the user. Defined by MX.
          example: USR-11141024-90b3-1bce-cac9-c06ced52ab4c
          type: string
    GoalResponseBody:
      properties:
        goal:
          $ref: '#/components/schemas/GoalResponse'
      type: object
    UpdateGoalRequest:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        amount:
          description: The amount of the `goal`.
          example: 4500
          type: number
        goal_type_name:
          description: The type of goal. Can be `SAVE_AMOUNT` or `PAYOFF`.
          example: SAVE_AMOUNT
          nullable: true
          type: string
          enum:
            - SAVE_AMOUNT
            - PAYOFF
        meta_type_name:
          description: The category of the goal.
          example: VACATION
          type: string
        name:
          description: The name of the goal.
          example: Save for Europe
          type: string
        completed_at:
          description: >-
            Date and time the `goal` was completed, represented in ISO 8601
            format with a timestamp.
          example: '2025-08-15T10:30:00+00:00'
          type: string
        has_been_spent:
          description: Determines if the goal has been spent.
          example: false
          type: boolean
        is_complete:
          description: Determines if the goal is complete.
          example: false
          type: boolean
        metadata:
          description: Additional information you can store about the `goal`.
          example: Additional information
          type: string
        position:
          description: The priority of the `goal` in relation to multiple goals.
          example: 3
          type: integer
        targeted_to_complete_at:
          description: >-
            Date and time the goal is to complete. Intended for users to set
            their own goal completion dates.
          example: '2026-12-08 00:00:00.000000'
          type: string
      type: object
    UpdateGoalRequestBody:
      properties:
        goal:
          $ref: '#/components/schemas/UpdateGoalRequest'
      type: object
    RepositionRequest:
      properties:
        guid:
          description: The unique identifier for the goal. Defined by MX.
          example: GOL-97665947-235c-b213-ca25-8cf0174774f5
          type: string
        position:
          description: The priority of the goal in relation to multiple goals.
          example: 1
          type: integer
      required:
        - guid
        - position
    RepositionRequestBody:
      properties:
        goals:
          items:
            $ref: '#/components/schemas/RepositionRequest'
          type: array
      type: object
    RepositionResponseBody:
      properties:
        goals:
          items:
            $ref: '#/components/schemas/GoalsResponse'
          type: array
      type: object
    NotificationResponse:
      properties:
        channel:
          description: >
            The way the notification will be delivered to the user.


            All notifications created through the API will be of notification
            type `API_NOTIFICATION`, channel `PUSH`, and will not be associated
            to an entity. No other channels are supported.
          example: EMAIL
          nullable: true
          type: string
          enum:
            - EMAIL
            - SMS
            - PUSH
            - IN_APP
        content:
          description: The main body of the notification text sent to the user.
          example: >-
            You're projected to spend $1,920.07 more than you've budgeted for
            Fees & Charges. You've already spent $325.67 of $716.00.
          type: string
        created_at:
          description: >-
            The date and time the notification was created, represented in ISO
            8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        deep_link_guid:
          description: >-
            The unique identifier for objects that directly trigger a
            notification. For example, `TRANSACTION_FEE_CHARGE` and
            `TRANSACTION_EXPENSE_LARGE` notification types will have a
            transaction guid in this field.
          example: BGT-e386a323-e452-47f2-b2fd-1ac3c18533de
        delivered_at:
          description: >-
            Date and time the notification was delivered, represented in ISO
            8601 format with timestamp.
          example: null
        entity_guid:
          description: >-
            The unique identifier of the entity that the notification is
            attached to.
          example: BGT-e386a323-e452-47f2-b2fd-1ac3c18533de
        guid:
          description: Unique identifier for the notification. Defined by MX.
          example: NTF-b53294f5-2356-4782-9f81-ae064c42b40a
        has_been_delivered:
          description: Indicates if the notification has been delivered to the user.
          example: true
        has_been_viewed:
          description: Indicates if the notification has been viewed by the user.
          example: false
        notification_type:
          description: >-
            The type of notification. See [Notification
            Types](/api-reference/platform-api/reference/notifications-fields#notification-types).
          example: 2
        subject:
          description: >-
            The notification summary text. Usually the same text used for
            “in-app” or SMS notifications.
          example: Your Fees & Charges budget projection
        threshold:
          example: 325
    NotificationsResponseBody:
      properties:
        notifications:
          items:
            $ref: '#/components/schemas/NotificationResponse'
      type: object
    NotificationRequest:
      properties:
        content:
          description: The main body of the notification text sent to the user.
          example: >-
            You're projected to spend $1,920.07 more than you've budgeted for
            Fees & Charges. You've already spent $325.67 of $716.00.
          type: string
        subject:
          description: >-
            The notification summary text. Usually the same text used for
            “in-app” or SMS notifications.
          example: Monthly Budget Report
          type: string
      required:
        - content
        - subject
      type: object
    NotificationRequestBody:
      properties:
        notification:
          $ref: '#/components/schemas/NotificationRequest'
      type: object
    NotificationResponseBody:
      properties:
        notification:
          $ref: '#/components/schemas/NotificationResponse'
      type: object
    RepeatingTransactionResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: true
          type: number
        description:
          description: Merchant or bill description.
          type: string
          example: Dominion Energy
        guid:
          description: The unique identifier for the repeating transaction. Defined by MX.
          type: string
          example: RPT-a2264e1a-d2e6-41d9-88d2-2cfdf1143959
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          type: string
        merchant_guid:
          description: The unique identifier for the merchant. Defined by MX.
          type: string
          example: MCH-1b5d7e4d-fa29-95d1-fd0f-540b6f17d986
        last_posted_date:
          description: Last occurrence date.
          type: string
          example: '2024-12-09'
        predicted_occurs_on:
          description: Predicted next occurrence.
          type: string
          example: '2025-01-09'
        recurrence_type:
          description: >-
            The frequency at which a transaction is expected to repeat based on
            historical patterns. See [Supported Recurrence
            Types](/api-reference/platform-api/reference/transactions-overview#supported-recurrence-types)
            for full list. This field appears on transaction endpoints where the
            optional query parameter is defined.
          type: string
          example: EVERY_MONTH
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type: string
        repeating_transaction_type:
          description: >-
            The type of repeating transaction. This field appears on transaction
            endpoints where the optional query parameter is defined.
          type: string
          enum:
            - BILL
            - SUBSCRIPTION
            - INCOME
            - UNKNOWN
        transaction_type:
          description: The type of transaction.
          type: string
          enum:
            - DEBIT
            - CREDIT
    RepeatingTransactionsResponseBody:
      properties:
        repeating_transactions:
          items:
            $ref: '#/components/schemas/RepeatingTransactionResponse'
          type: array
      type: object
    SplitTransactionRequest:
      properties:
        amount:
          description: The amount of money you want to recategorize.
          example: 61.11
          type: number
        description:
          description: Description for the split transaction.
          example: Chevron Gas
          type: string
        category_guid:
          description: The unique identifier for the category.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          nullable: true
          type: string
        memo:
          description: Memo for the split transaction
          type: string
          example: Chips and Soda
      required:
        - amount
    SplitTransactionRequestBody:
      properties:
        transactions:
          $ref: '#/components/schemas/SplitTransactionRequest'
      required:
        - transactions
      type: object
    SplitTransactionsResponseBody:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/TransactionResponse'
          type: array
      type: object
    MonthlyCashFlowResponse:
      properties:
        guid:
          example: MCF-4e431124-4a29-abf9-f059-ab232ac14dbf
          type: string
          description: Unique identifier for the monthly cash flow profile. Defined by MX.
        user_guid:
          example: USR-6c83f63c-efcc-0189-3f14-100f0bad378a
          type: string
          description: >-
            Unique identifier for the user the monthly cash flow profile is
            attached to. Defined by MX.
        budgeted_income:
          description: The amount of the budgeted income for the user.
          example: 5000
          type: number
        budgeted_expenses:
          description: The amount of the budgeted expenses for the user.
          example: 3500
          type: number
        goals_contribution:
          description: The monthly dollar amount allocated for goals.
          example: 500
          type: number
        estimated_goals_contribution:
          example: null
          nullable: true
          type: number
          description: >-
            The estimated monthly dollar amount allocated for goals calculated
            from income and budgets.
        uses_estimated_goals_contribution:
          description: Indicates if the user uses estimated goals contribution.
          example: false
          type: boolean
    MonthlyCashFlowResponseBody:
      properties:
        monthly_cash_flow_profile:
          $ref: '#/components/schemas/MonthlyCashFlowResponse'
      type: object
    MonthlyCashFlowProfileRequest:
      properties:
        goals_contribution:
          description: The monthly dollar amount allocated for goals.
          example: 500
          type: number
        uses_estimated_goals_contribution:
          example: false
          type: boolean
          description: Determines if the user uses estimated goals contribution.
    MonthlyCashFlowProfileRequestBody:
      properties:
        monthly_cash_flow_profile:
          $ref: '#/components/schemas/MonthlyCashFlowProfileRequest'
      type: object
    MemberElements:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          nullable: false
          type: string
        member_guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          type: string
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type: string
    TokenRequestBody:
      properties:
        scope:
          $ref: '#/components/schemas/MemberElements'
      type: object
    TokenResponse:
      properties:
        payment_processor_guid:
          description: The unique identifier for the payment processor. Defined by MX.
          example: PPR-084aa709-8218-4b5a-b3ab-70ffc7483daf
          type: string
        expires_at:
          description: >-
            The date and time the access token expires in ISO 8601 format with a
            timestamp.
          example: 2023-04-19T15:38:2800:00
          type: string
        access_token:
          description: >-
            The access token you'll use to retrieve data. Every `access_token`
            expires after 60 days. To get a new token after an old one has
            expired, you must get a new code from the client. See [How-to Guide
            for
            Processors](/products/connectivity/instant-account-verification/processor-token/processor-guide/#1-request-an-access-token).
          example: >-
            eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDk3NjQ4MTMsImV4cCI6MTY0OTc2ODQxMywidXNlcl9ndWlkIjoiVVNSLWZhNzUzN2YzLTQ4YWEtYTY4My1hMDJhLWIxODk0MDQ4MmY1NCIsIm9yaWdfaWF0IjoxNjQ5NzY0ODEzfQ.wnhdUerhFIGgwb9OJaKRfW2uTxJ9z7TJ0l2HLqvAMWs
          nullable: true
          type: string
        active:
          description: Indicates whether the token is active.
          example: true
          type: boolean
    TokenResponseBody:
      properties:
        tokens:
          items:
            $ref: '#/components/schemas/TokenResponse'
      type: object
    ProcessorAccountNumber:
      properties:
        account_number:
          description: The banking account number associated with a particular account.
          example: 6366816006
          type: integer
        guid:
          description: The unique identifier for the account number. Defined by MX.
          example: ACN-68c0b681-78c2-4731-9b41-d6e8ae2846cf
          type: string
        institution_number:
          description: The three-digit number identifying a Canadian banking institution.
          example: null
        loan_guarantor:
          description: The guarantor of the student loan.
          example: null
        loan_reference_number:
          description: The reference number for the student loan.
          example: null
        passed_validation:
          description: Indicates whether the account number has passed validation.
          example: true
        routing_number:
          description: The routing number for the `account`.
          example: 242564563
          type: integer
        sequence_number:
          description: The sequence number for the account.
          example: null
        transit_number:
          description: >-
            The five-digit number identifying the branch of a Canadian financial
            institution.
          example: null
    ProcessorAccountNumberBody:
      properties:
        account_numbers:
          items:
            allOf:
              - $ref: '#/components/schemas/MemberElements'
              - $ref: '#/components/schemas/ProcessorAccountNumber'
      type: object
    PaymentAccount:
      properties:
        account_name:
          description: The human-readable name for the account.
          example: My test account
          type: string
        account_number:
          description: The banking account number associated with a particular account.
          example: 6366816006
        account_type:
          description: The type of account. Some account types may include subtypes.
          example: CHECKING
          nullable: true
          type: string
          enum:
            - ANY
            - CASH
            - CHECKING
            - CHECKING_LINE_OF_CREDIT
            - CREDIT_CARD
            - LOAN
            - LINE_OF_CREDIT
            - SAVINGS
            - INVESTMENT
            - MORTGAGE
            - INSURANCE
            - PREPAID
            - PROPERTY
        available_balance:
          description: >
            The balance that is available for use in asset accounts like
            checking and savings.


            `PENDING` transactions are typically (not always) taken into account
            with the available balance.


            `available_balance` will usually be a positive value for all account
            types, determined in the same way as the balance field.
          example: 1000
          type: number
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
        created_at:
          description: >-
            The date and time the resource was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        routing_number:
          description: The routing number for the `account`.
          example: 242722023
        transit_number:
          description: >-
            The five-digit number identifying the branch of a Canadian financial
            institution.
          example: null
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          nullable: true
          type: string
    PaymentAccountBody:
      properties:
        payment_account:
          allOf:
            - $ref: '#/components/schemas/MemberElements'
            - $ref: '#/components/schemas/PaymentAccount'
      type: object
    ProcessorOwner:
      properties:
        guid:
          description: The unique identifier for an account owner. Defined by MX.
          example: AOW-e9f9cd45-7d14-4fbf-b23c-7f4a6d7671d6
          nullable: false
          type: string
        owner_name:
          description: The account owner's name.
          example: Janita Pollich
          type: string
        address:
          description: The account owner's street address.
          example: 3541 Adrian Street
          type: string
        city:
          description: The account owner's city.
          example: North Kishaberg
          type: string
        state:
          description: The account owner's state.
          example: Maine
          type: string
        postal_code:
          description: The account owner's postal code.
          example: 45054-7764
          type: string
        country:
          description: The country name.
          example: US
          nullable: true
          type: string
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
        phone:
          description: The phone number associated with the account owner.
          example: 676-932-5861
          type: string
    ProcessorOwnerBody:
      properties:
        account_owners:
          items:
            allOf:
              - $ref: '#/components/schemas/MemberElements'
              - $ref: '#/components/schemas/ProcessorOwner'
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    MicrodepositResponse:
      properties:
        error_message:
          description: A message describing an error that occurred.
          type: string
          nullable: true
          example: null
        guid:
          description: The unique identifier for the microdeposit. Defined by MX.
          type: string
          example: MIC-09ba578e-8448-4f7f-89e1-b62ff2517edb
        institution_code:
          description: The code identifying a financial institution.
          example: mxbank
          type: string
        institution_name:
          description: >-
            An easy-to-read name for an institution. May be `null` for
            institutions that are not in the MX system.
          example: MX Bank
          type: string
        status:
          description: >-
            The name of the current status. See [Microdeposit
            Statuses](/api-reference/platform-api/reference/microdeposits#microdeposit-statuseses).
          example: INITIATED
          type: string
        updated_at:
          description: >
            The date and time the resource was last updated in ISO 8601 format
            with a timestamp.


            For categories, this field will always be `null` when `is_default`
            is `true`.
          example: '2025-02-13T18:09:00+00:00'
          type: string
        verified_at:
          description: >-
            The date and time at which the microdeposit status changed from
            `DEPOSITED` to `VERIFIED`.
          example: null
          nullable: true
          type: string
      type: object
    MicrodepositsResponseBody:
      properties:
        micro_deposits:
          items:
            $ref: '#/components/schemas/MicrodepositResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    MicrodepositElements:
      properties:
        account_name:
          description: The human-readable name for the account.
          example: My test account
          type: string
        account_number:
          description: >-
            The account number associated with the account. This will typically
            be a masked or partial account number.
          example: '3331261'
          type: string
        account_type:
          description: The type of account. Some account types may include subtypes.
          example: CHECKING
          nullable: true
          type: string
          enum:
            - ANY
            - CASH
            - CHECKING
            - CHECKING_LINE_OF_CREDIT
            - CREDIT_CARD
            - LOAN
            - LINE_OF_CREDIT
            - SAVINGS
            - INVESTMENT
            - MORTGAGE
            - INSURANCE
            - PREPAID
            - PROPERTY
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
        first_name:
          description: >-
            The account owner's first name. This may also include a middle name.
            This field will be `null` unless name splitting has been enabled.
            Contact MX to have this feature enabled.
          example: Josh
          type: string
        last_name:
          description: The last name of the account holder.
          example: Grobanne
          type: string
        routing_number:
          description: The routing number for the `account`.
          example: '091000019'
          type: string
      required:
        - account_number
        - account_type
        - routing_number
    MicrodepositRequestBody:
      properties:
        micro_deposit:
          $ref: '#/components/schemas/MicrodepositElements'
      type: object
    MicrodepositResponseBody:
      properties:
        micro_deposit:
          items:
            allOf:
              - $ref: '#/components/schemas/MicrodepositElements'
              - $ref: '#/components/schemas/MicrodepositResponse'
      type: object
    MicrodepositVerifyRequest:
      properties:
        deposit_amount_1:
          description: The amount of the first microdeposit sent for account verification.
          example: 0.12
          type: number
        deposit_amount_2:
          description: The amount of the second microdeposit sent for account verification.
          example: 0.15
          type: number
      type: object
    MicrodepositVerifyRequestBody:
      properties:
        micro_deposit:
          $ref: '#/components/schemas/MicrodepositVerifyRequest'
      type: object
    RewardElements:
      properties:
        balance_type:
          description: >-
            The type of balance associated with the reward, for example,
            `BALANCE_TO_LEVEL`, or `TOTAL_BALANCE`.
          example: EXPIRING_BALANCE
          type: string
        balance:
          description: >
            The current balance of the account.


            `PENDING` transactions are typically not taken into account with the
            current balance, but this may not always be the case.
                
            The balance will usually be a positive value for all account types.
            Asset-type accounts (`CHECKING`, `SAVINGS`, `INVESTMENT`) may have a
            negative balance if they are in overdraft.


            Debt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`,
            `MORTGAGE`) may have a negative balance if they are overpaid.
          example: 1000
          type: number
        created_at:
          description: >-
            The date and time the resource was created, represented in ISO 8601
            format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type: string
        description:
          description: The description for the reward as given by the data provider.
          example: A description of the reward.
          type: string
        expires_on:
          description: The date on which the balance expires.
          example: '2020-02-28'
          type: string
        guid:
          description: The unique identifier for the reward. Defined by MX.
          example: RWD-1234
          type: string
        unit_type:
          description: >-
            The units in which the balance is given, for example, `MILES` or
            `POINTS`.
          example: POINTS
          type: string
        updated_at:
          description: The date and time at which the account was last updated.
          example: '2023-06-01T19:18:06Z'
          type: string
    RewardsResponseBody:
      properties:
        rewards:
          items:
            allOf:
              - $ref: '#/components/schemas/MemberElements'
              - $ref: '#/components/schemas/RewardElements'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    RewardResponseBody:
      properties:
        reward:
          allOf:
            - $ref: '#/components/schemas/MemberElements'
            - $ref: '#/components/schemas/RewardElements'
      type: object
    CreditCardProduct:
      properties:
        annual_fee:
          description: The annual fee associated with the `credit_card_product`.
          example: 45
          type: number
        duration_of_introductory_rate_on_balance_transfer:
          description: >-
            The duration of an introductory rate on balance transfers, given in
            months.
          example: null
          nullable: true
          type: integer
        duration_of_introductory_rate_on_purchases:
          example: null
          nullable: true
          type: integer
        guid:
          description: Unique identifier for the account. Defined by MX.
          example: CCA-b5bcd822-6d01-4e23-b8d6-846a225e714a
          type: string
        has_cashback_rewards:
          description: Indicates if the credit card product has cashback rewards.
          example: false
          type: boolean
        has_other_rewards:
          description: >-
            This indicates whether the credit card offers a rewards system that
            is different than standard cashback or travel rewards.
          example: true
          type: boolean
        has_travel_rewards:
          description: This indicates whether the credit card offers travel rewards.
          example: true
          type: boolean
        has_zero_introductory_annual_fee:
          description: >-
            This indicates whether the credit card offers a limited time period
            where a membership fee is waived.
          example: true
          type: boolean
        has_zero_percent_introductory_rate:
          description: >-
            This indicates whether the credit card offers a zero percent
            introductory rate.
          example: false
          type: boolean
        has_zero_percent_introductory_rate_on_balance_transfer:
          description: >-
            This indicates that the credit card offers a zero percent rate when
            transferring a balance from a different credit card.
          example: true
          type: boolean
        is_accepting_applicants:
          description: >-
            This indicates whether the financial institution is still accepting
            applicants for the credit card.
          example: true
          type: boolean
        is_active_credit_card_product:
          description: >-
            This indicates whether the credit card is still supported by the
            financial institution.
          example: true
          type: boolean
        is_small_business_card:
          description: >-
            This indicates whether the credit card is associated with a small
            business.
          example: true
          type: boolean
        name:
          description: The name associated with the `credit_card_product`.
          example: Credit Card
          type: string
    CreditCardProductResponse:
      properties:
        credit_card_product:
          $ref: '#/components/schemas/CreditCardProduct'
      type: object
    VCResponse:
      properties:
        verifiableCredential:
          description: The MX-issued verifiable credential.
          example: >-
            feJgbGciOiJFZERTQSEsImtpFCI6ImRpZDpksHR6c4E6MTNkdzdqeWc0NGVqd2NkZjhpcWNzZWg3amN6NTF3ajZmanhib29qNDFpcGVnNzZlbyMwIiwidHlwIjoiSldUIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJpZCI6Imh0dHBzOi8vYXBpLnNhbmQuaW50ZXJuYWwubXgvdmMvdXNlcnMvVVNSLTNlYTdjYzMxLWVkZDYtNDQxNy05YjM1LWRlZTZlMjQ4NDI1Yi9tZW1iZXJzL01CUi1jYzUxNDViZi02M2Q5LTQ5OGYtODc3Mi1lNGVmMzI0MWNjYjYvYWNjb3VudHMiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRmluYW5jaWFsQWNjb3VudENyZWRlbnRpYWwiXSwiaXNzdWVyIjoiZGlkOmRodDpzYTcxM2R3N2p5ZzQ0ZWp3Y2RmOGlxY3NlaDdqY3o1MXdqNmZqeGJvb2o0MWlwZWc3NmVvIiwiaXNzdWFuY2VEYXRlIjoiMjAyNC0wMy0wMVQxODo0MjoxOVoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJhY2NvdW50cyI6W3sibG9jQWNjb3VudCI6eyJhY2NvdW52SWQiOeABQ1RtODRhMDEyNjgtNTdkMC00YTI4LWEwYzEtZTcyYWRyNDA5NbJkIiwiYWNjb3VudFR5cFUiOiJDUkVESVRDQVJEIiwiYWNjb3VudE51bWJlciI6IjM0OTcyNTM0NCIsImFjY291bnROdW1iZXJEaXNwbGF5IjoiKioqKjUzNDQiLCJwcm9kdWN0TmFtZSI6bnVsbCwibmlja25hbWUiOm51bGwsInN0YXR1cyI6Ik9QRU4iLCJhY2NvdW50T3BlbkRhdGUiOiIyMDIyLTA3LTExVDE1OjQwOjQwWiIsImFjY291bnRDbG9zZWREYXRlIjpudWxsLCJjdXJyZW5jeSI6eyJjdXJyZW5jeVJhdGUiOm51bGwsImN1cnJlbmN5Q29kZSI6bnVsbCwib3JpZ2luYWxDdXJyZW5jeUNvZGUiOm51bGx9LCJmaUF0dHJpYnV0ZXMiOlt7Im5hbWUiOiJtZW1iZXJfZ3VpZCIsInZhbHVlIjoiTUJSLWNjNTE0NWJmLTYzZDktNDk4Zi04NzcyLWU0ZWYzMjQxY2NiNiJ9LHsibmFtZSI6Imluc3RpdHV0aW9uX2d1aWQiLCJ2YWx1ZSI6IklOUy1mMWEzMjg1ZC1lODU1LWI2OGYtNmFhNy04YWU3NzVjMGUwZTkifSx7Im5hbWUiOiJleHRlcm5hbF9ndWlkIiwidmFsdWUiOiJhY2NvdW50LWY3ZTg3ZWZmLTA2YzAtNDZhMS1iODAwLTUxOTI3ODM2MjFhOSJ9XSwicm91dGluZ1RyYW5zaXROdW1iZXIiOm51bGwsImJhbGFuY2VUeXBlIjoiTElBQklMSVRZIiwiaW50ZXJlc3RSYXRlIjpudWxsLCJsYXN0QWN0aXZpdHlEYXRlIjoiMjAyMi0wNy0xMVQxNTo0MDo0MFoiLCJiYWxhbmNlQXNPZiI6IjIwMjItMDctMTFUMTU6NDA6NDBaIiwiY3JlZGl0TGluZSI6bnVsbCwiYXZhaWxhYmxlQ3JlZGl0IjoxMzAwMC4wLCJuZXh0UGF5bWVudERhdGUiOm51bGwsInByaW5jaXBhbEJhbGFuY2UiOm51bGwsImN1cnJlbnRCYWxhbmNlIjoxMDAwLjAsIm1pbmltdW1QYXltZW50QW1vdW50IjpudWxsLCJwdXJjaGFzZXNBcHIiOm51bGx9fSx7ImRlcG9zaXRBY2NvdW50Ijp7ImFjY291bnRJZCI6IkFDVC05NmYzMGQ2Ny0xZTA1LTRhNGItOWZkNS01NzFlYmUzZGU5NWMiLCJhY2NvdW50VHlwZSI6IkNIRUNLSU5HIiwiYWNjb3VudE51bWJlciI6Ijg0NTUzNTE2MSIsImFjY291bnROdW1iZXJEaXNwbGF5IjoiKioqKjUxNjEiLCJwcm9kdWN0TmFtZSI6bnVsbCwibmlja25hbWUiOm51bGwsInN0YXR1cyI6Ik9QRU4iLCJhY2NvdW50T3BlbkRhdGUiOiIyMDIyLTA3LTExVDE1OjQwOjQwWiIsImFjY291bnRDbG9zZWREYXRlIjpudWxsLCJjdXJyZW5jeSI6eyJjdXJyZW5jeVJhdGUiOm51bGwsImN1cnJlbmN5Q29kZSI6bnVsbCwib3JpZ2luYWxDdXJyZW5jeUNvZGUiOm51bGx9LCJmaUF0dHJpYnV0ZXMiOlt7Im5hbWUiOiJtZW1iZXJfZ3VpZCIsInZhbHVlIjoiTUJSLWNjNTE0NWJmLTYzZDktNDk4Zi04NzcyLWU0ZWYzMjQxY2NiNiJ9LHsibmFtZSI6Imluc3RpdHV0aW9uX2d1aWQiLCJ2YWx1ZSI6IklOUy1mMWEzMjg1ZC1lODU1LWI2OGYtNmFhNy04YWU3NzVjMGUwZTkifSx7Im5hbWUiOiJleHRlcm5hbF9ndWlkIiwidmFsdWUiOiJhY2NvdW50LWM2ZTc2MjQ0LTg4NjAtNDY0OS05ZDg1LTY1MGQzYWY5ZmViZSJ9XSwicm91dGluZ1RyYW5zaXROdW1iZXIiOm51bGwsImJhbGFuY2VUeXBlIjoiQVNTRVQiLCJpbnRlcmVzdFJhdGUiOm51bGwsImxhc3RBY3Rpdml0eURhdGUiOiIyMDIyLTA3LTExVDE1OjQwOjQwWiIsImJhbGFuY2VBc09mIjoiMjAyMi0wNy0xMVQxNTo0MDo0MFoiLCJjdXJyZW50QmFsYW5jZSI6MTAwMC4wLCJvcGVuaW5nRGF5QmFsYW5jZSI6bnVsbCwiYXZhaWxhYmxlQmFsYW5jZSI6MTAwMC4wLCJhbm51YWxQZXJjZW50YWdlWWllbGQiOm51bGwsIm1hdHVyaXR5RGF0ZSI6bnVsbH19LHsiZGVwb3NpdEFjY291bnQiOnsiYWNjb3VudElkIjoiQUNULWI4MjZlNGMyLTZkNjktNDVkNy1hMTM5LWJlNTY0NDFkNmE1OCIsImFjY291bnRUeXBlIjoiU0FWSU5HUyIsImFjY291bnROdW1iZXIiOiI1OTE4NzE2NjgiLCJhY2NvdW50TnVtYmVyRGlzcGxheSI6IioqKioxNjY4IiwicHJvZHVjdE5hbWUiOm51bGwsIm5pY2tuYW1lIjpudWxsLCJzdGF0dXMiOiJPUEVOIiwiYWNjb3VudE9wZW5EYXRlIjoiMjAyMi0wNy0xMVQxNTo0MDo0MFoiLCJhY2NvdW50Q2xvc2VkRGF0ZSI6bnVsbCwiY3VycmVuY3kiOnsiY3VycmVuY3lSYXRlIjpudWxsLCJjdXJyZW5jeUNvZGUiOm51bGwsIm9yaWdpbmFsQ3VycmVuY3lDb2RlIjpudWxsfSwiZmlBdHRyaWJ1dGVzIjpbeyJuYW1lIjoibWVtYmVyX2d1aWQiLCJ2YWx1ZSI6Ik1CUi1jYzUxNDViZi02M2Q5LTQ5OGYtODc3Mi1lNGVmMzI0MWNjYjYifSx7Im5hbWUiOiJpbnN0aXR1dGlvbl9ndWlkIiwidmFsdWUiOiJJTlMtZjFhMzI4NWQtZTg1NS1iNjhmLTZhYTctOGFlNzc1YzBlMGU5In0seyJuYW1lIjoiZXh0ZXJuYWxfZ3VpZCIsInZhbHVlIjoiYWNjb3VudC1kOTIyNTA4OC1hOTM2LTRkNjctOGQyYy0wY2EyYzgwOGYxMTYifV0sInJvdXRpbmdUcmFuc2l0TnVtYmVyIjpudWxsLCJiYWxhbmNlVHlwZSI6IkFTU0VUIiwiaW50ZXJlc3RSYXRlIjpudWxsLCJsYXN0QWN0aXZpdHlEYXRlIjoiMjAyMi0wNy0xMVQxNTo0MDo0MFoiLCJiYWxhbmNlQXNPZiI6IjIwMjItMDctMTFUMTU6NDA6NDBaIiwiY3VycmVudEJhbGFuY2UiOjEwMDAuMCwib3BlbmluZ0RheUJhbGFuY2UiOm51bGwsImF2YWlsYWJsZUJhbGFuY2UiOjEwMDAuMCwiYW5udWFsUGVyY2VudGFnZVlpZWxkIjpudWxsLCJtYXR1cml0eURhdGUiOm51bGx9fV0sImlkIjoiVVNSLTNlYTdjYzMxLWVkZDYtNDQxNy05YjM1LWRlZTZlMjQ4NDI1YiJ9fSwiaXNzIjoiZGlkOmRodDpzYTcxM2R3N2p5ZzQ0ZWp3Y2RmOGlxY3NlaDdqY3o1MXdqNmZqeGJvb2o0MWlwZWc3NmVvIiwiaWF0IjoxNzA5MzE4NTM5LCJqdGkiOiJodHRwczovL2FwaS5zYW5kLmludGVybmFsLm14L3ZjL3VzZXJzL1VTUi0zZWE3Y2MzMS1lZGQ2LTQ0MTctOWIzNS1kZWU2ZTI0ODQyNWIvbWVtYmVycy9NQlItY2M1MTQ1YmYtNjNkOS00OThmLTg3NzItZTRlZjMyNDFjY2I2L2FjY291bnRzIiwic3ViIjoiVVNSLTNlYTdjYzMxLWVkZDYtNDQxNy05YjM1LWRlZTZlMjQ4NDI1YiJ9._CiFkwbuhKxwwIehEQ1opsi-9NSoIwDqD2HFMw1ROKNuJPdepTXFEd_RDFbbg7lFj05vBXPUL7y9eVVgZXTvDw
          type: string
      type: object
