Web Form 2.0 Public Documentation

Flow and Navigation

General

Beyond appearance, you can configure how the form behaves throughout the user journey, including account selection, credential handling, payment steps, and authentication flows.

Account Selection

After a successful bank connection, the form can display the imported accounts and allow users to select which ones to use.

You can configure the form to allow:

  • No selection — all accounts returned by the bank are imported.

  • Single selection — the user can select one account.

  • Multiple selection — the user can select multiple accounts.

You can also define whether accounts are preselected when the account selection screen opens.

Credential Saving

The form can offer users the option to save their bank credentials for future use. Four modes are available:

  • Show — the option is displayed and the user decides whether to save their credentials.

  • Hidden — the option is not displayed and credentials are not saved.

  • Mandatory — the option is displayed and the user must agree to save their credentials before continuing.

  • Implicit approval — credentials are saved automatically without prompting the user.

When credentials are saved, the user's TAN method is also stored automatically.

Note: Standalone payment and standing order forms use a separate credential-saving setting from other flows.

Payment Views

For payment flows, you can hide or skip individual screens to create a more streamlined experience:

  • Skip confirmation view — skips the order review screen before the payment is submitted.

  • Hide payment summary — hides counterparty information from the payment summary.

  • Hide payment overview — removes the payment overview from the flow entirely.

Note: If the web form is embedded in your application and you skip the confirmation view, handle the onComplete callback to ensure users still receive a completion signal.

Data Masking

Instead of hiding an entire screen, you can mask individual IBANs. Masked IBANs display only the first and last characters, while the characters in between are replaced with asterisks. This allows users to recognize an account while reducing the amount of sensitive information visible on screen.

Masking can be configured independently for:

  • The sender IBAN during payment initiation.

  • Account IBANs displayed on the account selection screen.

Interface Iteration

Interface iteration applies to account information flows only. If a bank supports multiple connection interfaces, you can control how the form proceeds from one interface to the next:

  • Manual — the user decides whether to continue with the next interface.

  • Automatic login — the user decides whether to continue, but authentication data is carried over automatically when possible.

  • Automatic — the form proceeds through available interfaces and authentication automatically.

Note: Both automatic modes can reuse authentication data only if the login data matches the previous interface and the user has allowed finAPI to store their login data.

Bank Details

When a BLZ, BIC, or IBAN is provided in the API request, you can control whether the preselected bank can be changed.

If bank selection is locked, the user cannot change the specified bank and proceeds directly to the login screen.


Technical Setup

Configure all flow and navigation settings under functionality in the profile.

All fields are optional. If a field is not specified, the default value listed in the corresponding table applies.

Fields

Paths are relative to functionality.

Field

Values

Default

Description

accountSelectionConfiguration.mode

NONE | SINGLE | MULTIPLE

NONE

Whether and how users can select accounts. With NONE, all accounts returned by the bank are imported.

accountSelectionConfiguration.preselected

boolean

true

Whether accounts are pre-selected when the selection screen opens. With MULTIPLE all accounts are preselected, with SINGLE only the first one.

storeSecrets

RENDER | HIDDEN | MANDATORY | IMPLICIT_APPROVAL

RENDER

Credential saving behavior. Changeable only by finAPI support — see the note below.

storeSecretsSap

RENDER | HIDDEN | MANDATORY | IMPLICIT_APPROVAL

IMPLICIT_APPROVAL

Credential saving behavior for the standalone payment and standing order forms. Unlike storeSecrets, you can set every value yourself.

skipConfirmationView

boolean

false

Skip the final view when the form completes successfully

hidePaymentSummary

boolean

false

Hide the counterparty data from the payment summary. Changeable only by finAPI support — see the note below.

hidePaymentOverview

boolean

false

Hide the payment overview from the flow entirely. Changeable only by finAPI support — see the note below.

maskedFields

array of PIS_SENDER_IBAN | ACCOUNT_SELECTION_IBAN

null

Which sections are displayed masked. PIS_SENDER_IBAN masks the IBAN of the payment initiator, ACCOUNT_SELECTION_IBAN the IBANs on the account selection screen. Values must be unique.

interfaceIteration

MANUAL | AUTOMATIC_LOGIN | AUTOMATIC

MANUAL

How the form handles fallback bank interfaces (XS2A, FINTS_SERVER, WEB_SCRAPER) — account information flows only, ignored for payment initiation

bankDetails

LOCKED | EDITABLE

LOCKED

Whether the user can change a bank that was pre-selected via BLZ, BIC or IBAN

storeSecrets, hidePaymentSummary and hidePaymentOverview can be changed only by the finAPI support team. Finalize the rest of your customization first, then email support@finapi.io with your profile.id.

Decoupled SCA behavior — whether polling starts as soon as the screen appears or only after the user clicks a button — is not part of the profile API. It is configured at mandator level; contact your finAPI contact person if you need it changed.

Example

JSON
{
  "functionality": {
    "accountSelectionConfiguration": {
      "mode": "MULTIPLE",
      "preselected": true
    },
    "storeSecretsSap": "IMPLICIT_APPROVAL",
    "skipConfirmationView": false,
    "maskedFields": ["PIS_SENDER_IBAN", "ACCOUNT_SELECTION_IBAN"],
    "interfaceIteration": "AUTOMATIC",
    "bankDetails": "LOCKED"
  }
}