PolicyCenter contact creation with external unique IDs

PolicyCenter must be able to create a new contact and send it both to BillingCenter and ContactManager. PolicyCenter must be able to uniquely identify a contact it sends to BillingCenter, and BillingCenter must be able to link to the contact created in ContactManager. Therefore, in the base configuration, PolicyCenter specifies a unique identifier for any contact it creates and sends to ContactManager.

If PolicyCenter needs to notify BillingCenter that the new contact has been created, PolicyCenter also sends a message to BillingCenter indicating the AddressBookUID of the new contact. The value of the AddressBookUID is the unique identifier that PolicyCenter created for the contact.

These messages are asynchronous and can arrive at BillingCenter and ContactManager at different times and in no particular order.

When ContactManager receives a contact create request for which a unique ID is specified, it uses that ID for the LinkID value of the new contact. ContactManager then sends create messages for update to BillingCenter and ClaimCenter if they are registered.

Depending on when BillingCenter receives the messages, it proceeds down different paths to link the contact:

  • BillingCenter receives the message from PolicyCenter before ContactManager creates the new contact.
    1. BillingCenter sends a request to ContactManager for contact data, specifying the AddressBookUID.
    2. ContactManager returns null, indicating that the contact does not exist.
    3. BillingCenter creates a local copy of the contact with the AddressBookUID it received from PolicyCenter.
    4. ContactManager later notifies BillingCenter that the contact was created.
    5. BillingCenter verifies that the LinkID sent by ContactManager matches the AddressBookUID of the local contact that it created.
    6. BillingCenter updates its local copy of the contact with the data from ContactManager and links the contact. See Linking in BillingCenter.
  • BillingCenter receives the message from ContactManager about the new contact before it receives the message from PolicyCenter.
    1. BillingCenter ignores the message from ContactManager, because it does not have a matching contact.
    2. BillingCenter receives a message from PolicyCenter saying that there is a new contact with a specified AddressBookUID.
    3. BillingCenter sends a request to ContactManager for contact data, specifying the AddressBookUID.
    4. ContactManager sends the data for the contact whose LinkID matches the AddressBookUID sent by BillingCenter.
    5. BillingCenter updates its local copy of the contact with the data from ContactManager and links the contact. See Linking in BillingCenter.

See also

PolicyCenter support for creating external unique IDs