Cancel Policy Endorsement

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Overview

Creates a cancellation endorsement for a bound policy. This does not immediately cancel the policy — it creates an endorsement proposal representing the cancellation, applies the cancellation as a policy change, and rates the endorsement. The returned RecordID is the new endorsement's ProposalID.

What this endpoint does:

  1. Loads the policy by policyID
  2. Validates the policy can be cancelled (not already cancelled, not a book policy, cancel date not past expiry)
  3. Creates a PolicyChange record with action Delete and type Cancellation
  4. Populates the policy transaction from the request body (cancellation reason, description, etc.)
  5. Creates a cancellation endorsement proposal via CreateEndorsement
  6. Accepts the policy change against the endorsement and rates it
  7. Returns the new endorsement's ProposalID
Path Params
integer
required

The ID of the policy to cancel.

Query Params
date-time
required

The effective date of the cancellation. Use ISO 8601 format (YYYY-MM-DD).

Body Params
json
required
Defaults to {}

The request body is a JSON representation of the PolicyTransaction dataDictionary.

See the API reference for api/MetaData/Domains/{domain}/DataDictionary where PolicyTransaction is the {domain} value.

If a key is unrecognized, the API throws InvalidOperationException("Unknown field: {key}").

The supplied fields are applied to a new PolicyTransaction object, then copied onto the cancellation's policy transaction record. The following system-managed fields are excluded from the copy (they are set automatically):

Excluded fieldReason
PolicyTransactionIDAuto-generated primary key
ClientIDSet from the policy
MemberIDSet from the policy
MemberTransactionIDSet by the system
TypeAlways set to Cancellation
PolicyIDSet from the policy
ProposalIDSet from the endorsement
EntryDateSet to current timestamp
EntryUserIDSet to the authenticated user
TransactionDateSet to the cancelDate parameter
CancellationTypeDerived from IsFlatCancellation / IsShortRateCancellation

Cancellation-Specific Fields

These are the fields most commonly used for cancellations:

FieldTypeDescription
CancellationReasonIDintID of the cancellation reason code. Use the Codes/CancellationReasonCodes endpoint to retrieve valid values for a given policy.
Descriptionstring (max 250)Notes or description for the cancellation transaction
CancelledBystring (1 char)Code indicating who initiated the cancellation (e.g., insurer, insured)
IsFlatCancellationboolFlat cancellation — full premium returned regardless of time elapsed
IsShortRateCancellationboolShort-rate cancellation — premium returned with a penalty factor

IsFlatCancellation and IsShortRateCancellation are mutually exclusive. If both are set, flat takes priority. If neither is set, the cancellation uses pro-rata calculation (default).

Other Supported Fields

Any writable PolicyTransaction field can be included in the request body. Beyond the cancellation-specific fields above, commonly available fields include:

FieldTypeDescription
AmountdecimalTransaction amount
Sourcestring (max 250)Source identifier for the transaction
CoverageIDintLink to a specific coverage
PremiumCategoryIDintPremium category for the transaction
CustomText1CustomText10string (max 256)Custom text fields
CustomDate1CustomDate5DateTimeCustom date fields
CustomBool1CustomBool5boolCustom boolean fields
CustomNumber1CustomNumber5decimalCustom numeric fields
CustomMoney1CustomMoney5decimalCustom currency fields
CustomCode1IDCustomCode10IDintCustom code list lookups
CustomUser1IDCustomUser5IDintCustom user reference fields
CustomNarrative1CustomNarrative5stringCustom long-text fields
CustomMultiSelectCode1CustomMultiSelectCode5stringCustom multi-select code values

Note: The actual field names available depend on your schema's PolicyTransaction domain configuration. Custom fields may have display name overrides — use the field's internal name (as shown above), not the display label.

Example Requests

POST /api/Policies/12345/Cancel?cancelDate=2026-06-01
Content-Type: application/json

{
  "CancellationReasonID": 42,
  "Description": "Insured requested cancellation"
}
POST /api/Policies/12345/Cancel?cancelDate=2026-06-01
Content-Type: application/json

{
  "IsFlatCancellation": true,
  "CancellationReasonID": 7
}

Minimal request (no policy transaction data):

POST /api/Policies/12345/Cancel?cancelDate=2026-06-01
Content-Type: application/json

null
Response

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json