anchor.diff:  ```
   * The `CustomInvoiceFormatter` class extends `org.killbill.billing.plugin.notification.generator.formatters.DefaultInvoiceFormatter`.
   
  -* It has a constructor as shown above.
  -
   * A field called `newInvoiceMessage` is defined. This is a custom field. It has a corresponding `getNewInvoiceMessage` method.
   
   * You can add other custom fields as required. For each field, ensure that the field is initialized and that there is a `getter` method that returns the value of the field. 
  
positive.code: 
  . Install the plugin using the following https://github.com/killbill/killbill-cloud/blob/master/kpm[kpm] command (Replace `<path_to_install_plugin>` with the path where you want to install the plugin. This path should match the path specified by the `org.killbill.osgi.bundle.install.dir` property in the Kill Bill configuration file):
  [source,bash]
  kpm install_java_plugin 'dev-custom-invoice-formatter' --from-source-file=target/ custom-invoice-formatter-plugin*-SNAPSHOT.jar --destination=<path_to_install_plugin>
  
  == Test
  
  In order to test the plugin,you need to *upload an email template* with the new invoice fields and execute the steps that would *trigger the email*. 
  
  For example, in order to include the `greeting` field created earlier  in the invoice creation email, you will need to do the following:
  
  * Create an email template with the  `invoice.newInvoiceMessage` field as shown below and upload the new template as explained https://docs.killbill.io/latest/email-notification-plugin.html#_uploading_a_custom_template[here].
  [source,bash]
  
negative.code: 
  == Plugin Tutorial
  
  We provide a _sample_ https://github.com/killbill/killbill-custom-invoice-formatter-example[custom invoice formatter] plugin. You can use this as a starting point for developing your plugin. Let us now take a closer look at how you can create a similar custom plugin.
  
  === Initial Setup
  
  