TransferWise
  • 28 Aug 2019
  • 5 Minutes To Read
  • Print
  • Share
  • Dark
    Light

TransferWise

  • Print
  • Share
  • Dark
    Light

Cross Border Payments Via TransferWise for European Banks

Built by Mambu

tw_horizontal_blue_navy_rgb

TransferWise is a cheap, fast way to send money abroad. The transferwise bank integration guide helps banks to incorporate the TransferWise payment rails. Integrating TransferWise to the bank-website or app can give their customers access to payments to over 70 countries in over 45 currencies.

The TransferWise-Mambu connector providers the bank's customer with real, mid-market currency exchange rates with transparent upfront pricing.

This documentation of the connector specifically covers the banks in the SEPA Eurozone only since the local fund transfer from the mambu user account to TransferWise account is supported via the Mambu Payment gateway. The Connector also excludes the front-end experience that the bank can provide to its customers. Documentation such as Bank Integration Design guides are provided by TransferWise to support this.

You can find more details about "TransferWise for Banks" here and the "Bank integration guide" here.

Mambu ↔ TransferWise integration diagram

This integration aims to facilitate the transfers between accounts in different currencies. The following aspects are handled:

  • Initial configuration of the project
  • SEPA payments and transfers from TransferWise
  • Polling and status updates at the transaction level

Mambu - TransferWise integration diagram

1. Generate initial configuration

  • Access the "Connector setups" process from MPO in view mode
  • Add New task
  • Fill in the following params with the corresponding data
{
    "clientId": <Mambu client Id generated by TransferWise>,
    "clientSecret": <Mambu client secret key generated by TransferWise>",
    "configuration": "TWconfiguration", /*please keep this name as it will be used in the following steps*/
    "creditorIBANcollector": <Mambu collector IBAN opened in TransferWise>,
    "creditorNameCollector": <Collector account holder name>,
    "TWurl": <TransferWise URL>,
    "ApiKey": <Mambu payments system API key>,
    "mambuConfigReference": "mambuConfig", /*please keep this name as it will be used in the following steps*/
    "mambuPassword": <Mambu password>,
    "mambuUser": <Mambu user>,
    "tenantUrl": <Mambu tenant URL>,
    "transactionCustomFieldId”:<transaction status custom field Id from Mambu>,
    "deliveryEstimatedTimeFieldId": <delivery estimated time custom field Id from Mambu>
}

2. Main flow

2.1 Main flow for personal profile payments

For this flow we need the following input:

{
	"clientFirstName": "Mambu Client First Name",
	"clientLastName": "Mambu Client Last Name",
	"debtorIBAN": "Mambu Client IBAN",
	"dateOfBirth": "Mambu Client DOB",
	"phoneNumber": "Mambu Client Phone No",
	"clientEmail": "Mambu Client’s email",
	"recipientName": "Recipient's Name",
	"recipientBody": {
                       [recipient body goes here]
                     },
	"targetAmount": Target Amount,
	"targetCurrency": "Target Currency",
	"legalType": "PRIVATE", /*please keep PRIVATE as legalType*/
	"sourceAmount": Source Amount,
	"sourceCurrency": "EUR", /*please keep EUR as sourceCurrency*/
	"detailReference": "Transfer Details"
}

This information can be provided via the bank UI or API calls or by any other means, as longs as the MPO receives the correct payment details.

For sending the correct recipient information you can use the TransferWise documentation.

Working example:

{
	"clientFirstName": "Alex",
	"clientLastName": "Gabor",
	"debtorIBAN": "RO47BTRL9WW43DGA66YOGSFD",
	"dateOfBirth": "1977-07-01",
	"phoneNumber": "+3725064992",
	"clientEmail": "your@email.com",
	"recipientName": "Sample Recipient",
	"recipientBody": {
               "profile": "profile_id",
               "accountHolderName": "Sample Recipient",
               "currency": "GBP",
               "type": "IBAN",
               "details": {
                       "legalType": "PRIVATE",
                       "IBAN": "GB29NWBK60161331926819"
                          }
                     },
	"targetAmount": 0,
	"targetCurrency": "GBP",
	"legalType": "PRIVATE",
	"sourceAmount": 10,
	"sourceCurrency": "EUR",
	"detailReference": "Lorem ipsum"
}

This flow will contain:

  • creation of a new user in TransferWise;
  • creation of a personal profile for the previously created user;
  • creation of a quote (this contains the conversion amount from source currency into target currency and will generate a payment reference that will be used later on);
  • creation of the transfer in TransferWise (this represents the commitment to pay on Mambu's side; the quote id will be used as reference);
  • creation of the payment from Mambu (the movement of the money from the client's deposit account to the TransferWise collector account).

2.2 Main flow for business profile payments

For this flow we need the following input:

{
 	"companyRole": "Role of person",
	"companyType": "Type of buinsess",
	"descriptionOfBusiness": "Sector / filed of activity",
	"name": "Business name",
	"registrationNumber": "Business registration number",
	"type": "business", /*please keep "business" as type*/
	"webpage": "Business webpage",
	"clientFirstName": "Mambu client First Name",
	"clientLastName": "Mambu client Last Name",
	"debtorIBAN": "Mambu Client IBAN",
	"dateOfBirth": "Mambu Client DOB",
	"phoneNumber": "Mambu Client phone number",
	"clientEmail": "Mambu Client email",
	"recipientName": "Final recipient’s Name",
	"recipientBody": {
                     [recipient body goes here]
                     },
	"targetAmount": Target Amount,
	"targetCurrency": "Target Currency",
	"legalType": "PRIVATE", /*please keep PRIVATE as legalType*/
	"sourceAmount": Source Amount,
	"sourceCurrency": "EUR", /*please keep EUR as sourceCurrency*/
	"detailReference": "Transfer Details"
}

This information can be provided via the bank UI or API calls or by any other means, as longs as the MPO receives the correct payment details.

For sending the correct recipient information you can use the TransferWise documentation.

Working example:

{
 	"companyRole": "OWNER",
	"companyType": "PARTNERSHIP",
	"descriptionOfBusiness": "FREELANCE",
	"name": "Sample business name",
	"registrationNumber": "123456789",
	"type": "business",
	"webpage": "www.sample.com",
	"clientFirstName": "Sample",
	"clientLastName": "`Client",
	"debtorIBAN": "RO47BTRL9WW43DGA66YOGSFD",
	"dateOfBirth": "1977-07-01",
	"phoneNumber": "+3725064992",
	"clientEmail": "your@email.com",
	"recipientName": "Sample Recipient",
	"recipientBody": {
               "profile": "profile_id",
               "accountHolderName": "Sample Recipient",
               "currency": "GBP",
               "type": "IBAN",
               "details": {
                       "legalType": "PRIVATE",
                       "IBAN": "GB29NWBK60161331926819"
                          }
                     },
	"targetAmount": 0,
	"targetCurrency": "GBP",
	"legalType": "PRIVATE",
	"sourceAmount": 5,
	"sourceCurrency": "EUR",
	"detailReference": "Lorem ipsum"
}

This flow will contain:

  • creation of a new user in TransferWise;
  • creation of a business profile for the previously created user;
  • creation of a quote (this contains the conversion amount from source currency into target currency and will generate a payment reference that will be used later on);
  • creation of the transfer in TransferWise (this represents the commitment to pay on Mambu's side; the quote id will be used as reference);
  • creation of the payment from Mambu (the movement of the money from the client's deposit account to the TransferWise collector account).

Transfer flow in MPO

User and profile creation flow in MPO

Transfer in TW1

Transfer in TW2

3. Polling and status updates at the transaction level

The payment from Mambu has the following final statuses:

  • ACSC (Accepted): The process continues with getting the status from TransferWise and updating the transactionCustomFieldId custom field for the withdraw transaction in Mambu.
  • RJCT (Rejected): In this case the transfer in TransferWise is cancelled.

The transfer in TransferWise has the following final statuses:

  • outgoing_payment_sent
  • cancelled
  • funds_refunded

The status updated in TransferWise will also be reflected on the corresponding withdrawal transaction in Mambu, stored in the transactionCustomFieldId field.

4. Observations

  1. For now, the token retrieval of an existing user via MPO processes is not covered. This action requires the existence of a callback URL which will support the backwards connection between Mambu and TransferWise.
  2. For the user to have a business profile a personal profile needs to be created first.
  3. This implementation handles the movement of the funds from the client's deposit account to the TransferWise collector account.The recipient accounts details are provided via transfer method. From there on, TransferWise handles the funding of the transfer to the recipients' account.

Was This Article Helpful?