openapi: 3.0.0
info:
contact:
name: MX Platform API
url: https://www.mx.com/products/platform-api
description: 'The MX Platform API is a powerful, fully-featured API designed to make aggregating and enhancing financial data easy and reliable. It can seamlessly connect your app or website to tens of thousands of financial institutions.
Just getting started? See our [use case guides](/use-cases/).
'
title: MX Platform accounts transactions API
version: '20111101'
servers:
- url: https://int-api.mx.com
- url: https://api.mx.com
security:
- basicAuth: []
tags:
- name: transactions
paths:
/transactions/enhance:
post:
description: Use this endpoint to categorize, cleanse, and classify transactions. These transactions are not persisted or stored on the MX platform.
For more information on returned data, please see the [Enhanced Transactions fields guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions).
operationId: enhanceTransactions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EnhanceTransactionsRequestBody'
description: Transaction object to be enhanced
required: true
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/EnhanceTransactionsResponseBody'
description: OK
summary: Enhance transactions
tags:
- transactions
/users/{user_guid}/accounts/{account_guid}/transactions:
post:
operationId: createManualTransaction
tags:
- transactions
summary: Create manual transaction
description: This endpoint can only be used to create manual transactions that are under a manual account. This endpoint accepts the optional MX-Skip-Webhook header and skip_webhook parameter.
parameters:
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/accountGuid'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionCreateRequestBody'
responses:
'200':
description: OK
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionCreateResponseBody'
get:
description: Requests to this endpoint return a list of transactions associated with the specified account.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the [Optional Enhancement Query Parameter guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
operationId: listTransactionsByAccount
parameters:
- $ref: '#/components/parameters/accountGuid'
- $ref: '#/components/parameters/userGuid'
- $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/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions by account
tags:
- transactions
/users/{user_guid}/members/{member_guid}/accounts/{account_guid}/transactions/{transaction_guid}:
put:
description: Use this endpoint to update a specific transaction according to its unique GUID.
operationId: updateTransactionByAccount
parameters:
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/accountGuid'
- $ref: '#/components/parameters/transactionGuid'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionUpdateRequestBody'
description: Transaction object to be updated
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponseBody'
description: OK
summary: Update Transaction by Account
tags:
- transactions
/users/{user_guid}/members/{member_guid}/extend_history:
post:
description: Some institutions allow developers to access an extended transaction history with up to 24 months of data associated with a particular member. The process for fetching and then reading this extended transaction history is much like standard aggregation, and it may trigger multi-factor authentication.
operationId: extendHistory
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'202':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Extend history
tags:
- transactions
/users/{user_guid}/members/{member_guid}/transactions:
get:
description: Requests to this endpoint return a list of transactions associated with the specified `member`, across all accounts associated with that `member`.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the [Optional Enhancement Query Parameter guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
operationId: listTransactionsByMember
parameters:
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/userGuid'
- $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/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions by member
tags:
- transactions
/users/{user_guid}/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.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the [Optional Enhancement Query Parameter guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
operationId: listTransactionsByTag
parameters:
- $ref: '#/components/parameters/userGuid'
- $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/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions by tag
tags:
- transactions
/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/transactionRuleGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'204':
description: No Content
summary: Delete transaction rule
tags:
- transactions
/users/{user_guid}/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`.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the [Optional Enhancement Query Parameter guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
operationId: listTransactions
parameters:
- $ref: '#/components/parameters/userGuid'
- $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/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions
tags:
- transactions
/users/{user_guid}/transactions/{transaction_guid}:
parameters:
- $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`.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the [Optional Enhancement Query Parameter guide](/api-reference/platform-api/reference/transactions-overview#enhanced-transactions#optional-enhancement-query-parameter).
operationId: readTransaction
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: Read transaction
tags:
- transactions
parameters:
- $ref: '#/components/parameters/includes'
put:
description: Use this endpoint to update a specific transaction according to its unique GUID.
operationId: updateTransaction
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionUpdateRequestBody'
description: Transaction object with the fields to be updated.
required: true
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/TransactionResponseBody'
description: OK
summary: Update transaction
tags:
- transactions
delete:
tags:
- transactions
operationId: deleteManualTransactions
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_guid}/repeating_transactions:
get:
description: Retrieve a list of all recurring transactions for a user.
For more see the [Repeating Transactions guide](/api-reference/platform-api/v20111101/reference/transactions-overview#repeating-transactions).
operationId: repeatingTransactions
parameters:
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/RepeatingTransactionsResponseBody'
description: OK
summary: List Repeating Transactions
tags:
- transactions
/users/{user_guid}/repeating_transactions/{repeating_transaction_guid}:
get:
description: Get a Specific Repeating Transaction.
List For more see the [Repeating Transactions guide](/api-reference/platform-api/v20111101/reference/transactions-overview#repeating-transactions)
operationId: specificRepeatingTransaction
parameters:
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/repeatingTransactionGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/RepeatingTransactionsResponseBody'
description: OK
summary: Get a Repeating Transaction
tags:
- transactions
/users/{user_guid}/transactions/{transaction_guid}/split:
parameters:
- $ref: '#/components/parameters/transactionGuid'
- $ref: '#/components/parameters/userGuid'
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/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/SplitTransactionsResponseBody'
description: OK
/users/{user_guid}/members/{member_guid}/accounts/{account_guid}/transactions:
get:
description: Requests to this endpoint return a list of transactions associated with the specified account.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the Optional Enhancement Query Parameter guide.
operationId: listTransactionsByAccountPerMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/accountGuid'
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/fromDateUnix'
- $ref: '#/components/parameters/toDateUnix'
- $ref: '#/components/parameters/fromCreatedAt_2'
- $ref: '#/components/parameters/toCreatedAt_2'
- $ref: '#/components/parameters/fromUpdatedAt_2'
- $ref: '#/components/parameters/toUpdatedAt_2'
- $ref: '#/components/parameters/includes'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions by account per member
tags:
- transactions
/users/{user_identifier}/members/{member_identifier}/extend_history:
post:
description: Some institutions allow developers to access an extended transaction history with up to 24 months of data associated with a particular member. The process for fetching and then reading this extended transaction history is much like standard aggregation, and it may trigger multi-factor authentication.
operationId: extendHistory
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponseBody'
description: Accepted
summary: Extend history
tags:
- transactions
/users/{user_identifier}/members/{member_identifier}/transactions:
get:
description: Requests to this endpoint return a list of transactions associated with the specified `member`, across all accounts associated with that `member`.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the Optional Enhancement Query Parameter guide.
operationId: listTransactionsByMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/userIdentifier'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/fromDateUnix'
- $ref: '#/components/parameters/toDateUnix'
- $ref: '#/components/parameters/fromCreatedAt_2'
- $ref: '#/components/parameters/toCreatedAt_2'
- $ref: '#/components/parameters/fromTimestamp'
- $ref: '#/components/parameters/toTimestamp'
- $ref: '#/components/parameters/fromUpdatedAt_2'
- $ref: '#/components/parameters/toUpdatedAt_2'
- $ref: '#/components/parameters/includes'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions by member
tags:
- transactions
/users/{user_identifier}/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.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the Optional Enhancement Query Parameter guide.
operationId: listTransactionsByTag
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/userIdentifier'
- $ref: '#/components/parameters/tagGuid'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/fromDateUnix'
- $ref: '#/components/parameters/toDateUnix'
- $ref: '#/components/parameters/fromCreatedAt_2'
- $ref: '#/components/parameters/toCreatedAt_2'
- $ref: '#/components/parameters/fromUpdatedAt_2'
- $ref: '#/components/parameters/toUpdatedAt_2'
- $ref: '#/components/parameters/includes'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions by tag
tags:
- transactions
/users/{user_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`.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the Optional Enhancement Query Parameter guide.
operationId: listTransactions
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/userIdentifier'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/fromDateUnix'
- $ref: '#/components/parameters/toDateUnix'
- $ref: '#/components/parameters/fromCreatedAt_2'
- $ref: '#/components/parameters/toCreatedAt_2'
- $ref: '#/components/parameters/fromUpdatedAt_2'
- $ref: '#/components/parameters/toUpdatedAt_2'
- $ref: '#/components/parameters/useCase_2'
- $ref: '#/components/parameters/includes'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: List transactions
tags:
- transactions
/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`.
Enhanced transaction data may be requested using the `includes` parameter. To use this optional parameter, the value should include the optional metadata requested such as `repeating_transactions`, `merchants`, `classifications`, `geolocations`. For more information, see the Optional Enhancement Query Parameter guide.
operationId: readTransactionByAccount
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsResponseBodyIncludes'
description: OK
summary: Read transaction by account
tags:
- transactions
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/includes'
put:
description: Use this endpoint to update the `description` of a specific transaction according to its unique GUID.
operationId: updateTransactionByAccount
parameters:
- $ref: '#/components/parameters/acceptVersion'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionUpdateRequestBody'
description: Transaction object to be updated with a new description
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponseBody'
description: OK
summary: Update transaction
tags:
- transactions
? /users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions/{transaction_identifier}/split
: parameters:
- $ref: '#/components/parameters/transactionIdentifier'
- $ref: '#/components/parameters/userIdentifier'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/accountIdentifier'
- $ref: '#/components/parameters/acceptVersion'
delete:
tags:
- transactions
operationId: deleteSplitTransactionByAccount
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
components:
parameters:
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
fromDateUnix:
description: Filter transactions from this date. This only supports unix timestamp format. Defaults to 120 days ago if not provided.
example: '1666936800'
in: query
name: from_date
schema:
type: string
fromTimestamp:
name: from_timestamp
in: query
description: Filter transactions from the date the transaction was created. This only supports unix timestamp format.
example: '1666936800'
schema:
type: string
toDateUnix:
description: Filter transactions to this date (at midnight). This only supports unix timestamp format. Defaults to 5 days forward from the day the request is made to capture pending transactions.
example: '1698472800'
in: query
name: to_date
schema:
type: string
acceptVersion:
name: Accept-Version
in: header
required: true
schema:
type: string
default: v20250224
example: v20250224
description: MX Platform API version.
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
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
toCreatedAt_2:
name: to_created_at
description: Filter transaction to the date in which the transaction was created. This only supports unix timestamp format.
example: '1698472800'
in: query
schema:
type: string
userIdentifier:
description: Use either the user `id` you defined or the MX-defined user `guid`. See [MX-Defined GUIDs vs IDs Defined by You](https://docs.mx.com/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
in: path
required: true
name: user_identifier
schema:
type: string
fromUpdatedAt:
name: from_updated_at
description: Filter transactions from 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-01-01'
in: query
schema:
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
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
transactionIdentifier:
description: Use either the transaction `id` you defined or the MX-defined transaction `guid`. See [MX-Defined GUIDs vs IDs Defined by You](https://docs.mx.com/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
in: path
required: true
name: transaction_identifier
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
useCase_2:
description: The use case associated with the member. Valid values are `PFM` and/or `MONEY_MOVEMENT`.
required: false
in: query
name: use_case
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
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`.
example: MONEY_MOVEMENT
required: false
in: query
name: use_case
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
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
page:
description: Results are paginated. Specify current page.
example: 1
in: query
name: page
schema:
type: integer
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
includes:
description: "Options for enhanced transactions. This query parameter is optional. Possible additional metadata: `repeating_transactions`, `merchants`, `classifications`, `geolocations`. The query value is format sensitive. To retrieve all available enhancements, append:\n\n`?includes=repeating_transactions,merchants,classifications,geolocations`. \n \nThe query options may be combined to specific enhancements. For example, to request Repeating Transactions and Geolocation data, use: \n\n`?includes=repeating_transactions,geolocations`.\n\n- Repeating Transactions: Identifies transactions with predictable recurrence patterns (e.g., Bill, Income, Subscription).\n- Merchants: Enriches transactions with merchant name.\n- Classifications: Provides more insight into the type of money movement that is occurring on the transaction, whether it be retail or investments.\n- Geolocation: Provides geographic metadata.\n"
example: repeating_transactions,merchants,classifications,geolocations
in: query
name: includes
required: false
schema:
type: string
fromDate:
description: Filter transactions from this date. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Defaults to 120 days ago if not provided.
example: '2024-01-01'
in: query
name: from_date
schema:
type: string
toTimestamp:
name: to_timestamp
description: Filter transaction to the date in which the transaction was created. This only supports unix timestamp format.
example: '1698472800'
in: query
schema:
type: string
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-03-31'
in: query
schema:
type: string
fromCreatedAt_2:
name: from_created_at
in: query
description: Filter transactions from the date the transaction was created. This only supports unix timestamp format.
example: '1666936800'
schema:
type: string
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
toUpdatedAt_2:
name: to_updated_at
description: Filter transactions to the date in which the transaction was updated. This only supports unix timestamp format.
example: '1698472800'
in: query
schema:
type: string
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
toDate:
description: Filter transactions to this date (at midnight). This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Defaults to 5 days forward from the day the request is made to capture pending transactions.
example: '2024-03-31'
in: query
name: to_date
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
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
fromUpdatedAt_2:
name: from_updated_at
description: Filter transactions from the date in which the transaction was updated. This only supports unix timestamp format.
example: '1666936800'
in: query
schema:
type: string
accountIdentifier:
description: Use either the account `id` you defined or the MX-defined account `guid`. See [MX-Defined GUIDs vs IDs Defined by You](https://docs.mx.com/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
in: path
required: true
name: account_identifier
schema:
type: string
memberIdentifier:
description: Use either the member `id` you defined or the MX-defined member `guid`. See [MX-Defined GUIDs vs IDs Defined by You](https://docs.mx.com/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
name: member_identifier
in: path
required: true
schema:
type: string
schemas:
TransactionCreateRequestBody:
properties:
transaction:
$ref: '#/components/schemas/TransactionCreateRequest'
type: object
SplitTransactionRequestBody:
properties:
transactions:
$ref: '#/components/schemas/SplitTransactionRequest'
required:
- transactions
type: object
EnhanceTransactionsRequestBody:
properties:
transactions:
items:
$ref: '#/components/schemas/EnhanceTransactionsRequest'
type: array
type: object
TransactionCreateRequest:
properties:
amount:
example: 61.11
type: number
date:
example: '2016-10-06'
type: string
description:
example: Whole foods
type: string
type:
description: The type of transaction, which must be CREDIT or DEBIT. See Transaction Fields for more information.
example: DEBIT
type: string
category_guid:
description: Unique identifier of the category.
example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
type: string
currency_code:
example: USD
type: string
has_been_viewed:
example: false
type: boolean
is_hidden:
example: false
type: boolean
is_international:
example: false
type: boolean
memo:
example: This is a memo
type: string
metadata:
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
TransactionResponseBody:
properties:
transaction:
$ref: '#/components/schemas/TransactionResponse'
type: object
PaginationResponse:
properties:
current_page:
example: 1
type: integer
per_page:
example: 25
type: integer
total_entries:
example: 1
type: integer
total_pages:
example: 1
type: integer
type: object
EnhanceTransactionsRequest:
properties:
amount:
example: 21.33
type: number
description:
example: ubr* pending.uber.com
type: string
extended_transaction_type:
example: partner_transaction_type
type: string
id:
example: ID-123
type: string
memo:
example: Additional-information*on_transaction
type: string
merchant_category_code:
example: 4121
type: integer
type:
example: DEBIT
type: string
required:
- description
- id
type: object
TransactionUpdateRequest:
properties:
date:
type: string
memo:
type: string
category_guid:
type: string
description:
example: new description
type: string
type: object
TransactionIncludesResponse:
allOf:
- $ref: '#/components/schemas/TransactionResponse'
- properties:
classification:
type: object
nullable: true
properties:
parent_class:
example: Deposit
type: string
enum:
- Payroll
- Deposit
- Savings
- Transfer
- Refunds
- Spend
- Investment
- Buy
- Sell
- Income
- Fees
- Expenses
- Corporate Actions
- Other
guid:
example: MNC-3ad50f86-60d0-4545-a1f9-e66c2ac40f69
type: string
geolocation:
nullable: true
type: object
properties:
country:
example: us
type: string
state:
example: UT
type: string
city:
example: lehi
type: string
postal code:
example: '84043'
type: string
merchant:
type: object
nullable: true
properties:
name:
example: MX
type: string
guid:
example: MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84
type: string
logo_url:
type: string
example: https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png
website_url:
type: string
example: https://www.mx.com
repeating_transaction:
nullable: true
type: object
properties:
repeating_transaction_type:
type: string
enum:
- BILL
- SUBSCRIPTION
- INCOME
- UNKNOWN
recurrence_type:
type: string
enum:
- EVERY_OTHER_WEEK
guid:
type: string
example: RPT-065b8b1d-826a-45ce-8487-60ca1510e72a
type: object
TransactionCreateResponseBody:
properties:
account_guid:
example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
nullable: true
type: string
account_id:
example: account123
nullable: true
type: string
amount:
example: 61.11
nullable: false
type: number
category:
example: Groceries
nullable: true
type: string
category_guid:
example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
nullable: true
type: string
check_number_string:
example: null
nullable: true
type: string
created_at:
example: '2016-10-08T09:43:42.000Z'
nullable: true
type: string
currency_code:
example: USD
nullable: true
type: string
date:
example: '2016-10-06T00:00:00.000Z'
nullable: true
type: string
description:
example: Whole foods
nullable: true
type: string
extended_transaction_type:
example: null
nullable: true
type: string
guid:
example: TRN-265abee9-889b-af6a-c69b-25157db2bdd9
nullable: true
type: string
id:
example: null
nullable: true
type: string
is_bill_pay:
example: false
nullable: true
type: boolean
is_direct_deposit:
example: false
nullable: true
type: boolean
is_expense:
example: true
nullable: true
type: boolean
is_fee:
example: false
nullable: true
type: boolean
is_income:
example: false
nullable: true
type: boolean
is_international:
example: false
nullable: true
type: boolean
is_manual:
example: true
nullable: true
type: boolean
is_overdraft_fee:
example: false
nullable: true
type: boolean
is_payroll_advance:
example: false
nullable: true
type: boolean
is_recurring:
example: null
nullable: true
type: boolean
is_subscription:
example: false
nullable: true
type: boolean
latitude:
example: null
nullable: true
type: number
localized_description:
example: null
nullable: true
type: string
localized_memo:
example: null
nullable: true
type: string
longitude:
example: null
nullable: true
type: number
member_guid:
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
nullable: true
type: string
member_is_managed_by_user:
example: true
nullable: true
type: boolean
memo:
example: This is a memo
nullable: true
type: string
merchant_category_code:
example: null
nullable: true
type: integer
merchant_guid:
example: null
nullable: true
type: string
merchant_location_guid:
example: null
nullable: true
type: string
metadata:
example: some metadata
nullable: true
type: string
original_description:
example: null
nullable: true
type: string
posted_at:
example: null
nullable: true
type: string
status:
example: null
nullable: true
type: string
top_level_category:
example: Food & Dining
nullable: true
type: string
transacted_at:
example: null
nullable: true
type: string
type:
example: DEBIT
nullable: false
type: string
updated_at:
example: '2016-10-08T05:49:12.000Z'
nullable: false
type: string
user_guid:
example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
nullable: true
type: string
user_id:
example: user123
nullable: true
type: string
type: object
EnhanceTransactionsResponseBody:
properties:
transactions:
items:
$ref: '#/components/schemas/EnhanceTransactionResponse'
type: array
type: object
TransactionsResponseBodyIncludes:
properties:
transactions:
items:
$ref: '#/components/schemas/TransactionIncludesResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
MemberResponse:
properties:
aggregated_at:
example: '2016-10-13T18:07:57.000Z'
nullable: true
type: string
background_aggregation_is_disabled:
example: false
type: boolean
connection_status:
example: CONNECTED
nullable: true
type: string
connection_status_message:
example: Connected to MX Bank
nullable: true
type: string
guid:
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
nullable: true
type: string
id:
example: unique_id
nullable: true
type: string
institution_code:
example: mxbank
nullable: true
type: string
institution_guid:
example: INST-12345678-90ab-cdef-1234-567890abcdef
nullable: false
type: string
is_being_aggregated:
example: false
nullable: true
type: boolean
is_managed_by_user:
example: false
nullable: true
type: boolean
is_manual:
example: false
nullable: true
type: boolean
is_oauth:
example: false
nullable: true
type: boolean
metadata:
example: '\"credentials_last_refreshed_at\": \"2015-10-15\'
nullable: true
type: string
most_recent_job_detail_code:
example: null
nullable: true
type: integer
most_recent_job_detail_text:
example: null
nullable: true
type: boolean
most_recent_job_guid:
example: JOB-12345678-90ab-cdef-1234-567890abcdef
nullable: true
type: boolean
name:
example: MX Bank
nullable: true
type: string
needs_updated_credentials:
example: false
nullable: true
type: boolean
oauth_window_uri:
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:
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:
example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
nullable: true
type: string
user_id:
example: user123
nullable: true
type: string
type: object
TransactionResponse:
properties:
account_guid:
example: ACT-0af29528-bb91-447f-b5de-85c1c42593e5
nullable: true
type: string
account_id:
example: FdvkkAgLS0nbDNUujrblz6rYDSl5w-tTLwYRgIxe7jw
nullable: true
type: string
amount:
example: 5003.9
nullable: true
type: number
category:
example: Paycheck
nullable: true
type: string
category_guid:
example: CAT-982ea9e6-3f0e-0c5b-611b-6657a10ba819
nullable: true
type: string
check_number_string:
example: null
nullable: true
type: string
created_at:
example: '2024-12-20T18:52:36Z'
nullable: true
type: string
currency_code:
example: null
nullable: true
type: string
date:
example: '2024-12-20'
nullable: true
type: string
description:
example: MX Technologies
nullable: true
type: string
extended_transaction_type:
example: null
nullable: true
type: string
guid:
example: TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1
nullable: true
type: string
id:
example: 1734681600000-178fa8095c154a55b9172f977b4c5f9a-0
nullable: true
type: string
is_bill_pay:
example: false
nullable: true
type: boolean
is_direct_deposit:
example: false
nullable: true
type: boolean
is_expense:
example: false
nullable: true
type: boolean
is_fee:
example: false
nullable: true
type: boolean
is_income:
example: true
nullable: true
type: boolean
is_international:
example: null
nullable: true
type: boolean
is_manual:
example: false
nullable: true
type: boolean
is_overdraft_fee:
example: false
nullable: true
type: boolean
is_payroll_advance:
example: false
nullable: true
type: boolean
is_recurring:
example: null
nullable: true
type: boolean
is_subscription:
example: false
nullable: true
type: boolean
latitude:
example: null
nullable: true
type: number
localized_description:
example: null
nullable: true
type: string
localized_memo:
example: null
nullable: true
type: string
longitude:
example: null
nullable: true
type: number
member_guid:
example: MBR-78b14c5f-7297-4fb5-a966-65ac45f74d8
nullable: true
type: string
member_is_managed_by_user:
example: true
nullable: true
type: boolean
memo:
example: Transactions
nullable: true
type: string
merchant_category_code:
example: null
nullable: true
type: integer
merchant_guid:
example: MCH-8cc3b01a-1c52-47d4-970d-30f8ee5566f1
nullable: true
type: string
merchant_location_guid:
example: null
nullable: true
type: string
metadata:
example: null
nullable: true
type: string
original_description:
example: MX TECHNOLOGIES PAYMENT
nullable: true
type: string
posted_at:
example: '2024-12-20T12:00:00Z'
nullable: true
type: string
status:
example: POSTED
nullable: true
type: string
top_level_category:
example: Income
nullable: true
type: string
transacted_at:
example: '2024-12-20T12:00:00Z'
nullable: true
type: string
type:
example: CREDIT
nullable: true
type: string
updated_at:
example: '2024-12-20T18:52:38Z'
nullable: true
type: string
user_guid:
example: USR-ef7a82f6-d6c1-42c4-9061-bdece5c4d44e
nullable: true
type: string
user_id:
example: null
nullable: true
type: string
type: object
MemberResponseBody:
properties:
member:
$ref: '#/components/schemas/MemberResponse'
type: object
SplitTransactionRequest:
properties:
amount:
description: Amount of money you want to re-categorize.
example: 54.19
type: number
description:
description: Description for the split transaction.
example: Chevron Gas
type: string
category_guid:
description: Unique identifier of the category.
example: CAT-b6d61a19-30a7-e852-2703-bdfb4072289e
type: string
memo:
description: Memo for the split transaction
type: string
example: Chips and Soda
required:
- amount
TransactionUpdateRequestBody:
properties:
transaction:
$ref: '#/components/schemas/TransactionUpdateRequest'
type: object
EnhanceTransactionResponse:
properties:
amount:
example: 21.33
nullable: true
type: number
categorized_by:
example: 13
nullable: true
type: integer
category:
example: Rental Car & Taxi
nullable: true
type: string
category_guid:
example: CAT-9588eaad-90a4-bb5c-66c8-1812503d0db8
nullable: true
type: string
described_by:
example: 6
nullable: true
type: integer
description:
example: Uber
nullable: true
type: string
extended_transaction_type:
example: partner_transaction_type
nullable: true
type: string
id:
example: ID-123
nullable: true
type: string
is_bill_pay:
example: false
nullable: true
type: boolean
is_direct_deposit:
example: false
nullable: true
type: boolean
is_expense:
example: false
nullable: true
type: boolean
is_fee:
example: false
nullable: true
type: boolean
is_income:
example: false
nullable: true
type: boolean
is_international:
example: false
nullable: true
type: boolean
is_overdraft_fee:
example: false
nullable: true
type: boolean
is_payroll_advance:
example: false
nullable: true
type: boolean
is_subscription:
example: false
nullable: true
type: boolean
memo:
example: Additional-information*on_transaction
nullable: true
type: string
merchant_category_code:
example: 4121
nullable: true
type: integer
merchant_guid:
example: MCH-14f25b63-ef47-a38e-b2b6-d02b280b6e4e
nullable: true
type: string
merchant_location_guid:
example: MCL-00024e59-18b5-4d79-b879-2a7896726fea
nullable: true
type: string
original_description:
example: ubr* pending.uber.com
nullable: true
type: string
type:
example: DEBIT
nullable: true
type: string
type: object
SplitTransactionsResponseBody:
properties:
transactions:
items:
$ref: '#/components/schemas/TransactionResponse'
type: array
type: object
RepeatingTransactionsResponseBody:
properties:
repeating_transactions:
items:
$ref: '#/components/schemas/RepeatingTransactionResponse'
type: array
type: object
RepeatingTransactionResponse:
properties:
account_guid:
example: ACT-0af29528-bb91-447f-b5de-85c1c42593e5
nullable: true
type: string
amount:
example: 107.4
type: number
description:
type: string
example: Dominion Energy
guid:
type: string
example: RPT-a2264e1a-d2e6-41d9-88d2-2cfdf1143959
member_guid:
type: string
example: MBR-78b14c5f-7297-4fb5-a966-65ac45f74d83
merchant_guid:
type: string
example: MCH-1b5d7e4d-fa29-95d1-fd0f-540b6f17d986
last_posted_date:
type: string
example: '2024-12-09'
predicted_occurs_on:
type: string
example: '2025-01-09'
recurrence_type:
type: string
example: EVERY_MONTH
user_guid:
type: string
repeating_transaction_type:
type: string
enum:
- BILL
- SUBSCRIPTION
- INCOME
- UNKNOWN
transaction_type:
type: string
enum:
- DEBIT
- CREDIT
securitySchemes:
bearerAuth:
type: http
scheme: bearer
basicAuth:
scheme: basic
type: http