Introduction

Now that you’ve gone through the process of creating a user, a member, and aggregating data, it’s time to actually get a look at the account and transaction data that has been gathered. This is, after all, some of the most important information provided through the MX API.

Accessing this data is relatively simple compared to the process of actually gathering it, so this guide will be pretty short.


1. List Account Data

Let’s get a list of all the account data associated with your user.

You can see in the example below that the user has 21 accounts associated with it. If you look at the type field, you’ll see there is a checking account, a savings account, a credit card account, and several others. You’ll also see that there is information on the balance of each account, APY for credit accounts, payment due days, and a lot more. You won’t always get values for every field; that depends on the data provider and the information available from the financial institution in question.

Make a note of the account GUID for the checking account associated with our test member: ACT-8e6f92c8-1491-42ce-8bf6-c309e9531530. We’ll need this to list all the transactions associated with the account.

Endpoint:

GET /users/{user_guid}/accounts

1
2
3
curl -i 'https://int-api.mx.com/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts' \
-u 'client_id:api_key' \
-H 'Accept: application/vnd.mx.api.v1+json'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{
    "accounts": [
      {
        "account_number": "708191771",
        "apr": null,
        "apy": null,
        "available_balance": 1000,
        "available_credit": null,
        "balance": 1000,
        "cash_balance": null,
        "cash_surrender_value": null,
        "created_at": "2020-09-21T19:43:44Z",
        "credit_limit": null,
        "currency_code": null,
        "day_payment_is_due": null,
        "death_benefit": null,
        "guid": "ACT-8e6f92c8-1491-42ce-8bf6-c309e9531530",
        "holdings_value": null,
        "id": "act-223434333",
        "institution_code": "mxbank",
        "interest_rate": null,
        "is_closed": false,
        "is_hidden": false,
        "last_payment": null,
        "last_payment_at": null,
        "loan_amount": null,
        "matures_on": null,
        "member_guid": "MBR-84ca0882-ad6c-4f10-817f-c8c0de7424fa",
        "minimum_balance": null,
        "minimum_payment": null,
        "name": "Checking",
        "original_balance": null,
        "payment_due_at": null,
        "payoff_balance": null,
        "started_on": null,
        "subtype": null,
        "total_account_value": null,
        "type": "CHECKING",
        "updated_at": "2020-09-21T19:52:04Z",
        "user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
      },
        •••
    ],
    "pagination": {
        "current_page": 1,
        "per_page": 25,
        "total_entries": 21,
        "total_pages": 1
    }
}

2. List transaction data for an account

With the account GUID you found in the last step, make a request to list the transactions for the account.

Endpoint:

GET /users/{user_guid}/accounts/{account_guid}/transactions

1
2
3
curl -i 'https://int-api.mx.com/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts/ACT-8e6f92c8-1491-42ce-8bf6-c309e9531530/transactions' \
-u 'client_id:api_key' \
-H 'Accept: application/vnd.mx.api.v1+json'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
  "transactions": [
    {
      "category": "Gas",
      "category_guid": "CAT-b6d63a19-30a7-e852-2703-bdfb4072289e",
      "created_at": "2020-09-21T19:43:48Z",
      "date": "2020-09-21",
      "posted_at": "2020-09-22T12:00:00Z",
      "status": "POSTED",
      "top_level_category": "Auto & Transport",
      "transacted_at": "2020-09-21T12:00:00Z",
      "type": "DEBIT",
      "updated_at": "2020-09-21T19:43:51Z",
      "account_guid": "ACT-8e6f92c8-1491-42ce-8bf6-c309e9531530",
      "amount": 7.29,
      "check_number_string": null,
      "currency_code": "USD",
      "description": "ExxonMobil",
      "guid": "TRN-822b443e-972c-431e-8dcf-c2b08de21136",
      "is_bill_pay": false,
      "is_direct_deposit": false,
      "is_expense": true,
      "is_fee": false,
      "is_income": false,
      "is_international": null,
      "is_overdraft_fee": false,
      "is_payroll_advance": false,
      "latitude": null,
      "localized_description": null,
      "localized_memo": null,
      "longitude": null,
      "member_guid": "MBR-84ca0882-ad6c-4f10-817f-c8c0de7424fa",
      "memo": null,
      "merchant_category_code": 0,
      "merchant_guid": "MCH-dcd9bbcd-11bb-076a-60c4-90f1101b3372",
      "original_description": "ExxonMobil",
      "user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
    },
    •••
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 25,
    "total_entries": 176,
    "total_pages": 8
  }
}

Notice from the pagination object that there are 176 transactions in this account and that the endpoint returned the first 25 of these. You can access the rest of the transactions by making another request and specifying the number of records you want to access (valid values range between 10 and 100) and/or specifying the page you’d like to see. You can pass these parameters in the request URL to endpoint.

Endpoint:

GET /users/{user_guid}/accounts/{account_guid}/transactions?records_per_page={value}&page={value}

1
2
3
curl -i 'https://int-api.mx.com/users/USR-11141024-90b3-1bce-cac9-c06ced52ab4c/accounts/ACT-8e6f92c8-1491-42ce-8bf6-c309e9531530/transactions?records_per_page=100&page=2' \
-u 'client_id:api_key' \
-H 'Accept: application/vnd.mx.api.v1+json'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
  "transactions": [
    {
      "category": "Paycheck",
      "category_guid": "CAT-982ea9e6-3f0e-0c5b-611b-6657a10ba819",
      "created_at": "2020-09-21T19:43:48Z",
      "date": "2020-07-31",
      "posted_at": "2020-08-01T12:00:00Z",
      "status": "POSTED",
      "top_level_category": "Income",
      "transacted_at": "2020-07-31T12:00:00Z",
      "type": "CREDIT",
      "updated_at": "2020-09-21T19:43:51Z",
      "account_guid": "ACT-8e6f92c8-1491-42ce-8bf6-c309e9531530",
      "amount": 23.57,
      "check_number_string": null,
      "currency_code": "USD",
      "description": "Paycheck",
      "guid": "TRN-27b176b7-5941-42a4-8085-cfa6657f6dff",
      "is_bill_pay": false,
      "is_direct_deposit": false,
      "is_expense": false,
      "is_fee": false,
      "is_income": true,
      "is_international": null,
      "is_overdraft_fee": false,
      "is_payroll_advance": false,
      "latitude": null,
      "localized_description": null,
      "localized_memo": null,
      "longitude": null,
      "member_guid": "MBR-84ca0882-ad6c-4f10-817f-c8c0de7424fa",
      "memo": null,
      "merchant_category_code": 0,
      "merchant_guid": null,
      "original_description": "Payroll",
      "user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
    },
    •••
  ],
  "pagination": {
    "current_page": 2,
    "per_page": 100,
    "total_entries": 176,
    "total_pages": 2
  }
}

The pagination object now shows 100 records per page and a current page of 2.

There are several other endpoints that can give you access to transaction data: list transactions by user and list transactions by member. These work in the same way as the list transactions by account endpoint described above.


Next Steps

Now that you’ve seen the account and transaction data you’ve aggregated, you can explore other features of the API like accessing investment data, using premium features like account identification and verification, and a whole lot more.