Skip to content

Transfer API

This API allows you to do peer-to-peer transfers between accounts and cards residing in Enfuce.

Key benefits

You can enable convenient peer-to-peer payments between your customers.
The peer-to-peer transfers are completed without third parties or intermediaries which is why they provide an inexpensive and reliable way to transfer money between your customers.

The Transfer API supports both transfers between accounts as well as between cards. This distinction is useful in cases where there might be multiple cards linked to one account and it is important to keep track of which specific card is the sender and receiver.

The transfer between accounts or cards is processed in real-time and the balance is updated in real-time as well. The API also has a free text field that allows messages or identifiers to be recorded for each transfer.

Illustration of transfer API

Here’s how the transfer works

  1. Customer A wants to pay Customer B 30€, which is their share of a restaurant bill. Customer A initiates an account level peer-to-peer transfer to Customer B. Customer A adds to the transfer a note “My share of Restaurant Italiano 12.5.2022”.
  2. Based on the initiation request, you make a Transfer API call, where fromAccountId is Customer A’s account Id and toAccountId is Customer B’s account. The amount is set as 30€, currency as EUR and the text field as “My share of Restaurant Italiano 12.5.2022”
  3. Based on the API call, Customer A´s account will be debited 30€ and Customer B´s account will be credited 30€. The API creates corresponding transactions to both accounts.
  4. The API response confirms the result of the transfer. For each transfer, a unique transfer id is generated as a reference for the transfer which can be used to link the debiting and crediting transactions together. The response also includes single ids for the crediting and debiting transactions.
  5. If either the debiting or crediting transaction fails due to insufficient funds or the account or card status doesn’t allow posting of transactions, the system will automatically consider this and if needed, reverse the transaction. For example, if debiting from Customer A is successful but crediting to Customer B is unsuccessful because the account is closed, the debiting transaction from Account A will be reversed and this will be reflected in the API response.

Have a look at the corresponding API documentation for more technical details.

Limitations

  • The transfer can only happen between two accounts or two cards. The transfer cannot take place from a card to an account or vice versa.
  • Currency conversion is not supported as part of the transfer. The accounts/cards need to be in the same currency.
  • The transfer can only be completed between accounts or cards that reside within the same institution.

Reversing a transfer

In case the transfer has to be reversed, the issuer needs to reverse both the crediting that is posted to the receiver and the debiting transaction posted to the sender of the transfer. The reversal is done by taking the id:s of the creditTransaction and debitTransaction which are returned in the response when transfer is done:

"creditTransaction": {
"id": "string",
"errorMessage": "string"
},
"debitTransaction": {
"id": "string",
"errorMessage": "string"
}

and using Update transaction endpoint (/transaction/v3/{id}/update/REVERSE) to reverse them.