anchor.diff:  
   . Copy the https://github.com/killbill/killbill-hello-world-java-plugin/blob/719779b1ea25c14928e92996b6aa21cc9bf8d4fe/pom.xml[Hello World Plugin pom.xml]
   
  -. Add the following additional Maven dependency:
  +. Add the following additional Maven dependency (This is required to access the https://github.com/killbill/killbill-commons/blob/aa83708f56377aabff8391c3ddc197817ad19ec2/clock/src/main/java/org/killbill/clock/Clock.java[org.killbill.clock.Clock] class):
   [source,bash]
           <dependency>
               <groupId>org.kill-bill.commons</groupId>
  
positive.code: 
  ** *firstPaymentReferenceId* - Set to the *payment Id* returned by GoCardless
  
  ** *secondPaymentReferenceId* - set to `null` since GoCardless does not have a secondPaymentReferenceId
  
  ** *createdDate* - Set to the current date
  
  ** *effectiveDate* - Set to the date when the payment was created 
  
  ** *properties* - Set to a `outputProperties`. This is a `List<PluginProperty>`  The GoCardless *payment Id* is added to this List. The client API can use these properties as desired.
  
  * If there is an exception while processing the payment,  the `GoCardlessPaymentTransactionInfoPlugin` object is created with the following values :
  
  ** PaymentPluginStatus - Set to `PaymentPluginStatus.ERROR` since there was an error in the payment
  
  ** *gatewayError* - Set to the *error message* from the exception
  
  
negative.code: 
  }
  
  * The `GoCardlessPaymentTransactionInfoPlugin` extends the https://github.com/killbill/killbill-plugin-framework-java/blob/46d94fbeb1cf089aa04e62cfecf751ca47032023/src/main/java/org/killbill/billing/plugin/api/payment/PluginPaymentTransactionInfoPlugin.java[PluginPaymentTransactionInfoPlugin] from the https://github.com/killbill/killbill-plugin-framework-java[Kill Bill plugin framework]. This class in turn implements the <<PaymentTransactionInfoPlugin>> interface
  
  * The `GoCardlessPaymentTransactionInfoPlugin` constructor accepts parameters corresponding to the data to be returned by <<PaymentTransactionInfoPlugin>>. It simply invokes the superclass constructor with these parameters
  
  ==== Step 4 - Implementing https://github.com/killbill/killbill-gocardless-example-plugin/blob/9522498ecde5849c940574c598ceb5ce088d32a7/src/main/java/org/killbill/billing/plugin/gocardless/GoCardlessPaymentPluginApi.java#L293[GoCardlessPaymentPluginApi#buildFormDescriptor]
  
  