Overview

After you have imported the bank connection(s), you may want to keep the bank account data up-to-date.

You could use the finAPI Batch Update add-on to enable automated updates (more information: Automated Update of the Bank Data (Batch Updates)).

You can also use the Update a bank connection endpoint to trigger the updates:

POST /api/v1/bankConnections/update
CODE

If the update is requested by the user (i.e. the user is present), make sure to send the user metadata (PSU-IP-Address, PSU-Device-OS, PSU-User-Agent). This is required if the XS2A interface is used to connect to indicate to the bank that the action has been requested by the user. If the user metadata is not sent, the bank will count the access against the 4 times/day limit.

There are several use cases where you may need to use this service (use cases can be combined):

  • Update existing accounts and download new transactions;

  • Import new accounts + update existing accounts and download new transactions;

  • Update user’s credentials + update existing accounts and download new transactions.

Update existing accounts and download new transactions

To initiate the process, trigger Update a bank connection and provide bankConnectionId, interface and loginCredentials (unless the user has saved them during the import/previous updates):

POST /api/v1/bankConnections/update
CODE

In many cases, we will be able to update users' accounts and transactions without getting the users to enter their bank credentials and provide a TAN.

However, it is not always possible. Sometimes, we may ask users to enter credentials and/or provide the second factor. For example, if the last authorisation at the bank was performed more than 90 days ago. Some banks may require to get a new user token for each interaction, so unless the user has saved the credentials at finAPI, we would require the user to provide them with an update. There could be other cases as well. As a general rule, finAPI will always try to perform an update without getting users to re-enter credentials whenever possible.

If it is possible to run an update without the user’s interaction, you will get the HTTP code 200 in the response with updateStatus indicating the status of the update: IN_PROGRESS or READY. In the PFM use case, you may also watch the categorizationStatus.

You can query the status of the update with Get a bank connection endpoint:

GET /api/v1/bankConnections/{id}
CODE

However, in some cases, user interaction is required to perform an update. In this case, you will get HTTP code 510 and the user will have to proceed with entering login credentials and or second factor.

The process is the same as for the Import bank connection.

Import new accounts + update existing accounts and download new transactions

If there are more accounts at the bank that you want to import for your user, you can use the Update a bank connection service and set importNewAccounts to true in the payload. Without this parameter, we will always update only those accounts which were downloaded during the initial import.

The flow is the same as for the above use case. Please note, that in some cases the user will have to enter the bank credentials and the second factor.

Update user’s credentials + update existing accounts and download new transactions

It is possible to save or update user credentials during the update bank connection process. For example, if the credentials have changed or wrong credentials were saved during the import or previous update.

To do so, please set storeSecrets to true when triggering the Update a bank connection service.

The general flow is the same as for a regular update.