Skip to main content

Overview

The AGENT_COMPLIANCE_STATUS_CHANGE webhook is triggered when an agent’s compliance status changes for any product/state combination. Webhook type: AGENT_COMPLIANCE_STATUS_CHANGE

Triggers

This webhook fires when any of the following occur for an agent:
  • Agent license is created, updated, or expires
  • Agent appointment status changes
  • Compliance requirements for a product/state combination are updated
  • PDB (Producer Database) alerts from NIPR affect license or appointment data
This webhook is debounced with a 1-minute sliding window. After the last change in a sequence, Turris waits 1 minute before sending a consolidated webhook. A maximum cap of 30 minutes ensures delivery even during continuous activity.

Payload Example

{
  "webhookType": "AGENT_COMPLIANCE_STATUS_CHANGE",
  "upstreamEntityId": "507f1f77bcf86cd799439010",
  "payload": [
    {
      "entity": "agent",
      "downstreamEntityAssociationId": "507f1f77bcf86cd799439011",
      "legalName": "Acme Insurance Agency",
      "branchName": "Main Branch",
      "producerCode": "ABC123",
      "npn": "1234567",
      "products": [
        {
          "productId": "507f1f77bcf86cd799439012",
          "productName": "Property & Casualty",
          "states": [
            {
              "stateCode": "CA",
              "complianceStatus": "COMPLIANT",
              "licenseStatus": {
                "statusName": "Licensed"
              },
              "appointmentStatus": {
                "statusName": "Appointed"
              }
            },
            {
              "stateCode": "FL",
              "complianceStatus": "NOT_COMPLIANT",
              "licenseStatus": {
                "statusName": "Missing License",
                "statusMessages": ["Required license class not found"]
              },
              "appointmentStatus": {
                "statusName": "Missing Carrier",
                "statusMessages": ["No active appointment with required carrier"]
              }
            }
          ]
        }
      ]
    }
  ]
}

Field Reference

Entity Fields (each element in payload)

FieldTypeDescription
entitystringAlways "agent" for this webhook type
downstreamEntityAssociationIdstringThe association ID linking the agent’s agency to your upstream entity
legalNamestringLegal name of the downstream entity (agency) the agent belongs to
branchNamestringBranch name of the association
producerCodestringThe producer code assigned to the entity
npnstringNational Producer Number
productsarrayArray of products where the agent’s compliance status changed

Product Fields (each element in products)

FieldTypeDescription
productIdstringThe product ID
productNamestringHuman-readable product name
statesarrayArray of states where compliance status changed for this product

State Fields (each element in states)

FieldTypeDescription
stateCodestringUS state/territory code (e.g., CA, TX, NY)
complianceStatusstringEither COMPLIANT or NOT_COMPLIANT
licenseStatusobjectLicense status — see below
appointmentStatusobjectAppointment status — see below

Status Object Fields (licenseStatus and appointmentStatus)

FieldTypeDescription
statusNamestringHuman-readable status name (e.g., "Licensed", "Missing License", "STATE_REMOVED")
statusMessagesstring[](Optional) Array of detailed status explanations
When a state is removed from a product’s compliance requirements, licenseStatus and appointmentStatus will both have statusName: "STATE_REMOVED".

Batching

Because this webhook is debounced, a single delivery may contain multiple agents in the payload array, and each agent may have multiple products and states that changed. Design your handler to iterate over the full payload.