Docker Container, .Net & Java libraries for PSD2 APIs

BankingSDK is a software which connects your app to hundreds of bank APIs without any intermediary.

We are a bank independent privately owned software company and that gives sense in our world ;)

Best Security

No delegation of identity to a third party. Your certificates remain on your servers and inside your secured infrastructure.

Best Performance

As you connect your backend/application directly to the banks avoiding the aggregator, you get the fastest access.

Best Privacy

Your users' data remain within your secured and own managed (and GDPR compliant) environment, nothing is exposed to third parties.

Fastest Integration

Using the SDK hides the network management difficulties, allowing your developers to focus your real business processes.

Developers manipulate objects in their own technology without having to convert/serialize exchanged data.

True PSD2.

You, as a TPP, consume directly to (PSD2 XS2A) APIs that are publicly exposed by the banks. There are no intermediary party that potentially maps data retrieved via screen scraping or reverse engineering of the bank’s proprietary mobile API’s.

Telemetry

Telemetry service included in all packages helps you monitor banks APIs downtime. We provide a complete and detailed reporting of all incidents in your communications.

Our default offer includes an on premise training allowing to have our solution installed and be connected in just 2 days. Next to that, you can count on a direct support channel via private chat.

Features

Authentication

The OAuth 2.0 exposes the resources for third parties to connect to banks APIs using the OAuth 2.0 protocol for authentication and authorization

PIS (Payment Initiation Services)

Create payment initiation applications that offer great added value to your customers and users. PIS will enable secure access to all European online accessible payments accounts..

AIS (Account Information Services)

Customers want relevant, up-to-date information at their fingertips. They need to understand the available choices and their implications, both today and for the future. Our Account Information Service (AIS) feature of the SDK enables their account information to be available in your platform.

Developers first!

How to list bank accounts.


// Get the connector object for the context you have created for the bank
// you want to connect to.
BankingConnectorConfig config = new BankingConnectorConfig();
config.setConnectorId(BankingFactory.BE-CRELAN);
...
BankingConnector connector = BankingFactory.createConnector(config);

// Restore the context of the PSU for the connector created above
connector.setUserContext(bankUserContext);

// Retrieve the bank accounts of the PSU for the Belgian ING bank.
BankingResult<List<BankingAccount>> result = connector.getAccounts();
List<BankingAccount> accounts = result.getData();

//Process the returned data (list of accounts)
for(BankingAccount account : accounts)
{
// Processing the results.
}

First the developer instantiates an object which will hold the configuration for a given bank.
He sets some parameters such as eIDAS certificates, the bank's ID, etc.

Second, he instantiates a connector object with the given configuration.
That connector object is able to retrieve bank accounts, statements or initiate a payment.

In our example, the connector object sends back a list of bank accounts for a given (bank) user (bankUserContext).


// Get the connector object for the context you have created for the bank
// you want to connect to.
BankingConnectorConfig config = new BankingConnectorConfig();
config.ConnectorId=BankingFactory.BE-CRELAN>;
...
BankingConnector connector = BankingFactory.createConnector(config);

// Restore the context of the PSU for the connector created above
connector.UserContext=bankUserContext;

// Retrieve the bank accounts of the PSU for the Belgian ING bank.
BankingResult<List<BankingAccount>> result = connector.getAccounts();
List<BankingAccount> accounts = result.getData();

//Process the returned data (list of accounts)
foreach(BankingAccount account in accounts)
{
// Processing the results.
}

First the developer instantiates an object which will hold the configuration for a given bank.
He sets some parameters such as eIDAS certificates, the bank's ID, etc.

Second, he instantiates a connector object with the given configuration.
That connector object is able to retrieve bank accounts, statements or initiate a payment.

In our example, the connector object sends back a list of bank accounts for a given (bank) user (bankUserContext).

How to list transactions from a bank account (AIS)


// Get the connector object for the context you have created for the bank
// you want to connect to.
BankingConnectorConfig config = new BankingConnectorConfig();
config.setConnectorId(BankingFactory.BE-CRELAN);
...
BankingConnector connector = BankingFactory.createConnector(config);

// Restore the context of the PSU for the connector created above
connector.setUserContext(bankUserContext);

// Retrieve the bank accounts of the PSU for the Belgian ING bank.
BankingResult<List<BankingTransaction>> movementsResult = connector.getTransactions(accountId);
List<BankingTransaction> transactions = movementsResult.getData();

//Process the returned data (list of transactions)
for(BankingTransaction transaction : transactions)
{
// Processing the results.
}

First the developer instantiates an object which will hold the configuration for a given bank.
He sets some parameters such as eIDAS certificates, the bank's ID, etc.

Second, he instantiates a connector object with the given configuration.
That connector object retrieves a list of transactions for a given bank account (accountId).

Your last step is to iterate through statements (transactions).


// Get the connector object for the context you have created for the bank
// you want to connect to.
BankingConnectorConfig config = new BankingConnectorConfig();
config.ConnectorId=BankingFactory.BE-CRELAN;
...
BankingConnector connector = BankingFactory.createConnector(config);

// Restore the context of the PSU for the connector created above
connector.UserContext=bankUserContext;

// Retrieve the bank accounts of the PSU for the Belgian ING bank.
BankingResult<List<BankingTransaction>> movementsResult = connector.getTransactions(accountId);
List<BankingTransaction> transactions = movementsResult.getData();

//Process the returned data (list of transactions)
foreach(BankingTransaction transaction in transactions)
{
// Processing the results.
}

First the developer instantiates an object which will hold the configuration for a given bank.
He sets some parameters such as eIDAS certificates, the bank's ID, etc.

Second, he instantiates a connector object with the given configuration.
That connector object retrieves a list of transactions for a given bank account (accountId).

Your last step is to iterate through statements (transactions).

How to initiate a payment (PIS)


BankingTransfer bankingTransfer = new BankingTransfer();

bankingTransfer.setAmount(amount);
bankingTransfer.setDebtorAccount(account);
bankingTransfer.setDebtorName(debtorName);
bankingTransfer.setCurrency("EUR");
bankingTransfer.setExecutionAt(Calendar.getInstance());
bankingTransfer.setRemittanceInformation(remittance);
bankingTransfer.setBankingRecipient(recipient);

//Create the tranfert request to give to the connector
AddTransferRequest transferRequest = new AddTransferRequest();
transferRequest.setBankingTransfer(bankingTransfer);
transferRequest.setCallbackUrl(url);
BankingResult<BankingTransfer> result = connector.addTransfer(transferRequest,tppFlowId.toString());
Response.sendRedirect(result.getURL());


As in the previous example, the developer has firstly to set the config and get a Connector object

Once that's done, just create a BankingTransfer object to create a Payment Initiation.

Set the properties accordingly.

Create a AddTransferRequest object and set the correct values (callback URL once the PIS is initiated, etc).

Finaly, execute the Payment Initiation by calling the AddTransfer method of the Connector.

You should receive a result with an URL you have to redirect your user to.


BankingTransfer bankingTransfer = new BankingTransfer();

bankingTransfer.Amount=amount;
bankingTransfer.DebtorAccount=account;
bankingTransfer.DebtorName=debtorName;
bankingTransfer.Currency="EUR";
bankingTransfer.ExecutionAt=Calendar.getInstance();
bankingTransfer.RemittanceInformation=remittance;
bankingTransfer.BankingRecipient=recipient;

//Create the tranfert request to give to the connector
AddTransferRequest transferRequest = new AddTransferRequest();
transferRequest.BankingTransfer=bankingTransfer;
transferRequest.CallbackUrl=url;
BankingResult<BankingTransfer> result = connector.AddTransfer(transferRequest,tppFlowId.toString());
Response.Redirect(result.getURL());


As in the previous example, the developer has firstly to set the config and get a Connector object

Once that's done, just create a BankingTransfer object to create a Payment Initiation.

Set the properties accordingly.

Create a AddTransferRequest object and set the correct values (callback URL once the PIS is initiated, etc).

Finally, execute the Payment Initiation by calling the AddTransfer method of the Connector.

You should receive a result with an URL you have to redirect your user to.

Yes, BankingSDK is that simple to use!