Skip to main content
Webhooks belong to the Carrier & MGA API. This event fires about an agency you appoint, and only a credential on that surface (carrier, MGA or wholesaler) can subscribe to it.

Overview

The DOWNSTREAM_ENTITY_CREATED webhook is triggered when an agency relationship is created in your account. It exists for the parent/child case. When you onboard an agency underneath one that has already executed a producer agreement, no PRODUCER_AGREEMENT_EXECUTED fires for the child: the parent signed once, months earlier, and the child has no agreement of its own. This event tells you the child exists, and carries enough context to determine whether it is covered. Webhook type: DOWNSTREAM_ENTITY_CREATED

Triggers

This webhook fires when an agency relationship is created in your account:
  • you add an agency
  • you invite an agency
  • an agency arrives through a CSV bulk upload
  • a company syncs in from HubSpot
It fires before the agency has responded to an invitation or completed any onboarding step. If you need the “fully onboarded” signal instead, use Producer Agreement Executed.
This webhook is sent immediately, with no debouncing. A bulk upload therefore produces one delivery per agency in the file, so a large import produces a burst proportional to its size. Size your receiver to absorb or queue it.

Payload Example

A child agency, under a parent whose producer agreement is already executed:
A top-level agency is its own ultimate parent:

Determining whether a new agency is covered

Read ultimateParentAgreementExecuted:
  • true: the top of this agency’s hierarchy has an executed producer agreement. Nothing further to do.
  • false: not yet. Wait for a Producer Agreement Executed event whose downstreamEntityAssociationId equals this payload’s ultimateParentAssociationId.
You do not need to call the API to answer this question, and you do not need to parse path yourself. ultimateParentAssociationId is already the first segment.

Field Reference

Payload Fields

ultimateParentAgreementExecuted is a snapshot taken when the agency was created, not a live field. A true cannot go stale. A false can, because the ultimate parent may sign later, and that is exactly what the Producer Agreement Executed event tells you.It always refers to the root of the hierarchy, never to the nearest ancestor that happens to have signed. For a two-level hierarchy those are the same thing. For deeper hierarchies they can differ, and path gives you every ancestor if you need to check them yourself.
path is also a snapshot. Moving an agency to a different parent rewrites it, and that change is not currently signalled by a webhook. If you cache the hierarchy, re-read it from List Associations rather than assuming it is stable.