Bank transfer API
Information about our Bank transfer API.
Overview
Our Bank transfer API is powerful and efficient. You have the ability to link a bank account and validate the IBAN at the same time, and you have the ability to be informed of transfer options and associated fees.
API calls
- Link bank account
- Retrieve bank transfer options
- Create bank transfer fee command
- Execute bank transfer
Our API for performing bank transfers consists of the below calls:
- API call “Link bank account” is mandatory, as you first need to link a bank account to execute a bank transfer
- API call “Retrieve bank transfer options” is mandatory only if you need to be informed of the available transfer options (instant or not, shared or ours)
- API call “Create bank transfer fee command” is mandatory only if you want to specify the transfer options or be informed of the fee associated with the bank transfer
They should therefore not be used if referring to a linked IBAN that is in fact an IBAN within Viva (meaning that it is essentially a wallet)
Before you begin
Before you can use some of these API calls you need to “allow transfers between accounts” in the viva banking app:
Sign in to Viva and select the required account.
Go to Settings > API Access.
Select the Allow transfers between accounts checkbox as shown below:

The new setting is saved automatically.
1. Link bank account
Use this API Call to link a bank account. There is no need to use a separate API to confirm the IBAN is valid, as this API will also validate the IBAN account.
isVivaIban’ parameter.
Find out more about the Link bank account API call and its parameters
2. Retrieve bank transfer options
Use this API Call to:
- a) Check if this bank account supports instant SEPA transfers
- b) Retrieve the cost options available, i.e. Shared or Ours:
- Shared (SHA) means you only pay your bank’s outgoing transfer charge
- Ours (OUR) instruction means you pay all transfer charges
It should therefore not be used if referring to a linked IBAN that is in fact an IBAN within Viva (meaning that it is essentially a wallet)
3. Create bank transfer fee command
Use this API Call to specify the transfer options (instant or not, shared or ours) and/or be informed of the fee associated with the bank transfer.
It should therefore not be used if referring to a linked IBAN that is in fact an IBAN within Viva (meaning that it is essentially a wallet)
4. Execute bank transfer
Use this API Call to execute a bank transfer.
If the transfer options are not specified (i.e. ‘bankCommandId’ is not provided), then the transfer will be performed as ‘isInstant’=false and ‘instructionType’=shared.
Upon successful execution of the bank transfer:
- a ‘
commandId’ parameter will be returned in the response and can be used to track the command’s progress (executed, cancelled etc). - a
isInstantparameter will be returned in the response and specify if the bank transfer is instant or not. - a
feeparameter will be returned in the response and if the transaction has an associated fee, this value will be the fee paid by a merchant and does not include any fee the beneficiary of the transfer will pay.
The bank transfer will fail for any of the below indicative reasons:
- Τhe parameter ‘
walletId’ is missing or is not valid - The ‘
bankAccountId’ parameter is missing or is not valid - The currency of the ‘
bankAccountId’ and the currency of the ‘walletId’ are different - The ‘
amount’ parameter is not greater than zero (0) - Insufficient funds in ‘
walletId’. There should be at least as much money available in ‘walletId’ as the proposed transfer amount
The response will contain the ‘fee’ parameter. If the transaction has an associated fee, this value will be the fee paid by a merchant and does not include any fee the beneficiary of the transfer will pay
Get Support
If you would like to integrate with Viva, or if you have any queries about our products and solutions, please see our Contact & Support page to see how we can help!