curl --request GET \
--url https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions \
--header 'Accept-Version: <accept-version>' \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions"
headers = {
"Accept-Version": "<accept-version>",
"Authorization": "Basic <encoded-value>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Accept-Version': '<accept-version>', Authorization: 'Basic <encoded-value>'}
};
fetch('https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions', 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_identifier}/accounts/{account_guid}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept-Version: <accept-version>",
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept-Version", "<accept-version>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions")
.header("Accept-Version", "<accept-version>")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"transactions": [
{
"amount": 61.11,
"currency_code": "USD",
"date": "2024-12-20",
"description": "MX Technologies Payroll",
"guid": "TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1",
"id": "1734681600000-178fa8095c154a55b9172f977b4c5f9a-0",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/transactions/TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1",
"status": "POSTED",
"type": "CREDIT",
"account": {
"account_number_display": "3331261",
"subtype": "CHECKING",
"type": "CHECKING",
"guid": "ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1",
"id": "1040434698",
"name": "Test account 2",
"nickname": "Swiss Account",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts/ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1"
},
"member": {
"guid": "MBR-7c6f361b-e582-15b6-60c0-358f12466b4b",
"id": "unique_id",
"metadata": "some metadata",
"name": "MX Bank",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b"
},
"user": {
"guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c",
"id": "unique_id",
"metadata": "some metadata",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
},
"mx_record": {
"created_at": "2025-05-10T18:08:00Z",
"updated_at": "2026-02-12T22:48:21Z"
},
"category": {
"guid": "CAT-b6d61a19-30a7-e852-2703-bdfb4072289e",
"name": "Paycheck",
"top_level_category": "Income",
"self": "/categories/CAT-b6d61a19-30a7-e852-2703-bdfb4072289e"
},
"counterparties": [
{
"confidence_level": "Very High",
"guid": "MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84",
"logo_url": "https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png",
"name": "MX",
"website_url": "https://www.example.com"
}
],
"merchant": {
"confidence_level": "Very High",
"guid": "MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84",
"logo_url": "https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png",
"name": "MX",
"self": "/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84",
"website_url": "https://www.example.com"
},
"repeating_transaction": {
"frequency": "EVERY_MONTH",
"guid": "RPT-065b8b1d-826a-45ce-8487-60ca1510e72a",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/repeating_transactions/RPT-065b8b1d-826a-45ce-8487-60ca1510e72a",
"type": "BILL"
}
}
],
"pagination": {
"current_page": 1,
"per_page": 25,
"total_entries": 1,
"total_pages": 1
}
}List transactions by account
Requests to this endpoint return a list of transactions associated with the specified account.
curl --request GET \
--url https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions \
--header 'Accept-Version: <accept-version>' \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions"
headers = {
"Accept-Version": "<accept-version>",
"Authorization": "Basic <encoded-value>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Accept-Version': '<accept-version>', Authorization: 'Basic <encoded-value>'}
};
fetch('https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions', 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_identifier}/accounts/{account_guid}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept-Version: <accept-version>",
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept-Version", "<accept-version>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions")
.header("Accept-Version", "<accept-version>")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-api.mx.com/users/{user_identifier}/accounts/{account_guid}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"transactions": [
{
"amount": 61.11,
"currency_code": "USD",
"date": "2024-12-20",
"description": "MX Technologies Payroll",
"guid": "TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1",
"id": "1734681600000-178fa8095c154a55b9172f977b4c5f9a-0",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/transactions/TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1",
"status": "POSTED",
"type": "CREDIT",
"account": {
"account_number_display": "3331261",
"subtype": "CHECKING",
"type": "CHECKING",
"guid": "ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1",
"id": "1040434698",
"name": "Test account 2",
"nickname": "Swiss Account",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts/ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1"
},
"member": {
"guid": "MBR-7c6f361b-e582-15b6-60c0-358f12466b4b",
"id": "unique_id",
"metadata": "some metadata",
"name": "MX Bank",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b"
},
"user": {
"guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c",
"id": "unique_id",
"metadata": "some metadata",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
},
"mx_record": {
"created_at": "2025-05-10T18:08:00Z",
"updated_at": "2026-02-12T22:48:21Z"
},
"category": {
"guid": "CAT-b6d61a19-30a7-e852-2703-bdfb4072289e",
"name": "Paycheck",
"top_level_category": "Income",
"self": "/categories/CAT-b6d61a19-30a7-e852-2703-bdfb4072289e"
},
"counterparties": [
{
"confidence_level": "Very High",
"guid": "MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84",
"logo_url": "https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png",
"name": "MX",
"website_url": "https://www.example.com"
}
],
"merchant": {
"confidence_level": "Very High",
"guid": "MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84",
"logo_url": "https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png",
"name": "MX",
"self": "/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84",
"website_url": "https://www.example.com"
},
"repeating_transaction": {
"frequency": "EVERY_MONTH",
"guid": "RPT-065b8b1d-826a-45ce-8487-60ca1510e72a",
"self": "/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/repeating_transactions/RPT-065b8b1d-826a-45ce-8487-60ca1510e72a",
"type": "BILL"
}
}
],
"pagination": {
"current_page": 1,
"per_page": 25,
"total_entries": 1,
"total_pages": 1
}
}Authorizations
To authenticate with the Platform API, include your Base64-encoded client_id and api_key in the Authorization header of every request:
-H 'Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}'
Headers
MX Platform API version.
"v20260929"
Path Parameters
Use either the user id you defined or the MX-defined user guid. See Assigning Resource IDs.
The unique id for an account.
Query Parameters
Results are paginated. Specify current page.
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.
Filter transactions from this date. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Defaults to 120 days ago if not provided. Maximum date range limit is 6 months.
Filter transactions to this date (at midnight). This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Defaults to 5 days forward from the day the request is made to capture pending transactions. Maximum date range limit is 6 months.
Filter transactions from the date the transaction was created. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
Filter transaction to the date in which the transaction was created. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
Filter transactions from the date the transaction was updated. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
Filter transactions to the date in which the transaction was updated. This only supports ISO 8601 format without timestamp (YYYY-MM-DD). Maximum date range limit is 6 months.
Filter transactions belonging to specified category_guid.
For example, ?category_guid=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874.
Filter transactions belonging to any specified category_guid[] in url.
For example, ?category_guid[]=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874.
Filter transactions belonging to specified top_level_category_guid. This must be top level category guid, use category_guid for subcategory guid.
For example, ?top_level_category_guid=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874.
Filter transactions belonging to any specified top_level_category_guid[] in url. This must be top level category guid(s), use category_guid for subcategory guid(s).
For example, ?top_level_category_guid[]=CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874.
Enrich transaction responses with additional metadata. Pass one or more values as an array to selectively include data.
Accepted values: category, counterparties, merchant, repeating_transaction.
Example: ?includes[]=category&includes[]=merchant
Any other value, or a comma-separated string, returns a 400 error.
category, counterparties, merchant, repeating_transaction Response
OK
Hide child attributes
Hide child attributes
The monetary amount of the transaction.
61.11
The three-character ISO 4217 currency code, for example, USD.
"USD"
The date on which the transaction took place. This is the field used when searching for transactions by date and is generally the same as transacted_at, but uses posted_at as a fallback.
"2024-12-20"
A human-readable description of the transaction.
"MX Technologies Payroll"
The unique identifier for the transaction. Defined by MX.
"TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1"
The unique partner-defined identifier for the transaction.
"1734681600000-178fa8095c154a55b9172f977b4c5f9a-0"
The API URI path to access the transaction details.
"/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/transactions/TRN-429ad9fe-a1d2-4559-8590-885b2603f0e1"
The status of the transaction.
All transaction data on our systems represent what we get through our data feed which depends what institutions make available for aggregation. Many institutions do not provide data for pending transactions; transactions from those accounts always have a status of POSTED.
When we do receive data for pending transactions, a single transaction may be updated from PENDING to POSTED and keep the same guid. This is done through various matching methods performed automatically by MX.
If a single transaction can't be updated, the PENDING transaction will often be deleted and replaced with a new POSTED transaction (with a new guid) when it is sent to us; this is the most common scenario when pending data is available.
In unusual circumstances, there may be separate PENDING and POSTED transactions on MX systems for up to 14 days. All PENDING transactions are deleted after 14 days as a failsafe.
POSTED, PENDING "POSTED"
The type of transaction.
CREDIT, DEBIT "CREDIT"
The base fields for an account. Returned as the account companion on related resources such as transactions, statements, and rewards, and as the foundation of full account responses.
Hide child attributes
Hide child attributes
The account number associated with the account. This will typically be a masked or partial account number.
"3331261"
The type of account. Some account types may include subtypes. For a full list of account types and subtypes, see Account Types.
ANY, CASH, CHECKING, CHECKING_LINE_OF_CREDIT, CREDIT_CARD, LOAN, LINE_OF_CREDIT, SAVINGS, INVESTMENT, MORTGAGE, INSURANCE, PREPAID, PROPERTY "CHECKING"
Unique identifier for the account. Defined by MX.
"ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1"
The unique partner-defined identifier for the account.
"1040434698"
The human-readable name for the account.
"Test account 2"
An alternate name for the account.
"Swiss Account"
The API URI path for the account.
"/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts/ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1"
The base fields for a member, which is a user's connection to an institution. Returned as the member companion on related resources such as accounts and transactions, and as the foundation of full member responses.
Hide child attributes
Hide child attributes
The unique identifier for the member. Defined by MX.
"MBR-7c6f361b-e582-15b6-60c0-358f12466b4b"
The unique partner-defined identifier for the member.
"unique_id"
Additional information you can store about the member.
"some metadata"
The name of the member.
"MX Bank"
The API URI path for the member.
"/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/members/MBR-7c6f361b-e582-15b6-60c0-358f12466b4b"
The base fields for a user. Returned as the user companion on related resources such as members, accounts, and transactions, and as the foundation of full user responses.
Hide child attributes
Hide child attributes
The unique identifier for the user. Defined by MX.
"USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
The unique partner-defined identifier for the user.
"unique_id"
Additional information you can store about the user.
"some metadata"
The API URI path for the user.
"/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
Timestamps for when MX created and last updated the record. Returned as the mx_record companion on all resources persisted by MX. These describe the MX record, not the underlying resource at the institution.
Hide child attributes
Hide child attributes
The date and time the resource was created in MX Platform, represented in ISO 8601 format with a timestamp.
"2025-05-10T18:08:00Z"
The date and time the resource was last updated in MX Platform, represented in ISO 8601 format with a timestamp.
For categories, this field will always be null when is_default is true.
"2026-02-12T22:48:21Z"
Only present when includes[]=category is specified. Null when no category is associated with the transaction.
Hide child attributes
Hide child attributes
The unique identifier for the category. Defined by MX.
"CAT-b6d61a19-30a7-e852-2703-bdfb4072289e"
The name of the category.
"Paycheck"
The parent category assigned to this transaction's category.
"Income"
The API URI path to access the category details.
"/categories/CAT-b6d61a19-30a7-e852-2703-bdfb4072289e"
Only present when includes[]=counterparties is specified. Null when no counterparties are associated with the transaction.
Hide child attributes
Hide child attributes
The confidence level of the counterparty match, represented as "Very High" or "Low".
"Very High"
The unique identifier for the counterparty. Defined by MX.
"MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84"
The URL for a 100px X 100px logo for the counterparty.
"https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png"
The name of the counterparty.
"MX"
The URL for the counterparty's website.
"https://www.example.com"
Only present when includes[]=merchant is specified. Null when no merchant is associated with the transaction.
Hide child attributes
Hide child attributes
The confidence level of the merchant assignment for the transaction, represented as "Very High" or "Low".
"Very High"
The unique identifier for the merchant. Defined by MX.
"MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84"
The URL for a 100px X 100px logo for the merchant.
"https://content.mx.com/logos/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84.png"
The name of the merchant.
"MX"
The API URI path to access the merchant details.
"/merchants/MCH-0c25f895-393c-42a4-9c18-95a0b26d4d84"
URL to the merchant's website.
"https://www.example.com"
Only present when includes[]=repeating_transaction is specified. Null when no repeating transaction is associated with the transaction.
Hide child attributes
Hide child attributes
The frequency at which the transaction is expected to repeat. See Supported Recurrence Types.
EVERY_WEEK, EVERY_OTHER_WEEK, TWICE_A_MONTH, EVERY_MONTH, EVERY_OTHER_MONTH, EVERY_QUARTER, EVERY_OTHER_QUARTER, EVERY_YEAR, UNKNOWN "EVERY_MONTH"
The unique identifier for the repeating transaction. Defined by MX.
"RPT-065b8b1d-826a-45ce-8487-60ca1510e72a"
The API URI path to access the repeating transaction details.
"/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/repeating_transactions/RPT-065b8b1d-826a-45ce-8487-60ca1510e72a"
The type of the repeating transaction.
BILL, SUBSCRIPTION, INCOME, UNKNOWN Hide child attributes
Hide child attributes
The page delivered by the current response.
1
The number of records delivered with each page.
25
The total number of records available.
1
The total number of pages available.
1

