Create sequence diagrams with simple online tool

Swimlanes.io is a free webapp for making sequence diagrams. You simply edit the text on the left and the diagram is updated in real time. You can download your sequence diagrams as images or distribute with a link.

Title: Bacs Inbound Direct Credit with Fincrime _:{fa-check-circle} _Prerequisites_ note: * ClearBank **IBAN** is mapped to Mambu Deposit account & **Virtual Account ID** is linked to Deposit Account * **Client Money Account** & **Bacs Suspense Account** are Available and Active * **Deposit Account** is Active | Approved * `monitorDirectCreditTransaction` is `true` in Mambu Config * **Accounting** is configured at `Deposit Product` level group:**Bacs: three-day processing cycle** _: **`Day One of Processing`** Bacs --> Bacs: **Input Day**: The Service User submits the payment to Bacs _: **`Day Two of Processing`** ClearBank --> ClearBank: **The Processing Day**: The Service User submits the payment to Bacs Bacs --> ClearBank: _Bacs_ outputs to _ClearBank_ ClearBank ->> MPO: {fa-assistive-listening-systems} **BacsDirectCreditInboundPaymentCreated** webhook is sent MPO -->> ClearBank: Confirm received webhook MPO -> MPO: AML status: `Pending` MPO --> Mambu: *Accounting*: (Debit) Scheme & (Credit) Transit MPO -> ComplyAdvantage: Submit **transaction** to ComplyAdvantage _:{fa-cogs} Alerts Review group: Only Soft Stop if:{fa-check-circle}`action` = `I` OR **No Alerts**: `Accepted` transaction MPO -->>MPO:{fa-thumbs-up} AML status: `Accepted` MPO -->>MPO: {fa-box} Store the payment in AML _Accepted_ state note_: {fa-flag} **Accepted** Flow continues on `Day Three of Processing` end if: {fa-exclamation-circle} `action` = `S`: `Suspended` transaction MPO -->> MPO: {fa-thumb-tack} AML status: `Suspended` MPO -> Mambu: *Accounting*: (_Debit_) Transit & (_Credit_) Suspense note_: {fa-flag} Alerts Analyser `Soft Stop` ComplyAdvantage -->> ComplyAdvantage: Accept/Reject `In Review` alerts ComplyAdvantage -->> MPO: {fa-assistive-listening-systems} **Alerts** webhook(s) triggered by ComplyAdvantage ComplyAdvantage -->> MPO: **1.** Send AML Review Results (`Accept` OR `Reject`) MPO -->> MPO: {fa-thumbs-up} AML status: `Accepted` MPO -> Mambu: *Accounting*: (_Debit_) Suspense & (_Credit_) Transit MPO -->>MPO:{fa-box} Store the payment in AML _Accepted_ note_: {fa-flag} **Accepted** Flow continues on `Day Three of Processing` MPO -->> MPO: {fa-thumbs-down} AML status: `Rejected` note_: {fa-flag} **Rejected** Flow continues on `Day Three of Processing` ComplyAdvantage -->> MPO: **2.** Send AML Review Results (`Accept` AND `Reject`) MPO -->> MPO: AML status `Invalid` end if:{fa-check-circle} Only `Hard Stop` with `action` = `S` or/and Soft Stop with `action` = `I`: `Accepted` transaction MPO -->> MPO: {fa-thumb-tack} AML status: `Suspended` MPO -> Mambu: *Accounting*: (_Debit_) Transit & (_Credit_) Suspense note_: {fa-warning} All Hard Stop alerts Rejected MPO -->> MPO: {fa-thumbs-up} AML status: `Accepted` MPO --> Mambu: *Accounting*: (_Debit_) Suspense & (_Credit_) Transit MPO -->>MPO:{fa-box} Store the payment in AML _Accepted_ state note_: {fa-flag} **Accepted** Flow continues on `Day Three of Processing` note_: {fa-warning} At least one Hard Stop alerts Accepted MPO -->> MPO: {fa-thumbs-down} AML status: `Rejected` note_: {fa-flag} **Rejected** Flow continues on `Day Three of Processing` end if: {fa-times-circle} At least one `Hard Stop` with `action` = `R`: `Rejected` transaction MPO -->> MPO: {fa-thumbs-down} AML status: `Rejected` note_: {fa-flag} **Rejected** Flow continues on `Day Three of Processing` end if: {fa-exclamation-circle} All `Rejected Hard Stop` with `action` = `S` and `Soft Stop` with `action` = `S` alerts: `Suspended` transaction MPO -->> MPO: {fa-thumb-tack} Hard Stop AML status: `Suspended` MPO -> Mambu: *Accounting*: (_Debit_) Transit & (_Credit_) Suspense note_: {fa-warning} All Hard Stop alerts Rejected MPO -->> MPO: {fa-thumb-tack} Soft Stop AML status: `Suspended` note_: {fa-warning} All Soft Stop alerts Rejected MPO -->> MPO: {fa-thumbs-up} AML status: `Accepted` MPO --> Mambu: *Accounting*: (_Debit_) Suspense & (_Credit_) Transit note_: {fa-flag} **Accepted** Flow continues on `Day Three of Processing` note_: {fa-warning} All Soft Stop alerts Accepted MPO -->> MPO: {fa-thumbs-down} AML status: `Rejected` note_: {fa-flag} **Rejected** Flow continues on `Day Three of Processing` end _: {fa-flag} Alerts Analyser: when Soft Stop action = `I` or Hard Stop action `R` or at least one Accepted Hard Stop action `S` ComplyAdvantage -->> ComplyAdvantage: Accept/Reject `In Review` alerts ComplyAdvantage -->> MPO: {fa-assistive-listening-systems} **Alerts** webhook(s) triggered ComplyAdvantage -->> MPO: Send AML Review Results (`Accept` OR/AND `Reject`) note: Transaction AML status is `Ignored`, action = `Skip` _:{fa-bell} Send **Notification** end _: **`Day Three of Processing`** ClearBank ->> MPO: {fa-assistive-listening-systems} **TransactionSettled** webhook is sent MPO -->> ClearBank: Confirm received webhook if:{fa-check-circle} AML Accepted note_: Process `Inbound Direct Credit - Deposit [API]` is triggered Mambu -->> MPO: Search **depositAccountId** by IBAN in Mambu Mambu -->> MPO: Get Mambu Client/Group & **Deposit** Details if:** `confirmationOfPayee` = true ** note_1: Mambu **Client Name** `is different` to Clearbank **Transaction Owner Name** transaction is Returned else:** `confirmationOfPayee` = true/false ** MPO -> MPO: Mambu **Client Name** `is different` to Clearbank **Owner Name** transaction MPO -> ClearBank: **Update** Virtual Account *Owner Name* in ClearBank ClearBank -->> MPO : Verify **Virtual Account ID** and **IBAN** linkage in ClearBank _: **IF** *virtualAccountStatus* is `enabled` and *virtualAccountIBAN* `equals` *depositIban* MPO -> Mambu: **Deposit** transaction is created in Mambu MPO --> Mambu: *Accounting*: (_Debit_) Transit & (_Credit_) Savings Control end if:{fa-check-circle} AML Rejected if: Rejected was sent until/on Day 4 MPO --> Mambu: *Accounting*: (_Debit_) Suspense & (_Credit_) Scheme MPO -->>MPO:{fa-box} Store the payment in AML _Returned_ state MPO -> ClearBank: Initiate **Return** transaction in ClearBank ClearBank ->> MPO: {fa-assistive-listening-systems} **BacsDirectCreditReturnCreated** webhook is sent MPO -->> ClearBank: Confirm received webhook end if: Rejected was sent after Day 4 MPO --> Mambu: *Accounting*: (_Debit_) Suspense & (_Credit_) Withhold MPO -->>MPO:{fa-box} Store the payment in AML _Rejected_ state _:{fa-bell} Send **Notification** end end