Security

We are aware that security is one of the most important aspects of using banking APIs. There are important issues regarding encryption of communication, bank customer and 3rd party company application authentication, examining permissions for particular resources and protection against possible security attacks.


FinTechAPI delivers not only API itself. There is also a Developers Portal for establishing and managing subscriptions. Both of them are publicly available and therefore the communication with them is encrypted using server SSL certificate, signed by one of trusted certification authorities. There is no exception to this rule on the FinTechAPI production environment as the data exchanged through the API is confidential (bank customer sensitive data and security metadata).


FinTechAPI uses OAuth2 authorization flow. OAuth2 is a protocol and an industry standard described by RFC documentation. Using this framework means that authorization is token-based so each and every client application, that wants to integrate with bank through FinTechAPI, has to obtain the security token which is further required by every API call. Valid security token is the evidence for API that this application has all essential permissions to perform this particular call. FinTechAPI provides all the necessary OAuth2 mechanisms (http endpoints) for acquiring, renewing and validating security tokens.


OAuth2 authorization flow delegates customer authentication to bank by eg. redirecting his user-agent (usually an internet browser) to bank site or portal that he knows and trusts. Furthermore this should be so-called ‘Strong Customer Authentication’ in terms of regulations mentioned by PSD2 European Union directive (see Regulatory Technical Standards).


The second authentication mechanism is for identifying each of 3rd party company applications that are connecting to the banking API. In order to provide such identification FinTechAPI requires subscribing for production API access in its Developer Portal. Each successful subscription lets application to acquire a pair of authentication information (Consumer key, Consumer secret – where Consumer should be interpreted as an application consuming banking API). Authentication information is used for two reasons:

  • to identify application calling API. This is required by PSD2 directive but is also used for other internal purposes (e.g. permissions, statistics, access management).

  • It is required by OAuth2 authorization flow in order to generate and validate security tokens.

 

FinTechAPI products are protected (natively or by appropriate network configuration) against such risks as i.a.:

  • XSS

  • CSRF

  • CRLF

  • DOS attacks

 

 

REQUEST A DEMO

 

 

PSD2 GLOSSARY:

AISP - Account Information Service Providers

API - Application Programming Interfaces

ASPSP - Account Servicing Payment Service Provider

EBA - European Banking Authority

EC - European Commission

EU - European Union

FI - Financial Institution

IFR - Interchange Fee Regulation

OJ - Official Journal

PISP - Payment Initiation Services Providers

PSD - Payment Services Directive

PSD2 - Revised Payment Services Directive

PSP - Payment Service Provider

PSU - Payment service user

RTS - Regulatory Technical Standards

SCA - Strong Customer Authentication

SEPA - Single Euro Payments Area

TPP - Third Party Player

XS2A - Third party access to accounts