In order to use Everifin BankConnect API the following prerequisites are required:
Client service account - the service account generated by Everifin and dedicated to specific client; It is required to access identity provider’s authentication API
Everifin Multibanking user account - user account in Everifin representing particular bank account(s) owner; It can be physical person or representative of some business entity (it can be your customer or you in case you need to access your own bank accounts); This user will connect bank account(s) to Everifin system; Consequently, the Everifin services related to these bank accounts can be accessed via API by using this user’s access token (obtained after successful login).
Connection of the Everifin Multibanking user account to your system - more details are present in the further text below.
Client Service Account
To configure service account, the client needs to provide redirect URLs (at least the domains) that will be used during developing, testing and production phase.
The following details of client service account will be delivered by Everifin:
your_realm_value (“everifin_app” if not specified otherwise)
client_id
client_secret
scope (“ais” - balances and transactions, “pis” - payment initiation or “ais pis” - both services)
Everifin Multibanking user account and its connection to your system
When your customer decides to use bank account(s) data in your system the following steps are required:
Everifin Multibanking user account registration - The person/company needs to create a user account in Everifin Multibanking web application. Please, instruct your customer to go to web app URL https://app.everifin.com to do so (you may provide clickable link or button in you SW). The user registration process is described in detail here: Everifin User Registration
Bank Account(s) connection - The person/company needs to connect the bank account(s) in Everifin Multibanking web application. This process is described in detail here: Connecting Bank Account
Connecting Everifin Multibanking user account to your system - The connection between the two systems is arranged by Oauth authorization code flow initiated by your user from your system against our identity provider (Authentication ). The details of the connection process are described further below (https://everifin.atlassian.net/wiki/spaces/EFMBAPI/pages/edit-v2/2515730433#Connecting-Everifin-user-account-to-your-system ). Result of this step is session between your system and Everifin represented by pair of tokens (access and refresh token). Valid access token needs to be provided in every API request.
After these steps are completed, your system is able to use Everifin BankConnect API (e.g. get bank account data of your customer).
Identity provider host-name
The following table provides the value for identity provider host-name.
IdP Host-name wildcard | IdP hostname |
---|---|
|
|
Connecting Everifin user account to your system
More details on authentication API can be found here: Authentication
Once the user decides to connect his existing Everifin user account (registered as pre-step on https://app.everifin.com ) to your system (e.g. clicks on button in your system) redirect her/him to web address
{{everifin_idp_url}}/auth/realms/{{your_realm_value}}/protocol/openid-connect/auth/?client_id={{your_client_id}}&&redirect_uri={{your_redirect_uri}}&response_type=code&scope={{scope}}
Now the user can login to Everifin (or re-login in case the connection has been already established and it only needs to be renewed after the token has expired) and give consent to access the bank account data by your system.
Then the user is redirected back to your URL (specified in
redirect_uri
query parameter in step #1). The authorization code is provided incode
query parameter.Use the code value as input parameter in the request to token endpoint to obtain the access token and refresh token: Token Request .
The obtained access token should be stored in your system as it needs to be provided in authorization header in every API request accessing Everifin services (for details follow the API documentation: https://documenter.getpostman.com/view/19811544/2s935itRL2).
Refresh token should also by stored as you will need it to refresh access token once it expires. Be aware that refresh token string changes every time you do refresh. You need to store the value from the response every time for next usage.After this your system can access Everifin BankConnect API to get bank account(s) data of your customer.
In case the access token expires, you can use refresh token endpoint to refresh it: Refresh Token Request.
When the refresh token expires, you need to redirect your customer to same page as in the step 1. This way you obtain new access token and long-lasting refresh token.