Mambu Setup

Transaction channels

Creating transaction channels for this connector makes it possible to set up accounting rules for your general ledger so that you can track payments made through the Currencycloud integration.

You will need to create different sets of transaction channels depending on the types of payments to be posted. Read our support article on creating transaction channels if this is unfamiliar to you.

  • For the FX & House Transfer flow:
    • Transaction channel for withdrawal transactions - successful transfers
    • Transaction channel for deposit transactions - successful transfers
    • Transaction channel for refund transactions - failed or cancelled transfers
  • For the Local Payments flow:
    • Transaction channel for withdrawal transactions - successful transfers
    • Transaction channel for refund transactions - failed or cancelled transfers
  • For the Incoming Payments flow:
    • Transaction channel for deposit transactions - successful transfers

Please Note

  • Each transaction channel should have its own general ledger account. The type of the GL account should be agreed internally, according to your accounting practices.
  • All transaction channel IDs should have the structure: channelID_currency, for example, 12102_EUR, 12102_USD
  • You will need to create all transaction channels if using both FX & House Transfers and Local Payments flows. If you are only using one of the two flows, only the corresponding transaction channels should be created.
  • Since incoming payments are common for all Currencycloud flows, transaction channels need to be created for each currency configured in Currencycloud. Transaction Channel
  • If the Accounting in Multicurrency feature is enabled for your Mambu tenant, then a transaction channel with its own general ledger account must be defined for every currency.

Custom fields

Custom fields in Mambu are used to store the status of Currencycloud payments and currency conversions, as well as IDs so that entities can be mapped between Mambu and Currencycloud.

Transaction custom fields

Create the following custom fields for transactions to store the Currencycloud payment details. Transaction custom fields should be defined under a custom field set.

FieldSettingValue
payment IDtypeFree text
usageAvailable
rightsView and Edit for the API user
conversion IDtypeFree text
usageAvailable
rightsView and Edit for the API user
short reference IDtypeFree text
usageAvailable
rightsView and Edit for the API user
transfer or payment statustypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty nametypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty addresstypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty countrytypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty account number or IBANtypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty BICtypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty routing codetypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty IBANtypeFree text
usageAvailable
rightsView and Edit for the API user
payment target amounttypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty referencetypeFree text
usageAvailable
rightsView and Edit for the API user
payment ratetypeFree text
usageAvailable
rightsView and Edit for the API user
payment feetypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty routing code typetypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty routing code valuetypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty routing code type 2typeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty routing code value 2typeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty bank account holder nametypeFree text
usageAvailable
rightsView and Edit for the API user
payment counterparty company nametypeFree text
usageAvailable
rightsView and Edit for the API user
reverse payment original transaction IDtypeFree text
usageAvailable
rightsView and Edit for the API user
payment ID from AML only if AML is enabledtypeFree text
usageAvailable
rightsView and Edit for the API user
payment status from AML only if AML is enabledtypeFree text
usageAvailable
rightsView and Edit for the API user

Client custom fields

Create four new custom fields at the client or group level to store the Currencycloud details. Client and group custom fields should be defined under a custom field set.

FieldSettingValue
sub-account ID - one for client and one for group if usedtypeFree text
usageAvailable
rightsView and Edit for the API user
contact ID - one for client and one for group if usedtypeFree text
usageAvailable
rightsView and Edit for the API user
CCy Account Number or IBANtypeFree text
usageAvailable
rightsView and Edit for the API user
CCy BIC or Routing CodetypeFree text
usageAvailable
rightsView and Edit for the API user

Create the following new custom fields at the deposit account level to store the Currencycloud IBAN for SEPA payments flow. Deposit account custom field should be defined under a custom field set.

FieldSettingValue
IBANtypeFree text
usageAvailable
rightsView and Edit for the API user

General ledger accounts

The general ledger (GL) accounts will be used to log the profit or loss resulting from conversion reversals - cancelling or mirroring.

You will need to create three new General Ledger accounts. You should choose names and IDs for these GL accounts that make sense for your institution and naming strategy.

TypeSettings
expenseEnable the Allow Manual Journal Entries option.
incomeEnable the Allow Manual Journal Entries option.
assetEnable the Allow Manual Journal Entries option.

To automatically log journal entries for incoming payments, the necessary GL accounts need to be created in each currency used in your deposit products.

Deposit products

Enable the Allow Arbitrary Fees option if transfer fees will be charged in Mambu.

In order to change the predefined fee key in MPO config, manual fees need to be set with no predefined amount.

The GL accounts for each currency, created in the previous step, need to be associated with the deposit products created in the corresponding currencies.

Mambu webhooks

The sub-account and contact linkage feature of the connector requires setting up two Mambu webhooks. One webhook is triggered when a deposit account is created for a client. Another webhook gets triggered when a deposit account is created for a group. Read our support article on defining a new webhook in the Mambu User Guide if this process is unfamiliar to you.

For setting up these webhooks:

  1. In MPO, after importing the connector, open the 5.[COMMON] Link MBU customer to CCy subaccount [Linked to MBU webhook] process.

  2. Click the Start node in Edit mode and then select Copy webhook via JSON. You will use the copied URL as the Mambu webhook URL.

  3. In Mambu, access Administration > Webhooks and select Add Notification.

  4. Configure the Currencycloud sub-account and contact linkage for clients webhook as shown below. Use the webhook URL copied from MPO in step 2. Clients Webhook Configuration

  5. In the content text area, use the following message body:

    {
        "customerId": "{RECIPIENT_ID}",
        "customerLegalEntityType": "individual",
        "customerSubAccountId": "Get this value by selecting Clients (Custom Fields) - CCy sub-account id in the Placeholder field",
        "customerContactId": "Get this value by selecting Clients (Custom Fields) - CCy contact id in the Placeholder field",
        "customerFirstNames": "{RECIPIENT_FIRST_NAMES}",
        "customerMiddleNames": "{RECIPIENT_MIDDLE_NAMES}",
        "customerLastNames": "{RECIPIENT_LAST_NAME}",
        "customerEmailAddress": "{RECIPIENT_EMAIL_ADDRESS}",
        "customerPhoneNumber": "{RECIPIENT_MOBILE_PHONE}",
        "customerDateOfBirth": "FORMAT_DATE{CLIENT_BIRTH_DATE,datePattern=yyyy-MM-dd}",
        "customerAddress": "{RECIPIENT_ADDRESS_LINE_1}",
        "customerCity": "{RECIPIENT_ADDRESS_CITY}",
        "customerCountry": "{RECIPIENT_ADDRESS_COUNTRY}",
        "customerPostalCode":"{RECIPIENT_ADDRESS_POSTCODE}",
        "customerStateOrProvince":"{RECIPIENT_ADDRESS_REGION}",
        "depositAccountId": "{ACCOUNT_ID}",
        "currency": "{ACCOUNT_CURRENCY_CODE}"
    }
    
  6. Select Save Changes at the bottom of the page.

  7. Configure the Currencycloud sub-account linkage and contact for groups webhook as shown below. Use the webhook URL copied from MPO in step 2. Groups Webhook Configuration

  8. In the content text area, use the following JSON object:

    {
        "customerId": "{RECIPIENT_ID}",
        "customerLegalEntityType": "company",
        "customerSubAccountId": "Get this value by selecting Groups (Custom Fields) - Currencycloud sub-account id in the Placeholder field",
        "customerContactId": "Get this value by selecting Groups (Custom Fields) - Currencycloud contact id in the Placeholder field",
        "customerFullName": "{RECIPIENT_NAME}",
        "customerEmailAddress": "{RECIPIENT_EMAIL_ADDRESS}",
        "customerPhoneNumber": "{RECIPIENT_MOBILE_PHONE}",
        "customerAddress": "{RECIPIENT_ADDRESS_LINE_1}",
        "customerCity": "{RECIPIENT_ADDRESS_CITY}",
        "customerCountry": "{RECIPIENT_ADDRESS_COUNTRY}",
        "customerPostalCode":"{RECIPIENT_ADDRESS_POSTCODE}",
        "customerStateOrProvince":"{RECIPIENT_ADDRESS_REGION}",
        "depositAccountId": "{ACCOUNT_ID}",
        "currency": "{ACCOUNT_CURRENCY_CODE}"
    
    }
    
  9. Select Save Changes at the bottom of the page.