Contracting & Hierarchies API

contractResponsiblePartyUpdated

WEBHOOK

Delivered when a contract’s responsible party is created or updated. The
responsible party is the entity accountable for the contract over a date
window; data.startDate and data.endDate bound that window
(endDate is null when the window is open-ended).

post

Body

application/json

ContractResponsiblePartyUpdatedWebhookEvent

Common wrapper present on every outbound webhook event. The data field
is polymorphic; its schema depends on the value of type.

idstringrequired

Globally unique event identifier. Uses the TypeID format with the
prefix whe_ followed by a UUIDv7-derived suffix
(e.g. whe_01j8e4k2abc123def456). Use this field to deduplicate
deliveries if your endpoint receives the same event more than once.

Example:whe_01j8e4k2abc123def456

typestringrequired

Dot-notation event type string. Use this field to route the event to
the appropriate handler in your integration.

Allowed values:contract.producer_status.updatedcontract.assignment.updatedcontract.assignment.deletedcontract.assignment_change.updatedcontract.assignment_change.deletedcontract.packet.submittedcontract.updatedcontract.deletedcontract.responsible_party.updatedhierarchy.producer.addedhierarchy.producer.changedhierarchy.producer.relationship.terminated

Example:contract.assignment.updated

dataobjectrequired

Payload for the contract.responsible_party.updated event.

Show Child Parameters

Response

200

Customer endpoint acknowledged the event.

200

hierarchyProducerAdded

WEBHOOK

Delivered when a producer is newly placed under an upline in a hierarchy.
The payload identifies the producer, its upline, and its commission level
at the new placement.

The upline and commission values reflect the new placement; no prior
value is included.

post

Body

application/json

HierarchyProducerAddedWebhookEvent

Common wrapper present on every outbound webhook event. The data field
is polymorphic; its schema depends on the value of type.

idstringrequired

Globally unique event identifier. Uses the TypeID format with the
prefix whe_ followed by a UUIDv7-derived suffix
(e.g. whe_01j8e4k2abc123def456). Use this field to deduplicate
deliveries if your endpoint receives the same event more than once.

Example:whe_01j8e4k2abc123def456

typestringrequired

Dot-notation event type string. Use this field to route the event to
the appropriate handler in your integration.

Allowed values:contract.producer_status.updatedcontract.assignment.updatedcontract.assignment.deletedcontract.assignment_change.updatedcontract.assignment_change.deletedcontract.packet.submittedcontract.updatedcontract.deletedcontract.responsible_party.updatedhierarchy.producer.addedhierarchy.producer.changedhierarchy.producer.relationship.terminated

Example:contract.assignment.updated

dataobjectrequired

Shared payload for the hierarchy.producer.added and
hierarchy.producer.changed events. Describes a producer’s placement in a
hierarchy - its upline and commission level - derived from a
contract-assignment change. The upline and commission values reflect the
new placement; no prior value is included. changedFields is present only
on hierarchy.producer.changed.

Show Child Parameters

Response

200

Customer endpoint acknowledged the event.

200

hierarchyProducerChanged

WEBHOOK

Delivered when an existing producer’s hierarchy position changes - its
upline and/or its commission level. The data.changedFields array lists
which dimensions changed (upline, commissionLevel).

The upline and commission values reflect the new placement; no prior
value is included.

post

Body

application/json

HierarchyProducerChangedWebhookEvent

Common wrapper present on every outbound webhook event. The data field
is polymorphic; its schema depends on the value of type.

idstringrequired

Globally unique event identifier. Uses the TypeID format with the
prefix whe_ followed by a UUIDv7-derived suffix
(e.g. whe_01j8e4k2abc123def456). Use this field to deduplicate
deliveries if your endpoint receives the same event more than once.

Example:whe_01j8e4k2abc123def456

typestringrequired

Dot-notation event type string. Use this field to route the event to
the appropriate handler in your integration.

Allowed values:contract.producer_status.updatedcontract.assignment.updatedcontract.assignment.deletedcontract.assignment_change.updatedcontract.assignment_change.deletedcontract.packet.submittedcontract.updatedcontract.deletedcontract.responsible_party.updatedhierarchy.producer.addedhierarchy.producer.changedhierarchy.producer.relationship.terminated

Example:contract.assignment.updated

dataobjectrequired

Shared payload for the hierarchy.producer.added and
hierarchy.producer.changed events. Describes a producer’s placement in a
hierarchy - its upline and commission level - derived from a
contract-assignment change. The upline and commission values reflect the
new placement; no prior value is included. changedFields is present only
on hierarchy.producer.changed.

Show Child Parameters

Response

200

Customer endpoint acknowledged the event.

200

hierarchyProducerRelationshipTerminated

WEBHOOK

Delivered when a producer’s hierarchy relationship ends - its contract
assignment transitions into a terminal status. The data.terminationReason
is the terminal status name (e.g. Terminated, Expired, Declined) and
data.terminationDate is the date the relationship ended.

The upline and commission values reflect the placement as it existed when
the relationship ended.

post

Body

application/json

HierarchyProducerRelationshipTerminatedWebhookEvent

Common wrapper present on every outbound webhook event. The data field
is polymorphic; its schema depends on the value of type.

idstringrequired

Globally unique event identifier. Uses the TypeID format with the
prefix whe_ followed by a UUIDv7-derived suffix
(e.g. whe_01j8e4k2abc123def456). Use this field to deduplicate
deliveries if your endpoint receives the same event more than once.

Example:whe_01j8e4k2abc123def456

typestringrequired

Dot-notation event type string. Use this field to route the event to
the appropriate handler in your integration.

Allowed values:contract.producer_status.updatedcontract.assignment.updatedcontract.assignment.deletedcontract.assignment_change.updatedcontract.assignment_change.deletedcontract.packet.submittedcontract.updatedcontract.deletedcontract.responsible_party.updatedhierarchy.producer.addedhierarchy.producer.changedhierarchy.producer.relationship.terminated

Example:contract.assignment.updated

dataobjectrequired

Payload for the hierarchy.producer.relationship.terminated event. Describes
a producer’s hierarchy placement - its upline and commission level - at the
point its contract assignment transitioned into a terminal status, along with
why (terminationReason) and when (terminationDate). Values reflect the
placement as it existed when the relationship ended; no prior value is included.

Show Child Parameters

Response

200

Customer endpoint acknowledged the event.

200

ContractV2

object

A contract sent from an agency to a carrier on behalf of a producer.

idstring(uuid)required

The contract id.

agencyOrganizationIdstring(uuid)required

The agency organization the contract is sent from.

carrierOrganizationIdstring(uuid)required

The carrier organization the contract is sent to.

personIdstring(uuid)required

The individual producer the contract is on behalf of.

firmIdstring(uuid)

The firm the contract is on behalf of, if any.

responsibleUplineFirmIdstring(uuid)

The upline firm responsible for the contract, if any.

assignmentStatusIdstring(uuid)

The contract’s assignment status id.

assignmentStatusNamestring

The human-readable assignment status (inlined so no follow-up lookup is needed).

activebooleanrequired

Whether the contract is currently active based on its assignments.

effectiveDatestring(date)

The effective date of the contract (yyyy-MM-dd).

endDatestring(date)

The end date of the contract (yyyy-MM-dd).

displayNumberstringrequired

The human-readable contract number.

parentContractIdstring(uuid)

The parent contract id, if this is a subsidiary contract.

contractResponsiblePartiesarray[object]required

One responsible-party window on a contract. Both bounds are inclusive. Windows do not overlap, with
two exceptions: two windows may meet on a single shared day (one window’s endDate equal to the
next window’s startDate), and a window whose startDate equals its endDate is a retired record
rather than a live one-day assignment. To resolve who is responsible on a given day, ignore windows
where startDate equals endDate, and on a shared boundary day prefer the window that starts that
day over the one that ends it. The current window is the one with no endDate; there is at most one
per contract.

Show Child Parameters
createdAtstring(date-time)

RFC3339 UTC creation timestamp.

updatedAtstring(date-time)

RFC3339 UTC last-modified timestamp.

userDefined1string
userDefined2string
userDefined3string
userDefined4string
userDefined5string
userDefined6string
userDefined7string
userDefined8string
userDefined9string
userDefined10string
Example