Skip to content

V3 Upgrade Guide ​

Client Sync Workflow ​

The basic flow of GetAgencies -> Get Changed Clients -> Get Client/Get Clients is unchanged.

Change Detection ​

The v1.8 Client Hashes have been replaced by modified timestamps in v3. The Client Detail Modified timestamp reflects the latest update to any part of the client. Additionally, each Person, Policy, Claim, and Contact has an individual Modified timestamp representing the last update to that record.

Upgrade Checklist ​

This is a high-level list of tasks that will help you upgrade from V1 to V3.0. Continue reading for more details about individual changes to the client model.

  • Include version query parameter in all API requests. (version = 3.0)
  • Optionally prepare to consume the new LegacyId property. This property will have the same value as the Id property from the V1 API. You may use this property to help map the new GUID Ids to your existing data. Be aware that once an agency upgrades to HawkSoft 6, new items will not have a LegacyId value, as there is no pre-existing data to map to. Do not rely on this field for identifying records beyond the initial upgrade process.

Client ​

Id ​

Id has been renamed to ClientNumber. The value is unchanged.

JSON
json
// v1
{
    "id": 10,
    ...
}

// v3
{
    "clientNumber": 10,
    ...
}

AllowCrossSell ​

AllowCrossSell has been moved to the Client Details object.

JSON
json
// v1
{
    "id": 10,
    "allowCrossSell": false,
    ...
}

// v3
{
    "clientNumber": 10,
    "details": {
        "allowCrossSell": false,
        ...
    },
    ...
}

ClientType ​

ClientType has been moved to the Client Details object.

JSON
json
// v1
{
    "id": 0,
    "clientType": "Customer",
    ...
}

// v3
{
    "id": 0,
    "details": {
        "clientType": "Customer",
        ...
    },
    ...
}

ContactInfoLastUpdated ​

Moved to the Client Details object.

CustomClientId ​

Moved to the Client Details object.

DoNotMarket ​

Moved to the Client Details object.

IsBusiness ​

Removed. See BusinessType on the Client Details object. BusinessType: None is equivalent to IsBusiness: false. Any other BusinessType value is equivalent to IsBusiness: true.

IsActive ​

Removed. See Status on the Client Details object. Status: Active is equivalent to IsActive: true. Any other Status value is equivalent to IsActive: false.

IsArchived ​

Removed. The API does not return Archived clients.

IsCommercial ​

Moved to the Client Details object.

IsDeadFile ​

Removed. See Status on the Client Details object. Status: DeadFile is equivalent to IsDeadFile: true. Any other Status value is equivalent to IsDeadFile: false.

IsLead ​

Removed. See Status on the Client Details object. Status: Lead is equivalent to IsLead: true. Any other Status value is equivalent to IsLead: false.

IsLifeHealth ​

Moved to the Client Details object.

IsPersonal ​

Moved to the Client Details object.

IsProspect ​

Removed. See Status on the Client Details object. Status: Prospect is equivalent to IsProspect: true Any other Status value is equivalent to IsProspect: false.

OfficeId ​

Moved to the Client Details object.

Source ​

Moved to the Client Details object.

Addresses ​

Removed. See MailingAddress, PhysicalAddress, and PhysicalAtSince on the Client Detais object.

A V1 Address with Type: Mailing maps to Details.MailingAddress.

A V1 Address with Type: Physical maps to Details.PhysicalAddress, and Address.AtSince maps to Details.PhysicalAtSince.

Both Addresses are optional. A client may have neither, one, or both.

Mailing Address
json
// v1
{
    "id": 0,
    ...,
    "addresses": [
        {
            "addressType": "Mailing",
            "atSince": null,
            "city": "Seattle",
            "country": "US",
            "line1": "325 5th Ave N",
            "line2": "#101",
            "state": "WA",
            "zipCode": "98109"
        }
    ]
}

// v3
{
    "details": {
        "mailingAddress": {
            "address1": "325 5th Ave N",
            "address2": "#101",
            "city": "Seattle",
            "state": "WA",
            "zip": "98109",
            "countryCode": "US",
            "county": "King"
        },
        "physicalAddress": null
    }
}
Physical Address
json
// v1
{
    "id": 0,
    ...,
    "addresses": [
        {
            "addressType": "Physical",
            "atSince": "2000-01-01",
            "city": "Seattle",
            "country": "US",
            "line1": "325 5th Ave N",
            "line2": "#101",
            "state": "WA",
            "zipCode": "98109"
        }
    ]
}

// v3
{
    "details": {
        "mailingAddress": null,
        "physicalAddress": {
            "address1": "325 5th Ave N",
            "address2": "#101",
            "city": "Seattle",
            "state": "WA",
            "zip": "98109",
            "countryCode": "US",
            "county": "King"
        },
        "phsyicalAtSince": "2000-01-01"
    }
}

BusinessProfiles ​

Removed. A client will never have more than one BusinessProfile, and business information has been moved to the Client Details object. A V3 Client with Details.BusinessType: None is equivalent to a V1 client with no BusinessProfiles.

DBAName ​

Moved to Client Details.DBAName.

FEIN ​

Moved to Client Details.FEINNum.

LicenseNumber ​

Moved to Client Details.LicenseNum.

NAICS ​

Moved to Client Details.NAICS

Name ​

Moved to Client Details.BusinessName

Contacts ​

Contacts that existed in V1 BusinessProfiles have been moved to the Client Contacts array.

BusinessProfile JSON
json
// v1
{
    "businessProfiles": [
        {
            "dbaName": "",
            "fein": "",
            "licenseNumber": "",
            "naics": "",
            "name": "",
            "type": "Corporation",
            "contacts": [
                {
                    "allowMarketing": false,
                    "contactType": "CellPhone",
                    "data": "",
                    "description": "",
                    "displayOrder": 1,
                    "isBillingContact": false
                }
            ]
        }
    ]
}

// v3
{
    "details": {
        "businessType": "Corporation",
        "companyName": "", // from name
        "dbaName": "",
        "feinNum": "",
        "licenseNum": "",
        "naics": ""
    },
    "contacts": [
        {
            "type": "CellPhone",
            "personId": null,
            "allowMassEmail": false,
            "isBillingContact": false,
            "description": "",
            "data": "",
            "priority": 1
        }
    ]
}

Claims ​

See Claim for details about changes to the Claim model.

Contacts ​

In the V1 API, this list only contained contacts that were not associated to a Person or Business. The list now contains all contacts for the client, with optional links to a Person. Client Contacts (those not associated with a Person) still appear in this list, along with Contact previously belonging to a BusinessProfile or Person. Clients linked to a person will have the PersonId property set.

See Contact for changes to the Contact model.

Details (new) ​

This is a new object, mostly containing properties that were moved from the Client object.

PersonalProfiles ​

Renamed to People. See Person for detailed changes.

Policies ​

The Policy list still contains all non-archived policies on the client. See Policy for details about changes to the Policy model.

Users ​

Removed. CSR and Producer are now located in Client Details.

Additional Interest ​

City ​

Removed. See Address.

Fax ​

No change.

IsArchived ​

Removed. Archived items are not included. This value was always false in the V1 API.

IsPayor ​

No change

LoanNumber ​

No change

Name ​

No change

Phone ​

No change

Rank ​

No change

State ​

Removed. See Address.

ZipCode ​

Removed. See Address.

Address (new) ​

This object replaces the V1 City, State, and ZipCode properties. See Address for the full model.

Address ​

AddressType ​

Removed.

AtSince ​

Removed. See Details.PhysicalAtSince for Phsyical Address. This property is not stored for Mailing Address.

City ​

No change.

Country ​

Renamed to CountryCode.

Line1 ​

Renamed to Address1

Line2 ​

Renamed to Address2

State ​

No change.

ZipCode ​

Renamed to Zip

County ​

New in V3.

json

// v1
{
    "addressType": "Mailing",
    "atSince": null,
    "city": "Seattle",
    "country": "US",
    "line1": "325 5th Ave N",
    "line2": "#101",
    "state": "WA",
    "zipCode": "98109"
}

// v3
{
    "address1": "325 5th Ave N", // from line1
    "address2": "#101", // from line2
    "city": "Seattle",
    "state": "WA",
    "zip": "98109", // from zipCode
    "countryCode": "US", // from country
    "county": "King" // new
}

Animal Exposure ​

PersonalBuildingUnderwritingId ​

Removed. The Id can be inferred by the PersonalBuildingUnderwriting object in which the Anmial Exposure is listed.

AutoVehicle ​

The AutoVehicle replaces both PersonalAuto and CommercialAuto types from V1. The schema no longer depends on the value of the Type property. Optional PersonalInfo and CommercialInfo properties have been added to the AutoVehicle model.

Contact ​

AllowMarketing ​

Renamed to AllowMassEmail.

ContactType ​

No change.

Data ​

No change.

Description ​

No change.

DisplayOrder ​

Renamed to Priority. Contacts are no longer explicitly ordered. Some contacts may have the same priority value. A higher value means the contact is higher priority and should be used before other contacts with a lower value.

Coverage ​

ParentType (new) ​

All coverages are now listed at the Policy level. This property along with ParentId identifies the object a coverage belongs to.

Values: Policy, LOB, LocationReference, BuildingReference, Auto, Boat

ParentId (new) ​

All coverages are now listed at the Policy level. This property along with ParentType identifies the object a coverage belongs to.

Code ​

No change

Description ​

No change

DisplayOrder ​

Removed.

Limits ​

No change

Deductibles ​

No change

Premium ​

No change

Percent ​

No change

Options ​

Removed. Replaced by 3 sets of OptionCode and OptionDescription properties.

OptionCode1 (new) ​

OptionCode2 (new) ​

OptionCode3 (new) ​

OptionDescription1 (new) ​

OptionDescription2 (new) ​

OptionDescription3 (new) ​

AdditionalInterests ​

Removed. AdditionalInterests belonging to a coverage will be listed in the Policy level AdditionalInterests list with a ParentId referencing the Coverage.

Person ​

Contacts ​

Removed. Contacts linked to a Person will appear in the Client Contacts list.

EducationLevel ​

Renamed to Education.

Income ​

The type has changed from decimal to string

IsArchived ​

Removed. Archived Person records will no longer be returned.

IsMainContact ​

Moved to Client Details. The MainContacts list contains the Id of each Person who is a main contact.

NickName ​

Renamed to PreferredName.

Order ​

Removed.

ResidenceType ​

Renamed to Homeowner.

YearOfBirth ​

Removed. DateOfBirth contains the year of birth.

Policy ​

AccountNumber ​

No change

AgentCode ​

No change

BillingPlan ​

No change

Carrier ​

No longer optional.

CancellationDate ​

Removed. If status is Cancelled, then StatusDate is the scheduled Cancellation Date.

CurrentPremium ​

Removed

CurrentRate ​

Removed

DaysLapsed ​

Removed

EffectiveDate ​

No change

ExpirationDate ​

No change

InceptionDate ​

No change

IsArchived ​

Removed. Archived policies are not included and this value was always false.

NAIC ​

No change

OfficeId ​

No change

PolicyNumber ​

No change

Program ​

No longer optional.

QuotedPremium ​

This value is now optional.

Rater ​

Renamed to RaterCode

RenewalDate ​

Removed. If Status is Renewal, the StatusDate is the Renewal Date.

RewriteDate ​

Removed. If Status is Rewrute, the StatusDate is the Rewrite Date.

SoldDate ​

No change

Source ​

No change

State ​

Renamed to PolicyState

Type ​

No change

Status ​

The status values of "Suspect", "Quote", and "Expired" have been removed. The value "Unknown" has been renamed to "Unassigned". The remaining value are unchanged. See PolicyStatus for the full list of possible values.

StatusDate ​

No change.

SubStatus ​

No change

Title ​

No longer optional

DisplayOrder ​

Renamed to PolicyIndex

TypeName ​

Removed. This value was previously used to determine which JSON model the policy adhered to (certain properties were only available on certain policy types). All policies now share the same model.

AdditionalInterests ​

See AdditionalInterest for details.

Coverages ​

This list now contains all coverages for the policy. Coverages that were previously found on Lines of Business, Autos, etc. are all contained in this list, and will have an appropriate ParentType and ParentId. See Coverage for details.

LineOfBusiness ​

See LineOfBusiness

Locations ​

See Location

LocationReferences (new) ​

This collection replaces the LineOfBusinessLocationBuildings list found on the V1 LineOfBusinessModel.

Autos (new) ​

This list now contains all Personal and Commercial Auto Vehicles in a policy. In V1, Autos and Boats were found on the Vehicle list on each Line of Business. Autos and Boats have been separated and moved up to the Policy level. Each V3 Auto will have a LobId linking it to a Line of Business on the Policy.

Drivers (new) ​

This list now contains all Auto Drivers in a Policy. In V1, Auto Drivers and Boat Operators were found on the Drivers list on each Line of Business. Auto Drivers and Boat Operators have been separated and moved up to the Policy level. Each V3 Auto Driver will have a LobId linking it to a Line of Business on the Policy.

Boats (new) ​

This list contains all Boats in a Policy. In V1, Autos and Boats were found on the Vehicle list on each Line of Business. Autos and Boats have been separated and moved up to the Policy level. Each V3 Boat will have a LobId linking it to a Line of Business on the Policy.

BoatOperators (new) ​

This list now contains all Boat Operators in a Policy. In V1, Auto Drivers and Boat Operators were found on the Drivers list on each Line of Business. Auto Drivers and Boat Operators have been separated and moved up to the Policy level. Each V3 Boat Operator will have a LobId linking it to a Line of Business on the Policy.

Users ​

Removed. See Agent1, Agent2, and Agent3.

Log ​

Refid ​

No change

TS ​

No change

PolicyIndex ​

Renamed to PolicyId. Instead of identifying policies by their display order, they are now identified by their GUID Id.

Action ​

Renamed to Channel. The allowed values are unchnaged.

Description ​

Removed. See Note.

Body ​

Removed. See Note.

Note (new) ​

This field replaces the Description and Body fields from V1. To replicate the behavior of V1, include your Description as the first line of Note followed by the Body.

Suspense ​

Removed. See Task.

Task ​

Tasks replace V1 Suspenses and add new optional functionality. Users can be assigned by email instead of initials. Tasks also have a Title and Description field that can be used to provide more detail than a Suspense allowed.

Title (new) ​

Description (new) ​

Category ​

No change

DueDate ​

No change

AssignedToRole ​

No change

AssignedToEmail ​

Replaces V1 SuspendedForInitials