Mambu Setup

Create transaction channels

You will need to create ten Transaction Channels. Each Payment Scheme (FPS | CHAPS) should have a dedicated transaction channel paired with the transaction type (Deposit | Withdrawal).
- three for Outbound transaction: MBU_Withdrawal_FPS, MBU_Withdrawal_CHAPS, CB_Withdrawal_FPS - three for Inbound transaction: CB_Deposit_FPS, CB_Deposit_CHAPS, MBU_Deposit_FPS - two for Intrabank and Interbank transfer transaction: MBU_Transfer, CB_Transfer - two for Bacs transaction: CB_Withdrawal_Bacs, CB_Deposit_Bacs.
Transaction Channels
CHAPS Deposit Transaction Channel
FPS Withdraw Transaction Channel

Create custom fields

  1. Create custom fields for Deposit Account entity for saving ClearBank Virtual Account ID, Deposit IBAN, Sort Code, Account Number, Mandates and Assigned Deposit User and grant read and write permissions for the MPO API user (via its role). These fields can be added to any existing Standard Custom Field Set or a new custom field set of type Standard can be created.

    • virtualAccountId, ibanDeposit, sortCode, accountNumber, mandateId and assignedDepositUser custom fields should be created as regular text fields.
    • virtualAccountId, ibanDeposit and accountNumber custom fields should be unique.
    • mandateId custom field is needed only for Bacs scheme.
    • assignedDepositUser custom field is optional. This field is used to save the encoded key of the user that is assigned to a specific deposit account (Credit Officer). Administration Fields
  2. Create custom fields for Transactions entity for saving payee (creditor) and payer (debtor) transaction details and transaction key used for reconciliation. Give access rights for all the transaction channels where these custom fields are used.

  • creditorName, creditorIBAN, debtorName, debtorIBAN, paymentReference, transactionEndToEndId, transactionStatuscustom fields should be created as regular text fields.
  • transactionEndToEndId custom field stores the transaction key: for Outbound is Mambu Withdrawal encoded key and, for Inbound is ClearBank EndToEndTransactionId. This field is needed also for Reconciliation process.
  • transactionStatus custom field stores the transaction status from ClearBank. Allowed values: Settled, Held, Rejected, Failed and API_Rejected. Transactions Custom Fields
  1. [optional] Create custom fields for Transactions entity for saving supplementary data - transaction details into a separate Standard custom set (e.g: _ClearBank_Supplementary_Data_Tr). Give access rights for all the transaction channels where these custom fields are used.
  • CB_BIC, CB_AccountNumber custom fields should be created as regular text fields. Supplementary Transactions Custom Fields

Create webhooks

  1. Next we need to set up a new Deposit Withdrawal Webhook. The webhook should be set to “Opt-out” so that it will be sent for all users by default. Targeting, triggering and content settings should be as in the table below:
TargetOn EventConditions
ClientsWithdrawalWhen: Channel -> EQUALS -> MBU_Withdrawal_CHAPS, MBU_Withdrawal_FPS & MBU_Transfer
And: transactionStatus is Empty

Withdrawal Webhook
Withdrawal webhook body content:

{
"amount": "{TRANSACTION_AMOUNT}",
"transactionEncodedKey": "{ENCODED_KEY}",
"transactionId": "{TRANSACTION_ID}",
"transactionDate":"FORMAT_DATE{TRANSACTION_DATE,datePattern=yyyy-MM-dd HH:mm:ss}",
"paymentReference": "{CF:TRANSACTION:PAYMENTREFERENCE}",
"paymentScheme": "{TRANSACTION_METHOD}",
"depositAccountId": "{ACCOUNT_ID}",
"depositName": "{ACCOUNT_NAME}",
"debtorName": "{RECIPIENT_NAME}",
"creditorIBAN":"{CF:TRANSACTION:CREDITORIBAN}",
"creditorName": "{CF:TRANSACTION:CREDITORNAME}",
"assignedDepositUser":"{CF:SAVINGS:ASSIGNED DEPOSIT USER}",
"transactionEndToEndId": "{CF:TRANSACTION:TRANSACTIONENDTOENDID}",
"depositAccountCurrency": "{ACCOUNT_CURRENCY_CODE}",
"virtualAccountId": "{CF:SAVINGS:VIRTUAL ACCOUNT ID}",
"ibanDeposit": "{CF:SAVINGS:DEPOSIT IBAN}",
"sortCode": "{CF:SAVINGS:SORT CODE}",
"accountNumber": "{CF:SAVINGS:ACCOUNT NUMBER}",
"transactionCurrency":"{TRANSACTION_CURRENCY_CODE}",
"accountOpeningBalance": "{ACCOUNT_OPENING_BALANCE}"
}

The webhook is triggered only when the Withdrawal transaction is made using dedicated channels (MBU_Withdrawal_FPS, MBU_Withdrawal_CHAPS or MBU_Transfer).
Edit Withdrawal Webhook

  1. Create new Opt-Out Deposit Account Created Webhook. Wehbook setup:
TargetOn EventConditions
ClientsDeposit Account CreatedWhen: Currency -> EQUALS -> Pound sterling (GBP)

Deposit Account Created Webhook
Add the URL from the IBAN linkage [link to Mambu webhook(s)] MPO process as the Webhook target URL.

Deposit Account Created webhook body content:

{
"depositAccountId": "{ACCOUNT_ID}",
"depositName": "{ACCOUNT_NAME}",
"debtorName": "{RECIPIENT_NAME}",
"assignedDepositUser":"{CF:SAVINGS:ASSIGNED DEPOSIT USER}",
"depositAccountCurrency": "{ACCOUNT_CURRENCY_CODE}",
"debtorIBAN": "{CF:SAVINGS:DEPOSIT IBAN}",
"sortCode": "{CF:SAVINGS:SORT CODE}",
"accountNumber": "{CF:SAVINGS:ACCOUNT NUMBER}"
}

The webhook is triggered only when a Deposit Account is created in GBP and is in a valid state for Deposit and Withdrawal transactions.
Edit Deposit Account Created Webhook

Create General Ledger Accounts

Two General Ledger (GL) Accounts will need to be created for the integration with the Allow Manual Journal Entries option enabled for each GL Account:

  • ClearBankCharges - GL type: Expense, and
  • Scheme - GL type: Asset.