curl --request POST \
--url https://int-api.mx.com/users/{user_guid}/notifications \
--header 'Accept-Version: <accept-version>' \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://int-api.mx.com/users/{user_guid}/notifications"
payload = {}
headers = {
"Accept-Version": "<accept-version>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Accept-Version': '<accept-version>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://int-api.mx.com/users/{user_guid}/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://int-api.mx.com/users/{user_guid}/notifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Accept-Version: <accept-version>",
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://int-api.mx.com/users/{user_guid}/notifications"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept-Version", "<accept-version>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://int-api.mx.com/users/{user_guid}/notifications")
.header("Accept-Version", "<accept-version>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-api.mx.com/users/{user_guid}/notifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"notification": {
"channel": "EMAIL",
"content": "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.",
"created_at": "2025-02-13T18:08:00+00:00",
"deep_link_guid": "BGT-e386a323-e452-47f2-b2fd-1ac3c18533de",
"delivered_at": null,
"entity_guid": "BGT-e386a323-e452-47f2-b2fd-1ac3c18533de",
"guid": "NTF-b53294f5-2356-4782-9f81-ae064c42b40a",
"has_been_delivered": true,
"has_been_viewed": false,
"notification_type": 2,
"subject": "Your Fees & Charges budget projection",
"threshold": "<unknown>"
}
}Create notification
All notifications created through the API will be of notification type API_NOTIFICATION and will not be associated to an entity.
curl --request POST \
--url https://int-api.mx.com/users/{user_guid}/notifications \
--header 'Accept-Version: <accept-version>' \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://int-api.mx.com/users/{user_guid}/notifications"
payload = {}
headers = {
"Accept-Version": "<accept-version>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Accept-Version': '<accept-version>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://int-api.mx.com/users/{user_guid}/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://int-api.mx.com/users/{user_guid}/notifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Accept-Version: <accept-version>",
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://int-api.mx.com/users/{user_guid}/notifications"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept-Version", "<accept-version>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://int-api.mx.com/users/{user_guid}/notifications")
.header("Accept-Version", "<accept-version>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-api.mx.com/users/{user_guid}/notifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"notification": {
"channel": "EMAIL",
"content": "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.",
"created_at": "2025-02-13T18:08:00+00:00",
"deep_link_guid": "BGT-e386a323-e452-47f2-b2fd-1ac3c18533de",
"delivered_at": null,
"entity_guid": "BGT-e386a323-e452-47f2-b2fd-1ac3c18533de",
"guid": "NTF-b53294f5-2356-4782-9f81-ae064c42b40a",
"has_been_delivered": true,
"has_been_viewed": false,
"notification_type": 2,
"subject": "Your Fees & Charges budget projection",
"threshold": "<unknown>"
}
}Authorizations
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}'
Headers
MX Platform API version.
"v20250224"
Path Parameters
The unique identifier for a user, beginning with the prefix USR-.
Body
Hide child attributes
Hide child attributes
The main body of the notification text sent to the user.
"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."
The notification summary text. Usually the same text used for “in-app” or SMS notifications.
"Monthly Budget Report"
Response
OK
Hide child attributes
Hide child attributes
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.
EMAIL, SMS, PUSH, IN_APP "EMAIL"
The main body of the notification text sent to the user.
"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."
The date and time the notification was created, represented in ISO 8601 format with a timestamp.
"2025-02-13T18:08:00+00:00"
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.
"BGT-e386a323-e452-47f2-b2fd-1ac3c18533de"
Date and time the notification was delivered, represented in ISO 8601 format with timestamp.
null
The unique identifier of the entity that the notification is attached to.
"BGT-e386a323-e452-47f2-b2fd-1ac3c18533de"
Unique identifier for the notification. Defined by MX.
"NTF-b53294f5-2356-4782-9f81-ae064c42b40a"
Indicates if the notification has been delivered to the user.
true
Indicates if the notification has been viewed by the user.
false
The type of notification. See Notification Types.
2
The notification summary text. Usually the same text used for “in-app” or SMS notifications.
"Your Fees & Charges budget projection"

