anchor.diff:  
   . The client application invokes the `GoCardlessPlugin#buildFormDescriptor` method with a *success page URL*
   
  -. The `GoCarldessPlugin#buildFormDescriptor` method initiates the GoCardless redirect flow as explained https://developer.gocardless.com/getting-started/api/adding-your-first-customer/[here] and obtains the *redirect URL* which is returned to the client application
  +. The `GoCarldessPlugin#buildFormDescriptor` method *initiates* the *GoCardless redirect flow* as explained https://developer.gocardless.com/getting-started/api/adding-your-first-customer/#setting-up-direct-debit-mandates-using-hosted-payment-pages[here] and obtains the *redirect URL* which is returned to the client application
   
   . The client application redirects the user to this URL and the user sets up the mandate manually on this page
   
   . GoCardless redirects the user to the *success page*. This invokes the `GoCarldessPlugin#addPaymentMethod`
   
  -. The `GoCarldessPlugin#addPaymentMethod` completes the redirect flow as explained https://developer.gocardless.com/getting-started/api/adding-your-first-customer/[here] and obtains the *mandate id* which is saved in the Kill Bill database
  +. The `GoCarldessPlugin#addPaymentMethod` *completes* the *redirect flow* as explained https://developer.gocardless.com/getting-started/api/adding-your-first-customer/#setting-up-direct-debit-mandates-using-hosted-payment-pages[here] and obtains the *mandate id* which is saved in the Kill Bill database
   
   . The client application can then invoke `GoCarldessPlugin#purchasePayment`. This charges the customer against the saved *mandate id*  as explained https://developer.gocardless.com/getting-started/api/taking-your-first-payment/[here]
   
  
positive.code: 
  == PaymentPluginApi Methods
  
  The following table lists the methods in https://github.com/killbill/killbill-plugin-api/blob/master/payment/src/main/java/org/killbill/billing/payment/plugin/api/PaymentPluginApi.java[PaymentPluginApi] interface. You can implement the required methods in your class.
  
  |===
  |Method Name | Method Description
  
negative.code: 
  . Set up the *Hello World Plugin* as per our https://docs.killbill.io/latest/plugin_development.html#_java_plugins[plugin development] document.
  
  . Create a new Maven project similar to *Hello World Plugin* 
  
  . Create a class similar to https://github.com/killbill/killbill-hello-world-java-plugin/blob/719779b1ea25c14928e92996b6aa21cc9bf8d4fe/src/main/java/org/killbill/billing/plugin/helloworld/HelloWorldPaymentPluginApi.java[HelloWorldPaymentPluginApi.java]. This is a reference class that is included in the *Hello World Plugin*. It implements the `PaymentPluginApi` interface.
  
  