Accounts Overview
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.
Account Types
Each item at the top level of this list represents an account_type.
The items in each dropdown represent an account_subtype. When setting or retrieving an account_subtype, if the account_subtype is null, it will be treated as NONE.
Items under Property represent a property_type.
| Account types |
|---|
ANY Not provided by data partner or invalid number provided |
CHECKING |
SAVINGS |
LOAN |
CREDIT_CARD |
INVESTMENT |
LINE_OF_CREDIT |
MORTGAGE |
PROPERTY |
CASH |
INSURANCE |
PREPAID |
CHECKING_LINE_OF_CREDIT |
Account Fields
| Field | Data Type | Description |
|---|---|---|
account_number_display | String | The account number associated with the account. This is typically masked or partial. |
subtype | String | The account subtype (for example PLAN_401_K, MONEY_MARKET, HOME_EQUITY). |
type | String | The account type (for example CHECKING, SAVINGS, CREDIT_CARD). |
guid | String | The unique identifier for the account. Defined by MX. |
id | String | The unique partner-defined identifier for the account. |
name | String | The human-readable name for the account. |
nickname | String | An alternate name for the account. |
self | String | The API URI path for the account. |
member.guid | String | The unique identifier for the related member. Defined by MX. |
member.id | String | The unique partner-defined identifier for the related member. |
member.metadata | String | Additional metadata stored on the related member. |
member.name | String | The name of the related member. |
member.self | String | The API URI path for the related member. |
user.guid | String | The unique identifier for the related user. Defined by MX. |
user.id | String | The unique partner-defined identifier for the related user. |
user.metadata | String | Additional metadata stored on the related user. |
user.self | String | The API URI path for the related user. |
Account Number Fields
| Field | Data Type | Description |
|---|---|---|
account_guid | String | The unique identifier for the account associated with a particular set of account and routing numbers. Defined by MX. |
account_number | String | The banking account number associated with a particular account. |
guid | String | The unique identifier for the account number. Defined by MX. |
institution_number | String | The three-digit number identifying a Canadian banking institution. |
loan_reference_number | String | The reference number of the student loan. |
loan_guarantor | String | The guarantor of the student loan. |
member_guid | String | The unique identifier for the member associated with a particular set of account and routing numbers. Defined by MX. |
passed_validation | Boolean | 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. |
routing_number | String | The routing number for the financial institution associated with the account. |
sequence_number | String | The sequence number of the student loan. |
transit_number | String | The five-digit number identifying the branch of a Canadian financial institution. |
user_guid | String | The unique identifier for the user associated with a particular set of account and routing numbers. Defined by MX. |
Account Owner Fields
| Field | Data Type | Description |
|---|---|---|
account_guid | String | The unique identifier for the account associated with the account owner. Defined by MX. |
address | String | The account owner's street address. |
city | String | The account owner's city. |
country | String | The account owner's country. |
email | String | The account owner's email address. |
first_name | String | 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. |
guid | String | The unique identifier for the account owner. Defined by MX. |
last_name | String | The account owner's last name. This field will be null unless name splitting has been enabled. Contact MX to have this feature enabled. |
member_guid | String | The unique identifier for the member associated with the account owner. Defined by MX. |
owner_name | String | The account owner's name. |
phone | String | The account owner's phone number. |
postal_code | String | The the account owner's postal code. |
state | String | The account owner's state. |
user_guid | String | The unique identifier for the user associated with the account owner. Defined by MX. |
Tokenized Account Numbers
Tokenized Account Numbers (TANs) are substitute account numbers used for secure ACH money movement. When an end user connects an account via an OAuth connection, certain financial institutions provide a TAN instead of the user's actual account number.
This practice enhances security and provides users with greater control. Because each application receives a unique TAN for the same bank account, users or their financial institutions can manage access on a per-application basis without exposing the underlying account details.
The MX platform currently supports TANs from Chase and U.S. Bank.
Using TANs for ACH Payments
The TAN and associated routing number are valid for money movement on the ACH network but only when used together. This combination won't work for other purposes, such as wire transfers, and third-party verification services may not recognize them. Using the TAN with a different routing number—even one from the same institution—will cause the transfer to fail.
To avoid confusing the end user, don't display the TAN in your application's UI. The user won't recognize this number. Instead, display the masked account number provided in the account_number field from the /users/{user_guid}/accounts endpoint.
Connection Types
- OAuth: For supported institutions like Chase and U.S. Bank, a call to
/users/{user_guid}/members/{member_guid}/account_numberswill return a TAN in theaccount_numberfield. - Non-OAuth Connections: These connections return traditional (non-tokenized) account and routing numbers.
Institution-Specific Behavior
The lifecycle and behavior of a TAN can vary by financial institution.
Chase
TANs issued by Chase will become invalid and ACH transfers will fail under the following conditions:
- MX revokes consent.
- The end user revokes consent directly with Chase.
- Chase flags the account for fraudulent activity.
U.S. Bank
TANs issued by U.S. Bank won't become invalid if the end user revokes consent or deletes the connection. They remain active for money movement even after the associated MX connection is no longer active.
For more information, reference the U.S. Bank Developer Portal.