openapi: 3.2.0
info:
contact:
name: MX Platform API
url: https://www.mx.com/products/platform-api
description: 'The MX Platform API is a powerful, fully-featured API designed to make aggregating and enhancing financial data easy and reliable. It can seamlessly connect your app or website to tens of thousands of financial institutions.
## What''s Changed?
Several endpoints, headers, and fields changed in `v20250224`. For more on breaking changes, refer to our [versioning](/api-reference/platform-api/overview/versioning#v20250224) and [migration](/api-reference/platform-api/overview/migration) guides.
## Version Header
Versions are set in the `Accept-Version` header of API requests. Version numbers correspond with the date associated with that version. The example below uses the version `v20250224`.
```
-H ''Accept: application/json''
-H ''Accept-Version: v20250224''
```
---
'
title: MX Platform Accounts API
version: '20250224'
servers:
- url: https://int-api.mx.com
- url: https://api.mx.com
security:
- basicAuth: []
tags:
- 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.
'
paths:
/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/reference/list-account-numbers-by-member/) or [List account numbers by account](/api-reference/platform-api/reference/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'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsResponseBody'
description: OK
summary: List accounts
tags:
- accounts
post:
description: 'This endpoint can only be used to create manual accounts. Creating a manual account will automatically create it under the Manual Institution member. Since a manual account has no credentials tied to the member, the account will never aggregate or include data from a data feed.
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'
description: Manual account object to be created.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseBody'
description: OK
summary: Create manual account
tags:
- accounts
/users/{user_guid}/accounts/{account_guid}:
get:
description: This endpoint returns the specified `account` resource.
operationId: readAccount
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/accountGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseBody'
description: OK
summary: Read account
tags:
- accounts
delete:
description: This endpoint deletes accounts that were manually created. The API will respond with an empty object and a status of `204 No Content`.
operationId: deleteManualAccount
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/accountGuid'
- $ref: '#/components/parameters/acceptHeader'
- $ref: '#/components/parameters/userGuid'
responses:
'204':
description: No content.
summary: Delete manual account
tags:
- accounts
/users/{user_identifier}/accounts/{account_identifier}/account_numbers:
get:
description: This endpoint returns a list of account numbers associated with the specified `account`.
operationId: listAccountNumbersByAccount
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/accountIdentifier'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumbersResponseBody'
description: OK
summary: List account numbers by account
tags:
- accounts
/users/{user_guid}/accounts/{account_guid}/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/merge:
post:
operationId: mergeAccounts
tags:
- accounts
summary: Merge accounts
description: "Merge two or more financial accounts that an end user has identified as duplicates. \nProvide at least two account GUIDs belonging to the same user. \n\n\nThe response will return a single consolidated account. Any other accounts you provided that were not included in the response will be deleted.\nThis is a destructive action and can't be undone.\n\n\n"
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/userGuid'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsMergeRequestBody'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseBody'
/users/{user_guid}/accounts/{account_guid}/monthly_account_balances:
get:
description: Use this endpoint to list all monthly account balances associated with an account GUID. Setting `from_date` returns account balances starting from the set month. Setting `to_date` returns account balances ending with the set month.
operationId: listAccountBalancesByMonth
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/userGuid'
- $ref: '#/components/parameters/accountGuid'
- $ref: '#/components/parameters/fromDateRequired'
- $ref: '#/components/parameters/toDateRequired'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MonthlyAccountBalancesResponseBody'
description: OK
summary: List account balances by month
tags:
- accounts
/users/{user_guid}/members/{member_guid}/account_numbers:
get:
description: This endpoint returns a list of account numbers associated with the specified `member`.
operationId: listAccountNumbersByMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberGuid'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumbersResponseBody'
description: OK
summary: List account numbers by member
tags:
- accounts
/users/{user_identifier}/members/{member_identifier}/account_owners:
get:
description: This endpoint returns an array with information about every account associated with a particular member.
operationId: listAccountOwnersByMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountOwnersResponseBody'
description: OK
summary: List account owners by member
tags:
- accounts
/users/{user_identifier}/members/{member_identifier}/accounts:
get:
description: This endpoint returns a list of all the accounts associated with the specified `member`.
operationId: listMemberAccounts
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/memberIsManagedByUser'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userIdentifier'
- $ref: '#/components/parameters/memberIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsResponseBody'
description: OK
summary: List member accounts
tags:
- accounts
/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}:
get:
description: This endpoint allows you to read the attributes of an `account` resource.
operationId: readAccountByMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/accountIdentifier'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseBody'
description: OK
summary: Read member account
tags:
- accounts
put:
description: This endpoint allows you to update certain attributes of an `account` resource, including manual accounts. For manual accounts, you can update every field listed. For aggregated accounts, you can only update `is_business`, `is_hidden` and `metadata`.
operationId: updateAccountByMember
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/accountIdentifier'
- $ref: '#/components/parameters/memberIdentifier'
- $ref: '#/components/parameters/userIdentifier'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountUpdateRequestBody'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseBody'
description: OK
summary: Update account by member
tags:
- accounts
components:
parameters:
memberIdentifier:
description: Use either the member `id` you defined or the MX-defined member `guid`. See [MX-Defined GUIDs vs IDs Defined by You](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
name: member_identifier
in: path
required: true
schema:
type: string
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
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
accountIsManual:
description: List only accounts that were manually created.
example: true
in: query
name: is_manual
schema:
type: boolean
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
acceptVersion:
name: Accept-Version
in: header
required: true
schema:
type: string
default: v20250224
example: v20250224
description: MX Platform API version.
page:
description: Results are paginated. Specify current page.
example: 1
in: query
name: page
schema:
type: integer
accountIdentifier:
description: Use either the account `id` you defined or the MX-defined account `guid`. See [MX-Defined GUIDs vs IDs Defined by You](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
in: path
required: true
name: account_identifier
schema:
type: string
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
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
acceptHeader:
description: Specifies the media type expected in the response.
in: header
name: Accept
required: true
schema:
type: string
example: application/json
fromDateRequired:
description: Filter transactions from this date. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Defaults to 120 days ago if not provided.
example: '2024-02-01'
required: true
in: query
name: from_date
schema:
type: string
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
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
userIdentifier:
description: Use either the user `id` you defined or the MX-defined user `guid`. See [MX-Defined GUIDs vs IDs Defined by You](/products/connectivity/overview/held-data/#mx-defined-guids-vs-ids-defined-by-you).
in: path
required: true
name: user_identifier
schema:
type: string
schemas:
AccountNumbersResponseBody:
properties:
account_numbers:
items:
$ref: '#/components/schemas/AccountNumberResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
AccountOwnersResponseBody:
properties:
account_owners:
items:
$ref: '#/components/schemas/AccountOwnerResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
AccountNumberResponse:
properties:
account_guid:
description: The unique identifier for an account. Defined by MX.
example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
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
- 'null'
guid:
description: Unique identifier for the account number. Defined by MX.
example: ACN-8899832e-e5b4-42cd-aa25-bbf1dc889a8f
type:
- string
- 'null'
institution_number:
description: The three-digit number identifying a Canadian banking institution.
example: '123'
type:
- string
- 'null'
loan_guarantor:
description: The guarantor of the student loan.
example: U.S. DEPARTMENT OF EDUCATION (123456)
type:
- string
- 'null'
loan_reference_number:
description: The reference number of the student loan.
example: '123456789012345'
type:
- string
- 'null'
member_guid:
description: The unique identifier for the member. Defined by MX.
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
type:
- string
- 'null'
passed_validation:
description: This indicates whether the account and routing numbers passed MX's internal validity checks. If true, the account and routing/transit numbers are likely (but not guaranteed) to be valid. If false, either the account number, routing/transit number, or both are likely invalid.
example: true
type:
- boolean
- 'null'
routing_number:
description: The routing number for the `account`.
example: '68899990000000'
type:
- string
- 'null'
sequence_number:
description: The sequence number of the student loan.
example: 1-01
type:
- string
- 'null'
transit_number:
description: The five-digit number identifying the branch of a Canadian financial institution.
example: '12345'
type:
- string
- 'null'
user_guid:
description: The unique identifier for the user. Defined by MX.
example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
type:
- string
- 'null'
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
- 'null'
account_ownership:
description: The type of ownership associated with the account. `NULL` is returned if not received in the data feed.
example: INDIVIDUAL
type:
- string
- 'null'
enum:
- UNKNOWN
- INDIVIDUAL
- JOINT
- MULTIPLE
- null
annuity_policy_to_date:
description: The date until which the policy is in effect.
example: '2025-12-31'
type:
- string
- 'null'
annuity_provider:
description: The provider of the insurance policy.
example: Metlife
type:
- string
- 'null'
annuity_term_year:
description: The effective duration of an insurance policy (one year, five years, etc.).
example: 30
type:
- integer
- 'null'
apr:
description: The annual percentage rate associated with the `account`.
example: 1
type:
- number
- 'null'
apy:
description: The annual percentage yield associated with the `account`.
example: 2.35
type:
- number
- 'null'
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
- 'null'
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
type:
- number
- 'null'
balance:
description: "The current balance of the account.\n\n`PENDING` transactions are typically not taken into account with the current balance, but this may not always be the case.\n \nThe 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.\n\nDebt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`, `MORTGAGE`) may have a negative balance if they are overpaid.\n"
example: 1000
type:
- number
- 'null'
cash_balance:
description: The cash balance of the `account`.
example: 2500
type:
- number
- 'null'
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
- 'null'
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'
type: string
credit_limit:
description: The credit limit associated with the `account`.
example: 5000
type:
- number
- 'null'
currency_code:
description: The three-character ISO 4217 currency code, for example, `USD`.
example: USD
type:
- string
- 'null'
day_payment_is_due:
description: The day of the month the payment is due. For example, the 14th is passed as `14`.
example: 14
type:
- integer
- 'null'
death_benefit:
description: The amount paid to the beneficiary of the account upon death of the account owner.
example: 1000
type:
- integer
- 'null'
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
type:
- string
- 'null'
enum:
- UNKNOWN_INSURED
- INSURED
- NOT_INSURED
guid:
description: Unique identifier for the account. Defined by MX.
example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
type:
- string
- 'null'
id:
description: The unique partner-defined identifier for the account.
example: '1040434698'
type:
- string
- 'null'
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'
type:
- string
- 'null'
interest_rate:
description: The interest rate associated with the account.
example: 3.25
type:
- number
- 'null'
institution_code:
description: The code identifying a financial institution.
example: 3af3685e-05d9-7060-359f-008d0755e993
type:
- string
- 'null'
insured_name:
description: The name of the insured person.
example: Tommy Shelby
type:
- string
- 'null'
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
- 'null'
is_manual:
description: Indicates whether the transaction was manually created or belongs to a manual account.
example: false
type:
- boolean
- 'null'
last_payment:
description: The amount of the most recent payment on the `account`.
example: 100
type:
- number
- 'null'
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'
type:
- string
- 'null'
loan_amount:
description: The amount of the loan associated with the `account`.
example: 1000
type:
- number
- 'null'
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
type:
- number
- 'null'
matures_on:
description: The date on which the `account` matures.
example: '2015-10-13T17:57:37.000Z'
type:
- string
- 'null'
member_guid:
description: The unique identifier for the member. Defined by MX.
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
type:
- string
- 'null'
member_id:
description: The unique, partner-defined, identifier for the member associated with this `account`.
example: member123
type:
- string
- 'null'
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
type:
- boolean
- 'null'
metadata:
description: Additional information you stored about the `account`.
example: some metadata
type:
- string
- 'null'
minimum_balance:
description: The minimum balance associated with the `account`.
example: 100
type:
- number
- 'null'
minimum_payment:
description: The minimum payment required for an account. This can apply to any debt account.
example: 10
type:
- number
- 'null'
name:
description: The human-readable name for the resource.
example: Test account 2
type:
- string
- 'null'
nickname:
description: An alternate name for the `account`.
example: My Checking
type:
- string
- 'null'
original_balance:
description: The original balance associated with the `account`. This will always be positive.
example: 10
type:
- number
- 'null'
pay_out_amount:
description: The amount paid out to the insured individual or beneficiary under the conditions of the insurance policy.
example: 10
type:
- number
- 'null'
payment_due_at:
description: The date and time at which the next payment is due on the `account`.
example: '2015-10-13T17:57:37.000Z'
type:
- string
- 'null'
payoff_balance:
description: The payoff balance for a debt `account`. This will normally be a positive number.
example: 10
type:
- number
- 'null'
premium_amount:
description: The insurance policy's premium amount.
example: 1
type:
- number
- 'null'
property_type:
description: Subtype if the account type is `PROPERTY`. This field should be ignored unless the type is set to PROPERTY.
example: VEHICLE
type:
- string
- 'null'
enum:
- APPLIANCES
- ART
- COMPUTER
- ELECTRONICS
- FURNITURE
- JEWELRY
- MISCELLANEOUS
- REAL_ESTATE
- SPORTS_EQUIPMENT
- VEHICLE
routing_number:
description: The routing number for the `account`.
example: '68899990000000'
type:
- string
- 'null'
started_on:
description: The date on which the loan from a debt account started.
example: '2025-10-13T17:57:37.000Z'
type:
- string
- 'null'
statement_balance:
description: The balance at the end of the account's last statement period.
example: 1000.5
type:
- number
- 'null'
subtype:
description: The account's subtype, for example, `PLAN_401_K`, `MONEY_MARKET`, or `HOME_EQUITY`. Each subtype belongs to an account `type`. For a full list of account subtypes and types, see [Accounts](/api-reference/platform-api/reference/accounts).
example: MONEY_MARKET
type:
- string
- 'null'
today_ugl_amount:
description: The unrealized gain/loss amount for the day for the account.
example: 1000.5
type:
- number
- 'null'
today_ugl_percentage:
description: The unrealized gain/loss percentage for the date for the account.
example: 6.9
type:
- number
- 'null'
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
type:
- number
- 'null'
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
type:
- number
- 'null'
type:
description: The type of account. Some account types may include subtypes.
example: CHECKING
type:
- string
- 'null'
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'
type:
- string
- 'null'
user_guid:
description: The unique identifier for the user. Defined by MX.
example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
type:
- string
- 'null'
user_id:
description: The unique partner-defined identifier for the user.
example: u-1234
type:
- string
- 'null'
type: object
MonthlyAccountBalancesResponseBody:
properties:
monthly_account_balances:
items:
$ref: '#/components/schemas/MonthlyAccountBalance'
type: array
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
AccountResponseBody:
properties:
account:
$ref: '#/components/schemas/AccountResponse'
type: object
AccountsResponseBody:
properties:
accounts:
items:
$ref: '#/components/schemas/AccountResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
AccountUpdateRequest:
properties:
account_subtype:
description: Can only be updated for manual accounts.
example: PERSONAL
type:
- string
- 'null'
account_type:
description: The type of account. Some account types may include subtypes. For a full list of account types and subtypes, see [Account Types](/api-reference/platform-api/reference/account-types).
example: CHECKING
type:
- string
- 'null'
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
type:
- number
- 'null'
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
type:
- number
- 'null'
currency_code:
description: Can only be updated for manual accounts. The three-character ISO 4217 currency code, for example, `USD`.
example: USD
type:
- string
- 'null'
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
AccountOwnerResponse:
properties:
account_guid:
description: The unique identifier for an account. Defined by MX.
example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
type: string
address:
description: The account owner's street address.
example: 3541 Adrian Street
type:
- string
- 'null'
city:
description: The account owner's city.
example: Middlesex
type:
- string
- 'null'
country:
description: The account owner's country.
example: US
type:
- string
- 'null'
email:
description: The email address associated with the account.
example: example@example.com
type: string
first_name:
description: The account owner's first name. This may also include a middle name. This field will be `null` unless name splitting has been enabled. Contact MX to have this feature enabled.
example: Josh
type:
- string
- 'null'
guid:
description: Unique identifier for the account owner. Defined by MX.
example: ACO-63dc7714-6fc0-4aa2-a069-c06cdccd1af9
type:
- string
- 'null'
last_name:
description: The last name of the account holder.
example: Smith
type:
- string
- 'null'
member_guid:
description: The unique identifier for the member. Defined by MX.
example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
type:
- string
- 'null'
owner_name:
description: The account owner's name.
example: Josh Smith
type:
- string
- 'null'
phone:
description: The account owner's phone number.
example: 555-555-5555
type:
- string
- 'null'
postal_code:
description: The account owner's postal code.
example: 00000-0000
type:
- string
- 'null'
state:
description: The account owner's state.
example: VA
type:
- string
- 'null'
user_guid:
description: The unique identifier for the user. Defined by MX.
example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
type:
- string
- 'null'
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
MonthlyAccountBalance:
properties:
account_guid:
description: The unique identifier for an account. Defined by MX.
example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
type: string
balance:
description: "The current balance of the account.\n\n`PENDING` transactions are typically not taken into account with the current balance, but this may not always be the case.\n \nThe 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.\n\nDebt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`, `MORTGAGE`) may have a negative balance if they are overpaid.\n"
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
AccountUpdateRequestBody:
properties:
account:
$ref: '#/components/schemas/AccountUpdateRequest'
type: object
AccountsMergeRequestBody:
properties:
account:
$ref: '#/components/schemas/AccountsMergeRequest'
type: object
AccountCreateRequestBody:
properties:
account:
$ref: '#/components/schemas/AccountCreateRequest'
type: object
AccountCreateRequest:
properties:
account_subtype:
description: The account's subtype, for example, `PLAN_401_K`, `MONEY_MARKET`, or `HOME_EQUITY`. Each subtype belongs to an account `type`. For a full list of account subtypes and types, see [Accounts](/api-reference/platform-api/reference/account-types).
example: CHECKING
type:
- string
- 'null'
account_type:
description: The type of account. Some account types may include subtypes. For a full list of account types and subtypes, see [Account Types](/api-reference/platform-api/reference/account-types).
example: CHECKING
type:
- string
- 'null'
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.\n\n`PENDING` transactions are typically not taken into account with the current balance, but this may not always be the case.\n \nThe 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.\n\nDebt-type accounts (`CREDIT_CARD`, `LOAN`, `LINE_OF_CREDIT`, `MORTGAGE`) may have a negative balance if they are overpaid.\n"
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
type:
- string
- 'null'
death_benefit:
description: The amount paid to the beneficiary of the account upon death of the account owner.
example: 1000
type: integer
interest_rate:
description: The interest rate associated with the account.
example: 3.25
type: number
is_business:
description: Indicates whether the account is a business account.
example: false
type: boolean
is_closed:
description: Indicates whether an account has been closed. Closed accounts will no longer update balance or transaction information.
example: false
type: boolean
is_hidden:
description: Indicates whether the account is hidden. Hidden accounts can still have an active balance and receive transactions. Defaults to `false`.
example: false
type: boolean
loan_amount:
description: The amount of the loan associated with the `account`.
example: 1000
type: number
metadata:
description: Additional information you can store about the `account`.
example: some metadata
type: string
name:
description: The human-readable name for the `account`.
example: Test account 2
type: string
nickname:
description: An alternate name for the `account`.
example: Swiss Account
type: string
original_balance:
description: The original balance associated with the `account`. This will always be positive.
example: 10
type: number
property_type:
description: Subtype if the account type is `PROPERTY`. This field should be ignored unless the type is set to `PROPERTY`. For a full list of property types, see [Account Types](/api-reference/platform-api/reference/account-types).
example: VEHICLE
type: string
enum:
- APPLIANCES
- ART
- COMPUTER
- ELECTRONICS
- FURNITURE
- JEWELRY
- MISCELLANEOUS
- REAL_ESTATE
- SPORTS_EQUIPMENT
- VEHICLE
skip_webhook:
description: If set to `true`, prevents sending an account webhook for the update if that webhook type is enabled for you.
example: true
type: boolean
required:
- name
- account_type
type: object
securitySchemes:
basicAuth:
scheme: basic
type: http
description: 'The MX Platform API requires basic access authentication using your `client_id` and `api_key`. These credentials must be Base64 encoded and included in the Authorization header of each API request to ensure secure access.
Here''s an example using curl to access `v20250224`. Replace `https://int-api.mx.com/endpoint` with the actual API endpoint you wish to access and your Base64 encoded `client_id` and `api_key`.
```
curl -L -X POST `https://int-api.mx.com/endpoint'' \
-H ''Content-Type: application/json'' \
-H ''Accept: application/json'' \
-H ''Accept-Version: v20250224''
-H ''Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}''
```
'
bearerAuth:
type: http
scheme: bearer