Policy cancellation and reinstatement web services

Use the CancellationAPI and the ReinstatementAPI web services to start policy cancellation and policy reinstatement jobs. These web services are WS-I compliant.

PolicyCenter starts some types of cancellations.

  • Cancellation as part of a rewrite request
  • Cancellation at the insured’s reques
  • Cancellation because the insured provided false information in their application or violated the contract
  • Cancellation because the insured chooses not to take a renewal and the renewal might already be bound

There are other types of cancellations that the billing system or other integration systems initiate. For example, cancellation for non-payment. If the billing system detects overdue invoices, the billing system starts a delinquency process and tells PolicyCenter to cancel the policy.

There are two ways the billing system can tell PolicyCenter to cancel a policy.

  • Cancel the policy as of a certain date – PolicyCenter sets the policy to pending cancellation within PolicyCenter and cancels automatically on the given date unless the application receives a rescind command before that date.
  • Cancel the policy as soon as possible – This is similar to the previous approach described but PolicyCenter uses internal notification lead time logic to determine the actual cancellation date.

PolicyCenter supports both approaches based on the cancellation date you pass to the API.

See also

  • For more information about circumstances in which PolicyCenter might trigger cancellation or reinstatement, refer to Policy period management.

Begin a cancellation

An external system can begin a cancellation in PolicyCenter with the beginCancellation method on CancellationAPI.

beginCancellation(String policyNumber, Calendar cancellationDate, boolean recalculateEffDate,
   CancellationSource cancellationSource, ReasonCode reasonCode, CalculationMethod refundCalcMethod,
   String description, String transactionId)

To begin cancellation, you must specify a reason in a ReasonCode enumeration to indicate fraud, eligibility issues, and so on. Instead of passing the reason code directly, a CancellationSetup entity encapsulates this enumeration.

The method returns the public ID of the cancellation job.

The parameters are described below.

  • Policy number, as a String
  • Cancellation date, as a Calendar object
  • Recalculate effective date (recalculateEffDate), as a boolean
  • Cancellation source typecode, carrier (insurer initiated cancel) or insured (the insured initiated cancel)
  • Reason code typecode, as a ReasonCode value
  • Refund calculation method, as a CalculationMethod
  • Description (notes) associated with this cancellation, as a String
  • Transaction ID to associate with this change

If you set recalculateEffDate to false, starts a Cancellation job effective on the cancellation date. or the given policy in PolicyCenter (this date will also be the effective date of the new cancellation policy period). In this case, the caller must check for any legal requirements for the cancellation date. If recalculateEffDate is set to true, PolicyCenter calculates the earliest date for the cancellation to meet all legal requirements. PolicyCenter uses that date if it is after the cancellation date. In this case, the caller can set the cancellationDate to today to get the policy period cancelled as soon as possible.

The following Java example cancels a policy.

String jobNumber = cancellationAPI.beginCancellation( "ABC:123",
  cancellationDate.toCalendar(), true, CancellationSource.TC_CARRIER,
  ReasonCode.TC_NONPAYMENT, CalculationMethod.TC_PRORATA, "Some Description", "External1235")

Rescind a cancellation

Rescind a cancellation with the rescindCancellation method.

The method has two versions.

  • One version rescinds a policy cancellation with a reason as a ReasonCode typecode and a cancellation source as a CancellationSource typecode. The reason typecode indicates a payment-related reinstatement with the value payment or another reason with the value other. The cancellation source typecode indicates that the insurer initiated the cancellation with the value carrier or the insured initiated the cancellation with the value insured.
    void rescindCancellation(java.lang.String policyNumber,
       java.util.Calendar effectiveDate, CancellationSource cancellationSource, ReasonCode reasonCode)

    For example, the following sample code rescinds a cancellation with a reason code.

    cancellationAPI.rescindCancellation("ABC:123", new Date(),
       CancellationSource.TC_CARRIER, ReasonCode.TC_NONPAYMENT)
  • The other version rescinds an in-progress policy cancellation with the job number of a cancellation. For example, the following sample code rescinds a cancellation with a job number only.
    void rescindCancellation("ABC:123")

Find a cancellation

In some cases, an external system wants to rescind a cancellation but does not have the job number for the cancellation. In these cases, use the findCancellations method on the CancellationAPI web service to get the job number. The method returns a list of job numbers for matching cancellations. You can use these results to decide which cancellation you want to rescind. Next, call the separate rescindCancellation method and pass it the job number of the cancellation job to rescind.

The findCancellations method takes the following arguments in the following order.

  • Policy number, as a String
  • Cancellation date, as a java.util.Calendar object. PolicyCenter finds cancellations effective on that date or after that date.
  • Cancellation source, as a CancellationSource typecode
    • carrier – Cancellation initiated by insurer
    • insured - Cancellation initiated by insured
  • Reason code, as a ReasonCode typecode
    • nonpayment – Payment not received
    • fraud – Fraud
    • flatrewrite – Policy rewritten or replaced (flat cancel)
    • midtermrewrite – Policy rewritten (mid-term)
  • Calculation method, as a CalculationMethod typecode
    • flat – Flat
    • prorata – Pro rata
    • shortrate – Short rate

The following example code demonstrates how to call this method from Java.

Calendar cancellationDate = Calendar.getInstance();
String jobNumber;
String myPolicyNumber = "abc:123";
var foundJobNumbers = cancellationAPI.findCancellations(myPolicyNumber, cancellationDate,
   CancellationSource.TC_carrier, ReasonCode.TC_nonpayment, CalculationMethod.TC_prorata);

Reinstate a policy

Use the ReinstatementAPI web service to start a reinstatement job for a policy that is canceled and that you want to put it back in-force. The reinstatement effective date is always the cancellation date. To create a gap in coverage, a user must start a policy rewrite job manually through the PolicyCenter interface.

The ReinstatementAPI web service has a single method called beginReinstatement. The method accepts the following arguments.

  • Policy number as a String
  • Reinstatement code as a ReinstateCode typecode

The method returns a job number for the new reinstatement job.

The following example code demonstrates how to call this from Java.

reinstatementAPI.beginReinstatement( "ABC:1234", ReinstateCode.TC_payment );