openapi: '3.0.0'
info:
  contact:
    name: Platform API v20260929
    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.

    ## 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 `v20260929`.

    ```
    -H 'Accept: application/json'
    -H 'Accept-Version: v20260929'
    ```

    ---
  title: Platform API 2026
  version: '2026'
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](/api-reference/platform-api/v20260929/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](/api-reference/platform-api/v20260929/reference/categories#default-categories-and-subcategories) for a complete list.
  - name: data exchange
    description: |
      Data Exchange provides a secure mechanism for MX clients to share financial data with authorized service providers, external partners, and vendors. Access is controlled through client grants, which define the scope of data an MX client (issuer) makes available to one or more grantees.
                                                                                                                                                                                                                                         
      Each data exchange request requires both standard Platform API authentication and a valid token passed in the `MX-3DX-TOKEN` request header.
  - 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 (`track_type_name`) is the overall classification of the goal (debt, savings, retirement, or emergency fund) while the meta type (`meta_type_name`) 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](/products/experience/insights).

      Looking for a guide to use these endpoints? See [Build Your Own Insights UI](/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](/api-reference/platform-api/v20260929/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](/api-reference/platform-api/v20260929/reference/investment-holdings/read-holding), [list all their holdings](/api-reference/platform-api/v20260929/reference/investment-holdings/list-holdings-by-user), or list their holdings by [account](/api-reference/platform-api/v20260929/reference/investment-holdings/list-holdings-by-account) or [member](/api-reference/platform-api/v20260929/reference/investment-holdings/list-holdings-by-member).

      You can also [deactivate a user](/api-reference/platform-api/v20260929/reference/investment-holdings/deactivate-user-from-investment-holdings) from the Investment Data Enhancement. This is non-billable.
  - 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](/api-reference/platform-api/v20260929/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](/products/connectivity/microdeposits).
  - name: identity_match
    description: |
      Verify user identity by comparing personal information with account owner data from connected financial accounts.
  - 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](/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](/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](/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](/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](/api-reference/platform-api/v20260929/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](/products/connectivity/overview/data-architecture#resources) on the platform.
  - name: verifiable credentials
    description: |
      MX provides Verifiable Credential endpoints that comply with web5 standards. 

      For more info, see [Verifiable Credentials Overview](/api-reference/platform-api/v20260929/reference/verifiable-credentials).
  - name: widgets
    description: |
      Use the [Request Widget URL](/api-reference/platform-api/v20260929/reference/widgets/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](/api-reference/platform-api/v20260929/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'
            example:
              authorization_code:
                scope: 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
        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: |
        The features documented here are in a beta state, and this documentation is considered draft material subject to frequent change.
      
        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: |
        The features documented here are in a beta state, and this documentation is considered draft material subject to frequent change.
        
        Use this endpoint to get all ACH returns.
      operationId: listACHReturns
      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: |
        The features documented here are in a beta state, and this documentation is considered draft material subject to frequent change.

        Use this endpoint to create an ACH return in our system.
      operationId: createACHReturn
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ACHReturnCreateRequestBody'
            example:
              ach_return:
                account_guid: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
                account_number_last_four: '1234'
                ach_initiated_at: '2025-02-13T18:08:00+00:00'
                id: client_ach_id_1234
                member_guid: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
                return_code: R01
                returned_at: '2025-02-13T18:09:00+00:00'
                sec_code: PPD
                transaction_amount: 225.84
                transaction_amount_range: 0
                user_guid: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        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
  /data_exchange/users:
    get:
      description: |
        Use this endpoint to list users belonging to the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeListUsers
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExchangeUsersResponseBody'
          description: OK
      summary: List data exchange users
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}:
    get:
      description: |
        Use this endpoint to read the attributes of a specific user belonging to the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeReadUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExchangeUserResponseBody'
          description: OK
      summary: Read data exchange user
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/accounts:
    get:
      description: |
        Use this endpoint to list accounts belonging to a specific user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeListAccounts
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsSlimResponseBody'
          description: OK
      summary: List data exchange accounts
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/accounts/{account_guid}:
    get:
      description: |
        Use this endpoint to read a specific account belonging to a user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeReadAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountSlimResponseBody'
          description: OK
      summary: Read data exchange account
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}:
    get:
      description: |
        Use this endpoint to read a specific account under a specific member of a user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        This endpoint accepts either MX-defined account GUIDs or partner-defined account IDs.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeReadAccountPerMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountSlimResponseBody'
          description: OK
      summary: Read data exchange account per member
      tags:
        - data exchange
  /data_exchange/issuer/{issuer_client_guid}/grants:
    get:
      description: |
        Use this endpoint to list grants belonging to the issuing client in a data exchange context. This endpoint requires standard Platform API authentication.
      operationId: dataExchangeListGrantsByIssuer
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/issuerClientGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExchangeGrantsResponseBody'
          description: OK
      summary: List data exchange grants by issuer
      tags:
        - data exchange
  /data_exchange/grant:
    get:
      description: |
        Use this endpoint to read the details of a `grant` with the given `issuer_guid` and grantee GUIDs. For a grant to return, you must pass each `grantee_guid` belonging to the `grant`. If a `grant` has two grantees on it and you only include one `grantee_guid`, the `grant` will not be returned. This endpoint requires standard Platform API authentication.
      operationId: dataExchangeReadGrant
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/issuerGuid'
        - $ref: '#/components/parameters/granteeGuids'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExchangeGrantResponseBody'
          description: OK
      summary: Read data exchange grant
      tags:
        - data exchange
  /data_exchange/grantee/{grantee_client_guid}/grants:
    get:
      description: |
        Use this endpoint to list grants belonging to a grantee client in a data exchange context. This endpoint requires standard Platform API authentication.
      operationId: dataExchangeListGrantsByGrantee
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/granteeClientGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExchangeGrantsResponseBody'
          description: OK
      summary: List data exchange grants by grantee
      tags:
        - data exchange
  /data_exchange/grantee/{grantee_client_guid}/grants/{grant_guid}/token:
    post:
      description: |
        Use this endpoint to create a data exchange token, which is required for all data exchange endpoints.
      operationId: dataExchangeCreateToken
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/granteeClientGuid'
        - $ref: '#/components/parameters/grantGuid'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExchangeTokenResponseBody'
          description: OK
      summary: Create data exchange token
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/transactions:
    get:
      description: |
        Use this endpoint to list transactions belonging to a specific user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        This defaults to 90 days prior to the day of the request.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeListTransactionsByUser
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsSlimResponseBody'
          description: OK
      summary: List data exchange transactions by user
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/accounts/{account_guid}/transactions:
    get:
      description: |
        Use this endpoint to list transactions belonging to a specific account of a user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        This defaults to 90 days prior to the day of the request.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeListTransactionsByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsSlimResponseBody'
          description: OK
      summary: List data exchange transactions by account
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions:
    get:
      description: |
        Use this endpoint to list transactions belonging to a specific account under a specific member of a user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        This defaults to 90 days prior to the day of the request.

        To obtain a token, use the [Create Data Exchange Token endpoint](/api-reference/platform-api/v20260929/reference/data-exchange/create-data-exchange-token).
      operationId: dataExchangeListTransactionsByAccountPerMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsSlimResponseBody'
          description: OK
      summary: List data exchange transactions by account per member
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/transactions/{transaction_guid}:
    get:
      description: |
        Use this endpoint to read a specific transaction belonging to a user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        Only transactions where `is_manual` is `false` and the `data_scope` matches the grant (`HELD`, `AGGREGATED`, or `ALL`) will be returned. If no matching transaction is found, a `404` is returned.
      operationId: dataExchangeReadTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/transactionGuid'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionSlimResponseBody'
          description: OK
      summary: Read data exchange transaction
      tags:
        - data exchange
  /data_exchange/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions/{transaction_identifier}:
    get:
      description: |
        Use this endpoint to read a specific transaction under a specific member and account of a user of the issuing client in a data exchange context. This endpoint requires both standard Platform API authentication and a valid `MX-3DX-TOKEN` header.

        Only transactions where `is_manual` is `false` and the `data_scope` matches the grant (`HELD`, `AGGREGATED`, or `ALL`) will be returned. If no matching transaction is found, a `404` is returned.
      operationId: dataExchangeReadTransactionByAccountPerMember
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/accountIdentifier'
        - $ref: '#/components/parameters/transactionIdentifier'
        - $ref: '#/components/parameters/mx3dxToken'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionSlimResponseBody'
          description: OK
      summary: Read data exchange transaction by account per member
      tags:
        - data exchange
  /institutions:
    get:
      description: Lists financial institutions available through the MX platform.
      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/institutionProducts'
      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_identifier}:
    get:
      description: This endpoint returns information about the institution specified by `institution_identifier`, which can be either the institution `code` or the institution `guid`.
      operationId: readInstitution
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/institutionIdentifier'
      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
  /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.
      operationId: enhanceTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnhanceTransactionsRequestBody'
            example:
              transactions:
              - amount: 61.11
                description: ubr* pending.uber.com
                extended_transaction_type: partner_transaction_type
                id: ID-123
                memo: Additional-information*on_transaction
                merchant_category_code: 4121
                type: DEBIT
        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'
            example:
              user:
                email: example@example.com
                id: My-Unique-ID
                is_disabled: false
                metadata: '{"type": "individual", "status": "preferred"}'
        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.

        Deleting a user is permanent. Deleted users can never be restored. For more info, see [Deleting Objects](/api-reference/platform-api/v20260929/overview/introduction#deleting-objects).
      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'
            example:
              user:
                email: example@example.com
                id: My-Unique-ID
                is_disabled: false
                metadata: '{"first_name": "Steven", "last_name": "Universe"}'
        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`.
        
        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/v20260929/reference/accounts/list-account-numbers-by-member) or [List account numbers by account](/api-reference/platform-api/v20260929/reference/accounts/list-account-numbers-by-account).
      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'
        - $ref: '#/components/parameters/includesAccount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsIncludesResponseBody'
          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.

        You must use the user `guid` when setting `user_identifier` in the path.
      operationId: createManualAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCreateRequestBody'
            example:
              account:
                account_subtype: PERSONAL
                account_type: CHECKING
                apy: 2.35
                available_balance: 1000
                balance: 1000
                currency_code: USD
                interest_rate: 3.25
                is_business: false
                is_closed: false
                is_hidden: false
                metadata: some metadata
                name: Test account 2
                nickname: Swiss Account
                skip_webhook: true
        description: Manual account object to be created.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountSlimResponseBody'
          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'
        - $ref: '#/components/parameters/includesAccount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountIncludesResponseBody'
          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. 

        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.
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountsMergeRequestBody'
            example:
              account:
                account_guids:
                - ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
                - ACT-e1b1e9e7-9436-4720-a1b5-f02373433bd4
      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_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`. 
      operationId: listTransactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDate'
        - $ref: '#/components/parameters/toDate'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/categoryGuidQuery'
        - $ref: '#/components/parameters/categoryGuidQueryArray'
        - $ref: '#/components/parameters/topLevelCategoryGuid'
        - $ref: '#/components/parameters/topLevelCategoryGuidArray'
        - $ref: '#/components/parameters/useCase'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsIncludesResponseBody'
          description: OK
      summary: List transactions
      tags:
        - transactions
  /users/{user_identifier}/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/userIdentifier'
        - $ref: '#/components/parameters/accountGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionCreateRequestBody'
            example:
              transaction:
                amount: 61.11
                date: '2016-10-06'
                description: Whole foods
                type: DEBIT
                category_guid: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                currency_code: USD
                has_been_viewed: false
                is_hidden: false
                is_international: false
                memo: This is a memo
                metadata: some metadata
                skip_webhook: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionSlimResponseBody'
    get:
      description: Requests to this endpoint return a list of transactions associated with the specified account.
      operationId: listTransactionsByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/accountGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPageMax1000'
        - $ref: '#/components/parameters/fromDate'
        - $ref: '#/components/parameters/toDate'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/categoryGuidQuery'
        - $ref: '#/components/parameters/categoryGuidQueryArray'
        - $ref: '#/components/parameters/topLevelCategoryGuid'
        - $ref: '#/components/parameters/topLevelCategoryGuidArray'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsIncludesResponseBody'
          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.
      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/fromDate'
        - $ref: '#/components/parameters/toDate'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/categoryGuidQuery'
        - $ref: '#/components/parameters/categoryGuidQueryArray'
        - $ref: '#/components/parameters/topLevelCategoryGuid'
        - $ref: '#/components/parameters/topLevelCategoryGuidArray'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsIncludesResponseBody'
          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'
            example:
              category:
                metadata: some metadata
                name: Online Shopping
                parent_guid: CAT-aad51b46-d6f7-3da5-fd6e-492328b3023f
        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'
            example:
              category:
                metadata: some metadata
                name: Web shopping
        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_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_identifier}/insights/{insight_guid}/repeating_transactions:
    get:
      description: Use this endpoint to list all the repeating transactions associated with the insight.
      operationId: listRepeatingTransactionsInsight
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/insightGuid'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/recordsPerPage'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepeatingTransactionsResponseBody'
          description: OK
      summary: List all repeating transactions 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
      deprecated: true
      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'
            example:
              insight:
                has_been_displayed: false
                is_dismissed: false
        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_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/MembersSlimResponseBody'
          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.<br /><br />
        Once you successfully create a member, MX will immediately validate the provided credentials and attempt to aggregate data. OAuth members will not begin aggregation until the user completes authorization; aggregation initiates automatically after the OAuth flow is completed.<br /><br />
        **Response status codes:**<br /> - `200` - Member created, no aggregation job initiated.<br /> - `201` - Member created, but one or more products in `data_request` failed.<br /> - `202` - Member created, aggregation requested. Does not indicate aggregation 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'
            example:
              data_request:
                products:
                - transactions
              member:
                background_aggregation_is_disabled: false
                credentials:
                - guid: CRD-27d0edb8-1d50-5b90-bcbc-be270ca42b9f
                  value: password
                id: unique_id
                institution_code: mxbank
                is_oauth: false
                metadata: '{"credentials_last_refreshed_at": "2015-10-15"}'
                use_cases:
                - PFM
        description: Member object to be created
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberSlimNoErrorResponseBody'
          description: OK
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberSlimResponseBody'
          description: Created
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberSlimNoErrorResponseBody'
          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/acceptLanguage'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberSlimResponseBody'
          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'
            example:
              member:
                background_aggregation_is_disabled: false
                credentials:
                - guid: CRD-27d0edb8-1d50-5b90-bcbc-be270ca42b9f
                  value: password
                id: unique_id
                metadata: '{"credentials_last_refreshed_at": "2015-10-15"}'
                use_cases:
                - PFM
        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/MemberSlimResponseBody'
          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}/account_verification:
    post:
      description: This endpoint begins an instant account verification process for a member.
      operationId: accountVerification
      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/MemberStatusResponseBody'
          description: OK
      summary: Account Verification
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/identity_match:
    post:
      tags:
        - identity match
      summary: Identity match
      x-hidden: true
      description: |
        Verify user identity by comparing submitted personal information with account owner data.
        
        Accepts name, address, phone number, and email, then returns match scores for each field plus an overall confidence score. Scores range from 0 to 1.
  
        Name can be either personal (first, middle, last) or company, but not both.
      operationId: createIdentityMatch
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityMatchRequestBody'
            example:
              identity_match:
                name:
                  first: John
                  middle: Q
                  last: Doe
                  company: Acme Corporation
                address:
                  line_1: 123 Main St
                  line_2: Apt 4B
                  line_3: Building C
                  city: Anytown
                  region: CA
                  postal_code: '12345'
                  country: US
                email: john.doe@example.com
                phone_number: (555) 555-5555
      responses:
        '200':
          description: Identity match successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityMatchResponseBody'
  /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'
        - $ref: '#/components/parameters/includesAccount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsIncludesResponseBody'
          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'
        - $ref: '#/components/parameters/includesAccount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountIncludesResponseBody'
          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'
        - $ref: '#/components/parameters/includesAccount'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUpdateRequestBody'
            example:
              account:
                account_subtype: PERSONAL
                account_type: CHECKING
                apy: 2.35
                available_balance: 1000
                balance: 1000
                currency_code: USD
                interest_rate: 1
                is_business: false
                is_closed: false
                is_hidden: false
                metadata: some metadata
                name: Test account 2
                nickname: Swiss Account
                skip_webhook: true
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountIncludesResponseBody'
          description: OK
      summary: Update account by member
      tags:
        - accounts
  /users/{user_identifier}/members/{member_identifier}/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: aggregateAccountBalances
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatusResponseBody'
          description: Accepted
      summary: Aggregate Account Balances
      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}/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_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}/identity_verification:
    post:
      description: The identify endpoint begins an account owner identification process for the member.
      operationId: identityVerification
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatusResponseBody'
          description: Accepted
      summary: Identity Verification
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/oauth/authorization_url:
    post:
      description: Generate an `authorization_url` for OAuth authorization of the specified member during the connection flow.
      operationId: createOauthAuthorizationUrl
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OauthAuthorizationUrlRequestBody'
            example:
              data_request:
                products:
                - transactions
              oauth:
                client_redirect_url: https://{yoursite.com}
                enable_app2app: false
                referral_source: APP
        description: The `data_request` body is required. The `oauth` body is optional, but if provided, it can't be empty.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OauthAuthorizationUrlResponseBody'
          description: OK
      summary: Create OAuth Authorization URL
      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'
            example:
              member:
                challenges:
                - guid: CRD-27d0edb8-1d50-5b90-bcbc-be270ca42b9f
                  value: password
        description: Member object with MFA challenge answers
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberSlimResponseBody'
          description: Accepted
      summary: Resume aggregation
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/statements:
    get:
      description: Use this endpoint to get an array of available statements.
      operationId: listStatementsByMember
      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/StatementsResponseBody'
          description: OK
      summary: List statements by member
      tags:
        - statements
    post:
      description: Use this endpoint to aggregate the statements associated for the member.
      operationId: aggregateStatements
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatusResponseBody'
          description: Accepted
      summary: Aggregate Statements
      tags:
        - statements
  /users/{user_identifier}/members/{member_identifier}/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/memberIdentifier'
        - $ref: '#/components/parameters/statementGuid'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponseBody'
          description: OK
      summary: Read statement by member
      tags:
        - statements
  /users/{user_identifier}/members/{member_identifier}/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/memberIdentifier'
        - $ref: '#/components/parameters/statementGuid'
        - $ref: '#/components/parameters/userIdentifier'
      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/acceptLanguage'
        - $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`.
      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/fromDate'
        - $ref: '#/components/parameters/toDate'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/categoryGuidQuery'
        - $ref: '#/components/parameters/categoryGuidQueryArray'
        - $ref: '#/components/parameters/topLevelCategoryGuid'
        - $ref: '#/components/parameters/topLevelCategoryGuidArray'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsIncludesResponseBody'
          description: OK
      summary: List transactions by member
      tags:
        - transactions
    post:
      description: Calling this endpoint initiates a transaction 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: aggregateTransactions
      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/MemberStatusResponseBody'
          description: Accepted
      summary: Aggregate Transactions
      tags:
        - members
  /users/{user_identifier}/members/{member_identifier}/transaction_history:
    post:
      description: |
        Some institutions allow 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: aggregateTransactionHistory
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/memberIdentifier'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatusResponseBody'
          description: Accepted
      summary: Aggregate Transaction History
      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'
            example:
              tagging:
                tag_guid: TAG-40faf068-abb4-405c-8f6a-e883ed541fff
                transaction_guid: TRN-810828b0-5210-4878-9bd3-f4ce514f90c4
        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'
            example:
              tagging:
                tag_guid: TAG-40faf068-abb4-405c-8f6a-e883ed541fff
        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'
            example:
              tag:
                name: MY TAG
        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'
            example:
              tag:
                name: MY TAG
        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.
      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/fromDate'
        - $ref: '#/components/parameters/toDate'
        - $ref: '#/components/parameters/fromCreatedAt'
        - $ref: '#/components/parameters/toCreatedAt'
        - $ref: '#/components/parameters/fromUpdatedAt'
        - $ref: '#/components/parameters/toUpdatedAt'
        - $ref: '#/components/parameters/categoryGuidQuery'
        - $ref: '#/components/parameters/categoryGuidQueryArray'
        - $ref: '#/components/parameters/topLevelCategoryGuid'
        - $ref: '#/components/parameters/topLevelCategoryGuidArray'
        - $ref: '#/components/parameters/useCase'
        - $ref: '#/components/parameters/includes'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsIncludesResponseBody'
          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'
            example:
              transaction_rule:
                category_guid: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                description: Wal-mart food storage
                match_description: Wal-mart
        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:
        - transaction rules
    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'
            example:
              transaction_rule:
                category_guid: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                description: Wal-mart food storage
                match_description: Wal-mart
        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_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`.
      operationId: readTransaction
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionIncludesResponseBody'
          description: OK
      summary: Read transaction
      tags:
        - transactions
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/includes'
    put:
      description: Use this endpoint to update a specific transaction according to its unique GUID.
      operationId: updateTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionUpdateRequestBody'
            example:
              transaction:
                category_guid: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                date: '2016-10-06'
                description: new description
                memo: This is a memo
        description: 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/TransactionSlimResponseBody'
          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`.
      operationId: readTransactionByAccount
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionIncludesResponseBody'
          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 a specific transaction according to its unique GUID.
      operationId: updateTransactionByAccount
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionUpdateRequestBody'
            example:
              transaction:
                category_guid: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                date: '2016-10-06'
                description: new description
                memo: This is a memo
        description: 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/TransactionSlimResponseBody'
          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/v20260929/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/WidgetRequestBody'
              required:
                - widget_url
            example:
              widget_url:
                widget_type: connect_widget
                color_scheme: light
                current_institution_code: mxbank
                data_request:
                  products:
                  - transactions
                disable_background_agg: false
                disable_institution_search: false
                enable_app2app: false
                iso_country_code:
                - US
                - CA
                is_mobile_webview: false
                oauth_referral_source: BROWSER
                style:
                  font_name: Roboto
                target_origin_referrer: https://yoursite.com
                use_cases:
                - PFM
        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'
            example:
              budget:
                category_guid: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                parent_guid: BGT-6be44a91-e105-f68a-4770-8c7c0a5c9778
                amount: 1000
                metadata: Additional information
                skip_webhook: true
      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'
            example:
              budget:
                amount: 1000
                metadata: Additional information
                skip_webhook: true
      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'
            example:
              goal:
                account_guid: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
                amount: 4500
                goal_type_name: SAVE_AMOUNT
                meta_type_name: VACATION
                name: Save for Europe
                metadata: Additional information
                position: 3
                targeted_to_complete_at: '2026-12-08 00:00:00.000000'
      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'
            example:
              goal:
                account_guid: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
                amount: 4500
                goal_type_name: SAVE_AMOUNT
                meta_type_name: VACATION
                name: Save for Europe
                has_been_spent: false
                is_complete: false
                metadata: Additional information
                position: 3
                targeted_to_complete_at: '2026-12-08 00:00:00.000000'
      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'
            example:
              goals:
              - guid: GOL-97665947-235c-b213-ca25-8cf0174774f5
                position: 1
      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'
            example:
              notification:
                content: You are projected to spend $1,920.07 more than you have budgeted for Fees & Charges. You have already spent $325.67 of $716.00.
                subject: Monthly Budget Report
      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/v20260929/reference/transactions#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: This endpoint returns the specified `repeating_transaction` resource.
      operationId: readRepeatingTransaction
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userGuid'
        - $ref: '#/components/parameters/repeatingTransactionGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepeatingTransactionResponseBody'
          description: OK
      summary: Read 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/transactionGuid'
      - $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'
            example:
              monthly_cash_flow_profile:
                goals_contribution: 500
                uses_estimated_goals_contribution: false
      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'
            example:
              scope:
                account_guid: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
                member_guid: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
                user_guid: USR-fa7537f3-48aa-a683-a02a-b18940482f54
      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'
            example:
              micro_deposit:
                account_name: My test account
                account_number: '3331261'
                account_type: CHECKING
                email: example@example.com
                first_name: Josh
                last_name: Grobanne
                routing_number: 091000019
        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'
            example:
              micro_deposit:
                deposit_amount_1: 0.12
                deposit_amount_2: 0.15
      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}/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/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardsResponseBody'
          description: OK
      summary: List Rewards
      tags:
        - 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: aggregateRewards
      parameters:
        - $ref: '#/components/parameters/acceptVersion'
        - $ref: '#/components/parameters/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatusResponseBody'
          description: OK
      summary: Aggregate Rewards
      tags:
        - rewards
  /users/{user_identifier}/members/{member_identifier}/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/userIdentifier'
        - $ref: '#/components/parameters/memberIdentifier'
        - $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
  /users/{user_identifier}/members/{member_identifier}/aggregate:
    post:
      description: |
        Use [Aggregate Transactions](/api-reference/platform-api/v20260929/reference/members/aggregate-transactions) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        Calling this endpoint initiates a transaction 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/MemberStatusResponseBody'
          description: Accepted
      summary: Aggregate member
      tags:
        - members
      deprecated: true
  /users/{user_identifier}/members/{member_identifier}/check_balance:
    post:
      description: |
        Use [Aggregate Account Balances](/api-reference/platform-api/v20260929/reference/members/aggregate-account-balances) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        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/MemberStatusResponseBody'
          description: Accepted
      summary: Check balances
      tags:
        - members
      deprecated: true
  /users/{user_identifier}/members/{member_identifier}/extend_history:
    post:
      description: |
        Use [Aggregate Transaction History](/api-reference/platform-api/v20260929/reference/members/aggregate-transaction-history) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        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/MemberStatusResponseBody'
          description: Accepted
      summary: Extend history
      tags:
        - members
      deprecated: true
  /users/{user_identifier}/members/{member_identifier}/fetch_rewards:
    post:
      description: |
        Use [Aggregate Rewards](/api-reference/platform-api/v20260929/reference/rewards/aggregate-rewards) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        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/MemberStatusResponseBody'
          description: OK
      deprecated: true
      summary: Fetch Rewards
      tags:
        - rewards
  /users/{user_identifier}/members/{member_identifier}/fetch_statements:
    post:
      description: |
        Use [Aggregate Statements](/api-reference/platform-api/v20260929/reference/statements/aggregate-statements) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        Use this endpoint to fetch the statements associated for the 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/MemberStatusResponseBody'
          description: Accepted
      summary: Fetch statements
      tags:
        - statements
      deprecated: true
  /users/{user_identifier}/members/{member_identifier}/identify:
    post:
      description: |
        Use [Identity Verification](/api-reference/platform-api/v20260929/reference/members/identity-verification) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        The identify endpoint begins an account owner identification process for the 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/MemberStatusResponseBody'
          description: Accepted
      summary: Identify member
      tags:
        - members
      deprecated: true
  /users/{user_identifier}/members/{member_identifier}/oauth_window_uri:
    get:
      description: |
        Use [Create Oauth Authorization URL](/api-reference/platform-api/v20260929/reference/widgets/create-oauth-authorization-url) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        Generate an `authorization_url` for OAuth authorization of the specified member during the connection flow.
      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/uiMessageWebviewUrlScheme'
        - $ref: '#/components/parameters/userIdentifier'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OauthAuthorizationUrlResponseBody'
          description: OK
      summary: Request oauth window uri
      tags:
        - widgets
      deprecated: true
  /users/{user_identifier}/members/{member_identifier}/verify:
    post:
      description: |
        Use [Account Verification](/api-reference/platform-api/v20260929/reference/members/account-verification) instead. For more information, reference the [Upgrade Guide](/api-reference/platform-api/v20260929/overview/upgrade-guide).

        This endpoint begins an instant account 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/MemberStatusResponseBody'
          description: OK
      summary: Verify member
      tags:
        - members
      deprecated: true
components:
  securitySchemes:
    basicAuth:
      scheme: basic
      type: http
      description: |
        To authenticate with the Platform API, include your Base64-encoded `client_id` and `api_key` in the Authorization header of every request:

        ```
        -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: v20260929
        example: v20260929
      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/v20260929/reference/ach-returns#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/v20260929/reference/ach-returns#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
    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
    mx3dxToken:
      name: MX-3DX-TOKEN
      description: A valid data exchange token. Required for all data exchange endpoints. To obtain a token, use the Create Data Exchange Token endpoint.
      in: header
      required: true
      schema:
        type: string
    userIdentifier:
      description: Use either the user `id` you defined or the MX-defined user `guid`. See [Assigning Resource IDs](/products/connectivity/overview/held-data#assigning-resource-ids).
      in: path
      required: true
      name: user_identifier
      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
    memberIdentifier:
      description: Use either the member `id` you defined or the MX-defined member `guid`. See [Assigning Resource IDs](/products/connectivity/overview/held-data#assigning-resource-ids).
      name: member_identifier
      in: path
      required: true
      schema:
        type: string
    accountIdentifier:
      description: Use either the account `id` you defined or the MX-defined account `guid`. See [Assigning Resource IDs](/products/connectivity/overview/held-data#assigning-resource-ids).
      in: path
      required: true
      name: account_identifier
      schema:
        type: string
    issuerClientGuid:
      name: issuer_client_guid
      description: The unique id for the issuing client; must match the client_guid of the authenticated client.
      in: path
      required: true
      schema:
        type: string
        example: CLT-7829f71c-2e8c-afa5-2f55-fa3634b89874
    issuerGuid:
      name: issuer_guid
      description: The unique identifier for the issuing client.
      in: query
      required: true
      schema:
        type: string
        example: CLT-7829f71c-2e8c-afa5-2f55-fa3634b89874
    granteeGuids:
      name: grantee_guids[]
      description: |-
        The unique identifier for each grantee client on a grant.

        For example, `?issuer_guid=CLT-7829f71c-2e8c-afa5-2f55-fa3634b89874&grantee_guids[]=CLT-7829f71c-afa5-2e8c-fa36-34b82f559874&grantee_guids[]=CLT-372c33f9-c316-433b-b081-b7b314bef4b5`.
      in: query
      required: true
      schema:
        type: array
        items:
          type: string
          example: CLT-7829f71c-2e8c-afa5-2f55-2f55fa3634b8
    granteeClientGuid:
      name: grantee_client_guid
      description: The unique id for a grantee client; must match the client_guid of the authenticated client.
      in: path
      required: true
      schema:
        type: string
        example: CLT-7829f71c-2e8c-afa5-2f55-fa3634b89874
    grantGuid:
      name: grant_guid
      description: The unique identifier for the `grant`. Defined by MX.
      in: path
      required: true
      schema:
        type: string
        example: CLG-7c6f361b-e582-15b6-60c0-358f12466b4b
    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
    institutionProducts:
      name: products[]
      in: query
      required: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/InstitutionProducts'
      description: |-
        Filters institutions that support specific products. Values may include account_verification, identity_verification, transactions, transaction_history, statements, investments, rewards.

        For example, institutions that support account_verification and statements, `?products[]=account_verification&products[]=statements`.
      example:
        - account_verification
        - statements
    institutionIdentifier:
      description: |-
        A unique identifier for the institution, defined by MX. Accepts either the institution `code` (for example, `mxbank`) or the institution `guid` (for example, `INS-1572a04c-912b-59bf-5841-332c7dfafaef`). Both are defined by MX and either can be used.
      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
    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
    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
    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-01-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
    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. Maximum date range limit is 6 months.
      example: '2024-01-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. Maximum date range limit is 6 months.
      example: '2024-08-28'
      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 ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
      example: '2024-01-01'
      schema:
        type: string
    toCreatedAt:
      name: to_created_at
      description: Filter transaction to the date in which the transaction was created. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
      example: '2024-01-01'
      in: query
      schema:
        type: string
    fromUpdatedAt:
      name: from_updated_at
      description: Filter transactions from the date the transaction was updated. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
      example: '2024-01-01'
      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 ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
      example: '2024-03-31'
      in: query
      schema:
        type: string
    categoryGuidQuery:
      name: category_guid
      description: |-
        Filter transactions belonging to specified `category_guid`.

        For example, `?category_guid=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874`.
      in: query
      schema:
        type: string
    categoryGuidQueryArray:
      name: category_guid[]
      description: |-
        Filter transactions belonging to any specified `category_guid[]` in url.

        For example, `?category_guid[]=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874`.
      in: query
      schema:
        type: array
        items:
          type: string
    topLevelCategoryGuid:
      name: top_level_category_guid
      description: |-
        Filter transactions belonging to specified `top_level_category_guid`. This must be top level category guid, use `category_guid` for subcategory guid.

        For example, `?top_level_category_guid=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874`.
      in: query
      schema:
        type: string
    topLevelCategoryGuidArray:
      name: top_level_category_guid[]
      description: |-
        Filter transactions belonging to any specified `top_level_category_guid[]` in url. This must be top level category guid(s), use `category_guid` for subcategory guid(s).

        For example, `?top_level_category_guid[]=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874`.
      in: query
      schema:
        type: array
        items:
          type: string
    includes:
      description: |
        Enrich transaction responses with additional metadata. Pass one or more values as an array to selectively include data.

        Accepted values: `category`, `counterparties`, `merchant`, `repeating_transaction`.

        Example: `?includes[]=category&includes[]=merchant`

        Any other value, or a comma-separated string, returns a `400` error.
      example:
        - category
        - merchant
      in: query
      name: includes
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - category
            - counterparties
            - merchant
            - repeating_transaction
    includesAccount:
      description: |
        Enrich account responses with additional metadata. Pass one or more values as an array to selectively include data.

        Accepted values: `balances`.

        Example: `?includes[]=balances`

        Any other value returns an error.
      example:
        - balances
      in: query
      name: includes
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - balances
    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
    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
    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
    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
    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
    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
    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
    transactionIdentifier:
      description: Use either the transaction `id` you defined or the MX-defined transaction `guid`. See [Assigning Resource IDs](/products/connectivity/overview/held-data#assigning-resource-ids).
      in: path
      required: true
      name: transaction_identifier
      schema:
        type: string
    acceptLanguage:
      description: The desired language of the widget, `member_status.error.user_message` field, and `member_status.error.error_message` field.
      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
    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
    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
  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'
      required:
        - authorization_code
      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/v20260929/reference/ach-returns#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/v20260929/reference/ach-returns#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/v20260929/reference/ach-returns#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/v20260929/reference/ach-returns#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/v20260929/reference/ach-returns#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](/api-reference/platform-api/v20260929/reference/ach-returns#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'
      required:
        - ach_return
      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
    UserBaseResponse:
      description: The base fields for a user. Returned as the `user` companion on related resources such as members, accounts, and transactions, and as the foundation of full user responses.
      properties:
        guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-11141024-90b3-1bce-cac9-c06ced52ab4c
          nullable: false
          type: string
        id:
          description: The unique partner-defined identifier for the user.
          example: unique_id
          nullable: true
          type: string
        metadata:
          description: Additional information you can store about the user.
          example: some metadata
          nullable: true
          type: string
        self:
          description: The API URI path for the `user`.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c
          nullable: false
          type: string
    DataExchangeUsersResponseBody:
      properties:
        users:
          items:
            $ref: '#/components/schemas/UserBaseResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    MxRecordBaseResponse:
      description: Timestamps for when MX created and last updated the record. Returned as the `mx_record` companion on all resources persisted by MX. These describe the MX record, not the underlying resource at the institution.
      properties:
        created_at:
          description: The date and time the resource was created in MX Platform, represented in ISO 8601 format with a timestamp.
          example: '2025-05-10T18:08:00Z'
          nullable: true
          type: string
        updated_at:
          description: |
            The date and time the resource was last updated in MX Platform, represented in ISO 8601 format with a timestamp.

            For categories, this field will always be `null` when `is_default` is `true`.
          example: '2026-02-12T22:48:21Z'
          nullable: true
          type: string
    UserSlimResponse:
      allOf:
        - $ref: '#/components/schemas/UserBaseResponse'
        - type: object
          properties:
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    DataExchangeUserResponseBody:
      properties:
        user:
          $ref: '#/components/schemas/UserSlimResponse'
      type: object
    AccountBaseResponse:
      description: The base fields for an account. Returned as the `account` companion on related resources such as transactions, statements, and rewards, and as the foundation of full account responses.
      properties:
        account_number_display:
          description: The account number associated with the account. This will typically be a masked or partial account number.
          example: '3331261'
          type: string
          nullable: true
        current_balance:
          description: The current balance of the account.
          example: 1000
          nullable: true
          type: number
        metadata:
          description: Additional information about the account, as a stringified JSON object.
          example: some metadata
          nullable: true
          type: string
        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/v20260929/reference/accounts#account-types).
          example: CHECKING
          nullable: true
          type: string
        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/v20260929/reference/accounts#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
        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
        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
        self:
          description: The API URI path for the account.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts/ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          type: string
      type: object
    MemberBaseResponse:
      description: The base fields for a member, which is a user's connection to an institution. Returned as the `member` companion on related resources such as accounts and transactions, and as the foundation of full member responses.
      properties:
        guid:
          description: The unique identifier for the member. Defined by MX.
          example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: false
          type: string
        id:
          description: The unique partner-defined identifier for the member.
          example: unique_id
          nullable: true
          type: string
        metadata:
          description: Additional information you can store about the member.
          example: some metadata
          nullable: true
          type: string
        name:
          description: The name of the member.
          example: MX Bank
          nullable: true
          type: string
        self:
          description: The API URI path for the member.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: false
          type: string
    AccountSlimResponse:
      allOf:
        - $ref: '#/components/schemas/AccountBaseResponse'
        - type: object
          properties:
            member:
              $ref: '#/components/schemas/MemberBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    AccountsSlimResponseBody:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/AccountSlimResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    AccountSlimResponseBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountSlimResponse'
      type: object
    AccountBalancesResponse:
      description: Extended balance fields for an account. Only present when requested via `includes[]=balances`.
      nullable: true
      type: object
      properties:
        available_balance:
          description: The available balance of the account.
          example: 1000
          nullable: true
          type: number
        balance:
          description: The current balance of the account.
          example: 1000
          nullable: true
          type: number
        cash_balance:
          description: The cash balance of the account.
          example: 1000
          nullable: true
          type: number
        margin_balance:
          description: The margin balance of the account.
          example: 1000
          nullable: true
          type: number
        minimum_balance:
          description: The minimum balance of the account.
          example: 100
          nullable: true
          type: number
        original_balance:
          description: The original balance of the account.
          example: 10
          nullable: true
          type: number
        payoff_balance:
          description: The payoff balance of the account.
          example: 10
          nullable: true
          type: number
        statement_balance:
          description: The statement balance of the account.
          example: 1000.5
          nullable: true
          type: number
    AccountIncludesResponse:
      description: Extended account response. The `balances` object is only present when requested via the `includes[]` query parameter.
      allOf:
        - $ref: '#/components/schemas/AccountSlimResponse'
        - type: object
          properties:
            balances:
              $ref: '#/components/schemas/AccountBalancesResponse'
    AccountsIncludesResponseBody:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/AccountIncludesResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    AccountIncludesResponseBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountIncludesResponse'
      type: object
    GrantBaseResponse:
      properties:
        data_scope:
          description: Determines the source of the data that is shared through the grant. `HELD` is data owned by the issuing client, `AGGREGATED` is data MX collected through end user-authorized institution connections, and `ALL` is both.
          example: HELD
          nullable: false
          type: string
          enum:
            - HELD
            - AGGREGATED
            - ALL
        expires_at:
          description: The timestamp when the grant expires, in ISO 8601 format.
          example: '2025-02-13T18:08:00+00:00'
          nullable: false
          type: string
        guid:
          description: The unique identifier for the grant. Defined by MX.
          example: CLG-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: false
          type: string
        revoked_at:
          description: The timestamp when the grant was revoked, in ISO 8601 format.
          example: '2025-02-13T18:08:00+00:00'
          nullable: true
          type: string
        status:
          description: The status of the grant.
          example: GRANTED
          nullable: false
          type: string
          enum:
            - GRANTED
            - EXPIRED
            - REVOKED
    GrantGranteeBaseResponse:
      properties:
        client_guid:
          description: The unique identifier for the grant grantee. Defined by MX.
          example: CLT-7be56761-e582-15b6-60c0-358f12466b4b
          nullable: false
          type: string
        role:
          description: The role assigned to the grantee for the grant. A `RECIPIENT` receives data and delivers the service. A `DATA_COLLECTOR` pulls data from MX and passes it to the recipient without storing it.
          example: RECIPIENT
          nullable: false
          type: string
          enum:
            - RECIPIENT
            - DATA_COLLECTOR
    GrantIssuerBaseResponse:
      description: The MX client that issued the grant and owns the shared data. Returned as the `issuer` companion on grant responses.
      properties:
        client_guid:
          description: The unique identifier for the grant issuer. Defined by MX.
          example: CLT-7c6f361b-e582-15b6-60c0-358f12466b4b
          nullable: false
          type: string
    GrantResponse:
      allOf:
        - $ref: '#/components/schemas/GrantBaseResponse'
        - type: object
          properties:
            grantees:
              description: A list of grantees associated with the grant.
              type: array
              items:
                $ref: '#/components/schemas/GrantGranteeBaseResponse'
            issuer:
              $ref: '#/components/schemas/GrantIssuerBaseResponse'
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    DataExchangeGrantsResponseBody:
      properties:
        grants:
          type: array
          items:
            $ref: '#/components/schemas/GrantResponse'
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    DataExchangeGrantResponseBody:
      type: object
      properties:
        grant:
          $ref: '#/components/schemas/GrantResponse'
    DataExchangeTokenResponseBody:
      type: object
      properties:
        token:
          type: string
          description: A signed JWT, valid for 1 hour. Pass it in the `MX-3DX-TOKEN` header on Data Exchange user, account, and transaction requests.
    TransactionBaseResponse:
      properties:
        amount:
          description: The monetary amount of the `transaction`.
          example: 61.11
          nullable: false
          type: number
        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
        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
        self:
          description: The API URI path to access the transaction details.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/transactions/TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1
          nullable: false
          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
        type:
          description: The type of transaction.
          example: CREDIT
          nullable: true
          type: string
          enum:
            - CREDIT
            - DEBIT
    TransactionSlimResponse:
      allOf:
        - $ref: '#/components/schemas/TransactionBaseResponse'
        - type: object
          properties:
            account:
              $ref: '#/components/schemas/AccountBaseResponse'
            member:
              $ref: '#/components/schemas/MemberBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    TransactionsSlimResponseBody:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/TransactionSlimResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
    DataRequestProducts:
      type: string
      enum:
        - account_verification
        - identity_verification
        - transactions
        - transaction_history
        - statements
        - investments
    InstitutionProducts:
      type: string
      enum:
        - account_verification
        - identity_verification
        - transactions
        - transaction_history
        - statements
        - investments
        - rewards
    InstitutionSlimResponse:
      allOf:
        - $ref: '#/components/schemas/InstitutionBaseResponse'
        - type: object
          properties:
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    InstitutionsResponseBody:
      properties:
        institutions:
          items:
            $ref: '#/components/schemas/InstitutionSlimResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    InstitutionResponseBody:
      properties:
        institution:
          $ref: '#/components/schemas/InstitutionSlimResponse'
      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.
          nullable: true
          type: number
        longitude:
          description: The longitude of the location where the transaction occurred. The number is a signed decimal.
          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
      required:
        - transactions
      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'
      required:
        - user
      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'
      required:
        - user
      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/v20260929/reference/accounts#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/v20260929/reference/accounts#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/v20260929/reference/accounts#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'
      required:
        - account
      type: object
    AccountNumberAch:
      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
        routing_number:
          description: The routing number for the `account`.
          example: '68899990000000'
          nullable: true
          type: string
      type: object
    AccountNumberEft:
      properties:
        institution_number:
          description: The three-digit number identifying a Canadian banking institution.
          example: '123'
          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
      type: object
    AccountNumberBaseResponse:
      properties:
        guid:
          description: Unique identifier for the account number. Defined by MX.
          example: ACN-8899832e-e5b4-42cd-aa25-bbf1dc889a8f
          nullable: true
          type: string
        ach:
          allOf:
            - $ref: '#/components/schemas/AccountNumberAch'
            - type: object
          nullable: true
        eft:
          allOf:
            - $ref: '#/components/schemas/AccountNumberEft'
            - type: object
          nullable: true
      type: object
    AccountNumbersResponseBody:
      properties:
        account_numbers:
          items:
            allOf:
              - $ref: '#/components/schemas/AccountNumberBaseResponse'
              - type: object
                properties:
                  account:
                    $ref: '#/components/schemas/AccountBaseResponse'
                  member:
                    $ref: '#/components/schemas/MemberBaseResponse'
                  user:
                    $ref: '#/components/schemas/UserBaseResponse'
                  mx_record:
                    $ref: '#/components/schemas/MxRecordBaseResponse'
            type: object
          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_repeating_transactions:
          description: Indicates whether there are repeating transactions 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 Insights 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 Insights 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'
      required:
        - account
      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
        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/v20260929/reference/accounts#account-types).
          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
    AccountResponseBody:
      properties:
        account:
          $ref: '#/components/schemas/AccountResponse'
      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
    TransactionIncludesResponse:
      description: Extended transaction response. The `category`, `counterparties`, `merchant`, and `repeating_transaction` objects are only present when requested via the `includes[]` query parameter. When included but no data exists, the value is `null`.
      allOf:
        - $ref: '#/components/schemas/TransactionSlimResponse'
        - properties:
            category:
              description: Only present when `includes[]=category` is specified. Null when no category is associated with the transaction.
              nullable: true
              type: object
              properties:
                guid:
                  description: The unique identifier for the category. Defined by MX.
                  example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                  type: string
                name:
                  description: The name of the category.
                  example: Paycheck
                  type: string
                top_level_category:
                  description: The parent category assigned to this transaction's category.
                  example: Income
                  nullable: true
                  type: string
                self:
                  description: The API URI path to access the category details.
                  example: /categories/CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
                  nullable: true
                  type: string
            counterparties:
              description: Only present when `includes[]=counterparties` is specified. Null when no counterparties are associated with the transaction.
              type: array
              nullable: true
              items:
                type: object
                description: A party involved in the transaction, for example a payment processor and the underlying merchant.
                properties:
                  confidence_level:
                    description: The confidence level of the counterparty match, represented as "Very High" or "Low".
                    example: Very High
                    nullable: true
                    type: string
                  guid:
                    description: The unique identifier for the counterparty. Defined by MX.
                    example: MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84
                    nullable: true
                    type: string
                  logo_url:
                    description: The URL for a 100px X 100px logo for the counterparty.
                    example: https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png
                    nullable: true
                    type: string
                  name:
                    description: The name of the counterparty.
                    example: MX
                    type: string
                  website_url:
                    description: The URL for the counterparty's website.
                    example: https://www.example.com
                    nullable: true
                    type: string
            merchant:
              description: Only present when `includes[]=merchant` is specified. Null when no merchant is associated with the transaction.
              type: object
              nullable: true
              properties:
                confidence_level:
                  description: The confidence level of the merchant assignment for the transaction, represented as "Very High" or "Low".
                  example: Very High
                  nullable: true
                  type: string
                guid:
                  description: The unique identifier for the merchant. Defined by MX.
                  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
                name:
                  description: The name of the merchant.
                  example: MX
                  type: string
                self:
                  description: The API URI path to access the merchant details.
                  example: /merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84
                  nullable: true
                  type: string
                website_url:
                  type: string
                  description: URL to the merchant's website.
                  example: https://www.example.com
            repeating_transaction:
              description: Only present when `includes[]=repeating_transaction` is specified. Null when no repeating transaction is associated with the transaction.
              nullable: true
              type: object
              properties:
                frequency:
                  description: The frequency at which the transaction is expected to repeat. See [Supported Recurrence Types](/api-reference/platform-api/v20260929/reference/transactions#supported-recurrence-types).
                  type: string
                  example: EVERY_MONTH
                  enum:
                    - EVERY_WEEK
                    - EVERY_OTHER_WEEK
                    - TWICE_A_MONTH
                    - EVERY_MONTH
                    - EVERY_OTHER_MONTH
                    - EVERY_QUARTER
                    - EVERY_OTHER_QUARTER
                    - EVERY_YEAR
                    - UNKNOWN
                guid:
                  description: The unique identifier for the repeating transaction. Defined by MX.
                  type: string
                  example: RPT-065b8b1d-826a-45ce-8487-60ca1510e72a
                self:
                  description: The API URI path to access the repeating transaction details.
                  example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/repeating_transactions/RPT-065b8b1d-826a-45ce-8487-60ca1510e72a
                  nullable: true
                  type: string
                type:
                  description: The type of the repeating transaction.
                  type: string
                  enum:
                    - BILL
                    - SUBSCRIPTION
                    - INCOME
                    - UNKNOWN
      type: object
    TransactionsIncludesResponseBody:
      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'
      required:
        - transaction
      type: object
    TransactionSlimResponseBody:
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionSlimResponse'
      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'
      required:
        - category
      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'
      required:
        - category
      type: object
    AccountsResponseBody:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/AccountResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      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
    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: false
          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.
          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.
          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
    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'
      required:
        - insight
      type: object
    IdentityMatchRequestBody:
      properties:
        identity_match:
          $ref: '#/components/schemas/IdentityMatchRequest'
      required:
        - identity_match
      type: object
    IdentityMatchRequest:
      type: object
      required:
        - name
        - address
        - email
        - phone_number
      properties:
        name:
          type: object
          description: |
            User's name. Can be personal (first, middle, last) or company, but not both.
          properties:
            first:
              type: string
              description: First name. Required if `company` is not provided.
              example: John
            middle:
              type: string
              description: Middle name.
              example: Q
            last:
              type: string
              description: Last name. Required if `company` is not provided.
              example: Doe
            company:
              type: string
              description: Company name. Required if `first` and `last` are not provided.
              example: Acme Corporation
        address:
          type: object
          required:
            - line_1
            - city
            - region
            - postal_code
            - country
          description: User's address.
          properties:
            line_1:
              type: string
              description: First line of street address.
              example: 123 Main St
            line_2:
              type: string
              description: Second line of street address.
              example: Apt 4B
            line_3:
              type: string
              description: Third line of street address.
              example: Building C
            city:
              type: string
              description: City.
              example: Anytown
            region:
              type: string
              description: State, province, or region.
              example: CA
            postal_code:
              type: string
              description: Postal code.
              example: '12345'
            country:
              type: string
              description: Country.
              example: US
        email:
          type: string
          description: User's email address.
          example: john.doe@example.com
        phone_number:
          type: string
          description: Phone number. Must contain at least 10 digits. Can include dashes, parentheses, and spaces.
          example: (555) 555-5555
    IdentityMatchResponseBody:
      properties:
        identity_match:
          $ref: '#/components/schemas/IdentityMatchResponse'
      type: object
    IdentityMatchResponse:
      type: object
      properties:
        composite_confidence_score:
          type: number
          description: Overall confidence score from 0 to 1.
          minimum: 0
          maximum: 1
          example: 0.92
        individual_scores:
          type: object
          description: Individual match scores.
          properties:
            name_score:
              type: number
              description: Name match confidence from 0 to 1.
              minimum: 0
              maximum: 1
              example: 0.95
            address_score:
              type: number
              description: Address match confidence from 0 to 1.
              minimum: 0
              maximum: 1
              example: 0.90
            phone_score:
              type: number
              description: Phone match confidence from 0 to 1.
              minimum: 0
              maximum: 1
              example: 0.85
            email_score:
              type: number
              description: Email match confidence from 0 to 1.
              minimum: 0
              maximum: 1
              example: 0.98
          required:
            - name_score
            - address_score
            - phone_score
            - email_score
      required:
        - composite_confidence_score
        - individual_scores
    InstitutionBaseResponse:
      properties:
        code:
          description: The code identifying a financial institution.
          example: mxbank
          nullable: true
          type: string
        guid:
          description: The unique identifier for the institution. Defined by MX.
          example: INS-1572a04c-912b-59bf-5841-332c7dfafaef
          nullable: false
          type: string
        iso_country_code:
          description: The ISO country code associated with the institution.
          example: US
          type: string
          enum:
            - US
            - CA
        name:
          description: The name of the institution.
          example: MX Bank
          nullable: true
          type: string
        products:
          description: The products the institution supports.
          type: array
          items:
            $ref: '#/components/schemas/InstitutionProducts'
          example:
            - account_verification
            - identity_verification
            - transactions
            - transaction_history
            - statements
            - investments
            - rewards
        self:
          description: The API URI path for the institution.
          example: /institutions/INS-1572a04c-912b-59bf-5841-332c7dfafaef
          nullable: false
          type: string
        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
    MemberStatusBaseResponse:
      properties:
        status:
          description: The status of a user's connection to an institution. See [Member Connection Status](/api-reference/platform-api/v20260929/reference/members#member-connection-statuses).
          example: CONNECTED
          nullable: true
          type: string
          enum:
            - CREATED
            - PREVENTED
            - DENIED
            - CHALLENGED
            - REJECTED
            - LOCKED
            - CONNECTED
            - IMPEDED
            - RECONNECTED
            - DEGRADED
            - DISCONNECTED
            - DISCONTINUED
            - CLOSED
            - DELAYED
            - FAILED
            - UPDATED
            - DISABLED
            - IMPORTED
            - RESUMED
            - EXPIRED
            - IMPAIRED
            - PENDING
        error:
          type: object
          nullable: true
          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.
            locale:
              description: The language of `error_message` and `user_message`, such as `en`, `es`, or `fr`.
              type: string
              example: en
        self:
          description: The API URI path for the member's status.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b/status
          nullable: false
          type: string
    OauthBaseResponse:
      properties:
        is_oauth:
          description: Indicates whether the member uses OAuth to authenticate. Defaults to `false`.
          example: true
          nullable: true
          type: boolean
        authorization_url:
          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=b8OikQ4Ep
          nullable: true
          type: string
        self:
          description: The API URI path to generate a new OAuth Authorization URL.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b/oauth/authorization_url
          nullable: false
          type: string
    MemberSlimResponse:
      allOf:
        - $ref: '#/components/schemas/MemberBaseResponse'
        - type: object
          properties:
            institution:
              $ref: '#/components/schemas/InstitutionBaseResponse'
            member_status:
              $ref: '#/components/schemas/MemberStatusBaseResponse'
            oauth:
              $ref: '#/components/schemas/OauthBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    MembersSlimResponseBody:
      properties:
        members:
          items:
            $ref: '#/components/schemas/MemberSlimResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      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.
          items:
            $ref: '#/components/schemas/DataRequestProducts'
          type: array
      example:
        products:
          - transactions
          - statements
          - investments
    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
    OauthAuthorizationUrlRequest:
      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
        enable_app2app:
          example: true
          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.
        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
    MemberCreateRequestBody:
      properties:
        data_request:
          type: object
          $ref: '#/components/schemas/DataRequest'
        member:
          $ref: '#/components/schemas/MemberCreateRequest'
        oauth:
          $ref: '#/components/schemas/OauthAuthorizationUrlRequest'
      required:
        - member
        - data_request
      type: object
    MemberStatusNoErrorResponse:
      properties:
        status:
          description: The status of a user's connection to an institution. See [Member Connection Status](/api-reference/platform-api/v20260929/reference/members#member-connection-statuses).
          example: CONNECTED
          nullable: true
          type: string
          enum:
            - CREATED
            - PREVENTED
            - DENIED
            - CHALLENGED
            - REJECTED
            - LOCKED
            - CONNECTED
            - IMPEDED
            - RECONNECTED
            - DEGRADED
            - DISCONNECTED
            - DISCONTINUED
            - CLOSED
            - DELAYED
            - FAILED
            - UPDATED
            - DISABLED
            - IMPORTED
            - RESUMED
            - EXPIRED
            - IMPAIRED
            - PENDING
        error:
          type: object
          nullable: true
          example: null
        self:
          description: The API URI path for the member's status.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b/status
          nullable: false
          type: string
    MemberSlimNoErrorResponse:
      allOf:
        - $ref: '#/components/schemas/MemberBaseResponse'
        - type: object
          properties:
            institution:
              $ref: '#/components/schemas/InstitutionBaseResponse'
            member_status:
              $ref: '#/components/schemas/MemberStatusNoErrorResponse'
            oauth:
              $ref: '#/components/schemas/OauthBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
    MemberSlimNoErrorResponseBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberSlimNoErrorResponse'
      type: object
    MemberSlimResponseBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberSlimResponse'
      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'
      required:
        - member
      type: object
    AccountOwnerName:
      properties:
        name:
          description: The account owner's name.
          example: Josh Smith
          nullable: true
          type: string
        first_name:
          description: The account owner's first name. This may also include a middle name. This field returns `null` if the first name can't be derived from the entity (such as a business or trust) or if name splitting isn't enabled. To enable name splitting, contact MX.
          example: Josh
          type: string
          nullable: true
        last_name:
          description: The account owner's last name. This field returns `null` if the last name can't be derived from the entity (such as a business or trust) or if name splitting isn't enabled. To enable name splitting, contact MX.
          example: Smith
          nullable: true
          type: string
    AccountOwnerAddress:
      properties:
        street:
          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
        state:
          description: The account owner's state.
          example: VA
          nullable: true
          type: string
        postal_code:
          description: The account owner's postal code.
          example: 00000-0000
          nullable: true
          type: string
        country:
          description: The account owner's country.
          example: US
          nullable: true
          type: string
    AccountOwnerPhoneNumber:
      properties:
        phone:
          description: The account owner's phone number.
          example: 555-555-5555
          type: string
    AccountOwnerEmail:
      properties:
        email:
          description: The email address associated with the account.
          example: example@example.com
          type: string
    AccountOwnerBaseResponse:
      properties:
        guid:
          description: Unique identifier for the account owner. Defined by MX.
          example: ACO-63dc7714-6fc0-4aa2-a069-c06cdccd1af9
          nullable: true
          type: string
        names:
          description: A list of the account owner's names.
          items:
            $ref: '#/components/schemas/AccountOwnerName'
          type: array
        addresses:
          description: A list of the account owner's street addresses.
          items:
            $ref: '#/components/schemas/AccountOwnerAddress'
          type: array
        phone_numbers:
          description: A list of the account owner's phone numbers.
          items:
            $ref: '#/components/schemas/AccountOwnerPhoneNumber'
          type: array
        emails:
          description: A list of the account owner's emails.
          items:
            $ref: '#/components/schemas/AccountOwnerEmail'
          type: array
      type: object
    AccountOwnersResponseBody:
      properties:
        account_owners:
          items:
            allOf:
              - $ref: '#/components/schemas/AccountOwnerBaseResponse'
              - type: object
                properties:
                  account:
                    $ref: '#/components/schemas/AccountBaseResponse'
                  member:
                    $ref: '#/components/schemas/MemberBaseResponse'
                  user:
                    $ref: '#/components/schemas/UserBaseResponse'
                  mx_record:
                    $ref: '#/components/schemas/MxRecordBaseResponse'
            type: object
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      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
    ProductSupportResponse:
      type: object
      properties:
        is_supported:
          description: Indicates whether the institution supports this product.
          example: true
          nullable: true
          type: boolean
    ProductsBaseResponse:
      description: Contains the products available upon a successful connection and their support status.
      properties:
        last_attempted_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.

            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 for transactions, or a premium job such as identity_verification, account_verification, rewards, statements, or extended transaction_history.

            If a member is deleted and then re-created within the throttle window (typically three hours), the previous value will be returned.
          example: '2025-01-13T17:57:38.000Z'
          nullable: true
          type: string
        last_updated_at:
          description: The date and time of the last successful aggregation, represented in ISO 8601 format with a timestamp.
          example: '2025-01-13T17:57:38.000Z'
          nullable: true
          type: string
        account_verification:
          $ref: '#/components/schemas/ProductSupportResponse'
        identity_verification:
          $ref: '#/components/schemas/ProductSupportResponse'
        investments:
          $ref: '#/components/schemas/ProductSupportResponse'
        rewards:
          $ref: '#/components/schemas/ProductSupportResponse'
        statements:
          $ref: '#/components/schemas/ProductSupportResponse'
        transaction_history:
          $ref: '#/components/schemas/ProductSupportResponse'
        transactions:
          $ref: '#/components/schemas/ProductSupportResponse'
      type: object
    MemberStatusResponse:
      allOf:
        - $ref: '#/components/schemas/MemberStatusBaseResponse'
        - type: object
          properties:
            challenges:
              items:
                $ref: '#/components/schemas/ChallengeResponse'
              type: array
            member:
              $ref: '#/components/schemas/MemberBaseResponse'
            products:
              $ref: '#/components/schemas/ProductsBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
      type: object
    MemberStatusResponseBody:
      properties:
        member_status:
          $ref: '#/components/schemas/MemberStatusResponse'
      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/v20260929/reference/accounts#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'
      required:
        - account
      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
    OauthAuthorizationUrlRequestBody:
      properties:
        data_request:
          type: object
          $ref: '#/components/schemas/DataRequest'
        oauth:
          $ref: '#/components/schemas/OauthAuthorizationUrlRequest'
      required:
        - data_request
      type: object
    OauthAuthorizationUrlResponse:
      allOf:
        - $ref: '#/components/schemas/OauthBaseResponse'
        - type: object
          properties:
            member:
              $ref: '#/components/schemas/MemberBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
      type: object
    OauthAuthorizationUrlResponseBody:
      properties:
        oauth:
          $ref: '#/components/schemas/OauthAuthorizationUrlResponse'
      type: object
    MemberResumeRequest:
      properties:
        challenges:
          items:
            $ref: '#/components/schemas/CredentialRequest'
          type: array
      type: object
    MemberResumeRequestBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberResumeRequest'
      required:
        - member
      type: object
    StatementBaseResponse:
      properties:
        content_hash:
          description: An SHA-256 hash value of the statement's byte payload.
          example: ca53785b812d00ef821c3d94bfd6e5bbc0020504410589b7ea8552169f021981
          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
        uri:
          description: A URI for accessing the byte payload of the `statement`.
          example: uri/to/statement
          nullable: true
          type: string
    StatementResponse:
      allOf:
        - $ref: '#/components/schemas/StatementBaseResponse'
        - type: object
          properties:
            account:
              $ref: '#/components/schemas/AccountBaseResponse'
            member:
              $ref: '#/components/schemas/MemberBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    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
    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'
      required:
        - tagging
      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'
      required:
        - tagging
      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'
      required:
        - tag
      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'
      required:
        - tag
      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:
          description: The description to apply to transactions matched by this rule.
          example: Wal-mart food storage
          type: string
        match_description:
          description: The description text a transaction must match for the rule to apply.
          example: Wal-mart
          type: string
      required:
        - category_guid
        - match_description
      type: object
    TransactionRuleCreateRequestBody:
      properties:
        transaction_rule:
          $ref: '#/components/schemas/TransactionRuleCreateRequest'
      required:
        - transaction_rule
      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'
      required:
        - transaction_rule
      type: object
    TransactionIncludesResponseBody:
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionIncludesResponse'
      type: object
    TransactionUpdateRequest:
      properties:
        category_guid:
          description: The unique identifier for the category to assign to the transaction. Defined by MX.
          example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
          type: string
        date:
          description: The date of the transaction in ISO 8601 format (`YYYY-MM-DD`).
          example: '2026-09-24'
          type: string
        description:
          description: A human-readable description of the transaction.
          example: new description
          type: string
        memo:
          description: Additional descriptive information about the transaction.
          example: Additional information on transaction
          type: string
      type: object
    TransactionUpdateRequestBody:
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionUpdateRequest'
      required:
        - transaction
      type: object
    DeepLinkParams:
      type: object
      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
    WidgetRequestBody:
      properties:
        widget_url:
          $ref: '#/components/schemas/WidgetRequest'
      type: object
    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'`.

            Required when `is_mobile_webview: true` and `ui_message_webview_url_scheme` is `"mx"` or not provided.
          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'
          description: |
            Used for the Connect Widget and Connections Widget. Specifies the data products to retrieve. This replaces the deprecated `mode`, `include_transactions`, and `include_identity` parameters and can't be sent with them.
        deep_link_params:
          $ref: '#/components/schemas/DeepLinkParams'
        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` for transaction aggregation and `true` for account verification. 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`.

            Requires one of the following parameters: `current_institution_code`, `current_institution_guid`, or `current_member_guid`.

            When set to `true`, navigating back to the search step triggers the [Back to Search](/connect/widget-events#back-to-search) event. You must listen for this event and close the widget to avoid trapping the user in the search flow.
          example: false
          nullable: true
          type: boolean
        enable_app2app:
          example: true
          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: |
            Deprecated: Use `data_request.products` instead to set your products. You can't send this option with `data_request`.

            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: |
            Deprecated: Use `data_request.products` instead to set your products. You can't send this option with `data_request`.

            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.

            When set to `true`, you must provide one of the following:
            - `ui_message_webview_url_scheme` set to a value other than "mx"
            - `client_redirect_url`

            If `ui_message_webview_url_scheme` is "mx" or not provided, `client_redirect_url` is required.
        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 Insights 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: |
            Deprecated: Use `data_request.products` instead to set your products. You can't send this option with `data_request`.
            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'
        target_origin_referrer:
          example: https://app.example.com
          type: string
          nullable: true
          description: |
            Only use this option if the `widget_type` is set to `connect_widget` or `connections_widget`. The origin that receives the widget's postMessage events: the exact origin of the page that embeds the widget, such as `https://app.example.com`. Include the scheme, host, and port (if non-default), with no path or trailing slash. Only this origin receives events.

            If omitted, the widget sends events to the origin in the `Referer` header of the request that loads the widget. Set this option when your site's `Referrer-Policy` (for example, `no-referrer` or `same-origin`) blocks that header and you can't change the policy. Not used when `is_mobile_webview` is `true`, because events are sent as URL changes. See [Troubleshooting](/connect/widget-events#troubleshooting).
        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`.

            When this is set to `"mx"` and `is_mobile_webview` is `true`, you must also provide `client_redirect_url`.
        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/v20260929/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'
      required:
        - budget
      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'
      required:
        - budget
      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
          enum:
            - AUTOMOBILE
            - COLLEGE
            - ELECTRONIC
            - EMERGENCY_FUND
            - HOUSE
            - OTHER
            - RECREATIONAL_VEHICLE
            - RETIREMENT
            - SETUP_BUDGETS
            - START_MONEY_MANAGEMENT
            - VACATION
        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
          enum:
            - AUTOMOBILE
            - COLLEGE
            - ELECTRONIC
            - EMERGENCY_FUND
            - HOUSE
            - OTHER
            - RECREATIONAL_VEHICLE
            - RETIREMENT
            - SETUP_BUDGETS
            - START_MONEY_MANAGEMENT
            - VACATION
        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'
      required:
        - goal
      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
          enum:
            - AUTOMOBILE
            - COLLEGE
            - ELECTRONIC
            - EMERGENCY_FUND
            - HOUSE
            - OTHER
            - RECREATIONAL_VEHICLE
            - RETIREMENT
            - SETUP_BUDGETS
            - START_MONEY_MANAGEMENT
            - VACATION
        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
          enum:
            - AUTOMOBILE
            - COLLEGE
            - ELECTRONIC
            - EMERGENCY_FUND
            - HOUSE
            - OTHER
            - RECREATIONAL_VEHICLE
            - RETIREMENT
            - SETUP_BUDGETS
            - START_MONEY_MANAGEMENT
            - VACATION
        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'
      required:
        - goal
      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
      required:
        - goals
      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/v20260929/reference/notifications#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 are projected to spend $1,920.07 more than you have budgeted for Fees & Charges. You have 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'
      required:
        - notification
      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/v20260929/reference/transactions#supported-recurrence-types) for full list. On List and Read Transaction endpoints, this value is returned as `frequency` on the `repeating_transaction` include object.
          type: string
          enum:
            - EVERY_WEEK
            - EVERY_OTHER_WEEK
            - TWICE_A_MONTH
            - EVERY_MONTH
            - EVERY_OTHER_MONTH
            - EVERY_QUARTER
            - EVERY_OTHER_QUARTER
            - EVERY_YEAR
            - UNKNOWN
          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. On List and Read Transaction endpoints, this value is returned as `type` on the `repeating_transaction` include object.
          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
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    RepeatingTransactionResponseBody:
      properties:
        repeating_transaction:
          $ref: '#/components/schemas/RepeatingTransactionResponse'
      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/TransactionSlimResponseBody'
          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'
      required:
        - monthly_cash_flow_profile
      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'
      required:
        - scope
      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
    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.

            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 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/v20260929/reference/members#member-connection-statuses).
          example: CONNECTED
          nullable: true
          type: string
          enum:
            - 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/v20260929/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: INS-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
      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.
                locale:
                  description: The language of `error_message` and `user_message`, such as `en`, `es`, or `fr`.
                  type: string
                  example: en
    MemberResponseBody:
      properties:
        member:
          $ref: '#/components/schemas/MemberResponse'
      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/v20260929/reference/microdeposits#microdeposit-statuses).
          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 returns `null` if the first name can't be derived from the entity (such as a business or trust) or if name splitting isn't enabled. To enable name splitting, contact MX.
          example: Josh
          type: string
        last_name:
          description: The account owner's last name. This field returns `null` if the last name can't be derived from the entity (such as a business or trust) or if name splitting isn't enabled. To enable name splitting, contact MX.
          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'
      required:
        - micro_deposit
      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'
      required:
        - micro_deposit
      type: object
    RewardBaseResponse:
      properties:
        balance:
          description: The current balance of the reward.
          example: 1000
          type: number
        description:
          description: The description for the reward as given by the data provider.
          example: test rewards description here
          type: string
        guid:
          description: The unique identifier for the reward. Defined by MX.
          example: RWD-11341024-90b3-1bce-cac9-c06ced52ab4c
          type: string
        unit_type:
          description: The units in which the balance is given, for example, `MILES` or `POINTS`.
          example: POINTS
          type: string
        self:
          description: The API URI path for the reward.
          example: /users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b/rewards/RWD-11341024-90b3-1bce-cac9-c06ced52ab4c
          type: string
    RewardResponse:
      allOf:
        - $ref: '#/components/schemas/RewardBaseResponse'
        - type: object
          properties:
            account:
              $ref: '#/components/schemas/AccountBaseResponse'
            member:
              $ref: '#/components/schemas/MemberBaseResponse'
            user:
              $ref: '#/components/schemas/UserBaseResponse'
            mx_record:
              $ref: '#/components/schemas/MxRecordBaseResponse'
    RewardsResponseBody:
      properties:
        rewards:
          items:
            type: object
            properties:
              reward:
                $ref: '#/components/schemas/RewardResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    RewardResponseBody:
      properties:
        reward:
          $ref: '#/components/schemas/RewardResponse'
      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
