Unofficial MoneyDashboard Neon API


Yesterday, I wrote up how to use the MoneyDashboard Classic API. Read that blog post first before reading this one.

MoneyDashboard have launched a new "Neon" service. The API is a bit more simple, but authentication is harder.

Here's a quick guide to the bits of the API that I found useful. I've lightly redacted some of the API responses for my privacy.

List of all supported institutions

MoneyDashboard only supports a limited number of OpenBanking Institutions. Here's a list:

https://neonapiprod.moneydashboard.com/v1/institutions

JSON JSON{
    "0": {
        "id": "44306c61-9fb9-4221-b4d9-f91cd711f665",
        "name": "AIB (NI)",
        "active": 1,
        "paymentsEnabled": false,
        "logo": "https://media.moneydashboard.com/logos/providers/firsttrust.jpg",
        "isAvailableFeatureFlagName": null,
        "primaryColour": "#7F2B7B"
    }
}

List of the User's Accounts

You can add multiple accounts to MoneyDashboard. Here's a list of everything you've added:

https://neonapiprod.moneydashboard.com/v1/accounts

JSON JSON{
    "0": {
        "cognitoId": "1234",
        "accountId": "4567",
        "providerId": "7891",
        "connectionsUserId": "8910",
        "accountType": "CREDIT_CARD",
        "accountNumber": null,
        "sortCode": null,
        "balance": "-123.45",
        "accountName": "Platinum Cashback Credit Card",
        "currency": "GBP",
        "description": null,
        "logo": "https://media.moneydashboard.com/logos/providers/amex.jpg",
        "providerName": "American Express",
        "primaryColour": "#016FD0",
        "created": "2020-09-13T12:34:56.533+00:00",
        "lastUpdateSuccess": null,
        "lastUpdateAttempt": null,
        "deactivated": null,
        "alias": "Platinum Cashback Credit Card",
        "lastRefreshStatus": 0,
        "paymentsEnabled": false,
        "isOffline": false,
        "tokenCreatedDate": "2020-09-13T12:34:56.533+00:00",
        "tokenRefreshDate": "2020-09-13T12:34:56.533+00:00",
        "tokenExpiryDate": null
    }
}

BABS - Balance After Bills

MoneyDashboard can predict what your balance is after bills:

https://neonapiprod.moneydashboard.com/v1/analytics/babs

JSON JSON{
    "babs": -1234.56,
    "predictedBalance": -2345.67,
    "unpaidSeries": 0,
    "dailyFlexSpend": 50.99,
    "daysRemaining": 19,
    "daysElapsed": 0,
    "predictedSpending": 123.45
}

Transactions

A full list of every transaction you've made - including tags:

https://neonapiprod.moneydashboard.com/v1/transactions/filter

JSON JSON{
    "6": {
        "id": "ABCDEFG",
        "created": "2020-10-03T00:00:00",
        "accountId": "4567",
        "customerId": "7891",
        "isPredicted": false,
        "providerTransactionId": null,
        "amount": {
            "amount": 168.35,
            "currency": "GBP"
        },
        "sourceAmount": {
            "amount": 168.35,
            "currency": "GBP"
        },
        "status": "Booked",
        "deactivated": null,
        "type": "Debit",
        "description": "MORRISONS               BRADFORD",
        "seriesId": null,
        "savedDate": "2020-10-13T12:20:23.176183",
        "merchant": "Morrisons Supermarket",
        "transactionBatchId": "ABC123",
        "excludeFromSpendCalculations": false,
        "originalTransactionDate": "2020-10-03T00:00:00",
        "originalTransactionDescription": "MORRISONS               BRADFORD",
        "ProprietaryProviderDetails": null,
        "categorisation": [
            {
                "id": 324978238,
                "certainty": 100,
                "source": "CategorisationService",
                "tag": "Supermarket",
                "level": 2,
                "created": "2020-10-13T12:20:33.678358"
            },
            {
                "id": 324978239,
                "certainty": 100,
                "source": "CategorisationService",
                "tag": "Groceries",
                "level": 1,
                "created": "2020-10-13T12:20:33.678356"
            }
        ],
        "bookedTransactionId": null,
        "merchantLogo": "https://media.moneydashboard.com/logos/merchants/morrisons_supermarket.png"
    }
}

Categories

Get your spending broken down by category. For example, how much do you spend on takeaways?

There are some weird JSON handling of floating point numbers in here. Beware!

https://neonapiprod.moneydashboard.com/v1/analytics/spend/category

JSON JSON{
    "1": {
        "categoryName": "Eating Out",
        "amount": 76.29666666666667,
        "transactionCount": 8,
        "transactions": [
            {
                "id": "ABCDEFG123793",
                "created": "2020-07-22T00:00:00",
                "accountId": "4567",

                "customerId": "7891",
                "isPredicted": false,
                "providerTransactionId": null,
                "amount": {
                    "amount": 22.47,
                    "currency": "GBP"
                },
                "sourceAmount": {
                    "amount": 22.47,
                    "currency": "GBP"
                },
                "status": "Booked",
                "type": "Debit",
                "description": "JUST EAT.CO.UK LTD      LONDON",
                "seriesId": null,
                "merchant": "Just Eat",
                "merchantLogo": "https://media.moneydashboard.com/logos/merchants/just_eat.png",
                "deactivated": null,
                "savedDate": "2020-10-13T12:20:23.176338",
                "ProprietaryProviderDetails": null,
                "categorisation": [
                    {
                        "id": 324978297,
                        "certainty": 100,
                        "source": "CategorisationService",
                        "tag": "Takeaway",
                        "level": 2,
                        "created": "2020-10-13T12:20:33.679618"
                    },
                    {
                        "id": 324978298,
                        "certainty": 100,
                        "source": "CategorisationService",
                        "tag": "Eating Out",
                        "level": 1,
                        "created": "2020-10-13T12:20:33.679617"
                    }
                ]
            }
        ],
        "cycleStartDate": "2020-06-01T00:00:00Z",
        "cycleEndDate": "2020-08-31T00:00:00Z"
    }
}

Authentication

OK, this is where it gets horrible and I get confused. MoneyDashboard uses Amazon Cognito. It does a complex authentication dance, passing along lots of different SRP_A tokens until, eventually, it gives you an IdToken. You can grab that by opening Developer Tools in your browsers. It will be a very long string.

You need to pass this as an x-auth header in your request, like so:

curl 'https://neonapiprod.moneydashboard.com/v1/accounts'\
 -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0'\
 -H 'Accept: */*'\
 -H 'Accept-Language: en-GB,en;q=0.5'\
 --compressed -H\
 'Referer: https://app.moneydashboard.com/'\
 -H 'x-auth: aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890'\
 -H 'Cache-Control: no-cache, no-store, must-revalidate'\
 -H 'Pragma: no-cache'\
 -H 'Expires: 0'\
 -H 'Origin: https://app.moneydashboard.com'\
 -H 'DNT: 1'\
 -H 'Connection: keep-alive'\
 -H 'TE: Trailers'

I don't know of any easy way to automated getting the token from your own username and password.

Sign Up Today.

Good luck!


Share this post on…

  • Mastodon
  • Facebook
  • LinkedIn
  • BlueSky
  • Threads
  • Reddit
  • HackerNews
  • Lobsters
  • WhatsApp
  • Telegram

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">