Banking example - Web-Shop payment using iDEAL

The customer want to buy something in a web-shop. The total amount to pay is shown and the customer is send has several choices on how to pay. In this case a iDEAL (a direct banking payment method) is chosen. The customer enter a valid password. The balance check passed and the the money is transferred to the web-shop owner. When the money is successful transfered, invoice is created and the order is being shipped. The other payment method involve (simple) communication to the bank cloud. The diagram becomes more complex if e.g. the customer does not have enough balance and needs to pay differently. This is just one of many (millions) permutations. Use the choices on the right to make different diagrams or even different starting points (e.g. Internet Banking, Merchant or Web-Shop).

The generated MSG-Flow

WebShop Customer Aggregator Web-Intf Acc-Srv Acc-DB
| | | | | |
|-----show-amount
Info for show-amount
message show-amountThe amount to pay is shown
section TerminalMessages mainly used for interaction with the Payment Terminal.
protocol HumanUsed to describe human readable messages.
---->| | | | |
|<---customer-agrees
Info for customer-agrees
message customer-agreesThe customer agrees with the order (and amount)
section Web-ShopMessages mainly used for interaction with the Web-Shop.
protocol HumanUsed to describe human readable messages.
--| | | | |
|---------------amount-to-pay
Info for amount-to-pay
message amount-to-payThe amount to be paid
section AggregatorMessages mainly used for interaction with the Aggregator.
protocol HumanUsed to describe human readable messages.
-------------->| | | |
| | |----fund-transfer
Info for fund-transfer
message fund-transferTransfer fund from a account (bank) to the web-shop.
section AggregatorMessages mainly used for interaction with the Aggregator.
protocol HumanUsed to describe human readable messages.
dst_accwebshop
src_accchecking
---->| | |
| |<-------------rsp-display-login
Info for rsp-display-login
message rsp-display-loginDisplays the login page
section responsesThe http responses
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
dst_accwebshop
src_accchecking
-------------| | |
| |--------------post-key-usr-pwd
Info for post-key-usr-pwd
message post-key-usr-pwdReceive Key, Username and Password
section post-requestsThe http post requests
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
dst_accwebshop
src_accchecking
------------->| | |
| | | |--verify-login
Info for verify-login
message verify-loginVerifies the login
protocol Acc-SrvThe Internal Account Server Protocol
dst_accwebshop
src_accchecking
-->| |
| | | | |---get-login-details
Info for get-login-details
message get-login-detailsRequest to retrieve login details
protocol Acc-DBThe Internal Account Database Protocol
dst_accwebshop
src_accchecking
-->|
| | | | |<-----login-details
Info for login-details
message login-detailsThe retrieved login details
protocol Acc-DBThe Internal Account Database Protocol
dst_accwebshop
src_accchecking
----|
| | | |<-login-response
Info for login-response
message login-responseThe reponse for the verify login request
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
dst_accwebshop
src_accchecking
-| |
| |<-------------rsp-valid-customer
Info for rsp-valid-customer
message rsp-valid-customerThe customer is valid
section responsesThe http responses
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
resultvalid
dst_accwebshop
src_accchecking
------------| | |
| |---------------post-transfer
Info for post-transfer
message post-transferCustomer request to transfer money from one accoun to another, see action
section post-requestsThe http post requests
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
resultvalid
actiontransfer
dst_accwebshop
src_accchecking
--------------->| | |
| | | |----transfer
Info for transfer
message transferCustomer transfers money from an account to another
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
actiontransfer
dst_accwebshop
src_accchecking
---->| |
| | | | |------get-balance
Info for get-balance
message get-balanceRequest to get the balance of an account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accwebshop
src_accchecking
----->|
| | | | |<-----balance-info
Info for balance-info
message balance-infoThe balance information
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accwebshop
src_accchecking
-----|
| | | | |-upd-checking-balance
Info for upd-checking-balance
message upd-checking-balanceRequest to update the balance of a checking account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accwebshop
src_accchecking
->|
| | | | |--upd-webshop-balance
Info for upd-webshop-balance
message upd-webshop-balanceRequest to update the balance of a web-shop account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
->|
| | | | |----commit-changes
Info for commit-changes
message commit-changesInstruction to save all related requests in an atomic action.
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
---->|
| | | | |<---changes-committed
Info for changes-committed
message changes-committedAll related request have been save in the database.
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
--|
| | | |<---transferred
Info for transferred
message transferredCustomer transferred money from an account to another
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
--| |
| |<--------------rsp-transferred
Info for rsp-transferred
message rsp-transferredThe money has been transferred
section responsesThe http responses
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
--------------| | |
| +-transferred
Info for transferred
action transferredThe money has been transferred.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | | |
| | |<-transfer-successful
Info for transfer-successful
message transfer-successfulThe funds were successfully transferred
section AggregatorMessages mainly used for interaction with the Aggregator.
protocol HumanUsed to describe human readable messages.
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
-| | |
|<------------payment-successful
Info for payment-successful
message payment-successfulThe overall payment was successful
section AggregatorMessages mainly used for interaction with the Aggregator.
protocol HumanUsed to describe human readable messages.
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
------------| | | |
+-process-order
Info for process-order
action process-orderThe order is being processed
section WebShop-ActionsThe actions for the WebShop.
component WebShopRepresents a WebShop.
| | | | |
|----send-invoice
Info for send-invoice
message send-invoiceThe invoice is send to the customer
section Web-ShopMessages mainly used for interaction with the Web-Shop.
protocol HumanUsed to describe human readable messages.
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
---->| | | | |
| +-order-paid
Info for order-paid
action order-paidThe customer paid the orderr
section WebShop-ActionsActions related to web-shop banking.
component CustomerRepresents a customer.
| | | |
| +-waits-for-goods
Info for waits-for-goods
action waits-for-goodsThe customer waits for the goods
section WebShop-ActionsActions related to web-shop banking.
component CustomerRepresents a customer.
| | | |
|-----ship-goods
Info for ship-goods
message ship-goodsThe goods are being shipped to the customer
section Web-ShopMessages mainly used for interaction with the Web-Shop.
protocol HumanUsed to describe human readable messages.
resultvalid
cloudno
actiontransfer
dst_accwebshop
src_accchecking
----->| | | | |
| +-happy-customer
Info for happy-customer
action happy-customerThe customer is happy with the goods
section WebShop-ActionsActions related to web-shop banking.
component CustomerRepresents a customer.
| | | |

You can and paste the above flow representation in a text file or in your favourite text editor using a monospace font. Ofcourse you will loose the context sensitive output and the links towards additional information.

Decission table

The decission table shows which decissions have been made so far and which to make. The header contains the choice number and the entity making the choice. The choices are shown from left (latest) to right (earlier) which make it handier to follow or adapts. All choices you could have choisen on a specific level are displayed. You can click on the description to make a different choice.

WebShop-flows : The webshop starts any action.

Additional Generated Information

Below is the graphical representaion rendered using PlantUML Try it yourself online

Cannot render UML

You can the following url to refer to the graph. Or copy as to have it embeded in usable HTML code.

Be aware that changes/improvements will not be reflected in the graph.
The plain text, which can be used by some editors, is given below. Use it if you want to make edit in you favorite editor. It does not contain links as they are not supported by some editors. You can copy the text and paste it e.g. into WebSequenceDiagrams, SequenceDiagram or SwimLanes. You can also copy it for and paste it into PlantUML.