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 Notifications API version: '20250224' servers: - url: https://int-api.mx.com - url: https://api.mx.com security: - basicAuth: [] tags: - name: notifications description: 'You can only use notifications endpoints if you’re using the MX mobile application. All notifications created through the API will be of notification type `API_NOTIFICATION`, channel `PUSH`, and will not be associated to an entity. No other channels are supported. The read and list endpoints can return any notification associated with the `user`, including notifications created by MX for other channels besides `PUSH`. ' paths: /users/{user_guid}/notifications: post: tags: - notifications operationId: createNotification summary: Create a notification description: All notifications created through the API will be of notification type `API_NOTIFICATION`, channel `PUSH`, and will not be associated to an entity. No other channels are supported. This will only have an effect for clients using an MX mobile application. parameters: - $ref: '#/components/parameters/userGuid' - $ref: '#/components/parameters/acceptVersion' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NotificationRequestBody' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NotificationResponseBody' get: tags: - notifications operationId: listNotifications summary: List notifications description: All notifications for the user can be listed, including notifications created by MX for other channels besides `PUSH`. parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/recordsPerPageMax1000' - $ref: '#/components/parameters/userGuid' - $ref: '#/components/parameters/acceptVersion' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NotificationsResponseBody' /users/{user_guid}/notifications/{notification_guid}: get: tags: - notifications operationId: readNotifications summary: Read notifications description: 'Can pull up any notification associated with the user, including notifications created by MX for other channels besides `PUSH`. ' parameters: - $ref: '#/components/parameters/userGuid' - $ref: '#/components/parameters/notificationGuid' - $ref: '#/components/parameters/acceptVersion' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NotificationResponseBody' components: schemas: NotificationResponse: properties: channel: description: 'The way the notification will be delivered to the user. All notifications created through the API will be of notification type `API_NOTIFICATION`, channel `PUSH`, and will not be associated to an entity. No other channels are supported. ' example: EMAIL type: - string - 'null' enum: - EMAIL - SMS - PUSH - IN_APP content: description: The main body of the notification text sent to the user. example: You're projected to spend $1,920.07 more than you've budgeted for Fees & Charges. You've already spent $325.67 of $716.00. type: string created_at: description: The date and time the notification was created, represented in ISO 8601 format with a timestamp. example: '2025-02-13T18:08:00+00:00' type: string deep_link_guid: description: The unique identifier for objects that directly trigger a notification. For example, `TRANSACTION_FEE_CHARGE` and `TRANSACTION_EXPENSE_LARGE` notification types will have a transaction guid in this field. example: BGT-e386a323-e452-47f2-b2fd-1ac3c18533de delivered_at: description: Date and time the notification was delivered, represented in ISO 8601 format with timestamp. example: null entity_guid: description: The unique identifier of the entity that the notification is attached to. example: BGT-e386a323-e452-47f2-b2fd-1ac3c18533de guid: description: Unique identifier for the notification. Defined by MX. example: NTF-b53294f5-2356-4782-9f81-ae064c42b40a has_been_delivered: description: Indicates if the notification has been delivered to the user. example: true has_been_viewed: description: Indicates if the notification has been viewed by the user. example: false notification_type: description: The type of notification. See [Notification Types](/api-reference/platform-api/reference/notifications-fields#notification-types). example: 2 subject: description: The notification summary text. Usually the same text used for “in-app” or SMS notifications. example: Your Fees & Charges budget projection threshold: example: 325 NotificationsResponseBody: properties: notifications: items: $ref: '#/components/schemas/NotificationResponse' type: object NotificationResponseBody: properties: notification: $ref: '#/components/schemas/NotificationResponse' type: object NotificationRequestBody: properties: notification: $ref: '#/components/schemas/NotificationRequest' type: object NotificationRequest: properties: content: description: The main body of the notification text sent to the user. example: You're projected to spend $1,920.07 more than you've budgeted for Fees & Charges. You've already spent $325.67 of $716.00. type: string subject: description: The notification summary text. Usually the same text used for “in-app” or SMS notifications. example: Monthly Budget Report type: string required: - content - subject type: object parameters: 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 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 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 notificationGuid: name: notification_guid description: The unique identifier for notifications. Defined by MX. example: NTF-b53294f5-2356-4782-9f81-ae064c42b40a in: path required: true schema: type: string 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