anchor.diff:  
   }
   
  -* 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] class from the Kill Bill plugin framework.
  -
  -* The `GoCardlessPaymentTransactionInfoPlugin` constructor simply invokes the superclass constructor.
  +* 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]
   
  
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: 
  ** *properties* - Set to `null` since the payment failed
  
  * If the code is unable to retrieve the `mandateId` from the Kill Bill database, the `GoCardlessPaymentTransactionInfoPlugin` object is created with the following values:
  
  ** *PaymentPluginStatus* - Set to `PaymentPluginStatus.CANCELED` since the gateway was not contacted as the plugin was unable to retrieve the `mandateId`
  
  