Skip to content

Bank Integration with Salt Edge

Javapackage: com.etendoerp.psd2.bank.integration

Javapackage: com.etendoerp.psd2.bank.integration.template

Before you begin

This module requires the Financial Extensions Bundle to be installed in your Etendo environment. If you are unsure whether it is installed, contact your system administrator before proceeding. For installation instructions, visit the marketplace: Financial Extensions Bundle. For available versions and core compatibility, visit Financial Extensions - Release notes.

Overview

This page explains how to connect bank accounts to Etendo so that transactions are imported automatically and outgoing payments can be initiated directly from the system. It is intended for finance and accounting staff who perform bank reconciliations and vendor payment runs, and for administrators who perform the initial setup.

The module provides two main capabilities, both powered by Salt Edge — an Open Banking platform that acts as a secure intermediary between Etendo and banking institutions, compliant with the PSD2 directive.

  • AIS (Account Information Service): Securely connect bank accounts and automatically download transactions for reconciliation.

    flowchart LR
        A([Connect bank account]) --> B[Grant permissions]
        B --> C[Download transactions]
        C --> D([Bank statement ready<br/>for reconciliation ✅])
    - PIS (Payment Initiation Service): Initiate vendor payments directly from Etendo, with authorization handled through the bank.

    flowchart LR
        A([Create Payment OUT]) --> B[Generate bank payment]
        B --> C[Authorize at bank portal]
        C --> D[Check payment status]
        D --> E([Payment executed ✅])

Transaction import (AIS) works for Bank and Card accounts; bank payment initiation (PIS) is available only for Bank accounts.

AIS PIS
Automated transaction import Direct payment initiation
Multiple banks simultaneously SEPA, FPS, and DOMESTIC templates
Bank credentials never stored in Etendo Authorization handled by the bank

Prerequisites

Confirm the following before using the Bank Integration functionality:

  • Server Configuration: Your system administrator has configured the application URL context.url in the Etendo server and run the setup process. The context.url value must not include the context path: for example, context.url=http://localhost:8080 in a local environment, or the production URL of the environment. Contact your IT team or implementation partner to confirm this is done.
  • Salt Edge API Key: Your organization needs an API Key (request it from Etendo Support). An administrator enters it once, at Client level (see Setup, step 1).
  • Financial Accounts: The Financial Accounts that will be linked to your bank accounts exist in Etendo.

Setup

1. Configure Salt Edge API Key

Application > General Setup > Client > Client

As an Administrator:

  1. Open the Client window and select your Client.
  2. In the Bank Integration field group, enter the Api Key provided by Support Service.

    API Key field

    Info

    The API Key is configured once per Client and shared by every user of that Client, including scheduled processes.

    Button and Field Visibility

    Bank Integration buttons and fields are hidden until the Client has an API Key. If you do not see Connect Account or Generate Bank Payment, check the Client window. Generate Bank Payment also requires a Bank type Financial Account (see Required Configuration).

2. Synchronize Bank Providers

Financial Management > Receivables and Payables > Setup > Bank Integration > Synchronize Bank Providers

Run this process once during initial setup, and again whenever a bank is missing from the list.

Info

This step is required before assigning a Bank Provider to a financial account or initiating payments.

Show test banks (testing environments only)

By default, sandbox (fake) providers are hidden from the bank list. To display them, open the Preference window ( Application > General Setup > Application > Preference) and set the Show Fake Providers property to Y. It is defined by default at System level (Organization *) with the value N. Use it only in testing environments.

3. Configure Financial Accounts

Financial Management > Receivables and Payables > Transactions > Financial Account

The module supports financial accounts of type Bank and Card. The fields described below apply equally to both types.

For each financial account you want to synchronize with a bank, open it and fill in the following fields in the Bank Integration field group of the Financial Account header:

Bank Integration field group in the Financial Account window

  • Bank Provider: The bank associated with this account. If set, the bank selection step is skipped when connecting (AIS) or initiating payments (PIS). Leave empty to select the bank manually each time — once you successfully connect, the system automatically fills this field with the bank you connected to. The provider list must be synchronized first — see Step 2.
  • Import From Date: Start date for importing transactions. If left empty, the system uses the last imported bank statement date. Set this only for the initial import (e.g., beginning of fiscal year) — leave it empty afterward so imports continue automatically from where they left off.
  • Import To Date: End date for importing transactions. If left empty, the system uses today's date. Leave it empty in normal operation. Also leave it empty so the automatic Get Bank Statements process includes this account — if a date is set, the process skips that account on every scheduled run.
  • Statement Grouping: Controls how imported transactions are grouped into bank statements:

    • Within 1 day (default): groups transactions from the same day into a single statement.
    • New statement each run: creates a new statement on every import.
    • Within 7 days: groups transactions into a single statement per week; reopens the statement if it was already processed.
    • Within 30 days: groups transactions into a single statement per month; reopens the statement if it was already processed.

    Use a wider grouping when importing frequently to reduce the total number of statements. - Salt Edge Account ID: Read-only. Etendo fills it automatically when the account is connected; you do not need to enter it.

Bank Connection Flow (AIS)

Connect a Bank or Card Account

Before you start, make sure the API Key is configured (Setup, step 1) and the Financial Account exists.

Tip

If you already know the IBAN, enter it on the Financial Account before connecting. If it is empty, Etendo can fill it in for Bank accounts (see step 4).

  1. Open the Financial Account (Bank or Card type) and click Connect Account. A connection widget opens in a popup. Search for your bank and select it.

    The list only shows banks for the Country set in the Bank Account section of the Financial Account. If your bank is missing, check that Country and, if needed, run Synchronize Bank Providers again. Once connected, the bank is saved as the Financial Account's Bank Provider.

    Salt Edge bank selection widget

    Info

    If you have assigned a Bank Provider to the Financial Account (see Setup - Step 3), the bank selection step is skipped automatically and you will be taken directly to your bank's authentication page.

  2. Authorize the connection: your bank will ask you to confirm permission for Salt Edge to access your account information.

    Bank authorization consent screen

    Review the permissions, confirm, and you will be redirected to your bank's login page. Log in with your bank credentials (username, password, and any additional authentication required by your bank).

    Bank login page for credential entry

    Important Security Note

    • Your bank credentials are entered directly on your bank's website, not in Etendo
    • Salt Edge never stores your bank credentials
    • Etendo never has access to your bank username or password
  3. Select the account to connect.

    Select Account

    After a successful login, Salt Edge returns the accounts it finds for that bank connection. Etendo always shows a Select Your Bank Account screen so you confirm which one to link to this Financial Account.

    The list only shows candidate accounts that match the Type of the Financial Account you are connecting (bank accounts for a Bank Financial Account, credit cards for a Card Financial Account), and each option shows the account or card name together with its IBAN or masked card number so you can identify the correct one. Select an option and click Confirm.

    Warning

    The process stops with an explanatory message if the system cannot find a valid account to link. This happens, for example, when no candidate account matches the expected type, when the currency does not match, or when every candidate account is already linked to another Financial Account. Resolve the issue and try again.

  4. After you confirm the account, Etendo completes the connection differently depending on the Financial Account Type:

    • IBAN empty: Etendo fills it with the IBAN returned by the bank (and fills Country from the IBAN if it is empty).
    • Returned IBAN invalid, different from the IBAN already entered, or from a different country than the Financial Account's Country: the connection is established and Etendo shows a warning. Set the IBAN manually.
    • The system automatically completes the masked card number returned by the bank, for example •••• •••• •••• 1285.
  5. A success page confirms the connection. Close the popup. The Financial Account window refreshes by itself, so Get Bank Statement is available without reloading the page. The connection details appear in the Bank Connections tab.

Importing Transactions

There are two ways to import bank transactions:

Option 1: Manual Import (Single Account)

For importing transactions on-demand for specific accounts:

  1. Open the Financial Account window, select one or more financial accounts, and click the Get Bank Statement button (singular — imports only the selected account(s)).

    Get Bank Statement button in the Financial Account window

  2. The system connects to the bank, retrieves the transactions in the configured date range, and creates or updates bank statements with their lines. Each statement is named after the date range (earliest to latest transaction date) of the imported transactions.

    Note

    Only transactions within Import From Date and Import To Date are imported.

    Posted vs. pending transactions

    Only transactions the bank has already posted are imported. Transactions still pending at the bank are excluded and will be picked up in a later import once the bank confirms them — this can take anywhere from a few hours to several days depending on the bank, so the most recent movements may not appear immediately after connecting or after a Get Bank Statement run.

  3. A summary message shows the result: whether the import completed successfully, whether no new transactions were found, or whether an error occurred.

    Import results summary message

    Tip

    Use this option when you need to immediately import transactions for specific accounts or when you want to review the import results right away.

    Bank statement lines created after transaction import

Option 2: Automatic Import (Scheduled Process)

For regular, automated imports across the connected accounts you have access to:

General Setup > Process Scheduling > Process Request

  1. Click New to create a process request, select Get Bank Statements (plural — runs automatically for all the connected accounts the process request has access to, unlike the manual Get Bank Statement button in Option 1) in the Process field.
  2. Set Timing to Schedule, choose the Frequency (for example, Daily), and click Schedule Process. The process runs automatically at the chosen interval.

    Warning

    The process imports only accounts that the user and role who created the process request are allowed to access. Other connected accounts are skipped, so create the request with a role that can see all the accounts you want to import. See Common Issues and Solutions if an account is not imported.

    Scheduled process request for automatic bank statement import

    Info

    Recommended Schedule:

    • Run once a day, since transaction availability depends on each bank's update frequency.
    • Consider your bank's update frequency and your business needs.

    Per-account log detail

    Each run of Get Bank Statements logs an entry for every account processed in that run, whether or not it had activity, linked to the Financial Account it belongs to. Review the Bank Integration Logs window (see Monitoring and Logs) to check this detail account by account — open the JSON Info field of each entry for the full detail.

Connection Management

Financial Management > Receivables and Payables > Transactions > Financial Account

To view all your bank connections, open the Financial Account window and go to the Bank Connections tab.

Connection Status

Bank connections can be Active, Inactive, or Disabled (e.g., when authentication expires).

The Bank Connections tab shows each connection's status and last error:

Bank Connections tab with Connection Status and Last Fail Message columns

Status What to do
Active No action needed, unless the connection is failing (see the note below).
Inactive Reconnect when ready — see Reconnecting a Bank Connection.
Disabled See Reconnecting a Bank Connection or Common Issues and Solutions.

Active with Last Fail Message

A connection marked Active can still be failing, for example when your bank consent has expired. Check the Last Fail Message column. If it contains a message, use Reconnect Account.

Disconnecting a Bank Connection

Etendo offers two ways to disconnect a bank connection: a simple disconnection that keeps the connection history, and a permanent deletion that removes it entirely.

Open the Financial Account window, go to the Bank Connections tab, and select the connection you want to disconnect. Click the Disconnect Account button. A Disconnect Account dialog opens with a Permanent deletion checkbox.

Disconnect Account dialog with the Permanent deletion checkbox

Option 1: Simple Disconnection

Leave the Permanent deletion checkbox unchecked and click DONE. The connection status changes to Inactive and no data is deleted. Reconnect the same account later at any time (see Reconnecting a Bank Connection) to restore the connection and keep its existing transaction history.

Option 2: Permanent Deletion

Check the Permanent deletion checkbox and click DONE.

Warning

Important:

  • This action is irreversible.
  • All traces of the connection are permanently deleted from both Etendo and Salt Edge.
  • If you reconnect the same account later, the retrieved transactions have different identifiers and may be duplicated if you import periods that were already reconciled.

Info

In both cases, existing pending transactions already imported are not affected, and no new transactions can be imported from the connection until you reconnect it.

After disconnection, verify the result in the Bank Connections tab: the connection shows as Inactive for a simple disconnection, or no longer appears in the list for a permanent deletion.

Reconnecting a Bank Connection

If a connection shows as Inactive or Disabled, or is Active but has a Last Fail Message (see Connection Status), open the Financial Account — the Reconnect Account button appears in the window's top toolbar. Click it to re-authenticate with your bank and restore the connection to Active. You'll go through the same bank authorization, login, and account selection steps described above (see steps 2–4 in Connect a Bank or Card Account).

Reconnect Account button in the Financial Account toolbar

Bank Payment Initiation (PIS)

In addition to importing bank transactions (AIS), this module allows you to initiate bank payments directly from Etendo. When you create a Payment OUT record in Etendo, you can send it to your bank for authorization and execution — all without leaving Etendo.

How Bank Payments Work

The payment initiation flow works as follows:

  1. Create a Payment OUT record in Etendo as usual (or pay a Purchase Invoice) and click the Generate Bank Payment button, available on the Payment OUT and, once the payment is processed, on the Purchase Invoice header. A form appears with pre-filled values (amount, creditor, template, etc.).
  2. Review and confirm — a bank authorization popup opens where you authorize the payment in your bank's secure environment.
  3. The payment status is tracked automatically in Etendo.

Payment Templates

The system supports three payment templates, which determine the format and required information for the payment:

Template Currency Required Fields Use Case
SEPA EUR only Creditor IBAN Eurozone bank transfers
FPS GBP only Sort Code + Account Number UK Faster Payments
DOMESTIC Any At least one of: IBAN, BBAN, or Account Number Other domestic transfers

Note

The template is automatically selected based on the payment's currency, as shown in the table above. Change it manually in the form if needed.

Required Configuration

Before generating bank payments, make sure the payment method assigned to the financial account is configured correctly.

Financial Management > Receivables and Payables > Transactions > Financial Account

  1. Open the Financial Account linked to the bank connection, go to the Payment Method tab, and select the payment method used for bank transfers.
  2. In the Payment OUT section, make sure Automatic Withdrawn is disabled (unchecked). This lets the payment be created without being executed automatically, so you can execute it later from the Generate Bank Payment button (on the Payment OUT or, once processed, the Purchase Invoice).

    Payment Method – Automatic Withdrawn disabled

  3. Make sure the Wire Transfer checkbox is enabled for this payment method — if it is disabled, the Generate Bank Payment button does not appear when creating payments. You can enable it globally in the Payment Method window, or as an override in this same Payment Method tab of the Financial Account.

Warning

The Generate Bank Payment button appears on the Payment OUT record, and on the Purchase Invoice header once the payment has been processed, only when all of these conditions are met:

  • The Financial Account is of type Bank (not Card or Cash).
  • Automatic Withdrawn is disabled.
  • Wire Transfer is enabled, globally or as an override on this Financial Account.

Generating a Bank Payment

You can create the payment from a Purchase Invoice ( Application > Procurement Management > Transactions > Purchase Invoice) or directly from a Payment OUT ( Financial Management > Receivables and Payables > Transactions > Payment Out). In both cases, when you add the payment you select the amount and, in Action Regarding Document, choose Process Made Payment(s).

  1. Add the payment and select the amount to pay. In Action Regarding Document, select Process Made Payment(s).

    Add Details dialog for a Payment OUT with Process Made Payment(s) selected

    Info

    Process Made Payment(s) processes the payment without executing it, which makes the Generate Bank Payment button appear on the record.

  2. Click the Generate Bank Payment button, available on the resulting Payment OUT record and, once the payment has been processed, also on the Purchase Invoice header.

    Generate Bank Payment button in the Payment OUT window

  3. A process form appears with the following pre-filled fields:

    Field Default Value Description
    Template Based on currency Payment template (SEPA, FPS, or DOMESTIC)
    End To End Document number Unique reference for the payment (max 35 characters)
    Creditor Name Business Partner name Name of the payment beneficiary
    Amount Payment amount Amount to transfer
    Currency Payment currency Currency of the transfer
    Description Payment description; Invoice No.: <invoice number> when the payment comes from an invoice Description of the payment
    Creditor Iban Business Partner's IBAN Required for SEPA and optionally for DOMESTIC. Stays empty if the Business Partner has no IBAN
    Creditor Account Number Business Partner's account Required for FPS, optional for DOMESTIC. Not shown for the SEPA template

    Bank payment process form with pre-filled fields

    Tip

    The form values are automatically calculated from the Payment and Business Partner data. Make sure your Business Partners have their bank account information (IBAN or account number) configured for the best experience.

  4. Review the values and click Done to initiate the payment. A bank authorization popup opens where you must authorize the payment with your bank.

    Bank authorization popup for payment confirmation

    Warning

    Do not close the popup until you have completed the authorization process with your bank. The payment cannot proceed without your authorization.

  5. After completing authorization, you will see a confirmation page indicating that the payment has been registered. Close the popup and return to Etendo — the payment status will be updated automatically.

Viewing Bank Payments

All initiated bank payments are tracked in the Bank Payments tab of the Payment OUT record ( Financial Management > Receivables and Payables > Transactions > Payment Out). Each entry shows the Status, Amount, Currency, Creditor Name and Creditor IBAN, plus the Debtor Name and Debtor IBAN (your own Financial Account) and the linked Financial Account. Use Refresh Payment to check the latest status on demand.

Bank Payments tab showing payment records and statuses

Refreshing Payment Status

Payment status is kept up to date in three ways: automatic updates, a manual refresh, and a scheduled refresh.

Automatic Updates

The bank connection service sends automatic status notifications to Etendo whenever the payment status changes at the bank. These updates are processed immediately and the payment record is updated in real-time.

Manual Refresh

If you want to check the latest status immediately:

Go to the Bank Payments tab, select one or more payment records, and click the Refresh Payment button.

Refresh Payment button in the Bank Payments tab

The system queries the bank for the current status and updates the record.

Tip

Use manual refresh when you want to verify the current status of a payment without waiting for the next automatic update.

Scheduled Automatic Refresh

The Refresh Pending Payments process runs every 10 minutes by default and acts as a safety net in case an automatic update is missed. To adjust the frequency, create a new Process Request for this process and unschedule the system-imported entry ( General Setup > Process Scheduling > Process Request).

Common Issues and Solutions

Connection and API Key

No API Key Available
  • Ensure the Client has the Salt Edge API Key configured.
  • Check that the API Key is correct and active.
Invalid or expired API Key
  • Your API Key has expired or is no longer valid.
  • Contact your Etendo administrator or Etendo Support to obtain a new API Key.
  • Update the API Key in the Client window (Api Key field, in the Bank Integration field group).
Could not get redirect link
  • The bank connection service may be temporarily unavailable.
  • Try again in a few minutes. Contact support if the issue persists.
No new transactions found
  • Check your Import From/To Date configuration.
  • Verify that there are new transactions in your bank account and that the date range covers the expected period.
  • If the import comes from the scheduled Get Bank Statements process, check that the user and role of the process request have access to the Financial Account.
  • Remember that transactions still pending at the bank are not imported yet — see Posted vs. pending transactions. Wait for the bank to confirm them and run Get Bank Statement again.
Requested date exceeds the bank's maximum supported history
  • Each Bank Provider has a maximum historical range it can actually provide (Max Fetch Interval). If the Import From Date configured on the Financial Account is older than what the bank supports, the import result includes a warning stating that the requested date exceeds the maximum supported by that bank.
  • This warning is informational only — no action is required. The bank has no further history available.
  • The system already imports the maximum history it can retrieve, starting from the oldest date the bank supports.
Rate limit or service temporarily unavailable
  • The system has exceeded the allowed number of API requests, or Salt Edge is undergoing maintenance.
  • These errors are transient — wait a few minutes and try again. Scheduled processes retry automatically.
Connection Status shows Disabled

A connection may show as Disabled due to authentication expiration, communication errors with Salt Edge, or temporary bank unavailability.

  1. Execute Get Bank Statements again to see if the issue persists.
  2. If still Disabled, click Reconnect Account in the Financial Account toolbar (see Reconnecting a Bank Connection).

Payment Initiation

Template Required / Creditor Name Required
  • The payment template could not be determined, or the Business Partner name is missing.
  • Ensure the payment has a valid currency and a Business Partner with a valid name assigned.
IBAN Required for SEPA
  • SEPA payments require the creditor's IBAN.
  • Configure the Business Partner's bank account with a valid IBAN.
SEPA Requires EUR / FPS Requires GBP / Sort Code or Account Number Required for FPS
  • SEPA payments only use EUR; FPS only uses GBP and requires both sort code and account number.
  • Check the payment currency, switch to the DOMESTIC template if needed, and verify the Business Partner's bank account details.
Payment status stuck in Initiated or Authorizing
  • The user may not have completed the authorization at the bank.
  • Click Refresh Payment to check the latest status. If the issue persists, contact Etendo Support with the payment details.
Bank authorization popup was blocked / Payment Not Found after returning from bank
  • Your browser may have blocked the popup — allow popups for the Etendo site and try again.
  • If the redirect failed, check the Bank Payments tab. The payment may have been processed correctly and the status updated automatically shortly after.

Getting support

Before contacting support, check the Bank Integration Logs window for error details, verify your API Key, and try the Reconnect Account button for connection issues. When contacting Etendo Support, include the error message, relevant log entries (including JSON Info), the financial account affected, and the date and time of the issue.

Monitoring and Logs

The module provides two dedicated windows for monitoring integration activity.

Bank Integration Logs

Financial Management > Receivables and Payables > Setup > Bank Integration > Bank Integration Logs

Displays all activity and error logs generated by the integration. Each entry includes:

Field Description
Financial Account The financial account associated with the event.
Execution Day The date and time when the event occurred.
Status The result of the operation: Initial, Processed, Success or Error.
Source The process that generated the log (e.g., Accounts, Consents, Transactions, PIS Create Payment, PIS Refresh Payment).
Log A human-readable description of the event, when available. This field may appear empty for some entries — rely on JSON Info in that case.
JSON Info The raw API response. This is the authoritative source of detail for troubleshooting and support.

Info

Log entries are kept for 90 days and older entries are purged automatically. Export or copy the relevant JSON Info before that window closes if you need to keep a record for support or audit purposes.

Tip

Filter by Financial Account and sort by Execution Day descending to quickly find the most recent events.

Bank Provider

Financial Management > Receivables and Payables > Setup > Bank Integration > Bank Provider

Lists all banks available through Salt Edge. Each entry shows the Provider Code and Provider Name.

Additional Resources


This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L.