In this article, you will build upon your existing OAuth knowledge to learn about Open Banking’s architecture, its new acronyms, and what implementation is the best fit for you.
What is PSD2?
Before we get into the details, let’s have a quick recap on PSD2.
At a super high level, the revised Payment Services Directive (PSD2) is an EU Directive created to start opening banks up to collaboration and encourage competition. This means that banks must create open APIs so that third parties can access customer accounts and initiate payments.
To the end-user, there are some great benefits to this. They can:
- start using third party accounting apps to manage their finances
- use comparison apps to analyze your account to find better deals,
- use a common, secure payment interface, without third parties taking a cut.
PSD2 vs. Open Banking
The idea behind PSD2 is great, but unfortunately, it has led to many different implementations, authentication methods, and API designs. As a result, while PSD2 was designed to open banks, they remain relatively closed and fragmented due to a lack of standardization.
The UK’s Open Banking implements PSD2, but it takes PSD2 further by adding technical requirements, such as OAuth and OpenID Connect. Open Banking worked closely with the OpenID Foundation and collaborated to create the Financial-grade API (FAPI), a standard suite of APIs that enable Open Banking members to collaborate.
Open Banking and OAuth
As you know, OAuth is the best way to protect your APIs and to allow users to authorize applications to act on their behalf. But Open Banking takes your typical, vanilla OAuth implementation and builds upon it with some newer specifications and its own set of acronyms.
With Open Banking, the bank acts as the authorization server, but in this case, it is known as an Account Servicing Payment Service Providers (ASPSP). This could be a bank, building society, or payment company.
Not only does the bank act as the authorization server, but it is also the protected resource, offering read and write APIs for accessing account data and processing payments.
Meanwhile, a client application can act in two different ways: as an Account Information Service Provider (AISP) or a Payment Initiation Service Provider (PISP).
The end-user is sometimes given a new acronym of PSU (Payment Services User), but they are still acting as the OAuth resource owner.
Account Information Service Provider (AISP)
AISPs are the accounting and comparison apps that we talked about earlier; applications that want to read your account data and provide some sort of added value. This can range from viewing transaction history and your balance, to creating standing orders and direct debits.
An AISP uses your typical OAuth flow, with a few caveats. In these examples, you will see the standard authorization request made in the browser using the authorization code grant. However, Open Banking also allows for the use of Client-Initiated Backchannel Authentication (CIBA).