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
No link information between act and comp for inform-amount
| | | | |
|----choose-method
Info for choose-method
No link information between msg and prot for choose-method
--->| | | | |
|<--chooses-terminal
Info for chooses-terminal
No link information between msg and prot for chooses-terminal
actionterminal
--| | | | |
+-enters-amount
Info for enters-amount
No link information between act and comp for enters-amount
| | | | |
|-------------start-payment
Info for start-payment
No link information between msg and prot for start-payment
actionterminal
------------->| | | |
| |<---show-amount
Info for show-amount
No link information between msg and prot for show-amount
actionterminal
---| | | |
| +-taps-card
Info for taps-card
No link information between act and comp for taps-card
| | | |
| |--method-chosen
Info for method-chosen
No link information between msg and prot for method-chosen
actionterminal
methodcontactless
-->| | | |
| | |--sec-authorize
Info for sec-authorize
No link information between msg and prot for sec-authorize
actionterminal
methodcontactless
-->| | |
| | | |--verify-login
Info for verify-login
No link information between msg and prot for verify-login
actionterminal
methodcontactless
-->| |
| | | | |---get-login-details
Info for get-login-details
No link information between msg and prot for get-login-details
actionterminal
methodcontactless
-->|
| | | | |<-----login-details
Info for login-details
No link information between msg and prot for login-details
actionterminal
methodcontactless
----|
| | | |<-login-response
Info for login-response
No link information between msg and prot for login-response
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
No link information between msg and prot for sec-transfer
resultvalid
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
-->| | |
| | | |----transfer
Info for transfer
No link information between msg and prot for transfer
resultvalid
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
---->| |
| | | | |------get-balance
Info for get-balance
No link information between msg and prot for get-balance
resultvalid
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
----->|
| | | | |<-----balance-info
Info for balance-info
No link information between msg and prot for balance-info
resultvalid
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
-----|
| | | | |-upd-checking-balance
Info for upd-checking-balance
No link information between msg and prot for upd-checking-balance
resultvalid
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
->|
| | | | |-upd-merchant-balance
Info for upd-merchant-balance
No link information between msg and prot for upd-merchant-balance
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
->|
| | | | |----commit-changes
Info for commit-changes
No link information between msg and prot for commit-changes
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
---->|
| | | | |<---changes-committed
Info for changes-committed
No link information between msg and prot for changes-committed
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
--|
| | | |<---transferred
Info for transferred
No link information between msg and prot for transferred
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
--| |
| | |<-sec-transferred
Info for sec-transferred
No link information between msg and prot for sec-transferred
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
-| | |
|<-----------payment-successful
Info for payment-successful
No link information between msg and prot for payment-successful
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
----------| | | |
+-goods-given
Info for goods-given
No link information between act and comp for goods-given
| | | | |
| |<-------paid
Info for paid
No link information between msg and prot for paid
resultvalid
cloudno
actiontransfer
src_accchecking
methodcontactless
dst_accmerchant
------| | | |
| +-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.