anchor.diff:  
   * *Kill Bill* - The Kill Bill system
   
  -* *Checkout Servlet* - Plugin servlet that initiates setting up the payment method. 
  +* *Checkout Servlet* - Plugin servlet that initiates setting up the payment method.
   
  -* *Payment Plugin*: https://docs.killbill.io/latest/payment_plugin.html[Kill Bill plugin] corresponding to the payment gateway 
  +* *Payment Plugin*: https://docs.killbill.io/latest/payment_plugin.html[Kill Bill plugin] corresponding to the payment gateway
   
   * *Payment Gateway*: Entity that processes the payment
   
  
positive.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:
  
  
negative.code: 
  . The merchant website converts it into a token and invokes the `addPaymentMethod` in Kill Bill with this token. This saves the token in the Kill Bill database.
  
  . Some payment gateways require the token to be saved within the gateway so as to be able to process recurring payments. In such cases, Kill Bill invokes the `addPaymentMethod` in the payment plugin corresponding to the payment gateway.
  
  . The payment plugin then makes a gateway specific call to save the payment token within the gateway.
  
  