diff --git a/PaymentFlows/AlternativePayment/MasterPassStandardCheckout-Current.pml b/PaymentFlows/AlternativePayment/MasterPassStandardCheckout-Current.pml index 596b4b9..d181e46 100755 --- a/PaymentFlows/AlternativePayment/MasterPassStandardCheckout-Current.pml +++ b/PaymentFlows/AlternativePayment/MasterPassStandardCheckout-Current.pml @@ -13,7 +13,11 @@ title MasterPass-type Payment Flow [Simplified] Payee->Payer: Basket Page with "Pay with MasterPass" Button Payer->Payee: Press "Pay with MasterPass" -Payee->MP: Redirect / iFrame to Wallet Selector UI + +== MasterPass specific flow starts == + +Payee->MP: Hand control to MasterPass +Note right: Redirect or iFrame MP->Payer: Display Wallet Selector UI Payer->MP: Select Partner Hosted Wallet MP->PIP: Redirect to Wallet Checkout page @@ -21,26 +25,35 @@ PIP->Payer: Display Sign in page note over Payer,PIP: Sign in is Partner specific (for instance, can go through mobile app) -Payer->PIP: Sign in +Payer->PIP: Supply credentials PIP->MP: Get Accepted Card Brands &\nAddress Verification +MP->PIP: Return Cards + -PIP->Payer: Display Card & Shipping Address Selection UI -note left: can also be in mobile app +Alt + PIP->Payer: Display Card +Else + PIP->Payer: Display Card with Shipping Address Selection UI + Payer->PIP: Card & Shipping Address Selection +End -Payer->PIP: Card & Shipping Address Selection -PIP->MP: Authorize Order +note over Payer: can also be in mobile app + +PIP->MP: Finalise Shopping MP-->PIP: Compute Merchant Callback URL PIP->Payee: Redirect to Merchant through Callback URL Payee->MP: Get Checkout Data MP-->Payee: Card Number & Shipping Address +== MasterPass specific flow ends == + group opt Payee->Payer: Capture CVV/CVC Payer->Payee: CVV/CVC input end group Payee->Payer: Display order summary -Payee->PSP: Submit Card Not Present\ntransaction with Card, CVV/CVC &\nAddress (if required) +Payee->PSP: Submit Card Not Present\transaction with Card, CVV/CVC &\nAddress (if required) PSP-->Payee: Payment confirmation Payee->Payer: Display confirmation page diff --git a/PaymentFlows/Card/MerchantHosted-CardPaymentwith3DS-Current.pml b/PaymentFlows/Card/MerchantHosted-CardPaymentwith3DS-Current.pml index f1c7c03..da9bfac 100644 --- a/PaymentFlows/Card/MerchantHosted-CardPaymentwith3DS-Current.pml +++ b/PaymentFlows/Card/MerchantHosted-CardPaymentwith3DS-Current.pml @@ -13,30 +13,30 @@ note over Payee, Payer: HTTPS title Legacy Merchant Hosted Card Payment with Acquirer Supported 3DS (Current) -Payee->Payer: Basket Page with Pay Button +note over Payer: 3DS is used to add confidence that the payer is who they say they are and importantly in the event of a dispute liability shift to the Issuer + +Payee->Payer: Checkout with Pay Button Payer->Payer: Press Pay Payer->Payer: Select Card Brand alt - UA->Payer: Form Fill; PAN, Expiry Date, [CVV], [AVS] + UA->Payer: Form Fill + Note right: fields are PAN & Expiry Date with optional CVV, & Address, Also Card Valid Date and Issue Number are required for some Schemes else Payer->Payer: User Fills Form End -Alt - Payer->Payee: payload -Else - Payer->Payee: Encrypt(payload) - Note right: Custom code on merchant webpage can encrypt payload to reduce PCI burden from SAQ D to SAQ A-EP -End +Payer->Payee: Payment Initiation +Note right: Custom code on merchant webpage can encrypt payload to reduce PCI burden from SAQ D to SAQ A-EP opt Payee->Payee: Store Card note right: Merchant can store card details apart from CVV (even if encrypted) for future use (a.k.a. Card on File) end -Payee-\MPSP: Authorise(payload) +Payee-\MPSP: Authorise -Opt +== 3DS part of flow == + MPSP –> CSD: BIN to URL lookup (VAReq message) CSD -> CSD: Lookup URL from BIN CSD –> CPSPW : “PING” @@ -54,7 +54,8 @@ Opt Payee-\MPSP: 3DS response (PARes message) MPSP->MPSP: Verification of PARes signature -End + +== End of 3DS == MPSP-\CPSP: Authorisation Request @@ -64,9 +65,15 @@ MPSP-/Payee: Authorisation Response Payee->Payer: Result Page -== Acquiring process (within some days) == +== Request for Settlement process (could be immediate, batch (e.g. daily) or after some days) == -Payee -> MPSP : Capture +Alt + Payee -> MPSP : Capture + note right: Later Capture may be called, for example after good shipped or tickets pickedup +Else + MPSP -> MPSP : Auto Capture in batch processing at end-of-day +End + MPSP->CPSP: Capture @enduml