<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>banking &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/banking/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Thu, 19 Mar 2026 09:30:55 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>banking &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Who is responsible for missing money?]]></title>
		<link>https://shkspr.mobi/blog/2025/04/who-is-responsible-for-missing-money/</link>
					<comments>https://shkspr.mobi/blog/2025/04/who-is-responsible-for-missing-money/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 29 Apr 2025 11:34:02 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[banks]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[new zealand]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=60433</guid>

					<description><![CDATA[I have a simple rule of thumb when it comes to news reports. The real story is always in the penultimate paragraph.  Let&#039;s look at this inflammatory headline:  Woman’s &#039;spree&#039; after $158k banking error, refuses to return pensioner’s life savings An Auckland beneficiary is under investigation for an alleged “spending spree” after $158,000 was mistakenly transferred to her account.  […] pensioner lo…]]></description>
										<content:encoded><![CDATA[<p>I have a simple rule of thumb when it comes to news reports. The <em>real</em> story is always in the penultimate paragraph.</p>

<p>Let's look at this inflammatory headline:</p>

<blockquote><h2 id="womans-spree-after-158k-banking-error-refuses-to-return-pensioners-life-savings"><a href="https://shkspr.mobi/blog/2025/04/who-is-responsible-for-missing-money/#womans-spree-after-158k-banking-error-refuses-to-return-pensioners-life-savings">Woman’s 'spree' after $158k banking error, refuses to return pensioner’s life savings</a></h2>
<p>An Auckland beneficiary is under investigation for an alleged “spending spree” after $158,000 was mistakenly transferred to her account.
</p><p> […] pensioner lost his life savings due to an account number error.
</p><p>The account number provided to Westpac had only 15 digits, not the intended 16, so Westpac added a zero to the suffice [sic] as per its usual protocols.
</p><p><a href="https://www.newstalkzb.co.nz/news/national/auckland-pensioner-loses-158k-after-accidentally-sending-life-savings-to-wrong-account/">Newstalk ZB</a>
</p></blockquote>

<p>Wow! That seems pretty bad. Obviously the woman who allegedly received the money and then spent it shouldn't have done that. Spending money that doesn't belong to you is a crime in most parts of the world.  But let's focus on the <em>real</em> villain here - the evil bank!!</p>

<p>Why did the bank make the decision to add an extra digit to the recipient's account number?</p>

<p>An <a href="https://en.wikipedia.org/wiki/New_Zealand_bank_account_number">NZ bank account number</a> looks like <code>BB-bbbb-AAAAAAA-SSS</code>.</p>

<p>The <a href="https://www.paymentsnz.co.nz/resources/industry-registers/bank-branch-register/">first two digits are the banking institution and the next four are the specific branch</a>. The seven digit account number relates to the <em>specific</em> account. The three digit suffix is for the <em>type</em> of account. For example, your spending account might have suffix <code>001</code> and your savings account might have suffix <code>099</code>.</p>

<p>However, because all suffices have a leading zero, <a href="https://www.kiwibank.co.nz/help/accounts/open-manage/account-numbers/">it is often only displayed as two</a>.</p>

<p>So, adding an extra zero to the suffix itself shouldn't have caused a problem. It would have gone to the correct recipient although it might have either gone to the wrong sub-account.  Indeed, WestPac's help page on international transfers says "<a href="https://www.westpac.co.nz/foreign-exchange/send-money-to-or-from-overseas/#sending-money-from-overseas">if your account suffix is 12, enter 012</a>".  It sounds like the journalist hasn't quite understood where the insertion happened.</p>

<p>It seems likely to me that the victim meant to type <code>1234567-001</code> but missed a digit, causing WestPac to shift things to <code>1235670-01</code>. That's poorly formatted but technically valid.</p>

<p>But, wait! Don't bank account numbers have checksums? Yes!  According to NZ's internal revenue, all bank account numbers have a check-digit. However, when checking an account number's validity:</p>

<blockquote><p>If less than the maximum number of digits is supplied, then values are right justified and the fields padded with zeroes</p>

<p><a href="https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08-522c62d94dd6/rwt-nrwt-spec-2016.pdf">Bank account number validation</a></p></blockquote>

<p>Having played around with the algorithm, the first few digits of the account number aren't included in the checksum validation. For example, the account number <code>1234567</code> and <code>0234567</code> both pass checksumming. So it is possible that padding the <em>start</em> of the string wouldn't have been picked up.</p>

<p>Whatever the underlying issue, it is distressing to hear of someone losing a significant amount of money.</p>

<h2 id="what-could-have-stopped-this"><a href="https://shkspr.mobi/blog/2025/04/who-is-responsible-for-missing-money/#what-could-have-stopped-this">What could have stopped this?</a></h2>

<p>Humans make mistakes. As an industry, we know this. It's our job to prevent, rectify, and neutralise those mistake.  We need systems in place which reduce the likelihood of errors causing catastrophic failures.</p>

<p>Here are some systemic changes which could have prevented this:</p>

<ol>
<li>New Zealand could adopt the IBAN standard for international transfers.

<ul>
<li><a href="https://www.bnz.co.nz/support/international/payments/made-to-new-zealand">They don't seem keen on doing this</a>.</li>
<li>It wouldn't prevent mistyping, but a standardised length makes transferring to the wrong account less likely.</li>
</ul></li>
<li>Confirmation of Payee asks the user to type in the name of the intended recipient. If it doesn't match the bank account, the payment is rejected or cautioned against.

<ul>
<li><a href="https://www.getverified.co.nz/">NZ <em>is</em> rolling out CoP</a> but it doesn't yet apply to international transfers.</li>
<li>Multi-lingual CoP is complex. I don't know if any cross-border payments do this yet.</li>
</ul></li>
<li>WestPac should have noticed the name discrepancy.

<ul>
<li>This is the argument I have the most sympathy with.</li>
<li>Of course, returning the money (especially to a closed account) may be difficult.</li>
</ul></li>
</ol>

<p>Large systems changes are expensive and time consuming.</p>

<p>What else could have been done? Let's go to the final few sentences of the story:</p>

<blockquote><p>Unfortunately, the incorrect bank account number <em>provided by Che</em> was a valid account number for another customer, Westpac said.
</p><p>“As soon as Mr Che alerted us to the issue, we traced the payment and froze the remaining funds.”
</p><p>But Westpac was unable to recover the rest of Che’s money due to the <em>seven-week delay in reporting his error</em> to the banks.
</p><p><small>Emphasis added</small></p></blockquote>

<p>I'm not trying to victim blame here, but WestPac seem to have done what was asked for them. The sender provided an ambiguous bank account number which was, nevertheless, valid.</p>

<p>The sender didn't raise an issue for <strong>seven weeks</strong>. Once notified, the bank froze the recipient account and notified the police.</p>

<p>Yes, big evil banks should be less evil. But they're in a tough spot. People want protection, <a href="https://shkspr.mobi/blog/2023/03/who-can-tell-you-what-to-do-with-your-money/">but they resent banks telling them what they can and can't do with their own money</a>. Big systemic change is difficult but it seems crushingly unfair when an innocent party is caught in the middle.</p>

<p>I don't think anyone comes out of this covered in glory. Banks need to invest in technology which keeps their customers safe. Customers need to take some responsibility for checking whether a bank has done the right thing.</p>

<p>The only tips I can give is that you must always copy &amp; paste financial details from a trusted source, rather than manually type them in. Always send a small amount first to check it is received. If you suspect a mistake, contact your bank immediately.</p>

<p>Stay safe out there.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=60433&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/04/who-is-responsible-for-missing-money/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[What's the best way to protect banking apps on Android?]]></title>
		<link>https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/</link>
					<comments>https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 29 Dec 2024 12:34:26 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[GrapheneOS]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=55137</guid>

					<description><![CDATA[Lots of people using banking apps on their Android phones.  They&#039;re a convenient way to check your balance, transfer money to people, and get alerts about fraudulent transactions. But, like anything related to money, they can be abused.  Nowadays, thieves are not only snatching phones, but forcing their owners to transfer money to the thieves. This is not an isolated incident.  How can you…]]></description>
										<content:encoded><![CDATA[<p>Lots of people using banking apps on their Android phones<sup id="fnref:smug"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fn:smug" class="footnote-ref" title="&quot;Not me,&quot; you say smugly. &quot;I am far superior to the sheeple. If I want to connect to my bank, I just SSH in to a bespoke firewalled box that runs a disposable Docker image which connect to TOR.&quot; You…" role="doc-noteref">0</a></sup>.  They're a convenient way to check your balance, transfer money to people, and get alerts about fraudulent transactions. But, like anything related to money, they can be abused.</p>

<p>Nowadays, thieves are not only snatching phones, but <a href="https://www.reddit.com/r/UKPersonalFinance/comments/12bl2rf/forced_to_transfer_money_to_muggers/">forcing their owners to transfer money to the thieves</a>. This is not an isolated incident<sup id="fnref:see"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fn:see" class="footnote-ref" title="See also Bank and phone lessons learned after a robbery and I was robbed and forced to transfer money from my banking app." role="doc-noteref">1</a></sup>.</p>

<p>How can you protect yourself from such a situation<sup id="fnref:state"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fn:state" class="footnote-ref" title="Here we're mostly concerned with street theft. If you are the target of state-sponsored violence, or the police are searching your phone, then you may have a different threat model. If you think that…" role="doc-noteref">2</a></sup>?</p>

<p>Broadly speaking, there are four ways to protect your sensitive apps.  Relying on the regular lockscreen, hiding the apps, using a Private Space, or placing the apps in different profile.  Let's look at the advantages and disadvantages of each approach.</p>

<h2 id="regular-lockscreen"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#regular-lockscreen">Regular Lockscreen</a></h2>

<p>Android's lockscreen controls are pretty good - <em>if</em> you turn them on.</p>

<p>Perhaps you have a super-long and complicated password. Maybe a 10 digit PIN that only you know. Biometrics like facial recognition and fingerprints are reasonably strong and fairly convenient.</p>

<p>But that relies on your phone being locked when it is snatched. If you're using your phone when it is taken from you, <a href="https://www.theverge.com/2024/5/15/24157068/android-15-ai-theft-detection-lock-privacy-security">the lockscreen <em>might</em> detect it and lock automatically</a>, but you need a modern device and to have specifically enabled the setting.</p>

<p>If a thief has shoulder-surfed your 4 digit PIN, that will be enough to let them enter your phone.</p>

<p>But here we are concerned with someone threatening you. Basically, if someone has a knife pointed at you, you're probably going to unlock the phone for them<sup id="fnref:palm"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fn:palm" class="footnote-ref" title="Yes, I know that your self-defence training is impressive, but handing over your unlocked phone is a lot preferable to getting punctured." role="doc-noteref">3</a></sup>. So, let's assume we want to protect our banking apps from someone who has access to your <em>unlocked</em> device.</p>

<h2 id="launcher-hiding"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#launcher-hiding">Launcher Hiding</a></h2>

<p>Some Android phones <a href="https://www.geeksforgeeks.org/how-to-hide-apps-on-an-android-phone/">let you hide apps</a>. When an attacker is scrolling through the list of installed apps, they won't be able to see any apps which are hidden.</p>

<p>This, I think, is a reasonable way to hide your banking apps. You can show the thug that there aren't any installed. That may or may not be enough to mollify them.  They might still nick your device, but you won't be forced to transfer your savings elsewhere.</p>

<p>This, of course, presents a problem for the regular user. How do <em>you</em> launch your apps if you can't find them?  Most launchers will let you type in the name of the app to find it - the app is merely hidden from the default list.</p>

<p>So an attacker would have to try typing "HSBC" or "Barclays" or "Chase" or a dozen different names until they find your app.  Will they be angry if you've lied to them?  Is that a risk you want to take?</p>

<p>Some launchers will let you change the name and icon of your sensitive apps. You can rename "Midland Bank" to "Calculator" and change its icon.  Not every launcher supports this sort of hiding though. It also places a cognitive load on you that you need to remember what you've hidden your apps as. Will you remember than Bank 1 is calendar and Bank 2 is Bumble?</p>

<h2 id="private-space"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#private-space">Private Space</a></h2>

<p>Android 15 has introduced the concept of a <a href="https://support.google.com/android/answer/15341885?hl=en">Private Space</a>. It is like a digital lock-box for your apps. If someone has your unlocked phone, they need to pass through authentication in order to use apps which are locked.</p>

<p>There are two main drawbacks with this approach.</p>

<p>Firstly, locked apps don't run in the background. That means you won't get alerts from them. If you rely on push notifications to tell you if someone is using your card fraudulently, this could be a problem.</p>

<p>Secondly, the Private Space shows up at the bottom of your app list like this:</p>

<p></p><div style="width: 230px;" class="wp-video"><video class="wp-video-shortcode" id="video-55137-2" width="230" height="512" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2024/12/private-space.mp4?_=2"><a href="https://shkspr.mobi/blog/wp-content/uploads/2024/12/private-space.mp4">https://shkspr.mobi/blog/wp-content/uploads/2024/12/private-space.mp4</a></video></div><p></p>

<p>So an attacker can easily see it and demand that you open it up.  You can set the Private Space to be hidden. But then you're in the same position as above - typing in "private space" will show it in your launcher.</p>

<h2 id="work-profile"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#work-profile">Work Profile</a></h2>

<p>Android has the concept of "<a href="https://support.google.com/work/android/answer/6191949?hl=en">Work Profiles</a>". They're designed to segregate your work apps and your personal apps. Your work admin can wipe your work profile without touching your personal stuff, and you can't copy confidential emails to your personal area. Nifty!</p>

<p>If you don't have work apps on your phone, you can use an app like <a href="https://f-droid.org/packages/net.typeblog.shelter/">Shelter</a> to make your own Work Profile.</p>

<p>You can stick your banking apps in the Work Profile and have them locked away from prying eyes.</p>

<p>The Work Profile button is more subtle than the Private Space.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/12/workprofile-fs8.png" alt="Work Profile in the quick settings bar." width="485" height="524" class="aligncenter size-full wp-image-55141">

<p>But it still has the disadvantage that, once locked, the apps are suspended and won't receive any alerts.</p>

<h2 id="secondary-profile"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#secondary-profile">Secondary Profile</a></h2>

<p>Finally, modern versions of Android support <a href="https://support.google.com/android/answer/2865483?hl=en">multiple profiles</a>. They're generally designed so that multiple people can use your device - but there's nothing stopping you from putting your banking apps in there.</p>

<p>The immediate advantages of multi-user profiles are:</p>

<ul>
<li>The profile can be protected by a separate password.</li>
<li>The profile switcher is generally more subtle than the Work Profile switcher or Private Space toggle.</li>
<li>Apps can run in the background while in a separate profile.</li>
</ul>

<p>The disadvantage is that, because it is a completely separate profile, you'll need to sign in again using your Google account in order to install apps from the Play store. If you use a password manager and MFA app, you may need to install them in both your main and secondary profile.</p>

<p>Because the apps can run in the background, there may be some (minor) impact on battery life - you're effectively running Google's Notifications Service twice.</p>

<p>If you are being held at knifepoint and a notification from your bank comes through - you may find it socially awkward to explain.</p>

<h2 id="which-is-right-for-me"><a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#which-is-right-for-me">Which is right for me?</a></h2>

<p>It is complicated. I think I can distil it down to the following:</p>

<ul>
<li>If you need alerts from your banking apps - put them in a secondary profile.</li>
<li>There are <a href="https://www.reddit.com/r/GooglePixel/comments/1g5v3b8/private_space_is_kinda_useless_what_do_you_use_it/lsmhz34/">some reports of banking apps not working in secondary profiles</a> - if yours don't work in a profile then hiding apps is your best defence.</li>
<li>If you're not using Work Mode and don't need alerts - put them in Work Mode.</li>
<li>If you're using Work Mode and don't need alerts - put them in a Private Space and set the space to be hidden.</li>
</ul>

<p>Remember, you can't fling <a href="https://utcc.utoronto.ca/~cks/space/blog/tech/SocialProblemsAndTechnicalDecisions">technical solutions at social problems</a> and expect them to solve everything.  In general, <a href="https://www.ons.gov.uk/peoplepopulationandcommunity/crimeandjustice/bulletins/crimeinenglandandwales/yearendingjune2024">crime in England and Wales is at its lowest level</a> but certain crimes, like phone theft, are on the rise. Despite all the technology thrown at the problem, people are still walking around holding machines worth hundreds of pounds. Each of those machines is a gateway to potentially thousands of pounds. Phones and banking apps are incredibly lucrative targets.</p>

<p>The aim of this exercise isn't to solve the problem of crime. It isn't even to make you a less attractive target. It is to allow you to hand over your phone safe in the knowledge that your banking apps are <em>somewhat</em> protected from miscreants while still being useful to you.</p>

<p>If you have any tips on how to keep banking apps hidden, please leave a comment.</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:smug">
<p>"Not me," you say smugly. "I am far superior to the sheeple. If I want to connect to my bank, I just SSH in to a bespoke firewalled box that runs a disposable Docker image which connect to TOR."  You continue, indifferent to the exasperated sighs of the waitress  "Of course, I only use GNU/Linux on my phones, have you heard of it? I don't even trust password managers! I have my own algorithm for generating passwords using dice. I have some nifty D20s if you wanna see them? Sure beats having a <strong>CR</strong>app on my phone! If I want to transfer someone money I generate a new seed phrase for my Bitcoin wallet and then… say, do you take crypto here?"  The waitress contemplates stabbing you with a fish-knife but, instead, politely replies "If you don't want to leave a tip, sir, that's OK." She makes the mistake of smiling, which you misinterpret as a flirtatious gesture. You torrented a whole bunch of books about social interactions with girls and yet, somehow, failed to understand any of them. You try negging her. That's bound to work. "Of course, you're probably the sort of girl who uses an iPhone or as I call them…" before you can chuckle about normies running iDrones the waitress has turned and walked away. Bitch. Still, at least you don't have any banking apps on your phone. That makes you better than most people.&nbsp;<a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fnref:smug" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:see">
<p>See also <a href="https://www.reddit.com/r/UKPersonalFinance/comments/11nmyyz/bank_and_phone_lessons_learned_after_a_robbery/">Bank and phone lessons learned after a robbery</a> and <a href="https://www.reddit.com/r/UKPersonalFinance/comments/1clqlxd/i_was_robbed_and_forced_to_transfer_money_from_my/">I was robbed and forced to transfer money from my banking app</a>.&nbsp;<a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fnref:see" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:state">
<p>Here we're mostly concerned with street theft. If you are the target of state-sponsored violence, or the police are searching your phone, then you may have a different threat model. If you think that your snarky posts on your three-subscriber Substack about "lamestream media" and "Micro$oft" make you a target for the CIA, please go outside and run around in the fresh air for a bit.&nbsp;<a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fnref:state" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:palm">
<p>Yes, I know that <a href="https://forums.somethingawful.com/showthread.php?threadid=3742916">your self-defence training is impressive</a>, but handing over your unlocked phone is a lot preferable to getting punctured.&nbsp;<a href="https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/#fnref:palm" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=55137&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/12/whats-the-best-way-to-protect-banking-apps-on-android/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2024/12/private-space.mp4" length="169206" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[How much money do banks owe you if you're scammed?]]></title>
		<link>https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/</link>
					<comments>https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 05 Sep 2024 11:34:52 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[money]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=52923</guid>

					<description><![CDATA[There&#039;s currently an open consultation about whether banks should have a lower compensation limit to refund their customers who have been scammed.  Currently, if a customer falls for an Authorised Push Payment (APP) scam, they may be eligible for up to £415,000 back from their bank. The proposal is to limit this to a maximum of £85,000.  What does this mean and is it a bad thing?  APP fraud is w…]]></description>
										<content:encoded><![CDATA[<p>There's currently <a href="https://www.psr.org.uk/cp24-11-app-scams-reimbursement-maximum-level/">an open consultation about whether banks should have a lower compensation limit</a> to refund their customers who have been scammed.</p>

<p>Currently, if a customer falls for an Authorised Push Payment (APP) scam, they may be eligible for up to £415,000 back from their bank. The proposal is to limit this to a maximum of £85,000.</p>

<h2 id="what-does-this-mean-and-is-it-a-bad-thing"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#what-does-this-mean-and-is-it-a-bad-thing">What does this mean and is it a bad thing?</a></h2>

<p>APP fraud is when a fraudster convinces you to send them money. This isn't about a bank being tricked, or identity theft, or robbers storming the building. It can be as simple as someone sending you a text saying "You owe HMRC £10,000 - please send it to ...". Or it can be as complex as someone sending you a fake email, supposedly from your solicitor, saying "Our bank details have changed. Please send your mortgage deposit to..." In some cases, it can be scammers building up a fake dating profile, or fake investment account, or similar.</p>

<p>Whatever the reason, you were scammed. You sent money to a scammer. Now you would like it back. Please.</p>

<h2 id="how-bad-is-the-situation"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#how-bad-is-the-situation">How bad is the situation</a></h2>

<p>The payment systems regulator have very detailed report about the state of APP fraud. It says:</p>

<blockquote><p>Based on data provided by the 14 largest banking groups […] £341 million was lost to APP scams in 2023</p>

<p><a href="https://www.psr.org.uk/media/uaag25pp/app-fraud-publication-jul-2024-v6.pdf">Authorised push payment (APP) scams performance report July 2024</a></p></blockquote>

<p>Yikes! That's a lot of money. They estimate 252,626 fraudulent transactions. I don't know if that's 252k <em>victims</em> or total transactions.</p>

<p>How much do people actually lose though?</p>

<blockquote><p>2% of cases were higher value scams with losses over £10,000. […] Lower value scams involving sums of under £1,000 accounted for over 80% of all APP scam cases sent in 2023.</p></blockquote>

<p>Here's the data in handy tabular form:</p>

<table>
<thead>
<tr>
  <th align="center">Value</th>
  <th align="center">Volume</th>
  <th align="center">Share</th>
  <th align="center">Total Value</th>
  <th align="center">Share</th>
  <th align="right">Mean Value<br>per Scam</th>
</tr>
</thead>
<tbody>
<tr>
  <td align="center">&lt;£1,000</td>
  <td align="center">207,654</td>
  <td align="center">82%</td>
  <td align="center">£45,418,531</td>
  <td align="center">14%</td>
  <td align="right">£218</td>
</tr>
<tr>
  <td align="center">£1,000 - £10,000</td>
  <td align="center">38,938</td>
  <td align="center">15%</td>
  <td align="center">£115,059,584</td>
  <td align="center">34%</td>
  <td align="right">£2,955</td>
</tr>
<tr>
  <td align="center">&gt;£10,000</td>
  <td align="center">5,610</td>
  <td align="center">2%</td>
  <td align="center">£175,090,459</td>
  <td align="center">52%</td>
  <td align="right">£31,210</td>
</tr>
</tbody>
</table>

<p>An astonishing 2% of cases make up 52% of losses!</p>

<p>In the <a href="https://www.psr.org.uk/news-and-updates/latest-news/news/psr-confirms-implementation-date-for-app-scam-protections-as-7-october-and-publishes-high-value-app-scams-review-and-consultation/">consultation briefing</a> they mention that more than 400 cases of APP scams were over the proposed £85k limit, with roughly 18 being over the current £415k limit.</p>

<p>If those 18 were all, say, £500k - that would be about 2.7% of the total value!</p>

<p>If we assume the ones over £85k were worth on average £100k each, the total value of &gt;£85k fraud is worth about £49 million. Approximately 15% of the total amount scammed from people. That's bonkers! 0.2% of fraudulent cases costing 15%.</p>

<h2 id="would-a-lower-limit-make-a-much-of-a-difference-to-customers"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#would-a-lower-limit-make-a-much-of-a-difference-to-customers">Would a lower limit make a much of a difference to customers?</a></h2>

<p>For the vast majority of customers, lowering the limit would make no difference.</p>

<p>But take a look at these two statistics:</p>

<blockquote><p>In 2023, 67% of the money lost to APP scams was reimbursed.</p>

<p>In 2023, 80% of reported APP scam cases were fully or partially reimbursed.</p></blockquote>

<p>Frustratingly, the data aren't broken down further. While it shows that some banks provide a full refund in over 90% of cases, there's no information on whether those were all low value scams.</p>

<p>It could be argued that having a lower absolute limit, but higher enforcement, would be better for customers in aggregate.</p>

<p>Wouldn't it be better to have a greater number of scam cases refunded - even if it meant some high value scams got nothing? Or to have even more of the total refunded - but have a tiny amount of people lose out?</p>

<p>Hell, you could lower the limit to £10k and easily afford to give 97% of victims a 100% refund.</p>

<p>Would that be worth it? It has a certain utilitarian charm - but perhaps isn't acceptable.</p>

<h2 id="what-are-the-downsides-of-keeping-a-higher-limit"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#what-are-the-downsides-of-keeping-a-higher-limit">What are the downsides of keeping a higher limit?</a></h2>

<p>There's a comprehensive <a href="https://www.psr.org.uk/media/ycpd2ogg/ps23-3-annex-4-cost-benefit-analysis-june-2023.pdf">cost benefit analysis</a> from last year, which contains several comments from banks.</p>

<p>Briefly, there arguments against a higher limit are:</p>

<ul>
<li>Only 5% of fraudulent funds are recovered - so there is a huge cost to the banks and their customers.</li>
<li>Increasing friction might stop some fraud, but would annoy and disrupt customers performing legitimate transfers.</li>
<li>Banks might be tempted to refuse the custom of vulnerable people.</li>
<li>There's a "moral hazard" in letting people know they'll always be refunded; they'll take fewer precautions.</li>
</ul>

<p>Frankly, I find it hard to disagree with those arguments. Compensation is expensive - and that ultimately gets passed on to all customers. It <em>is</em> annoying when I have to jump through hoops to make a normal payment. Here's a story about <a href="https://www.theguardian.com/money/article/2024/aug/17/bank-blocks-cash-transfer-ai-scam-fraud">how a bank refused a legitimate transaction</a> saying they thought it was a scam.</p>

<p>How would you feel if you or your parents were kicked out of your bank because they thought you were likely to fall for (another) scam?</p>

<p>And, I do seriously wonder if people will be more lackadaisical when confronted with scams if they know they'll get refunded.</p>

<p>But there's a major issue left undiscussed. <a href="https://shkspr.mobi/blog/2023/03/who-can-tell-you-what-to-do-with-your-money/">Are banks <em>really</em> to blame here</a>?</p>

<h2 id="why-is-this-the-banks-responsibility"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#why-is-this-the-banks-responsibility">Why is this the bank's responsibility?</a></h2>

<p>For some scams, like ID theft, I agree that banks are probably liable. But the "A" in APP stands for "Authorised". You have told the bank you want to do something with your own money. Do they have the right to stop you?</p>

<p>Let's consider purchase fraud.</p>

<p>If you take cash out of an ATM and hand it to some guy who then fails to give you the promised goods, that's not the bank's fault. Right?
Why is it different when you send it electronically? The bank shows you a Confirmation of Payee screen to help you make sure you're sending it to the right people. They ask you to confirm that you understand you might not get the money back. They even monitor the amount of complaints about the receiving bank. I'd argue they go <em>beyond</em> their duty to protect their customers.</p>

<p>Of course, it isn't just purchase fraud - although that's the largest by volume - this is how the different scams are categorised, and their values.</p>

<table>
<thead>
<tr>
  <th>Scam Type</th>
  <th align="right">Volume</th>
  <th align="right">Volume %</th>
  <th align="right">Value</th>
  <th align="right">Value %</th>
  <th align="right">Mean Value<br>per Scam</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Purchase</td>
  <td align="right">176,685</td>
  <td align="right">69.94</td>
  <td align="right">£85,169,655</td>
  <td align="right">25.00</td>
  <td align="right">£482</td>
</tr>
<tr>
  <td>Investment</td>
  <td align="right">10,611</td>
  <td align="right">4.20</td>
  <td align="right">£68,732,511</td>
  <td align="right">20.18</td>
  <td align="right">£6,477</td>
</tr>
<tr>
  <td>Impersonation: Police / Bank</td>
  <td align="right">10,357</td>
  <td align="right">4.10</td>
  <td align="right">£65,705,019</td>
  <td align="right">19.29</td>
  <td align="right">£6,344</td>
</tr>
<tr>
  <td>Impersonation: Other</td>
  <td align="right">24,384</td>
  <td align="right">9.65</td>
  <td align="right">£46,497,418</td>
  <td align="right">13.65</td>
  <td align="right">£1,907</td>
</tr>
<tr>
  <td>Romance</td>
  <td align="right">4,824</td>
  <td align="right">1.91</td>
  <td align="right">£27,454,960</td>
  <td align="right">8.06</td>
  <td align="right">£5,691</td>
</tr>
<tr>
  <td>Advance Fee</td>
  <td align="right">22,623</td>
  <td align="right">8.96</td>
  <td align="right">£26,613,253</td>
  <td align="right">7.81</td>
  <td align="right">£1,176</td>
</tr>
<tr>
  <td>Invoice and Mandate</td>
  <td align="right">2,188</td>
  <td align="right">0.87</td>
  <td align="right">£17,416,604</td>
  <td align="right">5.11</td>
  <td align="right">£7,960</td>
</tr>
<tr>
  <td>CEO scam</td>
  <td align="right">189</td>
  <td align="right">0.07</td>
  <td align="right">£1,680,239</td>
  <td align="right">0.49</td>
  <td align="right">£8,890</td>
</tr>
<tr>
  <td>Unknown</td>
  <td align="right">765</td>
  <td align="right">0.30</td>
  <td align="right">£1,382,950</td>
  <td align="right">0.41</td>
  <td align="right">£1,808</td>
</tr>
<tr>
  <td><strong>Totals</strong></td>
  <td align="right"><strong>252,626</strong></td>
  <td align="right"></td>
  <td align="right"><strong>£340,652,609</strong></td>
  <td align="right"></td>
  <td align="right"><strong>£1,348</strong></td>
</tr>
</tbody>
</table>

<p>Have a read of <a href="https://www.bbc.co.uk/news/uk-england-leeds-67208755">this account of an investment scam</a>. The bank did everything they could to stop the customer from being scammed. How did the customer react?</p>

<blockquote><p>[the bank] even questioned whether the money was being invested in cryptocurrency but because [the scammer] had warned this may happen, she lied and said no.</p></blockquote>

<p>Or read about <a href="https://www.bbc.co.uk/news/business-64981507">this romance scam</a>. Was the bank negligent in letting an elderly man send £153,000 to scammers?</p>

<blockquote><p>The bank blocked a number of transactions, it spoke to [the victim] on the phone to warn him and even called him into a branch to speak to him face-to-face.</p></blockquote>

<p>Obviously the cases which make the news aren't necessarily representative of the many and varied ways people can get scammed.</p>

<h2 id="is-this-a-consumer-choice-problem"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#is-this-a-consumer-choice-problem">Is this a consumer choice problem?</a></h2>

<p>One of the most interesting graphs in the report is this "Percentage of reported APP scams losses refunded by volume".  Which bank are you with?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/09/refund-percentage-fs8.png" alt="The chart shows the percentage of APP scam cases that were fully and partially reimbursed by the 14 largest banking groups. For example, Nationwide fully reimbursed 96% and partially reimbursed 3% of the APP scam cases reported by its customers in 2023." width="2148" height="3099" class="aligncenter size-full wp-image-52936">

<p>If you're with Monzo and get scammed... you're probably not getting your money back! Nationwide members get <em>excellent</em> customer service.</p>

<p>Perhaps banks should be required to prominently display their scam refund likelihood. Would you switch to a different bank if you knew they were more likely to refund you in the event of a scam?</p>

<h2 id="final-thoughts"><a href="https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/#final-thoughts">Final Thoughts</a></h2>

<p>One day, I am going to be successfully scammed. <a href="https://www.scientificamerican.com/article/why-older-adults-are-too-trusting/">As I get older, I'll get more trusting</a>. Or I'll be distracted. Or I'll be aggressively targetted. Or my email and phone will be hacked.</p>

<p>I want my money to be safe. I want it protected from scammers and - if necessary - from myself.</p>

<p>Fraudsters are terrifyingly good at what they do. They are manipulative, persistent, and organised.</p>

<p>I want my bank to be equally aggressive in chasing down scammers, publishing warnings, and protecting me.</p>

<p>But I genuinely don't know if it is their responsibility to refund me for any mistakes I make up to £415,000.</p>

<p>If you have strong feelings about this, I encourage you to <a href="https://www.psr.org.uk/cp24-11-app-scams-reimbursement-maximum-level/">reply to the consultation</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=52923&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/09/how-much-money-do-banks-owe-you-if-youre-scammed/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Who can tell you what to do with your money?]]></title>
		<link>https://shkspr.mobi/blog/2023/03/who-can-tell-you-what-to-do-with-your-money/</link>
					<comments>https://shkspr.mobi/blog/2023/03/who-can-tell-you-what-to-do-with-your-money/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 19 Mar 2023 12:34:15 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[fraud]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[scam]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=45221</guid>

					<description><![CDATA[There&#039;s an incredibly distressing story in the BBC about a vulnerable elderly man who was conned out of his life savings.  Fraud victim gets surprise £153,000 refund despite rules BBC News  In the story, the heartless bank refused to refund the fraud victim due to an absurd technicality - the money was sent to a foreign account rather than a UK account.  Once again, big business bending the rules …]]></description>
										<content:encoded><![CDATA[<p>There's an incredibly distressing story in the BBC about a vulnerable elderly man who was conned out of his life savings.</p>

<blockquote><p>Fraud victim gets surprise £153,000 refund despite rules
<a href="https://www.bbc.co.uk/news/business-64981507">BBC News</a></p></blockquote>

<p>In the story, the heartless bank refused to refund the fraud victim due to an absurd technicality - the money was sent to a <em>foreign</em> account rather than a UK account.  Once again, big business bending the rules in order to protect their profits from a defenceless pensioner. Only after protests did they reimburse him. What a disgrace!</p>

<p>Except, of course, that's <em>not</em> what happened.</p>

<blockquote class="social-embed" id="social-embed-1390282086498639876" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">I can't remember who told me this, but it is a truism. <br>Ignore the headline and read the *penultimate* paragraph. That's where the real story is.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1390282086498639876"><span aria-label="13 likes" class="social-embed-meta">❤️ 13</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2021-05-06T12:27:34.000Z" itemprop="datePublished">12:27 - Thu 06 May 2021</time></a></footer></blockquote>

<p>Let's scoot down the article, past the sensationalism, and see what we find:</p>

<blockquote><p>It emerged that, in this case, Lloyds had done a really good job of not only spotting the potential fraud but alerting James to it.
The bank blocked a number of transactions, it spoke to James on the phone to warn him and even called him into a branch to speak to him face-to-face.</p></blockquote>

<p>Ah.</p>

<p>The bank kept his money as safe as possible but, ultimately, it was <em>his</em> money. He can choose to do whatever he wants with it. If he'd decided to <a href="https://www.express.co.uk/expressyourself/176574/I-spent-my-10m-lottery-win-on-fast-cars-and-loose-women-now-I-want-my-dustman-job-back-ag">blow his life savings on fast cars and loose women</a> should he have been stopped?</p>

<p>Ultimately, this man was scammed, and the fault lies with the crooks who swindled him. But, realistically, what more could the bank have done to protect him? I suppose they could have dropped him as a customer. If they'd said he was too risky for them and told him to find a new bank, we'd see headlines of "Fury as cold-hearted bank tells pensioner to piss off".</p>

<p>I'm sure we've all had a friend who has driven themselves into drink, drugs, or gambling. You can intervene. You can counsel them. You can beg, plead, and threaten. But people are entitled to make their own choices in life.  And sometimes they make bad choices which end up hurting them.</p>

<p>Perhaps this victim's family should have been more proactive in setting up a Power of Attorney. Perhaps the media consumed by older people should be flooded with scam warnings. Perhaps the victim should have heeded the bank's repeated warnings. Perhaps scammers should reconsider their life choices. Perhaps the bank should have forced him to take his business elsewhere.</p>

<p>Do we want banks to safeguard or money, or to gatekeep it?</p>

<p>This is a sad story with no happy ending and no easy answers.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=45221&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/03/who-can-tell-you-what-to-do-with-your-money/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Moneyed - a personal OpenBanking API]]></title>
		<link>https://shkspr.mobi/blog/2020/10/moneyed-a-personal-openbanking-api/</link>
					<comments>https://shkspr.mobi/blog/2020/10/moneyed-a-personal-openbanking-api/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 26 Oct 2020 12:19:41 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[openbanking]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=37044</guid>

					<description><![CDATA[Update! Moneyed shut down in 2021.  After writing about how to use MoneyDashboard&#039;s unofficial API, the good folk at Moneyed told me about their officially supported API! So here&#039;s a quick review &#38; howto guide.  Moneyed is a slightly strange service. I think it is designed for companies to give as a benefit to their employees. But you can sign up as an individual. The first month is free - but I…]]></description>
										<content:encoded><![CDATA[<p><ins datetime="2025-10-26T08:37:27+00:00">Update! <a href="https://find-and-update.company-information.service.gov.uk/company/12341342">Moneyed shut down in 2021</a>.</ins></p>

<p>After writing about how to use <a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/">MoneyDashboard's unofficial API</a>, the good folk at <a href="https://web.archive.org/web/20201028203520/https://moneyed.co.uk/">Moneyed</a> told me about their <em>officially</em> supported API! So here's a quick review &amp; howto guide.</p>

<p>Moneyed is a slightly strange service. I <em>think</em> it is designed for companies to give as a benefit to their employees. But you can sign up as an individual. The first month is free - but I don't see a way to tell how much subsequent months are.  Although it is presented as an app for Android and iPhone, you can <a href="https://web.archive.org/web/20200929161223/https://moneyed.co.uk/app/">log in on the website</a>.</p>

<p>It is a read-only account aggregator. This allows you to see all your credit cards, current accounts, and savings accounts in one place.</p>

<p>There are a good range of OpenBanking API accounts which you can add.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/List-of-OpenBanking-providers.png" alt="List of OpenBanking providers." width="712" height="824" class="aligncenter size-full wp-image-37058">

<p>There's also investment accounts, credit cards, and pensions.</p>

<p>You can <a href="https://moneyed.co.uk/blog/download_your_data">download your data as CSV</a> - but that's not the exciting part!</p>

<p>In the settings screen, you can generate an API key. That gives you JSON access to your accounts and transactions.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/Settings-Screen.png" alt="Settings Screen." width="750" height="533" class="aligncenter size-full wp-image-37057">

<p>Once done, there's a quick guide to downloading your data.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/API-Token-generation-screen.png" alt="API Token generation screen." width="750" height="556" class="aligncenter size-full wp-image-37059">

<p>You need your API key sent as a header, and your account's unique ID.</p>

<p><code>curl --header "Authorization: Api-Key 123456" https://app.moneyed.co.uk/v1/capi/assets/abc123</code></p>

<p>Here's a sample JSON output from my credit card, it shows me buying groceries and getting a refund from eBay. At the bottom is the total balance on the card.</p>

<pre><code class="language-json">{
  "id": "ABC123",
  "name": "American Express",
  "transactions": [
    {
      "category": "GROCERIES",
      "label": "Morrisons Bradford",
      "pending": false,
      "timestamp": "2020-10-16T00:00:00",
      "value": {
        "amount": "-99.99",
        "currency": "GBP"
      }
    },
    {
      "category": "INCOME",
      "label": "Ebay O Luxembourg",
      "pending": false,
      "timestamp": "2020-10-19T00:00:00",
      "value": {
        "amount": "12.34",
        "currency": "GBP"
      }
    }
  ]
  "type": "CREDIT_CARD",
  "valuations": [
    {
      "date": "2020-10-24",
      "value": {
        "amount": "-123.45",
        "currency": "GBP"
      }
    }
  ]
}
</code></pre>

<p>That's not as detailed as the MoneyDashboard API - but it covers everything I need. It would be nice to have more accurate timestamps. At the moment, it only seems to give the last month of spending. But it's a beta project and should improve as time goes on.</p>

<p>You can <a href="https://web.archive.org/web/20201028203520/https://moneyed.co.uk/">sign up to Moneyed for one month free</a> - no credit card details required.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=37044&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/10/moneyed-a-personal-openbanking-api/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Unofficial MoneyDashboard Neon API]]></title>
		<link>https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/</link>
					<comments>https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 16 Oct 2020 11:40:37 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[openbanking]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=36967</guid>

					<description><![CDATA[Note: MoneyDashboard is now closed.  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 &#34;Neon&#34; service. The API is a bit more simple, but authentication is harder.  Here&#039;s a quick guide to the bits of the API that I found useful. I&#039;ve lightly redacted some of the API responses for my privacy. …]]></description>
										<content:encoded><![CDATA[<p><ins datetime="2024-10-16T06:38:28+00:00">Note: <a href="https://moneytothemasses.com/news/money-dashboard-to-close-all-accounts-from-31st-october-2023">MoneyDashboard is now closed</a>.</ins></p>

<p>Yesterday, I wrote up <a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/">how to use the MoneyDashboard Classic API</a>.  Read that blog post first before reading this one.</p>

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

<p>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.</p>

<h2 id="list-of-all-supported-institutions"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#list-of-all-supported-institutions">List of all supported institutions</a></h2>

<p>MoneyDashboard only supports a limited number of OpenBanking Institutions. Here's a list:</p>

<p><code>https://neonapiprod.moneydashboard.com/v1/institutions</code></p>

<pre><code class="language-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"
    }
}
</code></pre>

<h3 id="list-of-the-users-accounts"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#list-of-the-users-accounts">List of the User's Accounts</a></h3>

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

<p><code>https://neonapiprod.moneydashboard.com/v1/accounts</code></p>

<pre><code class="language-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
    }
}
</code></pre>

<h2 id="babs-balance-after-bills"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#babs-balance-after-bills">BABS - Balance After Bills</a></h2>

<p>MoneyDashboard can predict what your <a href="https://web.archive.org/web/20200918095621/https://support.moneydashboard.com/hc/en-us/articles/360044261332-How-do-I-set-up-my-Balance-after-bills-">balance is after bills</a>:</p>

<p><code>https://neonapiprod.moneydashboard.com/v1/analytics/babs</code></p>

<pre><code class="language-JSON">{
    "babs": -1234.56,
    "predictedBalance": -2345.67,
    "unpaidSeries": 0,
    "dailyFlexSpend": 50.99,
    "daysRemaining": 19,
    "daysElapsed": 0,
    "predictedSpending": 123.45
}
</code></pre>

<h2 id="transactions"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#transactions">Transactions</a></h2>

<p>A full list of every transaction you've made - including tags:</p>

<p><code>https://neonapiprod.moneydashboard.com/v1/transactions/filter</code></p>

<pre><code class="language-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"
    }
}
</code></pre>

<h2 id="categories"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#categories">Categories</a></h2>

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

<p>There are some <em>weird</em> JSON handling of floating point numbers in here. Beware!</p>

<p><code>https://neonapiprod.moneydashboard.com/v1/analytics/spend/category</code></p>

<pre><code class="language-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"
    }
}
</code></pre>

<h2 id="authentication"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/#authentication">Authentication</a></h2>

<p>OK, this is where it gets horrible and I get confused. MoneyDashboard uses <a href="https://aws.amazon.com/cognito/">Amazon Cognito</a>. It does a complex authentication dance, passing along lots of different <code>SRP_A</code> tokens until, eventually, it gives you an <code>IdToken</code>. You can grab that by opening Developer Tools in your browsers.  It will be a <em>very</em> long string.</p>

<p>You need to pass this as an <code>x-auth</code> header in your request, like so:</p>

<pre><code class="language-_">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'
</code></pre>

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

<p>Good luck!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=36967&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-neon-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Unofficial MoneyDashboard API]]></title>
		<link>https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/</link>
					<comments>https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 15 Oct 2020 11:13:54 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[openbanking]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=36917</guid>

					<description><![CDATA[Note: MoneyDashboard is now closed.  The OpenBanking specification is brilliant. It allows you to aggregate all of your financial accounts in one place. You can give read or write access to apps and services. Magic!  API access is restricted to registered financial institutions. That&#039;s good, because it puts up a barrier to entry preventing dodgy companies slurping up your data and sending all…]]></description>
										<content:encoded><![CDATA[<p><ins datetime="2024-10-15T06:38:28+00:00">Note: <a href="https://moneytothemasses.com/news/money-dashboard-to-close-all-accounts-from-31st-october-2023">MoneyDashboard is now closed</a>.</ins></p>

<p>The <a href="https://www.openbanking.org.uk/">OpenBanking</a> specification is brilliant. It allows you to aggregate all of your financial accounts in one place. You can give read or write access to apps and services. Magic!</p>

<p>API access is restricted to registered financial institutions. That's good, because it puts up a barrier to entry preventing dodgy companies slurping up your data and sending all your money to scammers.</p>

<p>But, whether by design or not, it means that you as an individual cannot get API access to your bank.  Most financial institutions restrict API access to other financial institutions. Grrr!</p>

<p>Luckily, I've found a slightly cheeky hack to let you get Read-Only JSON feeds of all your transactions!</p>

<p>Sign up to MoneyDashboard and authorise it to read your bank and credit card statements.</p>

<p>Once done, they have an API which lists your transactions and other things. I found this by the dark art of... opening developer tools and seeing what the page was requesting. 1337!</p>

<p>Here's my (light) attempt to document it. <mark>Note:</mark> This uses the MoneyDashboard Classic account. I haven't mapped their "Neon" service yet.</p>

<h2 id="list-of-transactions"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#list-of-transactions">List of Transactions</a></h2>

<p>This gets up to 999 transactions in JSON. You get a reasonable amount of metadata with each one.</p>

<p><code>https://my.moneydashboard.com/transaction/GetTransactions?limitTo=999</code></p>

<p>Here's a sample response, redacted for privacy:</p>

<pre><code class="language-json">{
    "5": {
        "Id": 123456789,
        "Description": "MORRISONS               BRADFORD",
        "OriginalDescription": "MORRISONS               BRADFORD",
        "Amount": -168.35,
        "Date": "/Date(1601683200000)/",
        "OriginalDate": "/Date(-62135596800000)/",
        "IsDebit": true,
        "TagId": 257,
        "MerchantId": 194245,
        "AccountId": 987654,
        "Notes": null,
        "NativeCurrency": "GBP",
        "NativeAmount": -168.35,
        "CurrencyExchange": null,
        "AvailableCurrencyExchanges": []
    }
}
</code></pre>

<p>Pretty simple!</p>

<ul>
<li>The <code>Date</code> is in UNIX Epoch milliseconds.</li>
<li>I don't know what <code>OriginalDate</code> is.</li>
<li>There's a separate API call for folksonomy tags.</li>
</ul>

<p>That's most of what I want. The ability to list all my transactions. But there are a few other interesting bits of the API</p>

<h2 id="list-of-accounts"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#list-of-accounts">List of Accounts</a></h2>

<p><code>https://my.moneydashboard.com/api/Account/</code></p>

<p>Returns all the accounts you have associated with MoneyDashboard:</p>

<pre><code class="language-json">{
    "2": {
        "Id": 123456,
        "Name": "Platinum Cashback Credit Card",
        "Institution": {
            "RealmId": 0,
            "RealmName": null,
            "DateProviderTypeId": 4,
            "Name": "American Express",
            "IconUrl": "https://media.moneydashboard.com/img/institution/ic_amex.svg",
            "LogoUrl": "https://media.moneydashboard.com/img/institution/ic_amex.svg",
            "Id": 7,
            "ShowAccounts": true
        },
        "Balance": 0,
        "Added": "2019-11-31T11:53:10.9095627Z",
        "LastRefreshed": "2020-01-20T10:20:21Z",
        "AccountTypeId": 2,
        "Colour": "#9e9d24",
        "Overdraft": 0,
        "IsClosed": true,
        "IncludeInCalculations": true,
        "IsIncludedInCashflow": true,
        "Position": 0,
        "IncludeInSidebar": true,
        "NativeCurrency": "GBP",
        "NativeBalance": -123.45,
        "CurrencyExchange": null,
        "AllowAccountMigration": false,
        "ShowAccountMigrationAlert": false,
        "IsOpenBanking": false,
        "OpenBankingMigratedDate": null,
        "LastRefreshStatus": 0,
        "OAuthTokenCreatedDate": null
    }
}
</code></pre>

<p>Mostly, I'm interested in the <code>NativeBalance</code> to see how much I've spent on my card.</p>

<h2 id="spend-by-merchant"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#spend-by-merchant">Spend by Merchant</a></h2>

<p>You can see exactly how much you've spent with each company over a specific period:</p>

<p><code>https://my.moneydashboard.com/api/merchant/getspend?FromDate=2020-09-01&amp;GroupingInstruction=1&amp;ToDate=2020-09-30</code></p>

<pre><code class="language-JSON">{
    "2": {
        "Amount": -38.49,
        "TransactionCount": 2,
        "Id": 123456,
        "Name": "Debenhams Store",
        "ImageFile": "icon_merchant.svg",
        "MobileIcon": "ic_merchant",
        "TagDisplayCategoryName": null,
        "DisplayColour": "#7C3E3E"
    }
}
</code></pre>

<h2 id="spend-by-group"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#spend-by-group">Spend by Group</a></h2>

<p>MoneyDashboard allows you to tag your transactions. This shows spending by group and tag:</p>

<p><code>https://my.moneydashboard.com/api/OutgoingsByGroup?fromDate=2020-09-01&amp;includeCredit=true&amp;toDate=2020-09-30</code></p>

<pre><code class="language-json">{
    "1": {
        "TagId": 123,
        "Amount": 8.6
    }
}
</code></pre>

<h2 id="balance-over-time"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#balance-over-time">Balance Over Time</a></h2>

<p>Rather than plotting your own graphs, MoneyDashboard will show you your balances across your accounts:</p>

<p><code>https://my.moneydashboard.com/api/balanceHistory?EndDate=2020-10-31&amp;StartDate=2019-10-01</code></p>

<pre><code class="language-JSON">{
    "2": {
        "Date": "2019-10-04T00:00:00Z",
        "Balances": [
            {
                "Balance": -8.06,
                "AccountId": 123456
            },
            {
                "Balance": -718.78,
                "AccountId": 789012
            }
        ]
    }
}
</code></pre>

<h2 id="list-of-tags"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#list-of-tags">List of Tags</a></h2>

<p>If you are interested in how your spend is categorised - arguably the whole point of MoneyDashboard - you can get a list of all the in-built tags and sub-tags:</p>

<p><code>https://my.moneydashboard.com/TaggingRules/getTags</code></p>

<pre><code class="language-json">{
    "0": {
        "TagId": 237,
        "TagName": "Appearance",
        "ParentTagId": 0,
        "ParentTagName": null,
        "ParentTag": null,
        "ChildTags": [
            {
                "TagId": 247,
                "TagName": "Clothes - Designer or Other",
                "ParentTagId": 237,
                "ParentTagName": "Appearance",
                "ParentTag": null,
                "ChildTags": [
                    {
                        "TagId": 120,
                        "TagName": "Accessories",
                        "ParentTagId": 247,
                        "ParentTagName": "Clothes - Designer or Other",
                        "ParentTag": null,
                        "ChildTags": [],
                        "ImageFile": "ic_person.svg",
                        "MobileIcon": "ic_person",
                        "TagDisplayColour": "#039BE5",
                        "IsSystemTag": true
                    }
        ],
        "ImageFile": "ic_person.svg",
        "MobileIcon": "ic_person",
        "TagDisplayColour": "#039BE5",
        "IsSystemTag": true
    }
}
</code></pre>

<p>And self-created tags:</p>

<p><code>https://my.moneydashboard.com/CustomTags/GetListOfTags</code></p>

<pre><code class="language-JSON">{
    "0": {
        "TagId": 3,
        "TagName": "Vehicle insurance",
        "ParentTagId": 0,
        "ParentTagName": null,
        "ParentTag": null,
        "ChildTags": [],
        "ImageFile": "ic_car_bump.svg",
        "MobileIcon": null,
        "TagDisplayColour": "#F57C00",
        "IsSystemTag": true
    }
}
</code></pre>

<h2 id="getting-authorised"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#getting-authorised">Getting Authorised</a></h2>

<p>OK, so you want to do this? How do you authenticate yourself against the API?  This is the tricky bit.</p>

<p>In the source code for the login page, you'll see something like this:</p>

<pre><code class="language-html">&lt;input
   name="__RequestVerificationToken"
   type="hidden"
   value="cykGysmBr1vpUY1" /&gt;
</code></pre>

<p>The actual <code>value</code> is much longer.</p>

<p>You will also need the Cookie which is set when you request the login page.</p>

<p>Your username and password are POSTed in a JSON payload, like so:</p>

<pre><code class="language-bash">curl 'https://my.moneydashboard.com/landing/login'\ 
 -H 'User-Agent: Mozilla/5.0'\
 -H 'Accept: application/json, text/plain, */*'\
 -H 'Accept-Language: en-GB,en;q=0.5'\
 --compressed\
 -H 'X-Requested-With: XMLHttpRequest'\
 -H '__RequestVerificationToken: cykGysmBr1vpUY1'\
 -H 'Content-Type: application/json;charset=utf-8'\
 -H 'Origin: https://my.moneydashboard.com'\
 -H 'DNT: 1'\
 -H 'Connection: keep-alive'\
 -H 'Referer: https://my.moneydashboard.com/landing'\
 -H 'Cookie: COOKIEDATA'\
 -H 'TE: Trailers'\
 --data-raw '{"OriginId":"1","Password":"Passw0rd123","Email":"you@example.com","CampaignRef":"","ApplicationRef":"","UserRef":""}'
</code></pre>

<p>Once done, you can make API GET calls using the <code>__RequestVerificationToken</code> header.</p>

<p>Or, you can use a <a href="https://github.com/shutupflanders/moneydashboard">Python Library for MoneyDashboard</a></p>

<h2 id="what-next"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#what-next">What Next?</a></h2>

<p>I was thinking of building a <a href="https://shkspr.mobi/blog/2020/02/turn-an-old-ereader-into-an-information-screen-nook-str/">passive dashboard</a> to show me the state of my current account.</p>

<p>Or, maybe...</p>

<blockquote><p>Alexa? Ask MoneyDashboard what the balance is on my credit cards.</p>

<p>Alexa? Ask MoneyDashboard how much I spent at Wagamamas last month?</p></blockquote>

<p>Too much?</p>

<h2 id="enjoyed-this-post"><a href="https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/#enjoyed-this-post">Enjoyed this post?</a></h2>

<p>If you've found this useful, please sign up to MoneyDashboard using my referral link.</p>

<p>Or, you can:</p>

<ul>
<li><a href="https://ko-fi.com/edent">Buy me a Ko-Fi</a></li>
<li><a href="https://github.com/sponsors/edent">Sponsor me on GitHub</a></li>
<li><a href="https://www.amazon.co.uk/hz/wishlist/ls/13GFCFR2B2IX4?type=wishlist&amp;linkCode=sl2&amp;tag=shksprblogwish-21">Get me a birthday present from my Wishlist</a></li>
</ul>

<p>Or, just leave a supportive comment.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=36917&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/10/unofficial-moneydashboard-api/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Co-Op Bank - Making Banking Inaccessible]]></title>
		<link>https://shkspr.mobi/blog/2017/11/co-op-bank-making-banking-inaccessible/</link>
					<comments>https://shkspr.mobi/blog/2017/11/co-op-bank-making-banking-inaccessible/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 20 Nov 2017 07:19:54 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[co-op]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[usability]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=28629</guid>

					<description><![CDATA[I&#039;ve blogged before about how backward the Co-op bank is - sadly, they&#039;ve not improved in the last few years.  I needed to close down my business bank account.  I hopped on to online banking, provided all my details, went through 2FA with a physical token, remembered my mother&#039;s maiden name and began searching the site.  There was no way to close the account.  Oh well, I guess I&#039;ll give them a…]]></description>
										<content:encoded><![CDATA[<p>I've blogged before about <a href="https://shkspr.mobi/blog/2014/03/passive-aggressive-trolling-co-op-business-banking/">how backward the Co-op bank is</a> - sadly, they've not improved in the last few years.</p>

<p>I needed to close down my business bank account.  I hopped on to online banking, provided all my details, went through 2FA with a physical token, remembered my mother's maiden name and began searching the site.</p>

<p>There was no way to close the account.</p>

<p>Oh well, I guess I'll give them a call.  After 30 minutes on hold I was told "The account closing team leave at 4pm, sorry."  It was 5 past four. They'd successfully held me off!</p>

<p>I rang up the next day and asked to close my account.  "You'll need to write us a letter!" came the stern reply.  I wasn't sure how a letter would be sufficient proof.  "Aha!" they said, "You must write it on <em>headed paper!</em>"</p>

<p>My business is fully online. I simply don't have headed paper. Who does? More to the point, I don't own a printer and I can't be bothered to wander to the post office to buy a single stamp.</p>

<p>"That's silly," I said. "What do your disabled customers do?"</p>

<p>"Errr... Write a letter...?"</p>

<p>"So, you're telling me that you expect your customers with mobility difficulties to painfully write you an physical letter and then hobble down to the post-box?"</p>

<p>"Well. Umm... They could.... Ask a carer for help?"</p>

<p>"Do you think this fulfils your obligations under the <a href="https://www.legislation.gov.uk/ukpga/2010/15/section/20">Equality Act to provide reasonable adjustments</a>?"</p>

<p>"Let me speak to a manager."</p>

<p>I spent a few minutes perusing other banks' closure policies. <a href="https://www.hsbc.co.uk/1/2/contact-and-support/closing-an-account">HSBC</a> let you do everything online.  <a href="https://supportcentre.natwest.com/TELEPHONEBANKINGCHATAO/913259832/How-do-I-close-an-account.htm">NatWest</a> is by phone - or minicom if you can't talk.</p>

<p>"Right! On this occaision, we will let you send us an email."</p>

<p>"That's very generous of you. Does it need to be on headed email paper‽"</p>

<p>"No.  The email address is F R E D dot ..."</p>

<p>"Hang on... is this your personal email address?"</p>

<p>"Yes. Fred dot Smith at cfs.coop"</p>

<p>"What's cfs.coop?  There's no website there."</p>

<p>"It's just our email sir."</p>

<p>... So, I sent an email to this random person - at an address with seemingly no connection to my bank account. All it took was my name, address, and company number (all public information) and my bank details (on every invoice I've sent) - and my money was transferred to a new bank account.</p>

<h2 id="putting-it-right"><a href="https://shkspr.mobi/blog/2017/11/co-op-bank-making-banking-inaccessible/#putting-it-right">Putting it right</a></h2>

<p>Let people cancel their accounts online.  It's that simple.</p>

<p>If your web security is good enough to let people transfer piles of money, or set up an account - it should be secure enough to let people close an account.</p>

<h2 id="putting-it-right-part-2"><a href="https://shkspr.mobi/blog/2017/11/co-op-bank-making-banking-inaccessible/#putting-it-right-part-2">Putting it right, part 2</a></h2>

<p>Co-op called me up to apologise. They recognise that their accessibility needs fell far short of what is expected of them. They offered to send me £25 by way of an apology.  I told them to send it directly to the charity <a href="https://www.scope.org.uk/">Scope</a>.</p>

<p>"Oh! I don't think we can do that, sir. But we can post you a cheque."</p>

<p>Give me strength!</p>

<hr>

<p><a href="https://www.scope.org.uk/donate"><img src="https://shkspr.mobi/blog/wp-content/uploads/2017/11/Scope-donation.png" alt="Screenshot of the scope website showing a donation of £25" width="640" height="626" class="aligncenter size-full wp-image-28661"></a></p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=28629&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2017/11/co-op-bank-making-banking-inaccessible/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Choosing a URL for your QR Code]]></title>
		<link>https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/</link>
					<comments>https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 25 Nov 2011 07:57:00 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[qr]]></category>
		<category><![CDATA[badvertising]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[nat west]]></category>
		<category><![CDATA[natwest]]></category>
		<category><![CDATA[scanbuy]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=4831</guid>

					<description><![CDATA[When you create a QR code which contains a URL, it is vital that the code is not only as small as possible, but also as user friendly as possible.  I&#039;m not a massive fan of short URL services like bit.ly - but for shrinking the text you want to fit in a QR code, they are invaluable.  I want to take a look at a particularly interesting example from Nat West Bank.  The Poster  Despite having the QR …]]></description>
										<content:encoded><![CDATA[<p>When you create a QR code which contains a URL, it is vital that the code is not only as small as possible, but also as user friendly as possible.</p>

<p>I'm not a massive fan of short URL services like bit.ly - but for shrinking the text you want to fit in a QR code, they are invaluable.</p>

<p>I want to take a look at a particularly interesting example from Nat West Bank.</p>

<h2 id="the-poster"><a href="https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/#the-poster">The Poster</a></h2>

<p>Despite having the QR too close to the ground (more of that in a later blog post) this seems like quite a good campaign.</p>

<p>The QR code is large and clear, it's not too dense, and the copy shows the app is available on Android, iOS, and BlackBerry.  A single scan on any device should redirect the user to the correct destination.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2011/11/Nat-West-QR-Poster.jpg" alt="Nat West QR Poster" title="Nat West QR Poster" width="480" height="761" class="aligncenter size-full wp-image-4832"></p>

<h2 id="the-scan"><a href="https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/#the-scan">The Scan</a></h2>

<p>This is where things start to fall apart.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2011/11/Nat-West-QR-Scan.png" alt="Nat West QR Scan" title="Nat West QR Scan" width="480" height="288" class="aligncenter size-full wp-image-4833"></p>

<h2 id="the-url"><a href="https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/#the-url">The URL</a></h2>

<p>I know some of the guys behind ScanBuy. It's a good service, but I don't think it's suited to this usage.</p>

<pre>http://SCN.BY/9T7N6HN0RDQPUO</pre>

<ol>
    <li>No "https". Users are being trained not to trust banking URLs unless they go via SSL. I wonder if people will notice on QR codes?</li>
    <li>It's not a Nat West domain. How does a user know that this goes to the real app and not some mobile-malware?</li>
    <li>Nonsensical path.  At the very least, ScanBuy should let this be customised to scn.by/NatWestApp or similar. That way, people looking through their history will know what the URL is meant to go to. (See <a href="https://shkspr.mobi/blog/2011/11/qr-codes-where-there-is-no-signal/">scanning while underground</a>).</li>
</ol>

<p>That said, the code does successfully redirect users to the correct app store to download the app.</p>

<h2 id="what-i-would-do"><a href="https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/#what-i-would-do">What I Would Do</a></h2>

<p>I would use a url like</p>

<pre>https://natwest.com/GetApp</pre>

<p>It's the same length as the previous, is human readable, and is secure. If Nat West can't run the redirection and analytics service themselves, it could easily redirect to ScanBuy to do the heavy lifting.</p>

<h2 id="the-good"><a href="https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/#the-good">The Good</a></h2>

<p>One thing to say, if a non-compatible device scans the code, they get taken to <a href="https://web.archive.org/web/20120828181236/https://m.natwest.com/index.html">Nat West's mobile friendly site</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=4831&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2011/11/choosing-a-url-for-your-qr-code/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Calling BS on Banks]]></title>
		<link>https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/</link>
					<comments>https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 14 Nov 2011 19:16:57 +0000</pubDate>
				<category><![CDATA[politics]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[banks]]></category>
		<category><![CDATA[buidling society]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=4663</guid>

					<description><![CDATA[It&#039;s Time To Switch  Banks are fucking us over.  They gamble with our money, lose it, ask us for a bail out, lose more money, then ask us for yet another bail out! They are resisting even the very modest changes the government is imposing on them.  No more.  We have a very easy way to stop the banks pissing about with our money.  Take our money from them.  I&#039;m not talking about taking out your…]]></description>
										<content:encoded><![CDATA[<h2 id="its-time-to-switch"><a href="https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#its-time-to-switch">It's Time To Switch</a></h2>

<p><a href="https://web.archive.org/web/20111130181814/http://occupylsx.org/">Banks are fucking us over</a>.</p>

<p>They gamble with our money, lose it, ask us for a bail out, lose more money, then ask us for <a href="http://www.bbc.co.uk/news/uk-politics-15611429">yet another bail out</a>!<br>
They are <a href="http://www.bbc.co.uk/news/business-13034743">resisting even the very modest changes</a> the government is imposing on them.</p>

<p>No more.</p>

<p>We have a very easy way to stop the banks pissing about with our money.  Take our money from them.</p>

<p>I'm not talking about taking out your savings for a few days. I'm talking about a permanent withdrawal of our consent.  We take our money and we move it elsewhere.  Move our money to somewhere safe, ethical, and local.</p>

<p>I think that it's time to move all our money to <a href="http://en.wikipedia.org/wiki/Building_Society">Building Societies</a>.</p>

<h2 id="building-societies-are-better-than-banks"><a href="https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#building-societies-are-better-than-banks">Building Societies Are Better Than Banks</a></h2>

<p>Building societies are <strong>owned by their members</strong>. If you're a saver or a borrower, you get a vote in how the business is run. That means there are no excessive profits, no fat cat bankers taking extortionate bonuses, and no gouging fees.</p>

<p>Building societies are <strong>safer</strong>.  Banks try to make money by gambling on the stock market and the wholesale money markets.  The Northern Rock bank gambled 75% of its customers' money - the average building society has 30% from the money markets.  By law, the maximum that a building society can gamble is 50%.</p>

<p>Building societies are <strong>friendlier</strong>.  They're all based in the UK, have UK call centres, and - because they're not beholden to shareholders - dedicated to serving their customers.</p>

<p>Building societies offer the same services as banks.</p>

<h2 id="quick-comparison"><a href="https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#quick-comparison">Quick Comparison</a></h2>

<table>
   <tbody><tr>
      <th>Features</th>
      <th>Building Societies</th>
      <th>Banks</th>
   </tr>
   <tr>
      <td>Current Accounts</td>
      <td>✔</td>
      <td>✔</td>
   </tr>
   <tr>
      <td>Mortgages</td>
      <td>✔</td>
      <td>✔</td>
   </tr>
   <tr>
      <td>Saving</td>
      <td>✔</td>
      <td>✔</td>
   </tr>
   <tr>
      <td>Internet Banking</td>
      <td>✔</td>
      <td>✔</td>
   </tr>
   <tr>
      <td>Ethical Investments</td>
      <td>✔</td>
      <td>✗</td>
   </tr>
   <tr>
      <td>Community focussed</td>
      <td>✔</td>
      <td>✗</td>
   </tr>
   <tr>
      <td>Risk your savings in a casino</td>
      <td>✗</td>
      <td>✔</td>
   </tr>
</tbody></table>

<h2 id="are-there-any-building-societies-left"><a href="https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#are-there-any-building-societies-left">Are There Any Building Societies Left?</a></h2>

<p>Yes!</p>

<p>There are <a href="https://www.bsa.org.uk/about-us/bsa-members">47 Building Societies in the UK</a>.</p>

<p>Chances are, you have a branch of the Nationwide near you - but there are many smaller, local institutions you can do your banking with.</p>

<p>Most of them offer Internet and telephone banking, all of them let you withdraw your cash from any ATM,</p>

<h2 id="didnt-lots-of-building-societies-become-banks"><a href="https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#didnt-lots-of-building-societies-become-banks">Didn't Lots of Building Societies Become Banks?</a></h2>

<p>Yes, <a href="https://web.archive.org/web/20110602165926/https://www.bsa.org.uk/faq/carpetbagger.htm">many people</a> thought that turning Building Societies into banks would be a great idea.</p>

<p>They were wrong.</p>

<p>There were several <a href="https://www.bsa.org.uk/information/consumer-factsheets/general-information/list-of-demutualised-building-societies">Building Societies which turned into banks</a>.  You can judge for yourselves whether they offer superior products or excellent customer services, but of those 10...</p>

<ul>
    <li>One was acquired by Barclays.</li>
    <li>Two had to be bailed out by the government.</li>
    <li>Three were bought by Lloyds.</li>
    <li>Four were taken over by Santander.</li>
</ul>

<h2 id="whats-stopping-you"><a href="https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/#whats-stopping-you">What's Stopping You?</a></h2>

<p>Switching accounts is fast, easy, and free.  The <a href="https://web.archive.org/web/20111017132938/http://www.fsa.gov.uk/pages/consumerinformation/product_news/banking/know_your_rights/moving/index.shtml">FSA has has an excellent guide</a>, but here are the basics.</p>

<p>Your old bank will only have three working days to start to process of moving you to your new building society. Your direct debits and standing orders will be transferred.</p>

<p>Once your application has been approved, the building society will have ten working days to set your new account.</p>

<p>The whole process will take less than two weeks.  A fortnight to make a change for the better.</p>

<p>I've done it - what's stopping you?</p>

<p>Make the switch now.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=4663&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2011/11/calling-bs-on-banks/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
