SERVICING_STATUS_UPDATED

This event occurs when a ServicingAction reaches a status you can act on, or when Canopy's servicing team takes it over (is_manual becomes true). It is not sent when an action returns to PROCESSING, or for errors Canopy retries on its own.

If a servicing request has three ServicingActions, you receive a separate SERVICING_STATUS_UPDATED webhook for each action every time its status changes. When the whole request finishes, you also receive one COMPLETE or ERROR webhook.

The webhook's pull_id is the servicing Pull the action runs on. data.original_pull_id is the Pull you requested servicing for.

Webhook Request Format

The webhook is a POST request with a JSON body that will look like the following:

{
  "widget_id": "<WIDGET_ID>",
  "team_id": "<TEAM_ID>",
  "pull_id": "<SERVICING_PULL_ID>",
  "pull_type": "SERVICING",
  "status": "<PULL_STATUS>", // The servicing Pull's status, which changes as Canopy works; use data.status for the action
  "meta_data": {... meta_data of the Pull you requested servicing for ...},
  "event_type": "SERVICING_STATUS_UPDATED",
  "account_identifier": "<ACCOUNT_IDENTIFIER>",
  "is_monitored": false,
  "data": {
    "servicing_action_id": "<SERVICING_ACTION_ID>",
    "original_pull_id": "<PULL_ID>",
    "status": "VERIFIED",
    "previous_status": "VERIFYING",
    "is_manual": false,
    "validation_error_type": null,
    "document_id": "<DOCUMENT_ID>"
  }
}
Data keyData description
servicing_action_idID of the ServicingAction, as returned by POST /servicings.
original_pull_idID of the Pull the servicing request was made for.
statusThe action's new status. Possible values: PROCESSING, SUBMITTED, VERIFYING, VERIFIED, VERIFIED_WITHOUT_DOCUMENT, VERIFICATION_FAILED, VALIDATION_ERROR, UNCONFIRMED, INTERNAL_ERROR, PROVIDER_ERROR. PROCESSING, INTERNAL_ERROR and PROVIDER_ERROR appear only with is_manual: true, when Canopy's servicing team takes over. See ServicingAction for what each status means.
previous_statusThe action's status before this change. Equal to status when only is_manual changed.
is_manualtrue once Canopy's servicing team is completing the action.
validation_error_typeWhy the change cannot be applied, when status is VALIDATION_ERROR. Otherwise null.
document_idID of the updated declarations page, when status is VERIFIED. Otherwise null.

You may use GET /servicings/:servicingActionId to get the full ServicingAction.

Testing in Sandbox

In sandbox, each action's carrier_policy_number picks its outcome:

carrier_policy_numberOutcome
SANDBOX-VALIDATION-ERRORVALIDATION_ERROR
SANDBOX-VERIFICATION-FAILEDVERIFICATION_FAILED
SANDBOX-VERIFIED-WITHOUT-DOCUMENTVERIFIED_WITHOUT_DOCUMENT
Any other valueVERIFIED

Each step takes a few seconds.