Accept-Version header. For support timelines, see API Versioning.
Available versions
If you are on v20111101, complete Upgrading from v20111101 to v20250224 first, then continue with Upgrading from v20250224 to v20260929.
Upgrading from v20250224 to v20260929
Key changes in v20260929
v20260929 redesigns how the Platform API structures responses for key resources, adds new capabilities for merchant intelligence, and enables secure data sharing. Key changes include:- Data minimization: Responses for members, accounts, transactions, rewards, statements, account owners, account numbers, member status, and institutions are slimmer by default. The new Layered Responses structure returns core fields by default, related objects on full resource requests, and extra data only when you opt in.
-
Enhanced merchant coverage: The
merchantInclude returns aconfidence_levelfield indicating match quality (for example, “Very High” or “Low”). The newcounterpartiesInclude returns every party involved in a transaction, unlikemerchant, which returns only the primary merchant. Each counterparty includesguid,name,confidence_level,logo_url,website_url, andself. For example, ordering McDonald’s through DoorDash:merchant= DoorDash (the payment processor)counterparties= [DoorDash, McDonald’s] (all involved parties)
-
Built-in navigation with the
selffield: Overhauled resources include aselfURI to their detail endpoint. Followselflinks from list responses instead of constructing URIs manually. - Data Exchange: New endpoints support client-to-client financial data sharing. Issuers grant access to grantees via client grants; grantees exchange grants for tokens and call namespaced Data Exchange endpoints. See Data Exchange for the full workflow and endpoint reference.
Breaking changes in v20260929
The following changes require updates to your integration. Each links to the upgrade step with the details.Upgrade steps for v20260929
Complete these steps to move your integration from v20250224 to v20260929.1
Update your version header
Change
Accept-Version to v20260929 on all requests.2
Update response parsing
Layered Responses is the core of the v20260929 redesign. Responses for members, accounts, transactions, rewards, statements, account owners, account numbers, member status, and institutions now return fewer top-level fields. Related resource data has moved into related objects called Companions. For example,
Then apply the field-level changes for each resource you use. Expand a resource to see its changes.
user_guid is now user.guid.Start with the structure, then update each resource you use. Responses now use a Layered Responses structure, split into three tiers: the Base (core fields returned by default), Companions (related objects returned alongside a full resource request), and Includes (opt-in fields returned only when you ask for them with includes[]).Layer 1: Base Response
Layer 1: Base Response
Every resource has a core set of fields that comprise the Base response (the fields returned by default). Any response that returns or references the resource includes these fields.Base characteristics:
- Contains MX and partner identifiers for the resource.
- Resource-specific attributes such as the balance for an Account or the amount for a Transaction.
- A
selflink (URI) to the resource’s Read endpoint. Follow it instead of constructing URIs manually.
Layer 2: Full Resource Response (Base + Companions)
Layer 2: Full Resource Response (Base + Companions)
When you request a resource directly (for example,
GET /users/{user_guid}/members/{member_guid}), you receive the Base and all Companions — related objects such as the member and user on an Account response.Companion characteristics:- Always present (not opt-in) on full resource endpoints.
- Always in Base form (never nested more than one level deep).
- Resources persisted by MX contain an
mx_record.
mx_record: Contains created_at and updated_at timestamps (UTC, ISO 8601). Present on all resources that correspond to persisted records, absent on representational sub-resources like member_status.- These timestamps reflect when the record was created or last modified on the MX platform, not when the underlying resource was created. For example,
account.mx_record.created_atis when the account was first recorded on the platform, not when it was opened at the institution.
/users/{user_guid}/members/{member_guid}):guid, id, metadata, name, and self are the member’s Base fields. The remaining keys (institution, user, member_status, oauth, mx_record) are the Companions.Layer 3: Includes (Opt-In Data)
Layer 3: Includes (Opt-In Data)
Additional response data — called Includes because you opt in to them with the
includes[] query parameter — is available on select endpoints.List Transactions exampleIncludes keys are absent from the response entirely unless requested. When requested but no data exists, the value is
null. See the individual endpoint documentation for more information.Identifier relocation
Identifier relocation
Resource identifiers moved from top-level fields into their Companion (related) objects. For example,
user_guid and institution_code are now user.guid and institution.code.Account
Account
Reduced from ~60 fields to 8 base fields + companions. See Accounts endpoint documentation for the full response schema.
Account number
Account number
Account number fields are now nested objects grouped by payment network.
ach and eft are nullable and populated only when applicable. See Account Numbers endpoint documentation for the full response schema.Account owner
Account owner
Account owner fields are now arrays, allowing multiple names, addresses, phone numbers, and emails per owner. See Account Owners endpoint documentation for the full response schema.
Institution
Institution
Reduced from 20 fields to 6 base fields +
mx_record. The supported_products array is renamed to products, and the List Institutions filter changes from supported_products[] to products[]. See List Institutions endpoint documentation for the full response schema.Member
Member
Reduced from ~25 fields to 5 base fields + companions. See Members endpoint documentation for the full response schema.
Member status
Member status
The response envelope key changes from
member to member_status, and a new products Companion provides per-product support status. Aggregation endpoints now return this response. See Read Member Status endpoint documentation for the full response schema.Rewards
Rewards
Reduced from ~10 fields to 5 base fields + companions. See Rewards endpoint documentation for the full response schema.
Statements
Statements
Reduced from ~8 fields to 3 base fields + companions. See Statements endpoint documentation for the full response schema.
Transactions
Transactions
Reduced from ~40 fields to 9 base fields + companions. List and Read Transaction endpoints also support opt-in
includes[]. Create Transaction does not. See Transactions endpoint documentation for the full response schema.See Update the includes query parameter for changes to the
includes[] query parameter on List/Read Transaction endpoints.3
Update the includes query parameter
The
includes query parameter changes from a comma-separated string to an array format, and the set of accepted values has changed. New supported values are merchant, counterparties, category, and repeating_transaction.4
Update the member create request body
data_request is now required. OAuth-related fields move from the top level into a new oauth object. The skip_aggregation field, deprecated in v20250224, is removed; use data_request.products to control which products aggregate on member creation.Apart from removing
skip_aggregation, the member and data_request objects are unchanged. See the Create Member endpoint documentation for the full request schema.6
Update Request Widget URL requests
Request Widget URL (POST
/users/{user_guid}/widget_urls) rejects the following requests in v20260929. The response is unchanged.- Mixed product settings: You can’t send
data_requestwith the deprecatedmode,include_transactions, orinclude_identityoptions. Set products withdata_request.productsonly. ui_message_version: This option is no longer supported. Remove it from your request.- Mobile WebView without a redirect: When
is_mobile_webviewistrue, you must send either aclient_redirect_urlor aui_message_webview_url_schemeother thanmx.
7
Update aggregation endpoints
Aggregation endpoints are renamed to align with the product names in
data_request.products. All aggregation endpoints, including the deprecated paths, now return the member_status response, which adds a products companion and renames several fields. See the Member status changes in Update response parsing.All paths are relative to /users/{user_identifier}/members/{member_identifier}/.The v20250224 paths are deprecated. For sunset dates by version, see Deprecations.
8
Revert date filters to ISO 8601
Transaction date query parameters revert from Unix timestamps to ISO 8601 date strings (
YYYY-MM-DD). This applies to all date filter parameters on List Transaction endpoints: from_date, to_date, from_created_at, to_created_at, from_updated_at, to_updated_at.9
Stop using sunset and deprecated endpoints
The managed institution and managed member endpoints are sunset and return
410 Gone. They have no direct API replacement. To send data held at your institution to MX, use MDX Real Time.The following endpoints are deprecated in v20260929. They still work, but move to their replacements before they are sunset:oauth_window_uri: See Replace the OAuth authorization URL endpoint.aggregate,check_balance,extend_history,identify,verify,fetch_statements, andfetch_rewards: See Update aggregation endpoints.GET /users/{user_guid}/insights/{insight_guid}/scheduled_payments: Use List repeating transactions associated with an insight instead.
10
Validate your upgrade
Use the MX development (INT) environment to test your upgrade before updating production integrations. The INT environment shares the same code base as production but uses
https://int-api.mx.com as the base URL.- Update your
Accept-Versionheader tov20260929in your INT environment requests. - Verify your response parsing handles the Layered Responses structure (Base, Companions, Includes) for each resource you use.
- Confirm aggregation flows work with the new endpoint paths and
member_statusresponse. - If using
includes[], verify the array syntax and new values return expected data on transaction endpoints. - Test member creation and OAuth flows with the restructured request bodies.
- Request a widget URL with your production configuration and confirm the request succeeds.
Upgrading from v20111101 to v20250224
Key changes in v20250224
v20250224 standardizes how products are configured, modernizes request headers, and cleans up deprecated endpoints. Key changes include:- Enhanced institution search and filtering: The
supported_productsarray on List Institutions and Read Institution shows which products each institution supports, and you can filter institutions by product (for example,supported_products[]=account_verification). - Product-based aggregation on creation: Set
data_request.productson the Create Member and Request Widget URL endpoints to aggregate the products you need when a member is first created, instead of initiating aggregation manually. - Consistent product values:
supported_productsanddata_request.productsshare one set of values:account_verification,identity_verification,transactions,transaction_history,statements, andinvestments. Balance data is always included. - Dedicated version header: Pass the version in the
Accept-Versionheader and keepAcceptset toapplication/json.
Breaking changes in v20250224
The following changes require updates to your integration. Each links to the upgrade step with the details.Upgrade steps for v20250224
Complete these steps to move your integration from v20111101 to v20250224.1
Update request headers
Modify your
Accept request header to application/json and add an Accept-Version header set to v20250224.Example
Unified Product Ordering beta users
Unified Product Ordering beta users
2
Update institution product fields
Update
institution queries and responses to use the new supported_products array. The following individual fields are removed from both the institution response and the List Institutions query parameters:supports_account_identificationsupports_account_statementsupports_account_verificationsupports_transaction_history
/institutions) and Read Institution (GET /institutions/{institution_code}). See Set aggregation products with data_request for accepted product values.Query example
Query example
Response example
Response example
3
Set aggregation products with data_request
Initiate the aggregation of specific products in the body of requests to create members and request Connect Widget URLs, instead of manually initiating aggregation when a member is first created.
You can still initiate aggregation manually with these endpoints:
- Create Member: POST
/users/{user_guid}/members - Request Widget URL: POST
/users/{user_guid}/widget_urls. When requesting the Connect Widget URL, setwidget_url.data_request.productsinstead of the following configuration parameters:modeinclude_identityinclude_transactions
supported_products and data_request.products arrays accept the following values:Balance data is always included and does not need to be set.
Create Member example
Create Member example
Request Widget URL example
Request Widget URL example
- Aggregate Member
- Balance Check
- Extend History
- Fetch Rewards
- Fetch Statements
- Identify Member
- Verify Member
4
Replace deprecated fields
The
skip_aggregation field is deprecated in favor of data_request.products, which provides more granular control over data aggregation. While still supported in v20250224, skip_aggregation is removed in v20260929. Migrate to data_request.products.The following fields in the Check Member Status endpoint response are deprecated:has_processed_account_numbershas_processed_accountshas_processed_transactions
5
Update List Transactions date filters
In v20250224, the
from_date, to_date, from_created_at, to_created_at, from_updated_at, and to_updated_at query parameters on List Transactions endpoints accept Unix timestamps instead of the ISO 8601 strings (YYYY-MM-DD) used in v20111101.Affected endpoints:- GET
/users/{user_identifier}/transactions - GET
/users/{user_identifier}/members/{member_identifier}/transactions - GET
/users/{user_guid}/accounts/{account_guid}/transactions - GET
/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}/transactions - GET
/users/{user_identifier}/tags/{tag_guid}/transactions
6
Stop using sunset endpoints
The following endpoints are sunset on v20250224 and later, and return
410 Gone:POST /users/{user_guid}/connect_widget_url: Use Request Widget URL (POST /users/{user_guid}/widget_urls) instead.POST /payment_processor_authorization_code: Use Request an authorization code (POST /authorization_code) instead.
/managed_institutions and the /managed_members tree) are sunset on all versions and return 410 Gone. They have no direct API replacement. To send data held at your institution to MX, use MDX Real Time.For dates by version, see Deprecations.
