anchor.diff:  
   Kill Bill supports three main payment method flows as follows:
   
  -* *Client side tokenization* - In this case, the end user's payment details are converted into a token and sent to Kill Bill.
  +* *Client-side tokenization* - In this case, the end user's payment details are converted into a token and sent to Kill Bill.
   
   *  *Hosted Payment Page* - In this case, the merchant website redirects the end-user to a page on the payment gateway which collects the payment details. Kill Bill then invokes the payment gateway to obtain the payment method details.
   
  -* *Server side tokenization* - In this case, the end user's payment details are sent to Kill Bill which invokes the payment gateway to perform tokenization.
  +* *Server-side tokenization* - In this case, the end user's payment details are sent to Kill Bill which invokes the payment gateway to perform tokenization.
   
   The flow diagrams below explain these payment method flows. We consider the following actors:
   
  
positive.code: 
  === Hosted Payment Page Payment Method Flow
  
  Sometimes, a merchant site may not provide a payment form/may not want to collect payment data and tokenize it. The hosted payment page flow is useful in such situations. In such cases, the merchant site needs to perform a two-step process. In the first step, it needs to invoke Kill Bill to obtain the URL to redirect the user and redirect the user to this page. Once the end-user enters his/her payment details on this page, the merchant site needs to invoke Kill Bill to add the payment method. Kill Bill then retrieves the payment details from the payment getway and saves them in the Kill Bill database. This information is then used by Kill Bill to charge the customer.
  
  
  The following diagram explains this payment method flow:
  
  image:https://github.com/killbill/killbill-docs/raw/v3/userguide/assets/img/payment-userguide/hpp-payment-method-flow.png[align=center]
  
  . The end user initiates the check out process.
  
  . The merchant website invokes a checkout servlet in Kill Bill. 
  
  
negative.code: 
  === Server-side Tokenization Payment Method Flow
  
  Sometimes, a merchant site may collect the card details from the end-user and send them to Kill Bill. In this case, Kill Bill makes a call to the payment gateway to tokenize the card information. However, this approach is used *very rarely* as this requires a merchant website to be *PCI Level 1 compliant*. To know what it takes to be PCI Level 1 compliant, you can read https://web.archive.org/web/20210311043301/https://medium.com/groupon-eng/payments-groupon-part-1-b17b178441a1[this] article.
  
  The following diagram explains this payment method flow:
  
  image:https://github.com/killbill/killbill-docs/raw/v3/userguide/assets/img/payment-userguide/serverside-tokenization-payment-method-flow.png[align=center]
  
  . The end user enters payment details on the merchant website.
  
  . The merchant website invokes the `KillBill#addPaymentMethod` with the payment details. 
  
  . Kill Bill invokes the `PaymentPlugin#addPaymentMethod` method.
  
  