Banking example - Merchant starts contact-less payment

The customer needs to pay the merchant for the goods. The customer decide to pay with an electronic payment method. If it was cash then the diagram would have been easy. There are 3 electronic payment method available, in this case contact-less is chosen. The customer taps his card which is validated correctly and the money is transferred to merchants account as he has enough balance. The merchants sees the payment is correct and gives the goods to the customer who leaves. 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

Merchant Customer Terminal Secure-Intf Acc-Srv Acc-DB
| | | | | |
+-inform-amount
Info for inform-amount
action inform-amountThe merchant tells the customer what to pay
section Merchant-ActionsThe actions for the Merchant.
component MerchantRepresents a merchant.
| | | | |
|----choose-method
Info for choose-method
message choose-methodThe customer needs to choose a payment method.
section Web-ShopMessages mainly used for interaction with the Web-Shop.
protocol HumanUsed to describe human readable messages.
--->| | | | |
|<--chooses-terminal
Info for chooses-terminal
message chooses-terminalThe customer chooses the electronic payment terminal.
section Web-ShopMessages mainly used for interaction with the Web-Shop.
protocol HumanUsed to describe human readable messages.
actionterminal
--| | | | |
+-enters-amount
Info for enters-amount
action enters-amountThe merchant enters the amount in the terminal r this is automatic via the cash register
section Merchant-ActionsThe actions for the Merchant.
component MerchantRepresents a merchant.
| | | | |
|-------------start-payment
Info for start-payment
message start-paymentA request to start payment
section TerminalMessages mainly used for interaction with the Payment Terminal.
protocol HumanUsed to describe human readable messages.
actionterminal
------------->| | | |
| |<---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.
actionterminal
---| | | |
| +-taps-card
Info for taps-card
action taps-cardCustomer taps the card for contactless payment
section Terminal-ActionsActions related to terminal banking.
component CustomerRepresents a customer.
| | | |
| |--method-chosen
Info for method-chosen
message method-chosenThe chosen method
section TerminalMessages mainly used for interaction with the Payment Terminal.
protocol HumanUsed to describe human readable messages.
actionterminal
methodcontactless
-->| | | |
| | |--sec-authorize
Info for sec-authorize
message sec-authorizeThe customer authorizes its request, e.g. with pin or password.
section requestsThe secure requests
protocol SEC-msgReflect the Secure messages used between entities and secure-interface.
actionterminal
methodcontactless
-->| | |
| | | |--verify-login
Info for verify-login
message verify-loginVerifies the login
protocol Acc-SrvThe Internal Account Server Protocol
actionterminal
methodcontactless
-->| |
| | | | |---get-login-details
Info for get-login-details
message get-login-detailsRequest to retrieve login details
protocol Acc-DBThe Internal Account Database Protocol
actionterminal
methodcontactless
-->|
| | | | |<-----login-details
Info for login-details
message login-detailsThe retrieved login details
protocol Acc-DBThe Internal Account Database Protocol
actionterminal
methodcontactless
----|
| | | |<-login-response
Info for login-response
message login-responseThe reponse for the verify login request
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
actionterminal
methodcontactless
-| |
| | |<--sec-auth-valid
Info for sec-auth-valid
message sec-auth-validThe authorization is valid
section responsesThe secure responses
protocol SEC-msgReflect the Secure messages used between entities and secure-interface.
resultvalid
actionterminal
methodcontactless
-| | |
| | |---sec-transfer
Info for sec-transfer
message sec-transferThe customer wants to transfer money, e.g. pay an item
section requestsThe secure requests
protocol SEC-msgReflect the Secure messages used between entities and secure-interface.
resultvalid
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
-->| | |
| | | |----transfer
Info for transfer
message transferCustomer transfers money from an account to another
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
---->| |
| | | | |------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_accmerchant
src_accchecking
methodcontactless
----->|
| | | | |<-----balance-info
Info for balance-info
message balance-infoThe balance information
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
-----|
| | | | |-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_accmerchant
src_accchecking
methodcontactless
->|
| | | | |-upd-merchant-balance
Info for upd-merchant-balance
message upd-merchant-balanceRequest to update the balance of a merchant account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
->|
| | | | |----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_accmerchant
src_accchecking
methodcontactless
---->|
| | | | |<---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_accmerchant
src_accchecking
methodcontactless
--|
| | | |<---transferred
Info for transferred
message transferredCustomer transferred money from an account to another
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
cloudno
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
--| |
| | |<-sec-transferred
Info for sec-transferred
message sec-transferredThe money has been transferred
section responsesThe secure responses
protocol SEC-msgReflect the Secure messages used between entities and secure-interface.
resultvalid
cloudno
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
-| | |
|<-----------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_accmerchant
src_accchecking
methodcontactless
----------| | | |
+-goods-given
Info for goods-given
action goods-givenThe good are given to the customer
section Merchant-ActionsThe actions for the Merchant.
component MerchantRepresents a merchant.
| | | | |
| |<-------paid
Info for paid
message paidThe customer paid his bill
section TerminalMessages mainly used for interaction with the Payment Terminal.
protocol HumanUsed to describe human readable messages.
resultvalid
cloudno
actiontransfer
dst_accmerchant
src_accchecking
methodcontactless
------| | | |
| +-customer-leaves
Info for customer-leaves
action customer-leavesCustommer leaves, e.g. ready or failed.
section ATM-ActionsActions related to ATM 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.

Merchant-flows : The merchant 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.