Skip to main content
The Platform API uses dated versions. Set the version on each request with the 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 merchant Include returns a confidence_level field indicating match quality (for example, “Very High” or “Low”). The new counterparties Include returns every party involved in a transaction, unlike merchant, which returns only the primary merchant. Each counterparty includes guid, name, confidence_level, logo_url, website_url, and self. For example, ordering McDonald’s through DoorDash:
    • merchant = DoorDash (the payment processor)
    • counterparties = [DoorDash, McDonald’s] (all involved parties)
  • Built-in navigation with the self field: Overhauled resources include a self URI to their detail endpoint. Follow self links 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, 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[]).
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 self link (URI) to the resource’s Read endpoint. Follow it instead of constructing URIs manually.
When a resource appears as a Companion (a related object nested inside another resource), it uses this same Base shape. A member’s Base on an account response is structurally identical to a member’s Base when fetched directly.
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_at is when the account was first recorded on the platform, not when it was opened at the institution.
Read Member response (GET /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.
Additional response data — called Includes because you opt in to them with the includes[] query parameter — is available on select endpoints.List Transactions example
Includes 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.
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.
Then apply the field-level changes for each resource you use. Expand a resource to see its changes.
Reduced from ~60 fields to 8 base fields + companions. See Accounts endpoint documentation for the full response schema.
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 fields are now arrays, allowing multiple names, addresses, phone numbers, and emails per owner. See Account Owners endpoint documentation for the full response schema.
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.
Reduced from ~25 fields to 5 base fields + companions. See Members endpoint documentation for the full response schema.
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.
Reduced from ~10 fields to 5 base fields + companions. See Rewards endpoint documentation for the full response schema.
Reduced from ~8 fields to 3 base fields + companions. See Statements endpoint documentation for the full response schema.
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.
5

Replace the OAuth authorization URL endpoint

The OAuth authorization URL endpoint changes from a GET with query parameters to a POST with a request body that mirrors the member create body.
In the v20260929 request body, data_request is required. oauth is optional, but if provided, it can’t be empty.The response envelope key changes from member to oauth and includes a member Companion and user Companion. See the Create OAuth Authorization URL endpoint documentation for the full request and response schemas.
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_request with the deprecated mode, include_transactions, or include_identity options. Set products with data_request.products only.
  • ui_message_version: This option is no longer supported. Remove it from your request.
  • Mobile WebView without a redirect: When is_mobile_webview is true, you must send either a client_redirect_url or a ui_message_webview_url_scheme other than mx.
See the Request Widget URL endpoint documentation for the full request schema.
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.
Upgrading from v20111101?If you are upgrading directly from v20111101, which already uses ISO 8601 date strings, no change is needed.
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:For sunset dates by version, see Deprecations.
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.
  1. Update your Accept-Version header to v20260929 in your INT environment requests.
  2. Verify your response parsing handles the Layered Responses structure (Base, Companions, Includes) for each resource you use.
  3. Confirm aggregation flows work with the new endpoint paths and member_status response.
  4. If using includes[], verify the array syntax and new values return expected data on transaction endpoints.
  5. Test member creation and OAuth flows with the restructured request bodies.
  6. 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_products array 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.products on 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_products and data_request.products share one set of values: account_verification, identity_verification, transactions, transaction_history, statements, and investments. Balance data is always included.
  • Dedicated version header: Pass the version in the Accept-Version header and keep Accept set to application/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 must replace the beta header:
Use the new version header:
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_identification
  • supports_account_statement
  • supports_account_verification
  • supports_transaction_history
Search and filter institutions by the products they support on List Institutions (GET /institutions) and Read Institution (GET /institutions/{institution_code}). See Set aggregation products with data_request for accepted product values.
Upgrading to v20260929?In v20260929, supported_products is renamed to products, in both the institution response and the List Institutions filter. See the Institution changes in Update response parsing.
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.
  • Create Member: POST /users/{user_guid}/members
  • Request Widget URL: POST /users/{user_guid}/widget_urls. When requesting the Connect Widget URL, set widget_url.data_request.products instead of the following configuration parameters:
    • mode
    • include_identity
    • include_transactions
The supported_products and data_request.products arrays accept the following values:
Balance data is always included and does not need to be set.
You can still initiate aggregation manually with these endpoints:
  • 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_numbers
  • has_processed_accounts
  • has_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
Upgrading to v20260929?v20260929 reverts these parameters to ISO 8601 date strings. If you are upgrading from v20111101 to v20260929, skip this change and keep using ISO 8601 dates.If you are upgrading to v20250224 only, you will need to revert to ISO 8601 when you upgrade to v20260929.
6

Stop using sunset endpoints

The following endpoints are sunset on v20250224 and later, and return 410 Gone:The managed data endpoints (/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.