Producers

To accommodate new producers, implement the createProducer method, which takes as arguments the Organization entity instance and the billing system transaction ID.

The transaction ID is an identifier that PolicyCenter creates. Your plugin must track this billing system transaction ID. If PolicyCenter requests the same transaction ID twice, the billing system or your plugin that represents it must detect that PolicyCenter requested it twice. If you receive the same transaction ID more than once, you must ignore the duplicate requests.

Your method must return the billing system version of the public ID for this Organization. Your method implementation must notify the external system of the new producer in whatever way is appropriate.

Your code would typically use the following Organization entity properties:

  • Name
  • AgencyBillPlanID
  • PublicID
  • Tier.Code
  • Contact (copy all the properties on the Contact entity instance for this producer)

Your code might use additional properties on Organization.

Update producers

You also must prepare for changes to the producer within PolicyCenter. If it changes, PolicyCenter calls the billing system plugin to send updates to the billing system. Implement the updateProducer similar to your createProducer method. It takes the same parameters but return nothing. Use the PolicyCenter public ID to identify the producer in the external system.

You also must implement the method producerExists, which takes a producer public ID and returns true or false to indicate if the producer exists in the billing system.

Syncing producers

Your plugin must implement the syncOrganization method to synchronize an Organization object with the latest values from the corresponding producer in the billing system. The method takes a Organization object and returns nothing.